<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>32457</bug_id>
          
          <creation_ts>2009-12-11 21:31:17 -0800</creation_ts>
          <short_desc>Update WebGL tests to released versions</short_desc>
          <delta_ts>2009-12-12 15:12:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>32466</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>brettw</cc>
    
    <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>oliver</cc>
    
    <cc>petersont</cc>
    
    <cc>rlp</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>171030</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2009-12-11 21:31:17 -0800</bug_when>
    <thetext>Some bug fixes went into the versions of the WebGL demos released along with the initial draft spec. These fixes should be merged back into the manual tests and layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171033</commentid>
    <comment_count>1</comment_count>
      <attachid>44723</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2009-12-11 22:18:11 -0800</bug_when>
    <thetext>Created attachment 44723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171052</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-11 23:55:59 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44723 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171130</commentid>
    <comment_count>3</comment_count>
      <attachid>44723</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-12 15:00:11 -0800</bug_when>
    <thetext>Comment on attachment 44723
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171131</commentid>
    <comment_count>4</comment_count>
      <attachid>44723</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-12-12 15:00:39 -0800</bug_when>
    <thetext>Comment on attachment 44723
Patch

errr, let&apos;s try selecting the right option this time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171133</commentid>
    <comment_count>5</comment_count>
      <attachid>44723</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-12 15:12:40 -0800</bug_when>
    <thetext>Comment on attachment 44723
Patch

Clearing flags on attachment: 44723

Committed r52056: &lt;http://trac.webkit.org/changeset/52056&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171134</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-12 15:12:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44723</attachid>
            <date>2009-12-11 22:18:11 -0800</date>
            <delta_ts>2009-12-12 15:12:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tests.patch</filename>
            <type>text/plain</type>
            <size>36963</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjA0NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMTItMTEgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSBXZWJHTCB0ZXN0cyB0byByZWxlYXNlZCB2ZXJzaW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0NTcKKworICAgICAgICAqIG1hbnVhbC10
