<?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>155257</bug_id>
          
          <creation_ts>2016-03-09 13:52:12 -0800</creation_ts>
          <short_desc>Add text tests</short_desc>
          <delta_ts>2016-03-09 17:37:26 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>dino</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1172742</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-09 13:52:12 -0800</bug_when>
    <thetext>Add text tests to Animometer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172760</commentid>
    <comment_count>1</comment_count>
      <attachid>273475</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-09 14:16:53 -0800</bug_when>
    <thetext>Created attachment 273475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172763</commentid>
    <comment_count>2</comment_count>
      <attachid>273477</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-09 14:18:33 -0800</bug_when>
    <thetext>Created attachment 273477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172916</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-03-09 17:37:26 -0800</bug_when>
    <thetext>Committed r197908: &lt;http://trac.webkit.org/changeset/197908&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273475</attachid>
            <date>2016-03-09 14:16:53 -0800</date>
            <delta_ts>2016-03-09 14:18:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155257-20160309141640.patch</filename>
            <type>text/plain</type>
            <size>29386</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3ODU5CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCmluZGV4IDU4
NDhlYWNmMmM4MTRiZTZlNDVlZmRmYTk4NjM4NjAzMjMyODg3YTIuLjJlZjViYjQ4YzIyNDU5ZGQ2
MmFjOTQwNTJhODFmNjFhMDY4MGRmMzEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCkBAIC0xNjAs
MTUgKzE2MCw3IEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiSFRNTCBzdWl0ZSIsCiAgICAgICAg
IHsKICAgICAgICAgICAgIHVybDogImJvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3MtaW1h
Z2VzLmh0bWw/cGFydGljbGVXaWR0aD04MCZwYXJ0aWNsZUhlaWdodD04MCZpbWFnZVNyYz0uLi9y
ZXNvdXJjZXMveWluLXlhbmcuc3ZnIiwKICAgICAgICAgICAgIG5hbWU6ICJDU1MgYm91bmNpbmcg
U1ZHIGltYWdlcyIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdXJsOiAidGV4
dC9sYXllcmluZy10ZXh0Lmh0bWwiLAotICAgICAgICAgICAgbmFtZTogIkNTUyBsYXllcmluZyB0
ZXh0IgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1cmw6ICJ0ZXh0L3RleHQt
Ym94ZXMuaHRtbD9wYXJ0aWNsZVdpZHRoPTI4MCZwYXJ0aWNsZUhlaWdodD0xODAiLAotICAgICAg
ICAgICAgbmFtZTogIkNTUyB0ZXh0IGJveGVzIgotICAgICAgICB9LAorICAgICAgICB9CiAgICAg
XQogKSk7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvZXh0ZW5zaW9ucy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZXh0ZW5zaW9ucy5qcwppbmRleCA2ZjY1M2ZlZjI1YWI3MTRmMTVmNjZjNmJlMjNiZjZmY2U5MTk4
YzkyLi5kMjZkM2I2ZjU2NDM3MThiNzA2OTQzNjg4YzUwMjJjZDRlMzg5ZGIzIDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCkBA
IC0zMTQsNiArMzE0LDc2IEBAIEluc2V0cy5lbGVtZW50UGFkZGluZyA9IGZ1bmN0aW9uKGVsZW1l
bnQpCiAgICAgICAgIHBhcnNlRmxvYXQoc3R5bGVzLnBhZGRpbmdUb3ApKTsKIH0KIAorVW5pdEJl
emllciA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKKyAgICBmdW5jdGlvbihwb2ludDEsIHBvaW50
MikKKyAgICB7CisgICAgICAgIC8vIEZpcnN0IGFuZCBsYXN0IHBvaW50cyBpbiB0aGUgQsOpemll
ciBjdXJ2ZSBhcmUgYXNzdW1lZCB0byBiZSAoMCwwKSBhbmQgKCEsMSkKKyAgICAgICAgdGhpcy5f
YyA9IHBvaW50MS5tdWx0aXBseSgzKTsKKyAgICAgICAgdGhpcy5fYiA9IHBvaW50Mi5zdWJ0cmFj
dChwb2ludDEpLm11bHRpcGx5KDMpLnN1YnRyYWN0KHRoaXMuX2MpOworICAgICAgICB0aGlzLl9h
ID0gbmV3IFBvaW50KDEsIDEpLnN1YnRyYWN0KHRoaXMuX2MpLnN1YnRyYWN0KHRoaXMuX2IpOwor
ICAgIH0sIHsKKworICAgIGVwc2lsb246IDFlLTUsCisgICAgZGVyaXZhdGl2ZUVwc2lsb246IDFl
LTYsCisKKyAgICBzb2x2ZTogZnVuY3Rpb24oeCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LnNhbXBsZVkodGhpcy5zb2x2ZUZvclQoeCkpOworICAgIH0sCisKKyAgICBzYW1wbGVYOiBmdW5j
dGlvbih0KQorICAgIHsKKyAgICAgICAgcmV0dXJuICgodGhpcy5fYS54ICogdCArIHRoaXMuX2Iu
eCkgKiB0ICsgdGhpcy5fYy54KSAqIHQ7CisgICAgfSwKKworICAgIHNhbXBsZVk6IGZ1bmN0aW9u
KHQpCisgICAgeworICAgICAgICByZXR1cm4gKCh0aGlzLl9hLnkgKiB0ICsgdGhpcy5fYi55KSAq
IHQgKyB0aGlzLl9jLnkpICogdDtra2tqCisgICAgfSwKKworICAgIHNhbXBsZURlcml2YXRpdmVY
OiBmdW5jdGlvbih0KQorICAgIHsKKyAgICAgICAgcmV0dXJuKDMgKiB0aGlzLl9hLnggKiB0ICsg
MiAqIHRoaXMuX2IueCkgKiB0ICsgdGhpcy5fYy54OworICAgIH0sCisKKyAgICBzb2x2ZUZvclQ6
IGZ1bmN0aW9uKHgpCisgICAgeworICAgICAgICB2YXIgdDAsIHQxLCB0MiwgeDIsIGQyLCBpOwor
CisgICAgICAgIGZvciAodDIgPSB4LCBpID0gMDsgaSA8IDg7ICsraSkgeworICAgICAgICAgICAg
eDIgPSB0aGlzLnNhbXBsZVgodDIpIC0geDsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyh4Mikg
PCB0aGlzLmVwc2lsb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHQyOworICAgICAgICAgICAg
ZDIgPSB0aGlzLnNhbXBsZURlcml2YXRpdmVYKHQyKTsKKyAgICAgICAgICAgIGlmIChNYXRoLmFi
cyhkMikgPCB0aGlzLmRlcml2YXRpdmVFcHNpbG9uKQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgdDIgPSB0MiAtIHgyIC8gZDI7CisgICAgICAgIH0KKworICAgICAgICB0MCA9
IDA7CisgICAgICAgIHQxID0gMTsKKyAgICAgICAgdDIgPSB4OworCisgICAgICAgIGlmICh0MiA8
IHQwKQorICAgICAgICAgICAgcmV0dXJuIHQwOworICAgICAgICBpZiAodDIgPiB0MSkKKyAgICAg
ICAgICAgIHJldHVybiB0MTsKKworICAgICAgICB3aGlsZSAodDAgPCB0MSkgeworICAgICAgICAg
ICAgeDIgPSB0aGlzLnNhbXBsZVgodDIpOworICAgICAgICAgICAgaWYgKE1hdGguYWJzKHgyIC0g
eCkgPCB0aGlzLmVwc2lsb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHQyOworICAgICAgICAg
ICAgaWYgKHggPiB4MikKKyAgICAgICAgICAgICAgICB0MCA9IHQyOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHQxID0gdDI7CisgICAgICAgICAgICB0MiA9ICh0MSAtIHQwKSAq
IC41ICsgdDA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdDI7CisgICAgfQorfSk7CisK
IFNpbXBsZVByb21pc2UgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgZnVuY3Rpb24oKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanMKaW5kZXggYWYzMjRmYjFiMjJlNzNhMjBkZGZkMGVjOTViOTMxMDRiZTQ1
MjQ4MC4uMDg4MWUzMmE2ZjVmN2Y0NWJlYzAxMDVkMDExOWY1NDVjNmNmNzg3OSAxMDA2NDQKLS0t
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMu
anMKQEAgLTMzLDYgKzMzLDEwIEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiQW5pbW9tZXRlciIs
CiAgICAgICAgICAgICBuYW1lOiAiQ2FudmFzIGxpbmUgc2VnbWVudHMiCiAgICAgICAgIH0sCiAg
ICAgICAgIHsKKyAgICAgICAgICAgIHVybDogIm1hc3Rlci90ZXh0Lmh0bWwiLAorICAgICAgICAg
ICAgbmFtZTogIkEgdG8gWiIKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICAgdXJs
OiAibWFzdGVyL2ZvY3VzLmh0bWwiLAogICAgICAgICAgICAgbmFtZTogIkZvY3VzIgogICAgICAg
ICB9LApAQCAtNDEsNiArNDUsMTAgQEAgU3VpdGVzLnB1c2gobmV3IFN1aXRlKCJBbmltb21ldGVy
IiwKICAgICAgICAgICAgIG5hbWU6ICJJbWFnZXMiCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIHVybDogIm1hc3Rlci9pbnRlcm5hdGlvbmFsLmh0bWwiLAorICAgICAgICAgICAg
bmFtZTogIkRlc2lnbiIKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICAgdXJsOiAi
bWFzdGVyL3BhcnRpY2xlcy5odG1sIiwKICAgICAgICAgICAgIG5hbWU6ICJET00gcGFydGljbGVz
LCBTVkcgbWFza3MiCiAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9uYWwuaHRtbCBiL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvaW50ZXJuYXRpb25hbC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA1Y2VhNTRlNTZjYzk4ZmFiNWZlNGFhZjIzNmI0MDM4ODkxMDYwM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9u
YWwuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0idXJmLTgiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy9zdGFnZS5jc3MiPgorICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisKKyAgICAgICAgI3N0YWdlIHsKKyAgICAgICAgICAgIGZvbnQtZmFt
aWx5OiBIZWx2ZXRpY2E7CisgICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7CisgICAgICAgIH0K
KyAgICAgICAgI3N0YWdlIGRpdiB7CisgICAgICAgICAgICB3aWR0aDogNjAlOworICAgICAgICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwor
ICAgICAgICB9CisgICAgICAgICN0ZW1wbGF0ZSB7CisgICAgICAgICAgICBjb2xvcjogIzExMTsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJz
dGFnZSI+CisgICAgICAgIDxkaXYgaWQ9InRlbXBsYXRlIj4KKyAgICAgICAgICAgIDxwPuiuvuiu
oTwvcD4KKyAgICAgICAgICAgIDxwIGNsYXNzPSJydGwiPtiq2LXZhdmK2YU8L3A+CisgICAgICAg
ICAgICA8cD7QtNC40LfQsNC50L08L3A+CisgICAgICAgICAgICA8cD7jg4fjgrbjgqTjg7M8L3A+
CisgICAgICAgICAgICA8cCBjbGFzcz0icnRsIj7XoteZ16bXldeRPC9wPgorICAgICAgICAgICAg
PHA+65SU7J6Q7J24PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXh0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3RleHQuanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy90ZXh0
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3MGI3YWEzOWIzYmNjY2FmYmNiMWQ4MWRhMWU4OTQ5Y2U3YTlmNWIK
LS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFz
dGVyL3Jlc291cmNlcy90ZXh0LmpzCkBAIC0wLDAgKzEsMTA0IEBACisoZnVuY3Rpb24oKSB7CisK
K3ZhciBUZXh0U3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU3RhZ2UsCisgICAgZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgU3RhZ2UuY2FsbCh0aGlzKTsKKworICAgICAgICB0aGlz
LnRlc3RFbGVtZW50cyA9IFtdOworICAgICAgICB0aGlzLl9vZmZzZXRJbmRleCA9IDA7CisgICAg
fSwgeworCisgICAgc2hhZG93RmFsbG9mZjogbmV3IFVuaXRCZXppZXIobmV3IFBvaW50KDAuMDE1
LCAwLjc1MCksIG5ldyBQb2ludCgwLjc1NSwgMC4yMzUpKSwKKyAgICBzaGltbWVyQXZlcmFnZTog
MC40LAorICAgIHNoaW1tZXJNYXg6IDAuNSwKKyAgICBtaWxsaXNlY29uZHNQZXJSb3RhdGlvbjog
MTAwMCAvICguMjYgKiBNYXRoLlBJICogMiksCisgICAgcGFydGljbGVEaXN0YW5jZTogMSwKKyAg
ICBsaWdodG5lc3NNaW46IDEzLAorICAgIGxpZ2h0bmVzc01heDogOTQsCisKKyAgICBpbml0aWFs
aXplOiBmdW5jdGlvbihiZW5jaG1hcmspCisgICAgeworICAgICAgICBTdGFnZS5wcm90b3R5cGUu
aW5pdGlhbGl6ZS5jYWxsKHRoaXMsIGJlbmNobWFyayk7CisKKyAgICAgICAgdGhpcy5fdGVtcGxh
dGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVtcGxhdGUiKTsKKyAgICAgICAgdGhpcy5f
b2Zmc2V0ID0gdGhpcy5zaXplLnN1YnRyYWN0KFBvaW50LmVsZW1lbnRDbGllbnRTaXplKHRoaXMu
X3RlbXBsYXRlKSkubXVsdGlwbHkoLjUpOworICAgICAgICB0aGlzLl90ZW1wbGF0ZS5zdHlsZS5s
ZWZ0ID0gdGhpcy5fb2Zmc2V0LndpZHRoICsgInB4IjsKKyAgICAgICAgdGhpcy5fdGVtcGxhdGUu
c3R5bGUudG9wID0gdGhpcy5fb2Zmc2V0LmhlaWdodCArICJweCI7CisKKyAgICAgICAgdGhpcy5f
c3RlcFByb2dyZXNzID0gMDsKKyAgICB9LAorCisgICAgdHVuZTogZnVuY3Rpb24oY291bnQpCisg
ICAgeworICAgICAgICBpZiAoY291bnQgPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aGlzLl9vZmZzZXRJbmRleCA9IE1h
dGgubWF4KHRoaXMuX29mZnNldEluZGV4ICsgY291bnQsIDApOworICAgICAgICAgICAgZm9yICh2
YXIgaSA9IHRoaXMuX29mZnNldEluZGV4OyBpIDwgdGhpcy50ZXN0RWxlbWVudHMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgdGhpcy50ZXN0RWxlbWVudHNbaV0uc3R5bGUudmlzaWJpbGl0
eSA9ICJoaWRkZW4iOworCisgICAgICAgICAgICB0aGlzLl9zdGVwUHJvZ3Jlc3MgPSAxIC8gdGhp
cy5fb2Zmc2V0SW5kZXg7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICB0aGlzLl9vZmZzZXRJbmRleCA9IHRoaXMuX29mZnNldEluZGV4ICsgY291bnQ7CisgICAgICAg
IHRoaXMuX3N0ZXBQcm9ncmVzcyA9IDEgLyB0aGlzLl9vZmZzZXRJbmRleDsKKworICAgICAgICB2
YXIgaW5kZXggPSBNYXRoLm1pbih0aGlzLl9vZmZzZXRJbmRleCwgdGhpcy50ZXN0RWxlbWVudHMu
bGVuZ3RoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRleDsgKytpKQorICAgICAg
ICAgICAgdGhpcy50ZXN0RWxlbWVudHNbaV0uc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsK
KworICAgICAgICBpZiAodGhpcy5fb2Zmc2V0SW5kZXggPD0gdGhpcy50ZXN0RWxlbWVudHMubGVu
Z3RoKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRl
c3RFbGVtZW50cy5sZW5ndGg7IGkgPCB0aGlzLl9vZmZzZXRJbmRleDsgKytpKSB7CisgICAgICAg
ICAgICB2YXIgY2xvbmUgPSB0aGlzLl90ZW1wbGF0ZS5jbG9uZU5vZGUodHJ1ZSk7CisgICAgICAg
ICAgICB0aGlzLnRlc3RFbGVtZW50cy5wdXNoKGNsb25lKTsKKyAgICAgICAgICAgIHRoaXMuZWxl
bWVudC5pbnNlcnRCZWZvcmUoY2xvbmUsIHRoaXMuZWxlbWVudC5maXJzdENoaWxkKTsKKyAgICAg
ICAgfQorICAgIH0sCisKKyAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpIHsKKyAgICAg
ICAgdmFyIGFuZ2xlID0gU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSh0aGlzLm1pbGxpc2Vjb25kc1Bl
clJvdGF0aW9uKTsKKworICAgICAgICB2YXIgeCA9IDA7CisgICAgICAgIHZhciB5ID0gMDsKKyAg
ICAgICAgdmFyIHByb2dyZXNzID0gMDsKKyAgICAgICAgdmFyIHN0ZXBYID0gTWF0aC5zaW4oYW5n
bGUpICogdGhpcy5wYXJ0aWNsZURpc3RhbmNlOworICAgICAgICB2YXIgc3RlcFkgPSBNYXRoLmNv
cyhhbmdsZSkgKiB0aGlzLnBhcnRpY2xlRGlzdGFuY2U7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5fb2Zmc2V0SW5kZXg7ICsraSkgeworICAgICAgICAgICAgeCArPSBzdGVwWDsK
KyAgICAgICAgICAgIHkgKz0gc3RlcFk7CisKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gdGhp
cy50ZXN0RWxlbWVudHNbaV07CisKKyAgICAgICAgICAgIHZhciBjb2xvclByb2dyZXNzID0gdGhp
cy5zaGFkb3dGYWxsb2ZmLnNvbHZlKHByb2dyZXNzKTsKKyAgICAgICAgICAgIHZhciBzaGltbWVy
ID0gTWF0aC5zaW4oU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSgxMDApIC0gY29sb3JQcm9ncmVzcyk7
CisgICAgICAgICAgICBjb2xvclByb2dyZXNzICs9IFV0aWxpdGllcy5sZXJwKHNoaW1tZXIsIHRo
aXMuc2hpbW1lckF2ZXJhZ2UsIHRoaXMuc2hpbW1lck1heCk7CisgICAgICAgICAgICB2YXIgaW50
ZXJwb2xhdGVkTGlnaHRuZXNzID0gTWF0aC5yb3VuZChVdGlsaXRpZXMubGVycChNYXRoLm1heChN
YXRoLm1pbihjb2xvclByb2dyZXNzLCAxKSwgMCksIHRoaXMubGlnaHRuZXNzTWluLCB0aGlzLmxp
Z2h0bmVzc01heCkpOworCisgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmNvbG9yID0gImhzbCgw
LDAlLCIgKyBpbnRlcnBvbGF0ZWRMaWdodG5lc3MgKyAiJSkiOworICAgICAgICAgICAgZWxlbWVu
dC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlWCgiICsgTWF0aC5mbG9vcih5KSArICJweCkg
dHJhbnNsYXRlWSgiICsgTWF0aC5mbG9vcih4KSArICJweCkiOworCisgICAgICAgICAgICBwcm9n
cmVzcyArPSB0aGlzLl9zdGVwUHJvZ3Jlc3M7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgY29t
cGxleGl0eTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDEgKyB0aGlzLl9vZmZz
ZXRJbmRleDsKKyAgICB9Cit9KTsKKwordmFyIFRleHRCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3Jl
YXRlU3ViY2xhc3MoQmVuY2htYXJrLAorICAgIGZ1bmN0aW9uKG9wdGlvbnMpCisgICAgeworICAg
ICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcgVGV4dFN0YWdlKCksIG9wdGlvbnMpOworICAg
IH0KKyk7CisKK3dpbmRvdy5iZW5jaG1hcmtDbGFzcyA9IFRleHRCZW5jaG1hcms7CisKK30oKSk7
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Rl
eHQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA5NzlhYmNhMWE1NTdhOWRmOTk2NjNlMGEyZjI4ODYzYWFlOTNhNjEK
LS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFz
dGVyL3RleHQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXJmLTgiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy9zdGFnZS5jc3MiPgorICAgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKyAgICAgICAgI3N0YWdlIHsKKyAgICAgICAgICAgIGZv
bnQtZmFtaWx5OiBIZWx2ZXRpY2E7CisgICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7CisgICAg
ICAgIH0KKyAgICAgICAgI3N0YWdlIGRpdiB7CisgICAgICAgICAgICB3aWR0aDogMjFlbTsKKyAg
ICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgfQorICAgICAgICAjdGVtcGxh
dGUgeworICAgICAgICAgICAgY29sb3I6ICMxMTE7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic3RhZ2UiPgorICAgICAgICA8ZGl2IGlkPSJ0
ZW1wbGF0ZSI+CisgICAgICAgICAgICBXaGVuZXZlciB0aGUgYmxhY2sgZm94IGp1bXBlZCB0aGUg
c3F1aXJyZWwgZ2F6ZWQgc3VzcGljaW91c2x5LiBBbWF6aW5nbHkgZmV3IGRpc2NvdGhlcXVlcyBw
cm92aWRlIGp1a2Vib3hlcy4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGV4dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3YWJjNTM3ZWJiOWE2ZWI3MzkyMzJj
NzhkOTM1NzczMTQ4ZmJjYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmct
dGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9yZXNvdXJjZXMvc3RhZ2Uu
Y3NzIj4KLSAgICA8c3R5bGU+Ci0gICAgICAgIC50ZXh0LWxheWVyIHsKLSAgICAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgIGxlZnQ6IDBweDsKLSAgICAgICAgICAgIHRv
cDogMHB4OwotICAgICAgICAgICAgcGFkZGluZzogMC43MmVtOwotICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Ci0gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xOwot
ICAgICAgICAgICAgZm9udC1zaXplOiAwLjcyZW07Ci0gICAgICAgIH0KLSAgICAgICAgQG1lZGlh
IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDE4MDBweCkgewotICAgICAgICAgICAgLnRl
eHQtbGF5ZXIgewotICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7Ci0gICAgICAgICAg
ICAgICAgZm9udC1zaXplOiAwLjk2ZW07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICA8
L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2xheWVyaW5nLXRleHQuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvcmVz
b3VyY2VzL2xheWVyaW5nLXRleHQuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvdGV4dC9yZXNvdXJjZXMvbGF5ZXJpbmctdGV4dC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGRhOTNjYmFiYTMwMmEwMTJjNjcwZTJjNzc3NGNlMTAzZmM1OTM0Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9yZXNvdXJjZXMvbGF5ZXJpbmctdGV4dC5qcworKysgL2Rl
di9udWxsCkBAIC0xLDI2NCArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0KLUxheWVyaW5nVGV4dFN0
YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAotICAgIGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIFN0YWdlLmNhbGwodGhpcyk7Ci0gICAgfSwgewotCi0gICAgaW5pdGlhbGl6
ZTogZnVuY3Rpb24oYmVuY2htYXJrLCBvcHRpb25zKQotICAgIHsKLSAgICAgICAgU3RhZ2UucHJv
dG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLCBiZW5jaG1hcmssIG9wdGlvbnMpOwotICAgICAg
ICB0aGlzLl90ZXh0RWxlbWVudFBhcmVudCA9IHRoaXMuZWxlbWVudDsKLSAgICAgICAgdGhpcy5f
dGV4dEVsZW1lbnRzID0gW107Ci0gICAgICAgIHRoaXMuX3RleHRJdGVtSW5kZXggPSAwOwotICAg
ICAgICB0aGlzLl9jb2xvckluZGV4ID0gMDsKLSAgICAgICAgdGhpcy5fYW5pbWF0ZUNvdW50cyA9
IDA7Ci0gICAgfSwKLQotICAgIF9uZXh0VGV4dEl0ZW06IGZ1bmN0aW9uKHRleHRJdGVtRmxhZ3Mp
Ci0gICAgewotICAgICAgICB2YXIgdGV4dEl0ZW0gPSBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRl
bXNbdGhpcy5fdGV4dEl0ZW1JbmRleF07Ci0gICAgICAgIFV0aWxpdGllcy5leHRlbmRPYmplY3Qo
dGV4dEl0ZW1GbGFncywgTGF5ZXJpbmdUZXh0U3RhZ2UudGV4dEl0ZW1zRmxhZ3NbdGhpcy5fdGV4
dEl0ZW1JbmRleF0pOwotICAgICAgICB0aGlzLl90ZXh0SXRlbUluZGV4ID0gKHRoaXMuX3RleHRJ
dGVtSW5kZXggKyAxKSAlIExheWVyaW5nVGV4dFN0YWdlLnRleHRJdGVtcy5sZW5ndGg7Ci0gICAg
ICAgIHJldHVybiB0ZXh0SXRlbTsKLSAgICB9LAotCi0gICAgX3ByZXZpb3VzVGV4dEl0ZW06IGZ1
bmN0aW9uKHRleHRJdGVtRmxhZ3MpCi0gICAgewotICAgICAgICB0aGlzLl90ZXh0SXRlbUluZGV4
ID0gKHRoaXMuX3RleHRJdGVtSW5kZXggKyBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXMubGVu
Z3RoIC0gMSkgJSBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXMubGVuZ3RoOwotICAgICAgICBV
dGlsaXRpZXMuZXh0ZW5kT2JqZWN0KHRleHRJdGVtRmxhZ3MsIExheWVyaW5nVGV4dFN0YWdlLnRl
eHRJdGVtc0ZsYWdzW3RoaXMuX3RleHRJdGVtSW5kZXhdKTsKLSAgICAgICAgcmV0dXJuIExheWVy
aW5nVGV4dFN0YWdlLnRleHRJdGVtc1t0aGlzLl90ZXh0SXRlbUluZGV4XTsKLSAgICB9LAotCi0g
ICAgX3B1c2hUZXh0RWxlbWVudDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHRleHRJ
dGVtRmxhZ3MgPSB7fTsKLSAgICAgICAgdmFyIHRleHRJdGVtID0gdGhpcy5fbmV4dFRleHRJdGVt
KHRleHRJdGVtRmxhZ3MpOwotICAgICAgICBmb3IgKCA7IHRleHRJdGVtRmxhZ3MuaXNDbG9zaW5n
OyB0ZXh0SXRlbSA9IHRoaXMuX25leHRUZXh0SXRlbSh0ZXh0SXRlbUZsYWdzKSkKLSAgICAgICAg
ICAgIHRoaXMuX3RleHRFbGVtZW50UGFyZW50ID0gdGhpcy5fdGV4dEVsZW1lbnRQYXJlbnQucGFy
ZW50Tm9kZTsKLQotICAgICAgICB2YXIgcGFyc2VSZXN1bHQgPSBMYXllcmluZ1RleHRTdGFnZS5w
YXJzZVRleHRJdGVtKHRleHRJdGVtKTsKLSAgICAgICAgdGV4dEl0ZW0gPSB0ZXh0SXRlbS5zdWJz
dHJpbmcocGFyc2VSZXN1bHQudGFnU3RhcnQubGVuZ3RoLCB0ZXh0SXRlbS5sZW5ndGggLSBwYXJz
ZVJlc3VsdC50YWdFbmQubGVuZ3RoKTsKLQotICAgICAgICB2YXIgdGV4dEVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KHBhcnNlUmVzdWx0Lm5vZGVOYW1lKTsKLQotICAgICAgICBmb3Ig
KHZhciBhdHRybmFtZSBpbiBwYXJzZVJlc3VsdC5hcmdzKQotICAgICAgICAgICAgdGV4dEVsZW1l
bnQuc2V0QXR0cmlidXRlKGF0dHJuYW1lLCBwYXJzZVJlc3VsdC5hcmdzW2F0dHJuYW1lXSk7Ci0K
LSAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnRQYXJlbnQuYXBwZW5kQ2hpbGQodGV4dEVsZW1lbnQp
OwotCi0gICAgICAgIGlmICghcGFyc2VSZXN1bHQudGFnRW5kLmxlbmd0aCkKLSAgICAgICAgICAg
IHRoaXMuX3RleHRFbGVtZW50UGFyZW50ID0gdGV4dEVsZW1lbnQ7Ci0KLSAgICAgICAgdGV4dEVs
ZW1lbnQuaW5uZXJIVE1MID0gdGV4dEl0ZW07Ci0KLSAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnRz
LnB1c2godGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gdGhpcy5fdGV4dEVsZW1lbnRzLmxl
bmd0aDsKLSAgICB9LAotCi0gICAgX3BvcFRleHRFbGVtZW50OiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB2YXIgdGV4dEl0ZW1GbGFncyA9IHt9OwotICAgICAgICB2YXIgdGV4dEl0ZW0gPSB0
aGlzLl9wcmV2aW91c1RleHRJdGVtKHRleHRJdGVtRmxhZ3MpOwotICAgICAgICBmb3IgKCA7IHRl
eHRJdGVtRmxhZ3MuaXNDbG9zaW5nOyB0ZXh0SXRlbSA9IHRoaXMuX3ByZXZpb3VzVGV4dEl0ZW0o
dGV4dEl0ZW1GbGFncykpCi0gICAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudFBhcmVudCA9IHRo
aXMuX3RleHRFbGVtZW50UGFyZW50Lmxhc3RDaGlsZDsKLQotICAgICAgICBpZiAodGV4dEl0ZW1G
bGFncy5pc09wZW5pbmcpCi0gICAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudFBhcmVudCA9IHRo
aXMuX3RleHRFbGVtZW50UGFyZW50LnBhcmVudE5vZGU7Ci0KLSAgICAgICAgdGhpcy5fdGV4dEVs
ZW1lbnRzW3RoaXMuX3RleHRFbGVtZW50cy5sZW5ndGggLSAxXS5yZW1vdmUoKTsKLQotICAgICAg
ICB0aGlzLl90ZXh0RWxlbWVudHMucG9wKCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl90ZXh0RWxl
bWVudHMubGVuZ3RoOwotICAgIH0sCi0KLSAgICBfY29sb3JUZXh0SXRlbTogZnVuY3Rpb24oY29s
b3IpCi0gICAgewotICAgICAgICB2YXIgdGV4dEVsZW1lbnRJbmRleCA9IExheWVyaW5nVGV4dFN0
YWdlLmNvbG9ySW5kZXhUb1RleHRFbGVtZW50SW5kZXgodGhpcy5fY29sb3JJbmRleCk7Ci0gICAg
ICAgIGZvciAoIDsgdGV4dEVsZW1lbnRJbmRleCA8IHRoaXMuX3RleHRFbGVtZW50cy5sZW5ndGg7
IHRleHRFbGVtZW50SW5kZXggKz0gTGF5ZXJpbmdUZXh0U3RhZ2UuaW5zZXJ0YWJsZVRleHRJdGVt
cykKLSAgICAgICAgICAgIHRoaXMuX3RleHRFbGVtZW50c1t0ZXh0RWxlbWVudEluZGV4XS5zdHls
ZS5iYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsKLSAgICB9LAotCi0gICAgYW5pbWF0ZTogZnVuY3Rp
b24odGltZURlbHRhKQotICAgIHsKLSAgICAgICAgdGhpcy5fY29sb3JUZXh0SXRlbSgidHJhbnNw
YXJlbnQiKTsKLSAgICAgICAgdGhpcy5fY29sb3JJbmRleCA9ICh0aGlzLl9jb2xvckluZGV4ICsg
MSkgJSBMYXllcmluZ1RleHRTdGFnZS5jb2xvcmFibGVUZXh0SXRlbXM7Ci0gICAgICAgIHRoaXMu
X2NvbG9yVGV4dEl0ZW0oIlllbGxvd0dyZWVuIik7Ci0KLSAgICAgICAgdmFyIGJsYWNrVGV4dEVs
ZW1lbnRzID0gTWF0aC5taW4odGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aCwgTGF5ZXJpbmdUZXh0
U3RhZ2UuaW5zZXJ0YWJsZVRleHRJdGVtcyk7Ci0gICAgICAgIHZhciBpID0gMDsKLSAgICAgICAg
Zm9yICggOyBpIDwgdGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aCAtIGJsYWNrVGV4dEVsZW1lbnRz
OyArK2kpCi0gICAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudHNbaV0uc3R5bGUuY29sb3IgPSAo
dGhpcy5fYW5pbWF0ZUNvdW50cyAmIDEpID8gIkxpZ2h0WWVsbG93IiA6ICJ3aGl0ZSI7Ci0KLSAg
ICAgICAgZm9yICggOyBpIDwgdGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aDsgKytpKQotICAgICAg
ICAgICAgdGhpcy5fdGV4dEVsZW1lbnRzW2ldLnN0eWxlLmNvbG9yID0gImJsYWNrIjsKLQotICAg
ICAgICArK3RoaXMuX2FuaW1hdGVDb3VudHM7Ci0gICAgfSwKLQotICAgIHR1bmU6IGZ1bmN0aW9u
KGNvdW50KQotICAgIHsKLSAgICAgICAgaWYgKGNvdW50ID09IDApCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgaWYgKGNvdW50ID4gMCkgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICAgICAgICAgIHRoaXMuX3B1c2hUZXh0RWxlbWVu
dCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgY291bnQgPSBN
YXRoLm1pbigtY291bnQsIHRoaXMuX3RleHRFbGVtZW50cy5sZW5ndGgpOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpCi0gICAgICAgICAgICB0aGlzLl9wb3BUZXh0RWxl
bWVudCgpOwotICAgIH0sCi0KLSAgICBjb21wbGV4aXR5OiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aDsKLSAgICB9Ci19KTsKLQotVXRp
bGl0aWVzLmV4dGVuZE9iamVjdChMYXllcmluZ1RleHRTdGFnZSwgewotICAgIHRleHRJdGVtczog
WwotICAgICAgICAiPGRpdiBjbGFzcz0ndGV4dC1sYXllcic+IiwKLSAgICAgICAgICAgICI8aDI+
VHlwZXMgb2YgYmVuY2htYXJrczwvaDI+IiwKLSAgICAgICAgICAgICI8b2w+IiwKLSAgICAgICAg
ICAgICAgICAiPGxpPlJlYWwgcHJvZ3JhbSIsCi0gICAgICAgICAgICAgICAgICAgICI8dWw+IiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+d29yZCBwcm9jZXNzaW5nIHNvZnR3YXJlPC9s
aT4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIjxsaT50b29sIHNvZnR3YXJlIG9mIENBRDwv
bGk+IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+dXNlcidzIGFwcGxpY2F0aW9uIHNv
ZnR3YXJlIChpLmUuOiBNSVMpPC9saT4iLAotICAgICAgICAgICAgICAgICAgICAiPC91bD4iLAot
ICAgICAgICAgICAgICAgICI8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5LZXJuZWwiLAot
ICAgICAgICAgICAgICAgICAgICAiPHVsPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiPGxp
PmNvbnRhaW5zIGtleSBjb2RlczwvbGk+IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+
bm9ybWFsbHkgYWJzdHJhY3RlZCBmcm9tIGFjdHVhbCBwcm9ncmFtPC9saT4iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIjxsaT5wb3B1bGFyIGtlcm5lbDogTGl2ZXJtb3JlIGxvb3A8L2xpPiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAiPGxpPmxpbnBhY2sgYmVuY2htYXJrIChjb250YWlu
cyBiYXNpYyBsaW5lYXIgYWxnZWJyYSBzdWJyb3V0aW5lIHdyaXR0ZW4gaW4gRk9SVFJBTiBsYW5n
dWFnZSk8L2xpPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiPGxpPnJlc3VsdHMgYXJlIHJl
cHJlc2VudGVkIGluIE1GTE9QUzwvbGk+IiwKLSAgICAgICAgICAgICAgICAgICAgIjwvdWw+IiwK
LSAgICAgICAgICAgICAgICAiPC9saT4iLAotICAgICAgICAgICAgICAgICI8bGk+U3ludGhldGlj
IEJlbmNobWFyayIsCi0gICAgICAgICAgICAgICAgICAgICI8dWw+IiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICI8bGk+UHJvY2VkdXJlIGZvciBwcm9ncmFtbWluZyBzeW50aGV0aWMgYmVuY2ht
YXJrOiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx1bD4iLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiPGxpPnRha2Ugc3RhdGlzdGljcyBvZiBhbGwgdHlwZXMgb2Yg
b3BlcmF0aW9ucyBmcm9tIG1hbnkgYXBwbGljYXRpb24gcHJvZ3JhbXM8L2xpPiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+Z2V0IHByb3BvcnRpb24gb2YgZWFjaCBvcGVy
YXRpb248L2xpPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+d3JpdGUg
cHJvZ3JhbSBiYXNlZCBvbiB0aGUgcHJvcG9ydGlvbiBhYm92ZTwvbGk+IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiPC91bD4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIjwvbGk+
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+VHlwZXMgb2YgU3ludGhldGljIEJlbmNo
bWFyayBhcmU6IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPHVsPiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+V2hldHN0b25lPC9saT4iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiPGxpPkRocnlzdG9uZTwvbGk+IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiPC91bD4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIjwvbGk+
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+VGhlc2Ugd2VyZSB0aGUgZmlyc3QgZ2Vu
ZXJhbCBwdXJwb3NlIGluZHVzdHJ5IHN0YW5kYXJkIGNvbXB1dGVyIGJlbmNobWFya3MuIFRoZXkg
ZG8gbm90IG5lY2Vzc2FyaWx5IG9idGFpbiBoaWdoIHNjb3JlcyBvbiBtb2Rlcm4gcGlwZWxpbmVk
IGNvbXB1dGVycy48L2xpPiIsCi0gICAgICAgICAgICAgICAgICAgICI8L3VsPiIsCi0gICAgICAg
ICAgICAgICAgIjwvbGk+IiwKLSAgICAgICAgICAgICAgICAiPGxpPkkvTyBiZW5jaG1hcmtzPC9s
aT4iLAotICAgICAgICAgICAgICAgICI8bGk+RGF0YWJhc2UgYmVuY2htYXJrczogdG8gbWVhc3Vy
ZSB0aGUgdGhyb3VnaHB1dCBhbmQgcmVzcG9uc2UgdGltZXMgb2YgZGF0YWJhc2UgbWFuYWdlbWVu
dCBzeXN0ZW1zIChEQk1TJyk8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5QYXJhbGxlbCBi
ZW5jaG1hcmtzOiB1c2VkIG9uIG1hY2hpbmVzIHdpdGggbXVsdGlwbGUgY29yZXMsIHByb2Nlc3Nv
cnMgb3Igc3lzdGVtcyBjb25zaXN0aW5nIG9mIG11bHRpcGxlIG1hY2hpbmVzPC9saT4iLAotICAg
ICAgICAgICAgIjwvb2w+IiwKLSAgICAgICAgICAgICI8aDI+Q29tbW9uIGJlbmNobWFya3M8L2gy
PiIsCi0gICAgICAgICAgICAiPHVsPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5CdXNpbmVzcyBB
cHBsaWNhdGlvbnMgUGVyZm9ybWFuY2UgQ29ycG9yYXRpb24gKEJBUENvKTwvbGk+IiwKLSAgICAg
ICAgICAgICAgICAiPGxpPkVtYmVkZGVkIE1pY3JvcHJvY2Vzc29yIEJlbmNobWFyayBDb25zb3J0
aXVtIChFRU1CQyk8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5TdGFuZGFyZCBQZXJmb3Jt
YW5jZSBFdmFsdWF0aW9uIENvcnBvcmF0aW9uIChTUEVDKSwgaW4gcGFydGljdWxhciB0aGVpciBT
UEVDaW50IGFuZCBTUEVDZnA8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5UcmFuc2FjdGlv
biBQcm9jZXNzaW5nIFBlcmZvcm1hbmNlIENvdW5jaWwgKFRQQyk8L2xpPiIsCi0gICAgICAgICAg
ICAgICAgIjxsaT5Db3JlbWFyazogRW1iZWRkZWQgY29tcHV0aW5nIGJlbmNobWFyazwvbGk+IiwK
LSAgICAgICAgICAgICI8L3VsPiIsCi0gICAgICAgICAgICAiPGgzPk9wZW4gc291cmNlIGJlbmNo
bWFya3M8L2gzPiIsCi0gICAgICAgICAgICAiPHVsPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5B
SU0gTXVsdGl1c2VyIEJlbmNobWFyazogY29tcG9zZWQgb2YgYSBsaXN0IG9mIHRlc3RzIHRoYXQg
Y291bGQgYmUgbWl4ZWQgdG8gY3JlYXRlIGEgJ2xvYWQgbWl4JyB0aGF0IHdvdWxkIHNpbXVsYXRl
IGEgc3BlY2lmaWMgY29tcHV0ZXIgZnVuY3Rpb24gb24gYW55IFVOSVgtdHlwZSBPUy48L2xpPiIs
Ci0gICAgICAgICAgICAgICAgIjxsaT5Cb25uaWUrKzogZmlsZXN5c3RlbSBhbmQgaGFyZCBkcml2
ZSBiZW5jaG1hcms8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5CUkwtQ0FEOiBjcm9zcy1w
bGF0Zm9ybSBhcmNoaXRlY3R1cmUtYWdub3N0aWMgYmVuY2htYXJrIHN1aXRlIGJhc2VkIG9uIG11
bHRpdGhyZWFkZWQgcmF5IHRyYWNpbmcgcGVyZm9ybWFuY2U7IGJhc2VsaW5lZCBhZ2FpbnN0IGEg
VkFYLTExLzc4MDsgYW5kIHVzZWQgc2luY2UgMTk4NCBmb3IgZXZhbHVhdGluZyByZWxhdGl2ZSBD
UFUgcGVyZm9ybWFuY2UsIGNvbXBpbGVyIGRpZmZlcmVuY2VzLCBvcHRpbWl6YXRpb24gbGV2ZWxz
LCBjb2hlcmVuY3ksIGFyY2hpdGVjdHVyZSBkaWZmZXJlbmNlcywgYW5kIG9wZXJhdGluZyBzeXN0
ZW0gZGlmZmVyZW5jZXMuPC9saT4iLAotICAgICAgICAgICAgIjwvdWw+IiwKLSAgICAgICAgIjwv
ZGl2PiIKLSAgICBdLAotCi0gICAgcGFyc2VUZXh0SXRlbTogZnVuY3Rpb24odGV4dEl0ZW0pCi0g
ICAgewotICAgICAgICB2YXIgcGFyc2VSZXN1bHQgPSB7fTsKLSAgICAgICAgcGFyc2VSZXN1bHQu
dGFnU3RhcnQgPSB0ZXh0SXRlbS5tYXRjaCgvPCguKj8pPi9nKVswXTsKLSAgICAgICAgdmFyIHNw
YWNlSW5kZXggPSBwYXJzZVJlc3VsdC50YWdTdGFydC5pbmRleE9mKCIgIik7Ci0gICAgICAgIHBh
cnNlUmVzdWx0Lm5vZGVOYW1lID0gcGFyc2VSZXN1bHQudGFnU3RhcnQuc3Vic3RyaW5nKDEsIHNw
YWNlSW5kZXggIT0gLTEgPyBzcGFjZUluZGV4IDogcGFyc2VSZXN1bHQudGFnU3RhcnQubGVuZ3Ro
IC0gMSk7Ci0gICAgICAgIHBhcnNlUmVzdWx0LmFyZ3MgPSBzcGFjZUluZGV4ICE9IC0xID8gVXRp
bGl0aWVzLnBhcnNlQXJndW1lbnRzKHBhcnNlUmVzdWx0LnRhZ1N0YXJ0LnN1YnN0cmluZyhzcGFj
ZUluZGV4ICsgMSwgcGFyc2VSZXN1bHQudGFnU3RhcnQubGVuZ3RoIC0gMSkpIDoge307Ci0gICAg
ICAgIHZhciB0YWdFbmQgPSAiPC8iICsgcGFyc2VSZXN1bHQubm9kZU5hbWUgKyAiPiI7Ci0gICAg
ICAgIHBhcnNlUmVzdWx0LnRhZ0VuZCA9IHRleHRJdGVtLmVuZHNXaXRoKHRhZ0VuZCkgPyB0YWdF
bmQgOiAiIjsKLSAgICAgICAgcmV0dXJuIHBhcnNlUmVzdWx0OwotICAgIH0sCi0KLSAgICBpc09w
ZW5pbmdUZXh0SXRlbTogZnVuY3Rpb24odGV4dEl0ZW0pCi0gICAgewotICAgICAgICByZXR1cm4g
IUxheWVyaW5nVGV4dFN0YWdlLnBhcnNlVGV4dEl0ZW0odGV4dEl0ZW0pLnRhZ0VuZC5sZW5ndGg7
Ci0gICAgfSwKLQotICAgIGlzQ2xvc2luZ1RleHRJdGVtOiBmdW5jdGlvbih0ZXh0SXRlbSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0ZXh0SXRlbS5pbmRleE9mKCIvIikgPT0gKzE7Ci0gICAgfSwK
LQotICAgIGlzQ29sb3JhYmxlVGV4dEl0ZW06IGZ1bmN0aW9uKHRleHRJdGVtRmxhZ3MpCi0gICAg
ewotICAgICAgICByZXR1cm4gISh0ZXh0SXRlbUZsYWdzLmlzT3BlbmluZyB8fCB0ZXh0SXRlbUZs
YWdzLmlzQ2xvc2luZyk7Ci0gICAgfSwKLQotICAgIGlzSW5zZXJ0YWJsZVRleHRJdGVtOiBmdW5j
dGlvbih0ZXh0SXRlbUZsYWdzKQotICAgIHsKLSAgICAgICAgcmV0dXJuICF0ZXh0SXRlbUZsYWdz
LmlzQ2xvc2luZzsKLSAgICB9LAotCi0gICAgY29sb3JJbmRleFRvVGV4dEVsZW1lbnRJbmRleDog
ZnVuY3Rpb24oY29sb3JJbmRleCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0RWxlbWVudEluZGV4
ID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmb3IgKHZhciB0ZXh0SXRl
bUluZGV4ID0gMDsgdGV4dEl0ZW1JbmRleCA8IExheWVyaW5nVGV4dFN0YWdlLnRleHRJdGVtc0Zs
YWdzLmxlbmd0aDsgKyt0ZXh0SXRlbUluZGV4KSB7Ci0gICAgICAgICAgICBpZiAoTGF5ZXJpbmdU
ZXh0U3RhZ2UuaXNDb2xvcmFibGVUZXh0SXRlbShMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXNG
bGFnc1t0ZXh0SXRlbUluZGV4XSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoKytpbmRleCA+IGNv
bG9ySW5kZXgpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKExheWVyaW5nVGV4dFN0YWdlLmlzSW5zZXJ0YWJsZVRleHRJdGVtKExheWVy
aW5nVGV4dFN0YWdlLnRleHRJdGVtc0ZsYWdzW3RleHRJdGVtSW5kZXhdKSkKLSAgICAgICAgICAg
ICAgICArK3RleHRFbGVtZW50SW5kZXg7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gdGV4
dEVsZW1lbnRJbmRleDsKLSAgICB9Ci19KTsKLQotVXRpbGl0aWVzLmV4dGVuZE9iamVjdChMYXll
cmluZ1RleHRTdGFnZSwgewotICAgIHRleHRJdGVtc0ZsYWdzOiBMYXllcmluZ1RleHRTdGFnZS50
ZXh0SXRlbXMubWFwKGZ1bmN0aW9uKHRleHRJdGVtKQotICAgIHsKLSAgICAgICB2YXIgdGV4dEl0
ZW1GbGFncyA9IHt9OwotICAgICAgIHRleHRJdGVtRmxhZ3MuaXNPcGVuaW5nID0gTGF5ZXJpbmdU
ZXh0U3RhZ2UuaXNPcGVuaW5nVGV4dEl0ZW0odGV4dEl0ZW0pOwotICAgICAgIHRleHRJdGVtRmxh
Z3MuaXNDbG9zaW5nID0gTGF5ZXJpbmdUZXh0U3RhZ2UuaXNDbG9zaW5nVGV4dEl0ZW0odGV4dEl0
ZW0pOwotICAgICAgIHJldHVybiB0ZXh0SXRlbUZsYWdzOwotICAgIH0pCi19KTsKLQotVXRpbGl0
aWVzLmV4dGVuZE9iamVjdChMYXllcmluZ1RleHRTdGFnZSwgewotICAgIGNvbG9yYWJsZVRleHRJ
dGVtczogTGF5ZXJpbmdUZXh0U3RhZ2UudGV4dEl0ZW1zRmxhZ3MuZmlsdGVyKGZ1bmN0aW9uKHRl
eHRJdGVtRmxhZ3MpCi0gICAgewotICAgICAgICByZXR1cm4gTGF5ZXJpbmdUZXh0U3RhZ2UuaXND
b2xvcmFibGVUZXh0SXRlbSh0ZXh0SXRlbUZsYWdzKTsKLSAgICB9KS5sZW5ndGgsCi0KLSAgICBp
bnNlcnRhYmxlVGV4dEl0ZW1zOiBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXNGbGFncy5maWx0
ZXIoZnVuY3Rpb24odGV4dEl0ZW1GbGFncykKLSAgICB7Ci0gICAgICAgIHJldHVybiBMYXllcmlu
Z1RleHRTdGFnZS5pc0luc2VydGFibGVUZXh0SXRlbSh0ZXh0SXRlbUZsYWdzKTsKLSAgICB9KS5s
ZW5ndGgKLX0pOwotCi1MYXllcmluZ1RleHRCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlU3Vi
Y2xhc3MoQmVuY2htYXJrLAotICAgIGZ1bmN0aW9uKG9wdGlvbnMpCi0gICAgewotICAgICAgICBC
ZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcgTGF5ZXJpbmdUZXh0U3RhZ2UoKSwgb3B0aW9ucyk7Ci0g
ICAgfQotKTsKLQotd2luZG93LmJlbmNobWFya0NsYXNzID0gTGF5ZXJpbmdUZXh0QmVuY2htYXJr
OwotCi19KSgpOwotCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvdGV4dC9yZXNvdXJjZXMvdGV4dC1ib3hlcy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy90ZXh0LWJveGVzLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2YTM1MjNlMDE3YzhlNTBjNmFlOGM4MGQyNDQ3ODkyMzM0M2I2NTc2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy90ZXh0LWJveGVzLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotCi1Cb3VuY2luZ1RleHRC
b3ggPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQm91bmNpbmdQYXJ0aWNsZSwKLSAgICBmdW5j
dGlvbihzdGFnZSwgc2FtcGxlVGV4dCkKLSAgICB7Ci0gICAgICAgIEJvdW5jaW5nUGFydGljbGUu
Y2FsbCh0aGlzLCBzdGFnZSk7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdw
YXJ0aWNsZScpOwotICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLnNpemUu
eCArICJweCI7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLnNpemUu
eSArICJweCI7Ci0gICAgICAgIHRoaXMuZWxlbWVudC50ZXh0Q29udGVudCA9IHNhbXBsZVRleHQ7
Ci0KLSAgICAgICAgc3RhZ2UuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpOwotICAg
ICAgICB0aGlzLl9tb3ZlKCk7Ci0gICAgfSwgewotCi0gICAgX21vdmU6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gdGhpcy5wb3NpdGlvbi54ICsg
InB4IjsKLSAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IHRoaXMucG9zaXRpb24ueSAr
ICJweCI7Ci0gICAgfSwKLQotICAgIGFuaW1hdGU6IGZ1bmN0aW9uKHRpbWVEZWx0YSkKLSAgICB7
Ci0gICAgICAgIEJvdW5jaW5nUGFydGljbGUucHJvdG90eXBlLmFuaW1hdGUuY2FsbCh0aGlzLCB0
aW1lRGVsdGEpOwotICAgICAgICB0aGlzLl9tb3ZlKCk7Ci0gICAgfQotfSk7Ci0KLUJvdW5jaW5n
VGV4dEJveFN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJvdW5jaW5nUGFydGljbGVz
U3RhZ2UsCi0gICAgZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgQm91bmNpbmdQYXJ0aWNsZXNT
dGFnZS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLl9zYW1wbGVUZXh0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3NhbXBsZS10ZXh0JykudGV4dENvbnRlbnQ7Ci0gICAgfSwgewotCi0gICAg
Y3JlYXRlUGFydGljbGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgQm91
bmNpbmdUZXh0Qm94KHRoaXMsIHRoaXMuX3NhbXBsZVRleHQpOwotICAgIH0sCi0KLSAgICBwYXJ0
aWNsZVdpbGxCZVJlbW92ZWQ6IGZ1bmN0aW9uKHBhcnRpY2xlKQotICAgIHsKLSAgICAgICAgcGFy
dGljbGUuZWxlbWVudC5yZW1vdmUoKTsKLSAgICB9Ci19KTsKLQotQm91bmNpbmdUZXh0Qm94QmVu
Y2htYXJrID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJlbmNobWFyaywKLSAgICBmdW5jdGlv
bihvcHRpb25zKQotICAgIHsKLSAgICAgICAgQmVuY2htYXJrLmNhbGwodGhpcywgbmV3IEJvdW5j
aW5nVGV4dEJveFN0YWdlKCksIG9wdGlvbnMpOwotICAgIH0KLSk7Ci0KLXdpbmRvdy5iZW5jaG1h
cmtDbGFzcyA9IEJvdW5jaW5nVGV4dEJveEJlbmNobWFyazsKLQotfSkoKTsKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3RleHQtYm94ZXMuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3RleHQtYm94ZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM0ODljMzA4MGU2NjcyM2UxZmQwNDY3MWRh
NzE4ZThkODAyZDgyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC90ZXh0LWJveGVzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDxzdHlsZT4KLSAgICAg
ICAgLnRleHQtbGF5ZXIgewotICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAg
ICAgICAgbGVmdDogMHB4OwotICAgICAgICAgICAgdG9wOiAwcHg7Ci0gICAgICAgICAgICBwYWRk
aW5nOiAwLjcyZW07Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsK
LSAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7Ci0gICAgICAgICAgICBmb250LXNpemU6IDAu
NzJlbTsKLSAgICAgICAgfQotICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLWRldmljZS13
aWR0aDogMTgwMHB4KSB7Ci0gICAgICAgICAgICAudGV4dC1sYXllciB7Ci0gICAgICAgICAgICAg
ICAgbGluZS1oZWlnaHQ6IDEuMjsKLSAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOTZlbTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC5wYXJ0aWNsZSB7Ci0gICAgICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICB3aWR0aDogMjgwcHg7Ci0gICAg
ICAgICAgICBmb250LXNpemU6IDEycHg7Ci0gICAgICAgICAgICBmb250LWZhbWlseTogc2Fucy1z
ZXJpZjsKLSAgICAgICAgICAgIHBhZGRpbmc6IDNweDsKLSAgICAgICAgfQotCi0gICAgICAgICNz
YW1wbGUtdGV4dCB7Ci0gICAgICAgICAgICBkaXNwbGF5OiBub25lOwotICAgICAgICB9Ci0gICAg
PC9zdHlsZT4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSIuLi9yZXNvdXJjZXMvc3RhZ2UuY3NzIj4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxkaXYgaWQ9
InNhbXBsZS10ZXh0IiBjbGFzcz0icGFydGljbGUiPkkgY2FuIGVhdCBnbGFzcyBhbmQgaXQgZG9l
c24ndCBodXJ0IG1lLgotICAgICAgICBWaXRydW0gZWRlcmUgcG9zc3VtOyBtaWhpIG5vbiBub2Nl
dC4KLSAgICAgICAgSmUgcGV1eCBtYW5nZXIgZHUgdmVycmUsIMOnYSBuZSBtZSBmYWl0IHBhcyBt
YWwuCi0gICAgICAgIOCkleCkvuCkmuCkgiDgpLbgpJXgpY3gpKjgpYvgpK7gpY3gpK/gpKTgpY3g
pKTgpYHgpK7gpY0g4KWkIOCkqOCli+CkquCkueCkv+CkqOCkuOCljeCkpOCkvyDgpK7gpL7gpK4K
LSAgICAgICAg15DXoNeZINeZ15vXldecINec15DXm9eV15wg15bXm9eV15vXmdeqINeV15bXlCDX
nNeQINee15bXmdenINec15kuCi0gICAgICAgIOG9lc6xzrvOv869IM+VzrHOs8614b+Wzr0gzrTP
jc69zrHOvM6xzrnCtyDPhM6/4b+mz4TOvyDOv+G9lCDOvM61IM6yzrvOrM+Az4TOtc65LgotICAg
ICAgICDYo9mG2Kcg2YLYp9iv2LEg2LnZhNmJINij2YPZhCDYp9mE2LLYrNin2Kwg2Ygg2YfYsNin
INmE2Kcg2YrYpNmE2YXZhtmKLgotICAgICAgICDguInguLHguJnguIHguLTguJnguIHguKPguLDg
uIjguIHguYTguJTguYkg4LmB4LiV4LmI4Lih4Lix4LiZ4LmE4Lih4LmI4LiX4Liz4LmD4Lir4LmJ
4LiJ4Lix4LiZ4LmA4LiI4LmH4LiaCi0gICAgICAgIOCkruCliOCkgiDgpJXgpL7gpIHgpJog4KSW
4KS+IOCkuOCkleCkpOCkviDgpLngpYLgpIEg4KSU4KSwIOCkruClgeCkneClhyDgpIngpLjgpLjg
pYcg4KSV4KWL4KSIIOCkmuCli+CknyDgpKjgpLngpYDgpIIg4KSq4KS54KWB4KSC4KSa4KSk4KWA
LgotICAgICAgICDmiJHog73lkJ7kuIvnjrvnkoPogIzkuI3kvKTouqvkvZPjgIIKLSAgICAgICAg
56eB44Gv44Ks44Op44K544KS6aOf44G544KJ44KM44G+44GZ44CC44Gd44KM44Gv56eB44KS5YK3
44Gk44GR44G+44Gb44KT44CCCi0gICAgICAgIOuCmOuKlCDsnKDrpqzrpbwg66i57J2EIOyImCDs
nojslrTsmpQuIOq3uOuemOuPhCDslYTtlITsp4Ag7JWK7JWE7JqUCi0gICAgICAgINCvINC80L7Q
ttGDINGX0YHRgtC4INGB0LrQu9C+LCDRliDQstC+0L3QviDQvNC10L3RliDQvdC1INC30LDRiNC6
0L7QtNC40YLRjC4KLSAgICAgICAg4LKo4LKo4LKX4LOGIOCyueCyvuCyqOCyvyDgsobgspfgsqbg
s4YsIOCyqOCyvuCyqOCzgSDgspfgspzgsqjgs43gsqjgs4Eg4LKk4LK/4LKo4LKs4LK54LOB4LKm
4LOBCi0gICAgPC9kaXY+Ci0gICAgPGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vYm91
bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9ib3VuY2luZy1wYXJ0aWNsZXMuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgY2hhcnNldD0idXRmLTgiIHNyYz0icmVzb3VyY2VzL3RleHQtYm94ZXMu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCBlNGZiOTdk
NmZkMjQ5MDM2M2Y5MWU0OTZmYzkyMGU4ZGE3ZTI3MmQzLi44MjE0NDJjNjRlMTE3NzAzNzRmMjMw
YmQ2MjZmNjk4YzQwNjAwZGExIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxv
ZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE2
LTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgdGV4dCB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1
MjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBB
bmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgorICAgICAgICAoVW5pdEJlemllci5V
dGlsaXRpZXMuY3JlYXRlQ2xhc3MpOiBBZGQgYSBjbGFzcyB0aGF0IGNvbXB1dGVzIEJlemllciBw
b2ludHMKKyAgICAgICAgYXNzdW1pbmcgdGhhdCB0d28gb2YgdGhlIGNvbnRyb2wgcG9pbnRzIGFy
ZSBhdCAoMCwwKSBhbmQgKDEsMSkuIFRha2VuIGZyb20KKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Vbml0QmV6aWVyLmgKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanM6IEFkZCBhIHRlc3QgZm9yIEVuZ2xpc2ggdGV4dCBhbmQgb25lCisgICAg
ICAgIGZvciBpbnRlcm5hdGlvbmFsIHRleHQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvaW50ZXJuYXRpb25hbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvdGV4dC5qczogQWRkZWQuIFRoZSB0ZXN0IGFzc3VtZXMgdGhl
cmUgaXMKKyAgICAgICAgI3RlbXBsYXRlIGRpdiB3aGljaCBpdCB3aWxsIGNvcHkuIFRoZSBjb3Bp
ZXMgYXJlIHBsYWNlZCBiZWhpbmQgdGhlIHRlbXBsYXRlLCBhbmQKKyAgICAgICAgYXJlIHNldCB3
aXRoIGRpZmZlcmVudCBjb2xvcnMgZWFjaCBmcmFtZS4gVGhleSBhcmUgbW92ZWQgYXJvdW5kIHdp
dGggQ1NTIHRyYW5zZm9ybS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0
Lmh0bWw6IEFkZGVkLgorCisgICAgICAgIFJlbW92ZSB0aGUgb3RoZXIgdGV4dCB0ZXN0cywgc2lu
Y2UgdGhlc2Ugb25lcyBjb3ZlciB0aGUgc2FtZSB0ZWNobmlxdWVzLgorICAgICAgICAqIEFuaW1v
bWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
QW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy9sYXllcmluZy10ZXh0LmpzOiBSZW1vdmVk
LgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGV4dC9yZXNvdXJjZXMvdGV4dC1ib3hlcy5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3RleHQvdGV4dC1ib3hlcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci90ZXN0cy5qczoKKworMjAxNi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisK
ICAgICAgICAgQWRkIGEgbmV3IGltYWdlIHRlc3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTIzMgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273477</attachid>
            <date>2016-03-09 14:18:33 -0800</date>
            <delta_ts>2016-03-09 14:52:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155257-20160309141819.patch</filename>
            <type>text/plain</type>
            <size>29386</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3ODU5CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci90ZXN0cy5qcyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCmluZGV4IDU4
