<?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>206144</bug_id>
          
          <creation_ts>2020-01-12 04:19:11 -0800</creation_ts>
          <short_desc>[JSC] Use internal object field mechanism to implement JSStringIterator</short_desc>
          <delta_ts>2020-01-12 19:13:13 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605640</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-12 04:19:11 -0800</bug_when>
    <thetext>[JSC] Use internal object field mechanism to implement JSStringIterator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605641</commentid>
    <comment_count>1</comment_count>
      <attachid>387466</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-12 04:30:53 -0800</bug_when>
    <thetext>Created attachment 387466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605642</commentid>
    <comment_count>2</comment_count>
      <attachid>387467</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-12 04:33:23 -0800</bug_when>
    <thetext>Created attachment 387467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605683</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-01-12 11:53:50 -0800</bug_when>
    <thetext>Seems like there&apos;s some weird test failures. It&apos;s not obvious to me why your patch would break those tests. Maybe, you just incidentally surfaced the issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605704</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-12 14:48:56 -0800</bug_when>
    <thetext>(In reply to Keith Miller from comment #3)
&gt; Seems like there&apos;s some weird test failures. It&apos;s not obvious to me why your
&gt; patch would break those tests. Maybe, you just incidentally surfaced the
&gt; issue?

Found that some array-iterator related symbols are used for a private variable name. Fixed the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605705</commentid>
    <comment_count>5</comment_count>
      <attachid>387491</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-12 14:56:26 -0800</bug_when>
    <thetext>Created attachment 387491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605734</commentid>
    <comment_count>6</comment_count>
      <attachid>387491</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-12 18:01:35 -0800</bug_when>
    <thetext>Comment on attachment 387491
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=387491&amp;action=review

r=me, looks straightforward.

&gt; Source/JavaScriptCore/builtins/BuiltinNames.h:-53
&gt; -    macro(arrayIteratorNextIndex) \
&gt; -    macro(arrayIterationKind) \
&gt; -    macro(arrayIteratorNext) \
&gt; -    macro(arrayIteratorIsDone) \
&gt; -    macro(arrayIteratorKind) \

These are leftover from r254252, I take it?

&gt; JSTests/stress/tailCallForwardArguments.js:6
&gt; -var putFuncToPrivateName = createBuiltin(`(function (func) { @arrayIteratorIsDone = func })`)
&gt; +var putFuncToPrivateName = createBuiltin(`(function (func) { @generatorThis = func })`)

Ahh, so this test had just arbitrarily chosen to write to a private name you&apos;re removing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605740</commentid>
    <comment_count>7</comment_count>
      <attachid>387491</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-12 19:11:47 -0800</bug_when>
    <thetext>Comment on attachment 387491
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=387491&amp;action=review

&gt;&gt; Source/JavaScriptCore/builtins/BuiltinNames.h:-53
&gt;&gt; -    macro(arrayIteratorKind) \
&gt; 
&gt; These are leftover from r254252, I take it?

Right.

&gt;&gt; JSTests/stress/tailCallForwardArguments.js:6
&gt;&gt; +var putFuncToPrivateName = createBuiltin(`(function (func) { @generatorThis = func })`)
&gt; 
&gt; Ahh, so this test had just arbitrarily chosen to write to a private name you&apos;re removing?

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605741</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-12 19:12:16 -0800</bug_when>
    <thetext>Committed r254420: &lt;https://trac.webkit.org/changeset/254420&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605742</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-12 19:13:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/58517715&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387466</attachid>
            <date>2020-01-12 04:30:53 -0800</date>
            <delta_ts>2020-01-12 04:33:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206144-20200112043052.patch</filename>
            <type>text/plain</type>
            <size>27994</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjNhMGJlZDFiODg5Mjg3N2M3NjVjMWU2YzRiNGZmMGNiMDNmMGUxLi5kMTE3OGVhN2M5NjMzN2M1
ZDhhYjhjZWRkOGNhYWJjYmYwYjNkM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAyMC0wMS0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBpbnRlcm5hbCBvYmplY3QgZmllbGQgbWVjaGFuaXNtIHRv
IGltcGxlbWVudCBKU1N0cmluZ0l0ZXJhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgaW50ZXJuYWwgb2JqZWN0IGZpZWxk
IG1lY2hhbmlzbSB0byBpbXBsZW1lbnQgSlNTdHJpbmdJdGVyYXRvciwKKyAgICAgICAgYW5kIHdl
IGFsc28gcHV0IEpTU3RyaW5nSXRlcmF0b3IgaW50byBJc29TdWJzcGFjZS4KKworICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlLmpzOgorICAgICAgICAobmV4dCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljUmVnaXN0cnk6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkpOgorICAgICAgICAqIGJ5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRJc1N0cmluZ0l0ZXJhdG9yKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcDoKKyAgICAgICAgKEpTQzo6c3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkSW5kZXgpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX2dldFN0
cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfcHV0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKToK
KyAgICAgICAgKiBydW50aW1lL0pTQ2FzdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJ
dGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6Y2xvbmUpOgorICAgICAgICAo
SlNDOjpKU1N0cmluZ0l0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6SlNT
dHJpbmdJdGVyYXRvcjo6aXRlcmF0ZWRWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGUuY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlw
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6c3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMC0wMS0xMSAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHN1cHByZXNzIHdhcm5pbmdz
IGluIEdDQywgcGFydCAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmgKaW5kZXggYjBiNzg2ODE4YjVjODRiODc0NTNiYzZjNTJhNWJkMzJkNDFlMjNiMS4u
YzAxOWFjMGE1Y2FhNGYzM2JiNjJlYmI5MDJmYjlhZTIxYjY2NjQyMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtNDYsMTEgKzQ2LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfQ09OU1RB
TlRTX0VBQ0hfTkFNRShtYWNybykgXAogICAgIG1hY3JvKGFkZCkgXAogICAgIG1hY3JvKGFwcGx5
RnVuY3Rpb24pIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dEluZGV4KSBcCi0gICAgbWFj
cm8oYXJyYXlJdGVyYXRpb25LaW5kKSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRvck5leHQpIFwK
LSAgICBtYWNybyhhcnJheUl0ZXJhdG9ySXNEb25lKSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRv
cktpbmQpIFwKICAgICBtYWNybyhhcnJheVNwZWNpZXNDcmVhdGUpIFwKICAgICBtYWNybyhhc3Nl
cnQpIFwKICAgICBtYWNybyhjYWxsRnVuY3Rpb24pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5qcwppbmRleCBk
MTIyZGU4YjI3MGNjZjlhOTQ1MTUwYzQxYTJkMjAwZWI4YWE5N2U4Li42ZGJkYjc2ZGI4YThlOTY5
ZjgyYWRlYTRlNDkxMzZhY2EwMDk2NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmpzCkBAIC0yNywyMSAr
MjcsMTggQEAgZnVuY3Rpb24gbmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgaWYg
KEBpc1VuZGVmaW5lZE9yTnVsbCh0aGlzKSkKLSAgICAgICAgQHRocm93VHlwZUVycm9yKCIlU3Ry
aW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51
bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2YXIgcG9zaXRpb24gPSBAZ2V0QnlJZERpcmVjdFBy
aXZhdGUodGhpcywgInN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4Iik7Ci0gICAgaWYgKHBvc2l0aW9u
ID09PSBAdW5kZWZpbmVkKQorICAgIGlmICghQGlzU3RyaW5nSXRlcmF0b3IodGhpcykpCiAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigiJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0IHJlcXVp
cmVzIHRoYXQgfHRoaXN8IGJlIGEgU3RyaW5nIEl0ZXJhdG9yIGluc3RhbmNlIik7CiAKICAgICB2
YXIgZG9uZSA9IHRydWU7CiAgICAgdmFyIHZhbHVlID0gQHVuZGVmaW5lZDsKIAotICAgIHZhciBz
dHJpbmcgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUodGhpcywgIml0ZXJhdGVkU3RyaW5nIik7Ci0g
ICAgaWYgKHN0cmluZyAhPT0gQHVuZGVmaW5lZCkgeworICAgIHZhciBwb3NpdGlvbiA9IEBnZXRT
dHJpbmdJdGVyYXRvckludGVybmFsRmllbGQodGhpcywgQHN0cmluZ0l0ZXJhdG9yRmllbGRJbmRl
eCk7CisgICAgaWYgKHBvc2l0aW9uICE9PSAtMSkgeworICAgICAgICB2YXIgc3RyaW5nID0gQGdl
dFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCh0aGlzLCBAc3RyaW5nSXRlcmF0b3JGaWVsZEl0
ZXJhdGVkU3RyaW5nKTsKICAgICAgICAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGggPj4+IDA7
CiAgICAgICAgIGlmIChwb3NpdGlvbiA+PSBsZW5ndGgpCi0gICAgICAgICAgICBAcHV0QnlJZERp
cmVjdFByaXZhdGUodGhpcywgIml0ZXJhdGVkU3RyaW5nIiwgQHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICBAcHV0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKHRoaXMsIEBzdHJpbmdJdGVyYXRv
ckZpZWxkSW5kZXgsIC0xKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBkb25lID0gZmFs
c2U7CiAKQEAgLTU1LDggKzUyLDcgQEAgZnVuY3Rpb24gbmV4dCgpCiAgICAgICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0cmluZ1twb3NpdGlvbl0gKyBzdHJp
bmdbcG9zaXRpb24gKyAxXTsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQHB1dEJ5SWRE
aXJlY3RQcml2YXRlKHRoaXMsICJzdHJpbmdJdGVyYXRvck5leHRJbmRleCIsIHBvc2l0aW9uICsg
dmFsdWUubGVuZ3RoKTsKKyAgICAgICAgICAgIEBwdXRTdHJpbmdJdGVyYXRvckludGVybmFsRmll
bGQodGhpcywgQHN0cmluZ0l0ZXJhdG9yRmllbGRJbmRleCwgcG9zaXRpb24gKyB2YWx1ZS5sZW5n
dGgpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKaW5kZXggMDBm
MTM3OTQyMTZlNzA5OTE3NzU4NmNmMDA3NDk2MjE1N2Y4N2E3YS4uMzMzNjhlYWNhYjgzYzdmYzc0
YzZmZTJiYjQ3MDAxMzJiYmZmZTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcApAQCAtMzgs
NiArMzgsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNNb2R1
bGVMb2FkZXIuaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKKyNpbmNsdWRlICJKU1N0cmluZ0l0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgi
CiAKQEAgLTkyLDYgKzkzLDggQEAgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6Qnl0ZWNvZGVJ
bnRyaW5zaWNSZWdpc3RyeShWTSYgdm0pCiAgICAgbV9hcnJheUl0ZXJhdG9yRmllbGRJbmRleC5z
ZXQobV92bSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNBcnJheUl0ZXJhdG9yOjpG
aWVsZDo6SW5kZXgpKSk7CiAgICAgbV9hcnJheUl0ZXJhdG9yRmllbGRJc0RvbmUuc2V0KG1fdm0s
IGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KEpTQXJyYXlJdGVyYXRvcjo6RmllbGQ6Oklz
RG9uZSkpKTsKICAgICBtX2FycmF5SXRlcmF0b3JGaWVsZEtpbmQuc2V0KG1fdm0sIGpzTnVtYmVy
KHN0YXRpY19jYXN0PGludDMyX3Q+KEpTQXJyYXlJdGVyYXRvcjo6RmllbGQ6OktpbmQpKSk7Cisg
ICAgbV9zdHJpbmdJdGVyYXRvckZpZWxkSW5kZXguc2V0KG1fdm0sIGpzTnVtYmVyKHN0YXRpY19j
YXN0PGludDMyX3Q+KEpTU3RyaW5nSXRlcmF0b3I6OkZpZWxkOjpJbmRleCkpKTsKKyAgICBtX3N0
cmluZ0l0ZXJhdG9yRmllbGRJdGVyYXRlZFN0cmluZy5zZXQobV92bSwganNOdW1iZXIoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oSlNTdHJpbmdJdGVyYXRvcjo6RmllbGQ6Okl0ZXJhdGVkU3RyaW5nKSkp
OwogICAgIG1fYXN5bmNHZW5lcmF0b3JGaWVsZFN1c3BlbmRSZWFzb24uc2V0KG1fdm0sIGpzTnVt
YmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0FzeW5jR2VuZXJhdG9yOjpGaWVsZDo6U3VzcGVu
ZFJlYXNvbikpKTsKICAgICBtX2FzeW5jR2VuZXJhdG9yRmllbGRRdWV1ZUZpcnN0LnNldChtX3Zt
LCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNBc3luY0dlbmVyYXRvcjo6RmllbGQ6
OlF1ZXVlRmlyc3QpKSk7CiAgICAgbV9hc3luY0dlbmVyYXRvckZpZWxkUXVldWVMYXN0LnNldCht
X3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNBc3luY0dlbmVyYXRvcjo6Rmll
bGQ6OlF1ZXVlTGFzdCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCmluZGV4IGI1YzVmNTFhZDBjYWE0
YjM0ZDM4NTE1MzhmYTZlNzcyYzUzYzkzZGYuLmQyOGEzZTNhNzhkMTBkYThkODg5YjcwM2U5Y2M2
ZDdmMmViMGVhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaApAQCAtNDYsNiArNDYsNyBAQCBlbnVt
IGNsYXNzIExpbmtUaW1lQ29uc3RhbnQgOiBpbnQzMl90OwogICAgIG1hY3JvKGdldEdlbmVyYXRv
ckludGVybmFsRmllbGQpIFwKICAgICBtYWNybyhnZXRBc3luY0dlbmVyYXRvckludGVybmFsRmll
bGQpIFwKICAgICBtYWNybyhnZXRBcnJheUl0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAorICAgIG1h
Y3JvKGdldFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKGlkV2l0aFBy
b2ZpbGUpIFwKICAgICBtYWNybyhpc09iamVjdCkgXAogICAgIG1hY3JvKGlzSlNBcnJheSkgXApA
QCAtNTcsNiArNTgsNyBAQCBlbnVtIGNsYXNzIExpbmtUaW1lQ29uc3RhbnQgOiBpbnQzMl90Owog
ICAgIG1hY3JvKGlzUmVnRXhwT2JqZWN0KSBcCiAgICAgbWFjcm8oaXNNYXApIFwKICAgICBtYWNy
byhpc1NldCkgXAorICAgIG1hY3JvKGlzU3RyaW5nSXRlcmF0b3IpIFwKICAgICBtYWNybyhpc0Fy
cmF5SXRlcmF0b3IpIFwKICAgICBtYWNybyhpc1VuZGVmaW5lZE9yTnVsbCkgXAogICAgIG1hY3Jv
KHRhaWxDYWxsRm9yd2FyZEFyZ3VtZW50cykgXApAQCAtNzEsNiArNzMsNyBAQCBlbnVtIGNsYXNz
IExpbmtUaW1lQ29uc3RhbnQgOiBpbnQzMl90OwogICAgIG1hY3JvKHB1dEdlbmVyYXRvckludGVy
bmFsRmllbGQpIFwKICAgICBtYWNybyhwdXRBc3luY0dlbmVyYXRvckludGVybmFsRmllbGQpIFwK
ICAgICBtYWNybyhwdXRBcnJheUl0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAorICAgIG1hY3JvKHB1
dFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKHRvTnVtYmVyKSBcCiAg
ICAgbWFjcm8odG9TdHJpbmcpIFwKICAgICBtYWNybyh0b09iamVjdCkgXApAQCAtMTIyLDYgKzEy
NSw4IEBAIGVudW0gY2xhc3MgTGlua1RpbWVDb25zdGFudCA6IGludDMyX3Q7CiAgICAgbWFjcm8o
YXJyYXlJdGVyYXRvckZpZWxkSXNEb25lKSBcCiAgICAgbWFjcm8oYXJyYXlJdGVyYXRvckZpZWxk
SXRlcmF0ZWRPYmplY3QpIFwKICAgICBtYWNybyhhcnJheUl0ZXJhdG9yRmllbGRLaW5kKSBcCisg
ICAgbWFjcm8oc3RyaW5nSXRlcmF0b3JGaWVsZEluZGV4KSBcCisgICAgbWFjcm8oc3RyaW5nSXRl
cmF0b3JGaWVsZEl0ZXJhdGVkU3RyaW5nKSBcCiAgICAgbWFjcm8oYXN5bmNHZW5lcmF0b3JGaWVs
ZFN1c3BlbmRSZWFzb24pIFwKICAgICBtYWNybyhhc3luY0dlbmVyYXRvckZpZWxkUXVldWVGaXJz
dCkgXAogICAgIG1hY3JvKGFzeW5jR2VuZXJhdG9yRmllbGRRdWV1ZUxhc3QpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAppbmRleCA2MmQ1Y2JiMDA1YzEzZTczN2E0NzI4YWU1NzQ2NGQ4MTUyMzg0NDZmLi5hNWYzNjZi
ZGFmYzgxZmRkM2JhMzJlYzgwYmFjZDA1MGVkZDFmY2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC04Nzgs
NiArODc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc1Jl
Z0V4cE9iamVjdChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1p
dElzQ2VsbFdpdGhUeXBlKGRzdCwgc3JjLCBSZWdFeHBPYmplY3RUeXBlKTsgfQogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0SXNNYXAoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsg
cmV0dXJuIGVtaXRJc0NlbGxXaXRoVHlwZShkc3QsIHNyYywgSlNNYXBUeXBlKTsgfQogICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0SXNTZXQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMp
IHsgcmV0dXJuIGVtaXRJc0NlbGxXaXRoVHlwZShkc3QsIHNyYywgSlNTZXRUeXBlKTsgfQorICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0SXNTdHJpbmdJdGVyYXRvcihSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdElzQ2VsbFdpdGhUeXBlKGRzdCwgc3JjLCBKU1N0
cmluZ0l0ZXJhdG9yVHlwZSk7IH0KICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzQXJyYXlJdGVy
YXRvcihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdElzQ2Vs
bFdpdGhUeXBlKGRzdCwgc3JjLCBKU0FycmF5SXRlcmF0b3JUeXBlKTsgfQogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0SXNPYmplY3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXNOdW1iZXIoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiBzcmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCmluZGV4IDhjODJmNTczY2RhNmUzY2MyZmE2Yjg4YWRmNDE1M2M4Yzhh
Nzk4N2EuLmVhOTgyNmZmMmE4ZjY1N2UwNmI3NTBmNzBkZjgxYjdlZTc1MjkyMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJKU0dlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNJbW11dGFibGVCdXR0ZXJmbHkuaCIKKyNpbmNs
dWRlICJKU1N0cmluZ0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGFiZWxTY29wZS5oIgogI2luY2x1
ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCkBAIC0xMDc5LDYgKzEwODAsMTcgQEAg
c3RhdGljIEpTQXJyYXlJdGVyYXRvcjo6RmllbGQgYXJyYXlJdGVyYXRvckludGVybmFsRmllbGRJ
bmRleChCeXRlY29kZUludHJpbnNpY04KICAgICByZXR1cm4gSlNBcnJheUl0ZXJhdG9yOjpGaWVs
ZDo6SW5kZXg7CiB9CiAKK3N0YXRpYyBKU1N0cmluZ0l0ZXJhdG9yOjpGaWVsZCBzdHJpbmdJdGVy
YXRvckludGVybmFsRmllbGRJbmRleChCeXRlY29kZUludHJpbnNpY05vZGUqIG5vZGUpCit7Cisg
ICAgQVNTRVJUKG5vZGUtPmVudHJ5KCkudHlwZSgpID09IEJ5dGVjb2RlSW50cmluc2ljUmVnaXN0
cnk6OlR5cGU6OkVtaXR0ZXIpOworICAgIGlmIChub2RlLT5lbnRyeSgpLmVtaXR0ZXIoKSA9PSAm
Qnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19zdHJpbmdJdGVyYXRvckZpZWxk
SW5kZXgpCisgICAgICAgIHJldHVybiBKU1N0cmluZ0l0ZXJhdG9yOjpGaWVsZDo6SW5kZXg7Cisg
ICAgaWYgKG5vZGUtPmVudHJ5KCkuZW1pdHRlcigpID09ICZCeXRlY29kZUludHJpbnNpY05vZGU6
OmVtaXRfaW50cmluc2ljX3N0cmluZ0l0ZXJhdG9yRmllbGRJdGVyYXRlZFN0cmluZykKKyAgICAg
ICAgcmV0dXJuIEpTU3RyaW5nSXRlcmF0b3I6OkZpZWxkOjpJdGVyYXRlZFN0cmluZzsKKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBKU1N0cmluZ0l0ZXJhdG9y
OjpGaWVsZDo6SW5kZXg7Cit9CisKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6
ZW1pdF9pbnRyaW5zaWNfZ2V0UHJvbWlzZUludGVybmFsRmllbGQoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5v
ZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CkBAIC0xMTMxLDYgKzExNDMsMTkgQEAgUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19nZXRBcnJheUl0ZXJhdG9y
SW50ZXJuYWxGaWVsZCgKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRJbnRlcm5hbEZpZWxk
KGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIGluZGV4KTsKIH0K
IAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19nZXRT
dHJpbmdJdGVyYXRvckludGVybmFsRmllbGQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3Mt
Pm1fbGlzdE5vZGU7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1p
dE5vZGUobm9kZSk7CisgICAgbm9kZSA9IG5vZGUtPm1fbmV4dDsKKyAgICBSRUxFQVNFX0FTU0VS
VChub2RlLT5tX2V4cHItPmlzQnl0ZWNvZGVJbnRyaW5zaWNOb2RlKCkpOworICAgIHVuc2lnbmVk
IGluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVs
ZEluZGV4KHN0YXRpY19jYXN0PEJ5dGVjb2RlSW50cmluc2ljTm9kZSo+KG5vZGUtPm1fZXhwcikp
KTsKKyAgICBBU1NFUlQoaW5kZXggPCBKU1N0cmluZ0l0ZXJhdG9yOjpudW1iZXJPZkludGVybmFs
RmllbGRzKTsKKyAgICBBU1NFUlQoIW5vZGUtPm1fbmV4dCk7CisKKyAgICByZXR1cm4gZ2VuZXJh
dG9yLmVtaXRHZXRJbnRlcm5hbEZpZWxkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCks
IGJhc2UuZ2V0KCksIGluZGV4KTsKK30KKwogUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNO
b2RlOjplbWl0X2ludHJpbnNpY19hcmd1bWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgQXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9IG1fYXJn
cy0+bV9saXN0Tm9kZTsKQEAgLTEyNjQsNiArMTI4OSwyMiBAQCBSZWdpc3RlcklEKiBCeXRlY29k
ZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3B1dEFycmF5SXRlcmF0b3JJbnRlcm5hbEZp
ZWxkKAogICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIGdlbmVyYXRvci5lbWl0UHV0SW50
ZXJuYWxGaWVsZChiYXNlLmdldCgpLCBpbmRleCwgdmFsdWUuZ2V0KCkpKTsKIH0KIAorUmVnaXN0
ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19wdXRTdHJpbmdJdGVy
YXRvckludGVybmFsRmllbGQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5v
ZGU7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9k
ZSk7CisgICAgbm9kZSA9IG5vZGUtPm1fbmV4dDsKKyAgICBSRUxFQVNFX0FTU0VSVChub2RlLT5t
X2V4cHItPmlzQnl0ZWNvZGVJbnRyaW5zaWNOb2RlKCkpOworICAgIHVuc2lnbmVkIGluZGV4ID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZEluZGV4KHN0
YXRpY19jYXN0PEJ5dGVjb2RlSW50cmluc2ljTm9kZSo+KG5vZGUtPm1fZXhwcikpKTsKKyAgICBB
U1NFUlQoaW5kZXggPCBKU1N0cmluZ0l0ZXJhdG9yOjpudW1iZXJPZkludGVybmFsRmllbGRzKTsK
KyAgICBub2RlID0gbm9kZS0+bV9uZXh0OworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9
IGdlbmVyYXRvci5lbWl0Tm9kZShub2RlKTsKKworICAgIEFTU0VSVCghbm9kZS0+bV9uZXh0KTsK
KworICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIGdlbmVyYXRvci5lbWl0UHV0SW50ZXJu
YWxGaWVsZChiYXNlLmdldCgpLCBpbmRleCwgdmFsdWUuZ2V0KCkpKTsKK30KKwogUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY190YWlsQ2FsbEZvcndhcmRB
cmd1bWVudHMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQog
ewogICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CkBAIC0x
Mzk3LDYgKzE0MzgsNyBAQCBDUkVBVEVfSU5UUklOU0lDX0ZPUl9CUkFORF9DSEVDSyhpc1Byb21p
c2UsIElzUHJvbWlzZSkKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNLKGlzUmVnRXhw
T2JqZWN0LCBJc1JlZ0V4cE9iamVjdCkKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNL
KGlzTWFwLCBJc01hcCkKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNLKGlzU2V0LCBJ
c1NldCkKK0NSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNLKGlzU3RyaW5nSXRlcmF0b3Is
IElzU3RyaW5nSXRlcmF0b3IpCiBDUkVBVEVfSU5UUklOU0lDX0ZPUl9CUkFORF9DSEVDSyhpc0Fy
cmF5SXRlcmF0b3IsIElzQXJyYXlJdGVyYXRvcikKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5E
X0NIRUNLKGlzVW5kZWZpbmVkT3JOdWxsLCBJc1VuZGVmaW5lZE9yTnVsbCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
LmNwcAppbmRleCAzZjE5NDc0M2I5MDRjYTkzNzlhNGVjNThjYmU1NDlhNzEwOTk1MjdjLi5iNzhh
OTk3NjFkZjk5YjBiYmE2ZDAyNzAzNjU4YTYyM2Q2NzdlMjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApA
QCAtNDMxLDcgKzQzMSw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVy
bmFsUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgICAgIEpTQXJy
YXkqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIsIDEp
OwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgICAg
ICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGluZGV4KyssIGNvbnN0cnVjdEludGVybmFsUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCAi
c3RyaW5nIiwgc3RyaW5nSXRlcmF0b3ItPml0ZXJhdGVkVmFsdWUoZ2xvYmFsT2JqZWN0KSkpOwor
ICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCsrLCBjb25z
dHJ1Y3RJbnRlcm5hbFByb3BlcnR5KGdsb2JhbE9iamVjdCwgInN0cmluZyIsIHN0cmluZ0l0ZXJh
dG9yLT5pdGVyYXRlZFN0cmluZygpKSk7CiAgICAgICAgIHJldHVybiBhcnJheTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKaW5kZXggZjhmM2E0ZjA1MWUwOGI4
N2ViYTZjZDljZmQ4NjNjN2MyNjhlODcyYS4uNjczZTAxYzIyZTVmZTA2ZTJmZGUxZDJiNTI1YTYw
NzkwNzlhY2E3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
YXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKQEAgLTQ4
LDYgKzQ4LDggQEAgaW5saW5lIFRvIGpzQ2FzdChKU1ZhbHVlIGZyb20pCiAvLyBTcGVjaWZpYyB0
eXBlIG92ZXJsb2Fkcy4KICNkZWZpbmUgRk9SX0VBQ0hfSlNfRFlOQU1JQ19DQVNUX0pTX1RZUEVf
T1ZFUkxPQUQobWFjcm8pIFwKICAgICBtYWNybyhKU0ltbXV0YWJsZUJ1dHRlcmZseSwgSlNUeXBl
OjpKU0ltbXV0YWJsZUJ1dHRlcmZseVR5cGUsIEpTVHlwZTo6SlNJbW11dGFibGVCdXR0ZXJmbHlU
eXBlKSBcCisgICAgbWFjcm8oSlNBcnJheUl0ZXJhdG9yLCBKU1R5cGU6OkpTQXJyYXlJdGVyYXRv
clR5cGUsIEpTVHlwZTo6SlNBcnJheUl0ZXJhdG9yVHlwZSkgXAorICAgIG1hY3JvKEpTU3RyaW5n
SXRlcmF0b3IsIEpTVHlwZTo6SlNTdHJpbmdJdGVyYXRvclR5cGUsIEpTVHlwZTo6SlNTdHJpbmdJ
dGVyYXRvclR5cGUpIFwKICAgICBtYWNybyhKU09iamVjdCwgRmlyc3RPYmplY3RUeXBlLCBMYXN0
T2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKEpTRmluYWxPYmplY3QsIEpTVHlwZTo6RmluYWxPYmpl
Y3RUeXBlLCBKU1R5cGU6OkZpbmFsT2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKEpTRnVuY3Rpb24s
IEpTVHlwZTo6SlNGdW5jdGlvblR5cGUsIEpTVHlwZTo6SlNGdW5jdGlvblR5cGUpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKaW5k
ZXggMzUxZDQ3MDc5MWI3ZjliZjNkMTAyYjhiODA2NzQ4ZWY4N2RkMjE2YS4uOGU3MjJlMzVlMDlj
ODVmNWJjNGU5NzI1YTdiZTBhZjUwNzM4NDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKQEAgLTM0LDI4ICszNCwyOCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTU3RyaW5nSXRlcmF0b3I6OnNfaW5m
byA9IHsgIlN0cmluZyBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNTdHJpbmdJdGVyYXRvcikgfTsKIAotdm9pZCBKU1N0cmlu
Z0l0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqIGl0ZXJhdGVkU3RyaW5nKQordm9pZCBKU1N0cmluZ0l0ZXJhdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTU3RyaW5nKiBpdGVyYXRlZFN0cmluZykKIHsKICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJhdGVkU3RyaW5n
UHJpdmF0ZU5hbWUoKSwgaXRlcmF0ZWRTdHJpbmcpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRl
TmFtZSgpLCBqc051bWJlcigwKSk7Ci19Ci0KLUpTVmFsdWUgSlNTdHJpbmdJdGVyYXRvcjo6aXRl
cmF0ZWRWYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAotewotICAgIHJl
dHVybiBnZXREaXJlY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPnZtKCkucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSgpKTsK
KyAgICBpbnRlcm5hbEZpZWxkKEZpZWxkOjpJbmRleCkuc2V0KHZtLCB0aGlzLCBqc051bWJlcigw
KSk7CisgICAgaW50ZXJuYWxGaWVsZChGaWVsZDo6SXRlcmF0ZWRTdHJpbmcpLnNldCh2bSwgdGhp
cywgaXRlcmF0ZWRTdHJpbmcpOwogfQogCiBKU1N0cmluZ0l0ZXJhdG9yKiBKU1N0cmluZ0l0ZXJh
dG9yOjpjbG9uZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBKU1ZhbHVlIGl0ZXJhdGVkU3RyaW5nID0gZ2V0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1By
aXZhdGVOYW1lKCkpOwotICAgIEpTVmFsdWUgbmV4dEluZGV4ID0gZ2V0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZh
dGVOYW1lKCkpOwotCi0gICAgYXV0byBjbG9uZSA9IEpTU3RyaW5nSXRlcmF0b3I6OmNyZWF0ZShn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+c3RyaW5nSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgYXNT
dHJpbmcoaXRlcmF0ZWRTdHJpbmcpKTsKLSAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVO
YW1lKCksIG5leHRJbmRleCk7CisgICAgSlNTdHJpbmcqIGl0ZXJhdGVkU3RyaW5nID0ganNDYXN0
PEpTU3RyaW5nKj4odGhpcy0+aXRlcmF0ZWRTdHJpbmcoKSk7CisgICAgYXV0byogY2xvbmUgPSBK
U1N0cmluZ0l0ZXJhdG9yOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+c3RyaW5nSXRlcmF0b3JT
dHJ1Y3R1cmUoKSwgaXRlcmF0ZWRTdHJpbmcpOworICAgIGNsb25lLT5pbnRlcm5hbEZpZWxkKEZp
ZWxkOjpJbmRleCkuc2V0KHZtLCBjbG9uZSwgdGhpcy0+aW5kZXgoKSk7CiAgICAgcmV0dXJuIGNs
b25lOwogfQogCit2b2lkIEpTU3RyaW5nSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTU3RyaW5nSXRlcmF0b3IqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2Jq
ZWN0LCB2aXNpdG9yKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmgKaW5kZXggYmZkOTcxNmY5YmZk
MTMzODdlYWRlNGQ3MzU2YWU1NDc0ZWVmMDY3OC4uYjQ4YjdhODc4OTNiNmMwOTc1NWQzYTg5MzNj
OGViZmU1ODdlNTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmdJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nSXRlcmF0b3IuaApAQCAtMjksMzUgKzI5LDY1IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1jbGFzcyBKU1N0cmluZ0l0ZXJhdG9yIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
eworY2xhc3MgSlNTdHJpbmdJdGVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0ludGVybmFsRmllbGRP
YmplY3RJbXBsPDI+IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFz
ZTsKKyAgICB1c2luZyBCYXNlID0gSlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbDwyPjsKKworICAg
IGVudW0gY2xhc3MgRmllbGQgOiB1aW50OF90IHsKKyAgICAgICAgSW5kZXggPSAwLAorICAgICAg
ICBJdGVyYXRlZFN0cmluZywKKyAgICB9OwogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAor
ICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxzaXplX3Q+IGlubGluZUNh
cGFjaXR5KQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChpbmxpbmVDYXBhY2l0eSwgaW5s
aW5lQ2FwYWNpdHkgPT0gMFUpOworICAgICAgICByZXR1cm4gc2l6ZW9mKEpTU3RyaW5nSXRlcmF0
b3IpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFj
Y2VzcyBtb2RlPgorICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHZtLnN0cmluZ0l0ZXJhdG9yU3BhY2U8bW9kZT4oKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgc3RkOjphcnJheTxKU1ZhbHVlLCBudW1iZXJPZkludGVybmFsRmll
bGRzPiBpbml0aWFsVmFsdWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsKKyAgICAgICAg
ICAgIGpzTnVtYmVyKDApLAorICAgICAgICAgICAganNOdWxsKCksCisgICAgICAgIH0gfTsKKyAg
ICB9CisKKyAgICBjb25zdCBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIGludGVybmFsRmllbGQoRmll
bGQgZmllbGQpIGNvbnN0IHsgcmV0dXJuIEJhc2U6OmludGVybmFsRmllbGQoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGZpZWxkKSk7IH0KKyAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIGludGVybmFs
RmllbGQoRmllbGQgZmllbGQpIHsgcmV0dXJuIEJhc2U6OmludGVybmFsRmllbGQoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGZpZWxkKSk7IH0KKwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhKU1N0cmluZ0l0ZXJhdG9yVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBKU1N0cmluZ0l0ZXJhdG9yKiBj
cmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTU3RyaW5nKiBpdGVyYXRlZFN0cmluZykKKyAgICBzdGF0aWMgSlNTdHJpbmdJdGVyYXRvciog
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU3RyaW5nKiBpdGVyYXRlZFN0
cmluZykKICAgICB7Ci0gICAgICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CiAgICAg
ICAgIEpTU3RyaW5nSXRlcmF0b3IqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8SlNTdHJpbmdJdGVyYXRvcj4odm0uaGVhcCkpIEpTU3RyaW5nSXRlcmF0b3Iodm0sIHN0cnVj
dHVyZSk7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgc3RydWN0dXJlLT5n
bG9iYWxPYmplY3QoKSwgaXRlcmF0ZWRTdHJpbmcpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24odm0sIGl0ZXJhdGVkU3RyaW5nKTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwog
ICAgIH0KIAotICAgIEpTVmFsdWUgaXRlcmF0ZWRWYWx1ZShKU0dsb2JhbE9iamVjdCopIGNvbnN0
OworICAgIEpTVmFsdWUgaXRlcmF0ZWRTdHJpbmcoKSBjb25zdCB7IHJldHVybiBpbnRlcm5hbEZp
ZWxkKEZpZWxkOjpJdGVyYXRlZFN0cmluZykuZ2V0KCk7IH0KKyAgICBKU1ZhbHVlIGluZGV4KCkg
Y29uc3QgeyByZXR1cm4gaW50ZXJuYWxGaWVsZChGaWVsZDo6SW5kZXgpLmdldCgpOyB9CiAgICAg
SlNTdHJpbmdJdGVyYXRvciogY2xvbmUoSlNHbG9iYWxPYmplY3QqKTsKIAorICAgIHN0YXRpYyB2
b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKKwogcHJpdmF0ZToKICAg
ICBKU1N0cmluZ0l0ZXJhdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogaXRlcmF0ZWRTdHJpbmcpOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU1N0cmluZyogaXRlcmF0ZWRTdHJpbmcpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmNwcAppbmRleCAxMDM4ZGM1MDQ2NGM5YmVlMWNmYzk2MDljMDQ2ZDMzMjM2NzllYjEzLi5i
MDJiMzQ3ZDZhNTAwNDU1M2I1OTJlYzY0YjRjMTQ0ZTMwOGRkMGNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAKQEAgLTEwMCw2ICsxMDAsNyBAQCB2b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDOjpKU1R5cGUgdHlwZSkKICAgICBDQVNFKEpT
R2VuZXJhdG9yVHlwZSkKICAgICBDQVNFKEpTQXN5bmNHZW5lcmF0b3JUeXBlKQogICAgIENBU0Uo
SlNBcnJheUl0ZXJhdG9yVHlwZSkKKyAgICBDQVNFKEpTU3RyaW5nSXRlcmF0b3JUeXBlKQogICAg
IENBU0UoSlNQcm9taXNlVHlwZSkKICAgICBDQVNFKEpTTWFwVHlwZSkKICAgICBDQVNFKEpTU2V0
VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggZDI3OWYwMGZm
Y2NiYTI0MWI5YmQyMmI1ZjNhMzA2ZDcwOTY3ZDk3OS4uYTQzMjEzYmM2MTJjZDVhYmYzZDc4OTY2
YTRmMjg3Y2IzZjkzZWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgK
QEAgLTExMSw2ICsxMTEsNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogICAgIEpTR2VuZXJh
dG9yVHlwZSwKICAgICBKU0FzeW5jR2VuZXJhdG9yVHlwZSwKICAgICBKU0FycmF5SXRlcmF0b3JU
eXBlLAorICAgIEpTU3RyaW5nSXRlcmF0b3JUeXBlLAogICAgIEpTUHJvbWlzZVR5cGUsCiAgICAg
SlNNYXBUeXBlLAogICAgIEpTU2V0VHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDQ3MGFhYzE1ZjNmODdlMjFiOTJjYzFh
ODQzODY0NDk5MDQ4ZWFhOGIuLjUzYjg3NzhiNzY3OTcyMjBlM2U2MmQzZTRlM2YxODRjM2MzZTNl
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcApAQCAtMTg2MCw3ICsxODYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNJdGVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAg
SlNTdHJpbmcqIHN0cmluZyA9IHRoaXNWYWx1ZS50b1N0cmluZyhnbG9iYWxPYmplY3QpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNTdHJpbmdJdGVyYXRvcjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT5zdHJpbmdJdGVyYXRvclN0cnVjdHVyZSgpLCBzdHJpbmcpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU3RyaW5nSXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LT5zdHJpbmdJdGVyYXRvclN0cnVjdHVyZSgpLCBzdHJpbmcpKTsKIH0KIAogZW51bSBj
bGFzcyBOb3JtYWxpemF0aW9uRm9ybSB7IE5GQywgTkZELCBORktDLCBORktEIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYWMyMzRkZDY5ZmE2ZWM1ZjdhMDEzZDUwNmNj
OTBiZWVjODY4NTdiZi4uNDc1MmFhMDg3ZGUyYjA2MGYwYmNhZTAyZjBhNTJjOGJmN2UwZDhhNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTE2LDYgKzExNiw3IEBACiAj
aW5jbHVkZSAiSlNTZXQuaCIKICNpbmNsdWRlICJKU1NldEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SlNTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiSlNTdHJpbmdJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkpTVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiSlNUb1dhc21JQ0NhbGxl
ZS5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheXMuaCIKQEAgLTE0NDEsNiArMTQ0Miw3IEBAIHZv
aWQgVk06OmVuc3VyZVNoYWRvd0NoaWNrZW4oKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUl9TTE9XKGFwaUdsb2JhbE9iamVjdFNwYWNlLCBhcGlHbG9iYWxPYmplY3RIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTQVBJR2xvYmFsT2JqZWN0KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUl9TTE9XKGFwaVZhbHVlV3JhcHBlclNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBKU0FQSVZhbHVlV3JhcHBlcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVJfU0xPVyhhcnJheUJ1ZmZlclNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0FycmF5
QnVmZmVyKQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFycmF5SXRl
cmF0b3JTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBcnJheUl0ZXJhdG9yKQogRFlO
QU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFzeW5jR2VuZXJhdG9yU3BhY2Us
IGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQXN5bmNHZW5lcmF0b3IpCiBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYmlnSW50T2JqZWN0U3BhY2UsIGNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEJpZ0ludE9iamVjdCkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhib29sZWFuT2JqZWN0U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEJv
b2xlYW5PYmplY3QpCkBAIC0xNDU3LDcgKzE0NTksNiBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coZmxvYXQzMkFycmF5U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0
KAogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGZsb2F0NjRBcnJheVNw
YWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0Zsb2F0NjRBcnJheSkKIERZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhmdW5jdGlvblJhcmVEYXRhU3BhY2UsIGRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEZ1bmN0aW9uUmFyZURhdGEpCiBEWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coZ2VuZXJhdG9yU3BhY2UsIGNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTR2VuZXJhdG9yKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUl9TTE9XKGFycmF5SXRlcmF0b3JTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNBcnJheUl0ZXJhdG9yKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KGdsb2JhbE9iamVjdFNwYWNlLCBnbG9iYWxPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTR2xv
YmFsT2JqZWN0KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGpzTW9k
dWxlUmVjb3JkU3BhY2UsIGpzTW9kdWxlUmVjb3JkSGVhcENlbGxUeXBlLmdldCgpLCBKU01vZHVs
ZVJlY29yZCkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhpbnQ4QXJy
YXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNJbnQ4QXJyYXkpCkBAIC0xNDc3LDYg
KzE0NzgsNyBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc2V0QnVj
a2V0U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coc2V0SXRlcmF0b3JTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNTZXRJdGVyYXRvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xP
VyhzZXRTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNTZXQpCiBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc3RyaWN0RXZhbEFjdGl2YXRpb25TcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgU3RyaWN0RXZhbEFjdGl2YXRpb24pCitEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc3RyaW5nSXRlcmF0b3JTcGFjZSwgY2VsbEhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNTdHJpbmdJdGVyYXRvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhzb3VyY2VDb2RlU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTU291cmNlQ29kZSkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhzeW1ib2xTcGFjZSwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgU3ltYm9sKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHN5bWJv
bE9iamVjdFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBTeW1ib2xPYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA4MjQ3NjljOWE3MTQyM2Q0MTc2MDkxZWNmYWUz
YjYwNmMzY2E1Y2Q2Li45YzJhMTZjZjkxZjVjNGFiYmYxZmFhZWNjNzk2MTYwM2JhMGIxNGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTQ5Myw2ICs0OTMsNyBAQCBjbGFzcyBW
TSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRM
aXN0Tm9kZTxWTT4gewogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIoYXBp
R2xvYmFsT2JqZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
UihhcGlWYWx1ZVdyYXBwZXJTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKGFycmF5QnVmZmVyU3BhY2UpCisgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUihhcnJheUl0ZXJhdG9yU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUihhc3luY0dlbmVyYXRvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVIoYmlnSW50T2JqZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUihib29sZWFuT2JqZWN0U3BhY2UpCkBAIC01MDksNyArNTEwLDYgQEAg
Y2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5
TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVN
QkVSKGZsb2F0NjRBcnJheVNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVIoZnVuY3Rpb25SYXJlRGF0YVNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVIoZ2VuZXJhdG9yU3BhY2UpCi0gICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUihhcnJheUl0ZXJhdG9yU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUihnbG9iYWxPYmplY3RTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSKGludDhBcnJheVNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVIoaW50MTZBcnJheVNwYWNlKQpAQCAtNTI5LDYgKzUyOSw3IEBAIGNsYXNz
IFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtl
ZExpc3ROb2RlPFZNPiB7CiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihz
ZXRJdGVyYXRvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIo
c2V0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihzdHJpY3RF
dmFsQWN0aXZhdGlvblNwYWNlKQorICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVIoc3RyaW5nSXRlcmF0b3JTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKHNvdXJjZUNvZGVTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKHN5bWJvbFNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVIoc3ltYm9sT2JqZWN0U3BhY2UpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhjNjQ3YTI4NGQ1NTgzZTM0MjY0YjRjNWI2YmVkOTAzYWJh
ODI3ODMuLjNhNDUxOGJhOGNkMGI5YzhkODAzMDQ5YWE1MjhhYTY5ZWNjOWQyNjAgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDEtMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbSlNDXSBVc2UgaW50ZXJuYWwgb2JqZWN0IGZpZWxkIG1lY2hhbmlzbSB0byBpbXBs
ZW1lbnQgSlNTdHJpbmdJdGVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzdHJlc3Mvc3RyaW5nLWl0ZXJhdG9ycy5qczoKKwogMjAyMC0wMS0x
MCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEZs
dXNoIG9sZCB0YWJsZXMgaW4gRW5kIHBoYXNlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9z
dHJpbmctaXRlcmF0b3JzLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc3RyaW5nLWl0ZXJhdG9ycy5qcwpp
bmRleCBmNjZiNjIwMDMxMzJmMTZhYTU4YzEwOTIxZmE4ZjY3ODM1OTBhNmE3Li5jNWM3ZmVlMTNj
ZTJlNzQwODg4ZGNiNzdlMmQ2NjllOWU4YjZkNmViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9zdHJpbmctaXRlcmF0b3JzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3N0cmluZy1pdGVyYXRv
cnMuanMKQEAgLTE4MSw4ICsxODEsNiBAQCBmdW5jdGlvbiBpbmNyZW1lbnQoaXRlcikgewogICAg
IGlmICghZGlkVGhyb3cpCiAgICAgICAgIHRocm93ICJFcnJvcjogbm8gZXJyb3IgdGhyb3duIjsK
ICAgICB2YXIgbWVzc2FnZSA9ICdUeXBlRXJyb3I6ICVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUu
bmV4dCByZXF1aXJlcyB0aGF0IHx0aGlzfCBiZSBhIFN0cmluZyBJdGVyYXRvciBpbnN0YW5jZSc7
Ci0gICAgaWYgKHByaW1pdGl2ZSA9PSBudWxsKQotICAgICAgICBtZXNzYWdlID0gJ1R5cGVFcnJv
cjogJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5v
dCBiZSBudWxsIG9yIHVuZGVmaW5lZCcKICAgICBpZiAoU3RyaW5nKGRpZFRocm93KSAhPT0gbWVz
c2FnZSkKICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgZXJyb3IgdGhyb3duOiAiICsgZGlkVGhy
b3c7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387467</attachid>
            <date>2020-01-12 04:33:23 -0800</date>
            <delta_ts>2020-01-12 14:56:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206144-20200112043322.patch</filename>
            <type>text/plain</type>
            <size>28222</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NjNhMGJlZDFiODg5Mjg3N2M3NjVjMWU2YzRiNGZmMGNiMDNmMGUxLi5kMTE3OGVhN2M5NjMzN2M1
ZDhhYjhjZWRkOGNhYWJjYmYwYjNkM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAyMC0wMS0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBpbnRlcm5hbCBvYmplY3QgZmllbGQgbWVjaGFuaXNtIHRv
IGltcGxlbWVudCBKU1N0cmluZ0l0ZXJhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgaW50ZXJuYWwgb2JqZWN0IGZpZWxk
IG1lY2hhbmlzbSB0byBpbXBsZW1lbnQgSlNTdHJpbmdJdGVyYXRvciwKKyAgICAgICAgYW5kIHdl
IGFsc28gcHV0IEpTU3RyaW5nSXRlcmF0b3IgaW50byBJc29TdWJzcGFjZS4KKworICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlLmpzOgorICAgICAgICAobmV4dCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljUmVnaXN0cnk6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkpOgorICAgICAgICAqIGJ5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRJc1N0cmluZ0l0ZXJhdG9yKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcDoKKyAgICAgICAgKEpTQzo6c3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkSW5kZXgpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX2dldFN0
cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfcHV0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKToK
KyAgICAgICAgKiBydW50aW1lL0pTQ2FzdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJ
dGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6Y2xvbmUpOgorICAgICAgICAo
SlNDOjpKU1N0cmluZ0l0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6SlNT
dHJpbmdJdGVyYXRvcjo6aXRlcmF0ZWRWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGUuY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlw
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6c3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMC0wMS0xMSAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHN1cHByZXNzIHdhcm5pbmdz
IGluIEdDQywgcGFydCAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmgKaW5kZXggYjBiNzg2ODE4YjVjODRiODc0NTNiYzZjNTJhNWJkMzJkNDFlMjNiMS4u
MTU0ZmZmODYwMjIxMTBlNjYwZTVkZDFkNzhlM2U4NGY1NjVkYTE1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtNDYsMTEgKzQ2LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgSlNDX0NPTU1PTl9CWVRFQ09ERV9JTlRSSU5TSUNfQ09OU1RB
TlRTX0VBQ0hfTkFNRShtYWNybykgXAogICAgIG1hY3JvKGFkZCkgXAogICAgIG1hY3JvKGFwcGx5
RnVuY3Rpb24pIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdG9yTmV4dEluZGV4KSBcCi0gICAgbWFj
cm8oYXJyYXlJdGVyYXRpb25LaW5kKSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRvck5leHQpIFwK
LSAgICBtYWNybyhhcnJheUl0ZXJhdG9ySXNEb25lKSBcCi0gICAgbWFjcm8oYXJyYXlJdGVyYXRv
cktpbmQpIFwKICAgICBtYWNybyhhcnJheVNwZWNpZXNDcmVhdGUpIFwKICAgICBtYWNybyhhc3Nl
cnQpIFwKICAgICBtYWNybyhjYWxsRnVuY3Rpb24pIFwKQEAgLTU5LDcgKzU0LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgbWFjcm8oaXNWaWV3KSBcCiAgICAgbWFjcm8oaXRlcmF0ZWRPYmplY3Qp
IFwKICAgICBtYWNybyhpdGVyYXRlZFN0cmluZykgXAotICAgIG1hY3JvKHN0cmluZ0l0ZXJhdG9y
TmV4dEluZGV4KSBcCiAgICAgbWFjcm8ocHJvbWlzZSkgXAogICAgIG1hY3JvKHByb21pc2VPckNh
cGFiaWxpdHkpIFwKICAgICBtYWNybyhPYmplY3QpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5qcwppbmRleCBk
MTIyZGU4YjI3MGNjZjlhOTQ1MTUwYzQxYTJkMjAwZWI4YWE5N2U4Li42ZGJkYjc2ZGI4YThlOTY5
ZjgyYWRlYTRlNDkxMzZhY2EwMDk2NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmpzCkBAIC0yNywyMSAr
MjcsMTggQEAgZnVuY3Rpb24gbmV4dCgpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgaWYg
KEBpc1VuZGVmaW5lZE9yTnVsbCh0aGlzKSkKLSAgICAgICAgQHRocm93VHlwZUVycm9yKCIlU3Ry
aW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51
bGwgb3IgdW5kZWZpbmVkIik7Ci0KLSAgICB2YXIgcG9zaXRpb24gPSBAZ2V0QnlJZERpcmVjdFBy
aXZhdGUodGhpcywgInN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4Iik7Ci0gICAgaWYgKHBvc2l0aW9u
ID09PSBAdW5kZWZpbmVkKQorICAgIGlmICghQGlzU3RyaW5nSXRlcmF0b3IodGhpcykpCiAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigiJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0IHJlcXVp
cmVzIHRoYXQgfHRoaXN8IGJlIGEgU3RyaW5nIEl0ZXJhdG9yIGluc3RhbmNlIik7CiAKICAgICB2
YXIgZG9uZSA9IHRydWU7CiAgICAgdmFyIHZhbHVlID0gQHVuZGVmaW5lZDsKIAotICAgIHZhciBz
dHJpbmcgPSBAZ2V0QnlJZERpcmVjdFByaXZhdGUodGhpcywgIml0ZXJhdGVkU3RyaW5nIik7Ci0g
ICAgaWYgKHN0cmluZyAhPT0gQHVuZGVmaW5lZCkgeworICAgIHZhciBwb3NpdGlvbiA9IEBnZXRT
dHJpbmdJdGVyYXRvckludGVybmFsRmllbGQodGhpcywgQHN0cmluZ0l0ZXJhdG9yRmllbGRJbmRl
eCk7CisgICAgaWYgKHBvc2l0aW9uICE9PSAtMSkgeworICAgICAgICB2YXIgc3RyaW5nID0gQGdl
dFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCh0aGlzLCBAc3RyaW5nSXRlcmF0b3JGaWVsZEl0
ZXJhdGVkU3RyaW5nKTsKICAgICAgICAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGggPj4+IDA7
CiAgICAgICAgIGlmIChwb3NpdGlvbiA+PSBsZW5ndGgpCi0gICAgICAgICAgICBAcHV0QnlJZERp
cmVjdFByaXZhdGUodGhpcywgIml0ZXJhdGVkU3RyaW5nIiwgQHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICBAcHV0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKHRoaXMsIEBzdHJpbmdJdGVyYXRv
ckZpZWxkSW5kZXgsIC0xKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBkb25lID0gZmFs
c2U7CiAKQEAgLTU1LDggKzUyLDcgQEAgZnVuY3Rpb24gbmV4dCgpCiAgICAgICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0cmluZ1twb3NpdGlvbl0gKyBzdHJp
bmdbcG9zaXRpb24gKyAxXTsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQHB1dEJ5SWRE
aXJlY3RQcml2YXRlKHRoaXMsICJzdHJpbmdJdGVyYXRvck5leHRJbmRleCIsIHBvc2l0aW9uICsg
dmFsdWUubGVuZ3RoKTsKKyAgICAgICAgICAgIEBwdXRTdHJpbmdJdGVyYXRvckludGVybmFsRmll
bGQodGhpcywgQHN0cmluZ0l0ZXJhdG9yRmllbGRJbmRleCwgcG9zaXRpb24gKyB2YWx1ZS5sZW5n
dGgpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHAKaW5kZXggMDBm
MTM3OTQyMTZlNzA5OTE3NzU4NmNmMDA3NDk2MjE1N2Y4N2E3YS4uMzMzNjhlYWNhYjgzYzdmYzc0
YzZmZTJiYjQ3MDAxMzJiYmZmZTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmNwcApAQCAtMzgs
NiArMzgsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNNb2R1
bGVMb2FkZXIuaCIKICNpbmNsdWRlICJKU1Byb21pc2UuaCIKKyNpbmNsdWRlICJKU1N0cmluZ0l0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTm9kZXMuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgi
CiAKQEAgLTkyLDYgKzkzLDggQEAgQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6Qnl0ZWNvZGVJ
bnRyaW5zaWNSZWdpc3RyeShWTSYgdm0pCiAgICAgbV9hcnJheUl0ZXJhdG9yRmllbGRJbmRleC5z
ZXQobV92bSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNBcnJheUl0ZXJhdG9yOjpG
aWVsZDo6SW5kZXgpKSk7CiAgICAgbV9hcnJheUl0ZXJhdG9yRmllbGRJc0RvbmUuc2V0KG1fdm0s
IGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KEpTQXJyYXlJdGVyYXRvcjo6RmllbGQ6Oklz
RG9uZSkpKTsKICAgICBtX2FycmF5SXRlcmF0b3JGaWVsZEtpbmQuc2V0KG1fdm0sIGpzTnVtYmVy
KHN0YXRpY19jYXN0PGludDMyX3Q+KEpTQXJyYXlJdGVyYXRvcjo6RmllbGQ6OktpbmQpKSk7Cisg
ICAgbV9zdHJpbmdJdGVyYXRvckZpZWxkSW5kZXguc2V0KG1fdm0sIGpzTnVtYmVyKHN0YXRpY19j
YXN0PGludDMyX3Q+KEpTU3RyaW5nSXRlcmF0b3I6OkZpZWxkOjpJbmRleCkpKTsKKyAgICBtX3N0
cmluZ0l0ZXJhdG9yRmllbGRJdGVyYXRlZFN0cmluZy5zZXQobV92bSwganNOdW1iZXIoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oSlNTdHJpbmdJdGVyYXRvcjo6RmllbGQ6Okl0ZXJhdGVkU3RyaW5nKSkp
OwogICAgIG1fYXN5bmNHZW5lcmF0b3JGaWVsZFN1c3BlbmRSZWFzb24uc2V0KG1fdm0sIGpzTnVt
YmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0FzeW5jR2VuZXJhdG9yOjpGaWVsZDo6U3VzcGVu
ZFJlYXNvbikpKTsKICAgICBtX2FzeW5jR2VuZXJhdG9yRmllbGRRdWV1ZUZpcnN0LnNldChtX3Zt
LCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNBc3luY0dlbmVyYXRvcjo6RmllbGQ6
OlF1ZXVlRmlyc3QpKSk7CiAgICAgbV9hc3luY0dlbmVyYXRvckZpZWxkUXVldWVMYXN0LnNldCht
X3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNBc3luY0dlbmVyYXRvcjo6Rmll
bGQ6OlF1ZXVlTGFzdCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCmluZGV4IGI1YzVmNTFhZDBjYWE0
YjM0ZDM4NTE1MzhmYTZlNzcyYzUzYzkzZGYuLmQyOGEzZTNhNzhkMTBkYThkODg5YjcwM2U5Y2M2
ZDdmMmViMGVhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaApAQCAtNDYsNiArNDYsNyBAQCBlbnVt
IGNsYXNzIExpbmtUaW1lQ29uc3RhbnQgOiBpbnQzMl90OwogICAgIG1hY3JvKGdldEdlbmVyYXRv
ckludGVybmFsRmllbGQpIFwKICAgICBtYWNybyhnZXRBc3luY0dlbmVyYXRvckludGVybmFsRmll
bGQpIFwKICAgICBtYWNybyhnZXRBcnJheUl0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAorICAgIG1h
Y3JvKGdldFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKGlkV2l0aFBy
b2ZpbGUpIFwKICAgICBtYWNybyhpc09iamVjdCkgXAogICAgIG1hY3JvKGlzSlNBcnJheSkgXApA
QCAtNTcsNiArNTgsNyBAQCBlbnVtIGNsYXNzIExpbmtUaW1lQ29uc3RhbnQgOiBpbnQzMl90Owog
ICAgIG1hY3JvKGlzUmVnRXhwT2JqZWN0KSBcCiAgICAgbWFjcm8oaXNNYXApIFwKICAgICBtYWNy
byhpc1NldCkgXAorICAgIG1hY3JvKGlzU3RyaW5nSXRlcmF0b3IpIFwKICAgICBtYWNybyhpc0Fy
cmF5SXRlcmF0b3IpIFwKICAgICBtYWNybyhpc1VuZGVmaW5lZE9yTnVsbCkgXAogICAgIG1hY3Jv
KHRhaWxDYWxsRm9yd2FyZEFyZ3VtZW50cykgXApAQCAtNzEsNiArNzMsNyBAQCBlbnVtIGNsYXNz
IExpbmtUaW1lQ29uc3RhbnQgOiBpbnQzMl90OwogICAgIG1hY3JvKHB1dEdlbmVyYXRvckludGVy
bmFsRmllbGQpIFwKICAgICBtYWNybyhwdXRBc3luY0dlbmVyYXRvckludGVybmFsRmllbGQpIFwK
ICAgICBtYWNybyhwdXRBcnJheUl0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAorICAgIG1hY3JvKHB1
dFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKHRvTnVtYmVyKSBcCiAg
ICAgbWFjcm8odG9TdHJpbmcpIFwKICAgICBtYWNybyh0b09iamVjdCkgXApAQCAtMTIyLDYgKzEy
NSw4IEBAIGVudW0gY2xhc3MgTGlua1RpbWVDb25zdGFudCA6IGludDMyX3Q7CiAgICAgbWFjcm8o
YXJyYXlJdGVyYXRvckZpZWxkSXNEb25lKSBcCiAgICAgbWFjcm8oYXJyYXlJdGVyYXRvckZpZWxk
SXRlcmF0ZWRPYmplY3QpIFwKICAgICBtYWNybyhhcnJheUl0ZXJhdG9yRmllbGRLaW5kKSBcCisg
ICAgbWFjcm8oc3RyaW5nSXRlcmF0b3JGaWVsZEluZGV4KSBcCisgICAgbWFjcm8oc3RyaW5nSXRl
cmF0b3JGaWVsZEl0ZXJhdGVkU3RyaW5nKSBcCiAgICAgbWFjcm8oYXN5bmNHZW5lcmF0b3JGaWVs
ZFN1c3BlbmRSZWFzb24pIFwKICAgICBtYWNybyhhc3luY0dlbmVyYXRvckZpZWxkUXVldWVGaXJz
dCkgXAogICAgIG1hY3JvKGFzeW5jR2VuZXJhdG9yRmllbGRRdWV1ZUxhc3QpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAppbmRleCA2MmQ1Y2JiMDA1YzEzZTczN2E0NzI4YWU1NzQ2NGQ4MTUyMzg0NDZmLi5hNWYzNjZi
ZGFmYzgxZmRkM2JhMzJlYzgwYmFjZDA1MGVkZDFmY2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC04Nzgs
NiArODc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc1Jl
Z0V4cE9iamVjdChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1p
dElzQ2VsbFdpdGhUeXBlKGRzdCwgc3JjLCBSZWdFeHBPYmplY3RUeXBlKTsgfQogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0SXNNYXAoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsg
cmV0dXJuIGVtaXRJc0NlbGxXaXRoVHlwZShkc3QsIHNyYywgSlNNYXBUeXBlKTsgfQogICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0SXNTZXQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMp
IHsgcmV0dXJuIGVtaXRJc0NlbGxXaXRoVHlwZShkc3QsIHNyYywgSlNTZXRUeXBlKTsgfQorICAg
ICAgICBSZWdpc3RlcklEKiBlbWl0SXNTdHJpbmdJdGVyYXRvcihSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdElzQ2VsbFdpdGhUeXBlKGRzdCwgc3JjLCBKU1N0
cmluZ0l0ZXJhdG9yVHlwZSk7IH0KICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzQXJyYXlJdGVy
YXRvcihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdElzQ2Vs
bFdpdGhUeXBlKGRzdCwgc3JjLCBKU0FycmF5SXRlcmF0b3JUeXBlKTsgfQogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0SXNPYmplY3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXNOdW1iZXIoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiBzcmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCmluZGV4IDhjODJmNTczY2RhNmUzY2MyZmE2Yjg4YWRmNDE1M2M4Yzhh
Nzk4N2EuLmVhOTgyNmZmMmE4ZjY1N2UwNmI3NTBmNzBkZjgxYjdlZTc1MjkyMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJKU0dlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNJbW11dGFibGVCdXR0ZXJmbHkuaCIKKyNpbmNs
dWRlICJKU1N0cmluZ0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGFiZWxTY29wZS5oIgogI2luY2x1
ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCkBAIC0xMDc5LDYgKzEwODAsMTcgQEAg
c3RhdGljIEpTQXJyYXlJdGVyYXRvcjo6RmllbGQgYXJyYXlJdGVyYXRvckludGVybmFsRmllbGRJ
bmRleChCeXRlY29kZUludHJpbnNpY04KICAgICByZXR1cm4gSlNBcnJheUl0ZXJhdG9yOjpGaWVs
ZDo6SW5kZXg7CiB9CiAKK3N0YXRpYyBKU1N0cmluZ0l0ZXJhdG9yOjpGaWVsZCBzdHJpbmdJdGVy
YXRvckludGVybmFsRmllbGRJbmRleChCeXRlY29kZUludHJpbnNpY05vZGUqIG5vZGUpCit7Cisg
ICAgQVNTRVJUKG5vZGUtPmVudHJ5KCkudHlwZSgpID09IEJ5dGVjb2RlSW50cmluc2ljUmVnaXN0
cnk6OlR5cGU6OkVtaXR0ZXIpOworICAgIGlmIChub2RlLT5lbnRyeSgpLmVtaXR0ZXIoKSA9PSAm
Qnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19zdHJpbmdJdGVyYXRvckZpZWxk
SW5kZXgpCisgICAgICAgIHJldHVybiBKU1N0cmluZ0l0ZXJhdG9yOjpGaWVsZDo6SW5kZXg7Cisg
ICAgaWYgKG5vZGUtPmVudHJ5KCkuZW1pdHRlcigpID09ICZCeXRlY29kZUludHJpbnNpY05vZGU6
OmVtaXRfaW50cmluc2ljX3N0cmluZ0l0ZXJhdG9yRmllbGRJdGVyYXRlZFN0cmluZykKKyAgICAg
ICAgcmV0dXJuIEpTU3RyaW5nSXRlcmF0b3I6OkZpZWxkOjpJdGVyYXRlZFN0cmluZzsKKyAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBKU1N0cmluZ0l0ZXJhdG9y
OjpGaWVsZDo6SW5kZXg7Cit9CisKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6
ZW1pdF9pbnRyaW5zaWNfZ2V0UHJvbWlzZUludGVybmFsRmllbGQoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5v
ZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CkBAIC0xMTMxLDYgKzExNDMsMTkgQEAgUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19nZXRBcnJheUl0ZXJhdG9y
SW50ZXJuYWxGaWVsZCgKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRJbnRlcm5hbEZpZWxk
KGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIGluZGV4KTsKIH0K
IAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19nZXRT
dHJpbmdJdGVyYXRvckludGVybmFsRmllbGQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3Mt
Pm1fbGlzdE5vZGU7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1p
dE5vZGUobm9kZSk7CisgICAgbm9kZSA9IG5vZGUtPm1fbmV4dDsKKyAgICBSRUxFQVNFX0FTU0VS
VChub2RlLT5tX2V4cHItPmlzQnl0ZWNvZGVJbnRyaW5zaWNOb2RlKCkpOworICAgIHVuc2lnbmVk
IGluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVs
ZEluZGV4KHN0YXRpY19jYXN0PEJ5dGVjb2RlSW50cmluc2ljTm9kZSo+KG5vZGUtPm1fZXhwcikp
KTsKKyAgICBBU1NFUlQoaW5kZXggPCBKU1N0cmluZ0l0ZXJhdG9yOjpudW1iZXJPZkludGVybmFs
RmllbGRzKTsKKyAgICBBU1NFUlQoIW5vZGUtPm1fbmV4dCk7CisKKyAgICByZXR1cm4gZ2VuZXJh
dG9yLmVtaXRHZXRJbnRlcm5hbEZpZWxkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCks
IGJhc2UuZ2V0KCksIGluZGV4KTsKK30KKwogUmVnaXN0ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNO
b2RlOjplbWl0X2ludHJpbnNpY19hcmd1bWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgQXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9IG1fYXJn
cy0+bV9saXN0Tm9kZTsKQEAgLTEyNjQsNiArMTI4OSwyMiBAQCBSZWdpc3RlcklEKiBCeXRlY29k
ZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX3B1dEFycmF5SXRlcmF0b3JJbnRlcm5hbEZp
ZWxkKAogICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIGdlbmVyYXRvci5lbWl0UHV0SW50
ZXJuYWxGaWVsZChiYXNlLmdldCgpLCBpbmRleCwgdmFsdWUuZ2V0KCkpKTsKIH0KIAorUmVnaXN0
ZXJJRCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19wdXRTdHJpbmdJdGVy
YXRvckludGVybmFsRmllbGQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQoreworICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5v
ZGU7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUobm9k
ZSk7CisgICAgbm9kZSA9IG5vZGUtPm1fbmV4dDsKKyAgICBSRUxFQVNFX0FTU0VSVChub2RlLT5t
X2V4cHItPmlzQnl0ZWNvZGVJbnRyaW5zaWNOb2RlKCkpOworICAgIHVuc2lnbmVkIGluZGV4ID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZEluZGV4KHN0
YXRpY19jYXN0PEJ5dGVjb2RlSW50cmluc2ljTm9kZSo+KG5vZGUtPm1fZXhwcikpKTsKKyAgICBB
U1NFUlQoaW5kZXggPCBKU1N0cmluZ0l0ZXJhdG9yOjpudW1iZXJPZkludGVybmFsRmllbGRzKTsK
KyAgICBub2RlID0gbm9kZS0+bV9uZXh0OworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9
IGdlbmVyYXRvci5lbWl0Tm9kZShub2RlKTsKKworICAgIEFTU0VSVCghbm9kZS0+bV9uZXh0KTsK
KworICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIGdlbmVyYXRvci5lbWl0UHV0SW50ZXJu
YWxGaWVsZChiYXNlLmdldCgpLCBpbmRleCwgdmFsdWUuZ2V0KCkpKTsKK30KKwogUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY190YWlsQ2FsbEZvcndhcmRB
cmd1bWVudHMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQog
ewogICAgIEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CkBAIC0x
Mzk3LDYgKzE0MzgsNyBAQCBDUkVBVEVfSU5UUklOU0lDX0ZPUl9CUkFORF9DSEVDSyhpc1Byb21p
c2UsIElzUHJvbWlzZSkKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNLKGlzUmVnRXhw
T2JqZWN0LCBJc1JlZ0V4cE9iamVjdCkKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNL
KGlzTWFwLCBJc01hcCkKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNLKGlzU2V0LCBJ
c1NldCkKK0NSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5EX0NIRUNLKGlzU3RyaW5nSXRlcmF0b3Is
IElzU3RyaW5nSXRlcmF0b3IpCiBDUkVBVEVfSU5UUklOU0lDX0ZPUl9CUkFORF9DSEVDSyhpc0Fy
cmF5SXRlcmF0b3IsIElzQXJyYXlJdGVyYXRvcikKIENSRUFURV9JTlRSSU5TSUNfRk9SX0JSQU5E
X0NIRUNLKGlzVW5kZWZpbmVkT3JOdWxsLCBJc1VuZGVmaW5lZE9yTnVsbCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
LmNwcAppbmRleCAzZjE5NDc0M2I5MDRjYTkzNzlhNGVjNThjYmU1NDlhNzEwOTk1MjdjLi5iNzhh
OTk3NjFkZjk5YjBiYmE2ZDAyNzAzNjU4YTYyM2Q2NzdlMjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApA
QCAtNDMxLDcgKzQzMSw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVy
bmFsUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgICAgIEpTQXJy
YXkqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIsIDEp
OwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgICAg
ICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGluZGV4KyssIGNvbnN0cnVjdEludGVybmFsUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCAi
c3RyaW5nIiwgc3RyaW5nSXRlcmF0b3ItPml0ZXJhdGVkVmFsdWUoZ2xvYmFsT2JqZWN0KSkpOwor
ICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCsrLCBjb25z
dHJ1Y3RJbnRlcm5hbFByb3BlcnR5KGdsb2JhbE9iamVjdCwgInN0cmluZyIsIHN0cmluZ0l0ZXJh
dG9yLT5pdGVyYXRlZFN0cmluZygpKSk7CiAgICAgICAgIHJldHVybiBhcnJheTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FzdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKaW5kZXggZjhmM2E0ZjA1MWUwOGI4
N2ViYTZjZDljZmQ4NjNjN2MyNjhlODcyYS4uNjczZTAxYzIyZTVmZTA2ZTJmZGUxZDJiNTI1YTYw
NzkwNzlhY2E3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
YXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYXN0LmgKQEAgLTQ4
LDYgKzQ4LDggQEAgaW5saW5lIFRvIGpzQ2FzdChKU1ZhbHVlIGZyb20pCiAvLyBTcGVjaWZpYyB0
eXBlIG92ZXJsb2Fkcy4KICNkZWZpbmUgRk9SX0VBQ0hfSlNfRFlOQU1JQ19DQVNUX0pTX1RZUEVf
T1ZFUkxPQUQobWFjcm8pIFwKICAgICBtYWNybyhKU0ltbXV0YWJsZUJ1dHRlcmZseSwgSlNUeXBl
OjpKU0ltbXV0YWJsZUJ1dHRlcmZseVR5cGUsIEpTVHlwZTo6SlNJbW11dGFibGVCdXR0ZXJmbHlU
eXBlKSBcCisgICAgbWFjcm8oSlNBcnJheUl0ZXJhdG9yLCBKU1R5cGU6OkpTQXJyYXlJdGVyYXRv
clR5cGUsIEpTVHlwZTo6SlNBcnJheUl0ZXJhdG9yVHlwZSkgXAorICAgIG1hY3JvKEpTU3RyaW5n
SXRlcmF0b3IsIEpTVHlwZTo6SlNTdHJpbmdJdGVyYXRvclR5cGUsIEpTVHlwZTo6SlNTdHJpbmdJ
dGVyYXRvclR5cGUpIFwKICAgICBtYWNybyhKU09iamVjdCwgRmlyc3RPYmplY3RUeXBlLCBMYXN0
T2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKEpTRmluYWxPYmplY3QsIEpTVHlwZTo6RmluYWxPYmpl
Y3RUeXBlLCBKU1R5cGU6OkZpbmFsT2JqZWN0VHlwZSkgXAogICAgIG1hY3JvKEpTRnVuY3Rpb24s
IEpTVHlwZTo6SlNGdW5jdGlvblR5cGUsIEpTVHlwZTo6SlNGdW5jdGlvblR5cGUpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKaW5k
ZXggMzUxZDQ3MDc5MWI3ZjliZjNkMTAyYjhiODA2NzQ4ZWY4N2RkMjE2YS4uOGU3MjJlMzVlMDlj
ODVmNWJjNGU5NzI1YTdiZTBhZjUwNzM4NDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKQEAgLTM0LDI4ICszNCwyOCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTU3RyaW5nSXRlcmF0b3I6OnNfaW5m
byA9IHsgIlN0cmluZyBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNTdHJpbmdJdGVyYXRvcikgfTsKIAotdm9pZCBKU1N0cmlu
Z0l0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqIGl0ZXJhdGVkU3RyaW5nKQordm9pZCBKU1N0cmluZ0l0ZXJhdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTU3RyaW5nKiBpdGVyYXRlZFN0cmluZykKIHsKICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJhdGVkU3RyaW5n
UHJpdmF0ZU5hbWUoKSwgaXRlcmF0ZWRTdHJpbmcpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3RyaW5nSXRlcmF0b3JOZXh0SW5kZXhQcml2YXRl
TmFtZSgpLCBqc051bWJlcigwKSk7Ci19Ci0KLUpTVmFsdWUgSlNTdHJpbmdJdGVyYXRvcjo6aXRl
cmF0ZWRWYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAotewotICAgIHJl
dHVybiBnZXREaXJlY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPnZtKCkucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRTdHJpbmdQcml2YXRlTmFtZSgpKTsK
KyAgICBpbnRlcm5hbEZpZWxkKEZpZWxkOjpJbmRleCkuc2V0KHZtLCB0aGlzLCBqc051bWJlcigw
KSk7CisgICAgaW50ZXJuYWxGaWVsZChGaWVsZDo6SXRlcmF0ZWRTdHJpbmcpLnNldCh2bSwgdGhp
cywgaXRlcmF0ZWRTdHJpbmcpOwogfQogCiBKU1N0cmluZ0l0ZXJhdG9yKiBKU1N0cmluZ0l0ZXJh
dG9yOjpjbG9uZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBKU1ZhbHVlIGl0ZXJhdGVkU3RyaW5nID0gZ2V0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1By
aXZhdGVOYW1lKCkpOwotICAgIEpTVmFsdWUgbmV4dEluZGV4ID0gZ2V0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZh
dGVOYW1lKCkpOwotCi0gICAgYXV0byBjbG9uZSA9IEpTU3RyaW5nSXRlcmF0b3I6OmNyZWF0ZShn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+c3RyaW5nSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgYXNT
dHJpbmcoaXRlcmF0ZWRTdHJpbmcpKTsKLSAgICBjbG9uZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFByaXZhdGVO
YW1lKCksIG5leHRJbmRleCk7CisgICAgSlNTdHJpbmcqIGl0ZXJhdGVkU3RyaW5nID0ganNDYXN0
PEpTU3RyaW5nKj4odGhpcy0+aXRlcmF0ZWRTdHJpbmcoKSk7CisgICAgYXV0byogY2xvbmUgPSBK
U1N0cmluZ0l0ZXJhdG9yOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+c3RyaW5nSXRlcmF0b3JT
dHJ1Y3R1cmUoKSwgaXRlcmF0ZWRTdHJpbmcpOworICAgIGNsb25lLT5pbnRlcm5hbEZpZWxkKEZp
ZWxkOjpJbmRleCkuc2V0KHZtLCBjbG9uZSwgdGhpcy0+aW5kZXgoKSk7CiAgICAgcmV0dXJuIGNs
b25lOwogfQogCit2b2lkIEpTU3RyaW5nSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTU3RyaW5nSXRlcmF0b3IqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2Jq
ZWN0LCB2aXNpdG9yKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmgKaW5kZXggYmZkOTcxNmY5YmZk
MTMzODdlYWRlNGQ3MzU2YWU1NDc0ZWVmMDY3OC4uYjQ4YjdhODc4OTNiNmMwOTc1NWQzYTg5MzNj
OGViZmU1ODdlNTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmdJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nSXRlcmF0b3IuaApAQCAtMjksMzUgKzI5LDY1IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1jbGFzcyBKU1N0cmluZ0l0ZXJhdG9yIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
eworY2xhc3MgSlNTdHJpbmdJdGVyYXRvciBmaW5hbCA6IHB1YmxpYyBKU0ludGVybmFsRmllbGRP
YmplY3RJbXBsPDI+IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFz
ZTsKKyAgICB1c2luZyBCYXNlID0gSlNJbnRlcm5hbEZpZWxkT2JqZWN0SW1wbDwyPjsKKworICAg
IGVudW0gY2xhc3MgRmllbGQgOiB1aW50OF90IHsKKyAgICAgICAgSW5kZXggPSAwLAorICAgICAg
ICBJdGVyYXRlZFN0cmluZywKKyAgICB9OwogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAor
ICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxzaXplX3Q+IGlubGluZUNh
cGFjaXR5KQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChpbmxpbmVDYXBhY2l0eSwgaW5s
aW5lQ2FwYWNpdHkgPT0gMFUpOworICAgICAgICByZXR1cm4gc2l6ZW9mKEpTU3RyaW5nSXRlcmF0
b3IpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFj
Y2VzcyBtb2RlPgorICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHZtLnN0cmluZ0l0ZXJhdG9yU3BhY2U8bW9kZT4oKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgc3RkOjphcnJheTxKU1ZhbHVlLCBudW1iZXJPZkludGVybmFsRmll
bGRzPiBpbml0aWFsVmFsdWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsKKyAgICAgICAg
ICAgIGpzTnVtYmVyKDApLAorICAgICAgICAgICAganNOdWxsKCksCisgICAgICAgIH0gfTsKKyAg
ICB9CisKKyAgICBjb25zdCBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIGludGVybmFsRmllbGQoRmll
bGQgZmllbGQpIGNvbnN0IHsgcmV0dXJuIEJhc2U6OmludGVybmFsRmllbGQoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGZpZWxkKSk7IH0KKyAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIGludGVybmFs
RmllbGQoRmllbGQgZmllbGQpIHsgcmV0dXJuIEJhc2U6OmludGVybmFsRmllbGQoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGZpZWxkKSk7IH0KKwogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhKU1N0cmluZ0l0ZXJhdG9yVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBKU1N0cmluZ0l0ZXJhdG9yKiBj
cmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTU3RyaW5nKiBpdGVyYXRlZFN0cmluZykKKyAgICBzdGF0aWMgSlNTdHJpbmdJdGVyYXRvciog
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU3RyaW5nKiBpdGVyYXRlZFN0
cmluZykKICAgICB7Ci0gICAgICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CiAgICAg
ICAgIEpTU3RyaW5nSXRlcmF0b3IqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8SlNTdHJpbmdJdGVyYXRvcj4odm0uaGVhcCkpIEpTU3RyaW5nSXRlcmF0b3Iodm0sIHN0cnVj
dHVyZSk7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgc3RydWN0dXJlLT5n
bG9iYWxPYmplY3QoKSwgaXRlcmF0ZWRTdHJpbmcpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24odm0sIGl0ZXJhdGVkU3RyaW5nKTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwog
ICAgIH0KIAotICAgIEpTVmFsdWUgaXRlcmF0ZWRWYWx1ZShKU0dsb2JhbE9iamVjdCopIGNvbnN0
OworICAgIEpTVmFsdWUgaXRlcmF0ZWRTdHJpbmcoKSBjb25zdCB7IHJldHVybiBpbnRlcm5hbEZp
ZWxkKEZpZWxkOjpJdGVyYXRlZFN0cmluZykuZ2V0KCk7IH0KKyAgICBKU1ZhbHVlIGluZGV4KCkg
Y29uc3QgeyByZXR1cm4gaW50ZXJuYWxGaWVsZChGaWVsZDo6SW5kZXgpLmdldCgpOyB9CiAgICAg
SlNTdHJpbmdJdGVyYXRvciogY2xvbmUoSlNHbG9iYWxPYmplY3QqKTsKIAorICAgIHN0YXRpYyB2
b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKKwogcHJpdmF0ZToKICAg
ICBKU1N0cmluZ0l0ZXJhdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogaXRlcmF0ZWRTdHJpbmcpOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU1N0cmluZyogaXRlcmF0ZWRTdHJpbmcpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmNwcAppbmRleCAxMDM4ZGM1MDQ2NGM5YmVlMWNmYzk2MDljMDQ2ZDMzMjM2NzllYjEzLi5i
MDJiMzQ3ZDZhNTAwNDU1M2I1OTJlYzY0YjRjMTQ0ZTMwOGRkMGNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAKQEAgLTEwMCw2ICsxMDAsNyBAQCB2b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDOjpKU1R5cGUgdHlwZSkKICAgICBDQVNFKEpT
R2VuZXJhdG9yVHlwZSkKICAgICBDQVNFKEpTQXN5bmNHZW5lcmF0b3JUeXBlKQogICAgIENBU0Uo
SlNBcnJheUl0ZXJhdG9yVHlwZSkKKyAgICBDQVNFKEpTU3RyaW5nSXRlcmF0b3JUeXBlKQogICAg
IENBU0UoSlNQcm9taXNlVHlwZSkKICAgICBDQVNFKEpTTWFwVHlwZSkKICAgICBDQVNFKEpTU2V0
VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggZDI3OWYwMGZm
Y2NiYTI0MWI5YmQyMmI1ZjNhMzA2ZDcwOTY3ZDk3OS4uYTQzMjEzYmM2MTJjZDVhYmYzZDc4OTY2
YTRmMjg3Y2IzZjkzZWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgK
QEAgLTExMSw2ICsxMTEsNyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogICAgIEpTR2VuZXJh
dG9yVHlwZSwKICAgICBKU0FzeW5jR2VuZXJhdG9yVHlwZSwKICAgICBKU0FycmF5SXRlcmF0b3JU
eXBlLAorICAgIEpTU3RyaW5nSXRlcmF0b3JUeXBlLAogICAgIEpTUHJvbWlzZVR5cGUsCiAgICAg
SlNNYXBUeXBlLAogICAgIEpTU2V0VHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDQ3MGFhYzE1ZjNmODdlMjFiOTJjYzFh
ODQzODY0NDk5MDQ4ZWFhOGIuLjUzYjg3NzhiNzY3OTcyMjBlM2U2MmQzZTRlM2YxODRjM2MzZTNl
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcApAQCAtMTg2MCw3ICsxODYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNJdGVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAg
SlNTdHJpbmcqIHN0cmluZyA9IHRoaXNWYWx1ZS50b1N0cmluZyhnbG9iYWxPYmplY3QpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNTdHJpbmdJdGVyYXRvcjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT5zdHJpbmdJdGVyYXRvclN0cnVjdHVyZSgpLCBzdHJpbmcpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU3RyaW5nSXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LT5zdHJpbmdJdGVyYXRvclN0cnVjdHVyZSgpLCBzdHJpbmcpKTsKIH0KIAogZW51bSBj
bGFzcyBOb3JtYWxpemF0aW9uRm9ybSB7IE5GQywgTkZELCBORktDLCBORktEIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggYWMyMzRkZDY5ZmE2ZWM1ZjdhMDEzZDUwNmNj
OTBiZWVjODY4NTdiZi4uNDc1MmFhMDg3ZGUyYjA2MGYwYmNhZTAyZjBhNTJjOGJmN2UwZDhhNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTE2LDYgKzExNiw3IEBACiAj
aW5jbHVkZSAiSlNTZXQuaCIKICNpbmNsdWRlICJKU1NldEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SlNTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiSlNTdHJpbmdJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkpTVGVtcGxhdGVPYmplY3REZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiSlNUb1dhc21JQ0NhbGxl
ZS5oIgogI2luY2x1ZGUgIkpTVHlwZWRBcnJheXMuaCIKQEAgLTE0NDEsNiArMTQ0Miw3IEBAIHZv
aWQgVk06OmVuc3VyZVNoYWRvd0NoaWNrZW4oKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUl9TTE9XKGFwaUdsb2JhbE9iamVjdFNwYWNlLCBhcGlHbG9iYWxPYmplY3RIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTQVBJR2xvYmFsT2JqZWN0KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUl9TTE9XKGFwaVZhbHVlV3JhcHBlclNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBKU0FQSVZhbHVlV3JhcHBlcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVJfU0xPVyhhcnJheUJ1ZmZlclNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0FycmF5
QnVmZmVyKQorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFycmF5SXRl
cmF0b3JTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBcnJheUl0ZXJhdG9yKQogRFlO
QU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGFzeW5jR2VuZXJhdG9yU3BhY2Us
IGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTQXN5bmNHZW5lcmF0b3IpCiBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYmlnSW50T2JqZWN0U3BhY2UsIGNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEJpZ0ludE9iamVjdCkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhib29sZWFuT2JqZWN0U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEJv
b2xlYW5PYmplY3QpCkBAIC0xNDU3LDcgKzE0NTksNiBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coZmxvYXQzMkFycmF5U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0
KAogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGZsb2F0NjRBcnJheVNw
YWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0Zsb2F0NjRBcnJheSkKIERZTkFNSUNfSVNP
X1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhmdW5jdGlvblJhcmVEYXRhU3BhY2UsIGRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEZ1bmN0aW9uUmFyZURhdGEpCiBEWU5BTUlD
X0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coZ2VuZXJhdG9yU3BhY2UsIGNlbGxIZWFw
Q2VsbFR5cGUuZ2V0KCksIEpTR2VuZXJhdG9yKQotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUl9TTE9XKGFycmF5SXRlcmF0b3JTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNBcnJheUl0ZXJhdG9yKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KGdsb2JhbE9iamVjdFNwYWNlLCBnbG9iYWxPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTR2xv
YmFsT2JqZWN0KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGpzTW9k
dWxlUmVjb3JkU3BhY2UsIGpzTW9kdWxlUmVjb3JkSGVhcENlbGxUeXBlLmdldCgpLCBKU01vZHVs
ZVJlY29yZCkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhpbnQ4QXJy
YXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNJbnQ4QXJyYXkpCkBAIC0xNDc3LDYg
KzE0NzgsNyBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc2V0QnVj
a2V0U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coc2V0SXRlcmF0b3JTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgSlNTZXRJdGVyYXRvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xP
VyhzZXRTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNTZXQpCiBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc3RyaWN0RXZhbEFjdGl2YXRpb25TcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgU3RyaWN0RXZhbEFjdGl2YXRpb24pCitEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coc3RyaW5nSXRlcmF0b3JTcGFjZSwgY2VsbEhlYXBD
ZWxsVHlwZS5nZXQoKSwgSlNTdHJpbmdJdGVyYXRvcikKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyhzb3VyY2VDb2RlU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2Vs
bFR5cGUuZ2V0KCksIEpTU291cmNlQ29kZSkKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVJfU0xPVyhzeW1ib2xTcGFjZSwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgU3ltYm9sKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHN5bWJv
bE9iamVjdFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBTeW1ib2xPYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA4MjQ3NjljOWE3MTQyM2Q0MTc2MDkxZWNmYWUz
YjYwNmMzY2E1Y2Q2Li45YzJhMTZjZjkxZjVjNGFiYmYxZmFhZWNjNzk2MTYwM2JhMGIxNGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTQ5Myw2ICs0OTMsNyBAQCBjbGFzcyBW
TSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRM
aXN0Tm9kZTxWTT4gewogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIoYXBp
R2xvYmFsT2JqZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
UihhcGlWYWx1ZVdyYXBwZXJTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKGFycmF5QnVmZmVyU3BhY2UpCisgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUihhcnJheUl0ZXJhdG9yU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUihhc3luY0dlbmVyYXRvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVIoYmlnSW50T2JqZWN0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUihib29sZWFuT2JqZWN0U3BhY2UpCkBAIC01MDksNyArNTEwLDYgQEAg
Y2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5
TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVN
QkVSKGZsb2F0NjRBcnJheVNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9N
RU1CRVIoZnVuY3Rpb25SYXJlRGF0YVNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVIoZ2VuZXJhdG9yU3BhY2UpCi0gICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUihhcnJheUl0ZXJhdG9yU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0Vf
REVGSU5FX01FTUJFUihnbG9iYWxPYmplY3RTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSKGludDhBcnJheVNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVIoaW50MTZBcnJheVNwYWNlKQpAQCAtNTI5LDYgKzUyOSw3IEBAIGNsYXNz
IFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtl
ZExpc3ROb2RlPFZNPiB7CiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihz
ZXRJdGVyYXRvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVIo
c2V0U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUihzdHJpY3RF
dmFsQWN0aXZhdGlvblNwYWNlKQorICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVIoc3RyaW5nSXRlcmF0b3JTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKHNvdXJjZUNvZGVTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKHN5bWJvbFNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1C
RVIoc3ltYm9sT2JqZWN0U3BhY2UpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhjNjQ3YTI4NGQ1NTgzZTM0MjY0YjRjNWI2YmVkOTAzYWJh
ODI3ODMuLjNhNDUxOGJhOGNkMGI5YzhkODAzMDQ5YWE1MjhhYTY5ZWNjOWQyNjAgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMjAtMDEtMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbSlNDXSBVc2UgaW50ZXJuYWwgb2JqZWN0IGZpZWxkIG1lY2hhbmlzbSB0byBpbXBs
ZW1lbnQgSlNTdHJpbmdJdGVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA2MTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBzdHJlc3Mvc3RyaW5nLWl0ZXJhdG9ycy5qczoKKwogMjAyMC0wMS0x
MCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEZs
dXNoIG9sZCB0YWJsZXMgaW4gRW5kIHBoYXNlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9z
dHJpbmctaXRlcmF0b3JzLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc3RyaW5nLWl0ZXJhdG9ycy5qcwpp
bmRleCBmNjZiNjIwMDMxMzJmMTZhYTU4YzEwOTIxZmE4ZjY3ODM1OTBhNmE3Li5jNWM3ZmVlMTNj
ZTJlNzQwODg4ZGNiNzdlMmQ2NjllOWU4YjZkNmViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9zdHJpbmctaXRlcmF0b3JzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3N0cmluZy1pdGVyYXRv
cnMuanMKQEAgLTE4MSw4ICsxODEsNiBAQCBmdW5jdGlvbiBpbmNyZW1lbnQoaXRlcikgewogICAg
IGlmICghZGlkVGhyb3cpCiAgICAgICAgIHRocm93ICJFcnJvcjogbm8gZXJyb3IgdGhyb3duIjsK
ICAgICB2YXIgbWVzc2FnZSA9ICdUeXBlRXJyb3I6ICVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUu
bmV4dCByZXF1aXJlcyB0aGF0IHx0aGlzfCBiZSBhIFN0cmluZyBJdGVyYXRvciBpbnN0YW5jZSc7
Ci0gICAgaWYgKHByaW1pdGl2ZSA9PSBudWxsKQotICAgICAgICBtZXNzYWdlID0gJ1R5cGVFcnJv
cjogJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5v
dCBiZSBudWxsIG9yIHVuZGVmaW5lZCcKICAgICBpZiAoU3RyaW5nKGRpZFRocm93KSAhPT0gbWVz
c2FnZSkKICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgZXJyb3IgdGhyb3duOiAiICsgZGlkVGhy
b3c7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387491</attachid>
            <date>2020-01-12 14:56:26 -0800</date>
            <delta_ts>2020-01-12 18:01:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206144-20200112145626.patch</filename>
            <type>text/plain</type>
            <size>29508</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NzhiNDc1Y2RkY2VlOTkwOWQwMGU0NTE5NDc4ZDAwZjc2OGNiNGY0Li5iYzkwMDE0NzRmN2YyZWFk
YzQwNzA4OThhYTI2NjYwNzRkNzI3YTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAyMC0wMS0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBpbnRlcm5hbCBvYmplY3QgZmllbGQgbWVjaGFuaXNtIHRv
IGltcGxlbWVudCBKU1N0cmluZ0l0ZXJhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVzZXMgaW50ZXJuYWwgb2JqZWN0IGZpZWxk
IG1lY2hhbmlzbSB0byBpbXBsZW1lbnQgSlNTdHJpbmdJdGVyYXRvciwKKyAgICAgICAgYW5kIHdl
IGFsc28gcHV0IEpTU3RyaW5nSXRlcmF0b3IgaW50byBJc29TdWJzcGFjZS4KKworICAgICAgICAq
IGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlLmpzOgorICAgICAgICAobmV4dCk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljUmVnaXN0cnk6OkJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkpOgorICAgICAgICAqIGJ5dGVj
b2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRJc1N0cmluZ0l0ZXJhdG9yKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcDoKKyAgICAgICAgKEpTQzo6c3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkSW5kZXgpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX2dldFN0
cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlSW50cmlu
c2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfcHV0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKToK
KyAgICAgICAgKiBydW50aW1lL0pTQ2FzdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJ
dGVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmdJdGVyYXRvcjo6Y2xvbmUpOgorICAgICAgICAo
SlNDOjpKU1N0cmluZ0l0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6SlNT
dHJpbmdJdGVyYXRvcjo6aXRlcmF0ZWRWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU1R5cGUuY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBydW50aW1lL0pTVHlw
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6c3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMC0wMS0xMiAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJDb3JlXSBSZW9yZ2FuaXplIEpTVHlwZSBp
biBXZWJDb3JlIHRvIG9mZmVyIG1vcmUgYml0cyB0byBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAppbmRleCBiMGI3ODY4MThiNWM4NGI4NzQ1M2Jj
NmM1MmE1YmQzMmQ0MWUyM2IxLi4xNTRmZmY4NjAyMjExMGU2NjBlNWRkMWQ3OGUzZTg0ZjU2NWRh
MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5h
bWVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
CkBAIC00NiwxMSArNDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBKU0NfQ09NTU9OX0JZVEVD
T0RFX0lOVFJJTlNJQ19DT05TVEFOVFNfRUFDSF9OQU1FKG1hY3JvKSBcCiAgICAgbWFjcm8oYWRk
KSBcCiAgICAgbWFjcm8oYXBwbHlGdW5jdGlvbikgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JO
ZXh0SW5kZXgpIFwKLSAgICBtYWNybyhhcnJheUl0ZXJhdGlvbktpbmQpIFwKLSAgICBtYWNybyhh
cnJheUl0ZXJhdG9yTmV4dCkgXAotICAgIG1hY3JvKGFycmF5SXRlcmF0b3JJc0RvbmUpIFwKLSAg
ICBtYWNybyhhcnJheUl0ZXJhdG9yS2luZCkgXAogICAgIG1hY3JvKGFycmF5U3BlY2llc0NyZWF0
ZSkgXAogICAgIG1hY3JvKGFzc2VydCkgXAogICAgIG1hY3JvKGNhbGxGdW5jdGlvbikgXApAQCAt
NTksNyArNTQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhpc1ZpZXcpIFwKICAgICBt
YWNybyhpdGVyYXRlZE9iamVjdCkgXAogICAgIG1hY3JvKGl0ZXJhdGVkU3RyaW5nKSBcCi0gICAg
bWFjcm8oc3RyaW5nSXRlcmF0b3JOZXh0SW5kZXgpIFwKICAgICBtYWNybyhwcm9taXNlKSBcCiAg
ICAgbWFjcm8ocHJvbWlzZU9yQ2FwYWJpbGl0eSkgXAogICAgIG1hY3JvKE9iamVjdCkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ0l0ZXJhdG9yUHJv
dG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ0l0ZXJhdG9y
UHJvdG90eXBlLmpzCmluZGV4IGQxMjJkZThiMjcwY2NmOWE5NDUxNTBjNDFhMmQyMDBlYjhhYTk3
ZTguLjZkYmRiNzZkYjhhOGU5NjlmODJhZGVhNGU0OTEzNmFjYTAwOTY1NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5q
cworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nSXRlcmF0b3JQcm90
b3R5cGUuanMKQEAgLTI3LDIxICsyNywxOCBAQCBmdW5jdGlvbiBuZXh0KCkKIHsKICAgICAidXNl
IHN0cmljdCI7CiAKLSAgICBpZiAoQGlzVW5kZWZpbmVkT3JOdWxsKHRoaXMpKQotICAgICAgICBA
dGhyb3dUeXBlRXJyb3IoIiVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUubmV4dCByZXF1aXJlcyB0
aGF0IHx0aGlzfCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiKTsKLQotICAgIHZhciBwb3NpdGlv
biA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAic3RyaW5nSXRlcmF0b3JOZXh0SW5kZXgi
KTsKLSAgICBpZiAocG9zaXRpb24gPT09IEB1bmRlZmluZWQpCisgICAgaWYgKCFAaXNTdHJpbmdJ
dGVyYXRvcih0aGlzKSkKICAgICAgICAgQHRocm93VHlwZUVycm9yKCIlU3RyaW5nSXRlcmF0b3JQ
cm90b3R5cGUlLm5leHQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgYmUgYSBTdHJpbmcgSXRlcmF0b3Ig
aW5zdGFuY2UiKTsKIAogICAgIHZhciBkb25lID0gdHJ1ZTsKICAgICB2YXIgdmFsdWUgPSBAdW5k
ZWZpbmVkOwogCi0gICAgdmFyIHN0cmluZyA9IEBnZXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAi
aXRlcmF0ZWRTdHJpbmciKTsKLSAgICBpZiAoc3RyaW5nICE9PSBAdW5kZWZpbmVkKSB7CisgICAg
dmFyIHBvc2l0aW9uID0gQGdldFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCh0aGlzLCBAc3Ry
aW5nSXRlcmF0b3JGaWVsZEluZGV4KTsKKyAgICBpZiAocG9zaXRpb24gIT09IC0xKSB7CisgICAg
ICAgIHZhciBzdHJpbmcgPSBAZ2V0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKHRoaXMsIEBz
dHJpbmdJdGVyYXRvckZpZWxkSXRlcmF0ZWRTdHJpbmcpOwogICAgICAgICB2YXIgbGVuZ3RoID0g
c3RyaW5nLmxlbmd0aCA+Pj4gMDsKICAgICAgICAgaWYgKHBvc2l0aW9uID49IGxlbmd0aCkKLSAg
ICAgICAgICAgIEBwdXRCeUlkRGlyZWN0UHJpdmF0ZSh0aGlzLCAiaXRlcmF0ZWRTdHJpbmciLCBA
dW5kZWZpbmVkKTsKKyAgICAgICAgICAgIEBwdXRTdHJpbmdJdGVyYXRvckludGVybmFsRmllbGQo
dGhpcywgQHN0cmluZ0l0ZXJhdG9yRmllbGRJbmRleCwgLTEpOwogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIGRvbmUgPSBmYWxzZTsKIApAQCAtNTUsOCArNTIsNyBAQCBmdW5jdGlvbiBuZXh0
KCkKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc3Ry
aW5nW3Bvc2l0aW9uXSArIHN0cmluZ1twb3NpdGlvbiArIDFdOwogICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBAcHV0QnlJZERpcmVjdFByaXZhdGUodGhpcywgInN0cmluZ0l0ZXJhdG9yTmV4
dEluZGV4IiwgcG9zaXRpb24gKyB2YWx1ZS5sZW5ndGgpOworICAgICAgICAgICAgQHB1dFN0cmlu
Z0l0ZXJhdG9ySW50ZXJuYWxGaWVsZCh0aGlzLCBAc3RyaW5nSXRlcmF0b3JGaWVsZEluZGV4LCBw
b3NpdGlvbiArIHZhbHVlLmxlbmd0aCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1Jl
Z2lzdHJ5LmNwcAppbmRleCAwMGYxMzc5NDIxNmU3MDk5MTc3NTg2Y2YwMDc0OTYyMTU3Zjg3YTdh
Li4zMzM2OGVhY2FiODNjN2ZjNzRjNmZlMmJiNDcwMDEzMmJiZmZlNGY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2lj
UmVnaXN0cnkuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKICNpbmNsdWRlICJKU01vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIkpTUHJvbWlzZS5oIgor
I2luY2x1ZGUgIkpTU3RyaW5nSXRlcmF0b3IuaCIKICNpbmNsdWRlICJOb2Rlcy5oIgogI2luY2x1
ZGUgIlN0cm9uZ0lubGluZXMuaCIKIApAQCAtOTIsNiArOTMsOCBAQCBCeXRlY29kZUludHJpbnNp
Y1JlZ2lzdHJ5OjpCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5KFZNJiB2bSkKICAgICBtX2FycmF5
SXRlcmF0b3JGaWVsZEluZGV4LnNldChtX3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90
PihKU0FycmF5SXRlcmF0b3I6OkZpZWxkOjpJbmRleCkpKTsKICAgICBtX2FycmF5SXRlcmF0b3JG
aWVsZElzRG9uZS5zZXQobV92bSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNBcnJh
eUl0ZXJhdG9yOjpGaWVsZDo6SXNEb25lKSkpOwogICAgIG1fYXJyYXlJdGVyYXRvckZpZWxkS2lu
ZC5zZXQobV92bSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNBcnJheUl0ZXJhdG9y
OjpGaWVsZDo6S2luZCkpKTsKKyAgICBtX3N0cmluZ0l0ZXJhdG9yRmllbGRJbmRleC5zZXQobV92
bSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oSlNTdHJpbmdJdGVyYXRvcjo6RmllbGQ6
OkluZGV4KSkpOworICAgIG1fc3RyaW5nSXRlcmF0b3JGaWVsZEl0ZXJhdGVkU3RyaW5nLnNldCht
X3ZtLCBqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihKU1N0cmluZ0l0ZXJhdG9yOjpGaWVs
ZDo6SXRlcmF0ZWRTdHJpbmcpKSk7CiAgICAgbV9hc3luY0dlbmVyYXRvckZpZWxkU3VzcGVuZFJl
YXNvbi5zZXQobV92bSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQXN5bmNHZW5l
cmF0b3I6OkZpZWxkOjpTdXNwZW5kUmVhc29uKSkpOwogICAgIG1fYXN5bmNHZW5lcmF0b3JGaWVs
ZFF1ZXVlRmlyc3Quc2V0KG1fdm0sIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0Fz
eW5jR2VuZXJhdG9yOjpGaWVsZDo6UXVldWVGaXJzdCkpKTsKICAgICBtX2FzeW5jR2VuZXJhdG9y
RmllbGRRdWV1ZUxhc3Quc2V0KG1fdm0sIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0FzeW5jR2VuZXJhdG9yOjpGaWVsZDo6UXVldWVMYXN0KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgK
aW5kZXggYjVjNWY1MWFkMGNhYTRiMzRkMzg1MTUzOGZhNmU3NzJjNTNjOTNkZi4uZDI4YTNlM2E3
OGQxMGRhOGQ4ODliNzAzZTljYzZkN2YyZWIwZWE0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCkBA
IC00Niw2ICs0Niw3IEBAIGVudW0gY2xhc3MgTGlua1RpbWVDb25zdGFudCA6IGludDMyX3Q7CiAg
ICAgbWFjcm8oZ2V0R2VuZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKGdldEFzeW5j
R2VuZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKGdldEFycmF5SXRlcmF0b3JJbnRl
cm5hbEZpZWxkKSBcCisgICAgbWFjcm8oZ2V0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKSBc
CiAgICAgbWFjcm8oaWRXaXRoUHJvZmlsZSkgXAogICAgIG1hY3JvKGlzT2JqZWN0KSBcCiAgICAg
bWFjcm8oaXNKU0FycmF5KSBcCkBAIC01Nyw2ICs1OCw3IEBAIGVudW0gY2xhc3MgTGlua1RpbWVD
b25zdGFudCA6IGludDMyX3Q7CiAgICAgbWFjcm8oaXNSZWdFeHBPYmplY3QpIFwKICAgICBtYWNy
byhpc01hcCkgXAogICAgIG1hY3JvKGlzU2V0KSBcCisgICAgbWFjcm8oaXNTdHJpbmdJdGVyYXRv
cikgXAogICAgIG1hY3JvKGlzQXJyYXlJdGVyYXRvcikgXAogICAgIG1hY3JvKGlzVW5kZWZpbmVk
T3JOdWxsKSBcCiAgICAgbWFjcm8odGFpbENhbGxGb3J3YXJkQXJndW1lbnRzKSBcCkBAIC03MSw2
ICs3Myw3IEBAIGVudW0gY2xhc3MgTGlua1RpbWVDb25zdGFudCA6IGludDMyX3Q7CiAgICAgbWFj
cm8ocHV0R2VuZXJhdG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKHB1dEFzeW5jR2VuZXJh
dG9ySW50ZXJuYWxGaWVsZCkgXAogICAgIG1hY3JvKHB1dEFycmF5SXRlcmF0b3JJbnRlcm5hbEZp
ZWxkKSBcCisgICAgbWFjcm8ocHV0U3RyaW5nSXRlcmF0b3JJbnRlcm5hbEZpZWxkKSBcCiAgICAg
bWFjcm8odG9OdW1iZXIpIFwKICAgICBtYWNybyh0b1N0cmluZykgXAogICAgIG1hY3JvKHRvT2Jq
ZWN0KSBcCkBAIC0xMjIsNiArMTI1LDggQEAgZW51bSBjbGFzcyBMaW5rVGltZUNvbnN0YW50IDog
aW50MzJfdDsKICAgICBtYWNybyhhcnJheUl0ZXJhdG9yRmllbGRJc0RvbmUpIFwKICAgICBtYWNy
byhhcnJheUl0ZXJhdG9yRmllbGRJdGVyYXRlZE9iamVjdCkgXAogICAgIG1hY3JvKGFycmF5SXRl
cmF0b3JGaWVsZEtpbmQpIFwKKyAgICBtYWNybyhzdHJpbmdJdGVyYXRvckZpZWxkSW5kZXgpIFwK
KyAgICBtYWNybyhzdHJpbmdJdGVyYXRvckZpZWxkSXRlcmF0ZWRTdHJpbmcpIFwKICAgICBtYWNy
byhhc3luY0dlbmVyYXRvckZpZWxkU3VzcGVuZFJlYXNvbikgXAogICAgIG1hY3JvKGFzeW5jR2Vu
ZXJhdG9yRmllbGRRdWV1ZUZpcnN0KSBcCiAgICAgbWFjcm8oYXN5bmNHZW5lcmF0b3JGaWVsZFF1
ZXVlTGFzdCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDYyZDVjYmIwMDVjMTNlNzM3YTQ3MjhhZTU3NDY0
ZDgxNTIzODQ0NmYuLmE1ZjM2NmJkYWZjODFmZGQzYmEzMmVjODBiYWNkMDUwZWRkMWZjY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmgKQEAgLTg3OCw2ICs4NzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdElzUmVnRXhwT2JqZWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogc3JjKSB7IHJldHVybiBlbWl0SXNDZWxsV2l0aFR5cGUoZHN0LCBzcmMsIFJlZ0V4cE9iamVj
dFR5cGUpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc01hcChSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdElzQ2VsbFdpdGhUeXBlKGRzdCwgc3JjLCBK
U01hcFR5cGUpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc1NldChSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdElzQ2VsbFdpdGhUeXBlKGRzdCwgc3Jj
LCBKU1NldFR5cGUpOyB9CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc1N0cmluZ0l0ZXJhdG9y
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0SXNDZWxsV2l0
aFR5cGUoZHN0LCBzcmMsIEpTU3RyaW5nSXRlcmF0b3JUeXBlKTsgfQogICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0SXNBcnJheUl0ZXJhdG9yKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3Jj
KSB7IHJldHVybiBlbWl0SXNDZWxsV2l0aFR5cGUoZHN0LCBzcmMsIEpTQXJyYXlJdGVyYXRvclR5
cGUpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc09iamVjdChSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIHNyYyk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc051bWJlcihSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggOGM4MmY1NzNjZGE2ZTNj
YzJmYTZiODhhZGY0MTUzYzhjOGE3OTg3YS4uZWE5ODI2ZmYyYThmNjU3ZTA2Yjc1MGY3MGRmODFi
N2VlNzUyOTIyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkpTR2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0ltbXV0YWJs
ZUJ1dHRlcmZseS5oIgorI2luY2x1ZGUgIkpTU3RyaW5nSXRlcmF0b3IuaCIKICNpbmNsdWRlICJM
YWJlbFNjb3BlLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKQEAg
LTEwNzksNiArMTA4MCwxNyBAQCBzdGF0aWMgSlNBcnJheUl0ZXJhdG9yOjpGaWVsZCBhcnJheUl0
ZXJhdG9ySW50ZXJuYWxGaWVsZEluZGV4KEJ5dGVjb2RlSW50cmluc2ljTgogICAgIHJldHVybiBK
U0FycmF5SXRlcmF0b3I6OkZpZWxkOjpJbmRleDsKIH0KIAorc3RhdGljIEpTU3RyaW5nSXRlcmF0
b3I6OkZpZWxkIHN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZEluZGV4KEJ5dGVjb2RlSW50cmlu
c2ljTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZS0+ZW50cnkoKS50eXBlKCkgPT0gQnl0
ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTo6VHlwZTo6RW1pdHRlcik7CisgICAgaWYgKG5vZGUtPmVu
dHJ5KCkuZW1pdHRlcigpID09ICZCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2lj
X3N0cmluZ0l0ZXJhdG9yRmllbGRJbmRleCkKKyAgICAgICAgcmV0dXJuIEpTU3RyaW5nSXRlcmF0
b3I6OkZpZWxkOjpJbmRleDsKKyAgICBpZiAobm9kZS0+ZW50cnkoKS5lbWl0dGVyKCkgPT0gJkJ5
dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfc3RyaW5nSXRlcmF0b3JGaWVsZEl0
ZXJhdGVkU3RyaW5nKQorICAgICAgICByZXR1cm4gSlNTdHJpbmdJdGVyYXRvcjo6RmllbGQ6Okl0
ZXJhdGVkU3RyaW5nOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIEpTU3RyaW5nSXRlcmF0b3I6OkZpZWxkOjpJbmRleDsKK30KKwogUmVnaXN0ZXJJRCogQnl0
ZWNvZGVJbnRyaW5zaWNOb2RlOjplbWl0X2ludHJpbnNpY19nZXRQcm9taXNlSW50ZXJuYWxGaWVs
ZChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAg
QXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9IG1fYXJncy0+bV9saXN0Tm9kZTsKQEAgLTExMzEsNiAr
MTE0MywxOSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmlu
c2ljX2dldEFycmF5SXRlcmF0b3JJbnRlcm5hbEZpZWxkKAogICAgIHJldHVybiBnZW5lcmF0b3Iu
ZW1pdEdldEludGVybmFsRmllbGQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwgYmFz
ZS5nZXQoKSwgaW5kZXgpOwogfQogCitSZWdpc3RlcklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6
OmVtaXRfaW50cmluc2ljX2dldFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZChCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgQXJndW1lbnRMaXN0
Tm9kZSogbm9kZSA9IG1fYXJncy0+bV9saXN0Tm9kZTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
YmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShub2RlKTsKKyAgICBub2RlID0gbm9kZS0+bV9uZXh0
OworICAgIFJFTEVBU0VfQVNTRVJUKG5vZGUtPm1fZXhwci0+aXNCeXRlY29kZUludHJpbnNpY05v
ZGUoKSk7CisgICAgdW5zaWduZWQgaW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RyaW5n
SXRlcmF0b3JJbnRlcm5hbEZpZWxkSW5kZXgoc3RhdGljX2Nhc3Q8Qnl0ZWNvZGVJbnRyaW5zaWNO
b2RlKj4obm9kZS0+bV9leHByKSkpOworICAgIEFTU0VSVChpbmRleCA8IEpTU3RyaW5nSXRlcmF0
b3I6Om51bWJlck9mSW50ZXJuYWxGaWVsZHMpOworICAgIEFTU0VSVCghbm9kZS0+bV9uZXh0KTsK
KworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEdldEludGVybmFsRmllbGQoZ2VuZXJhdG9yLmZp
bmFsRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgaW5kZXgpOworfQorCiBSZWdpc3RlcklE
KiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmluc2ljX2FyZ3VtZW50KEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKICAgICBBcmd1bWVudExp
c3ROb2RlKiBub2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlOwpAQCAtMTI2NCw2ICsxMjg5LDIyIEBA
IFJlZ2lzdGVySUQqIEJ5dGVjb2RlSW50cmluc2ljTm9kZTo6ZW1pdF9pbnRyaW5zaWNfcHV0QXJy
YXlJdGVyYXRvckludGVybmFsRmllbGQoCiAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwg
Z2VuZXJhdG9yLmVtaXRQdXRJbnRlcm5hbEZpZWxkKGJhc2UuZ2V0KCksIGluZGV4LCB2YWx1ZS5n
ZXQoKSkpOwogfQogCitSZWdpc3RlcklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50
cmluc2ljX3B1dFN0cmluZ0l0ZXJhdG9ySW50ZXJuYWxGaWVsZChCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgQXJndW1lbnRMaXN0Tm9kZSogbm9k
ZSA9IG1fYXJncy0+bV9saXN0Tm9kZTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdl
bmVyYXRvci5lbWl0Tm9kZShub2RlKTsKKyAgICBub2RlID0gbm9kZS0+bV9uZXh0OworICAgIFJF
TEVBU0VfQVNTRVJUKG5vZGUtPm1fZXhwci0+aXNCeXRlY29kZUludHJpbnNpY05vZGUoKSk7Cisg
ICAgdW5zaWduZWQgaW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RyaW5nSXRlcmF0b3JJ
bnRlcm5hbEZpZWxkSW5kZXgoc3RhdGljX2Nhc3Q8Qnl0ZWNvZGVJbnRyaW5zaWNOb2RlKj4obm9k
ZS0+bV9leHByKSkpOworICAgIEFTU0VSVChpbmRleCA8IEpTU3RyaW5nSXRlcmF0b3I6Om51bWJl
ck9mSW50ZXJuYWxGaWVsZHMpOworICAgIG5vZGUgPSBub2RlLT5tX25leHQ7CisgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IHZhbHVlID0gZ2VuZXJhdG9yLmVtaXROb2RlKG5vZGUpOworCisgICAgQVNT
RVJUKCFub2RlLT5tX25leHQpOworCisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgZ2Vu
ZXJhdG9yLmVtaXRQdXRJbnRlcm5hbEZpZWxkKGJhc2UuZ2V0KCksIGluZGV4LCB2YWx1ZS5nZXQo
KSkpOworfQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUludHJpbnNpY05vZGU6OmVtaXRfaW50cmlu
c2ljX3RhaWxDYWxsRm9yd2FyZEFyZ3VtZW50cyhCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgQXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9IG1fYXJn
cy0+bV9saXN0Tm9kZTsKQEAgLTEzOTcsNiArMTQzOCw3IEBAIENSRUFURV9JTlRSSU5TSUNfRk9S
X0JSQU5EX0NIRUNLKGlzUHJvbWlzZSwgSXNQcm9taXNlKQogQ1JFQVRFX0lOVFJJTlNJQ19GT1Jf
QlJBTkRfQ0hFQ0soaXNSZWdFeHBPYmplY3QsIElzUmVnRXhwT2JqZWN0KQogQ1JFQVRFX0lOVFJJ
TlNJQ19GT1JfQlJBTkRfQ0hFQ0soaXNNYXAsIElzTWFwKQogQ1JFQVRFX0lOVFJJTlNJQ19GT1Jf
QlJBTkRfQ0hFQ0soaXNTZXQsIElzU2V0KQorQ1JFQVRFX0lOVFJJTlNJQ19GT1JfQlJBTkRfQ0hF
Q0soaXNTdHJpbmdJdGVyYXRvciwgSXNTdHJpbmdJdGVyYXRvcikKIENSRUFURV9JTlRSSU5TSUNf
Rk9SX0JSQU5EX0NIRUNLKGlzQXJyYXlJdGVyYXRvciwgSXNBcnJheUl0ZXJhdG9yKQogQ1JFQVRF
X0lOVFJJTlNJQ19GT1JfQlJBTkRfQ0hFQ0soaXNVbmRlZmluZWRPck51bGwsIElzVW5kZWZpbmVk
T3JOdWxsKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
SW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SlNJbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IDNmMTk0NzQzYjkwNGNhOTM3OWE0ZWM1OGNi
ZTU0OWE3MTA5OTUyN2MuLmI3OGE5OTc2MWRmOTliMGJiYTZkMDI3MDM2NThhNjIzZDY3N2UyMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNj
cmlwdEhvc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmpl
Y3RlZFNjcmlwdEhvc3QuY3BwCkBAIC00MzEsNyArNDMxLDcgQEAgSlNWYWx1ZSBKU0luamVjdGVk
U2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2Jh
bE9iamVjdCwgbnVsbHB0ciwgMSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IEpTVmFsdWUoKSk7CiAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICAgICAgYXJyYXktPnB1
dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgrKywgY29uc3RydWN0SW50ZXJuYWxQcm9w
ZXJ0eShnbG9iYWxPYmplY3QsICJzdHJpbmciLCBzdHJpbmdJdGVyYXRvci0+aXRlcmF0ZWRWYWx1
ZShnbG9iYWxPYmplY3QpKSk7CisgICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChnbG9iYWxP
YmplY3QsIGluZGV4KyssIGNvbnN0cnVjdEludGVybmFsUHJvcGVydHkoZ2xvYmFsT2JqZWN0LCAi
c3RyaW5nIiwgc3RyaW5nSXRlcmF0b3ItPml0ZXJhdGVkU3RyaW5nKCkpKTsKICAgICAgICAgcmV0
dXJuIGFycmF5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDYXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaApp
bmRleCBmOGYzYTRmMDUxZTA4Yjg3ZWJhNmNkOWNmZDg2M2M3YzI2OGU4NzJhLi42NzNlMDFjMjJl
NWZlMDZlMmZkZTFkMmI1MjVhNjA3OTA3OWFjYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Nhc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Nhc3QuaApAQCAtNDgsNiArNDgsOCBAQCBpbmxpbmUgVG8ganNDYXN0KEpTVmFsdWUg
ZnJvbSkKIC8vIFNwZWNpZmljIHR5cGUgb3ZlcmxvYWRzLgogI2RlZmluZSBGT1JfRUFDSF9KU19E
WU5BTUlDX0NBU1RfSlNfVFlQRV9PVkVSTE9BRChtYWNybykgXAogICAgIG1hY3JvKEpTSW1tdXRh
YmxlQnV0dGVyZmx5LCBKU1R5cGU6OkpTSW1tdXRhYmxlQnV0dGVyZmx5VHlwZSwgSlNUeXBlOjpK
U0ltbXV0YWJsZUJ1dHRlcmZseVR5cGUpIFwKKyAgICBtYWNybyhKU0FycmF5SXRlcmF0b3IsIEpT
VHlwZTo6SlNBcnJheUl0ZXJhdG9yVHlwZSwgSlNUeXBlOjpKU0FycmF5SXRlcmF0b3JUeXBlKSBc
CisgICAgbWFjcm8oSlNTdHJpbmdJdGVyYXRvciwgSlNUeXBlOjpKU1N0cmluZ0l0ZXJhdG9yVHlw
ZSwgSlNUeXBlOjpKU1N0cmluZ0l0ZXJhdG9yVHlwZSkgXAogICAgIG1hY3JvKEpTT2JqZWN0LCBG
aXJzdE9iamVjdFR5cGUsIExhc3RPYmplY3RUeXBlKSBcCiAgICAgbWFjcm8oSlNGaW5hbE9iamVj
dCwgSlNUeXBlOjpGaW5hbE9iamVjdFR5cGUsIEpTVHlwZTo6RmluYWxPYmplY3RUeXBlKSBcCiAg
ICAgbWFjcm8oSlNGdW5jdGlvbiwgSlNUeXBlOjpKU0Z1bmN0aW9uVHlwZSwgSlNUeXBlOjpKU0Z1
bmN0aW9uVHlwZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmdJdGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0
cmluZ0l0ZXJhdG9yLmNwcAppbmRleCAzNTFkNDcwNzkxYjdmOWJmM2QxMDJiOGI4MDY3NDhlZjg3
ZGQyMTZhLi4xNmJmNWRkMTM2MjU2MTIwNjY0ZTk4Zjg3MGYwZjIwNmEyM2ExZjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0l0ZXJhdG9yLmNwcApA
QCAtMjcsMzUgKzI3LDM1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNTdHJp
bmdJdGVyYXRvci5oIgogCi0jaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGxJbmxpbmVzLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNTdHJpbmdJdGVyYXRvcjo6
c19pbmZvID0geyAiU3RyaW5nIEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1N0cmluZ0l0ZXJhdG9yKSB9OwogCi12b2lkIEpT
U3RyaW5nSXRlcmF0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBK
U1N0cmluZyogaXRlcmF0ZWRTdHJpbmcpCit2b2lkIEpTU3RyaW5nSXRlcmF0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNTdHJpbmcqIGl0ZXJhdGVkU3RyaW5nKQogewogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwotICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuaXRlcmF0ZWRT
dHJpbmdQcml2YXRlTmFtZSgpLCBpdGVyYXRlZFN0cmluZyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zdHJpbmdJdGVyYXRvck5leHRJbmRleFBy
aXZhdGVOYW1lKCksIGpzTnVtYmVyKDApKTsKLX0KLQotSlNWYWx1ZSBKU1N0cmluZ0l0ZXJhdG9y
OjppdGVyYXRlZFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGdldERpcmVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+dm0o
KS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pdGVyYXRlZFN0cmluZ1ByaXZhdGVOYW1l
KCkpOworICAgIGludGVybmFsRmllbGQoRmllbGQ6OkluZGV4KS5zZXQodm0sIHRoaXMsIGpzTnVt
YmVyKDApKTsKKyAgICBpbnRlcm5hbEZpZWxkKEZpZWxkOjpJdGVyYXRlZFN0cmluZykuc2V0KHZt
LCB0aGlzLCBpdGVyYXRlZFN0cmluZyk7CiB9CiAKIEpTU3RyaW5nSXRlcmF0b3IqIEpTU3RyaW5n
SXRlcmF0b3I6OmNsb25lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIEpTVmFsdWUgaXRlcmF0ZWRTdHJpbmcgPSBn
ZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLml0ZXJhdGVkU3Ry
aW5nUHJpdmF0ZU5hbWUoKSk7Ci0gICAgSlNWYWx1ZSBuZXh0SW5kZXggPSBnZXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4
UHJpdmF0ZU5hbWUoKSk7Ci0KLSAgICBhdXRvIGNsb25lID0gSlNTdHJpbmdJdGVyYXRvcjo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5zdHJpbmdJdGVyYXRvclN0cnVjdHVyZSgp
LCBhc1N0cmluZyhpdGVyYXRlZFN0cmluZykpOwotICAgIGNsb25lLT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN0cmluZ0l0ZXJhdG9yTmV4dEluZGV4UHJp
dmF0ZU5hbWUoKSwgbmV4dEluZGV4KTsKKyAgICBKU1N0cmluZyogaXRlcmF0ZWRTdHJpbmcgPSBq
c0Nhc3Q8SlNTdHJpbmcqPih0aGlzLT5pdGVyYXRlZFN0cmluZygpKTsKKyAgICBhdXRvKiBjbG9u
ZSA9IEpTU3RyaW5nSXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5zdHJpbmdJdGVy
YXRvclN0cnVjdHVyZSgpLCBpdGVyYXRlZFN0cmluZyk7CisgICAgY2xvbmUtPmludGVybmFsRmll
bGQoRmllbGQ6OkluZGV4KS5zZXQodm0sIGNsb25lLCB0aGlzLT5pbmRleCgpKTsKICAgICByZXR1
cm4gY2xvbmU7CiB9CiAKK3ZvaWQgSlNTdHJpbmdJdGVyYXRvcjo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNTdHJpbmdJdGVyYXRvcio+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRo
aXNPYmplY3QsIHZpc2l0b3IpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuaAppbmRleCBiZmQ5NzE2
ZjliZmQxMzM4N2VhZGU0ZDczNTZhZTU0NzRlZWYwNjc4Li5iNDhiN2E4Nzg5M2I2YzA5NzU1ZDNh
ODkzM2M4ZWJmZTU4N2U1MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZ0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmdJdGVyYXRvci5oCkBAIC0yOSwzNSArMjksNjUgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWNsYXNzIEpTU3RyaW5nSXRlcmF0b3IgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CitjbGFzcyBKU1N0cmluZ0l0ZXJhdG9yIGZpbmFsIDogcHVibGljIEpTSW50ZXJuYWxG
aWVsZE9iamVjdEltcGw8Mj4gewogcHVibGljOgotICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVj
dCBCYXNlOworICAgIHVzaW5nIEJhc2UgPSBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsPDI+Owor
CisgICAgZW51bSBjbGFzcyBGaWVsZCA6IHVpbnQ4X3QgeworICAgICAgICBJbmRleCA9IDAsCisg
ICAgICAgIEl0ZXJhdGVkU3RyaW5nLAorICAgIH07CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZP
OwogCisgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZShDaGVja2VkPHNpemVfdD4gaW5s
aW5lQ2FwYWNpdHkpCisgICAgeworICAgICAgICBBU1NFUlRfVU5VU0VEKGlubGluZUNhcGFjaXR5
LCBpbmxpbmVDYXBhY2l0eSA9PSAwVSk7CisgICAgICAgIHJldHVybiBzaXplb2YoSlNTdHJpbmdJ
dGVyYXRvcik7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNw
YWNlQWNjZXNzIG1vZGU+CisgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYg
dm0pCisgICAgeworICAgICAgICByZXR1cm4gdm0uc3RyaW5nSXRlcmF0b3JTcGFjZTxtb2RlPigp
OworICAgIH0KKworICAgIHN0YXRpYyBzdGQ6OmFycmF5PEpTVmFsdWUsIG51bWJlck9mSW50ZXJu
YWxGaWVsZHM+IGluaXRpYWxWYWx1ZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgeworICAg
ICAgICAgICAganNOdW1iZXIoMCksCisgICAgICAgICAgICBqc051bGwoKSwKKyAgICAgICAgfSB9
OworICAgIH0KKworICAgIGNvbnN0IFdyaXRlQmFycmllcjxVbmtub3duPiYgaW50ZXJuYWxGaWVs
ZChGaWVsZCBmaWVsZCkgY29uc3QgeyByZXR1cm4gQmFzZTo6aW50ZXJuYWxGaWVsZChzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oZmllbGQpKTsgfQorICAgIFdyaXRlQmFycmllcjxVbmtub3duPiYgaW50
ZXJuYWxGaWVsZChGaWVsZCBmaWVsZCkgeyByZXR1cm4gQmFzZTo6aW50ZXJuYWxGaWVsZChzdGF0
aWNfY2FzdDx1aW50MzJfdD4oZmllbGQpKTsgfQorCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTU3RyaW5nSXRlcmF0b3JUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAgc3RhdGljIEpTU3RyaW5nSXRlcmF0
b3IqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNTdHJpbmcqIGl0ZXJhdGVkU3RyaW5nKQorICAgIHN0YXRpYyBKU1N0cmluZ0l0ZXJh
dG9yKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIGl0ZXJh
dGVkU3RyaW5nKQogICAgIHsKLSAgICAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsK
ICAgICAgICAgSlNTdHJpbmdJdGVyYXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxKU1N0cmluZ0l0ZXJhdG9yPih2bS5oZWFwKSkgSlNTdHJpbmdJdGVyYXRvcih2bSwg
c3RydWN0dXJlKTsKLSAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBzdHJ1Y3R1
cmUtPmdsb2JhbE9iamVjdCgpLCBpdGVyYXRlZFN0cmluZyk7CisgICAgICAgIGluc3RhbmNlLT5m
aW5pc2hDcmVhdGlvbih2bSwgaXRlcmF0ZWRTdHJpbmcpOwogICAgICAgICByZXR1cm4gaW5zdGFu
Y2U7CiAgICAgfQogCi0gICAgSlNWYWx1ZSBpdGVyYXRlZFZhbHVlKEpTR2xvYmFsT2JqZWN0Kikg
Y29uc3Q7CisgICAgSlNWYWx1ZSBpdGVyYXRlZFN0cmluZygpIGNvbnN0IHsgcmV0dXJuIGludGVy
bmFsRmllbGQoRmllbGQ6Okl0ZXJhdGVkU3RyaW5nKS5nZXQoKTsgfQorICAgIEpTVmFsdWUgaW5k
ZXgoKSBjb25zdCB7IHJldHVybiBpbnRlcm5hbEZpZWxkKEZpZWxkOjpJbmRleCkuZ2V0KCk7IH0K
ICAgICBKU1N0cmluZ0l0ZXJhdG9yKiBjbG9uZShKU0dsb2JhbE9iamVjdCopOwogCisgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOworCiBwcml2YXRl
OgogICAgIEpTU3RyaW5nSXRlcmF0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKiBpdGVyYXRlZFN0cmlu
Zyk7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTU3RyaW5nKiBpdGVyYXRlZFN0cmlu
Zyk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGUuY3BwCmluZGV4IDEwMzhkYzUwNDY0YzliZWUxY2ZjOTYwOWMwNDZkMzMyMzY3OWVi
MTMuLmIwMmIzNDdkNmE1MDA0NTUzYjU5MmVjNjRiNGMxNDRlMzA4ZGQwY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmNwcApAQCAtMTAwLDYgKzEwMCw3IEBAIHZvaWQg
cHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OkpTVHlwZSB0eXBlKQogICAgIENB
U0UoSlNHZW5lcmF0b3JUeXBlKQogICAgIENBU0UoSlNBc3luY0dlbmVyYXRvclR5cGUpCiAgICAg
Q0FTRShKU0FycmF5SXRlcmF0b3JUeXBlKQorICAgIENBU0UoSlNTdHJpbmdJdGVyYXRvclR5cGUp
CiAgICAgQ0FTRShKU1Byb21pc2VUeXBlKQogICAgIENBU0UoSlNNYXBUeXBlKQogICAgIENBU0Uo
SlNTZXRUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCAyZDFk
MzA4Nzg5MGQzMGY2YmE0ZjgyYjdmYzRlNTczMjM1NzMxNWQxLi4xNDc5OTI1ZDZmNWZhZTYzZTVk
NzU3ZWEyMzBlMmNkYjRlZDQ4MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGUuaApAQCAtMTExLDYgKzExMSw3IEBAIGVudW0gSlNUeXBlIDogdWludDhfdCB7CiAgICAgSlNH
ZW5lcmF0b3JUeXBlLAogICAgIEpTQXN5bmNHZW5lcmF0b3JUeXBlLAogICAgIEpTQXJyYXlJdGVy
YXRvclR5cGUsCisgICAgSlNTdHJpbmdJdGVyYXRvclR5cGUsCiAgICAgSlNQcm9taXNlVHlwZSwK
ICAgICBKU01hcFR5cGUsCiAgICAgSlNTZXRUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggNDcwYWFjMTVmM2Y4N2UyMWI5
MmNjMWE4NDM4NjQ0OTkwNDhlYWE4Yi4uNTNiODc3OGI3Njc5NzIyMGUzZTYyZDNlNGUzZjE4NGMz
YzNlM2U0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwCkBAIC0xODYwLDcgKzE4NjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsK
ICAgICBKU1N0cmluZyogc3RyaW5nID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1N0cmluZ0l0ZXJhdG9yOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnN0cmluZ0l0ZXJhdG9yU3RydWN0dXJlKCksIHN0cmluZykpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNTdHJpbmdJdGVyYXRvcjo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QtPnN0cmluZ0l0ZXJhdG9yU3RydWN0dXJlKCksIHN0cmluZykpOwogfQogCiBl
bnVtIGNsYXNzIE5vcm1hbGl6YXRpb25Gb3JtIHsgTkZDLCBORkQsIE5GS0MsIE5GS0QgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBhYzIzNGRkNjlmYTZlYzVmN2EwMTNk
NTA2Y2M5MGJlZWM4Njg1N2JmLi40NzUyYWEwODdkZTJiMDYwZjBiY2FlMDJmMGE1MmM4YmY3ZTBk
OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xMTYsNiArMTE2LDcg
QEAKICNpbmNsdWRlICJKU1NldC5oIgogI2luY2x1ZGUgIkpTU2V0SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJKU1NvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJKU1N0cmluZ0l0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiSlNUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJKU1RvV2FzbUlD
Q2FsbGVlLmgiCiAjaW5jbHVkZSAiSlNUeXBlZEFycmF5cy5oIgpAQCAtMTQ0MSw2ICsxNDQyLDcg
QEAgdm9pZCBWTTo6ZW5zdXJlU2hhZG93Q2hpY2tlbigpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coYXBpR2xvYmFsT2JqZWN0U3BhY2UsIGFwaUdsb2JhbE9iamVjdEhl
YXBDZWxsVHlwZS5nZXQoKSwgSlNBUElHbG9iYWxPYmplY3QpCiBEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSX1NMT1coYXBpVmFsdWVXcmFwcGVyU3BhY2UsIGNlbGxIZWFwQ2VsbFR5
cGUuZ2V0KCksIEpTQVBJVmFsdWVXcmFwcGVyKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUl9TTE9XKGFycmF5QnVmZmVyU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpT
QXJyYXlCdWZmZXIpCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYXJy
YXlJdGVyYXRvclNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0FycmF5SXRlcmF0b3Ip
CiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coYXN5bmNHZW5lcmF0b3JT
cGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNBc3luY0dlbmVyYXRvcikKIERZTkFNSUNf
SVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhiaWdJbnRPYmplY3RTcGFjZSwgY2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgQmlnSW50T2JqZWN0KQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUl9TTE9XKGJvb2xlYW5PYmplY3RTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgQm9vbGVhbk9iamVjdCkKQEAgLTE0NTcsNyArMTQ1OSw2IEBAIERZTkFNSUNfSVNPX1NVQlNQ
QUNFX0RFRklORV9NRU1CRVJfU0xPVyhmbG9hdDMyQXJyYXlTcGFjZSwgY2VsbEhlYXBDZWxsVHlw
ZS5nZXQoCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1coZmxvYXQ2NEFy
cmF5U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTRmxvYXQ2NEFycmF5KQogRFlOQU1J
Q19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGZ1bmN0aW9uUmFyZURhdGFTcGFjZSwg
ZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgRnVuY3Rpb25SYXJlRGF0YSkKIERZ
TkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhnZW5lcmF0b3JTcGFjZSwgY2Vs
bEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNHZW5lcmF0b3IpCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSX1NMT1coYXJyYXlJdGVyYXRvclNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdl
dCgpLCBKU0FycmF5SXRlcmF0b3IpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVS
X1NMT1coZ2xvYmFsT2JqZWN0U3BhY2UsIGdsb2JhbE9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNHbG9iYWxPYmplY3QpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1co
anNNb2R1bGVSZWNvcmRTcGFjZSwganNNb2R1bGVSZWNvcmRIZWFwQ2VsbFR5cGUuZ2V0KCksIEpT
TW9kdWxlUmVjb3JkKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKGlu
dDhBcnJheVNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU0ludDhBcnJheSkKQEAgLTE0
NzcsNiArMTQ3OCw3IEBAIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhz
ZXRCdWNrZXRTcGFjZSwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwKIERZTkFNSUNfSVNPX1NVQlNQ
QUNFX0RFRklORV9NRU1CRVJfU0xPVyhzZXRJdGVyYXRvclNwYWNlLCBjZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBKU1NldEl0ZXJhdG9yKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
Ul9TTE9XKHNldFNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1NldCkKIERZTkFNSUNf
SVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzdHJpY3RFdmFsQWN0aXZhdGlvblNwYWNl
LCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBTdHJpY3RFdmFsQWN0aXZhdGlvbikKK0RZTkFNSUNf
SVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhzdHJpbmdJdGVyYXRvclNwYWNlLCBjZWxs
SGVhcENlbGxUeXBlLmdldCgpLCBKU1N0cmluZ0l0ZXJhdG9yKQogRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUl9TTE9XKHNvdXJjZUNvZGVTcGFjZSwgZGVzdHJ1Y3RpYmxlQ2VsbEhl
YXBDZWxsVHlwZS5nZXQoKSwgSlNTb3VyY2VDb2RlKQogRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUl9TTE9XKHN5bWJvbFNwYWNlLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBl
LmdldCgpLCBTeW1ib2wpCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1co
c3ltYm9sT2JqZWN0U3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFN5bWJvbE9iamVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IDgyNDc2OWM5YTcxNDIzZDQxNzYwOTFl
Y2ZhZTNiNjA2YzNjYTVjZDYuLjljMmExNmNmOTFmNWM0YWJiZjFmYWFlY2M3OTYxNjAzYmEwYjE0
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNDkzLDYgKzQ5Myw3IEBAIGNs
YXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxp
bmtlZExpc3ROb2RlPFZNPiB7CiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJF
UihhcGlHbG9iYWxPYmplY3RTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVf
TUVNQkVSKGFwaVZhbHVlV3JhcHBlclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVIoYXJyYXlCdWZmZXJTcGFjZSkKKyAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9E
RUZJTkVfTUVNQkVSKGFycmF5SXRlcmF0b3JTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSKGFzeW5jR2VuZXJhdG9yU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUihiaWdJbnRPYmplY3RTcGFjZSkKICAgICBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSKGJvb2xlYW5PYmplY3RTcGFjZSkKQEAgLTUwOSw3ICs1MTAs
NiBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBE
b3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklO
RV9NRU1CRVIoZmxvYXQ2NEFycmF5U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVG
SU5FX01FTUJFUihmdW5jdGlvblJhcmVEYXRhU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUihnZW5lcmF0b3JTcGFjZSkKLSAgICBEWU5BTUlDX0lTT19TVUJTUEFD
RV9ERUZJTkVfTUVNQkVSKGFycmF5SXRlcmF0b3JTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJT
UEFDRV9ERUZJTkVfTUVNQkVSKGdsb2JhbE9iamVjdFNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NV
QlNQQUNFX0RFRklORV9NRU1CRVIoaW50OEFycmF5U3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUihpbnQxNkFycmF5U3BhY2UpCkBAIC01MjksNiArNTI5LDcgQEAg
Y2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5
TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVN
QkVSKHNldEl0ZXJhdG9yU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01F
TUJFUihzZXRTcGFjZSkKICAgICBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSKHN0
cmljdEV2YWxBY3RpdmF0aW9uU3BhY2UpCisgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUihzdHJpbmdJdGVyYXRvclNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVIoc291cmNlQ29kZVNwYWNlKQogICAgIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVIoc3ltYm9sU3BhY2UpCiAgICAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5F
X01FTUJFUihzeW1ib2xPYmplY3RTcGFjZSkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9n
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGM2NDdhMjg0ZDU1ODNlMzQyNjRiNGM1YjZiZWQ5
MDNhYmE4Mjc4My4uZDg2NDI5Yzg0NWNmYmRmYmQ5YWVkNTEwYTYyNDZlNTNkYWI2MzUzYiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wMS0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBpbnRlcm5hbCBvYmplY3QgZmllbGQgbWVjaGFuaXNtIHRv
IGltcGxlbWVudCBKU1N0cmluZ0l0ZXJhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYxNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9zdHJpbmctaXRlcmF0b3JzLmpzOgorICAgICAg
ICAqIHN0cmVzcy90YWlsQ2FsbEZvcndhcmRBcmd1bWVudHMuanM6CisgICAgICAgIChwdXRGdW5j
VG9Qcml2YXRlTmFtZS5jcmVhdGVCdWlsdGluKToKKyAgICAgICAgKGNyZWF0ZVRhaWxDYWxsRm9y
d2FyZGluZ0Z1bmNXaXRoKToKKwogMjAyMC0wMS0xMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEZsdXNoIG9sZCB0YWJsZXMgaW4gRW5kIHBoYXNl
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctaXRlcmF0b3JzLmpzIGIvSlNUZXN0
cy9zdHJlc3Mvc3RyaW5nLWl0ZXJhdG9ycy5qcwppbmRleCBmNjZiNjIwMDMxMzJmMTZhYTU4YzEw
OTIxZmE4ZjY3ODM1OTBhNmE3Li5jNWM3ZmVlMTNjZTJlNzQwODg4ZGNiNzdlMmQ2NjllOWU4YjZk
NmViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zdHJpbmctaXRlcmF0b3JzLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3N0cmluZy1pdGVyYXRvcnMuanMKQEAgLTE4MSw4ICsxODEsNiBAQCBm
dW5jdGlvbiBpbmNyZW1lbnQoaXRlcikgewogICAgIGlmICghZGlkVGhyb3cpCiAgICAgICAgIHRo
cm93ICJFcnJvcjogbm8gZXJyb3IgdGhyb3duIjsKICAgICB2YXIgbWVzc2FnZSA9ICdUeXBlRXJy
b3I6ICVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUubmV4dCByZXF1aXJlcyB0aGF0IHx0aGlzfCBi
ZSBhIFN0cmluZyBJdGVyYXRvciBpbnN0YW5jZSc7Ci0gICAgaWYgKHByaW1pdGl2ZSA9PSBudWxs
KQotICAgICAgICBtZXNzYWdlID0gJ1R5cGVFcnJvcjogJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBl
JS5uZXh0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCcKICAg
ICBpZiAoU3RyaW5nKGRpZFRocm93KSAhPT0gbWVzc2FnZSkKICAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgZXJyb3IgdGhyb3duOiAiICsgZGlkVGhyb3c7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy90YWlsQ2FsbEZvcndhcmRBcmd1bWVudHMuanMgYi9KU1Rlc3RzL3N0cmVzcy90YWls
Q2FsbEZvcndhcmRBcmd1bWVudHMuanMKaW5kZXggNjk3MjU1MjVkNjc5YzY4MWM4NjM5MGQ5NTYw
Y2Q3NjdlYzAyNTAxZS4uZTU4NGRmMTM5ZTNkMzhjYzJkMjZkYjc4MmQ3MzE4ZDQ4YzNlMmUzOSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdGFpbENhbGxGb3J3YXJkQXJndW1lbnRzLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL3RhaWxDYWxsRm9yd2FyZEFyZ3VtZW50cy5qcwpAQCAtMyw3ICsz
LDcgQEAKIHZhciBjcmVhdGVCdWlsdGluID0gJHZtLmNyZWF0ZUJ1aWx0aW47CiAKIC8vIFRoaXMg
aXMgcHJldHR5IGJhZCBidXQgSSBuZWVkIGEgcHJpdmF0ZSBuYW1lLgotdmFyIHB1dEZ1bmNUb1By
aXZhdGVOYW1lID0gY3JlYXRlQnVpbHRpbihgKGZ1bmN0aW9uIChmdW5jKSB7IEBhcnJheUl0ZXJh
dG9ySXNEb25lID0gZnVuYyB9KWApCit2YXIgcHV0RnVuY1RvUHJpdmF0ZU5hbWUgPSBjcmVhdGVC
dWlsdGluKGAoZnVuY3Rpb24gKGZ1bmMpIHsgQGdlbmVyYXRvclRoaXMgPSBmdW5jIH0pYCkKIHB1
dEZ1bmNUb1ByaXZhdGVOYW1lKGZ1bmN0aW9uIChhLGIpIHsgcmV0dXJuIGI7IH0pCiAKIGZ1bmN0
aW9uIGNyZWF0ZVRhaWxDYWxsRm9yd2FyZGluZ0Z1bmNXaXRoKGJvZHksIHRoaXNWYWx1ZSkgewpA
QCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiBjcmVhdGVUYWlsQ2FsbEZvcndhcmRpbmdGdW5jV2l0
aChib2R5LCB0aGlzVmFsdWUpIHsKIAogICAgICAgICAke2JvZHl9CiAKLSAgICAgICAgcmV0dXJu
IEB0YWlsQ2FsbEZvcndhcmRBcmd1bWVudHMoQGFycmF5SXRlcmF0b3JJc0RvbmUsICR7dGhpc1Zh
bHVlfSk7CisgICAgICAgIHJldHVybiBAdGFpbENhbGxGb3J3YXJkQXJndW1lbnRzKEBnZW5lcmF0
b3JUaGlzLCAke3RoaXNWYWx1ZX0pOwogICAgIH0pYCk7CiB9CiAK
</data>
<flag name="review"
          id="403277"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
      

    </bug>

</bugzilla>