ZXN0cy93ZWJnbC9FYXJ0aC5odG1sOgorICAgICAgICAqIG1hbnVhbC10ZXN0cy93ZWJnbC9NYW55
UGxhbmV0c0RlZXAuaHRtbDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvd2ViZ2wvU3Bpbm5pbmdC
b3guaHRtbDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvd2ViZ2wvVGVhcG90UGVyUGl4ZWwuaHRt
bDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvd2ViZ2wvVGVhcG90UGVyVmVydGV4Lmh0bWw6Cisg
ICAgICAgICogbWFudWFsLXRlc3RzL3dlYmdsL3Jlc291cmNlcy9DYW52YXNNYXRyaXguanM6Cisg
ICAgICAgIChDYW52YXNNYXRyaXg0LnByb3RvdHlwZS5nZXRBc1dlYkdMRmxvYXRBcnJheSk6Cisg
ICAgICAgICogbWFudWFsLXRlc3RzL3dlYmdsL3Jlc291cmNlcy91dGlsczNkLmpzOgorICAgICAg
ICAoaW5pdFdlYkdMLmdsLmNvbnNvbGUud2luZG93LmNvbnNvbGUubG9nKToKKyAgICAgICAgKGlu
aXRXZWJHTCk6CisgICAgICAgIChsb2FkU2hhZGVyKToKKyAgICAgICAgKG1ha2VCb3gpOgorICAg
ICAgICAobWFrZVNwaGVyZSk6CisgICAgICAgIChwcm9jZXNzTG9hZE9iaik6CisgICAgICAgIChk
b0xvYWRPYmopOgorICAgICAgICAoZG9Mb2FkSW1hZ2VUZXh0dXJlKToKKwogMjAwOS0xMi0xMSAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdpbmRvd3MgYnVp
bGQgZml4OiBSZW1vdmVkIGFuIGluY29ycmVjdCAjaWZkZWYuCkluZGV4OiBXZWJDb3JlL21hbnVh
bC10ZXN0cy93ZWJnbC9FYXJ0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRl
c3RzL3dlYmdsL0VhcnRoLmh0bWwJKHJldmlzaW9uIDUyMDQwKQorKysgV2ViQ29yZS9tYW51YWwt
dGVzdHMvd2ViZ2wvRWFydGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiAgIDxoZWFkPgotICAgIDx0aXRsZT5DYW52YXMzZCBleGFt
cGxlPC90aXRsZT4KKyAgICA8dGl0bGU+RWFydGggYW5kIE1hcnM8L3RpdGxlPgogICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvQ2FudmFzTWF0cml4LmpzIj4gPC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy91dGlsczNkLmpzIj4gPC9zY3JpcHQ+CiAgICAgCkBAIC0xMDUsMTgg
KzEwNSwxOCBAQAogICAgICAgICAgICAgbXZNYXRyaXgucm90YXRlKGFuZ2xlLCAwLDEsMCk7CiAg
ICAgICAgICAgICBtdk1hdHJpeC5yb3RhdGUoMzAsIDEsMCwwKTsKICAgICAgICAgICAgIG12TWF0
cml4LnRyYW5zbGF0ZSh4LHkseik7Ci0gICAgICAgICAgICBjdHgudW5pZm9ybU1hdHJpeDRmdihj
dHguZ2V0VW5pZm9ybUxvY2F0aW9uKGN0eC5wcm9ncmFtLCAidV9tb2RlbFZpZXdNYXRyaXgiKSwg
ZmFsc2UsIG12TWF0cml4LmdldEFzQ2FudmFzRmxvYXRBcnJheSgpKTsKKyAgICAgICAgICAgIGN0
eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3JtTG9jYXRpb24oY3R4LnByb2dyYW0sICJ1
X21vZGVsVmlld01hdHJpeCIpLCBmYWxzZSwgbXZNYXRyaXguZ2V0QXNXZWJHTEZsb2F0QXJyYXko
KSk7CiAKICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCB0aGUgbm9ybWFsIG1hdHJpeCBmcm9tIHRo
ZSBtb2RlbC12aWV3IG1hdHJpeAogICAgICAgICAgICAgdmFyIG5vcm1hbE1hdHJpeCA9IG5ldyBD
YW52YXNNYXRyaXg0KG12TWF0cml4KTsKICAgICAgICAgICAgIG5vcm1hbE1hdHJpeC5pbnZlcnQo
KTsKICAgICAgICAgICAgIG5vcm1hbE1hdHJpeC50cmFuc3Bvc2UoKTsKLSAgICAgICAgICAgIGN0
eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3JtTG9jYXRpb24oY3R4LnByb2dyYW0sICJ1
X25vcm1hbE1hdHJpeCIpLCBmYWxzZSwgbm9ybWFsTWF0cml4LmdldEFzQ2FudmFzRmxvYXRBcnJh
eSgpKTsKKyAgICAgICAgICAgIGN0eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3JtTG9j
YXRpb24oY3R4LnByb2dyYW0sICJ1X25vcm1hbE1hdHJpeCIpLCBmYWxzZSwgbm9ybWFsTWF0cml4
LmdldEFzV2ViR0xGbG9hdEFycmF5KCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBj
b25zdHJ1Y3QgdGhlIG1vZGVsLXZpZXcgKiBwcm9qZWN0aW9uIG1hdHJpeAogICAgICAgICAgICAg
dmFyIG12cE1hdHJpeCA9IG5ldyBDYW52YXNNYXRyaXg0KG12TWF0cml4KTsKICAgICAgICAgICAg
IG12cE1hdHJpeC5tdWx0UmlnaHQoY3R4LnBlcnNwZWN0aXZlTWF0cml4KTsKLSAgICAgICAgICAg
IGN0eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3JtTG9jYXRpb24oY3R4LnByb2dyYW0s
ICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKSwgZmFsc2UsIG12cE1hdHJpeC5nZXRBc0NhbnZhc0Zs
b2F0QXJyYXkoKSk7CisgICAgICAgICAgICBjdHgudW5pZm9ybU1hdHJpeDRmdihjdHguZ2V0VW5p
Zm9ybUxvY2F0aW9uKGN0eC5wcm9ncmFtLCAidV9tb2RlbFZpZXdQcm9qTWF0cml4IiksIGZhbHNl
LCBtdnBNYXRyaXguZ2V0QXNXZWJHTEZsb2F0QXJyYXkoKSk7CiAKICAgICAgICAgICAgIGN0eC5i
aW5kVGV4dHVyZShjdHguVEVYVFVSRV8yRCwgdGV4dHVyZSk7CiAgICAgICAgICAgICBjdHguZHJh
d0VsZW1lbnRzKGN0eC5UUklBTkdMRVMsIGN0eC5zcGhlcmUubnVtSW5kaWNlcywgY3R4LlVOU0lH
TkVEX1NIT1JULCAwKTsKQEAgLTE0MCw2ICsxNDAsMTMgQEAKICAgICAgICAgCiAgICAgICAgIGZ1
bmN0aW9uIHN0YXJ0KCkKICAgICAgICAgeworICAgICAgICAgICAgdmFyIGMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOworICAgICAgICAgICAgdmFyIHcgPSBNYXRoLmZsb29y
KHdpbmRvdy5pbm5lcldpZHRoICogMC45KTsKKyAgICAgICAgICAgIHZhciBoID0gTWF0aC5mbG9v
cih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkpOworCisgICAgICAgICAgICBjLndpZHRoID0gdzsK
KyAgICAgICAgICAgIGMuaGVpZ2h0ID0gaDsKKwogICAgICAgICAgICAgdmFyIGN0eCA9IGluaXQo
KTsKICAgICAgICAgICAgIGN1cnJlbnRBbmdsZSA9IDA7CiAgICAgICAgICAgICBpbmNBbmdsZSA9
IDAuMjsKQEAgLTE1MSw4ICsxNTgsNiBAQAogICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAg
ICAgICAgIGNhbnZhcyB7CiAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKLSAg
ICAgICAgICAgIHdpZHRoOjkwJTsKLSAgICAgICAgICAgIGhlaWdodDo5MCU7CiAgICAgICAgIH0K
ICAgICA8L3N0eWxlPgogICA8L2hlYWQ+CkluZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0cy93ZWJn
bC9NYW55UGxhbmV0c0RlZXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0
cy93ZWJnbC9NYW55UGxhbmV0c0RlZXAuaHRtbAkocmV2aXNpb24gNTIwNDApCisrKyBXZWJDb3Jl
L21hbnVhbC10ZXN0cy93ZWJnbC9NYW55UGxhbmV0c0RlZXAuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiAgIDxoZWFkPgotICAgIDx0
aXRsZT5DYW52YXMzZCBleGFtcGxlPC90aXRsZT4KKyAgICA8dGl0bGU+TWFueSBQbGFuZXRzIERl
ZXA8L3RpdGxlPgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvQ2FudmFzTWF0cml4LmpzIj4g
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsczNkLmpzIj4gPC9zY3Jp
cHQ+CiAgICAgCkBAIC0xMTMsMTggKzExMywxOCBAQAogICAgICAgICAgICAgbXZNYXRyaXgucm90
YXRlKGFuZ2xlLCAwLDEsMCk7CiAgICAgICAgICAgICBtdk1hdHJpeC5yb3RhdGUoMzAsIDEsMCww
KTsKICAgICAgICAgICAgIG12TWF0cml4LnRyYW5zbGF0ZSh4LHkseik7Ci0gICAgICAgICAgICBj
dHgudW5pZm9ybU1hdHJpeDRmdihjdHguZ2V0VW5pZm9ybUxvY2F0aW9uKGN0eC5wcm9ncmFtLCAi
dV9tb2RlbFZpZXdNYXRyaXgiKSwgZmFsc2UsIG12TWF0cml4LmdldEFzQ2FudmFzRmxvYXRBcnJh
eSgpKTsKKyAgICAgICAgICAgIGN0eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3JtTG9j
YXRpb24oY3R4LnByb2dyYW0sICJ1X21vZGVsVmlld01hdHJpeCIpLCBmYWxzZSwgbXZNYXRyaXgu
Z2V0QXNXZWJHTEZsb2F0QXJyYXkoKSk7CiAKICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCB0aGUg
bm9ybWFsIG1hdHJpeCBmcm9tIHRoZSBtb2RlbC12aWV3IG1hdHJpeAogICAgICAgICAgICAgdmFy
IG5vcm1hbE1hdHJpeCA9IG5ldyBDYW52YXNNYXRyaXg0KG12TWF0cml4KTsKICAgICAgICAgICAg
IG5vcm1hbE1hdHJpeC5pbnZlcnQoKTsKICAgICAgICAgICAgIG5vcm1hbE1hdHJpeC50cmFuc3Bv
c2UoKTsKLSAgICAgICAgICAgIGN0eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3JtTG9j
YXRpb24oY3R4LnByb2dyYW0sICJ1X25vcm1hbE1hdHJpeCIpLCBmYWxzZSwgbm9ybWFsTWF0cml4
LmdldEFzQ2FudmFzRmxvYXRBcnJheSgpKTsKKyAgICAgICAgICAgIGN0eC51bmlmb3JtTWF0cml4
NGZ2KGN0eC5nZXRVbmlmb3JtTG9jYXRpb24oY3R4LnByb2dyYW0sICJ1X25vcm1hbE1hdHJpeCIp
LCBmYWxzZSwgbm9ybWFsTWF0cml4LmdldEFzV2ViR0xGbG9hdEFycmF5KCkpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICAvLyBjb25zdHJ1Y3QgdGhlIG1vZGVsLXZpZXcgKiBwcm9qZWN0aW9u
IG1hdHJpeAogICAgICAgICAgICAgdmFyIG12cE1hdHJpeCA9IG5ldyBDYW52YXNNYXRyaXg0KG12
TWF0cml4KTsKICAgICAgICAgICAgIG12cE1hdHJpeC5tdWx0UmlnaHQoY3R4LnBlcnNwZWN0aXZl
TWF0cml4KTsKLSAgICAgICAgICAgIGN0eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3Jt
TG9jYXRpb24oY3R4LnByb2dyYW0sICJ1X21vZGVsVmlld1Byb2pNYXRyaXgiKSwgZmFsc2UsIG12
cE1hdHJpeC5nZXRBc0NhbnZhc0Zsb2F0QXJyYXkoKSk7CisgICAgICAgICAgICBjdHgudW5pZm9y
bU1hdHJpeDRmdihjdHguZ2V0VW5pZm9ybUxvY2F0aW9uKGN0eC5wcm9ncmFtLCAidV9tb2RlbFZp
ZXdQcm9qTWF0cml4IiksIGZhbHNlLCBtdnBNYXRyaXguZ2V0QXNXZWJHTEZsb2F0QXJyYXkoKSk7
CiAKICAgICAgICAgICAgIGN0eC5iaW5kVGV4dHVyZShjdHguVEVYVFVSRV8yRCwgdGV4dHVyZSk7
CiAgICAgICAgICAgICBjdHguZHJhd0VsZW1lbnRzKGN0eC5UUklBTkdMRVMsIGN0eC5zcGhlcmUu
bnVtSW5kaWNlcywgY3R4LlVOU0lHTkVEX1NIT1JULCAwKTsKQEAgLTE2OCw2ICsxNjgsMTMgQEAK
IAogICAgICAgICBmdW5jdGlvbiBzdGFydCgpCiAgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBj
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKKyAgICAgICAgICAgIHZhciB3
ID0gTWF0aC5mbG9vcih3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOSk7CisgICAgICAgICAgICB2YXIg
aCA9IE1hdGguZmxvb3Iod2luZG93LmlubmVySGVpZ2h0ICogMC45KTsKKworICAgICAgICAgICAg
Yy53aWR0aCA9IHc7CisgICAgICAgICAgICBjLmhlaWdodCA9IGg7CisKICAgICAgICAgICAgIHZh
ciBjdHggPSBpbml0KCk7CiAgICAgICAgICAgICBjdXJyZW50QW5nbGVzID0gWyBdOwogICAgICAg
ICAgICAgaW5jQW5nbGVzID0gWyBdOwpAQCAtMTg4LDggKzE5NSw2IEBACiAgICAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIj4KICAgICAgICAgY2FudmFzIHsKICAgICAgICAgICAgIGJvcmRlcjogMnB4
IHNvbGlkIGJsYWNrOwotICAgICAgICAgICAgd2lkdGg6OTAlOwotICAgICAgICAgICAgaGVpZ2h0
OjkwJTsKICAgICAgICAgfQogICAgIDwvc3R5bGU+CiAgIDwvaGVhZD4KSW5kZXg6IFdlYkNvcmUv
bWFudWFsLXRlc3RzL3dlYmdsL1NwaW5uaW5nQm94Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9tYW51YWwtdGVzdHMvd2ViZ2wvU3Bpbm5pbmdCb3guaHRtbAkocmV2aXNpb24gNTIwNDApCisr
KyBXZWJDb3JlL21hbnVhbC10ZXN0cy93ZWJnbC9TcGlubmluZ0JveC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDE0OSArMSwyMDUgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+Ci0gIDxoZWFk
PgotICAgIDx0aXRsZT5DYW52YXMzZCBleGFtcGxlPC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL0NhbnZhc01hdHJpeC5qcyI+IDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdXRpbHMzZC5qcyI+IDwvc2NyaXB0PgotICAgIDxzY3JpcHQgaWQ9InZzaGFkZXIi
IHR5cGU9Ingtc2hhZGVyL3gtdmVydGV4Ij4KLSAgICAgICAgdW5pZm9ybSBtYXQ0IHBNYXRyaXg7
Ci0gICAgICAgIHVuaWZvcm0gbWF0NCBtdk1hdHJpeDsKLSAgICAgICAgdW5pZm9ybSB2ZWMzIGxp
Z2h0RGlyOwotCi0gICAgICAgIGF0dHJpYnV0ZSB2ZWMzIHZOb3JtYWw7Ci0gICAgICAgIGF0dHJp
YnV0ZSB2ZWM0IHZDb2xvcjsKLSAgICAgICAgYXR0cmlidXRlIHZlYzQgdlBvc2l0aW9uOwotICAg
ICAgICAKLSAgICAgICAgdmFyeWluZyBmbG9hdCB2X0RvdDsKLSAgICAgICAgCi0gICAgICAgIHZv
aWQgbWFpbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGdsX0Zyb250Q29sb3IgPSB2Q29sb3I7
Ci0gICAgICAgICAgICB2ZWM0IHRyYW5zTm9ybWFsID0gbXZNYXRyaXggKiB2ZWM0KHZOb3JtYWws
MSk7Ci0gICAgICAgICAgICB2X0RvdCA9IG1heChkb3QodHJhbnNOb3JtYWwueHl6LCBsaWdodERp
ciksIDAuMCk7Ci0gICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IHBNYXRyaXggKiBtdk1hdHJpeCAq
IHZQb3NpdGlvbjsKLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotCi0gICAgPHNjcmlwdCBpZD0i
ZnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+Ci0gICAgICAgIHZhcnlpbmcgZmxv
YXQgdl9Eb3Q7Ci0gICAgICAgIAotICAgICAgICB2b2lkIG1haW4oKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGdsX0NvbG9yLnh5eiAqIHZfRG90LCBnbF9Db2xv
ci5hKTsKLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotCi0gICAgPHNjcmlwdD4KLSAgICAgICAg
ZnVuY3Rpb24gaW5pdCgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBnbCA9IGluaXRXZWJH
TCgiZXhhbXBsZSIsICJ2c2hhZGVyIiwgImZzaGFkZXIiLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWyAidk5vcm1hbCIsICJ2Q29sb3IiLCAidlBvc2l0aW9uIl0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsgMCwgMCwgMCwgMSBdLCAxMDAwMCk7Ci0KLSAgICAg
ICAgICAgIGdsLnVuaWZvcm0zZihnbC5nZXRVbmlmb3JtTG9jYXRpb24oZ2wucHJvZ3JhbSwgImxp
Z2h0RGlyIiksIDAsIDAsIDEpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBnbC5ib3ggPSBt
YWtlQm94KGdsKTsKLQotICAgICAgICAgICAgLy8gY29sb3IgYXJyYXkKLSAgICAgICAgICAgIHZh
ciBjb2xvcnMgPSBuZXcgV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSgKLSAgICAgICAgICAgICAgICBb
ICAwLCAwLCAxLCAxLCAgIDAsIDAsIDEsIDEsICAgMCwgMCwgMSwgMSwgICAwLCAwLCAxLCAxLCAg
ICAgLy8gdjAtdjEtdjItdjMgZnJvbnQKLSAgICAgICAgICAgICAgICAgICAxLCAwLCAwLCAxLCAg
IDEsIDAsIDAsIDEsICAgMSwgMCwgMCwgMSwgICAxLCAwLCAwLCAxLCAgICAgLy8gdjAtdjMtdjQt
djUgcmlnaHQKLSAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxLCAgIDAsIDEsIDAsIDEsICAg
MCwgMSwgMCwgMSwgICAwLCAxLCAwLCAxLCAgICAgLy8gdjAtdjUtdjYtdjEgdG9wCi0gICAgICAg
ICAgICAgICAgICAgMSwgMSwgMCwgMSwgICAxLCAxLCAwLCAxLCAgIDEsIDEsIDAsIDEsICAgMSwg
MSwgMCwgMSwgICAgIC8vIHYxLXY2LXY3LXYyIGxlZnQKLSAgICAgICAgICAgICAgICAgICAxLCAw
LCAxLCAxLCAgIDEsIDAsIDEsIDEsICAgMSwgMCwgMSwgMSwgICAxLCAwLCAxLCAxLCAgICAgLy8g
djctdjQtdjMtdjIgYm90dG9tCi0gICAgICAgICAgICAgICAgICAgMCwgMSwgMSwgMSwgICAwLCAx
LCAxLCAxLCAgIDAsIDEsIDEsIDEsICAgMCwgMSwgMSwgMSBdICAgIC8vIHY0LXY3LXY2LXY1IGJh
Y2sKLSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGdsLmJveC5jb2xv
ck9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihn
bC5BUlJBWV9CVUZGRVIsIGdsLmJveC5jb2xvck9iamVjdCk7Ci0gICAgICAgICAgICBnbC5idWZm
ZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgY29sb3JzLCBnbC5TVEFUSUNfRFJBVyk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIHJldHVybiBnbDsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgd2lkdGggPSAtMTsKLSAgICAgICAgaGVpZ2h0ID0g
LTE7Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvbiByZXNoYXBlKGdsKQotICAgICAgICB7Ci0g
ICAgICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4YW1wbGUn
KTsKLSAgICAgICAgICAgIGlmIChjYW52YXMuY2xpZW50V2lkdGggPT0gd2lkdGggJiYgY2FudmFz
LmNsaWVudEhlaWdodCA9PSBoZWlnaHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgICAgICB3aWR0aCA9IGNhbnZhcy5jbGllbnRXaWR0aDsKLSAgICAgICAgICAgIGhlaWdodCA9
IGNhbnZhcy5jbGllbnRIZWlnaHQ7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGdsLnZpZXdw
b3J0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgdmFyIHBNYXRyaXggPSBuZXcg
Q2FudmFzTWF0cml4NCgpOwotICAgICAgICAgICAgcE1hdHJpeC5sb29rYXQoMCwwLDEwLCAwLCAw
LCAwLCAwLCAxLCAwKTsKLSAgICAgICAgICAgIHBNYXRyaXgucGVyc3BlY3RpdmUoMzAsIHdpZHRo
L2hlaWdodCwgMSwgMTAwMDApOwotICAgICAgICAgICAgZ2wudW5pZm9ybU1hdHJpeDRmdihnbC5n
ZXRVbmlmb3JtTG9jYXRpb24oZ2wucHJvZ3JhbSwgInBNYXRyaXgiKSwgZmFsc2UsIHBNYXRyaXgu
Z2V0QXNDYW52YXNGbG9hdEFycmF5KCkpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBm
dW5jdGlvbiBkcmF3UGljdHVyZShnbCkKLSAgICAgICAgewotICAgICAgICAgICAgcmVzaGFwZShn
bCk7Ci0gICAgICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhf
QlVGRkVSX0JJVCk7Ci0KLSAgICAgICAgICAgIHZhciBtdk1hdHJpeCA9IG5ldyBDYW52YXNNYXRy
aXg0KCk7Ci0gICAgICAgICAgICBtdk1hdHJpeC5yb3RhdGUoY3VycmVudEFuZ2xlLCAwLDEsMCk7
Ci0gICAgICAgICAgICBtdk1hdHJpeC5yb3RhdGUoMjAsIDEsMCwwKTsKLSAgICAgICAgICAgIGds
LnVuaWZvcm1NYXRyaXg0ZnYoZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGdsLnByb2dyYW0sICJtdk1h
dHJpeCIpLCBmYWxzZSwgbXZNYXRyaXguZ2V0QXNDYW52YXNGbG9hdEFycmF5KCkpOwotCi0gICAg
ICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsKLSAgICAgICAgICAgIGdsLmVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KDEpOwotICAgICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0
cmliQXJyYXkoMik7Ci0KLSAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVS
LCBnbC5ib3gudmVydGV4T2JqZWN0KTsKLSAgICAgICAgICAgIGdsLnZlcnRleEF0dHJpYlBvaW50
ZXIoMiwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIGdsLmJveC5ub3JtYWxPYmplY3QpOwot
ICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAzLCBnbC5GTE9BVCwgZmFsc2Us
IDAsIDApOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZ
X0JVRkZFUiwgZ2wuYm94LmNvbG9yT2JqZWN0KTsKLSAgICAgICAgICAgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMSwgNCwgZ2wuVU5TSUdORURfQllURSwgZmFsc2UsIDAsIDApOwotCi0gICAgICAg
ICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBnbC5ib3guaW5kZXhP
YmplY3QpOwotICAgICAgICAgICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgZ2wuYm94
Lm51bUluZGljZXMsIGdsLlVOU0lHTkVEX0JZVEUsIDApOwotCi0gICAgICAgICAgICBnbC5mbHVz
aCgpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBmcmFtZXJhdGUuc25hcHNob3QoKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgY3VycmVudEFuZ2xlICs9IGluY0FuZ2xlOwotICAgICAg
ICAgICAgaWYgKGN1cnJlbnRBbmdsZSA+IDM2MCkKLSAgICAgICAgICAgICAgICBjdXJyZW50QW5n
bGUgLT0gMzYwOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvbiBzdGFydCgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBnbCA9IGluaXQoKTsKLSAgICAgICAgICAgIGN1
cnJlbnRBbmdsZSA9IDA7Ci0gICAgICAgICAgICBpbmNBbmdsZSA9IDAuNTsKLSAgICAgICAgICAg
IGZyYW1lcmF0ZSA9IG5ldyBGcmFtZXJhdGUoImZyYW1lcmF0ZSIpOwotICAgICAgICAgICAgc2V0
SW50ZXJ2YWwoZnVuY3Rpb24oKSB7IGRyYXdQaWN0dXJlKGdsKSB9LCAxMCk7Ci0gICAgICAgIH0K
LSAgICA8L3NjcmlwdD4KLSAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICAgICAgICBjYW52
YXMgewotICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7Ci0gICAgICAgICAgICB3
aWR0aDo5MCU7Ci0gICAgICAgICAgICBoZWlnaHQ6OTAlOwotICAgICAgICB9Ci0gICAgICAgIC50
ZXh0IHsKLSAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlOwotICAgICAgICAgICAgdG9wOjEw
MHB4OwotICAgICAgICAgICAgbGVmdDoyMHB4OwotICAgICAgICAgICAgZm9udC1zaXplOjJlbTsK
LSAgICAgICAgICAgIGNvbG9yOiBibHVlOwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLSAgPC9o
ZWFkPgotICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgotICAgIDxjYW52YXMgaWQ9ImV4YW1wbGUi
PgotICAgIFRoZXJlIGlzIHN1cHBvc2VkIHRvIGJlIGFuIGV4YW1wbGUgZHJhd2luZyBoZXJlLCBi
dXQgaXQncyBub3QgaW1wb3J0YW50LgotICAgIDwvY2FudmFzPgotICAgIDxkaXYgY2xhc3M9InRl
eHQiPlRoaXMgaXMgc29tZSB0ZXh0IHVuZGVyIHRoZSBjYW52YXM8L2Rpdj4KLSAgICA8ZGl2IGlk
PSJmcmFtZXJhdGUiPjwvZGl2PgotICA8L2JvZHk+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9
IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzx0aXRs
ZT5TcGlubmluZyBXZWJHTCBCb3g8L3RpdGxlPgorCis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL0Nh
bnZhc01hdHJpeC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3V0aWxzM2QuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+IDwvc2Ny
aXB0PgorPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorICAg
IHVuaWZvcm0gbWF0NCB1X21vZGVsVmlld1Byb2pNYXRyaXg7CisgICAgdW5pZm9ybSBtYXQ0IHVf
bm9ybWFsTWF0cml4OworICAgIHVuaWZvcm0gdmVjMyBsaWdodERpcjsKKworICAgIGF0dHJpYnV0
ZSB2ZWMzIHZOb3JtYWw7CisgICAgYXR0cmlidXRlIHZlYzQgdkNvbG9yOworICAgIGF0dHJpYnV0
ZSB2ZWM0IHZQb3NpdGlvbjsKKworICAgIHZhcnlpbmcgZmxvYXQgdl9Eb3Q7CisgICAgdmFyeWlu
ZyB2ZWM0IHZfQ29sb3I7CisKKyAgICB2b2lkIG1haW4oKQorICAgIHsKKyAgICAgICAgZ2xfUG9z
aXRpb24gPSB1X21vZGVsVmlld1Byb2pNYXRyaXggKiB2UG9zaXRpb247CisgICAgICAgIHZfQ29s
b3IgPSB2Q29sb3I7CisgICAgICAgIHZlYzQgdHJhbnNOb3JtYWwgPSB1X25vcm1hbE1hdHJpeCAq
IHZlYzQodk5vcm1hbCwgMSk7CisgICAgICAgIHZfRG90ID0gbWF4KGRvdCh0cmFuc05vcm1hbC54
eXosIGxpZ2h0RGlyKSwgMC4wKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHNjcmlwdCBpZD0iZnNo
YWRlciIgdHlwZT0ieC1zaGFkZXIveC1mcmFnbWVudCI+CisgICAgdmFyeWluZyBmbG9hdCB2X0Rv
dDsKKyAgICB2YXJ5aW5nIHZlYzQgdl9Db2xvcjsKKworICAgIHZvaWQgbWFpbigpCisgICAgewor
ICAgICAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHZfQ29sb3IueHl6ICogdl9Eb3QsIHZfQ29sb3Iu
YSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gaW5pdCgpCisg
ICAgeworICAgICAgICAvLyBJbml0aWFsaXplCisgICAgICAgIHZhciBnbCA9IGluaXRXZWJHTCgK
KyAgICAgICAgICAgIC8vIFRoZSBpZCBvZiB0aGUgQ2FudmFzIEVsZW1lbnQKKyAgICAgICAgICAg
ICJleGFtcGxlIiwKKyAgICAgICAgICAgIC8vIFRoZSBpZHMgb2YgdGhlIHZlcnRleCBhbmQgZnJh
Z21lbnQgc2hhZGVycworICAgICAgICAgICAgInZzaGFkZXIiLCAiZnNoYWRlciIsIAorICAgICAg
ICAgICAgLy8gVGhlIHZlcnRleCBhdHRyaWJ1dGUgbmFtZXMgdXNlZCBieSB0aGUgc2hhZGVycy4K
KyAgICAgICAgICAgIC8vIFRoZSBvcmRlciB0aGV5IGFwcGVhciBoZXJlIGNvcnJlc3BvbmRzIHRv
IHRoZWlyIGluZGV4CisgICAgICAgICAgICAvLyB1c2VkIGxhdGVyLgorICAgICAgICAgICAgWyAi
dk5vcm1hbCIsICJ2Q29sb3IiLCAidlBvc2l0aW9uIl0sCisgICAgICAgICAgICAvLyBUaGUgY2xl
YXIgY29sb3IgYW5kIGRlcHRoIHZhbHVlcworICAgICAgICAgICAgWyAwLCAwLCAwLCAxIF0sIDEw
MDAwKTsKKworICAgICAgICAvLyBTZXQgdXAgYSB1bmlmb3JtIHZhcmlhYmxlIGZvciB0aGUgc2hh
ZGVycworICAgICAgICBnbC51bmlmb3JtM2YoZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGdsLnByb2dy
YW0sICJsaWdodERpciIpLCAwLCAwLCAxKTsKKworICAgICAgICAvLyBDcmVhdGUgYSBib3guIE9u
IHJldHVybiAnZ2wnIGNvbnRhaW5zIGEgJ2JveCcgcHJvcGVydHkgd2l0aAorICAgICAgICAvLyB0
aGUgQnVmZmVyT2JqZWN0cyBjb250YWluaW5nIHRoZSBhcnJheXMgZm9yIHZlcnRpY2VzLAorICAg
ICAgICAvLyBub3JtYWxzLCB0ZXh0dXJlIGNvb3JkcywgYW5kIGluZGljZXMuCisgICAgICAgIGds
LmJveCA9IG1ha2VCb3goZ2wpOworCisgICAgICAgIC8vIFNldCB1cCB0aGUgYXJyYXkgb2YgY29s
b3JzIGZvciB0aGUgY3ViZSdzIGZhY2VzCisgICAgICAgIHZhciBjb2xvcnMgPSBuZXcgV2ViR0xV
bnNpZ25lZEJ5dGVBcnJheSgKKyAgICAgICAgICAgIFsgIDAsIDAsIDEsIDEsICAgMCwgMCwgMSwg
MSwgICAwLCAwLCAxLCAxLCAgIDAsIDAsIDEsIDEsICAgICAvLyB2MC12MS12Mi12MyBmcm9udAor
ICAgICAgICAgICAgICAgMSwgMCwgMCwgMSwgICAxLCAwLCAwLCAxLCAgIDEsIDAsIDAsIDEsICAg
MSwgMCwgMCwgMSwgICAgIC8vIHYwLXYzLXY0LXY1IHJpZ2h0CisgICAgICAgICAgICAgICAwLCAx
LCAwLCAxLCAgIDAsIDEsIDAsIDEsICAgMCwgMSwgMCwgMSwgICAwLCAxLCAwLCAxLCAgICAgLy8g
djAtdjUtdjYtdjEgdG9wCisgICAgICAgICAgICAgICAxLCAxLCAwLCAxLCAgIDEsIDEsIDAsIDEs
ICAgMSwgMSwgMCwgMSwgICAxLCAxLCAwLCAxLCAgICAgLy8gdjEtdjYtdjctdjIgbGVmdAorICAg
ICAgICAgICAgICAgMSwgMCwgMSwgMSwgICAxLCAwLCAxLCAxLCAgIDEsIDAsIDEsIDEsICAgMSwg
MCwgMSwgMSwgICAgIC8vIHY3LXY0LXYzLXYyIGJvdHRvbQorICAgICAgICAgICAgICAgMCwgMSwg
MSwgMSwgICAwLCAxLCAxLCAxLCAgIDAsIDEsIDEsIDEsICAgMCwgMSwgMSwgMSBdICAgIC8vIHY0
LXY3LXY2LXY1IGJhY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICk7CisKKyAgICAgICAgLy8gU2V0IHVwIHRoZSB2ZXJ0ZXggYnVmZmVyIGZvciB0aGUg
Y29sb3JzCisgICAgICAgIGdsLmJveC5jb2xvck9iamVjdCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwor
ICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuYm94LmNvbG9yT2JqZWN0
KTsKKyAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGNvbG9ycywgZ2wuU1RB
VElDX0RSQVcpOworCisgICAgICAgIC8vIENyZWF0ZSBzb21lIG1hdHJpY2VzIHRvIHVzZSBsYXRl
ciBhbmQgc2F2ZSB0aGVpciBsb2NhdGlvbnMgaW4gdGhlIHNoYWRlcnMKKyAgICAgICAgZ2wubXZN
YXRyaXggPSBuZXcgQ2FudmFzTWF0cml4NCgpOworICAgICAgICBnbC51X25vcm1hbE1hdHJpeExv
YyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihnbC5wcm9ncmFtLCAidV9ub3JtYWxNYXRyaXgiKTsK
KyAgICAgICAgZ2wubm9ybWFsTWF0cml4ID0gbmV3IENhbnZhc01hdHJpeDQoKTsKKyAgICAgICAg
Z2wudV9tb2RlbFZpZXdQcm9qTWF0cml4TG9jID0KKyAgICAgICAgICAgICAgICBnbC5nZXRVbmlm
b3JtTG9jYXRpb24oZ2wucHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIpOworICAgICAg
ICBnbC5tdnBNYXRyaXggPSBuZXcgQ2FudmFzTWF0cml4NCgpOworCisgICAgICAgIC8vIEVuYWJs
ZSBhbGwgb2YgdGhlIHZlcnRleCBhdHRyaWJ1dGUgYXJyYXlzLgorICAgICAgICBnbC5lbmFibGVW
ZXJ0ZXhBdHRyaWJBcnJheSgwKTsKKyAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
MSk7CisgICAgICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDIpOworCisgICAgICAgIC8v
IFNldCB1cCBhbGwgdGhlIHZlcnRleCBhdHRyaWJ1dGVzIGZvciB2ZXJ0aWNlcywgbm9ybWFscyBh
bmQgY29sb3JzCisgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5ib3gu
dmVydGV4T2JqZWN0KTsKKyAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigyLCAzLCBnbC5G
TE9BVCwgZmFsc2UsIDAsIDApOworCisgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVG
RkVSLCBnbC5ib3gubm9ybWFsT2JqZWN0KTsKKyAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRl
cigwLCAzLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworCisgICAgICAgIGdsLmJpbmRCdWZmZXIo
Z2wuQVJSQVlfQlVGRkVSLCBnbC5ib3guY29sb3JPYmplY3QpOworICAgICAgICBnbC52ZXJ0ZXhB
dHRyaWJQb2ludGVyKDEsIDQsIGdsLlVOU0lHTkVEX0JZVEUsIGZhbHNlLCAwLCAwKTsKKworICAg
ICAgICAvLyBCaW5kIHRoZSBpbmRleCBhcnJheQorICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVM
RU1FTlRfQVJSQVlfQlVGRkVSLCBnbC5ib3guaW5kZXhPYmplY3QpOworCisgICAgICAgIHJldHVy
biBnbDsKKyAgICB9CisKKyAgICB3aWR0aCA9IC0xOworICAgIGhlaWdodCA9IC0xOworCisgICAg
ZnVuY3Rpb24gcmVzaGFwZShnbCkKKyAgICB7CisgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZXhhbXBsZScpOworICAgICAgICBpZiAoY2FudmFzLmNsaWVudFdp
ZHRoID09IHdpZHRoICYmIGNhbnZhcy5jbGllbnRIZWlnaHQgPT0gaGVpZ2h0KQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHdpZHRoID0gY2FudmFzLmNsaWVudFdpZHRoOworICAgICAg
ICBoZWlnaHQgPSBjYW52YXMuY2xpZW50SGVpZ2h0OworCisgICAgICAgIC8vIFNldCB0aGUgdmll
d3BvcnQgYW5kIHByb2plY3Rpb24gbWF0cml4IGZvciB0aGUgc2NlbmUKKyAgICAgICAgZ2wudmll
d3BvcnQoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgIGdsLnBlcnNwZWN0aXZlTWF0cml4
ID0gbmV3IENhbnZhc01hdHJpeDQoKTsKKyAgICAgICAgZ2wucGVyc3BlY3RpdmVNYXRyaXgubG9v
a2F0KDAsIDAsIDcsIDAsIDAsIDAsIDAsIDEsIDApOworICAgICAgICBnbC5wZXJzcGVjdGl2ZU1h
dHJpeC5wZXJzcGVjdGl2ZSgzMCwgd2lkdGgvaGVpZ2h0LCAxLCAxMDAwMCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gZHJhd1BpY3R1cmUoZ2wpCisgICAgeworICAgICAgICAvLyBNYWtlIHN1cmUg
dGhlIGNhbnZhcyBpcyBzaXplZCBjb3JyZWN0bHkuCisgICAgICAgIHJlc2hhcGUoZ2wpOworCisg
ICAgICAgIC8vIENsZWFyIHRoZSBjYW52YXMKKyAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVG
RkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOworCisgICAgICAgIC8vIE1ha2UgYSBtb2Rl
bC92aWV3IG1hdHJpeC4KKyAgICAgICAgZ2wubXZNYXRyaXgubWFrZUlkZW50aXR5KCk7CisgICAg
ICAgIGdsLm12TWF0cml4LnJvdGF0ZShjdXJyZW50QW5nbGUsIDAsMSwwKTsKKyAgICAgICAgZ2wu
bXZNYXRyaXgucm90YXRlKDIwLCAxLDAsMCk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBu
b3JtYWwgbWF0cml4IGZyb20gdGhlIG1vZGVsLXZpZXcgbWF0cml4IGFuZCBwYXNzIGl0IGluCisg
ICAgICAgIGdsLm5vcm1hbE1hdHJpeC5sb2FkKGdsLm12TWF0cml4KTsKKyAgICAgICAgZ2wubm9y
bWFsTWF0cml4LmludmVydCgpOworICAgICAgICBnbC5ub3JtYWxNYXRyaXgudHJhbnNwb3NlKCk7
CisgICAgICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYoZ2wudV9ub3JtYWxNYXRyaXhMb2MsIGZhbHNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsLm5vcm1hbE1hdHJpeC5nZXRBc1dlYkdM
RmxvYXRBcnJheSgpKTsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIG1vZGVsLXZpZXcgKiBw
cm9qZWN0aW9uIG1hdHJpeCBhbmQgcGFzcyBpdCBpbgorICAgICAgICBnbC5tdnBNYXRyaXgubG9h
ZChnbC5tdk1hdHJpeCk7CisgICAgICAgIGdsLm12cE1hdHJpeC5tdWx0UmlnaHQoZ2wucGVyc3Bl
Y3RpdmVNYXRyaXgpOworICAgICAgICBnbC51bmlmb3JtTWF0cml4NGZ2KGdsLnVfbW9kZWxWaWV3
UHJvak1hdHJpeExvYywgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2wubXZw
TWF0cml4LmdldEFzV2ViR0xGbG9hdEFycmF5KCkpOworCisgICAgICAgIC8vIERyYXcgdGhlIGN1
YmUKKyAgICAgICAgZ2wuZHJhd0VsZW1lbnRzKGdsLlRSSUFOR0xFUywgZ2wuYm94Lm51bUluZGlj
ZXMsIGdsLlVOU0lHTkVEX0JZVEUsIDApOworCisgICAgICAgIC8vIEZpbmlzaCB1cC4KKyAgICAg
ICAgZ2wuZmx1c2goKTsKKworICAgICAgICAvLyBTaG93IHRoZSBmcmFtZXJhdGUKKyAgICAgICAg
ZnJhbWVyYXRlLnNuYXBzaG90KCk7CisKKyAgICAgICAgY3VycmVudEFuZ2xlICs9IGluY0FuZ2xl
OworICAgICAgICBpZiAoY3VycmVudEFuZ2xlID4gMzYwKQorICAgICAgICAgICAgY3VycmVudEFu
Z2xlIC09IDM2MDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgeworICAgICAg
ICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7CisgICAgICAgIHZh
ciB3ID0gTWF0aC5mbG9vcih3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOSk7CisgICAgICAgIHZhciBo
ID0gTWF0aC5mbG9vcih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkpOworCisgICAgICAgIGMud2lk
dGggPSB3OworICAgICAgICBjLmhlaWdodCA9IGg7CisKKyAgICAgICAgdmFyIGdsID0gaW5pdCgp
OworICAgICAgICBjdXJyZW50QW5nbGUgPSAwOworICAgICAgICBpbmNBbmdsZSA9IDAuNTsKKyAg
ICAgICAgZnJhbWVyYXRlID0gbmV3IEZyYW1lcmF0ZSgiZnJhbWVyYXRlIik7CisgICAgICAgIHNl
dEludGVydmFsKGZ1bmN0aW9uKCkgeyBkcmF3UGljdHVyZShnbCkgfSwgMTApOworICAgIH0KKzwv
c2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICBjYW52YXMgeworICAgICAgICBi
b3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgLnRleHQgeworICAgICAgICBwb3Np
dGlvbjphYnNvbHV0ZTsKKyAgICAgICAgdG9wOjEwMHB4OworICAgICAgICBsZWZ0OjIwcHg7Cisg
ICAgICAgIGZvbnQtc2l6ZToyZW07CisgICAgICAgIGNvbG9yOiBibHVlOworICAgIH0KKzwvc3R5
bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ic3RhcnQoKSI+Cis8Y2FudmFzIGlkPSJleGFt
cGxlIj4KKyAgICBJZiB5b3UncmUgc2VlaW5nIHRoaXMgeW91ciB3ZWIgYnJvd3NlciBkb2Vzbid0
IHN1cHBvcnQgdGhlICZsdDtjYW52YXM+Jmd0OyBlbGVtZW50LiBPdWNoIQorPC9jYW52YXM+Cis8
ZGl2IGNsYXNzPSJ0ZXh0Ij5UaGlzIGlzIHNvbWUgdGV4dCBvdmVyIHRoZSBjYW52YXM8L2Rpdj4K
KzxkaXYgaWQ9ImZyYW1lcmF0ZSI+PC9kaXY+Cis8L2JvZHk+CisKIDwvaHRtbD4KSW5kZXg6IFdl
YkNvcmUvbWFudWFsLXRlc3RzL3dlYmdsL1RlYXBvdFBlclBpeGVsLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvd2ViZ2wvVGVhcG90UGVyUGl4ZWwuaHRtbAkocmV2aXNp
b24gNTIwNDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy93ZWJnbC9UZWFwb3RQZXJQaXhlbC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KICAgPGhlYWQ+Ci0gICAgPHRpdGxlPkNhbnZhczNkIGV4YW1wbGU8L3RpdGxlPgorICAgIDx0
aXRsZT5UZWFwb3QgKHBlci1waXhlbCk8L3RpdGxlPgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvQ2FudmFzTWF0cml4LmpzIj4gPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy91dGlsczNkLmpzIj4gPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBpZD0idnNoYWRlciIgdHlwZT0i
eC1zaGFkZXIveC12ZXJ0ZXgiPgpAQCAtMTU0LDcgKzE1NCw2IEBACiAgICAgPC9zY3JpcHQ+CiAK
ICAgICA8c2NyaXB0PgotICAgIGNvbnNvbGUubG9nKCJIZWxsbyIpOwogICAgIGZ1bmN0aW9uIHNl
dERpcmVjdGlvbmFsTGlnaHQoY3R4LCBwcm9ncmFtLCBleWVWZWN0b3IsIGRpcmVjdGlvbiwgYW1i
aWVudCwgZGlmZnVzZSwgc3BlY3VsYXIpCiAgICAgewogICAgICAgICB2YXIgbGlnaHRTdHJpbmcg
PSAidV9saWdodC4iOwpAQCAtMjgzLDE2ICsyODIsMTYgQEAKICAgICAgICAgICAgIG12TWF0cml4
Lm1ha2VJZGVudGl0eSgpOwogICAgICAgICAgICAgbXZNYXRyaXgucm90YXRlKGN1cnJlbnRBbmds
ZSwgMCwgMSwgMCk7CiAgICAgICAgICAgICBtdk1hdHJpeC5yb3RhdGUoMTAsIDEsMCwwKTsKLSAg
ICAgICAgICAgIGN0eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5nZXRVbmlmb3JtTG9jYXRpb24oY3R4
LnByb2dyYW0sICJ1X21vZGVsVmlld01hdHJpeCIpLCBmYWxzZSwgbXZNYXRyaXguZ2V0QXNDYW52
YXNGbG9hdEFycmF5KCkpOworICAgICAgICAgICAgY3R4LnVuaWZvcm1NYXRyaXg0ZnYoY3R4Lmdl
dFVuaWZvcm1Mb2NhdGlvbihjdHgucHJvZ3JhbSwgInVfbW9kZWxWaWV3TWF0cml4IiksIGZhbHNl
LCBtdk1hdHJpeC5nZXRBc1dlYkdMRmxvYXRBcnJheSgpKTsKIAogICAgICAgICAgICAgLy8gY29u
c3RydWN0IHRoZSBub3JtYWwgbWF0cml4IGZyb20gdGhlIG1vZGVsLXZpZXcgbWF0cml4CiAgICAg
ICAgICAgICBub3JtYWxNYXRyaXgubG9hZChtdk1hdHJpeCk7CiAgICAgICAgICAgICBub3JtYWxN
YXRyaXguaW52ZXJ0KCk7CiAgICAgICAgICAgICBub3JtYWxNYXRyaXgudHJhbnNwb3NlKCk7Ci0g
ICAgICAgICAgICBjdHgudW5pZm9ybU1hdHJpeDRmdihjdHguZ2V0VW5pZm9ybUxvY2F0aW9uKGN0
eC5wcm9ncmFtLCAidV9ub3JtYWxNYXRyaXgiKSwgZmFsc2UsIG5vcm1hbE1hdHJpeC5nZXRBc0Nh
bnZhc0Zsb2F0QXJyYXkoKSk7CisgICAgICAgICAgICBjdHgudW5pZm9ybU1hdHJpeDRmdihjdHgu
Z2V0VW5pZm9ybUxvY2F0aW9uKGN0eC5wcm9ncmFtLCAidV9ub3JtYWxNYXRyaXgiKSwgZmFsc2Us
IG5vcm1hbE1hdHJpeC5nZXRBc1dlYkdMRmxvYXRBcnJheSgpKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbXZNYXRyaXgubXVsdFJpZ2h0KGN0eC5wZXJzcGVjdGl2ZU1hdHJpeCk7Ci0gICAg
ICAgICAgICBjdHgudW5pZm9ybU1hdHJpeDRmdihjdHguZ2V0VW5pZm9ybUxvY2F0aW9uKGN0eC5w
cm9ncmFtLCAidV9tb2RlbFZpZXdQcm9qTWF0cml4IiksIGZhbHNlLCBtdk1hdHJpeC5nZXRBc0Nh
bnZhc0Zsb2F0QXJyYXkoKSk7CisgICAgICAgICAgICBjdHgudW5pZm9ybU1hdHJpeDRmdihjdHgu
Z2V0VW5pZm9ybUxvY2F0aW9uKGN0eC5wcm9ncmFtLCAidV9tb2RlbFZpZXdQcm9qTWF0cml4Iiks
IGZhbHNlLCBtdk1hdHJpeC5nZXRBc1dlYkdMRmxvYXRBcnJheSgpKTsKIAogICAgICAgICAgICAg
Y3R4LmRyYXdFbGVtZW50cyhjdHguVFJJQU5HTEVTLCBvYmoubnVtSW5kaWNlcywgY3R4LlVOU0lH
TkVEX1NIT1JULCAwKTsKICAgICAgICAgICAgIApAQCAtMzA3LDYgKzMwNiwxMyBAQAogICAgICAg
ICAKICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQogICAgICAgICB7CisgICAgICAgICAgICB2YXIg
YyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlIik7CisgICAgICAgICAgICB2YXIg
dyA9IE1hdGguZmxvb3Iod2luZG93LmlubmVyV2lkdGggKiAwLjkpOworICAgICAgICAgICAgdmFy
IGggPSBNYXRoLmZsb29yKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOSk7CisKKyAgICAgICAgICAg
IGMud2lkdGggPSB3OworICAgICAgICAgICAgYy5oZWlnaHQgPSBoOworCiAgICAgICAgICAgICB2
YXIgY3R4ID0gaW5pdCgpOwogICAgICAgICAgICAgY3VycmVudEFuZ2xlID0gMDsKICAgICAgICAg
ICAgIGluY0FuZ2xlID0gMC4yOwpAQCAtMzE4LDggKzMyNCw2IEBACiAgICAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KICAgICAgICAgY2FudmFzIHsKICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNv
bGlkIGJsYWNrOwotICAgICAgICAgICAgd2lkdGg6OTAlOwotICAgICAgICAgICAgaGVpZ2h0Ojkw
JTsKICAgICAgICAgfQogICAgIDwvc3R5bGU+CiAgIDwvaGVhZD4KSW5kZXg6IFdlYkNvcmUvbWFu
dWFsLXRlc3RzL3dlYmdsL1RlYXBvdFBlclZlcnRleC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbWFudWFsLXRlc3RzL3dlYmdsL1RlYXBvdFBlclZlcnRleC5odG1sCShyZXZpc2lvbiA1MjA0
MCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL3dlYmdsL1RlYXBvdFBlclZlcnRleC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KICAg
PGhlYWQ+Ci0gICAgPHRpdGxlPkNhbnZhczNkIGV4YW1wbGU8L3RpdGxlPgorICAgIDx0aXRsZT5U
ZWFwb3QgKHBlci12ZXJ0ZXgpPC90aXRsZT4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL0Nh
bnZhc01hdHJpeC5qcyI+IDwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bHMzZC5qcyI+IDwvc2NyaXB0PgogICAgIDxzY3JpcHQgaWQ9InZzaGFkZXIiIHR5cGU9Ingtc2hh
ZGVyL3gtdmVydGV4Ij4KQEAgLTI1NiwxNiArMjU2LDE2IEBACiAgICAgICAgICAgICBtdk1hdHJp
eC5tYWtlSWRlbnRpdHkoKTsKICAgICAgICAgICAgIG12TWF0cml4LnJvdGF0ZShjdXJyZW50QW5n
bGUsIDAsIDEsIDApOwogICAgICAgICAgICAgbXZNYXRyaXgucm90YXRlKDEwLCAxLDAsMCk7Ci0g
ICAgICAgICAgICBjdHgudW5pZm9ybU1hdHJpeDRmdihjdHguZ2V0VW5pZm9ybUxvY2F0aW9uKGN0
eC5wcm9ncmFtLCAidV9tb2RlbFZpZXdNYXRyaXgiKSwgZmFsc2UsIG12TWF0cml4LmdldEFzQ2Fu
dmFzRmxvYXRBcnJheSgpKTsKKyAgICAgICAgICAgIGN0eC51bmlmb3JtTWF0cml4NGZ2KGN0eC5n
ZXRVbmlmb3JtTG9jYXRpb24oY3R4LnByb2dyYW0sICJ1X21vZGVsVmlld01hdHJpeCIpLCBmYWxz
ZSwgbXZNYXRyaXguZ2V0QXNXZWJHTEZsb2F0QXJyYXkoKSk7CiAKICAgICAgICAgICAgIC8vIGNv
bnN0cnVjdCB0aGUgbm9ybWFsIG1hdHJpeCBmcm9tIHRoZSBtb2RlbC12aWV3IG1hdHJpeAogICAg
ICAgICAgICAgbm9ybWFsTWF0cml4LmxvYWQobXZNYXRyaXgpOwogICAgICAgICAgICAgbm9ybWFs
TWF0cml4LmludmVydCgpOwogICAgICAgICAgICAgbm9ybWFsTWF0cml4LnRyYW5zcG9zZSgpOwot
ICAgICAgICAgICAgY3R4LnVuaWZvcm1NYXRyaXg0ZnYoY3R4LmdldFVuaWZvcm1Mb2NhdGlvbihj
dHgucHJvZ3JhbSwgInVfbm9ybWFsTWF0cml4IiksIGZhbHNlLCBub3JtYWxNYXRyaXguZ2V0QXND
YW52YXNGbG9hdEFycmF5KCkpOworICAgICAgICAgICAgY3R4LnVuaWZvcm1NYXRyaXg0ZnYoY3R4
LmdldFVuaWZvcm1Mb2NhdGlvbihjdHgucHJvZ3JhbSwgInVfbm9ybWFsTWF0cml4IiksIGZhbHNl
LCBub3JtYWxNYXRyaXguZ2V0QXNXZWJHTEZsb2F0QXJyYXkoKSk7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIG12TWF0cml4Lm11bHRSaWdodChjdHgucGVyc3BlY3RpdmVNYXRyaXgpOwotICAg
ICAgICAgICAgY3R4LnVuaWZvcm1NYXRyaXg0ZnYoY3R4LmdldFVuaWZvcm1Mb2NhdGlvbihjdHgu
cHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIpLCBmYWxzZSwgbXZNYXRyaXguZ2V0QXND
YW52YXNGbG9hdEFycmF5KCkpOworICAgICAgICAgICAgY3R4LnVuaWZvcm1NYXRyaXg0ZnYoY3R4
LmdldFVuaWZvcm1Mb2NhdGlvbihjdHgucHJvZ3JhbSwgInVfbW9kZWxWaWV3UHJvak1hdHJpeCIp
LCBmYWxzZSwgbXZNYXRyaXguZ2V0QXNXZWJHTEZsb2F0QXJyYXkoKSk7CiAKICAgICAgICAgICAg
IGN0eC5kcmF3RWxlbWVudHMoY3R4LlRSSUFOR0xFUywgb2JqLm51bUluZGljZXMsIGN0eC5VTlNJ
R05FRF9TSE9SVCwgMCk7CiAgICAgICAgICAgICAKQEAgLTI4MCw2ICsyODAsMTMgQEAKICAgICAg
ICAgCiAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKICAgICAgICAgeworICAgICAgICAgICAgdmFy
IGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhhbXBsZSIpOworICAgICAgICAgICAgdmFy
IHcgPSBNYXRoLmZsb29yKHdpbmRvdy5pbm5lcldpZHRoICogMC45KTsKKyAgICAgICAgICAgIHZh
ciBoID0gTWF0aC5mbG9vcih3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkpOworCisgICAgICAgICAg
ICBjLndpZHRoID0gdzsKKyAgICAgICAgICAgIGMuaGVpZ2h0ID0gaDsKKwogICAgICAgICAgICAg
dmFyIGN0eCA9IGluaXQoKTsKICAgICAgICAgICAgIGN1cnJlbnRBbmdsZSA9IDA7CiAgICAgICAg
ICAgICBpbmNBbmdsZSA9IDAuMjsKQEAgLTI5MSw4ICsyOTgsNiBAQAogICAgIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CiAgICAgICAgIGNhbnZhcyB7CiAgICAgICAgICAgICBib3JkZXI6IDJweCBz
b2xpZCBibGFjazsKLSAgICAgICAgICAgIHdpZHRoOjkwJTsKLSAgICAgICAgICAgIGhlaWdodDo5
MCU7CiAgICAgICAgIH0KICAgICA8L3N0eWxlPgogICA8L2hlYWQ+CkluZGV4OiBXZWJDb3JlL21h
bnVhbC10ZXN0cy93ZWJnbC9yZXNvdXJjZXMvQ2FudmFzTWF0cml4LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvbWFudWFsLXRlc3RzL3dlYmdsL3Jlc291cmNlcy9DYW52YXNNYXRyaXguanMJKHJl
dmlzaW9uIDUyMDQwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvd2ViZ2wvcmVzb3VyY2VzL0Nh
bnZhc01hdHJpeC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcgKzEzOSw3IEBAIENhbnZhc01h
dHJpeDQucHJvdG90eXBlLmdldEFzQXJyYXkgPSBmdW4KICAgICBdOwogfQogCi1DYW52YXNNYXRy
aXg0LnByb3RvdHlwZS5nZXRBc0NhbnZhc0Zsb2F0QXJyYXkgPSBmdW5jdGlvbigpCitDYW52YXNN
YXRyaXg0LnByb3RvdHlwZS5nZXRBc1dlYkdMRmxvYXRBcnJheSA9IGZ1bmN0aW9uKCkKIHsKICAg
ICByZXR1cm4gbmV3IFdlYkdMRmxvYXRBcnJheSh0aGlzLmdldEFzQXJyYXkoKSk7CiB9CkluZGV4
OiBXZWJDb3JlL21hbnVhbC10ZXN0cy93ZWJnbC9yZXNvdXJjZXMvdXRpbHMzZC5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0cy93ZWJnbC9yZXNvdXJjZXMvdXRpbHMzZC5qcwko
cmV2aXNpb24gNTIwNDApCisrKyBXZWJDb3JlL21hbnVhbC10ZXN0cy93ZWJnbC9yZXNvdXJjZXMv
dXRpbHMzZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTMsMTAgKzEzLDIxIEBACiAvLyBTZXQgdGhl
IGNsZWFyIGNvbG9yIHRvIHRoZSBwYXNzZWQgYXJyYXkgKDQgdmFsdWVzKSBhbmQgc2V0IHRoZSBj
bGVhciBkZXB0aCB0byB0aGUgcGFzc2VkIHZhbHVlLgogLy8gRW5hYmxlIGRlcHRoIHRlc3Rpbmcg
YW5kIGJsZW5kaW5nIHdpdGggYSBibGVuZCBmdW5jIG9mIChTUkNfQUxQSEEsIE9ORV9NSU5VU19T
UkNfQUxQSEEpCiAvLworLy8gQSBjb25zb2xlIGZ1bmN0aW9uIGlzIGFkZGVkIHRvIHRoZSBjb250
ZXh0OiBjb25zb2xlKHN0cmluZykuIFRoaXMgY2FuIGJlIHJlcGxhY2VkCisvLyBieSB0aGUgY2Fs
bGVyLiBCeSBkZWZhdWx0LCBpdCBtYXBzIHRvIHRoZSB3aW5kb3cuY29uc29sZSgpIGZ1bmN0aW9u
IG9uIFdlYktpdCBhbmQgdG8KKy8vIGFuIGVtcHR5IGZ1bmN0aW9uIG9uIG90aGVyIGJyb3dzZXJz
LgorLy8KIGZ1bmN0aW9uIGluaXRXZWJHTChjYW52YXNOYW1lLCB2c2hhZGVyLCBmc2hhZGVyLCBh
dHRyaWJzLCBjbGVhckNvbG9yLCBjbGVhckRlcHRoKQogewogICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChjYW52YXNOYW1lKTsKLSAgICB2YXIgZ2wgPSBjYW52YXMuZ2V0
Q29udGV4dCgid2Via2l0LTNkIik7CisgICAgdmFyIGdsID0gY2FudmFzLmdldENvbnRleHQoImV4
cGVyaW1lbnRhbC13ZWJnbCIpOworICAgIGlmICghZ2wpIHsKKyAgICAgICAgYWxlcnQoIk5vIFdl
YkdMIGNvbnRleHQgZm91bmQiKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAor
ICAgIC8vIEFkZCBhIGNvbnNvbGUKKyAgICBnbC5jb25zb2xlID0gKCJjb25zb2xlIiBpbiB3aW5k
b3cpID8gd2luZG93LmNvbnNvbGUgOiB7IGxvZzogZnVuY3Rpb24oKSB7IH0gfTsKIAogICAgIC8v
IGNyZWF0ZSBvdXIgc2hhZGVycwogICAgIHZhciB2ZXJ0ZXhTaGFkZXIgPSBsb2FkU2hhZGVyKGds
LCB2c2hhZGVyKTsKQEAgLTQ3LDcgKzU4LDcgQEAgZnVuY3Rpb24gaW5pdFdlYkdMKGNhbnZhc05h
bWUsIHZzaGFkZXIsIAogICAgIGlmICghbGlua2VkKSB7CiAgICAgICAgIC8vIHNvbWV0aGluZyB3
ZW50IHdyb25nIHdpdGggdGhlIGxpbmsKICAgICAgICAgdmFyIGVycm9yID0gZ2wuZ2V0UHJvZ3Jh
bUluZm9Mb2cgKGdsLnByb2dyYW0pOwotICAgICAgICBjb25zb2xlLmxvZygiRXJyb3IgaW4gcHJv
Z3JhbSBsaW5raW5nOiIrZXJyb3IpOworICAgICAgICBnbC5jb25zb2xlLmxvZygiRXJyb3IgaW4g
cHJvZ3JhbSBsaW5raW5nOiIrZXJyb3IpOwogCiAgICAgICAgIGdsLmRlbGV0ZVByb2dyYW0oZ2wu
cHJvZ3JhbSk7CiAgICAgICAgIGdsLmRlbGV0ZVByb2dyYW0oZnJhZ21lbnRTaGFkZXIpOwpAQCAt
NTgsOCArNjksOCBAQCBmdW5jdGlvbiBpbml0V2ViR0woY2FudmFzTmFtZSwgdnNoYWRlciwgCiAK
ICAgICBnbC51c2VQcm9ncmFtKGdsLnByb2dyYW0pOwogCi0gICAgZ2wuY2xlYXJDb2xvciAoY2xl
YXJDb2xvclswXSwgY2xlYXJDb2xvclsxXSwgY2xlYXJDb2xvclsyXSwgY2xlYXJDb2xvclszXSk7
Ci0gICAgZ2wuY2xlYXJEZXB0aCAoY2xlYXJEZXB0aCk7CisgICAgZ2wuY2xlYXJDb2xvcihjbGVh
ckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVhckNvbG9yWzNdKTsK
KyAgICBnbC5jbGVhckRlcHRoKGNsZWFyRGVwdGgpOwogCiAgICAgZ2wuZW5hYmxlKGdsLkRFUFRI
X1RFU1QpOwogICAgIGdsLmVuYWJsZShnbC5CTEVORCk7CkBAIC03OCw3ICs4OSw3IEBAIGZ1bmN0
aW9uIGxvYWRTaGFkZXIoY3R4LCBzaGFkZXJJZCkKIHsKICAgICB2YXIgc2hhZGVyU2NyaXB0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2hhZGVySWQpOwogICAgIGlmICghc2hhZGVyU2NyaXB0
KSB7Ci0gICAgICAgIGNvbnNvbGUubG9nKCIqKiogRXJyb3I6IHNoYWRlciBzY3JpcHQgJyIrc2hh
ZGVySWQrIicgbm90IGZvdW5kIik7CisgICAgICAgIGN0eC5jb25zb2xlLmxvZygiKioqIEVycm9y
OiBzaGFkZXIgc2NyaXB0ICciK3NoYWRlcklkKyInIG5vdCBmb3VuZCIpOwogICAgICAgICByZXR1
cm4gbnVsbDsKICAgICB9CiAgICAgICAgIApAQCAtODcsMTQgKzk4LDE0IEBAIGZ1bmN0aW9uIGxv
YWRTaGFkZXIoY3R4LCBzaGFkZXJJZCkKICAgICBlbHNlIGlmIChzaGFkZXJTY3JpcHQudHlwZSA9
PSAieC1zaGFkZXIveC1mcmFnbWVudCIpCiAgICAgICAgIHZhciBzaGFkZXJUeXBlID0gY3R4LkZS
QUdNRU5UX1NIQURFUjsKICAgICBlbHNlIHsKLSAgICAgICAgY29uc29sZS5sb2coIioqKiBFcnJv
cjogc2hhZGVyIHNjcmlwdCAnIitzaGFkZXJJZCsiJyBvZiB1bmRlZmluZWQgdHlwZSAnIitzaGFk
ZXJTY3JpcHQudHlwZSsiJyIpOyAgICAgICAKKyAgICAgICAgY3R4LmNvbnNvbGUubG9nKCIqKiog
RXJyb3I6IHNoYWRlciBzY3JpcHQgJyIrc2hhZGVySWQrIicgb2YgdW5kZWZpbmVkIHR5cGUgJyIr
c2hhZGVyU2NyaXB0LnR5cGUrIiciKTsgICAgICAgCiAgICAgICAgIHJldHVybiBudWxsOwogICAg
IH0KIAogICAgIC8vIENyZWF0ZSB0aGUgc2hhZGVyIG9iamVjdAogICAgIHZhciBzaGFkZXIgPSBj
dHguY3JlYXRlU2hhZGVyKHNoYWRlclR5cGUpOwogICAgIGlmIChzaGFkZXIgPT0gbnVsbCkgewot
ICAgICAgICBjb25zb2xlLmxvZygiKioqIEVycm9yOiB1bmFibGUgdG8gY3JlYXRlIHNoYWRlciAn
IitzaGFkZXJJZCsiJyIpOyAgICAgICAKKyAgICAgICAgY3R4LmNvbnNvbGUubG9nKCIqKiogRXJy
b3I6IHVuYWJsZSB0byBjcmVhdGUgc2hhZGVyICciK3NoYWRlcklkKyInIik7ICAgICAgIAogICAg
ICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKQEAgLTEwOSw3ICsxMjAsNyBAQCBmdW5jdGlvbiBs
b2FkU2hhZGVyKGN0eCwgc2hhZGVySWQpCiAgICAgaWYgKCFjb21waWxlZCkgewogICAgICAgICAv
LyBTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcgY29tcGlsYXRpb247IGdldCB0aGUgZXJyb3IK
ICAgICAgICAgdmFyIGVycm9yID0gY3R4LmdldFNoYWRlckluZm9Mb2coc2hhZGVyKTsKLSAgICAg
ICAgY29uc29sZS5sb2coIioqKiBFcnJvciBjb21waWxpbmcgc2hhZGVyICciK3NoYWRlcklkKyIn
OiIrZXJyb3IpOworICAgICAgICBjdHguY29uc29sZS5sb2coIioqKiBFcnJvciBjb21waWxpbmcg
c2hhZGVyICciK3NoYWRlcklkKyInOiIrZXJyb3IpOwogICAgICAgICBjdHguZGVsZXRlU2hhZGVy
KHNoYWRlcik7CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KQEAgLTE5NSwxMiArMjA2LDEy
IEBAIGZ1bmN0aW9uIG1ha2VCb3goY3R4KQogICAgIGN0eC5iaW5kQnVmZmVyKGN0eC5BUlJBWV9C
VUZGRVIsIHJldHZhbC52ZXJ0ZXhPYmplY3QpOwogICAgIGN0eC5idWZmZXJEYXRhKGN0eC5BUlJB
WV9CVUZGRVIsIHZlcnRpY2VzLCBjdHguU1RBVElDX0RSQVcpOwogICAgIAotICAgIGN0eC5iaW5k
QnVmZmVyKGN0eC5BUlJBWV9CVUZGRVIsIDApOworICAgIGN0eC5iaW5kQnVmZmVyKGN0eC5BUlJB
WV9CVUZGRVIsIG51bGwpOwogCiAgICAgcmV0dmFsLmluZGV4T2JqZWN0ID0gY3R4LmNyZWF0ZUJ1
ZmZlcigpOwogICAgIGN0eC5iaW5kQnVmZmVyKGN0eC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgcmV0
dmFsLmluZGV4T2JqZWN0KTsKICAgICBjdHguYnVmZmVyRGF0YShjdHguRUxFTUVOVF9BUlJBWV9C
VUZGRVIsIGluZGljZXMsIGN0eC5TVEFUSUNfRFJBVyk7Ci0gICAgY3R4LmJpbmRCdWZmZXIoY3R4
LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCAwKTsKKyAgICBjdHguYmluZEJ1ZmZlcihjdHguRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIG51bGwpOwogICAgIAogICAgIHJldHZhbC5udW1JbmRpY2VzID0gaW5k
aWNlcy5sZW5ndGg7CiAKQEAgLTI1MywxMSArMjY0LDEwIEBAIGZ1bmN0aW9uIG1ha2VTcGhlcmUo
Y3R4LCByYWRpdXMsIGxhdHMsIGwKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBsb25ncyAr
PSAxOwogICAgIGZvciAodmFyIGxhdE51bWJlciA9IDA7IGxhdE51bWJlciA8IGxhdHM7ICsrbGF0
TnVtYmVyKSB7CiAgICAgICAgIGZvciAodmFyIGxvbmdOdW1iZXIgPSAwOyBsb25nTnVtYmVyIDwg
bG9uZ3M7ICsrbG9uZ051bWJlcikgewotICAgICAgICAgICAgdmFyIGZpcnN0ID0gKGxhdE51bWJl
ciAqIGxvbmdzKSArIChsb25nTnVtYmVyICUgbG9uZ3MpOwotICAgICAgICAgICAgdmFyIHNlY29u
ZCA9IGZpcnN0ICsgbG9uZ3M7CisgICAgICAgICAgICB2YXIgZmlyc3QgPSAobGF0TnVtYmVyICog
KGxvbmdzKzEpKSArIGxvbmdOdW1iZXI7CisgICAgICAgICAgICB2YXIgc2Vjb25kID0gZmlyc3Qg
KyBsb25ncyArIDE7CiAgICAgICAgICAgICBpbmRleERhdGEucHVzaChmaXJzdCk7CiAgICAgICAg
ICAgICBpbmRleERhdGEucHVzaChzZWNvbmQpOwogICAgICAgICAgICAgaW5kZXhEYXRhLnB1c2go
Zmlyc3QrMSk7CkBAIC0zMTcsNyArMzI3LDcgQEAgZnVuY3Rpb24gbG9hZE9iaihjdHgsIHVybCkK
IAogZnVuY3Rpb24gcHJvY2Vzc0xvYWRPYmoocmVxKSAKIHsKLSAgICBjb25zb2xlLmxvZygicmVx
PSIrcmVxKQorICAgIHJlcS5vYmouY3R4LmNvbnNvbGUubG9nKCJyZXE9IityZXEpCiAgICAgLy8g
b25seSBpZiByZXEgc2hvd3MgImNvbXBsZXRlIgogICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0
KSB7CiAgICAgICAgIGRvTG9hZE9iaihyZXEub2JqLCByZXEucmVzcG9uc2VUZXh0KTsKQEAgLTM2
Niw3ICszNzYsNyBAQCBmdW5jdGlvbiBkb0xvYWRPYmoob2JqLCB0ZXh0KQogICAgICAgICBlbHNl
IGlmIChhcnJheVswXSA9PSAiZiIpIHsKICAgICAgICAgICAgIC8vIGZhY2UKICAgICAgICAgICAg
IGlmIChhcnJheS5sZW5ndGggIT0gNCkgewotICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCIq
KiogRXJyb3I6IGZhY2UgJyIrbGluZSsiJyBub3QgaGFuZGxlZCIpOworICAgICAgICAgICAgICAg
IG9iai5jdHguY29uc29sZS5sb2coIioqKiBFcnJvcjogZmFjZSAnIitsaW5lKyInIG5vdCBoYW5k
bGVkIik7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKQEAgLTM4Nyw3ICszOTcsNyBAQCBmdW5jdGlvbiBkb0xvYWRPYmoob2JqLCB0ZXh0KQog
ICAgICAgICAgICAgICAgICAgICAgICAgbm9yID0gcGFyc2VJbnQoZlsyXSkgLSAxOwogICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc29sZS5sb2coIioqKiBFcnJvcjogZGlkIG5vdCB1bmRlcnN0YW5kIGZh
Y2UgJyIrYXJyYXlbaV0rIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iai5jdHguY29u
c29sZS5sb2coIioqKiBFcnJvcjogZGlkIG5vdCB1bmRlcnN0YW5kIGZhY2UgJyIrYXJyYXlbaV0r
IiciKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIApAQCAtNDgwLDcgKzQ5MCw3IEBAIGZ1bmN0
aW9uIGRvTG9hZEltYWdlVGV4dHVyZShjdHgsIGltYWdlLCAKICAgICBjdHgudGV4UGFyYW1ldGVy
aShjdHguVEVYVFVSRV8yRCwgY3R4LlRFWFRVUkVfV1JBUF9TLCBjdHguQ0xBTVBfVE9fRURHRSk7
CiAgICAgY3R4LnRleFBhcmFtZXRlcmkoY3R4LlRFWFRVUkVfMkQsIGN0eC5URVhUVVJFX1dSQVBf
VCwgY3R4LkNMQU1QX1RPX0VER0UpOwogICAgIGN0eC5nZW5lcmF0ZU1pcG1hcChjdHguVEVYVFVS
RV8yRCkKLSAgICBjdHguYmluZFRleHR1cmUoY3R4LlRFWFRVUkVfMkQsIDApOworICAgIGN0eC5i
aW5kVGV4dHVyZShjdHguVEVYVFVSRV8yRCwgbnVsbCk7CiB9CiAKIC8vCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA1MjA0NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIwIEBACisyMDA5LTEyLTExICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRh
dGUgV2ViR0wgdGVzdHMgdG8gcmVsZWFzZWQgdmVyc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDU3CisKKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9yZXNvdXJjZXMvdXRpbHMzZC5qczoKKyAgICAgICAgKGluaXRXZWJHTC5nbC5jb25z
b2xlLndpbmRvdy5jb25zb2xlLmxvZyk6CisgICAgICAgIChpbml0V2ViR0wpOgorICAgICAgICAo
bG9hZFNoYWRlcik6CisgICAgICAgIChtYWtlQm94KToKKyAgICAgICAgKG1ha2VTcGhlcmUpOgor
ICAgICAgICAocHJvY2Vzc0xvYWRPYmopOgorICAgICAgICAoZG9Mb2FkT2JqKToKKyAgICAgICAg
KGRvTG9hZEltYWdlVGV4dHVyZSk6CisKIDIwMDktMTItMTEgIFNoaW5pY2hpcm8gSGFtYWppICA8
aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy91dGlsczNkLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy91
dGlsczNkLmpzCShyZXZpc2lvbiA1MjA0MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3Jlc291cmNlcy91dGlsczNkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMywxOCArMTMsMjEg
QEAKIC8vIFNldCB0aGUgY2xlYXIgY29sb3IgdG8gdGhlIHBhc3NlZCBhcnJheSAoNCB2YWx1ZXMp
IGFuZCBzZXQgdGhlIGNsZWFyIGRlcHRoIHRvIHRoZSBwYXNzZWQgdmFsdWUuCiAvLyBFbmFibGUg
ZGVwdGggdGVzdGluZyBhbmQgYmxlbmRpbmcgd2l0aCBhIGJsZW5kIGZ1bmMgb2YgKFNSQ19BTFBI
QSwgT05FX01JTlVTX1NSQ19BTFBIQSkKIC8vCisvLyBBIGNvbnNvbGUgZnVuY3Rpb24gaXMgYWRk
ZWQgdG8gdGhlIGNvbnRleHQ6IGNvbnNvbGUoc3RyaW5nKS4gVGhpcyBjYW4gYmUgcmVwbGFjZWQK
Ky8vIGJ5IHRoZSBjYWxsZXIuIEJ5IGRlZmF1bHQsIGl0IG1hcHMgdG8gdGhlIHdpbmRvdy5jb25z
b2xlKCkgZnVuY3Rpb24gb24gV2ViS2l0IGFuZCB0bworLy8gYW4gZW1wdHkgZnVuY3Rpb24gb24g
b3RoZXIgYnJvd3NlcnMuCisvLwogZnVuY3Rpb24gaW5pdFdlYkdMKGNhbnZhc05hbWUsIHZzaGFk
ZXIsIGZzaGFkZXIsIGF0dHJpYnMsIGNsZWFyQ29sb3IsIGNsZWFyRGVwdGgpCiB7CiAgICAgdmFy
IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhbnZhc05hbWUpOwotICAgIHZhciBn
bDsKLSAgICAKLSAgICB0cnkge2dsID0gY2FudmFzLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13
ZWJnbCIpIH0gY2F0Y2goZSkgeyB9Ci0gICAgaWYgKCFnbCkKLSAgICAgICAgdHJ5IHtnbCA9IGNh
bnZhcy5nZXRDb250ZXh0KCJtb3otd2ViZ2wiKSB9IGNhdGNoKGUpIHsgfQorICAgIHZhciBnbCA9
IGNhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiKTsKICAgICBpZiAoIWdsKSB7
CiAgICAgICAgIGFsZXJ0KCJObyBXZWJHTCBjb250ZXh0IGZvdW5kIik7CiAgICAgICAgIHJldHVy
biBudWxsOwogICAgIH0KKyAgICAKKyAgICAvLyBBZGQgYSBjb25zb2xlCisgICAgZ2wuY29uc29s
ZSA9ICgiY29uc29sZSIgaW4gd2luZG93KSA/IHdpbmRvdy5jb25zb2xlIDogeyBsb2c6IGZ1bmN0
aW9uKCkgeyB9IH07CiAKICAgICAvLyBjcmVhdGUgb3VyIHNoYWRlcnMKICAgICB2YXIgdmVydGV4
U2hhZGVyID0gbG9hZFNoYWRlcihnbCwgdnNoYWRlcik7CkBAIC01NSw3ICs1OCw3IEBAIGZ1bmN0
aW9uIGluaXRXZWJHTChjYW52YXNOYW1lLCB2c2hhZGVyLCAKICAgICBpZiAoIWxpbmtlZCkgewog
ICAgICAgICAvLyBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSBsaW5rCiAgICAgICAgIHZh
ciBlcnJvciA9IGdsLmdldFByb2dyYW1JbmZvTG9nIChnbC5wcm9ncmFtKTsKLSAgICAgICAgY29u
c29sZS5sb2coIkVycm9yIGluIHByb2dyYW0gbGlua2luZzoiK2Vycm9yKTsKKyAgICAgICAgZ2wu
Y29uc29sZS5sb2coIkVycm9yIGluIHByb2dyYW0gbGlua2luZzoiK2Vycm9yKTsKIAogICAgICAg
ICBnbC5kZWxldGVQcm9ncmFtKGdsLnByb2dyYW0pOwogICAgICAgICBnbC5kZWxldGVQcm9ncmFt
KGZyYWdtZW50U2hhZGVyKTsKQEAgLTg2LDcgKzg5LDcgQEAgZnVuY3Rpb24gbG9hZFNoYWRlcihj
dHgsIHNoYWRlcklkKQogewogICAgIHZhciBzaGFkZXJTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChzaGFkZXJJZCk7CiAgICAgaWYgKCFzaGFkZXJTY3JpcHQpIHsKLSAgICAgICAgY29u
c29sZS5sb2coIioqKiBFcnJvcjogc2hhZGVyIHNjcmlwdCAnIitzaGFkZXJJZCsiJyBub3QgZm91
bmQiKTsKKyAgICAgICAgY3R4LmNvbnNvbGUubG9nKCIqKiogRXJyb3I6IHNoYWRlciBzY3JpcHQg
JyIrc2hhZGVySWQrIicgbm90IGZvdW5kIik7CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0K
ICAgICAgICAgCkBAIC05NSwxNCArOTgsMTQgQEAgZnVuY3Rpb24gbG9hZFNoYWRlcihjdHgsIHNo
YWRlcklkKQogICAgIGVsc2UgaWYgKHNoYWRlclNjcmlwdC50eXBlID09ICJ4LXNoYWRlci94LWZy
YWdtZW50IikKICAgICAgICAgdmFyIHNoYWRlclR5cGUgPSBjdHguRlJBR01FTlRfU0hBREVSOwog
ICAgIGVsc2UgewotICAgICAgICBjb25zb2xlLmxvZygiKioqIEVycm9yOiBzaGFkZXIgc2NyaXB0
ICciK3NoYWRlcklkKyInIG9mIHVuZGVmaW5lZCB0eXBlICciK3NoYWRlclNjcmlwdC50eXBlKyIn
Iik7ICAgICAgIAorICAgICAgICBjdHguY29uc29sZS5sb2coIioqKiBFcnJvcjogc2hhZGVyIHNj
cmlwdCAnIitzaGFkZXJJZCsiJyBvZiB1bmRlZmluZWQgdHlwZSAnIitzaGFkZXJTY3JpcHQudHlw
ZSsiJyIpOyAgICAgICAKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCiAgICAgLy8gQ3Jl
YXRlIHRoZSBzaGFkZXIgb2JqZWN0CiAgICAgdmFyIHNoYWRlciA9IGN0eC5jcmVhdGVTaGFkZXIo
c2hhZGVyVHlwZSk7CiAgICAgaWYgKHNoYWRlciA9PSBudWxsKSB7Ci0gICAgICAgIGNvbnNvbGUu
bG9nKCIqKiogRXJyb3I6IHVuYWJsZSB0byBjcmVhdGUgc2hhZGVyICciK3NoYWRlcklkKyInIik7
ICAgICAgIAorICAgICAgICBjdHguY29uc29sZS5sb2coIioqKiBFcnJvcjogdW5hYmxlIHRvIGNy
ZWF0ZSBzaGFkZXIgJyIrc2hhZGVySWQrIiciKTsgICAgICAgCiAgICAgICAgIHJldHVybiBudWxs
OwogICAgIH0KIApAQCAtMTE3LDcgKzEyMCw3IEBAIGZ1bmN0aW9uIGxvYWRTaGFkZXIoY3R4LCBz
aGFkZXJJZCkKICAgICBpZiAoIWNvbXBpbGVkKSB7CiAgICAgICAgIC8vIFNvbWV0aGluZyB3ZW50
IHdyb25nIGR1cmluZyBjb21waWxhdGlvbjsgZ2V0IHRoZSBlcnJvcgogICAgICAgICB2YXIgZXJy
b3IgPSBjdHguZ2V0U2hhZGVySW5mb0xvZyhzaGFkZXIpOwotICAgICAgICBjb25zb2xlLmxvZygi
KioqIEVycm9yIGNvbXBpbGluZyBzaGFkZXIgJyIrc2hhZGVySWQrIic6IitlcnJvcik7CisgICAg
ICAgIGN0eC5jb25zb2xlLmxvZygiKioqIEVycm9yIGNvbXBpbGluZyBzaGFkZXIgJyIrc2hhZGVy
SWQrIic6IitlcnJvcik7CiAgICAgICAgIGN0eC5kZWxldGVTaGFkZXIoc2hhZGVyKTsKICAgICAg
ICAgcmV0dXJuIG51bGw7CiAgICAgfQpAQCAtMjAzLDEyICsyMDYsMTIgQEAgZnVuY3Rpb24gbWFr
ZUJveChjdHgpCiAgICAgY3R4LmJpbmRCdWZmZXIoY3R4LkFSUkFZX0JVRkZFUiwgcmV0dmFsLnZl
cnRleE9iamVjdCk7CiAgICAgY3R4LmJ1ZmZlckRhdGEoY3R4LkFSUkFZX0JVRkZFUiwgdmVydGlj
ZXMsIGN0eC5TVEFUSUNfRFJBVyk7CiAgICAgCi0gICAgY3R4LmJpbmRCdWZmZXIoY3R4LkFSUkFZ
X0JVRkZFUiwgMCk7CisgICAgY3R4LmJpbmRCdWZmZXIoY3R4LkFSUkFZX0JVRkZFUiwgbnVsbCk7
CiAKICAgICByZXR2YWwuaW5kZXhPYmplY3QgPSBjdHguY3JlYXRlQnVmZmVyKCk7CiAgICAgY3R4
LmJpbmRCdWZmZXIoY3R4LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCByZXR2YWwuaW5kZXhPYmplY3Qp
OwogICAgIGN0eC5idWZmZXJEYXRhKGN0eC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kaWNlcywg
Y3R4LlNUQVRJQ19EUkFXKTsKLSAgICBjdHguYmluZEJ1ZmZlcihjdHguRUxFTUVOVF9BUlJBWV9C
VUZGRVIsIDApOworICAgIGN0eC5iaW5kQnVmZmVyKGN0eC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwg
bnVsbCk7CiAgICAgCiAgICAgcmV0dmFsLm51bUluZGljZXMgPSBpbmRpY2VzLmxlbmd0aDsKIApA
QCAtMjYxLDExICsyNjQsMTAgQEAgZnVuY3Rpb24gbWFrZVNwaGVyZShjdHgsIHJhZGl1cywgbGF0
cywgbAogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIGxvbmdzICs9IDE7CiAgICAgZm9yICh2
YXIgbGF0TnVtYmVyID0gMDsgbGF0TnVtYmVyIDwgbGF0czsgKytsYXROdW1iZXIpIHsKICAgICAg
ICAgZm9yICh2YXIgbG9uZ051bWJlciA9IDA7IGxvbmdOdW1iZXIgPCBsb25nczsgKytsb25nTnVt
YmVyKSB7Ci0gICAgICAgICAgICB2YXIgZmlyc3QgPSAobGF0TnVtYmVyICogbG9uZ3MpICsgKGxv
bmdOdW1iZXIgJSBsb25ncyk7Ci0gICAgICAgICAgICB2YXIgc2Vjb25kID0gZmlyc3QgKyBsb25n
czsKKyAgICAgICAgICAgIHZhciBmaXJzdCA9IChsYXROdW1iZXIgKiAobG9uZ3MrMSkpICsgbG9u
Z051bWJlcjsKKyAgICAgICAgICAgIHZhciBzZWNvbmQgPSBmaXJzdCArIGxvbmdzICsgMTsKICAg
ICAgICAgICAgIGluZGV4RGF0YS5wdXNoKGZpcnN0KTsKICAgICAgICAgICAgIGluZGV4RGF0YS5w
dXNoKHNlY29uZCk7CiAgICAgICAgICAgICBpbmRleERhdGEucHVzaChmaXJzdCsxKTsKQEAgLTMy
NSw3ICszMjcsNyBAQCBmdW5jdGlvbiBsb2FkT2JqKGN0eCwgdXJsKQogCiBmdW5jdGlvbiBwcm9j
ZXNzTG9hZE9iaihyZXEpIAogewotICAgIGNvbnNvbGUubG9nKCJyZXE9IityZXEpCisgICAgcmVx
Lm9iai5jdHguY29uc29sZS5sb2coInJlcT0iK3JlcSkKICAgICAvLyBvbmx5IGlmIHJlcSBzaG93
cyAiY29tcGxldGUiCiAgICAgaWYgKHJlcS5yZWFkeVN0YXRlID09IDQpIHsKICAgICAgICAgZG9M
b2FkT2JqKHJlcS5vYmosIHJlcS5yZXNwb25zZVRleHQpOwpAQCAtMzc0LDcgKzM3Niw3IEBAIGZ1
bmN0aW9uIGRvTG9hZE9iaihvYmosIHRleHQpCiAgICAgICAgIGVsc2UgaWYgKGFycmF5WzBdID09
ICJmIikgewogICAgICAgICAgICAgLy8gZmFjZQogICAgICAgICAgICAgaWYgKGFycmF5Lmxlbmd0
aCAhPSA0KSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5sb2coIioqKiBFcnJvcjogZmFjZSAn
IitsaW5lKyInIG5vdCBoYW5kbGVkIik7CisgICAgICAgICAgICAgICAgb2JqLmN0eC5jb25zb2xl
LmxvZygiKioqIEVycm9yOiBmYWNlICciK2xpbmUrIicgbm90IGhhbmRsZWQiKTsKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMzk1LDcg
KzM5Nyw3IEBAIGZ1bmN0aW9uIGRvTG9hZE9iaihvYmosIHRleHQpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBub3IgPSBwYXJzZUludChmWzJdKSAtIDE7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZygiKioqIEVycm9yOiBkaWQgbm90IHVuZGVyc3RhbmQgZmFjZSAnIithcnJheVtpXSsi
JyIpOworICAgICAgICAgICAgICAgICAgICAgICAgb2JqLmN0eC5jb25zb2xlLmxvZygiKioqIEVy
cm9yOiBkaWQgbm90IHVuZGVyc3RhbmQgZmFjZSAnIithcnJheVtpXSsiJyIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgCkBAIC00ODgsNyArNDkwLDcgQEAgZnVuY3Rpb24gZG9Mb2FkSW1hZ2VU
ZXh0dXJlKGN0eCwgaW1hZ2UsIAogICAgIGN0eC50ZXhQYXJhbWV0ZXJpKGN0eC5URVhUVVJFXzJE
LCBjdHguVEVYVFVSRV9XUkFQX1MsIGN0eC5DTEFNUF9UT19FREdFKTsKICAgICBjdHgudGV4UGFy
YW1ldGVyaShjdHguVEVYVFVSRV8yRCwgY3R4LlRFWFRVUkVfV1JBUF9ULCBjdHguQ0xBTVBfVE9f
RURHRSk7CiAgICAgY3R4LmdlbmVyYXRlTWlwbWFwKGN0eC5URVhUVVJFXzJEKQotICAgIGN0eC5i
aW5kVGV4dHVyZShjdHguVEVYVFVSRV8yRCwgMCk7CisgICAgY3R4LmJpbmRUZXh0dXJlKGN0eC5U
RVhUVVJFXzJELCBudWxsKTsKIH0KIAogLy8K
</data>

          </attachment>
      

    </bug>

</bugzilla>