NDhlYWNmMmM4MTRiZTZlNDVlZmRmYTk4NjM4NjAzMjMyODg3YTIuLjJlZjViYjQ4YzIyNDU5ZGQ2
MmFjOTQwNTJhODFmNjFhMDY4MGRmMzEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL3Rlc3RzLmpzCkBAIC0xNjAs
MTUgKzE2MCw3IEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiSFRNTCBzdWl0ZSIsCiAgICAgICAg
IHsKICAgICAgICAgICAgIHVybDogImJvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3MtaW1h
Z2VzLmh0bWw/cGFydGljbGVXaWR0aD04MCZwYXJ0aWNsZUhlaWdodD04MCZpbWFnZVNyYz0uLi9y
ZXNvdXJjZXMveWluLXlhbmcuc3ZnIiwKICAgICAgICAgICAgIG5hbWU6ICJDU1MgYm91bmNpbmcg
U1ZHIGltYWdlcyIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgdXJsOiAidGV4
dC9sYXllcmluZy10ZXh0Lmh0bWwiLAotICAgICAgICAgICAgbmFtZTogIkNTUyBsYXllcmluZyB0
ZXh0IgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICB1cmw6ICJ0ZXh0L3RleHQt
Ym94ZXMuaHRtbD9wYXJ0aWNsZVdpZHRoPTI4MCZwYXJ0aWNsZUhlaWdodD0xODAiLAotICAgICAg
ICAgICAgbmFtZTogIkNTUyB0ZXh0IGJveGVzIgotICAgICAgICB9LAorICAgICAgICB9CiAgICAg
XQogKSk7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJj
ZXMvZXh0ZW5zaW9ucy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZXh0ZW5zaW9ucy5qcwppbmRleCA2ZjY1M2ZlZjI1YWI3MTRmMTVmNjZjNmJlMjNiZjZmY2U5MTk4
YzkyLi5kMjZkM2I2ZjU2NDM3MThiNzA2OTQzNjg4YzUwMjJjZDRlMzg5ZGIzIDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCkBA
IC0zMTQsNiArMzE0LDc2IEBAIEluc2V0cy5lbGVtZW50UGFkZGluZyA9IGZ1bmN0aW9uKGVsZW1l
bnQpCiAgICAgICAgIHBhcnNlRmxvYXQoc3R5bGVzLnBhZGRpbmdUb3ApKTsKIH0KIAorVW5pdEJl
emllciA9IFV0aWxpdGllcy5jcmVhdGVDbGFzcygKKyAgICBmdW5jdGlvbihwb2ludDEsIHBvaW50
MikKKyAgICB7CisgICAgICAgIC8vIEZpcnN0IGFuZCBsYXN0IHBvaW50cyBpbiB0aGUgQsOpemll
ciBjdXJ2ZSBhcmUgYXNzdW1lZCB0byBiZSAoMCwwKSBhbmQgKCEsMSkKKyAgICAgICAgdGhpcy5f
YyA9IHBvaW50MS5tdWx0aXBseSgzKTsKKyAgICAgICAgdGhpcy5fYiA9IHBvaW50Mi5zdWJ0cmFj
dChwb2ludDEpLm11bHRpcGx5KDMpLnN1YnRyYWN0KHRoaXMuX2MpOworICAgICAgICB0aGlzLl9h
ID0gbmV3IFBvaW50KDEsIDEpLnN1YnRyYWN0KHRoaXMuX2MpLnN1YnRyYWN0KHRoaXMuX2IpOwor
ICAgIH0sIHsKKworICAgIGVwc2lsb246IDFlLTUsCisgICAgZGVyaXZhdGl2ZUVwc2lsb246IDFl
LTYsCisKKyAgICBzb2x2ZTogZnVuY3Rpb24oeCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
LnNhbXBsZVkodGhpcy5zb2x2ZUZvclQoeCkpOworICAgIH0sCisKKyAgICBzYW1wbGVYOiBmdW5j
dGlvbih0KQorICAgIHsKKyAgICAgICAgcmV0dXJuICgodGhpcy5fYS54ICogdCArIHRoaXMuX2Iu
eCkgKiB0ICsgdGhpcy5fYy54KSAqIHQ7CisgICAgfSwKKworICAgIHNhbXBsZVk6IGZ1bmN0aW9u
KHQpCisgICAgeworICAgICAgICByZXR1cm4gKCh0aGlzLl9hLnkgKiB0ICsgdGhpcy5fYi55KSAq
IHQgKyB0aGlzLl9jLnkpICogdDtra2tqCisgICAgfSwKKworICAgIHNhbXBsZURlcml2YXRpdmVY
OiBmdW5jdGlvbih0KQorICAgIHsKKyAgICAgICAgcmV0dXJuKDMgKiB0aGlzLl9hLnggKiB0ICsg
MiAqIHRoaXMuX2IueCkgKiB0ICsgdGhpcy5fYy54OworICAgIH0sCisKKyAgICBzb2x2ZUZvclQ6
IGZ1bmN0aW9uKHgpCisgICAgeworICAgICAgICB2YXIgdDAsIHQxLCB0MiwgeDIsIGQyLCBpOwor
CisgICAgICAgIGZvciAodDIgPSB4LCBpID0gMDsgaSA8IDg7ICsraSkgeworICAgICAgICAgICAg
eDIgPSB0aGlzLnNhbXBsZVgodDIpIC0geDsKKyAgICAgICAgICAgIGlmIChNYXRoLmFicyh4Mikg
PCB0aGlzLmVwc2lsb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHQyOworICAgICAgICAgICAg
ZDIgPSB0aGlzLnNhbXBsZURlcml2YXRpdmVYKHQyKTsKKyAgICAgICAgICAgIGlmIChNYXRoLmFi
cyhkMikgPCB0aGlzLmRlcml2YXRpdmVFcHNpbG9uKQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgdDIgPSB0MiAtIHgyIC8gZDI7CisgICAgICAgIH0KKworICAgICAgICB0MCA9
IDA7CisgICAgICAgIHQxID0gMTsKKyAgICAgICAgdDIgPSB4OworCisgICAgICAgIGlmICh0MiA8
IHQwKQorICAgICAgICAgICAgcmV0dXJuIHQwOworICAgICAgICBpZiAodDIgPiB0MSkKKyAgICAg
ICAgICAgIHJldHVybiB0MTsKKworICAgICAgICB3aGlsZSAodDAgPCB0MSkgeworICAgICAgICAg
ICAgeDIgPSB0aGlzLnNhbXBsZVgodDIpOworICAgICAgICAgICAgaWYgKE1hdGguYWJzKHgyIC0g
eCkgPCB0aGlzLmVwc2lsb24pCisgICAgICAgICAgICAgICAgcmV0dXJuIHQyOworICAgICAgICAg
ICAgaWYgKHggPiB4MikKKyAgICAgICAgICAgICAgICB0MCA9IHQyOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHQxID0gdDI7CisgICAgICAgICAgICB0MiA9ICh0MSAtIHQwKSAq
IC41ICsgdDA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdDI7CisgICAgfQorfSk7CisK
IFNpbXBsZVByb21pc2UgPSBVdGlsaXRpZXMuY3JlYXRlQ2xhc3MoCiAgICAgZnVuY3Rpb24oKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanMKaW5kZXggYWYzMjRmYjFiMjJlNzNhMjBkZGZkMGVjOTViOTMxMDRiZTQ1
MjQ4MC4uMDg4MWUzMmE2ZjVmN2Y0NWJlYzAxMDVkMDExOWY1NDVjNmNmNzg3OSAxMDA2NDQKLS0t
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMu
anMKQEAgLTMzLDYgKzMzLDEwIEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0ZSgiQW5pbW9tZXRlciIs
CiAgICAgICAgICAgICBuYW1lOiAiQ2FudmFzIGxpbmUgc2VnbWVudHMiCiAgICAgICAgIH0sCiAg
ICAgICAgIHsKKyAgICAgICAgICAgIHVybDogIm1hc3Rlci90ZXh0Lmh0bWwiLAorICAgICAgICAg
ICAgbmFtZTogIkEgdG8gWiIKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICAgdXJs
OiAibWFzdGVyL2ZvY3VzLmh0bWwiLAogICAgICAgICAgICAgbmFtZTogIkZvY3VzIgogICAgICAg
ICB9LApAQCAtNDEsNiArNDUsMTAgQEAgU3VpdGVzLnB1c2gobmV3IFN1aXRlKCJBbmltb21ldGVy
IiwKICAgICAgICAgICAgIG5hbWU6ICJJbWFnZXMiCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIHVybDogIm1hc3Rlci9pbnRlcm5hdGlvbmFsLmh0bWwiLAorICAgICAgICAgICAg
bmFtZTogIkRlc2lnbiIKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICAgdXJsOiAi
bWFzdGVyL3BhcnRpY2xlcy5odG1sIiwKICAgICAgICAgICAgIG5hbWU6ICJET00gcGFydGljbGVz
LCBTVkcgbWFza3MiCiAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9uYWwuaHRtbCBiL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvaW50ZXJuYXRpb25hbC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMxNWRhOTNlYmM5ZjI2ZWFiMjAwNjI2NWEyM2U1MjlkM2ZmYjBkN2QKLS0tIC9kZXYvbnVsbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2ludGVybmF0aW9u
YWwuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy9zdGFnZS5jc3MiPgorICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisKKyAgICAgICAgI3N0YWdlIHsKKyAgICAgICAgICAgIGZvbnQtZmFt
aWx5OiBIZWx2ZXRpY2E7CisgICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7CisgICAgICAgIH0K
KyAgICAgICAgI3N0YWdlIGRpdiB7CisgICAgICAgICAgICB3aWR0aDogNjAlOworICAgICAgICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwor
ICAgICAgICB9CisgICAgICAgICN0ZW1wbGF0ZSB7CisgICAgICAgICAgICBjb2xvcjogIzExMTsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJz
dGFnZSI+CisgICAgICAgIDxkaXYgaWQ9InRlbXBsYXRlIj4KKyAgICAgICAgICAgIDxwPuiuvuiu
oTwvcD4KKyAgICAgICAgICAgIDxwIGNsYXNzPSJydGwiPtiq2LXZhdmK2YU8L3A+CisgICAgICAg
ICAgICA8cD7QtNC40LfQsNC50L08L3A+CisgICAgICAgICAgICA8cD7jg4fjgrbjgqTjg7M8L3A+
CisgICAgICAgICAgICA8cCBjbGFzcz0icnRsIj7XoteZ16bXldeRPC9wPgorICAgICAgICAgICAg
PHA+65SU7J6Q7J24PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdGF0aXN0aWNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXh0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3RleHQuanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy90ZXh0
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ3MGI3YWEzOWIzYmNjY2FmYmNiMWQ4MWRhMWU4OTQ5Y2U3YTlmNWIK
LS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFz
dGVyL3Jlc291cmNlcy90ZXh0LmpzCkBAIC0wLDAgKzEsMTA0IEBACisoZnVuY3Rpb24oKSB7CisK
K3ZhciBUZXh0U3RhZ2UgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoU3RhZ2UsCisgICAgZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgU3RhZ2UuY2FsbCh0aGlzKTsKKworICAgICAgICB0aGlz
LnRlc3RFbGVtZW50cyA9IFtdOworICAgICAgICB0aGlzLl9vZmZzZXRJbmRleCA9IDA7CisgICAg
fSwgeworCisgICAgc2hhZG93RmFsbG9mZjogbmV3IFVuaXRCZXppZXIobmV3IFBvaW50KDAuMDE1
LCAwLjc1MCksIG5ldyBQb2ludCgwLjc1NSwgMC4yMzUpKSwKKyAgICBzaGltbWVyQXZlcmFnZTog
MC40LAorICAgIHNoaW1tZXJNYXg6IDAuNSwKKyAgICBtaWxsaXNlY29uZHNQZXJSb3RhdGlvbjog
MTAwMCAvICguMjYgKiBNYXRoLlBJICogMiksCisgICAgcGFydGljbGVEaXN0YW5jZTogMSwKKyAg
ICBsaWdodG5lc3NNaW46IDEzLAorICAgIGxpZ2h0bmVzc01heDogOTQsCisKKyAgICBpbml0aWFs
aXplOiBmdW5jdGlvbihiZW5jaG1hcmspCisgICAgeworICAgICAgICBTdGFnZS5wcm90b3R5cGUu
aW5pdGlhbGl6ZS5jYWxsKHRoaXMsIGJlbmNobWFyayk7CisKKyAgICAgICAgdGhpcy5fdGVtcGxh
dGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVtcGxhdGUiKTsKKyAgICAgICAgdGhpcy5f
b2Zmc2V0ID0gdGhpcy5zaXplLnN1YnRyYWN0KFBvaW50LmVsZW1lbnRDbGllbnRTaXplKHRoaXMu
X3RlbXBsYXRlKSkubXVsdGlwbHkoLjUpOworICAgICAgICB0aGlzLl90ZW1wbGF0ZS5zdHlsZS5s
ZWZ0ID0gdGhpcy5fb2Zmc2V0LndpZHRoICsgInB4IjsKKyAgICAgICAgdGhpcy5fdGVtcGxhdGUu
c3R5bGUudG9wID0gdGhpcy5fb2Zmc2V0LmhlaWdodCArICJweCI7CisKKyAgICAgICAgdGhpcy5f
c3RlcFByb2dyZXNzID0gMDsKKyAgICB9LAorCisgICAgdHVuZTogZnVuY3Rpb24oY291bnQpCisg
ICAgeworICAgICAgICBpZiAoY291bnQgPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aGlzLl9vZmZzZXRJbmRleCA9IE1h
dGgubWF4KHRoaXMuX29mZnNldEluZGV4ICsgY291bnQsIDApOworICAgICAgICAgICAgZm9yICh2
YXIgaSA9IHRoaXMuX29mZnNldEluZGV4OyBpIDwgdGhpcy50ZXN0RWxlbWVudHMubGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICAgICAgdGhpcy50ZXN0RWxlbWVudHNbaV0uc3R5bGUudmlzaWJpbGl0
eSA9ICJoaWRkZW4iOworCisgICAgICAgICAgICB0aGlzLl9zdGVwUHJvZ3Jlc3MgPSAxIC8gdGhp
cy5fb2Zmc2V0SW5kZXg7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICB0aGlzLl9vZmZzZXRJbmRleCA9IHRoaXMuX29mZnNldEluZGV4ICsgY291bnQ7CisgICAgICAg
IHRoaXMuX3N0ZXBQcm9ncmVzcyA9IDEgLyB0aGlzLl9vZmZzZXRJbmRleDsKKworICAgICAgICB2
YXIgaW5kZXggPSBNYXRoLm1pbih0aGlzLl9vZmZzZXRJbmRleCwgdGhpcy50ZXN0RWxlbWVudHMu
bGVuZ3RoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRleDsgKytpKQorICAgICAg
ICAgICAgdGhpcy50ZXN0RWxlbWVudHNbaV0uc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsK
KworICAgICAgICBpZiAodGhpcy5fb2Zmc2V0SW5kZXggPD0gdGhpcy50ZXN0RWxlbWVudHMubGVu
Z3RoKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLnRl
c3RFbGVtZW50cy5sZW5ndGg7IGkgPCB0aGlzLl9vZmZzZXRJbmRleDsgKytpKSB7CisgICAgICAg
ICAgICB2YXIgY2xvbmUgPSB0aGlzLl90ZW1wbGF0ZS5jbG9uZU5vZGUodHJ1ZSk7CisgICAgICAg
ICAgICB0aGlzLnRlc3RFbGVtZW50cy5wdXNoKGNsb25lKTsKKyAgICAgICAgICAgIHRoaXMuZWxl
bWVudC5pbnNlcnRCZWZvcmUoY2xvbmUsIHRoaXMuZWxlbWVudC5maXJzdENoaWxkKTsKKyAgICAg
ICAgfQorICAgIH0sCisKKyAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpIHsKKyAgICAg
ICAgdmFyIGFuZ2xlID0gU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSh0aGlzLm1pbGxpc2Vjb25kc1Bl
clJvdGF0aW9uKTsKKworICAgICAgICB2YXIgeCA9IDA7CisgICAgICAgIHZhciB5ID0gMDsKKyAg
ICAgICAgdmFyIHByb2dyZXNzID0gMDsKKyAgICAgICAgdmFyIHN0ZXBYID0gTWF0aC5zaW4oYW5n
bGUpICogdGhpcy5wYXJ0aWNsZURpc3RhbmNlOworICAgICAgICB2YXIgc3RlcFkgPSBNYXRoLmNv
cyhhbmdsZSkgKiB0aGlzLnBhcnRpY2xlRGlzdGFuY2U7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5fb2Zmc2V0SW5kZXg7ICsraSkgeworICAgICAgICAgICAgeCArPSBzdGVwWDsK
KyAgICAgICAgICAgIHkgKz0gc3RlcFk7CisKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gdGhp
cy50ZXN0RWxlbWVudHNbaV07CisKKyAgICAgICAgICAgIHZhciBjb2xvclByb2dyZXNzID0gdGhp
cy5zaGFkb3dGYWxsb2ZmLnNvbHZlKHByb2dyZXNzKTsKKyAgICAgICAgICAgIHZhciBzaGltbWVy
ID0gTWF0aC5zaW4oU3RhZ2UuZGF0ZUNvdW50ZXJWYWx1ZSgxMDApIC0gY29sb3JQcm9ncmVzcyk7
CisgICAgICAgICAgICBjb2xvclByb2dyZXNzICs9IFV0aWxpdGllcy5sZXJwKHNoaW1tZXIsIHRo
aXMuc2hpbW1lckF2ZXJhZ2UsIHRoaXMuc2hpbW1lck1heCk7CisgICAgICAgICAgICB2YXIgaW50
ZXJwb2xhdGVkTGlnaHRuZXNzID0gTWF0aC5yb3VuZChVdGlsaXRpZXMubGVycChNYXRoLm1heChN
YXRoLm1pbihjb2xvclByb2dyZXNzLCAxKSwgMCksIHRoaXMubGlnaHRuZXNzTWluLCB0aGlzLmxp
Z2h0bmVzc01heCkpOworCisgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmNvbG9yID0gImhzbCgw
LDAlLCIgKyBpbnRlcnBvbGF0ZWRMaWdodG5lc3MgKyAiJSkiOworICAgICAgICAgICAgZWxlbWVu
dC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlWCgiICsgTWF0aC5mbG9vcih5KSArICJweCkg
dHJhbnNsYXRlWSgiICsgTWF0aC5mbG9vcih4KSArICJweCkiOworCisgICAgICAgICAgICBwcm9n
cmVzcyArPSB0aGlzLl9zdGVwUHJvZ3Jlc3M7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgY29t
cGxleGl0eTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDEgKyB0aGlzLl9vZmZz
ZXRJbmRleDsKKyAgICB9Cit9KTsKKwordmFyIFRleHRCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3Jl
YXRlU3ViY2xhc3MoQmVuY2htYXJrLAorICAgIGZ1bmN0aW9uKG9wdGlvbnMpCisgICAgeworICAg
ICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcgVGV4dFN0YWdlKCksIG9wdGlvbnMpOworICAg
IH0KKyk7CisKK3dpbmRvdy5iZW5jaG1hcmtDbGFzcyA9IFRleHRCZW5jaG1hcms7CisKK30oKSk7
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Rl
eHQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvdGV4dC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJjMzI4MzRkMjg0NjA4NDRlZDIzNGI5MTc2Zjc3YWRiYTllYmM2ZjAK
LS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFz
dGVyL3RleHQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy9zdGFnZS5jc3MiPgorICAgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKyAgICAgICAgI3N0YWdlIHsKKyAgICAgICAgICAgIGZv
bnQtZmFtaWx5OiBIZWx2ZXRpY2E7CisgICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7CisgICAg
ICAgIH0KKyAgICAgICAgI3N0YWdlIGRpdiB7CisgICAgICAgICAgICB3aWR0aDogMjFlbTsKKyAg
ICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgfQorICAgICAgICAjdGVtcGxh
dGUgeworICAgICAgICAgICAgY29sb3I6ICMxMTE7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic3RhZ2UiPgorICAgICAgICA8ZGl2IGlkPSJ0
ZW1wbGF0ZSI+CisgICAgICAgICAgICBXaGVuZXZlciB0aGUgYmxhY2sgZm94IGp1bXBlZCB0aGUg
c3F1aXJyZWwgZ2F6ZWQgc3VzcGljaW91c2x5LiBBbWF6aW5nbHkgZmV3IGRpc2NvdGhlcXVlcyBw
cm92aWRlIGp1a2Vib3hlcy4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RhdGlzdGljcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGV4dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWwg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3YWJjNTM3ZWJiOWE2ZWI3MzkyMzJj
NzhkOTM1NzczMTQ4ZmJjYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmct
dGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9yZXNvdXJjZXMvc3RhZ2Uu
Y3NzIj4KLSAgICA8c3R5bGU+Ci0gICAgICAgIC50ZXh0LWxheWVyIHsKLSAgICAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgICAgIGxlZnQ6IDBweDsKLSAgICAgICAgICAgIHRv
cDogMHB4OwotICAgICAgICAgICAgcGFkZGluZzogMC43MmVtOwotICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Ci0gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xOwot
ICAgICAgICAgICAgZm9udC1zaXplOiAwLjcyZW07Ci0gICAgICAgIH0KLSAgICAgICAgQG1lZGlh
IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDE4MDBweCkgewotICAgICAgICAgICAgLnRl
eHQtbGF5ZXIgewotICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7Ci0gICAgICAgICAg
ICAgICAgZm9udC1zaXplOiAwLjk2ZW07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICA8
L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2xheWVyaW5nLXRleHQuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvcmVz
b3VyY2VzL2xheWVyaW5nLXRleHQuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvdGV4dC9yZXNvdXJjZXMvbGF5ZXJpbmctdGV4dC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGRhOTNjYmFiYTMwMmEwMTJjNjcwZTJjNzc3NGNlMTAzZmM1OTM0Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9yZXNvdXJjZXMvbGF5ZXJpbmctdGV4dC5qcworKysgL2Rl
di9udWxsCkBAIC0xLDI2NCArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0KLUxheWVyaW5nVGV4dFN0
YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKFN0YWdlLAotICAgIGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIFN0YWdlLmNhbGwodGhpcyk7Ci0gICAgfSwgewotCi0gICAgaW5pdGlhbGl6
ZTogZnVuY3Rpb24oYmVuY2htYXJrLCBvcHRpb25zKQotICAgIHsKLSAgICAgICAgU3RhZ2UucHJv
dG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLCBiZW5jaG1hcmssIG9wdGlvbnMpOwotICAgICAg
ICB0aGlzLl90ZXh0RWxlbWVudFBhcmVudCA9IHRoaXMuZWxlbWVudDsKLSAgICAgICAgdGhpcy5f
dGV4dEVsZW1lbnRzID0gW107Ci0gICAgICAgIHRoaXMuX3RleHRJdGVtSW5kZXggPSAwOwotICAg
ICAgICB0aGlzLl9jb2xvckluZGV4ID0gMDsKLSAgICAgICAgdGhpcy5fYW5pbWF0ZUNvdW50cyA9
IDA7Ci0gICAgfSwKLQotICAgIF9uZXh0VGV4dEl0ZW06IGZ1bmN0aW9uKHRleHRJdGVtRmxhZ3Mp
Ci0gICAgewotICAgICAgICB2YXIgdGV4dEl0ZW0gPSBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRl
bXNbdGhpcy5fdGV4dEl0ZW1JbmRleF07Ci0gICAgICAgIFV0aWxpdGllcy5leHRlbmRPYmplY3Qo
dGV4dEl0ZW1GbGFncywgTGF5ZXJpbmdUZXh0U3RhZ2UudGV4dEl0ZW1zRmxhZ3NbdGhpcy5fdGV4
dEl0ZW1JbmRleF0pOwotICAgICAgICB0aGlzLl90ZXh0SXRlbUluZGV4ID0gKHRoaXMuX3RleHRJ
dGVtSW5kZXggKyAxKSAlIExheWVyaW5nVGV4dFN0YWdlLnRleHRJdGVtcy5sZW5ndGg7Ci0gICAg
ICAgIHJldHVybiB0ZXh0SXRlbTsKLSAgICB9LAotCi0gICAgX3ByZXZpb3VzVGV4dEl0ZW06IGZ1
bmN0aW9uKHRleHRJdGVtRmxhZ3MpCi0gICAgewotICAgICAgICB0aGlzLl90ZXh0SXRlbUluZGV4
ID0gKHRoaXMuX3RleHRJdGVtSW5kZXggKyBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXMubGVu
Z3RoIC0gMSkgJSBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXMubGVuZ3RoOwotICAgICAgICBV
dGlsaXRpZXMuZXh0ZW5kT2JqZWN0KHRleHRJdGVtRmxhZ3MsIExheWVyaW5nVGV4dFN0YWdlLnRl
eHRJdGVtc0ZsYWdzW3RoaXMuX3RleHRJdGVtSW5kZXhdKTsKLSAgICAgICAgcmV0dXJuIExheWVy
aW5nVGV4dFN0YWdlLnRleHRJdGVtc1t0aGlzLl90ZXh0SXRlbUluZGV4XTsKLSAgICB9LAotCi0g
ICAgX3B1c2hUZXh0RWxlbWVudDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHRleHRJ
dGVtRmxhZ3MgPSB7fTsKLSAgICAgICAgdmFyIHRleHRJdGVtID0gdGhpcy5fbmV4dFRleHRJdGVt
KHRleHRJdGVtRmxhZ3MpOwotICAgICAgICBmb3IgKCA7IHRleHRJdGVtRmxhZ3MuaXNDbG9zaW5n
OyB0ZXh0SXRlbSA9IHRoaXMuX25leHRUZXh0SXRlbSh0ZXh0SXRlbUZsYWdzKSkKLSAgICAgICAg
ICAgIHRoaXMuX3RleHRFbGVtZW50UGFyZW50ID0gdGhpcy5fdGV4dEVsZW1lbnRQYXJlbnQucGFy
ZW50Tm9kZTsKLQotICAgICAgICB2YXIgcGFyc2VSZXN1bHQgPSBMYXllcmluZ1RleHRTdGFnZS5w
YXJzZVRleHRJdGVtKHRleHRJdGVtKTsKLSAgICAgICAgdGV4dEl0ZW0gPSB0ZXh0SXRlbS5zdWJz
dHJpbmcocGFyc2VSZXN1bHQudGFnU3RhcnQubGVuZ3RoLCB0ZXh0SXRlbS5sZW5ndGggLSBwYXJz
ZVJlc3VsdC50YWdFbmQubGVuZ3RoKTsKLQotICAgICAgICB2YXIgdGV4dEVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KHBhcnNlUmVzdWx0Lm5vZGVOYW1lKTsKLQotICAgICAgICBmb3Ig
KHZhciBhdHRybmFtZSBpbiBwYXJzZVJlc3VsdC5hcmdzKQotICAgICAgICAgICAgdGV4dEVsZW1l
bnQuc2V0QXR0cmlidXRlKGF0dHJuYW1lLCBwYXJzZVJlc3VsdC5hcmdzW2F0dHJuYW1lXSk7Ci0K
LSAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnRQYXJlbnQuYXBwZW5kQ2hpbGQodGV4dEVsZW1lbnQp
OwotCi0gICAgICAgIGlmICghcGFyc2VSZXN1bHQudGFnRW5kLmxlbmd0aCkKLSAgICAgICAgICAg
IHRoaXMuX3RleHRFbGVtZW50UGFyZW50ID0gdGV4dEVsZW1lbnQ7Ci0KLSAgICAgICAgdGV4dEVs
ZW1lbnQuaW5uZXJIVE1MID0gdGV4dEl0ZW07Ci0KLSAgICAgICAgdGhpcy5fdGV4dEVsZW1lbnRz
LnB1c2godGV4dEVsZW1lbnQpOwotICAgICAgICByZXR1cm4gdGhpcy5fdGV4dEVsZW1lbnRzLmxl
bmd0aDsKLSAgICB9LAotCi0gICAgX3BvcFRleHRFbGVtZW50OiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB2YXIgdGV4dEl0ZW1GbGFncyA9IHt9OwotICAgICAgICB2YXIgdGV4dEl0ZW0gPSB0
aGlzLl9wcmV2aW91c1RleHRJdGVtKHRleHRJdGVtRmxhZ3MpOwotICAgICAgICBmb3IgKCA7IHRl
eHRJdGVtRmxhZ3MuaXNDbG9zaW5nOyB0ZXh0SXRlbSA9IHRoaXMuX3ByZXZpb3VzVGV4dEl0ZW0o
dGV4dEl0ZW1GbGFncykpCi0gICAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudFBhcmVudCA9IHRo
aXMuX3RleHRFbGVtZW50UGFyZW50Lmxhc3RDaGlsZDsKLQotICAgICAgICBpZiAodGV4dEl0ZW1G
bGFncy5pc09wZW5pbmcpCi0gICAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudFBhcmVudCA9IHRo
aXMuX3RleHRFbGVtZW50UGFyZW50LnBhcmVudE5vZGU7Ci0KLSAgICAgICAgdGhpcy5fdGV4dEVs
ZW1lbnRzW3RoaXMuX3RleHRFbGVtZW50cy5sZW5ndGggLSAxXS5yZW1vdmUoKTsKLQotICAgICAg
ICB0aGlzLl90ZXh0RWxlbWVudHMucG9wKCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl90ZXh0RWxl
bWVudHMubGVuZ3RoOwotICAgIH0sCi0KLSAgICBfY29sb3JUZXh0SXRlbTogZnVuY3Rpb24oY29s
b3IpCi0gICAgewotICAgICAgICB2YXIgdGV4dEVsZW1lbnRJbmRleCA9IExheWVyaW5nVGV4dFN0
YWdlLmNvbG9ySW5kZXhUb1RleHRFbGVtZW50SW5kZXgodGhpcy5fY29sb3JJbmRleCk7Ci0gICAg
ICAgIGZvciAoIDsgdGV4dEVsZW1lbnRJbmRleCA8IHRoaXMuX3RleHRFbGVtZW50cy5sZW5ndGg7
IHRleHRFbGVtZW50SW5kZXggKz0gTGF5ZXJpbmdUZXh0U3RhZ2UuaW5zZXJ0YWJsZVRleHRJdGVt
cykKLSAgICAgICAgICAgIHRoaXMuX3RleHRFbGVtZW50c1t0ZXh0RWxlbWVudEluZGV4XS5zdHls
ZS5iYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsKLSAgICB9LAotCi0gICAgYW5pbWF0ZTogZnVuY3Rp
b24odGltZURlbHRhKQotICAgIHsKLSAgICAgICAgdGhpcy5fY29sb3JUZXh0SXRlbSgidHJhbnNw
YXJlbnQiKTsKLSAgICAgICAgdGhpcy5fY29sb3JJbmRleCA9ICh0aGlzLl9jb2xvckluZGV4ICsg
MSkgJSBMYXllcmluZ1RleHRTdGFnZS5jb2xvcmFibGVUZXh0SXRlbXM7Ci0gICAgICAgIHRoaXMu
X2NvbG9yVGV4dEl0ZW0oIlllbGxvd0dyZWVuIik7Ci0KLSAgICAgICAgdmFyIGJsYWNrVGV4dEVs
ZW1lbnRzID0gTWF0aC5taW4odGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aCwgTGF5ZXJpbmdUZXh0
U3RhZ2UuaW5zZXJ0YWJsZVRleHRJdGVtcyk7Ci0gICAgICAgIHZhciBpID0gMDsKLSAgICAgICAg
Zm9yICggOyBpIDwgdGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aCAtIGJsYWNrVGV4dEVsZW1lbnRz
OyArK2kpCi0gICAgICAgICAgICB0aGlzLl90ZXh0RWxlbWVudHNbaV0uc3R5bGUuY29sb3IgPSAo
dGhpcy5fYW5pbWF0ZUNvdW50cyAmIDEpID8gIkxpZ2h0WWVsbG93IiA6ICJ3aGl0ZSI7Ci0KLSAg
ICAgICAgZm9yICggOyBpIDwgdGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aDsgKytpKQotICAgICAg
ICAgICAgdGhpcy5fdGV4dEVsZW1lbnRzW2ldLnN0eWxlLmNvbG9yID0gImJsYWNrIjsKLQotICAg
ICAgICArK3RoaXMuX2FuaW1hdGVDb3VudHM7Ci0gICAgfSwKLQotICAgIHR1bmU6IGZ1bmN0aW9u
KGNvdW50KQotICAgIHsKLSAgICAgICAgaWYgKGNvdW50ID09IDApCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgaWYgKGNvdW50ID4gMCkgewotICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICAgICAgICAgIHRoaXMuX3B1c2hUZXh0RWxlbWVu
dCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgY291bnQgPSBN
YXRoLm1pbigtY291bnQsIHRoaXMuX3RleHRFbGVtZW50cy5sZW5ndGgpOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpCi0gICAgICAgICAgICB0aGlzLl9wb3BUZXh0RWxl
bWVudCgpOwotICAgIH0sCi0KLSAgICBjb21wbGV4aXR5OiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fdGV4dEVsZW1lbnRzLmxlbmd0aDsKLSAgICB9Ci19KTsKLQotVXRp
bGl0aWVzLmV4dGVuZE9iamVjdChMYXllcmluZ1RleHRTdGFnZSwgewotICAgIHRleHRJdGVtczog
WwotICAgICAgICAiPGRpdiBjbGFzcz0ndGV4dC1sYXllcic+IiwKLSAgICAgICAgICAgICI8aDI+
VHlwZXMgb2YgYmVuY2htYXJrczwvaDI+IiwKLSAgICAgICAgICAgICI8b2w+IiwKLSAgICAgICAg
ICAgICAgICAiPGxpPlJlYWwgcHJvZ3JhbSIsCi0gICAgICAgICAgICAgICAgICAgICI8dWw+IiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+d29yZCBwcm9jZXNzaW5nIHNvZnR3YXJlPC9s
aT4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIjxsaT50b29sIHNvZnR3YXJlIG9mIENBRDwv
bGk+IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+dXNlcidzIGFwcGxpY2F0aW9uIHNv
ZnR3YXJlIChpLmUuOiBNSVMpPC9saT4iLAotICAgICAgICAgICAgICAgICAgICAiPC91bD4iLAot
ICAgICAgICAgICAgICAgICI8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5LZXJuZWwiLAot
ICAgICAgICAgICAgICAgICAgICAiPHVsPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiPGxp
PmNvbnRhaW5zIGtleSBjb2RlczwvbGk+IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+
bm9ybWFsbHkgYWJzdHJhY3RlZCBmcm9tIGFjdHVhbCBwcm9ncmFtPC9saT4iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIjxsaT5wb3B1bGFyIGtlcm5lbDogTGl2ZXJtb3JlIGxvb3A8L2xpPiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAiPGxpPmxpbnBhY2sgYmVuY2htYXJrIChjb250YWlu
cyBiYXNpYyBsaW5lYXIgYWxnZWJyYSBzdWJyb3V0aW5lIHdyaXR0ZW4gaW4gRk9SVFJBTiBsYW5n
dWFnZSk8L2xpPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiPGxpPnJlc3VsdHMgYXJlIHJl
cHJlc2VudGVkIGluIE1GTE9QUzwvbGk+IiwKLSAgICAgICAgICAgICAgICAgICAgIjwvdWw+IiwK
LSAgICAgICAgICAgICAgICAiPC9saT4iLAotICAgICAgICAgICAgICAgICI8bGk+U3ludGhldGlj
IEJlbmNobWFyayIsCi0gICAgICAgICAgICAgICAgICAgICI8dWw+IiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICI8bGk+UHJvY2VkdXJlIGZvciBwcm9ncmFtbWluZyBzeW50aGV0aWMgYmVuY2ht
YXJrOiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx1bD4iLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiPGxpPnRha2Ugc3RhdGlzdGljcyBvZiBhbGwgdHlwZXMgb2Yg
b3BlcmF0aW9ucyBmcm9tIG1hbnkgYXBwbGljYXRpb24gcHJvZ3JhbXM8L2xpPiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+Z2V0IHByb3BvcnRpb24gb2YgZWFjaCBvcGVy
YXRpb248L2xpPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+d3JpdGUg
cHJvZ3JhbSBiYXNlZCBvbiB0aGUgcHJvcG9ydGlvbiBhYm92ZTwvbGk+IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiPC91bD4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIjwvbGk+
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+VHlwZXMgb2YgU3ludGhldGljIEJlbmNo
bWFyayBhcmU6IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPHVsPiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+V2hldHN0b25lPC9saT4iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiPGxpPkRocnlzdG9uZTwvbGk+IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiPC91bD4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIjwvbGk+
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICI8bGk+VGhlc2Ugd2VyZSB0aGUgZmlyc3QgZ2Vu
ZXJhbCBwdXJwb3NlIGluZHVzdHJ5IHN0YW5kYXJkIGNvbXB1dGVyIGJlbmNobWFya3MuIFRoZXkg
ZG8gbm90IG5lY2Vzc2FyaWx5IG9idGFpbiBoaWdoIHNjb3JlcyBvbiBtb2Rlcm4gcGlwZWxpbmVk
IGNvbXB1dGVycy48L2xpPiIsCi0gICAgICAgICAgICAgICAgICAgICI8L3VsPiIsCi0gICAgICAg
ICAgICAgICAgIjwvbGk+IiwKLSAgICAgICAgICAgICAgICAiPGxpPkkvTyBiZW5jaG1hcmtzPC9s
aT4iLAotICAgICAgICAgICAgICAgICI8bGk+RGF0YWJhc2UgYmVuY2htYXJrczogdG8gbWVhc3Vy
ZSB0aGUgdGhyb3VnaHB1dCBhbmQgcmVzcG9uc2UgdGltZXMgb2YgZGF0YWJhc2UgbWFuYWdlbWVu
dCBzeXN0ZW1zIChEQk1TJyk8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5QYXJhbGxlbCBi
ZW5jaG1hcmtzOiB1c2VkIG9uIG1hY2hpbmVzIHdpdGggbXVsdGlwbGUgY29yZXMsIHByb2Nlc3Nv
cnMgb3Igc3lzdGVtcyBjb25zaXN0aW5nIG9mIG11bHRpcGxlIG1hY2hpbmVzPC9saT4iLAotICAg
ICAgICAgICAgIjwvb2w+IiwKLSAgICAgICAgICAgICI8aDI+Q29tbW9uIGJlbmNobWFya3M8L2gy
PiIsCi0gICAgICAgICAgICAiPHVsPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5CdXNpbmVzcyBB
cHBsaWNhdGlvbnMgUGVyZm9ybWFuY2UgQ29ycG9yYXRpb24gKEJBUENvKTwvbGk+IiwKLSAgICAg
ICAgICAgICAgICAiPGxpPkVtYmVkZGVkIE1pY3JvcHJvY2Vzc29yIEJlbmNobWFyayBDb25zb3J0
aXVtIChFRU1CQyk8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5TdGFuZGFyZCBQZXJmb3Jt
YW5jZSBFdmFsdWF0aW9uIENvcnBvcmF0aW9uIChTUEVDKSwgaW4gcGFydGljdWxhciB0aGVpciBT
UEVDaW50IGFuZCBTUEVDZnA8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5UcmFuc2FjdGlv
biBQcm9jZXNzaW5nIFBlcmZvcm1hbmNlIENvdW5jaWwgKFRQQyk8L2xpPiIsCi0gICAgICAgICAg
ICAgICAgIjxsaT5Db3JlbWFyazogRW1iZWRkZWQgY29tcHV0aW5nIGJlbmNobWFyazwvbGk+IiwK
LSAgICAgICAgICAgICI8L3VsPiIsCi0gICAgICAgICAgICAiPGgzPk9wZW4gc291cmNlIGJlbmNo
bWFya3M8L2gzPiIsCi0gICAgICAgICAgICAiPHVsPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5B
SU0gTXVsdGl1c2VyIEJlbmNobWFyazogY29tcG9zZWQgb2YgYSBsaXN0IG9mIHRlc3RzIHRoYXQg
Y291bGQgYmUgbWl4ZWQgdG8gY3JlYXRlIGEgJ2xvYWQgbWl4JyB0aGF0IHdvdWxkIHNpbXVsYXRl
IGEgc3BlY2lmaWMgY29tcHV0ZXIgZnVuY3Rpb24gb24gYW55IFVOSVgtdHlwZSBPUy48L2xpPiIs
Ci0gICAgICAgICAgICAgICAgIjxsaT5Cb25uaWUrKzogZmlsZXN5c3RlbSBhbmQgaGFyZCBkcml2
ZSBiZW5jaG1hcms8L2xpPiIsCi0gICAgICAgICAgICAgICAgIjxsaT5CUkwtQ0FEOiBjcm9zcy1w
bGF0Zm9ybSBhcmNoaXRlY3R1cmUtYWdub3N0aWMgYmVuY2htYXJrIHN1aXRlIGJhc2VkIG9uIG11
bHRpdGhyZWFkZWQgcmF5IHRyYWNpbmcgcGVyZm9ybWFuY2U7IGJhc2VsaW5lZCBhZ2FpbnN0IGEg
VkFYLTExLzc4MDsgYW5kIHVzZWQgc2luY2UgMTk4NCBmb3IgZXZhbHVhdGluZyByZWxhdGl2ZSBD
UFUgcGVyZm9ybWFuY2UsIGNvbXBpbGVyIGRpZmZlcmVuY2VzLCBvcHRpbWl6YXRpb24gbGV2ZWxz
LCBjb2hlcmVuY3ksIGFyY2hpdGVjdHVyZSBkaWZmZXJlbmNlcywgYW5kIG9wZXJhdGluZyBzeXN0
ZW0gZGlmZmVyZW5jZXMuPC9saT4iLAotICAgICAgICAgICAgIjwvdWw+IiwKLSAgICAgICAgIjwv
ZGl2PiIKLSAgICBdLAotCi0gICAgcGFyc2VUZXh0SXRlbTogZnVuY3Rpb24odGV4dEl0ZW0pCi0g
ICAgewotICAgICAgICB2YXIgcGFyc2VSZXN1bHQgPSB7fTsKLSAgICAgICAgcGFyc2VSZXN1bHQu
dGFnU3RhcnQgPSB0ZXh0SXRlbS5tYXRjaCgvPCguKj8pPi9nKVswXTsKLSAgICAgICAgdmFyIHNw
YWNlSW5kZXggPSBwYXJzZVJlc3VsdC50YWdTdGFydC5pbmRleE9mKCIgIik7Ci0gICAgICAgIHBh
cnNlUmVzdWx0Lm5vZGVOYW1lID0gcGFyc2VSZXN1bHQudGFnU3RhcnQuc3Vic3RyaW5nKDEsIHNw
YWNlSW5kZXggIT0gLTEgPyBzcGFjZUluZGV4IDogcGFyc2VSZXN1bHQudGFnU3RhcnQubGVuZ3Ro
IC0gMSk7Ci0gICAgICAgIHBhcnNlUmVzdWx0LmFyZ3MgPSBzcGFjZUluZGV4ICE9IC0xID8gVXRp
bGl0aWVzLnBhcnNlQXJndW1lbnRzKHBhcnNlUmVzdWx0LnRhZ1N0YXJ0LnN1YnN0cmluZyhzcGFj
ZUluZGV4ICsgMSwgcGFyc2VSZXN1bHQudGFnU3RhcnQubGVuZ3RoIC0gMSkpIDoge307Ci0gICAg
ICAgIHZhciB0YWdFbmQgPSAiPC8iICsgcGFyc2VSZXN1bHQubm9kZU5hbWUgKyAiPiI7Ci0gICAg
ICAgIHBhcnNlUmVzdWx0LnRhZ0VuZCA9IHRleHRJdGVtLmVuZHNXaXRoKHRhZ0VuZCkgPyB0YWdF
bmQgOiAiIjsKLSAgICAgICAgcmV0dXJuIHBhcnNlUmVzdWx0OwotICAgIH0sCi0KLSAgICBpc09w
ZW5pbmdUZXh0SXRlbTogZnVuY3Rpb24odGV4dEl0ZW0pCi0gICAgewotICAgICAgICByZXR1cm4g
IUxheWVyaW5nVGV4dFN0YWdlLnBhcnNlVGV4dEl0ZW0odGV4dEl0ZW0pLnRhZ0VuZC5sZW5ndGg7
Ci0gICAgfSwKLQotICAgIGlzQ2xvc2luZ1RleHRJdGVtOiBmdW5jdGlvbih0ZXh0SXRlbSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0ZXh0SXRlbS5pbmRleE9mKCIvIikgPT0gKzE7Ci0gICAgfSwK
LQotICAgIGlzQ29sb3JhYmxlVGV4dEl0ZW06IGZ1bmN0aW9uKHRleHRJdGVtRmxhZ3MpCi0gICAg
ewotICAgICAgICByZXR1cm4gISh0ZXh0SXRlbUZsYWdzLmlzT3BlbmluZyB8fCB0ZXh0SXRlbUZs
YWdzLmlzQ2xvc2luZyk7Ci0gICAgfSwKLQotICAgIGlzSW5zZXJ0YWJsZVRleHRJdGVtOiBmdW5j
dGlvbih0ZXh0SXRlbUZsYWdzKQotICAgIHsKLSAgICAgICAgcmV0dXJuICF0ZXh0SXRlbUZsYWdz
LmlzQ2xvc2luZzsKLSAgICB9LAotCi0gICAgY29sb3JJbmRleFRvVGV4dEVsZW1lbnRJbmRleDog
ZnVuY3Rpb24oY29sb3JJbmRleCkKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0RWxlbWVudEluZGV4
ID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmb3IgKHZhciB0ZXh0SXRl
bUluZGV4ID0gMDsgdGV4dEl0ZW1JbmRleCA8IExheWVyaW5nVGV4dFN0YWdlLnRleHRJdGVtc0Zs
YWdzLmxlbmd0aDsgKyt0ZXh0SXRlbUluZGV4KSB7Ci0gICAgICAgICAgICBpZiAoTGF5ZXJpbmdU
ZXh0U3RhZ2UuaXNDb2xvcmFibGVUZXh0SXRlbShMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXNG
bGFnc1t0ZXh0SXRlbUluZGV4XSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoKytpbmRleCA+IGNv
bG9ySW5kZXgpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKExheWVyaW5nVGV4dFN0YWdlLmlzSW5zZXJ0YWJsZVRleHRJdGVtKExheWVy
aW5nVGV4dFN0YWdlLnRleHRJdGVtc0ZsYWdzW3RleHRJdGVtSW5kZXhdKSkKLSAgICAgICAgICAg
ICAgICArK3RleHRFbGVtZW50SW5kZXg7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gdGV4
dEVsZW1lbnRJbmRleDsKLSAgICB9Ci19KTsKLQotVXRpbGl0aWVzLmV4dGVuZE9iamVjdChMYXll
cmluZ1RleHRTdGFnZSwgewotICAgIHRleHRJdGVtc0ZsYWdzOiBMYXllcmluZ1RleHRTdGFnZS50
ZXh0SXRlbXMubWFwKGZ1bmN0aW9uKHRleHRJdGVtKQotICAgIHsKLSAgICAgICB2YXIgdGV4dEl0
ZW1GbGFncyA9IHt9OwotICAgICAgIHRleHRJdGVtRmxhZ3MuaXNPcGVuaW5nID0gTGF5ZXJpbmdU
ZXh0U3RhZ2UuaXNPcGVuaW5nVGV4dEl0ZW0odGV4dEl0ZW0pOwotICAgICAgIHRleHRJdGVtRmxh
Z3MuaXNDbG9zaW5nID0gTGF5ZXJpbmdUZXh0U3RhZ2UuaXNDbG9zaW5nVGV4dEl0ZW0odGV4dEl0
ZW0pOwotICAgICAgIHJldHVybiB0ZXh0SXRlbUZsYWdzOwotICAgIH0pCi19KTsKLQotVXRpbGl0
aWVzLmV4dGVuZE9iamVjdChMYXllcmluZ1RleHRTdGFnZSwgewotICAgIGNvbG9yYWJsZVRleHRJ
dGVtczogTGF5ZXJpbmdUZXh0U3RhZ2UudGV4dEl0ZW1zRmxhZ3MuZmlsdGVyKGZ1bmN0aW9uKHRl
eHRJdGVtRmxhZ3MpCi0gICAgewotICAgICAgICByZXR1cm4gTGF5ZXJpbmdUZXh0U3RhZ2UuaXND
b2xvcmFibGVUZXh0SXRlbSh0ZXh0SXRlbUZsYWdzKTsKLSAgICB9KS5sZW5ndGgsCi0KLSAgICBp
bnNlcnRhYmxlVGV4dEl0ZW1zOiBMYXllcmluZ1RleHRTdGFnZS50ZXh0SXRlbXNGbGFncy5maWx0
ZXIoZnVuY3Rpb24odGV4dEl0ZW1GbGFncykKLSAgICB7Ci0gICAgICAgIHJldHVybiBMYXllcmlu
Z1RleHRTdGFnZS5pc0luc2VydGFibGVUZXh0SXRlbSh0ZXh0SXRlbUZsYWdzKTsKLSAgICB9KS5s
ZW5ndGgKLX0pOwotCi1MYXllcmluZ1RleHRCZW5jaG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlU3Vi
Y2xhc3MoQmVuY2htYXJrLAotICAgIGZ1bmN0aW9uKG9wdGlvbnMpCi0gICAgewotICAgICAgICBC
ZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcgTGF5ZXJpbmdUZXh0U3RhZ2UoKSwgb3B0aW9ucyk7Ci0g
ICAgfQotKTsKLQotd2luZG93LmJlbmNobWFya0NsYXNzID0gTGF5ZXJpbmdUZXh0QmVuY2htYXJr
OwotCi19KSgpOwotCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvdGV4dC9yZXNvdXJjZXMvdGV4dC1ib3hlcy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy90ZXh0LWJveGVzLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2YTM1MjNlMDE3YzhlNTBjNmFlOGM4MGQyNDQ3ODkyMzM0M2I2NTc2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy90ZXh0LWJveGVzLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotCi1Cb3VuY2luZ1RleHRC
b3ggPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQm91bmNpbmdQYXJ0aWNsZSwKLSAgICBmdW5j
dGlvbihzdGFnZSwgc2FtcGxlVGV4dCkKLSAgICB7Ci0gICAgICAgIEJvdW5jaW5nUGFydGljbGUu
Y2FsbCh0aGlzLCBzdGFnZSk7Ci0KLSAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdw
YXJ0aWNsZScpOwotICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLnNpemUu
eCArICJweCI7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLnNpemUu
eSArICJweCI7Ci0gICAgICAgIHRoaXMuZWxlbWVudC50ZXh0Q29udGVudCA9IHNhbXBsZVRleHQ7
Ci0KLSAgICAgICAgc3RhZ2UuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpOwotICAg
ICAgICB0aGlzLl9tb3ZlKCk7Ci0gICAgfSwgewotCi0gICAgX21vdmU6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gdGhpcy5wb3NpdGlvbi54ICsg
InB4IjsKLSAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnRvcCA9IHRoaXMucG9zaXRpb24ueSAr
ICJweCI7Ci0gICAgfSwKLQotICAgIGFuaW1hdGU6IGZ1bmN0aW9uKHRpbWVEZWx0YSkKLSAgICB7
Ci0gICAgICAgIEJvdW5jaW5nUGFydGljbGUucHJvdG90eXBlLmFuaW1hdGUuY2FsbCh0aGlzLCB0
aW1lRGVsdGEpOwotICAgICAgICB0aGlzLl9tb3ZlKCk7Ci0gICAgfQotfSk7Ci0KLUJvdW5jaW5n
VGV4dEJveFN0YWdlID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJvdW5jaW5nUGFydGljbGVz
U3RhZ2UsCi0gICAgZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgQm91bmNpbmdQYXJ0aWNsZXNT
dGFnZS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLl9zYW1wbGVUZXh0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3NhbXBsZS10ZXh0JykudGV4dENvbnRlbnQ7Ci0gICAgfSwgewotCi0gICAg
Y3JlYXRlUGFydGljbGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgQm91
bmNpbmdUZXh0Qm94KHRoaXMsIHRoaXMuX3NhbXBsZVRleHQpOwotICAgIH0sCi0KLSAgICBwYXJ0
aWNsZVdpbGxCZVJlbW92ZWQ6IGZ1bmN0aW9uKHBhcnRpY2xlKQotICAgIHsKLSAgICAgICAgcGFy
dGljbGUuZWxlbWVudC5yZW1vdmUoKTsKLSAgICB9Ci19KTsKLQotQm91bmNpbmdUZXh0Qm94QmVu
Y2htYXJrID0gVXRpbGl0aWVzLmNyZWF0ZVN1YmNsYXNzKEJlbmNobWFyaywKLSAgICBmdW5jdGlv
bihvcHRpb25zKQotICAgIHsKLSAgICAgICAgQmVuY2htYXJrLmNhbGwodGhpcywgbmV3IEJvdW5j
aW5nVGV4dEJveFN0YWdlKCksIG9wdGlvbnMpOwotICAgIH0KLSk7Ci0KLXdpbmRvdy5iZW5jaG1h
cmtDbGFzcyA9IEJvdW5jaW5nVGV4dEJveEJlbmNobWFyazsKLQotfSkoKTsKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3RleHQtYm94ZXMuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3RleHQtYm94ZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM0ODljMzA4MGU2NjcyM2UxZmQwNDY3MWRh
NzE4ZThkODAyZDgyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC90ZXh0LWJveGVzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci0gICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgotICAgIDxzdHlsZT4KLSAgICAg
ICAgLnRleHQtbGF5ZXIgewotICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwotICAgICAg
ICAgICAgbGVmdDogMHB4OwotICAgICAgICAgICAgdG9wOiAwcHg7Ci0gICAgICAgICAgICBwYWRk
aW5nOiAwLjcyZW07Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsK
LSAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7Ci0gICAgICAgICAgICBmb250LXNpemU6IDAu
NzJlbTsKLSAgICAgICAgfQotICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLWRldmljZS13
aWR0aDogMTgwMHB4KSB7Ci0gICAgICAgICAgICAudGV4dC1sYXllciB7Ci0gICAgICAgICAgICAg
ICAgbGluZS1oZWlnaHQ6IDEuMjsKLSAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOTZlbTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC5wYXJ0aWNsZSB7Ci0gICAgICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICB3aWR0aDogMjgwcHg7Ci0gICAg
ICAgICAgICBmb250LXNpemU6IDEycHg7Ci0gICAgICAgICAgICBmb250LWZhbWlseTogc2Fucy1z
ZXJpZjsKLSAgICAgICAgICAgIHBhZGRpbmc6IDNweDsKLSAgICAgICAgfQotCi0gICAgICAgICNz
YW1wbGUtdGV4dCB7Ci0gICAgICAgICAgICBkaXNwbGF5OiBub25lOwotICAgICAgICB9Ci0gICAg
PC9zdHlsZT4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSIuLi9yZXNvdXJjZXMvc3RhZ2UuY3NzIj4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxkaXYgaWQ9
InNhbXBsZS10ZXh0IiBjbGFzcz0icGFydGljbGUiPkkgY2FuIGVhdCBnbGFzcyBhbmQgaXQgZG9l
c24ndCBodXJ0IG1lLgotICAgICAgICBWaXRydW0gZWRlcmUgcG9zc3VtOyBtaWhpIG5vbiBub2Nl
dC4KLSAgICAgICAgSmUgcGV1eCBtYW5nZXIgZHUgdmVycmUsIMOnYSBuZSBtZSBmYWl0IHBhcyBt
YWwuCi0gICAgICAgIOCkleCkvuCkmuCkgiDgpLbgpJXgpY3gpKjgpYvgpK7gpY3gpK/gpKTgpY3g
pKTgpYHgpK7gpY0g4KWkIOCkqOCli+CkquCkueCkv+CkqOCkuOCljeCkpOCkvyDgpK7gpL7gpK4K
LSAgICAgICAg15DXoNeZINeZ15vXldecINec15DXm9eV15wg15bXm9eV15vXmdeqINeV15bXlCDX
nNeQINee15bXmdenINec15kuCi0gICAgICAgIOG9lc6xzrvOv869IM+VzrHOs8614b+Wzr0gzrTP
jc69zrHOvM6xzrnCtyDPhM6/4b+mz4TOvyDOv+G9lCDOvM61IM6yzrvOrM+Az4TOtc65LgotICAg
ICAgICDYo9mG2Kcg2YLYp9iv2LEg2LnZhNmJINij2YPZhCDYp9mE2LLYrNin2Kwg2Ygg2YfYsNin
INmE2Kcg2YrYpNmE2YXZhtmKLgotICAgICAgICDguInguLHguJnguIHguLTguJnguIHguKPguLDg
uIjguIHguYTguJTguYkg4LmB4LiV4LmI4Lih4Lix4LiZ4LmE4Lih4LmI4LiX4Liz4LmD4Lir4LmJ
4LiJ4Lix4LiZ4LmA4LiI4LmH4LiaCi0gICAgICAgIOCkruCliOCkgiDgpJXgpL7gpIHgpJog4KSW
4KS+IOCkuOCkleCkpOCkviDgpLngpYLgpIEg4KSU4KSwIOCkruClgeCkneClhyDgpIngpLjgpLjg
pYcg4KSV4KWL4KSIIOCkmuCli+CknyDgpKjgpLngpYDgpIIg4KSq4KS54KWB4KSC4KSa4KSk4KWA
LgotICAgICAgICDmiJHog73lkJ7kuIvnjrvnkoPogIzkuI3kvKTouqvkvZPjgIIKLSAgICAgICAg
56eB44Gv44Ks44Op44K544KS6aOf44G544KJ44KM44G+44GZ44CC44Gd44KM44Gv56eB44KS5YK3
44Gk44GR44G+44Gb44KT44CCCi0gICAgICAgIOuCmOuKlCDsnKDrpqzrpbwg66i57J2EIOyImCDs
nojslrTsmpQuIOq3uOuemOuPhCDslYTtlITsp4Ag7JWK7JWE7JqUCi0gICAgICAgINCvINC80L7Q
ttGDINGX0YHRgtC4INGB0LrQu9C+LCDRliDQstC+0L3QviDQvNC10L3RliDQvdC1INC30LDRiNC6
0L7QtNC40YLRjC4KLSAgICAgICAg4LKo4LKo4LKX4LOGIOCyueCyvuCyqOCyvyDgsobgspfgsqbg
s4YsIOCyqOCyvuCyqOCzgSDgspfgspzgsqjgs43gsqjgs4Eg4LKk4LK/4LKo4LKs4LK54LOB4LKm
4LOBCi0gICAgPC9kaXY+Ci0gICAgPGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0YXRpc3RpY3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vYm91
bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9ib3VuY2luZy1wYXJ0aWNsZXMuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgY2hhcnNldD0idXRmLTgiIHNyYz0icmVzb3VyY2VzL3RleHQtYm94ZXMu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCBlNGZiOTdk
NmZkMjQ5MDM2M2Y5MWU0OTZmYzkyMGU4ZGE3ZTI3MmQzLi44MjE0NDJjNjRlMTE3NzAzNzRmMjMw
YmQ2MjZmNjk4YzQwNjAwZGExIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxv
ZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE2
LTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgdGV4dCB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1
MjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBB
bmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgorICAgICAgICAoVW5pdEJlemllci5V
dGlsaXRpZXMuY3JlYXRlQ2xhc3MpOiBBZGQgYSBjbGFzcyB0aGF0IGNvbXB1dGVzIEJlemllciBw
b2ludHMKKyAgICAgICAgYXNzdW1pbmcgdGhhdCB0d28gb2YgdGhlIGNvbnRyb2wgcG9pbnRzIGFy
ZSBhdCAoMCwwKSBhbmQgKDEsMSkuIFRha2VuIGZyb20KKyAgICAgICAgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Vbml0QmV6aWVyLmgKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanM6IEFkZCBhIHRlc3QgZm9yIEVuZ2xpc2ggdGV4dCBhbmQgb25lCisgICAg
ICAgIGZvciBpbnRlcm5hdGlvbmFsIHRleHQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvaW50ZXJuYXRpb25hbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL21hc3Rlci9yZXNvdXJjZXMvdGV4dC5qczogQWRkZWQuIFRoZSB0ZXN0IGFzc3VtZXMgdGhl
cmUgaXMKKyAgICAgICAgI3RlbXBsYXRlIGRpdiB3aGljaCBpdCB3aWxsIGNvcHkuIFRoZSBjb3Bp
ZXMgYXJlIHBsYWNlZCBiZWhpbmQgdGhlIHRlbXBsYXRlLCBhbmQKKyAgICAgICAgYXJlIHNldCB3
aXRoIGRpZmZlcmVudCBjb2xvcnMgZWFjaCBmcmFtZS4gVGhleSBhcmUgbW92ZWQgYXJvdW5kIHdp
dGggQ1NTIHRyYW5zZm9ybS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci90ZXh0
Lmh0bWw6IEFkZGVkLgorCisgICAgICAgIFJlbW92ZSB0aGUgb3RoZXIgdGV4dCB0ZXN0cywgc2lu
Y2UgdGhlc2Ugb25lcyBjb3ZlciB0aGUgc2FtZSB0ZWNobmlxdWVzLgorICAgICAgICAqIEFuaW1v
bWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
QW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNlcy9sYXllcmluZy10ZXh0LmpzOiBSZW1vdmVk
LgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGV4dC9yZXNvdXJjZXMvdGV4dC1ib3hlcy5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3RleHQvdGV4dC1ib3hlcy5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci90ZXN0cy5qczoKKworMjAxNi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisK
ICAgICAgICAgQWRkIGEgbmV3IGltYWdlIHRlc3QKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTIzMgogCg==
</data>
<flag name="review"
          id="298080"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>