<?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>204269</bug_id>
          
          <creation_ts>2019-11-15 20:53:46 -0800</creation_ts>
          <short_desc>[JSC] Remove index-masking on ScopedArguments and put it in IsoSubspace</short_desc>
          <delta_ts>2019-11-15 23:54:39 -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>JavaScriptCore</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>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</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>1590826</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-15 20:53:46 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590827</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-15 20:54:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/57249244&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590828</commentid>
    <comment_count>2</comment_count>
      <attachid>383685</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-15 21:08:39 -0800</bug_when>
    <thetext>Created attachment 383685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590835</commentid>
    <comment_count>3</comment_count>
      <attachid>383688</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-15 22:27:55 -0800</bug_when>
    <thetext>Created attachment 383688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590836</commentid>
    <comment_count>4</comment_count>
      <attachid>383688</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-15 22:34:28 -0800</bug_when>
    <thetext>Comment on attachment 383688
Patch

Also remove the various prepare index mask functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590837</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-15 22:39:12 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #4)
&gt; Comment on attachment 383688 [details]
&gt; Patch
&gt; 
&gt; Also remove the various prepare index mask functions?

Sounds nice. Removing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590838</commentid>
    <comment_count>6</comment_count>
      <attachid>383689</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-15 22:51:09 -0800</bug_when>
    <thetext>Created attachment 383689
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590841</commentid>
    <comment_count>7</comment_count>
      <attachid>383690</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-15 23:02:45 -0800</bug_when>
    <thetext>Created attachment 383690
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590847</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-15 23:54:39 -0800</bug_when>
    <thetext>Committed r252525: &lt;https://trac.webkit.org/changeset/252525&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383685</attachid>
            <date>2019-11-15 21:08:39 -0800</date>
            <delta_ts>2019-11-15 22:27:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204269-20191115210839.patch</filename>
            <type>text/plain</type>
            <size>27089</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NWJlNTE1NDMxODgxY2U3OGE5ZTlmMDY4NTMxNTYyOTFlODliODM2Li4yMTRhYjI3MzEyY2JiNTZm
Y2UzMzIzNWJjOWE4MmYxNmM1NThkYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxOS0xMS0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBpbmRleC1tYXNraW5nIG9uIFNjb3BlZEFyZ3VtZW50
cyBhbmQgcHV0IGl0IGluIElzb1N1YnNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgcmVtb3ZlIGluZGV4LW1hc2tpbmcgZm9yIFNj
b3BlZEFyZ3VtZW50cy4gVGhpcyBwYXRjaCByZXZlcnRzIGl0LgorICAgICAgICBXZSBzdGlsbCB1
c2UgQXV4aWxpYXJ5QnVmZmVyLCBhbmQgYXZvaWQgdXNpbmcgdmFyaWFibGUgc2l6ZWQgY2VsbC4g
VGhlbiwKKyAgICAgICAgdGhpcyBwYXRjaCBhbHNvIHB1dHMgU2NvcGVkQXJndW1lbnRzIGluIElz
b1N1YnNwYWNlLgorCisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHA6CisgICAgICAg
IChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6CisgICAgICAgICogZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEFycmF5
TGVuZ3RoKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdl
dEJ5VmFsKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZXRCeVZhbCk6CisgICAgICAgICogcnVudGlt
ZS9TY29wZWRBcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVudHM6OlNj
b3BlZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlVW5p
bml0aWFsaXplZCk6CisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpjcmVhdGVCeUNvcHlpbmdGcm9tKToKKyAgICAg
ICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
U2NvcGVkQXJndW1lbnRzOjpvdmVycmlkZVRoaW5ncyk6CisgICAgICAgIChKU0M6OlNjb3BlZEFy
Z3VtZW50czo6b3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeSk6CisgICAgICAgIChKU0M6OlNjb3Bl
ZEFyZ3VtZW50czo6dW5tYXBBcmd1bWVudCk6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1
bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZN
KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisKIDIwMTktMTEtMTUgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBERkcgc3RyZW5ndGggcmVkdWN0
aW9uIHNob3VsZCBkZWZpbmUgImdyb3VwcyIgZm9yIFJlZ0V4cCBjb25zdGFudC1mb2xkZWQgcmVz
dWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2Fz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKaW5k
ZXggOGE1NzIzYTFlMzA5YTRjMGJmZTM0ZDhlZmZhNWNjNTE3NjFiZTRiOS4uODU3YmM2ZTEzYjEx
NTBiNTIyMjdhNDViYmE0OTQwNDIyNDFlZmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcApAQCAtNTc2LDE1ICs1NzYsMTIgQEAgdm9pZCBBY2Nl
c3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgZmFsbFRocm91Z2guYXBwZW5kKAog
ICAgICAgICAgICAgaml0LmJyYW5jaElmTm90VHlwZShiYXNlR1BSLCBTY29wZWRBcmd1bWVudHNU
eXBlKSk7CiAKLSAgICAgICAgaml0LmxvYWRQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksCi0g
ICAgICAgICAgICBzY3JhdGNoR1BSKTsKICAgICAgICAgZmFsbFRocm91Z2guYXBwZW5kKAogICAg
ICAgICAgICAgaml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
Tm9uWmVybywKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQ
UiwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzSW5TdG9yYWdlKCkpKSk7
CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIFNjb3BlZEFy
Z3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5ncygpKSkpOwogICAgICAgICBqaXQubG9hZDMy
KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFNjb3BlZEFy
Z3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aEluU3RvcmFnZSgpKSwKKyAgICAgICAgICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90
YWxMZW5ndGgoKSksCiAgICAgICAgICAgICB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKICAgICAg
ICAgaml0LmJveEludDMyKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHZhbHVlUmVncyk7CiAgICAg
ICAgIHN0YXRlLnN1Y2NlZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggYjg0OTY2NmM1ZmMyZGQ3Y2E0N2Q0MDE0NjJjYWQ0YTNh
OGQ1Mjg0MS4uODk2MzRmM2JkZDllMGYyMGMzMWYwMDVmYzQ3NzkzODQ3NGEzZThkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTY5
NjcsMTQgKzY5NjcsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25T
Y29wZWRBcmd1bWVudHMoTm9kZSogbm9kZSkKICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1
bHQodGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAgICAgR1BSVGVtcG9y
YXJ5IHNjcmF0Y2gyKHRoaXMpOwotICAgIEdQUlRlbXBvcmFyeSBpbmRleE1hc2sodGhpcyk7CiAg
ICAgCiAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwogICAgIEdQUlJlZyBwcm9wZXJ0
eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1
bHQucmVncygpOwogICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKICAgICBH
UFJSZWcgc2NyYXRjaDJSZWcgPSBzY3JhdGNoMi5ncHIoKTsKLSAgICBHUFJSZWcgaW5kZXhNYXNr
UmVnID0gaW5kZXhNYXNrLmdwcigpOwogICAgIAogICAgIGlmICghbV9jb21waWxlT2theSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNjk4MywxNSArNjk4MSwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgIAogICAg
IG1faml0LmxvYWRQdHIoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcs
IFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRSZWdzLnBheWxvYWRH
UFIoKSk7Ci0gICAgbV9qaXQubG9hZDMyKAotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRvdGFs
TGVuZ3RoSW5TdG9yYWdlKCkpLAotICAgICAgICBzY3JhdGNoUmVnKTsKLSAgICAKKwogICAgIHNw
ZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIEpTVmFsdWVTb3VyY2Uo
KSwgbnVsbHB0ciwKLSAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3Zl
T3JFcXVhbCwgcHJvcGVydHlSZWcsIHNjcmF0Y2hSZWcpKTsKLSAgICAKLSAgICBtX2ppdC5lbWl0
UHJlcGFyZVByZWNpc2VJbmRleE1hc2szMihwcm9wZXJ0eVJlZywgc2NyYXRjaFJlZywgaW5kZXhN
YXNrUmVnKTsKKyAgICAgICAgbV9qaXQuYnJhbmNoMzIoCisgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0
aCgpKSkpOwogICAgIAogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
YmFzZVJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRhYmxlKCkpLCBzY3JhdGNoUmVnKTsK
ICAgICBtX2ppdC5sb2FkMzIoCkBAIC03MDM0LDggKzcwMjksNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgIAog
ICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgIAotICAgIG1faml0LmFuZFB0cihpbmRleE1hc2tS
ZWcsIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICAKICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFJlZ3MsIG5vZGUpOwogfQogCkBAIC03MTY2LDcgKzcxNTksNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSogbm9kZSkKICAgICB9CiAgICAgY2Fz
ZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0
KHRoaXMpOworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsK
ICAgICAgICAgCiAgICAgICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICAgICAg
R1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdC5ncHIoKTsKQEAgLTcxNzYsMTcgKzcxNjksMTQgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAg
ICAgICAgIAogICAgICAgICBBU1NFUlQoQXJyYXlNb2RlKEFycmF5OjpTY29wZWRBcmd1bWVudHMs
IEFycmF5OjpSZWFkKS5hbHJlYWR5Q2hlY2tlZChtX2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRl
LmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIAotICAgICAgICBtX2ppdC5sb2Fk
UHRyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgU2NvcGVk
QXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHJlc3VsdFJlZyk7Ci0KICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIEpTVmFsdWVTb3Vy
Y2UoKSwgMCwKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHJlc3VsdFJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhp
bmdzSW5TdG9yYWdlKCkpKSk7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoYmFzZVJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzKCkpKSk7
CiAgICAgICAgIAogICAgICAgICBtX2ppdC5sb2FkMzIoCi0gICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhyZXN1bHRSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExl
bmd0aEluU3RvcmFnZSgpKSwgcmVzdWx0UmVnKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgp
KSwgcmVzdWx0UmVnKTsKICAgICAgICAgCiAgICAgICAgIGludDMyUmVzdWx0KHJlc3VsdFJlZywg
bm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCA1ZGY0M2Y3NzRmZjM0NjY3MGNl
MTg0ZWM3NThkMWExMTMwNzJiZDBmLi44NzQwNTcyYmI4NTgzYzg1NWMxNmZmZWMyY2RiYzdmOThm
OTUxNjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaApAQCAtMTMzLDExICsxMzMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFNoYWRvd0NoaWNrZW5fUGFja2V0X3Njb3BlLCBP
QkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0LCBzY29wZSkpIFwKICAgICBtYWNy
byhTaGFkb3dDaGlja2VuX1BhY2tldF9jb2RlQmxvY2ssIE9CSkVDVF9PRkZTRVRPRihTaGFkb3dD
aGlja2VuOjpQYWNrZXQsIGNvZGVCbG9jaykpIFwKICAgICBtYWNybyhTaGFkb3dDaGlja2VuX1Bh
Y2tldF9jYWxsU2l0ZUluZGV4LCBPQkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0
LCBjYWxsU2l0ZUluZGV4KSkgXAotICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX292
ZXJyb2RlVGhpbmdzLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVUaGluZ3NJblN0
b3JhZ2UoKSkgXAotICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX3RvdGFsTGVuZ3Ro
LCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGhJblN0b3JhZ2UoKSkgXAotICAg
IG1hY3JvKFNjb3BlZEFyZ3VtZW50c19zdG9yYWdlLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9m
U3RvcmFnZSgpKSBcCisgICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzLCBT
Y29wZWRBcmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVUaGluZ3MoKSkgXAogICAgIG1hY3JvKFNj
b3BlZEFyZ3VtZW50c19zY29wZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlNjb3BlKCkpIFwK
KyAgICBtYWNybyhTY29wZWRBcmd1bWVudHNfc3RvcmFnZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZz
ZXRPZlN0b3JhZ2UoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c190YWJsZSwgU2NvcGVk
QXJndW1lbnRzOjpvZmZzZXRPZlRhYmxlKCkpIFwKKyAgICBtYWNybyhTY29wZWRBcmd1bWVudHNf
dG90YWxMZW5ndGgsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgpKSBcCiAg
ICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzVGFibGVfYXJndW1lbnRzLCBTY29wZWRBcmd1bWVudHNU
YWJsZTo6b2Zmc2V0T2ZBcmd1bWVudHMoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c1Rh
YmxlX2xlbmd0aCwgU2NvcGVkQXJndW1lbnRzVGFibGU6Om9mZnNldE9mTGVuZ3RoKCkpIFwKICAg
ICBtYWNybyhTdHJpbmdJbXBsX2RhdGEsIFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDM3ZjBh
OTYwMGY2NTdhYTA2ZjcyNWVkYmYxY2M0MDI3Njg4OWUyOTAuLjY4YjJhNjllNzhmYjNiMDhhNzYw
ZmI1NzMzMjNkNGE0MTg1MGNlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKQEAgLTQxODMsMTEgKzQxODMsMTAgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6
IHsKICAgICAgICAgICAgIExWYWx1ZSBhcmd1bWVudHMgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGFyZ3VtZW50
cywgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNfc3RvcmFnZSk7CiAgICAgICAgICAgICBzcGVjdWxh
dGUoCiAgICAgICAgICAgICAgICAgRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRy
LAotICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQzMihz
dG9yYWdlLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX292ZXJyb2RlVGhpbmdzKSkp
OwotICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwg
bV9oZWFwcy5TY29wZWRBcmd1bWVudHNfU3RvcmFnZV90b3RhbExlbmd0aCkpOworICAgICAgICAg
ICAgICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQzMihhcmd1bWVudHMsIG1f
aGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzKSkpOworICAgICAgICAgICAgc2V0
SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYXJndW1lbnRzLCBtX2hlYXBzLlNjb3BlZEFy
Z3VtZW50c190b3RhbExlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgICAgICAKQEAgLTQzODIsMTIgKzQzODEsMTEgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
ICAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMCkpOwogICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDEpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVl
IHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3N0
b3JhZ2UpOwotICAgICAgICAgICAgTFZhbHVlIHRvdGFsTGVuZ3RoID0gbV9vdXQubG9hZDMyTm9u
TmVnYXRpdmUoCi0gICAgICAgICAgICAgICAgc3RvcmFnZSwgbV9oZWFwcy5TY29wZWRBcmd1bWVu
dHNfU3RvcmFnZV90b3RhbExlbmd0aCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAg
ICAgICAgICAgRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRyLAotICAgICAgICAg
ICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChpbmRleCwgdG90YWxMZW5ndGgpKTsKKyAgICAgICAg
ICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCisgICAgICAgICAgICAgICAgICAgIGluZGV4LAor
ICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBz
LlNjb3BlZEFyZ3VtZW50c190b3RhbExlbmd0aCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgTFZhbHVlIHRhYmxlID0gbV9vdXQubG9hZFB0cihiYXNlLCBtX2hlYXBzLlNjb3BlZEFyZ3Vt
ZW50c190YWJsZSk7CiAgICAgICAgICAgICBMVmFsdWUgbmFtZWRMZW5ndGggPSBtX291dC5sb2Fk
MzIodGFibGUsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzVGFibGVfbGVuZ3RoKTsKQEAgLTQ0MTks
NiArNDQxNyw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKG92ZXJmbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAg
ICAgIAorICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1f
aGVhcHMuU2NvcGVkQXJndW1lbnRzX3N0b3JhZ2UpOwogICAgICAgICAgICAgYWRkcmVzcyA9IG1f
b3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c19T
dG9yYWdlX3N0b3JhZ2UsIHN0b3JhZ2UsCiAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dFB0
cihtX291dC5zdWIoaW5kZXgsIG5hbWVkTGVuZ3RoKSkpOwpAQCAtNDQyOCwxMSArNDQyNyw3IEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlv
biwgbGFzdE5leHQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0g
bV9vdXQucGhpKEludDY0LCBuYW1lZFJlc3VsdCwgb3ZlcmZsb3dSZXN1bHQpOwotICAgICAgICAg
ICAgcmVzdWx0ID0gcHJlY2lzZUluZGV4TWFzazMyKHJlc3VsdCwgaW5kZXgsIHRvdGFsTGVuZ3Ro
KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOworICAgICAg
ICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIG5hbWVkUmVzdWx0LCBvdmVyZmxvd1Jl
c3VsdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXgg
ZmYzOWIyMmIwZjE3ZGNiODQxMDkzYjQ1NWU4OTQ2YjBiNGNiZDg3NS4uNGY4NjdkYTY3MGFlOWMx
NTljOTBlYjliNjk2ZmI5YmRlNjU1MTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTE2MzQsMjAgKzE2MzQsMTcgQEAgSklUOjpK
dW1wTGlzdCBKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZXRCeVZhbChjb25zdCBJbnN0cnVjdGlv
biosIFBhdGNoYWJsZUp1bXAKICAgICBKU1ZhbHVlUmVncyByZXN1bHQgPSBKU1ZhbHVlUmVncyhy
ZWdUMCk7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gcmVnVDM7CiAgICAgUmVnaXN0ZXJJRCBz
Y3JhdGNoMiA9IHJlZ1Q0OwotICAgIFJlZ2lzdGVySUQgc2NyYXRjaDMgPSByZWdUNTsKICNlbHNl
CiAgICAgUmVnaXN0ZXJJRCBiYXNlID0gcmVnVDA7CiAgICAgUmVnaXN0ZXJJRCBwcm9wZXJ0eSA9
IHJlZ1QyOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdCA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCk7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gcmVnVDM7CiAgICAgUmVnaXN0ZXJJRCBzY3Jh
dGNoMiA9IHJlZ1Q0OwotICAgIFJlZ2lzdGVySUQgc2NyYXRjaDMgPSByZWdUNTsKICNlbmRpZgog
CiAgICAgbG9hZDgoQWRkcmVzcyhiYXNlLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwg
c2NyYXRjaCk7CiAgICAgYmFkVHlwZSA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFsLCBzY3Jh
dGNoLCBUcnVzdGVkSW1tMzIoU2NvcGVkQXJndW1lbnRzVHlwZSkpOwotICAgIGxvYWRQdHIoQWRk
cmVzcyhiYXNlLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mU3RvcmFnZSgpKSwgc2NyYXRjaDMp
OwotICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoMzIoQWJvdmVPckVxdWFsLCBwcm9wZXJ0eSwg
QWRkcmVzcyhzY3JhdGNoMywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRvdGFsTGVuZ3RoSW5T
dG9yYWdlKCkpKSk7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2gzMihBYm92ZU9yRXF1YWws
IHByb3BlcnR5LCBBZGRyZXNzKGJhc2UsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExl
bmd0aCgpKSkpOwogICAgIAogICAgIGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBTY29wZWRBcmd1bWVu
dHM6Om9mZnNldE9mVGFibGUoKSksIHNjcmF0Y2gpOwogICAgIGxvYWQzMihBZGRyZXNzKHNjcmF0
Y2gsIFNjb3BlZEFyZ3VtZW50c1RhYmxlOjpvZmZzZXRPZkxlbmd0aCgpKSwgc2NyYXRjaDIpOwpA
QCAtMTY2MSwxNCArMTY1OCwxMSBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdFNjb3BlZEFyZ3Vt
ZW50c0dldEJ5VmFsKGNvbnN0IEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcAogICAgIG92ZXJm
bG93Q2FzZS5saW5rKHRoaXMpOwogICAgIHN1YjMyKHByb3BlcnR5LCBzY3JhdGNoMik7CiAgICAg
bmVnMzIoc2NyYXRjaDIpOwotICAgIGxvYWRWYWx1ZShCYXNlSW5kZXgoc2NyYXRjaDMsIHNjcmF0
Y2gyLCBUaW1lc0VpZ2h0KSwgcmVzdWx0KTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoYmFzZSwgU2Nv
cGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHNjcmF0Y2gpOworICAgIGxvYWRWYWx1
ZShCYXNlSW5kZXgoc2NyYXRjaCwgc2NyYXRjaDIsIFRpbWVzRWlnaHQpLCByZXN1bHQpOwogICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoSWZFbXB0eShyZXN1bHQpKTsKICAgICBkb25lLmxpbmso
dGhpcyk7CiAgICAgCi0gICAgbG9hZDMyKEFkZHJlc3Moc2NyYXRjaDMsIFNjb3BlZEFyZ3VtZW50
czo6b2Zmc2V0T2ZUb3RhbExlbmd0aEluU3RvcmFnZSgpKSwgc2NyYXRjaCk7Ci0gICAgZW1pdFBy
ZXBhcmVQcmVjaXNlSW5kZXhNYXNrMzIocHJvcGVydHksIHNjcmF0Y2gsIHNjcmF0Y2gyKTsKLSAg
ICBhbmRQdHIoc2NyYXRjaDIsIHJlc3VsdC5wYXlsb2FkR1BSKCkpOwotICAgIAogICAgIHJldHVy
biBzbG93Q2FzZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
Y29wZWRBcmd1bWVudHMuY3BwCmluZGV4IGY0ODBiMTc1N2FjOTMzNGE3M2QzYTZiZjhmYjdmOWNh
NjBkZWM2NGQuLjU2NjllY2EyNmIzYjkzNDIwY2Q4M2NiOTEyOWUzOThjYTMyOWZlMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmNwcApA
QCAtMzUsMTEgKzM1LDExIEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShTY29wZWRBcmd1bWVudHMpOwogCiBjb25zdCBDbGFzc0luZm8gU2NvcGVkQXJndW1lbnRzOjpz
X2luZm8gPSB7ICJBcmd1bWVudHMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFNjb3BlZEFyZ3VtZW50cykgfTsKIAotU2NvcGVkQXJndW1lbnRz
OjpTY29wZWRBcmd1bWVudHMoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV3JpdGVCYXJy
aWVyPFVua25vd24+KiBzdG9yYWdlKQorU2NvcGVkQXJndW1lbnRzOjpTY29wZWRBcmd1bWVudHMo
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9y
YWdlLCB1bnNpZ25lZCB0b3RhbExlbmd0aCkKICAgICA6IEdlbmVyaWNBcmd1bWVudHModm0sIHN0
cnVjdHVyZSkKKyAgICAsIG1fdG90YWxMZW5ndGgodG90YWxMZW5ndGgpCiAgICAgLCBtX3N0b3Jh
Z2Uodm0sIHRoaXMsIHN0b3JhZ2UpCiB7Ci0gICAgQVNTRVJUKCFzdG9yYWdlSGVhZGVyKHN0b3Jh
Z2UpLm92ZXJyb2RlVGhpbmdzKTsKIH0KIAogdm9pZCBTY29wZWRBcmd1bWVudHM6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1bWVudHNUYWJsZSog
dGFibGUsIEpTTGV4aWNhbEVudmlyb25tZW50KiBzY29wZSkKQEAgLTU3LDE3ICs1NywxMyBAQCBT
Y29wZWRBcmd1bWVudHMqIFNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlVW5pbml0aWFsaXplZChWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dQogICAgICAgICBvdmVyZmxvd0xlbmd0aCA9IHRvdGFsTGVu
Z3RoIC0gdGFibGUtPmxlbmd0aCgpOwogICAgIGVsc2UKICAgICAgICAgb3ZlcmZsb3dMZW5ndGgg
PSAwOwotICAgIAotICAgIHZvaWQqIHJhd1N0b3JhZ2VQdHIgPSB2bS5qc1ZhbHVlR2lnYWNhZ2VB
dXhpbGlhcnlTcGFjZS5hbGxvY2F0ZU5vblZpcnR1YWwoCi0gICAgICAgIHZtLCBzdG9yYWdlU2l6
ZShvdmVyZmxvd0xlbmd0aCksIG51bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0
KTsKLSAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxXcml0
ZUJhcnJpZXI8VW5rbm93bj4qPihyYXdTdG9yYWdlUHRyKSArIDE7Ci0gICAgc3RvcmFnZUhlYWRl
cihzdG9yYWdlKS5vdmVycm9kZVRoaW5ncyA9IGZhbHNlOwotICAgIHN0b3JhZ2VIZWFkZXIoc3Rv
cmFnZSkudG90YWxMZW5ndGggPSB0b3RhbExlbmd0aDsKLSAgICAKKworICAgIGF1dG8qIHN0b3Jh
Z2UgPSBzdGF0aWNfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPih2bS5qc1ZhbHVlR2lnYWNh
Z2VBdXhpbGlhcnlTcGFjZS5hbGxvY2F0ZU5vblZpcnR1YWwodm0sIG92ZXJmbG93TGVuZ3RoICog
c2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPiksIG51bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJl
TW9kZTo6QXNzZXJ0KSk7CisKICAgICBTY29wZWRBcmd1bWVudHMqIHJlc3VsdCA9IG5ldyAoCiAg
ICAgICAgIE5vdE51bGwsCiAgICAgICAgIGFsbG9jYXRlQ2VsbDxTY29wZWRBcmd1bWVudHM+KHZt
LmhlYXApKQotICAgICAgICBTY29wZWRBcmd1bWVudHModm0sIHN0cnVjdHVyZSwgc3RvcmFnZSk7
CisgICAgICAgIFNjb3BlZEFyZ3VtZW50cyh2bSwgc3RydWN0dXJlLCBzdG9yYWdlLCB0b3RhbExl
bmd0aCk7CiAgICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbih2bSwgY2FsbGVlLCB0YWJsZSwgc2Nv
cGUpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC03OSw3ICs3NSw3IEBAIFNjb3BlZEFyZ3Vt
ZW50cyogU2NvcGVkQXJndW1lbnRzOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNGdW5jdGlvCiAKICAgICB1bnNpZ25lZCBuYW1lZExlbmd0aCA9IHRhYmxlLT5sZW5ndGgo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBuYW1lZExlbmd0aDsgaSA8IHRvdGFsTGVuZ3RoOyAr
K2kpCi0gICAgICAgIHJlc3VsdC0+b3ZlcmZsb3dTdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5j
bGVhcigpOworICAgICAgICByZXN1bHQtPnN0b3JhZ2UoKVtpIC0gbmFtZWRMZW5ndGhdLmNsZWFy
KCk7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTk5LDcgKzk1LDcgQEAgU2NvcGVk
QXJndW1lbnRzKiBTY29wZWRBcmd1bWVudHM6OmNyZWF0ZUJ5Q29weWluZ0Zyb20oVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHUKICAgICAKICAgICB1bnNpZ25lZCBuYW1lZExlbmd0aCA9IHRhYmxl
LT5sZW5ndGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBuYW1lZExlbmd0aDsgaSA8IHRvdGFs
TGVuZ3RoOyArK2kpCi0gICAgICAgIHJlc3VsdC0+b3ZlcmZsb3dTdG9yYWdlKClbaSAtIG5hbWVk
TGVuZ3RoXS5zZXQodm0sIHJlc3VsdCwgYXJndW1lbnRzU3RhcnRbaV0uanNWYWx1ZSgpKTsKKyAg
ICAgICAgcmVzdWx0LT5zdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5zZXQodm0sIHJlc3VsdCwg
YXJndW1lbnRzU3RhcnRbaV0uanNWYWx1ZSgpKTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0Owog
fQpAQCAtMTE0LDExICsxMTAsMTAgQEAgdm9pZCBTY29wZWRBcmd1bWVudHM6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVu
ZCh0aGlzT2JqZWN0LT5tX3RhYmxlKTsKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5t
X3Njb3BlKTsKICAgICAKLSAgICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkoJnRoaXNPYmplY3QtPnN0
b3JhZ2VIZWFkZXIoKSk7Ci0gICAgCi0gICAgaWYgKHRoaXNPYmplY3QtPnN0b3JhZ2VIZWFkZXIo
KS50b3RhbExlbmd0aCA+IHRoaXNPYmplY3QtPm1fdGFibGUtPmxlbmd0aCgpKSB7CisgICAgdmlz
aXRvci5tYXJrQXV4aWxpYXJ5KHRoaXNPYmplY3QtPm1fc3RvcmFnZS5nZXQoKSk7CisgICAgaWYg
KHRoaXNPYmplY3QtPm1fdG90YWxMZW5ndGggPiB0aGlzT2JqZWN0LT5tX3RhYmxlLT5sZW5ndGgo
KSkgewogICAgICAgICB2aXNpdG9yLmFwcGVuZFZhbHVlcygKLSAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPm92ZXJmbG93U3RvcmFnZSgpLCB0aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVyKCkudG90YWxM
ZW5ndGggLSB0aGlzT2JqZWN0LT5tX3RhYmxlLT5sZW5ndGgoKSk7CisgICAgICAgICAgICB0aGlz
T2JqZWN0LT5zdG9yYWdlKCksIHRoaXNPYmplY3QtPm1fdG90YWxMZW5ndGggLSB0aGlzT2JqZWN0
LT5tX3RhYmxlLT5sZW5ndGgoKSk7CiAgICAgfQogfQogCkBAIC0xMjksMjkgKzEyNCwyOSBAQCBT
dHJ1Y3R1cmUqIFNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdAogCiB2b2lkIFNjb3BlZEFyZ3VtZW50czo6b3ZlcnJpZGVU
aGluZ3MoVk0mIHZtKQogewotICAgIFJFTEVBU0VfQVNTRVJUKCFzdG9yYWdlSGVhZGVyKCkub3Zl
cnJvZGVUaGluZ3MpOworICAgIFJFTEVBU0VfQVNTRVJUKCFtX292ZXJyb2RlVGhpbmdzKTsKICAg
ICAKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIo
bV90YWJsZS0+bGVuZ3RoKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jYWxs
ZWUsIG1fY2FsbGVlLmdldCgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVy
YXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0KHZtKS0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCks
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAg
ICAKLSAgICBzdG9yYWdlSGVhZGVyKCkub3ZlcnJvZGVUaGluZ3MgPSB0cnVlOworICAgIG1fb3Zl
cnJvZGVUaGluZ3MgPSB0cnVlOwogfQogCiB2b2lkIFNjb3BlZEFyZ3VtZW50czo6b3ZlcnJpZGVU
aGluZ3NJZk5lY2Vzc2FyeShWTSYgdm0pCiB7Ci0gICAgaWYgKCFzdG9yYWdlSGVhZGVyKCkub3Zl
cnJvZGVUaGluZ3MpCisgICAgaWYgKCFtX292ZXJyb2RlVGhpbmdzKQogICAgICAgICBvdmVycmlk
ZVRoaW5ncyh2bSk7CiB9CiAKIHZvaWQgU2NvcGVkQXJndW1lbnRzOjp1bm1hcEFyZ3VtZW50KFZN
JiB2bSwgdWludDMyX3QgaSkKIHsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElP
TihpIDwgc3RvcmFnZUhlYWRlcigpLnRvdGFsTGVuZ3RoKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTihpIDwgbV90b3RhbExlbmd0aCk7CiAgICAgdW5zaWduZWQgbmFtZWRM
ZW5ndGggPSBtX3RhYmxlLT5sZW5ndGgoKTsKICAgICBpZiAoaSA8IG5hbWVkTGVuZ3RoKQogICAg
ICAgICBtX3RhYmxlLnNldCh2bSwgdGhpcywgbV90YWJsZS0+c2V0KHZtLCBpLCBTY29wZU9mZnNl
dCgpKSk7CiAgICAgZWxzZQotICAgICAgICBvdmVyZmxvd1N0b3JhZ2UoKVtpIC0gbmFtZWRMZW5n
dGhdLmNsZWFyKCk7CisgICAgICAgIHN0b3JhZ2UoKVtpIC0gbmFtZWRMZW5ndGhdLmNsZWFyKCk7
CiB9CiAKIHZvaWQgU2NvcGVkQXJndW1lbnRzOjpjb3B5VG9Bcmd1bWVudHMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIFZpcnR1YWxSZWdpc3RlciBm
aXJzdEVsZW1lbnREZXN0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKaW5kZXggZmQx
ODQ0ZDViYjdmYjQ0NmZhZGVjMmUxOWRmZjYxMDVmN2EzN2NjMS4uZjg1ZTQ3ZGZiZWU4Y2E3YzM3
MDRmMjllZDRjYjFiNGU5NzIwNDQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKQEAgLTM4LDE2ICszOCwxNiBAQCBuYW1lc3BhY2UgSlND
IHsKIC8vIGxvb2t1cHMuCiBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJsaWMgR2Vu
ZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKIHByaXZhdGU6Ci0gICAgU2NvcGVkQXJn
dW1lbnRzKFZNJiwgU3RydWN0dXJlKiwgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlKTsK
KyAgICBTY29wZWRBcmd1bWVudHMoVk0mLCBTdHJ1Y3R1cmUqLCBXcml0ZUJhcnJpZXI8VW5rbm93
bj4qIHN0b3JhZ2UsIHVuc2lnbmVkIHRvdGFsTGVuZ3RoKTsKICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiwgSlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1bWVudHNUYWJsZSosIEpTTGV4
aWNhbEVudmlyb25tZW50Kik7CiAgICAgdXNpbmcgQmFzZSA9IEdlbmVyaWNBcmd1bWVudHM8U2Nv
cGVkQXJndW1lbnRzPjsKIAogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBl
LCBTdWJzcGFjZUFjY2Vzcz4KLSAgICBzdGF0aWMgQ29tcGxldGVTdWJzcGFjZSogc3Vic3BhY2VG
b3IoVk0mIHZtKQorICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQog
ICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydCghQ2VsbFR5cGU6Om5lZWRzRGVzdHJ1Y3Rpb24s
ICIiKTsKLSAgICAgICAgcmV0dXJuICZ2bS52YXJpYWJsZVNpemVkQ2VsbFNwYWNlOworICAgICAg
ICByZXR1cm4gJnZtLnNjb3BlZEFyZ3VtZW50c1NwYWNlOwogICAgIH0KIAogICAgIC8vIENyZWF0
ZXMgYW4gYXJndW1lbnRzIG9iamVjdCBidXQgbGVhdmVzIGl0IHVuaW5pdGlhbGl6ZWQuIFRoaXMg
aXMgZGFuZ2Vyb3VzIGlmIHdlIEdDIHJpZ2h0CkBAIC02OCwxNCArNjgsMTQgQEAgY2xhc3MgU2Nv
cGVkQXJndW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVyaWNBcmd1bWVudHM8U2NvcGVkQXJndW1l
bnRzPiB7CiAgICAgCiAgICAgdWludDMyX3QgaW50ZXJuYWxMZW5ndGgoKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuIHN0b3JhZ2VIZWFkZXIoKS50b3RhbExlbmd0aDsKKyAgICAgICAgcmV0
dXJuIG1fdG90YWxMZW5ndGg7CiAgICAgfQogICAgIAogICAgIHVpbnQzMl90IGxlbmd0aChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogICAgIHsKICAgICAgICAgVk0mIHZtID0g
Z2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgICAgICBpZiAoVU5MSUtFTFkoc3RvcmFnZUhlYWRlcigpLm92ZXJyb2Rl
VGhpbmdzKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkobV9vdmVycm9kZVRoaW5ncykpIHsKICAg
ICAgICAgICAgIGF1dG8gdmFsdWUgPSBnZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7CiAg
ICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHZhbHVlLnRvVUludDMyKGdsb2Jh
bE9iamVjdCkpOwpAQCAtODUsMTMgKzg1LDEyIEBAIGNsYXNzIFNjb3BlZEFyZ3VtZW50cyBmaW5h
bCA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz4gewogICAgIAogICAg
IGJvb2wgaXNNYXBwZWRBcmd1bWVudCh1aW50MzJfdCBpKSBjb25zdAogICAgIHsKLSAgICAgICAg
V3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlID0gb3ZlcmZsb3dTdG9yYWdlKCk7Ci0gICAg
ICAgIGlmIChpID49IHN0b3JhZ2VIZWFkZXIoc3RvcmFnZSkudG90YWxMZW5ndGgpCisgICAgICAg
IGlmIChpID49IG1fdG90YWxMZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIHVuc2lnbmVkIG5hbWVkTGVuZ3RoID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAgICAgIGlm
IChpIDwgbmFtZWRMZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gISFtX3RhYmxlLT5nZXQoaSk7
Ci0gICAgICAgIHJldHVybiAhIXN0b3JhZ2VbaSAtIG5hbWVkTGVuZ3RoXS5nZXQoKTsKKyAgICAg
ICAgcmV0dXJuICEhc3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uZ2V0KCk7CiAgICAgfQogCiAg
ICAgYm9vbCBpc01hcHBlZEFyZ3VtZW50SW5ERkcodWludDMyX3QgaSkgY29uc3QKQEAgLTEwMiwy
NCArMTAxLDIwIEBAIGNsYXNzIFNjb3BlZEFyZ3VtZW50cyBmaW5hbCA6IHB1YmxpYyBHZW5lcmlj
QXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz4gewogICAgIEpTVmFsdWUgZ2V0SW5kZXhRdWlja2x5
KHVpbnQzMl90IGkpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihpc01hcHBlZEFyZ3VtZW50KGkpKTsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFVu
a25vd24+KiBzdG9yYWdlID0gb3ZlcmZsb3dTdG9yYWdlKCk7Ci0gICAgICAgIHVuc2lnbmVkIHRv
dGFsTGVuZ3RoID0gc3RvcmFnZUhlYWRlcihzdG9yYWdlKS50b3RhbExlbmd0aDsKICAgICAgICAg
dW5zaWduZWQgbmFtZWRMZW5ndGggPSBtX3RhYmxlLT5sZW5ndGgoKTsKICAgICAgICAgaWYgKGkg
PCBuYW1lZExlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBwcmVjaXNlSW5kZXhNYXNrUHRyKGks
IHRvdGFsTGVuZ3RoLCAmbV9zY29wZS0+dmFyaWFibGVBdChtX3RhYmxlLT5nZXQoaSkpKS0+Z2V0
KCk7Ci0gICAgICAgIHJldHVybiBwcmVjaXNlSW5kZXhNYXNrUHRyKGksIHRvdGFsTGVuZ3RoLCBz
dG9yYWdlICsgKGkgLSBuYW1lZExlbmd0aCkpLT5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBt
X3Njb3BlLT52YXJpYWJsZUF0KG1fdGFibGUtPmdldChpKSkuZ2V0KCk7CisgICAgICAgIHJldHVy
biBzdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5nZXQoKTsKICAgICB9CiAKICAgICB2b2lkIHNl
dEluZGV4UXVpY2tseShWTSYgdm0sIHVpbnQzMl90IGksIEpTVmFsdWUgdmFsdWUpCiAgICAgewog
ICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc01hcHBlZEFyZ3VtZW50
KGkpKTsKLSAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlID0gb3ZlcmZsb3dT
dG9yYWdlKCk7Ci0gICAgICAgIHVuc2lnbmVkIHRvdGFsTGVuZ3RoID0gc3RvcmFnZUhlYWRlcihz
dG9yYWdlKS50b3RhbExlbmd0aDsKICAgICAgICAgdW5zaWduZWQgbmFtZWRMZW5ndGggPSBtX3Rh
YmxlLT5sZW5ndGgoKTsKICAgICAgICAgaWYgKGkgPCBuYW1lZExlbmd0aCkKLSAgICAgICAgICAg
IHByZWNpc2VJbmRleE1hc2tQdHIoaSwgdG90YWxMZW5ndGgsICZtX3Njb3BlLT52YXJpYWJsZUF0
KG1fdGFibGUtPmdldChpKSkpLT5zZXQodm0sIG1fc2NvcGUuZ2V0KCksIHZhbHVlKTsKKyAgICAg
ICAgICAgIG1fc2NvcGUtPnZhcmlhYmxlQXQobV90YWJsZS0+Z2V0KGkpKS5zZXQodm0sIG1fc2Nv
cGUuZ2V0KCksIHZhbHVlKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcHJlY2lzZUluZGV4
TWFza1B0cihpLCB0b3RhbExlbmd0aCwgc3RvcmFnZSArIChpIC0gbmFtZWRMZW5ndGgpKS0+c2V0
KHZtLCB0aGlzLCB2YWx1ZSk7CisgICAgICAgICAgICBzdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3Ro
XS5zZXQodm0sIHRoaXMsIHZhbHVlKTsKICAgICB9CiAKICAgICBKU0Z1bmN0aW9uKiBjYWxsZWUo
KQpAQCAtMTI3LDcgKzEyMiw3IEBAIGNsYXNzIFNjb3BlZEFyZ3VtZW50cyBmaW5hbCA6IHB1Ymxp
YyBHZW5lcmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz4gewogICAgICAgICByZXR1cm4gbV9j
YWxsZWUuZ2V0KCk7CiAgICAgfQogCi0gICAgYm9vbCBvdmVycm9kZVRoaW5ncygpIGNvbnN0IHsg
cmV0dXJuIHN0b3JhZ2VIZWFkZXIoKS5vdmVycm9kZVRoaW5nczsgfQorICAgIGJvb2wgb3ZlcnJv
ZGVUaGluZ3MoKSBjb25zdCB7IHJldHVybiBtX292ZXJyb2RlVGhpbmdzOyB9CiAgICAgdm9pZCBv
dmVycmlkZVRoaW5ncyhWTSYpOwogICAgIHZvaWQgb3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeShW
TSYpOwogICAgIHZvaWQgdW5tYXBBcmd1bWVudChWTSYsIHVpbnQzMl90IGluZGV4KTsKQEAgLTE1
Myw0NyArMTQ4LDIwIEBAIGNsYXNzIFNjb3BlZEFyZ3VtZW50cyBmaW5hbCA6IHB1YmxpYyBHZW5l
cmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz4gewogICAgIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5
cGUpOwogICAgIAotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdG9yYWdlKCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKFNjb3BlZEFyZ3VtZW50cywgbV9zdG9yYWdlKTsgfQotICAgIHN0
YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZPdmVycm9kZVRoaW5nc0luU3RvcmFnZSgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihTdG9yYWdlSGVhZGVyLCBvdmVycm9kZVRoaW5ncykgLSBzaXplb2Yo
V3JpdGVCYXJyaWVyPFVua25vd24+KTsgfQotICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZU
b3RhbExlbmd0aEluU3RvcmFnZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTdG9yYWdlSGVh
ZGVyLCB0b3RhbExlbmd0aCkgLSBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KTsgfQorICAg
IHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZPdmVycm9kZVRoaW5ncygpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fb3ZlcnJvZGVUaGluZ3MpOyB9CisgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZlRvdGFsTGVuZ3RoKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKFNjb3BlZEFyZ3VtZW50cywgbV90b3RhbExlbmd0aCk7IH0KICAgICBzdGF0aWMgcHRyZGlm
Zl90IG9mZnNldE9mVGFibGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NvcGVkQXJndW1l
bnRzLCBtX3RhYmxlKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTY29wZSgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fc2NvcGUpOyB9Ci0gICAg
Ci0gICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZShzaXplX3QgaW5saW5lU2l6ZSkKLSAg
ICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpbmxpbmVTaXplKTsKLSAgICAgICAgcmV0dXJu
IHNpemVvZihTY29wZWRBcmd1bWVudHMpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgc2l6ZV90
IHN0b3JhZ2VTaXplKENoZWNrZWQ8c2l6ZV90PiBjYXBhY2l0eSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiAoc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikgKiAoY2FwYWNpdHkgKyBzdGF0aWNf
Y2FzdDxzaXplX3Q+KDEpKSkudW5zYWZlR2V0KCk7Ci0gICAgfQotICAgIAotICAgIHN0YXRpYyBz
aXplX3Qgc3RvcmFnZUhlYWRlclNpemUoKSB7IHJldHVybiBzaXplb2YoV3JpdGVCYXJyaWVyPFVu
a25vd24+KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdG9yYWdlKCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKFNjb3BlZEFyZ3VtZW50cywgbV9zdG9yYWdlKTsgfQogICAgIAog
cHJpdmF0ZToKLSAgICBzdHJ1Y3QgU3RvcmFnZUhlYWRlciB7Ci0gICAgICAgIHVuc2lnbmVkIHRv
dGFsTGVuZ3RoOwotICAgICAgICBib29sIG92ZXJyb2RlVGhpbmdzOyAvLyBUcnVlIGlmIGxlbmd0
aCwgY2FsbGVlLCBhbmQgY2FsbGVyIGFyZSBmdWxseSBtYXRlcmlhbGl6ZWQgaW4gdGhlIG9iamVj
dC4KLSAgICB9OwotICAgIAotICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogb3ZlcmZsb3dTdG9y
YWdlKCkgY29uc3QKKyAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHN0b3JhZ2UoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fc3RvcmFnZS5nZXQoKTsKICAgICB9CiAgICAgCi0gICAg
c3RhdGljIFN0b3JhZ2VIZWFkZXImIHN0b3JhZ2VIZWFkZXIoV3JpdGVCYXJyaWVyPFVua25vd24+
KiBzdG9yYWdlKQotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoU3RvcmFnZUhl
YWRlcikgPD0gc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPiksICJTdG9yYWdlSGVhZGVyIG5l
ZWRzIHRvIGJlIG5vIGJpZ2dlciB0aGFuIGEgSlNWYWx1ZSIpOwotICAgICAgICByZXR1cm4gKmJp
dHdpc2VfY2FzdDxTdG9yYWdlSGVhZGVyKj4oc3RvcmFnZSAtIDEpOwotICAgIH0KLSAgICAKLSAg
ICBTdG9yYWdlSGVhZGVyJiBzdG9yYWdlSGVhZGVyKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBzdG9yYWdlSGVhZGVyKG92ZXJmbG93U3RvcmFnZSgpKTsKLSAgICB9Ci0gICAgCisgICAg
Ym9vbCBtX292ZXJyb2RlVGhpbmdzIHsgZmFsc2UgfTsgLy8gVHJ1ZSBpZiBsZW5ndGgsIGNhbGxl
ZSwgYW5kIGNhbGxlciBhcmUgZnVsbHkgbWF0ZXJpYWxpemVkIGluIHRoZSBvYmplY3QuCisgICAg
dW5zaWduZWQgbV90b3RhbExlbmd0aDsgLy8gVGhlIGxlbmd0aCBvZiBkZWNsYXJlZCBwbHVzIG92
ZXJmbG93IGFyZ3VtZW50cy4KICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9jYWxsZWU7
CiAgICAgV3JpdGVCYXJyaWVyPFNjb3BlZEFyZ3VtZW50c1RhYmxlPiBtX3RhYmxlOwogICAgIFdy
aXRlQmFycmllcjxKU0xleGljYWxFbnZpcm9ubWVudD4gbV9zY29wZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcAppbmRleCAwNzVjOWY4OTlhZmJkOWZiMWJiNjg5OWQwNzJlZDBmYzgz
NTBlMjM1Li43NGQ0MGY0NWZkNDEwMDg3ZmI4MTlmMzEzNTBkZjljYzA5N2FmNDE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbmNsdWRl
ICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVUeXBlLmgiCiAjaW5j
bHVkZSAiU2FtcGxpbmdQcm9maWxlci5oIgorI2luY2x1ZGUgIlNjb3BlZEFyZ3VtZW50cy5oIgog
I2luY2x1ZGUgIlNoYWRvd0NoaWNrZW4uaCIKICNpbmNsdWRlICJTaW1wbGVUeXBlZEFycmF5Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGUuaCIKQEAgLTI4Miw2ICsy
ODMsNyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBu
YXRpdmVFeGVjdXRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxl
Q2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgTmF0aXZlRXhlY3V0YWJsZSkgLy8gSGFzaDoweDY3NTY3
Zjk1CiAgICAgLCBwcm9wZXJ0eVRhYmxlU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVz
dHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgUHJvcGVydHlUYWJsZSkgLy8gSGFzaDow
eGM2YmM5ZjEyCiAgICAgLCByb3BlU3RyaW5nU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwg
c3RyaW5nSGVhcENlbGxUeXBlLmdldCgpLCBKU1JvcGVTdHJpbmcpCisgICAgLCBzY29wZWRBcmd1
bWVudHNTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdldCgp
LCBTY29wZWRBcmd1bWVudHMpCiAgICAgLCBzcGFyc2VBcnJheVZhbHVlTWFwU3BhY2UgSVNPX1NV
QlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU3Bh
cnNlQXJyYXlWYWx1ZU1hcCkKICAgICAsIHN0cmluZ1NwYWNlIElTT19TVUJTUEFDRV9JTklUKGhl
YXAsIHN0cmluZ0hlYXBDZWxsVHlwZS5nZXQoKSwgSlNTdHJpbmcpIC8vIEhhc2g6MHg5MGNmNzU4
ZgogICAgICwgc3RydWN0dXJlUmFyZURhdGFTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBk
ZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBTdHJ1Y3R1cmVSYXJlRGF0YSkgLy8g
SGFzaDoweGFjYTRlNjJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCBlNmQ2Y2Jl
NTc3YzNlNmYxZmMwNjQ2YjY1M2ExZDdlZjM0YzNkNGYxLi5mNjYwNjU0NDJiMjY5NWIxMTVkMjUy
ZTIwNGUxZTE0NmY2NTA0ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTM4
Myw2ICszODMsNyBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4s
IHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIElzb1N1YnNwYWNlIG5hdGl2
ZUV4ZWN1dGFibGVTcGFjZTsKICAgICBJc29TdWJzcGFjZSBwcm9wZXJ0eVRhYmxlU3BhY2U7CiAg
ICAgSXNvU3Vic3BhY2Ugcm9wZVN0cmluZ1NwYWNlOworICAgIElzb1N1YnNwYWNlIHNjb3BlZEFy
Z3VtZW50c1NwYWNlOwogICAgIElzb1N1YnNwYWNlIHNwYXJzZUFycmF5VmFsdWVNYXBTcGFjZTsK
ICAgICBJc29TdWJzcGFjZSBzdHJpbmdTcGFjZTsKICAgICBJc29TdWJzcGFjZSBzdHJ1Y3R1cmVS
YXJlRGF0YVNwYWNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383688</attachid>
            <date>2019-11-15 22:27:55 -0800</date>
            <delta_ts>2019-11-15 22:34:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204269-20191115222755.patch</filename>
            <type>text/plain</type>
            <size>27657</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NWJlNTE1NDMxODgxY2U3OGE5ZTlmMDY4NTMxNTYyOTFlODliODM2Li4yMTRhYjI3MzEyY2JiNTZm
Y2UzMzIzNWJjOWE4MmYxNmM1NThkYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxOS0xMS0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBpbmRleC1tYXNraW5nIG9uIFNjb3BlZEFyZ3VtZW50
cyBhbmQgcHV0IGl0IGluIElzb1N1YnNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgcmVtb3ZlIGluZGV4LW1hc2tpbmcgZm9yIFNj
b3BlZEFyZ3VtZW50cy4gVGhpcyBwYXRjaCByZXZlcnRzIGl0LgorICAgICAgICBXZSBzdGlsbCB1
c2UgQXV4aWxpYXJ5QnVmZmVyLCBhbmQgYXZvaWQgdXNpbmcgdmFyaWFibGUgc2l6ZWQgY2VsbC4g
VGhlbiwKKyAgICAgICAgdGhpcyBwYXRjaCBhbHNvIHB1dHMgU2NvcGVkQXJndW1lbnRzIGluIElz
b1N1YnNwYWNlLgorCisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHA6CisgICAgICAg
IChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6CisgICAgICAgICogZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEFycmF5
TGVuZ3RoKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdl
dEJ5VmFsKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZXRCeVZhbCk6CisgICAgICAgICogcnVudGlt
ZS9TY29wZWRBcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVudHM6OlNj
b3BlZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlVW5p
bml0aWFsaXplZCk6CisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpjcmVhdGVCeUNvcHlpbmdGcm9tKToKKyAgICAg
ICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6
U2NvcGVkQXJndW1lbnRzOjpvdmVycmlkZVRoaW5ncyk6CisgICAgICAgIChKU0M6OlNjb3BlZEFy
Z3VtZW50czo6b3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeSk6CisgICAgICAgIChKU0M6OlNjb3Bl
ZEFyZ3VtZW50czo6dW5tYXBBcmd1bWVudCk6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1
bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZN
KToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisKIDIwMTktMTEtMTUgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBERkcgc3RyZW5ndGggcmVkdWN0
aW9uIHNob3VsZCBkZWZpbmUgImdyb3VwcyIgZm9yIFJlZ0V4cCBjb25zdGFudC1mb2xkZWQgcmVz
dWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2Fz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKaW5k
ZXggOGE1NzIzYTFlMzA5YTRjMGJmZTM0ZDhlZmZhNWNjNTE3NjFiZTRiOS4uODU3YmM2ZTEzYjEx
NTBiNTIyMjdhNDViYmE0OTQwNDIyNDFlZmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcApAQCAtNTc2LDE1ICs1NzYsMTIgQEAgdm9pZCBBY2Nl
c3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgZmFsbFRocm91Z2guYXBwZW5kKAog
ICAgICAgICAgICAgaml0LmJyYW5jaElmTm90VHlwZShiYXNlR1BSLCBTY29wZWRBcmd1bWVudHNU
eXBlKSk7CiAKLSAgICAgICAgaml0LmxvYWRQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksCi0g
ICAgICAgICAgICBzY3JhdGNoR1BSKTsKICAgICAgICAgZmFsbFRocm91Z2guYXBwZW5kKAogICAg
ICAgICAgICAgaml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
Tm9uWmVybywKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQ
UiwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzSW5TdG9yYWdlKCkpKSk7
CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIFNjb3BlZEFy
Z3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5ncygpKSkpOwogICAgICAgICBqaXQubG9hZDMy
KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFNjb3BlZEFy
Z3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aEluU3RvcmFnZSgpKSwKKyAgICAgICAgICAgIEND
YWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90
YWxMZW5ndGgoKSksCiAgICAgICAgICAgICB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKICAgICAg
ICAgaml0LmJveEludDMyKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHZhbHVlUmVncyk7CiAgICAg
ICAgIHN0YXRlLnN1Y2NlZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggYjg0OTY2NmM1ZmMyZGQ3Y2E0N2Q0MDE0NjJjYWQ0YTNh
OGQ1Mjg0MS4uODk2MzRmM2JkZDllMGYyMGMzMWYwMDVmYzQ3NzkzODQ3NGEzZThkMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTY5
NjcsMTQgKzY5NjcsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25T
Y29wZWRBcmd1bWVudHMoTm9kZSogbm9kZSkKICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1
bHQodGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAgICAgR1BSVGVtcG9y
YXJ5IHNjcmF0Y2gyKHRoaXMpOwotICAgIEdQUlRlbXBvcmFyeSBpbmRleE1hc2sodGhpcyk7CiAg
ICAgCiAgICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwogICAgIEdQUlJlZyBwcm9wZXJ0
eVJlZyA9IHByb3BlcnR5LmdwcigpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1
bHQucmVncygpOwogICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKICAgICBH
UFJSZWcgc2NyYXRjaDJSZWcgPSBzY3JhdGNoMi5ncHIoKTsKLSAgICBHUFJSZWcgaW5kZXhNYXNr
UmVnID0gaW5kZXhNYXNrLmdwcigpOwogICAgIAogICAgIGlmICghbV9jb21waWxlT2theSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNjk4MywxNSArNjk4MSwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgIAogICAg
IG1faml0LmxvYWRQdHIoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcs
IFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRSZWdzLnBheWxvYWRH
UFIoKSk7Ci0gICAgbV9qaXQubG9hZDMyKAotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRvdGFs
TGVuZ3RoSW5TdG9yYWdlKCkpLAotICAgICAgICBzY3JhdGNoUmVnKTsKLSAgICAKKwogICAgIHNw
ZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIEpTVmFsdWVTb3VyY2Uo
KSwgbnVsbHB0ciwKLSAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3Zl
T3JFcXVhbCwgcHJvcGVydHlSZWcsIHNjcmF0Y2hSZWcpKTsKLSAgICAKLSAgICBtX2ppdC5lbWl0
UHJlcGFyZVByZWNpc2VJbmRleE1hc2szMihwcm9wZXJ0eVJlZywgc2NyYXRjaFJlZywgaW5kZXhN
YXNrUmVnKTsKKyAgICAgICAgbV9qaXQuYnJhbmNoMzIoCisgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0
aCgpKSkpOwogICAgIAogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
YmFzZVJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRhYmxlKCkpLCBzY3JhdGNoUmVnKTsK
ICAgICBtX2ppdC5sb2FkMzIoCkBAIC03MDM0LDggKzcwMjksNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgIAog
ICAgIGRvbmUubGluaygmbV9qaXQpOwogICAgIAotICAgIG1faml0LmFuZFB0cihpbmRleE1hc2tS
ZWcsIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICAKICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdFJlZ3MsIG5vZGUpOwogfQogCkBAIC03MTY2LDcgKzcxNTksNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSogbm9kZSkKICAgICB9CiAgICAgY2Fz
ZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0
KHRoaXMpOworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsK
ICAgICAgICAgCiAgICAgICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICAgICAg
R1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdC5ncHIoKTsKQEAgLTcxNzYsMTcgKzcxNjksMTQgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAg
ICAgICAgIAogICAgICAgICBBU1NFUlQoQXJyYXlNb2RlKEFycmF5OjpTY29wZWRBcmd1bWVudHMs
IEFycmF5OjpSZWFkKS5hbHJlYWR5Q2hlY2tlZChtX2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRl
LmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIAotICAgICAgICBtX2ppdC5sb2Fk
UHRyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgU2NvcGVk
QXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHJlc3VsdFJlZyk7Ci0KICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIEpTVmFsdWVTb3Vy
Y2UoKSwgMCwKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKHJlc3VsdFJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhp
bmdzSW5TdG9yYWdlKCkpKSk7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoYmFzZVJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzKCkpKSk7
CiAgICAgICAgIAogICAgICAgICBtX2ppdC5sb2FkMzIoCi0gICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhyZXN1bHRSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExl
bmd0aEluU3RvcmFnZSgpKSwgcmVzdWx0UmVnKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgp
KSwgcmVzdWx0UmVnKTsKICAgICAgICAgCiAgICAgICAgIGludDMyUmVzdWx0KHJlc3VsdFJlZywg
bm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCA1ZGY0M2Y3NzRmZjM0NjY3MGNl
MTg0ZWM3NThkMWExMTMwNzJiZDBmLi44NzQwNTcyYmI4NTgzYzg1NWMxNmZmZWMyY2RiYzdmOThm
OTUxNjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaApAQCAtMTMzLDExICsxMzMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFNoYWRvd0NoaWNrZW5fUGFja2V0X3Njb3BlLCBP
QkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0LCBzY29wZSkpIFwKICAgICBtYWNy
byhTaGFkb3dDaGlja2VuX1BhY2tldF9jb2RlQmxvY2ssIE9CSkVDVF9PRkZTRVRPRihTaGFkb3dD
aGlja2VuOjpQYWNrZXQsIGNvZGVCbG9jaykpIFwKICAgICBtYWNybyhTaGFkb3dDaGlja2VuX1Bh
Y2tldF9jYWxsU2l0ZUluZGV4LCBPQkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0
LCBjYWxsU2l0ZUluZGV4KSkgXAotICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX292
ZXJyb2RlVGhpbmdzLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVUaGluZ3NJblN0
b3JhZ2UoKSkgXAotICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX3RvdGFsTGVuZ3Ro
LCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGhJblN0b3JhZ2UoKSkgXAotICAg
IG1hY3JvKFNjb3BlZEFyZ3VtZW50c19zdG9yYWdlLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9m
U3RvcmFnZSgpKSBcCisgICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzLCBT
Y29wZWRBcmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVUaGluZ3MoKSkgXAogICAgIG1hY3JvKFNj
b3BlZEFyZ3VtZW50c19zY29wZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlNjb3BlKCkpIFwK
KyAgICBtYWNybyhTY29wZWRBcmd1bWVudHNfc3RvcmFnZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZz
ZXRPZlN0b3JhZ2UoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c190YWJsZSwgU2NvcGVk
QXJndW1lbnRzOjpvZmZzZXRPZlRhYmxlKCkpIFwKKyAgICBtYWNybyhTY29wZWRBcmd1bWVudHNf
dG90YWxMZW5ndGgsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgpKSBcCiAg
ICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzVGFibGVfYXJndW1lbnRzLCBTY29wZWRBcmd1bWVudHNU
YWJsZTo6b2Zmc2V0T2ZBcmd1bWVudHMoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c1Rh
YmxlX2xlbmd0aCwgU2NvcGVkQXJndW1lbnRzVGFibGU6Om9mZnNldE9mTGVuZ3RoKCkpIFwKICAg
ICBtYWNybyhTdHJpbmdJbXBsX2RhdGEsIFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDM3ZjBh
OTYwMGY2NTdhYTA2ZjcyNWVkYmYxY2M0MDI3Njg4OWUyOTAuLjY4YjJhNjllNzhmYjNiMDhhNzYw
ZmI1NzMzMjNkNGE0MTg1MGNlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKQEAgLTQxODMsMTEgKzQxODMsMTAgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6
IHsKICAgICAgICAgICAgIExWYWx1ZSBhcmd1bWVudHMgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGFyZ3VtZW50
cywgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNfc3RvcmFnZSk7CiAgICAgICAgICAgICBzcGVjdWxh
dGUoCiAgICAgICAgICAgICAgICAgRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRy
LAotICAgICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQzMihz
dG9yYWdlLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX292ZXJyb2RlVGhpbmdzKSkp
OwotICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwg
bV9oZWFwcy5TY29wZWRBcmd1bWVudHNfU3RvcmFnZV90b3RhbExlbmd0aCkpOworICAgICAgICAg
ICAgICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQzMihhcmd1bWVudHMsIG1f
aGVhcHMuU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzKSkpOworICAgICAgICAgICAgc2V0
SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYXJndW1lbnRzLCBtX2hlYXBzLlNjb3BlZEFy
Z3VtZW50c190b3RhbExlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgICAgICAKQEAgLTQzODIsMTIgKzQzODEsMTEgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsK
ICAgICAgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMCkpOwogICAgICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDEpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVl
IHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3N0
b3JhZ2UpOwotICAgICAgICAgICAgTFZhbHVlIHRvdGFsTGVuZ3RoID0gbV9vdXQubG9hZDMyTm9u
TmVnYXRpdmUoCi0gICAgICAgICAgICAgICAgc3RvcmFnZSwgbV9oZWFwcy5TY29wZWRBcmd1bWVu
dHNfU3RvcmFnZV90b3RhbExlbmd0aCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAg
ICAgICAgICAgRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRyLAotICAgICAgICAg
ICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbChpbmRleCwgdG90YWxMZW5ndGgpKTsKKyAgICAgICAg
ICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCisgICAgICAgICAgICAgICAgICAgIGluZGV4LAor
ICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBz
LlNjb3BlZEFyZ3VtZW50c190b3RhbExlbmd0aCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgTFZhbHVlIHRhYmxlID0gbV9vdXQubG9hZFB0cihiYXNlLCBtX2hlYXBzLlNjb3BlZEFyZ3Vt
ZW50c190YWJsZSk7CiAgICAgICAgICAgICBMVmFsdWUgbmFtZWRMZW5ndGggPSBtX291dC5sb2Fk
MzIodGFibGUsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzVGFibGVfbGVuZ3RoKTsKQEAgLTQ0MTks
NiArNDQxNyw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKG92ZXJmbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAg
ICAgIAorICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1f
aGVhcHMuU2NvcGVkQXJndW1lbnRzX3N0b3JhZ2UpOwogICAgICAgICAgICAgYWRkcmVzcyA9IG1f
b3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c19T
dG9yYWdlX3N0b3JhZ2UsIHN0b3JhZ2UsCiAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dFB0
cihtX291dC5zdWIoaW5kZXgsIG5hbWVkTGVuZ3RoKSkpOwpAQCAtNDQyOCwxMSArNDQyNyw3IEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlv
biwgbGFzdE5leHQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0g
bV9vdXQucGhpKEludDY0LCBuYW1lZFJlc3VsdCwgb3ZlcmZsb3dSZXN1bHQpOwotICAgICAgICAg
ICAgcmVzdWx0ID0gcHJlY2lzZUluZGV4TWFzazMyKHJlc3VsdCwgaW5kZXgsIHRvdGFsTGVuZ3Ro
KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOworICAgICAg
ICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIG5hbWVkUmVzdWx0LCBvdmVyZmxvd1Jl
c3VsdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXgg
ZmYzOWIyMmIwZjE3ZGNiODQxMDkzYjQ1NWU4OTQ2YjBiNGNiZDg3NS4uNGY4NjdkYTY3MGFlOWMx
NTljOTBlYjliNjk2ZmI5YmRlNjU1MTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTE2MzQsMjAgKzE2MzQsMTcgQEAgSklUOjpK
dW1wTGlzdCBKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZXRCeVZhbChjb25zdCBJbnN0cnVjdGlv
biosIFBhdGNoYWJsZUp1bXAKICAgICBKU1ZhbHVlUmVncyByZXN1bHQgPSBKU1ZhbHVlUmVncyhy
ZWdUMCk7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gcmVnVDM7CiAgICAgUmVnaXN0ZXJJRCBz
Y3JhdGNoMiA9IHJlZ1Q0OwotICAgIFJlZ2lzdGVySUQgc2NyYXRjaDMgPSByZWdUNTsKICNlbHNl
CiAgICAgUmVnaXN0ZXJJRCBiYXNlID0gcmVnVDA7CiAgICAgUmVnaXN0ZXJJRCBwcm9wZXJ0eSA9
IHJlZ1QyOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdCA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdU
MCk7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gcmVnVDM7CiAgICAgUmVnaXN0ZXJJRCBzY3Jh
dGNoMiA9IHJlZ1Q0OwotICAgIFJlZ2lzdGVySUQgc2NyYXRjaDMgPSByZWdUNTsKICNlbmRpZgog
CiAgICAgbG9hZDgoQWRkcmVzcyhiYXNlLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwg
c2NyYXRjaCk7CiAgICAgYmFkVHlwZSA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFsLCBzY3Jh
dGNoLCBUcnVzdGVkSW1tMzIoU2NvcGVkQXJndW1lbnRzVHlwZSkpOwotICAgIGxvYWRQdHIoQWRk
cmVzcyhiYXNlLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mU3RvcmFnZSgpKSwgc2NyYXRjaDMp
OwotICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoMzIoQWJvdmVPckVxdWFsLCBwcm9wZXJ0eSwg
QWRkcmVzcyhzY3JhdGNoMywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRvdGFsTGVuZ3RoSW5T
dG9yYWdlKCkpKSk7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2gzMihBYm92ZU9yRXF1YWws
IHByb3BlcnR5LCBBZGRyZXNzKGJhc2UsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExl
bmd0aCgpKSkpOwogICAgIAogICAgIGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBTY29wZWRBcmd1bWVu
dHM6Om9mZnNldE9mVGFibGUoKSksIHNjcmF0Y2gpOwogICAgIGxvYWQzMihBZGRyZXNzKHNjcmF0
Y2gsIFNjb3BlZEFyZ3VtZW50c1RhYmxlOjpvZmZzZXRPZkxlbmd0aCgpKSwgc2NyYXRjaDIpOwpA
QCAtMTY2MSwxNCArMTY1OCwxMSBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdFNjb3BlZEFyZ3Vt
ZW50c0dldEJ5VmFsKGNvbnN0IEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcAogICAgIG92ZXJm
bG93Q2FzZS5saW5rKHRoaXMpOwogICAgIHN1YjMyKHByb3BlcnR5LCBzY3JhdGNoMik7CiAgICAg
bmVnMzIoc2NyYXRjaDIpOwotICAgIGxvYWRWYWx1ZShCYXNlSW5kZXgoc2NyYXRjaDMsIHNjcmF0
Y2gyLCBUaW1lc0VpZ2h0KSwgcmVzdWx0KTsKKyAgICBsb2FkUHRyKEFkZHJlc3MoYmFzZSwgU2Nv
cGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHNjcmF0Y2gpOworICAgIGxvYWRWYWx1
ZShCYXNlSW5kZXgoc2NyYXRjaCwgc2NyYXRjaDIsIFRpbWVzRWlnaHQpLCByZXN1bHQpOwogICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoSWZFbXB0eShyZXN1bHQpKTsKICAgICBkb25lLmxpbmso
dGhpcyk7CiAgICAgCi0gICAgbG9hZDMyKEFkZHJlc3Moc2NyYXRjaDMsIFNjb3BlZEFyZ3VtZW50
czo6b2Zmc2V0T2ZUb3RhbExlbmd0aEluU3RvcmFnZSgpKSwgc2NyYXRjaCk7Ci0gICAgZW1pdFBy
ZXBhcmVQcmVjaXNlSW5kZXhNYXNrMzIocHJvcGVydHksIHNjcmF0Y2gsIHNjcmF0Y2gyKTsKLSAg
ICBhbmRQdHIoc2NyYXRjaDIsIHJlc3VsdC5wYXlsb2FkR1BSKCkpOwotICAgIAogICAgIHJldHVy
biBzbG93Q2FzZXM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
Y29wZWRBcmd1bWVudHMuY3BwCmluZGV4IGY0ODBiMTc1N2FjOTMzNGE3M2QzYTZiZjhmYjdmOWNh
NjBkZWM2NGQuLjA4MWQ5NzhhN2IyYTYyNjZhYzU1MmMzNzlkMzg0NTAwNWRjMTFmMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmNwcApA
QCAtMzUsMTEgKzM1LDEyIEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShTY29wZWRBcmd1bWVudHMpOwogCiBjb25zdCBDbGFzc0luZm8gU2NvcGVkQXJndW1lbnRzOjpz
X2luZm8gPSB7ICJBcmd1bWVudHMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFNjb3BlZEFyZ3VtZW50cykgfTsKIAotU2NvcGVkQXJndW1lbnRz
OjpTY29wZWRBcmd1bWVudHMoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV3JpdGVCYXJy
aWVyPFVua25vd24+KiBzdG9yYWdlKQorU2NvcGVkQXJndW1lbnRzOjpTY29wZWRBcmd1bWVudHMo
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9y
YWdlLCB1bnNpZ25lZCB0b3RhbExlbmd0aCkKICAgICA6IEdlbmVyaWNBcmd1bWVudHModm0sIHN0
cnVjdHVyZSkKLSAgICAsIG1fc3RvcmFnZSh2bSwgdGhpcywgc3RvcmFnZSkKKyAgICAsIG1fdG90
YWxMZW5ndGgodG90YWxMZW5ndGgpCiB7Ci0gICAgQVNTRVJUKCFzdG9yYWdlSGVhZGVyKHN0b3Jh
Z2UpLm92ZXJyb2RlVGhpbmdzKTsKKyAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAgbV9zdG9yYWdl
LnNldCh2bSwgdGhpcywgc3RvcmFnZSk7CiB9CiAKIHZvaWQgU2NvcGVkQXJndW1lbnRzOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTRnVuY3Rpb24qIGNhbGxlZSwgU2NvcGVkQXJndW1lbnRzVGFi
bGUqIHRhYmxlLCBKU0xleGljYWxFbnZpcm9ubWVudCogc2NvcGUpCkBAIC01MiwyMiArNTMsMTYg
QEAgdm9pZCBTY29wZWRBcmd1bWVudHM6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNGdW5jdGlv
biogY2FsbGVlLCBTY29wZWRBcmd1bWVudHMKIAogU2NvcGVkQXJndW1lbnRzKiBTY29wZWRBcmd1
bWVudHM6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1bWVudHNUYWJsZSogdGFibGUsIEpTTGV4aWNh
bEVudmlyb25tZW50KiBzY29wZSwgdW5zaWduZWQgdG90YWxMZW5ndGgpCiB7Ci0gICAgdW5zaWdu
ZWQgb3ZlcmZsb3dMZW5ndGg7Ci0gICAgaWYgKHRvdGFsTGVuZ3RoID4gdGFibGUtPmxlbmd0aCgp
KQotICAgICAgICBvdmVyZmxvd0xlbmd0aCA9IHRvdGFsTGVuZ3RoIC0gdGFibGUtPmxlbmd0aCgp
OwotICAgIGVsc2UKLSAgICAgICAgb3ZlcmZsb3dMZW5ndGggPSAwOwotICAgIAotICAgIHZvaWQq
IHJhd1N0b3JhZ2VQdHIgPSB2bS5qc1ZhbHVlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZS5hbGxvY2F0
ZU5vblZpcnR1YWwoCi0gICAgICAgIHZtLCBzdG9yYWdlU2l6ZShvdmVyZmxvd0xlbmd0aCksIG51
bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0KTsKLSAgICBXcml0ZUJhcnJpZXI8
VW5rbm93bj4qIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihy
YXdTdG9yYWdlUHRyKSArIDE7Ci0gICAgc3RvcmFnZUhlYWRlcihzdG9yYWdlKS5vdmVycm9kZVRo
aW5ncyA9IGZhbHNlOwotICAgIHN0b3JhZ2VIZWFkZXIoc3RvcmFnZSkudG90YWxMZW5ndGggPSB0
b3RhbExlbmd0aDsKLSAgICAKKyAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHN0b3JhZ2UgPSBu
dWxscHRyOworICAgIGlmICh0b3RhbExlbmd0aCA+IHRhYmxlLT5sZW5ndGgoKSkgeworICAgICAg
ICBDaGVja2VkPHVuc2lnbmVkPiBvdmVyZmxvd0xlbmd0aCA9IHRvdGFsTGVuZ3RoIC0gdGFibGUt
Pmxlbmd0aCgpOworICAgICAgICBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8V3JpdGVCYXJyaWVyPFVu
a25vd24+Kj4odm0uanNWYWx1ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2UuYWxsb2NhdGVOb25WaXJ0
dWFsKHZtLCAob3ZlcmZsb3dMZW5ndGggKiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSku
dW5zYWZlR2V0KCksIG51bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0KSk7Cisg
ICAgfQorCiAgICAgU2NvcGVkQXJndW1lbnRzKiByZXN1bHQgPSBuZXcgKAogICAgICAgICBOb3RO
dWxsLAogICAgICAgICBhbGxvY2F0ZUNlbGw8U2NvcGVkQXJndW1lbnRzPih2bS5oZWFwKSkKLSAg
ICAgICAgU2NvcGVkQXJndW1lbnRzKHZtLCBzdHJ1Y3R1cmUsIHN0b3JhZ2UpOworICAgICAgICBT
Y29wZWRBcmd1bWVudHModm0sIHN0cnVjdHVyZSwgc3RvcmFnZSwgdG90YWxMZW5ndGgpOwogICAg
IHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24odm0sIGNhbGxlZSwgdGFibGUsIHNjb3BlKTsKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQpAQCAtNzksNyArNzQsNyBAQCBTY29wZWRBcmd1bWVudHMqIFNjb3Bl
ZEFyZ3VtZW50czo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRnVuY3Rp
bwogCiAgICAgdW5zaWduZWQgbmFtZWRMZW5ndGggPSB0YWJsZS0+bGVuZ3RoKCk7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gbmFtZWRMZW5ndGg7IGkgPCB0b3RhbExlbmd0aDsgKytpKQotICAgICAg
ICByZXN1bHQtPm92ZXJmbG93U3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uY2xlYXIoKTsKKyAg
ICAgICAgcmVzdWx0LT5zdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5jbGVhcigpOwogICAgIAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC05OSw3ICs5NCw3IEBAIFNjb3BlZEFyZ3VtZW50cyog
U2NvcGVkQXJndW1lbnRzOjpjcmVhdGVCeUNvcHlpbmdGcm9tKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1CiAgICAgCiAgICAgdW5zaWduZWQgbmFtZWRMZW5ndGggPSB0YWJsZS0+bGVuZ3RoKCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbmFtZWRMZW5ndGg7IGkgPCB0b3RhbExlbmd0aDsgKytp
KQotICAgICAgICByZXN1bHQtPm92ZXJmbG93U3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uc2V0
KHZtLCByZXN1bHQsIGFyZ3VtZW50c1N0YXJ0W2ldLmpzVmFsdWUoKSk7CisgICAgICAgIHJlc3Vs
dC0+c3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uc2V0KHZtLCByZXN1bHQsIGFyZ3VtZW50c1N0
YXJ0W2ldLmpzVmFsdWUoKSk7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExNCwx
MSArMTA5LDEwIEBAIHZvaWQgU2NvcGVkQXJndW1lbnRzOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVj
dC0+bV90YWJsZSk7CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9zY29wZSk7CiAg
ICAgCi0gICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KCZ0aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVy
KCkpOwotICAgIAotICAgIGlmICh0aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVyKCkudG90YWxMZW5n
dGggPiB0aGlzT2JqZWN0LT5tX3RhYmxlLT5sZW5ndGgoKSkgewotICAgICAgICB2aXNpdG9yLmFw
cGVuZFZhbHVlcygKLSAgICAgICAgICAgIHRoaXNPYmplY3QtPm92ZXJmbG93U3RvcmFnZSgpLCB0
aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVyKCkudG90YWxMZW5ndGggLSB0aGlzT2JqZWN0LT5tX3Rh
YmxlLT5sZW5ndGgoKSk7CisgICAgaWYgKFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9
IHRoaXNPYmplY3QtPm1fc3RvcmFnZS5nZXQoKSkgeworICAgICAgICB2aXNpdG9yLm1hcmtBdXhp
bGlhcnkoc3RvcmFnZSk7CisgICAgICAgIGlmICh0aGlzT2JqZWN0LT5tX3RvdGFsTGVuZ3RoID4g
dGhpc09iamVjdC0+bV90YWJsZS0+bGVuZ3RoKCkpCisgICAgICAgICAgICB2aXNpdG9yLmFwcGVu
ZFZhbHVlcyhzdG9yYWdlLCB0aGlzT2JqZWN0LT5tX3RvdGFsTGVuZ3RoIC0gdGhpc09iamVjdC0+
bV90YWJsZS0+bGVuZ3RoKCkpOwogICAgIH0KIH0KIApAQCAtMTI5LDI5ICsxMjMsMjkgQEAgU3Ry
dWN0dXJlKiBTY29wZWRBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QKIAogdm9pZCBTY29wZWRBcmd1bWVudHM6Om92ZXJyaWRlVGhp
bmdzKFZNJiB2bSkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVCghc3RvcmFnZUhlYWRlcigpLm92ZXJy
b2RlVGhpbmdzKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9vdmVycm9kZVRoaW5ncyk7CiAgICAg
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKG1f
dGFibGUtPmxlbmd0aCgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y2FsbGVl
LCBtX2NhbGxlZS5nZXQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0
b3JTeW1ib2wsIGdsb2JhbE9iamVjdCh2bSktPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigpLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAg
Ci0gICAgc3RvcmFnZUhlYWRlcigpLm92ZXJyb2RlVGhpbmdzID0gdHJ1ZTsKKyAgICBtX292ZXJy
b2RlVGhpbmdzID0gdHJ1ZTsKIH0KIAogdm9pZCBTY29wZWRBcmd1bWVudHM6Om92ZXJyaWRlVGhp
bmdzSWZOZWNlc3NhcnkoVk0mIHZtKQogewotICAgIGlmICghc3RvcmFnZUhlYWRlcigpLm92ZXJy
b2RlVGhpbmdzKQorICAgIGlmICghbV9vdmVycm9kZVRoaW5ncykKICAgICAgICAgb3ZlcnJpZGVU
aGluZ3Modm0pOwogfQogCiB2b2lkIFNjb3BlZEFyZ3VtZW50czo6dW5tYXBBcmd1bWVudChWTSYg
dm0sIHVpbnQzMl90IGkpCiB7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
aSA8IHN0b3JhZ2VIZWFkZXIoKS50b3RhbExlbmd0aCk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oaSA8IG1fdG90YWxMZW5ndGgpOwogICAgIHVuc2lnbmVkIG5hbWVkTGVu
Z3RoID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAgaWYgKGkgPCBuYW1lZExlbmd0aCkKICAgICAg
ICAgbV90YWJsZS5zZXQodm0sIHRoaXMsIG1fdGFibGUtPnNldCh2bSwgaSwgU2NvcGVPZmZzZXQo
KSkpOwogICAgIGVsc2UKLSAgICAgICAgb3ZlcmZsb3dTdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3Ro
XS5jbGVhcigpOworICAgICAgICBzdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5jbGVhcigpOwog
fQogCiB2b2lkIFNjb3BlZEFyZ3VtZW50czo6Y29weVRvQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBWaXJ0dWFsUmVnaXN0ZXIgZmly
c3RFbGVtZW50RGVzdCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCmluZGV4IGZkMTg0
NGQ1YmI3ZmI0NDZmYWRlYzJlMTlkZmY2MTA1ZjdhMzdjYzEuLmY4NWU0N2RmYmVlOGNhN2MzNzA0
ZjI5ZWQ0Y2IxYjRlOTcyMDQ0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Njb3BlZEFyZ3VtZW50cy5oCkBAIC0zOCwxNiArMzgsMTYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAvLyBsb29rdXBzLgogY2xhc3MgU2NvcGVkQXJndW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVy
aWNBcmd1bWVudHM8U2NvcGVkQXJndW1lbnRzPiB7CiBwcml2YXRlOgotICAgIFNjb3BlZEFyZ3Vt
ZW50cyhWTSYsIFN0cnVjdHVyZSosIFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSk7Cisg
ICAgU2NvcGVkQXJndW1lbnRzKFZNJiwgU3RydWN0dXJlKiwgV3JpdGVCYXJyaWVyPFVua25vd24+
KiBzdG9yYWdlLCB1bnNpZ25lZCB0b3RhbExlbmd0aCk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihWTSYsIEpTRnVuY3Rpb24qIGNhbGxlZSwgU2NvcGVkQXJndW1lbnRzVGFibGUqLCBKU0xleGlj
YWxFbnZpcm9ubWVudCopOwogICAgIHVzaW5nIEJhc2UgPSBHZW5lcmljQXJndW1lbnRzPFNjb3Bl
ZEFyZ3VtZW50cz47CiAKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwg
U3Vic3BhY2VBY2Nlc3M+Ci0gICAgc3RhdGljIENvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9y
KFZNJiB2bSkKKyAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKICAg
ICB7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uLCAi
Iik7Ci0gICAgICAgIHJldHVybiAmdm0udmFyaWFibGVTaXplZENlbGxTcGFjZTsKKyAgICAgICAg
cmV0dXJuICZ2bS5zY29wZWRBcmd1bWVudHNTcGFjZTsKICAgICB9CiAKICAgICAvLyBDcmVhdGVz
IGFuIGFyZ3VtZW50cyBvYmplY3QgYnV0IGxlYXZlcyBpdCB1bmluaXRpYWxpemVkLiBUaGlzIGlz
IGRhbmdlcm91cyBpZiB3ZSBHQyByaWdodApAQCAtNjgsMTQgKzY4LDE0IEBAIGNsYXNzIFNjb3Bl
ZEFyZ3VtZW50cyBmaW5hbCA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50
cz4gewogICAgIAogICAgIHVpbnQzMl90IGludGVybmFsTGVuZ3RoKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIHJldHVybiBzdG9yYWdlSGVhZGVyKCkudG90YWxMZW5ndGg7CisgICAgICAgIHJldHVy
biBtX3RvdGFsTGVuZ3RoOwogICAgIH0KICAgICAKICAgICB1aW50MzJfdCBsZW5ndGgoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKICAgICB7CiAgICAgICAgIFZNJiB2bSA9IGdl
dFZNKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKHN0b3JhZ2VIZWFkZXIoKS5vdmVycm9kZVRo
aW5ncykpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKG1fb3ZlcnJvZGVUaGluZ3MpKSB7CiAgICAg
ICAgICAgICBhdXRvIHZhbHVlID0gZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIDApOwogICAg
ICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCB2YWx1ZS50b1VJbnQzMihnbG9iYWxP
YmplY3QpKTsKQEAgLTg1LDEzICs4NSwxMiBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwg
OiBwdWJsaWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAgICAKICAgICBi
b29sIGlzTWFwcGVkQXJndW1lbnQodWludDMyX3QgaSkgY29uc3QKICAgICB7Ci0gICAgICAgIFdy
aXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9IG92ZXJmbG93U3RvcmFnZSgpOwotICAgICAg
ICBpZiAoaSA+PSBzdG9yYWdlSGVhZGVyKHN0b3JhZ2UpLnRvdGFsTGVuZ3RoKQorICAgICAgICBp
ZiAoaSA+PSBtX3RvdGFsTGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB1bnNpZ25lZCBuYW1lZExlbmd0aCA9IG1fdGFibGUtPmxlbmd0aCgpOwogICAgICAgICBpZiAo
aSA8IG5hbWVkTGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuICEhbV90YWJsZS0+Z2V0KGkpOwot
ICAgICAgICByZXR1cm4gISFzdG9yYWdlW2kgLSBuYW1lZExlbmd0aF0uZ2V0KCk7CisgICAgICAg
IHJldHVybiAhIXN0b3JhZ2UoKVtpIC0gbmFtZWRMZW5ndGhdLmdldCgpOwogICAgIH0KIAogICAg
IGJvb2wgaXNNYXBwZWRBcmd1bWVudEluREZHKHVpbnQzMl90IGkpIGNvbnN0CkBAIC0xMDIsMjQg
KzEwMSwyMCBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJsaWMgR2VuZXJpY0Fy
Z3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAgICBKU1ZhbHVlIGdldEluZGV4UXVpY2tseSh1
aW50MzJfdCBpKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oaXNNYXBwZWRBcmd1bWVudChpKSk7Ci0gICAgICAgIFdyaXRlQmFycmllcjxVbmtu
b3duPiogc3RvcmFnZSA9IG92ZXJmbG93U3RvcmFnZSgpOwotICAgICAgICB1bnNpZ25lZCB0b3Rh
bExlbmd0aCA9IHN0b3JhZ2VIZWFkZXIoc3RvcmFnZSkudG90YWxMZW5ndGg7CiAgICAgICAgIHVu
c2lnbmVkIG5hbWVkTGVuZ3RoID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAgICAgIGlmIChpIDwg
bmFtZWRMZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gcHJlY2lzZUluZGV4TWFza1B0cihpLCB0
b3RhbExlbmd0aCwgJm1fc2NvcGUtPnZhcmlhYmxlQXQobV90YWJsZS0+Z2V0KGkpKSktPmdldCgp
OwotICAgICAgICByZXR1cm4gcHJlY2lzZUluZGV4TWFza1B0cihpLCB0b3RhbExlbmd0aCwgc3Rv
cmFnZSArIChpIC0gbmFtZWRMZW5ndGgpKS0+Z2V0KCk7CisgICAgICAgICAgICByZXR1cm4gbV9z
Y29wZS0+dmFyaWFibGVBdChtX3RhYmxlLT5nZXQoaSkpLmdldCgpOworICAgICAgICByZXR1cm4g
c3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uZ2V0KCk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRJ
bmRleFF1aWNrbHkoVk0mIHZtLCB1aW50MzJfdCBpLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAg
ICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNNYXBwZWRBcmd1bWVudChp
KSk7Ci0gICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9IG92ZXJmbG93U3Rv
cmFnZSgpOwotICAgICAgICB1bnNpZ25lZCB0b3RhbExlbmd0aCA9IHN0b3JhZ2VIZWFkZXIoc3Rv
cmFnZSkudG90YWxMZW5ndGg7CiAgICAgICAgIHVuc2lnbmVkIG5hbWVkTGVuZ3RoID0gbV90YWJs
ZS0+bGVuZ3RoKCk7CiAgICAgICAgIGlmIChpIDwgbmFtZWRMZW5ndGgpCi0gICAgICAgICAgICBw
cmVjaXNlSW5kZXhNYXNrUHRyKGksIHRvdGFsTGVuZ3RoLCAmbV9zY29wZS0+dmFyaWFibGVBdCht
X3RhYmxlLT5nZXQoaSkpKS0+c2V0KHZtLCBtX3Njb3BlLmdldCgpLCB2YWx1ZSk7CisgICAgICAg
ICAgICBtX3Njb3BlLT52YXJpYWJsZUF0KG1fdGFibGUtPmdldChpKSkuc2V0KHZtLCBtX3Njb3Bl
LmdldCgpLCB2YWx1ZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByZWNpc2VJbmRleE1h
c2tQdHIoaSwgdG90YWxMZW5ndGgsIHN0b3JhZ2UgKyAoaSAtIG5hbWVkTGVuZ3RoKSktPnNldCh2
bSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAgc3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0u
c2V0KHZtLCB0aGlzLCB2YWx1ZSk7CiAgICAgfQogCiAgICAgSlNGdW5jdGlvbiogY2FsbGVlKCkK
QEAgLTEyNyw3ICsxMjIsNyBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJsaWMg
R2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGVlLmdldCgpOwogICAgIH0KIAotICAgIGJvb2wgb3ZlcnJvZGVUaGluZ3MoKSBjb25zdCB7IHJl
dHVybiBzdG9yYWdlSGVhZGVyKCkub3ZlcnJvZGVUaGluZ3M7IH0KKyAgICBib29sIG92ZXJyb2Rl
VGhpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycm9kZVRoaW5nczsgfQogICAgIHZvaWQgb3Zl
cnJpZGVUaGluZ3MoVk0mKTsKICAgICB2b2lkIG92ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoVk0m
KTsKICAgICB2b2lkIHVubWFwQXJndW1lbnQoVk0mLCB1aW50MzJfdCBpbmRleCk7CkBAIC0xNTMs
NDcgKzE0OCwyMCBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJsaWMgR2VuZXJp
Y0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAgICAKICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBl
KTsKICAgICAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RvcmFnZSgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fc3RvcmFnZSk7IH0KLSAgICBzdGF0
aWMgcHRyZGlmZl90IG9mZnNldE9mT3ZlcnJvZGVUaGluZ3NJblN0b3JhZ2UoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoU3RvcmFnZUhlYWRlciwgb3ZlcnJvZGVUaGluZ3MpIC0gc2l6ZW9mKFdy
aXRlQmFycmllcjxVbmtub3duPik7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mVG90
YWxMZW5ndGhJblN0b3JhZ2UoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RvcmFnZUhlYWRl
ciwgdG90YWxMZW5ndGgpIC0gc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPik7IH0KKyAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mT3ZlcnJvZGVUaGluZ3MoKSB7IHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoU2NvcGVkQXJndW1lbnRzLCBtX292ZXJyb2RlVGhpbmdzKTsgfQorICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZUb3RhbExlbmd0aCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihTY29wZWRBcmd1bWVudHMsIG1fdG90YWxMZW5ndGgpOyB9CiAgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZlRhYmxlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFNjb3BlZEFyZ3VtZW50
cywgbV90YWJsZSk7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU2NvcGUoKSB7IHJl
dHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NvcGVkQXJndW1lbnRzLCBtX3Njb3BlKTsgfQotICAgIAot
ICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoc2l6ZV90IGlubGluZVNpemUpCi0gICAg
ewotICAgICAgICBSRUxFQVNFX0FTU0VSVCghaW5saW5lU2l6ZSk7Ci0gICAgICAgIHJldHVybiBz
aXplb2YoU2NvcGVkQXJndW1lbnRzKTsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIHNpemVfdCBz
dG9yYWdlU2l6ZShDaGVja2VkPHNpemVfdD4gY2FwYWNpdHkpCi0gICAgewotICAgICAgICByZXR1
cm4gKHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICogKGNhcGFjaXR5ICsgc3RhdGljX2Nh
c3Q8c2l6ZV90PigxKSkpLnVuc2FmZUdldCgpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgc2l6
ZV90IHN0b3JhZ2VIZWFkZXJTaXplKCkgeyByZXR1cm4gc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtu
b3duPik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RvcmFnZSgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fc3RvcmFnZSk7IH0KICAgICAKIHBy
aXZhdGU6Ci0gICAgc3RydWN0IFN0b3JhZ2VIZWFkZXIgewotICAgICAgICB1bnNpZ25lZCB0b3Rh
bExlbmd0aDsKLSAgICAgICAgYm9vbCBvdmVycm9kZVRoaW5nczsgLy8gVHJ1ZSBpZiBsZW5ndGgs
IGNhbGxlZSwgYW5kIGNhbGxlciBhcmUgZnVsbHkgbWF0ZXJpYWxpemVkIGluIHRoZSBvYmplY3Qu
Ci0gICAgfTsKLSAgICAKLSAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIG92ZXJmbG93U3RvcmFn
ZSgpIGNvbnN0CisgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX3N0b3JhZ2UuZ2V0KCk7CiAgICAgfQogICAgIAotICAgIHN0
YXRpYyBTdG9yYWdlSGVhZGVyJiBzdG9yYWdlSGVhZGVyKFdyaXRlQmFycmllcjxVbmtub3duPiog
c3RvcmFnZSkKLSAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFN0b3JhZ2VIZWFk
ZXIpIDw9IHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pLCAiU3RvcmFnZUhlYWRlciBuZWVk
cyB0byBiZSBubyBiaWdnZXIgdGhhbiBhIEpTVmFsdWUiKTsKLSAgICAgICAgcmV0dXJuICpiaXR3
aXNlX2Nhc3Q8U3RvcmFnZUhlYWRlcio+KHN0b3JhZ2UgLSAxKTsKLSAgICB9Ci0gICAgCi0gICAg
U3RvcmFnZUhlYWRlciYgc3RvcmFnZUhlYWRlcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1
cm4gc3RvcmFnZUhlYWRlcihvdmVyZmxvd1N0b3JhZ2UoKSk7Ci0gICAgfQotICAgIAorICAgIGJv
b2wgbV9vdmVycm9kZVRoaW5ncyB7IGZhbHNlIH07IC8vIFRydWUgaWYgbGVuZ3RoLCBjYWxsZWUs
IGFuZCBjYWxsZXIgYXJlIGZ1bGx5IG1hdGVyaWFsaXplZCBpbiB0aGUgb2JqZWN0LgorICAgIHVu
c2lnbmVkIG1fdG90YWxMZW5ndGg7IC8vIFRoZSBsZW5ndGggb2YgZGVjbGFyZWQgcGx1cyBvdmVy
ZmxvdyBhcmd1bWVudHMuCiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fY2FsbGVlOwog
ICAgIFdyaXRlQmFycmllcjxTY29wZWRBcmd1bWVudHNUYWJsZT4gbV90YWJsZTsKICAgICBXcml0
ZUJhcnJpZXI8SlNMZXhpY2FsRW52aXJvbm1lbnQ+IG1fc2NvcGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5jcHAKaW5kZXggMDc1YzlmODk5YWZiZDlmYjFiYjY4OTlkMDcyZWQwZmM4MzUw
ZTIzNS4uNzRkNDBmNDVmZDQxMDA4N2ZiODE5ZjMxMzUwZGY5Y2MwOTdhZjQxNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTMwLDYgKzEzMCw3IEBACiAjaW5jbHVkZSAi
UmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJSdW50aW1lVHlwZS5oIgogI2luY2x1
ZGUgIlNhbXBsaW5nUHJvZmlsZXIuaCIKKyNpbmNsdWRlICJTY29wZWRBcmd1bWVudHMuaCIKICNp
bmNsdWRlICJTaGFkb3dDaGlja2VuLmgiCiAjaW5jbHVkZSAiU2ltcGxlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92aWRlckNhY2hlLmgiCkBAIC0yODIsNiArMjgz
LDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgbmF0
aXZlRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIE5hdGl2ZUV4ZWN1dGFibGUpIC8vIEhhc2g6MHg2NzU2N2Y5
NQogICAgICwgcHJvcGVydHlUYWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFByb3BlcnR5VGFibGUpIC8vIEhhc2g6MHhj
NmJjOWYxMgogICAgICwgcm9wZVN0cmluZ1NwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIHN0
cmluZ0hlYXBDZWxsVHlwZS5nZXQoKSwgSlNSb3BlU3RyaW5nKQorICAgICwgc2NvcGVkQXJndW1l
bnRzU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwg
U2NvcGVkQXJndW1lbnRzKQogICAgICwgc3BhcnNlQXJyYXlWYWx1ZU1hcFNwYWNlIElTT19TVUJT
UEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFNwYXJz
ZUFycmF5VmFsdWVNYXApCiAgICAgLCBzdHJpbmdTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFw
LCBzdHJpbmdIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTU3RyaW5nKSAvLyBIYXNoOjB4OTBjZjc1OGYK
ICAgICAsIHN0cnVjdHVyZVJhcmVEYXRhU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVz
dHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU3RydWN0dXJlUmFyZURhdGEpIC8vIEhh
c2g6MHhhY2E0ZTYyZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggZTZkNmNiZTU3
N2MzZTZmMWZjMDY0NmI2NTNhMWQ3ZWYzNGMzZDRmMS4uZjY2MDY1NDQyYjI2OTViMTE1ZDI1MmUy
MDRlMWUxNDZmNjUwNGU1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC0zODMs
NiArMzgzLDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBw
dWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBJc29TdWJzcGFjZSBuYXRpdmVF
eGVjdXRhYmxlU3BhY2U7CiAgICAgSXNvU3Vic3BhY2UgcHJvcGVydHlUYWJsZVNwYWNlOwogICAg
IElzb1N1YnNwYWNlIHJvcGVTdHJpbmdTcGFjZTsKKyAgICBJc29TdWJzcGFjZSBzY29wZWRBcmd1
bWVudHNTcGFjZTsKICAgICBJc29TdWJzcGFjZSBzcGFyc2VBcnJheVZhbHVlTWFwU3BhY2U7CiAg
ICAgSXNvU3Vic3BhY2Ugc3RyaW5nU3BhY2U7CiAgICAgSXNvU3Vic3BhY2Ugc3RydWN0dXJlUmFy
ZURhdGFTcGFjZTsK
</data>
<flag name="review"
          id="399443"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383689</attachid>
            <date>2019-11-15 22:51:09 -0800</date>
            <delta_ts>2019-11-15 22:55:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204269-20191115225108.patch</filename>
            <type>text/plain</type>
            <size>37276</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NWJlNTE1NDMxODgxY2U3OGE5ZTlmMDY4NTMxNTYyOTFlODliODM2Li44YTFlNmQ3NWVjNDdiYjc1
ZDM5MDI1ZmE1YjczYzZkOTY5ZmVjY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0xMS0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBpbmRleC1tYXNraW5nIG9uIFNjb3BlZEFyZ3VtZW50
cyBhbmQgcHV0IGl0IGluIElzb1N1YnNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgcmVtb3ZlIGluZGV4LW1hc2tpbmcgZm9yIFNj
b3BlZEFyZ3VtZW50cy4gVGhpcyBwYXRjaCByZXZlcnRzIGl0LgorICAgICAgICBXZSBzdGlsbCB1
c2UgQXV4aWxpYXJ5QnVmZmVyLCBhbmQgYXZvaWQgdXNpbmcgdmFyaWFibGUgc2l6ZWQgY2VsbC4g
VGhlbiwKKyAgICAgICAgdGhpcyBwYXRjaCBhbHNvIHB1dHMgU2NvcGVkQXJndW1lbnRzIGluIElz
b1N1YnNwYWNlLgorCisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHA6CisgICAgICAg
IChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6CisgICAgICAgICogZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6TG93ZXJERkdUb0IzKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEFycmF5TGVu
Z3RoKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEJ5
VmFsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldE15
QXJndW1lbnRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnBy
ZWNpc2VJbmRleE1hc2s2NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OnByZWNpc2VJbmRleE1hc2szMik6IERlbGV0ZWQuCisgICAgICAgICogaml0L0Fz
c2VtYmx5SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFBy
ZXBhcmVQcmVjaXNlSW5kZXhNYXNrMzIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3NlbWJs
eUhlbHBlcnMuaDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpK
SVQpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZXRCeVZhbCk6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU2Nv
cGVkQXJndW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpTY29wZWRB
cmd1bWVudHMpOgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVudHM6OmNyZWF0ZVVuaW5pdGlh
bGl6ZWQpOgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVudHM6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OlNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlQnlDb3B5aW5nRnJvbSk6CisgICAgICAgIChK
U0M6OlNjb3BlZEFyZ3VtZW50czo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgIChKU0M6OlNjb3Bl
ZEFyZ3VtZW50czo6b3ZlcnJpZGVUaGluZ3MpOgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1bWVu
dHM6Om92ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkpOgorICAgICAgICAoSlNDOjpTY29wZWRBcmd1
bWVudHM6OnVubWFwQXJndW1lbnQpOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVkQXJndW1lbnRz
Lmg6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6Cisg
ICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCM0lSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3Qp
OgorCiAyMDE5LTExLTE1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gREZHIHN0cmVuZ3RoIHJlZHVjdGlvbiBzaG91bGQgZGVmaW5lICJncm91cHMi
IGZvciBSZWdFeHAgY29uc3RhbnQtZm9sZGVkIHJlc3VsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlOThkN2Q5N2I1ZDNiNTA1
Mzk3YzIyMzlmMDI1ZmM5MjcyYWQ0ZmYwLi40M2ZkYjY3ZjFhYWM4NGMxZjFjYWI5ODkzMzMzY2E4
Njk5Yzk4YmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTExLTE1ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gUmVtb3ZlIGluZGV4LW1hc2tp
bmcgb24gU2NvcGVkQXJndW1lbnRzIGFuZCBwdXQgaXQgaW4gSXNvU3Vic3BhY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDI2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL01hdGhFeHRyYXMu
aDoKKyAgICAgICAgKFdURjo6Y29tcHV0ZUluZGV4aW5nTWFzayk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OnByZWNpc2VJbmRleE1hc2tTaGlmdEZvclNpemUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpwcmVjaXNlSW5kZXhNYXNrU2hpZnQpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpvcGFx
dWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpwcmVjaXNlSW5kZXhNYXNrUHRyKTogRGVsZXRl
ZC4KKwogMjAxOS0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIEJsb2NrRGlyZWN0b3J5J3MgYml0cyBzaG91bGQgYmUgY29tcGFjdApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDhhNTcy
M2ExZTMwOWE0YzBiZmUzNGQ4ZWZmYTVjYzUxNzYxYmU0YjkuLjg1N2JjNmUxM2IxMTUwYjUyMjI3
YTQ1YmJhNDk0MDQyMjQxZWZlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9BY2Nlc3NDYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTU3NiwxNSArNTc2LDEyIEBAIHZvaWQgQWNjZXNzQ2FzZTo6
Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgIGZhbGxUaHJvdWdoLmFwcGVuZCgKICAgICAgICAg
ICAgIGppdC5icmFuY2hJZk5vdFR5cGUoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzVHlwZSkpOwog
Ci0gICAgICAgIGppdC5sb2FkUHRyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KGJhc2VHUFIsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTdG9yYWdlKCkpLAotICAgICAgICAg
ICAgc2NyYXRjaEdQUik7CiAgICAgICAgIGZhbGxUaHJvdWdoLmFwcGVuZCgKICAgICAgICAgICAg
IGppdC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vblplcm8s
Ci0gICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFNjb3Bl
ZEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5nc0luU3RvcmFnZSgpKSkpOworICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBTY29wZWRBcmd1bWVudHM6
Om9mZnNldE9mT3ZlcnJvZGVUaGluZ3MoKSkpKTsKICAgICAgICAgaml0LmxvYWQzMigKLSAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBTY29wZWRBcmd1bWVudHM6
Om9mZnNldE9mVG90YWxMZW5ndGhJblN0b3JhZ2UoKSksCisgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRvdGFsTGVuZ3Ro
KCkpLAogICAgICAgICAgICAgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7CiAgICAgICAgIGppdC5i
b3hJbnQzMih2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJlZ3MpOwogICAgICAgICBzdGF0
ZS5zdWNjZWVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCmluZGV4IGI4NDk2NjZjNWZjMmRkN2NhNDdkNDAxNDYyY2FkNGEzYThkNTI4NDEu
Ljg5NjM0ZjNiZGQ5ZTBmMjBjMzFmMDA1ZmM0Nzc5Mzg0NzRhM2U4ZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC02OTY3LDE0ICs2
OTY3LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJn
dW1lbnRzKE5vZGUqIG5vZGUpCiAgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMp
OwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAgIEdQUlRlbXBvcmFyeSBzY3Jh
dGNoMih0aGlzKTsKLSAgICBHUFJUZW1wb3JhcnkgaW5kZXhNYXNrKHRoaXMpOwogICAgIAogICAg
IEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBw
cm9wZXJ0eS5ncHIoKTsKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3Mo
KTsKICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHNjcmF0Y2guZ3ByKCk7CiAgICAgR1BSUmVnIHNj
cmF0Y2gyUmVnID0gc2NyYXRjaDIuZ3ByKCk7Ci0gICAgR1BSUmVnIGluZGV4TWFza1JlZyA9IGlu
ZGV4TWFzay5ncHIoKTsKICAgICAKICAgICBpZiAoIW1fY29tcGlsZU9rYXkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTY5ODMsMTUgKzY5ODEsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEJ5VmFsT25TY29wZWRBcmd1bWVudHMoTm9kZSogbm9kZSkKICAgICAKICAgICBtX2ppdC5s
b2FkUHRyKAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBTY29wZWRB
cmd1bWVudHM6Om9mZnNldE9mU3RvcmFnZSgpKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOwot
ICAgIG1faml0LmxvYWQzMigKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0
UmVncy5wYXlsb2FkR1BSKCksIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aElu
U3RvcmFnZSgpKSwKLSAgICAgICAgc2NyYXRjaFJlZyk7Ci0gICAgCisKICAgICBzcGVjdWxhdGlv
bkNoZWNrKAogICAgICAgICBFeG90aWNPYmplY3RNb2RlLCBKU1ZhbHVlU291cmNlKCksIG51bGxw
dHIsCi0gICAgICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWws
IHByb3BlcnR5UmVnLCBzY3JhdGNoUmVnKSk7Ci0gICAgCi0gICAgbV9qaXQuZW1pdFByZXBhcmVQ
cmVjaXNlSW5kZXhNYXNrMzIocHJvcGVydHlSZWcsIHNjcmF0Y2hSZWcsIGluZGV4TWFza1JlZyk7
CisgICAgICAgIG1faml0LmJyYW5jaDMyKAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFi
b3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhiYXNlUmVnLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGgoKSkpKTsK
ICAgICAKICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcs
IFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUYWJsZSgpKSwgc2NyYXRjaFJlZyk7CiAgICAgbV9q
aXQubG9hZDMyKApAQCAtNzAzNCw4ICs3MDI5LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ5VmFsT25TY29wZWRBcmd1bWVudHMoTm9kZSogbm9kZSkKICAgICAKICAgICBkb25l
LmxpbmsoJm1faml0KTsKICAgICAKLSAgICBtX2ppdC5hbmRQdHIoaW5kZXhNYXNrUmVnLCByZXN1
bHRSZWdzLnBheWxvYWRHUFIoKSk7Ci0gICAgCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdz
LCBub2RlKTsKIH0KIApAQCAtNzE2Niw3ICs3MTU5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgfQogICAgIGNhc2UgQXJyYXk6
OlNjb3BlZEFyZ3VtZW50czogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsK
KyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7CiAgICAgICAg
IAogICAgICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAgICAgICAgIEdQUlJlZyBy
ZXN1bHRSZWcgPSByZXN1bHQuZ3ByKCk7CkBAIC03MTc2LDE3ICs3MTY5LDE0IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2RlKiBub2RlKQogICAgICAgICAK
ICAgICAgICAgQVNTRVJUKEFycmF5TW9kZShBcnJheTo6U2NvcGVkQXJndW1lbnRzLCBBcnJheTo6
UmVhZCkuYWxyZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2Rl
KG5vZGUtPmNoaWxkMSgpKSkpOwogICAgICAgICAKLSAgICAgICAgbV9qaXQubG9hZFB0cigKLSAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50
czo6b2Zmc2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRSZWcpOwotCiAgICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soCiAgICAgICAgICAgICBFeG90aWNPYmplY3RNb2RlLCBKU1ZhbHVlU291cmNlKCksIDAs
CiAgICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKICAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywKLSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhyZXN1bHRSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5nc0luU3Rv
cmFnZSgpKSkpOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VS
ZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5ncygpKSkpOwogICAgICAg
ICAKICAgICAgICAgbV9qaXQubG9hZDMyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MocmVzdWx0UmVnLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGhJblN0
b3JhZ2UoKSksIHJlc3VsdFJlZyk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhiYXNlUmVnLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGgoKSksIHJlc3Vs
dFJlZyk7CiAgICAgICAgIAogICAgICAgICBpbnQzMlJlc3VsdChyZXN1bHRSZWcsIG5vZGUpOwog
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
QWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXggNWRmNDNmNzc0ZmYzNDY2NzBjZTE4NGVjNzU4
ZDFhMTEzMDcyYmQwZi4uODc0MDU3MmJiODU4M2M4NTVjMTZmZmVjMmNkYmM3Zjk4Zjk1MTYwMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5LmgKQEAgLTEzMywxMSArMTMzLDExIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgRlRMIHsKICAgICBtYWNybyhTaGFkb3dDaGlja2VuX1BhY2tldF9zY29wZSwgT0JKRUNUX09G
RlNFVE9GKFNoYWRvd0NoaWNrZW46OlBhY2tldCwgc2NvcGUpKSBcCiAgICAgbWFjcm8oU2hhZG93
Q2hpY2tlbl9QYWNrZXRfY29kZUJsb2NrLCBPQkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6
UGFja2V0LCBjb2RlQmxvY2spKSBcCiAgICAgbWFjcm8oU2hhZG93Q2hpY2tlbl9QYWNrZXRfY2Fs
bFNpdGVJbmRleCwgT0JKRUNUX09GRlNFVE9GKFNoYWRvd0NoaWNrZW46OlBhY2tldCwgY2FsbFNp
dGVJbmRleCkpIFwKLSAgICBtYWNybyhTY29wZWRBcmd1bWVudHNfU3RvcmFnZV9vdmVycm9kZVRo
aW5ncywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzSW5TdG9yYWdlKCkp
IFwKLSAgICBtYWNybyhTY29wZWRBcmd1bWVudHNfU3RvcmFnZV90b3RhbExlbmd0aCwgU2NvcGVk
QXJndW1lbnRzOjpvZmZzZXRPZlRvdGFsTGVuZ3RoSW5TdG9yYWdlKCkpIFwKLSAgICBtYWNybyhT
Y29wZWRBcmd1bWVudHNfc3RvcmFnZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2Uo
KSkgXAorICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19vdmVycm9kZVRoaW5ncywgU2NvcGVkQXJn
dW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzKCkpIFwKICAgICBtYWNybyhTY29wZWRBcmd1
bWVudHNfc2NvcGUsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTY29wZSgpKSBcCisgICAgbWFj
cm8oU2NvcGVkQXJndW1lbnRzX3N0b3JhZ2UsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTdG9y
YWdlKCkpIFwKICAgICBtYWNybyhTY29wZWRBcmd1bWVudHNfdGFibGUsIFNjb3BlZEFyZ3VtZW50
czo6b2Zmc2V0T2ZUYWJsZSgpKSBcCisgICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzX3RvdGFsTGVu
Z3RoLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGgoKSkgXAogICAgIG1hY3Jv
KFNjb3BlZEFyZ3VtZW50c1RhYmxlX2FyZ3VtZW50cywgU2NvcGVkQXJndW1lbnRzVGFibGU6Om9m
ZnNldE9mQXJndW1lbnRzKCkpIFwKICAgICBtYWNybyhTY29wZWRBcmd1bWVudHNUYWJsZV9sZW5n
dGgsIFNjb3BlZEFyZ3VtZW50c1RhYmxlOjpvZmZzZXRPZkxlbmd0aCgpKSBcCiAgICAgbWFjcm8o
U3RyaW5nSW1wbF9kYXRhLCBTdHJpbmdJbXBsOjpkYXRhT2Zmc2V0KCkpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAzN2YwYTk2MDBmNjU3
YWEwNmY3MjVlZGJmMWNjNDAyNzY4ODllMjkwLi5lNWUzNzUzOThjNzM5YmU2NGMxOTkxMmI2ZDIz
Njk0ZDE0YzIwZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCkBAIC0xNTgsNyArMTU4LDYgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAg
ICAgLCBtX2F2YWlsYWJpbGl0eUNhbGN1bGF0b3IobV9ncmFwaCkKICAgICAgICAgLCBtX3N0YXRl
KHN0YXRlLmdyYXBoKQogICAgICAgICAsIG1faW50ZXJwcmV0ZXIoc3RhdGUuZ3JhcGgsIG1fc3Rh
dGUpCi0gICAgICAgICwgbV9pbmRleE1hc2tpbmdNb2RlKE9wdGlvbnM6OmVuYWJsZVNwZWN0cmVN
aXRpZ2F0aW9ucygpID8gIEluZGV4TWFza2luZ0VuYWJsZWQgOiBJbmRleE1hc2tpbmdEaXNhYmxl
ZCkKICAgICB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2YWxpZGF0ZUFic3RyYWN0SW50ZXJwcmV0
ZXJTdGF0ZSgpKSB7CiAgICAgICAgICAgICBwZXJmb3JtTGl2ZW5lc3NBbmFseXNpcyhtX2dyYXBo
KTsKQEAgLTQxODMsMTEgKzQxODIsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
ICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6IHsKICAgICAgICAgICAg
IExWYWx1ZSBhcmd1bWVudHMgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAg
ICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGFyZ3VtZW50cywgbV9oZWFwcy5TY29w
ZWRBcmd1bWVudHNfc3RvcmFnZSk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAg
ICAgICAgRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRyLAotICAgICAgICAgICAg
ICAgIG1fb3V0Lm5vdFplcm8zMihtX291dC5sb2FkOFplcm9FeHQzMihzdG9yYWdlLCBtX2hlYXBz
LlNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX292ZXJyb2RlVGhpbmdzKSkpOwotICAgICAgICAgICAg
c2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoc3RvcmFnZSwgbV9oZWFwcy5TY29wZWRB
cmd1bWVudHNfU3RvcmFnZV90b3RhbExlbmd0aCkpOworICAgICAgICAgICAgICAgIG1fb3V0Lm5v
dFplcm8zMihtX291dC5sb2FkOFplcm9FeHQzMihhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJn
dW1lbnRzX292ZXJyb2RlVGhpbmdzKSkpOworICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9h
ZDMyTm9uTmVnYXRpdmUoYXJndW1lbnRzLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c190b3RhbExl
bmd0aCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAg
LTQzODIsMTIgKzQzODAsMTEgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIExW
YWx1ZSBiYXNlID0gbG93Q2VsbChtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCkpOwogICAg
ICAgICAgICAgTFZhbHVlIGluZGV4ID0gbG93SW50MzIobV9ncmFwaC52YXJBcmdDaGlsZChtX25v
ZGUsIDEpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291
dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3N0b3JhZ2UpOwotICAgICAg
ICAgICAgTFZhbHVlIHRvdGFsTGVuZ3RoID0gbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoCi0gICAg
ICAgICAgICAgICAgc3RvcmFnZSwgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNfU3RvcmFnZV90b3Rh
bExlbmd0aCk7CiAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICAgICAgRXhvdGlj
T2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRyLAotICAgICAgICAgICAgICAgIG1fb3V0LmFi
b3ZlT3JFcXVhbChpbmRleCwgdG90YWxMZW5ndGgpKTsKKyAgICAgICAgICAgICAgICBtX291dC5h
Ym92ZU9yRXF1YWwoCisgICAgICAgICAgICAgICAgICAgIGluZGV4LAorICAgICAgICAgICAgICAg
ICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50
c190b3RhbExlbmd0aCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTFZhbHVlIHRhYmxl
ID0gbV9vdXQubG9hZFB0cihiYXNlLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c190YWJsZSk7CiAg
ICAgICAgICAgICBMVmFsdWUgbmFtZWRMZW5ndGggPSBtX291dC5sb2FkMzIodGFibGUsIG1faGVh
cHMuU2NvcGVkQXJndW1lbnRzVGFibGVfbGVuZ3RoKTsKQEAgLTQ0MTksNiArNDQxNiw3IEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG92ZXJmbG93Q2FzZSwgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIAorICAgICAgICAg
ICAgTFZhbHVlIHN0b3JhZ2UgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJn
dW1lbnRzX3N0b3JhZ2UpOwogICAgICAgICAgICAgYWRkcmVzcyA9IG1fb3V0LmJhc2VJbmRleCgK
ICAgICAgICAgICAgICAgICBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX3N0b3JhZ2Us
IHN0b3JhZ2UsCiAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dFB0cihtX291dC5zdWIoaW5k
ZXgsIG5hbWVkTGVuZ3RoKSkpOwpAQCAtNDQyOCwxMSArNDQyNiw3IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQucGhpKEludDY0
LCBuYW1lZFJlc3VsdCwgb3ZlcmZsb3dSZXN1bHQpOwotICAgICAgICAgICAgcmVzdWx0ID0gcHJl
Y2lzZUluZGV4TWFzazMyKHJlc3VsdCwgaW5kZXgsIHRvdGFsTGVuZ3RoKTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgc2V0SlNWYWx1ZShyZXN1bHQpOworICAgICAgICAgICAgc2V0SlNWYWx1
ZShtX291dC5waGkoSW50NjQsIG5hbWVkUmVzdWx0LCBvdmVyZmxvd1Jlc3VsdCkpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTQ2MDksNyArNDYwMyw2
IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBMVmFsdWUgcG9pbnRlciA9IG1f
b3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlKCksIG1fb3V0Lnplcm9F
eHQoaW5kZXgsIHBvaW50ZXJUeXBlKCkpLCBTY2FsZUVpZ2h0KTsKICAgICAgICAgICAgIHJlc3Vs
dCA9IG1fb3V0LmxvYWQ2NChUeXBlZFBvaW50ZXIobV9oZWFwcy52YXJpYWJsZXMuYXRBbnlJbmRl
eCgpLCBwb2ludGVyKSk7Ci0gICAgICAgICAgICByZXN1bHQgPSBwcmVjaXNlSW5kZXhNYXNrMzIo
cmVzdWx0LCBpbmRleFRvQ2hlY2ssIG51bWJlck9mQXJncyk7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgcmVzdWx0ID0gbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSkpOwogICAgICAgICAKQEAgLTE3MzQ5LDIyICsxNzM0Miw2IEBAIGNsYXNzIExvd2Vy
REZHVG9CMyB7CiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQp
OwogICAgIH0KICAgICAKLSAgICBMVmFsdWUgcHJlY2lzZUluZGV4TWFzazY0KExWYWx1ZSB2YWx1
ZSwgTFZhbHVlIGluZGV4LCBMVmFsdWUgbGltaXQpCi0gICAgewotICAgICAgICByZXR1cm4gbV9v
dXQuYml0QW5kKAotICAgICAgICAgICAgdmFsdWUsCi0gICAgICAgICAgICBtX291dC5hU2hyKAot
ICAgICAgICAgICAgICAgIG1fb3V0LnN1YigKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsCi0g
ICAgICAgICAgICAgICAgICAgIG1fb3V0Lm9wYXF1ZShsaW1pdCkpLAotICAgICAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50MzIoNjMpKSk7Ci0gICAgfQotICAgIAotICAgIExWYWx1ZSBwcmVjaXNl
SW5kZXhNYXNrMzIoTFZhbHVlIHZhbHVlLCBMVmFsdWUgaW5kZXgsIExWYWx1ZSBsaW1pdCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBwcmVjaXNlSW5kZXhNYXNrNjQodmFsdWUsIG1fb3V0Lnplcm9F
eHQoaW5kZXgsIEludDY0KSwgbV9vdXQuemVyb0V4dChsaW1pdCwgSW50NjQpKTsKLSAgICB9Ci0g
ICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdHlwZW5hbWUuLi4gQXJn
cz4KICAgICBMVmFsdWUgdm1DYWxsKExUeXBlIHR5cGUsIE9wZXJhdGlvblR5cGUgZnVuY3Rpb24s
IEFyZ3MmJi4uLiBhcmdzKQogICAgIHsKQEAgLTE4MDYwLDEwICsxODAzNyw2IEBAIGNsYXNzIExv
d2VyREZHVG9CMyB7CiAgICAgREZHOjpCYXNpY0Jsb2NrKiBtX25leHRIaWdoQmxvY2s7CiAgICAg
TEJhc2ljQmxvY2sgbV9uZXh0TG93QmxvY2s7CiAKLSAgICBlbnVtIEluZGV4TWFza2luZ01vZGUg
eyBJbmRleE1hc2tpbmdEaXNhYmxlZCwgSW5kZXhNYXNraW5nRW5hYmxlZCB9OwotCi0gICAgSW5k
ZXhNYXNraW5nTW9kZSBtX2luZGV4TWFza2luZ01vZGU7Ci0KICAgICBOb2RlT3JpZ2luIG1fb3Jp
Z2luOwogICAgIHVuc2lnbmVkIG1fbm9kZUluZGV4OwogICAgIE5vZGUqIG1fbm9kZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCAxY2FjMWM0
MjFkYThiN2M2NGI5MjIwZmE5YmYzMmNjNGZkYTYwNTZiLi4zNWM1OTVlYWYzYjEzNTMyNjI3YmEz
MGM2YTFhMmNjMGNkYTY1YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuY3BwCkBAIC05ODgsMTggKzk4OCw2IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJz
OjpzYW5pdGl6ZVN0YWNrSW5saW5lKFZNJiB2bSwgR1BSUmVnIHNjcmF0Y2gpCiAgICAgc3RvcmVQ
dHIoc2NyYXRjaCwgdm0uYWRkcmVzc09mTGFzdFN0YWNrVG9wKCkpOwogfQogCi12b2lkIEFzc2Vt
Ymx5SGVscGVyczo6ZW1pdFByZXBhcmVQcmVjaXNlSW5kZXhNYXNrMzIoR1BSUmVnIGluZGV4LCBH
UFJSZWcgbGVuZ3RoLCBHUFJSZWcgcmVzdWx0KQotewotICAgIGlmIChsZW5ndGggPT0gcmVzdWx0
KSB7Ci0gICAgICAgIG5lZ1B0cihsZW5ndGgpOwotICAgICAgICBhZGRQdHIoaW5kZXgsIGxlbmd0
aCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbW92ZShpbmRleCwgcmVzdWx0KTsKLSAgICAgICAg
c3ViUHRyKGxlbmd0aCwgcmVzdWx0KTsKLSAgICB9Ci0gICAgcnNoaWZ0UHRyKFRydXN0ZWRJbW0z
MihwcmVjaXNlSW5kZXhNYXNrU2hpZnQ8dm9pZCo+KCkpLCByZXN1bHQpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBjYTIxMTk1ZjJhM2ZkOTA1ODI1Njg3NTIz
MzRlNWU1ODZlOWNmNmQ2Li4yMjAwOWM1ZmQyYmEyMjdkNDdjZmU4NTQ5MzlmNTJkZWYyZDcxYmMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTE5
MDcsMTEgKzE5MDcsNiBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3Nl
bWJsZXIgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgdm9pZCB3YW5nc0ludDY0SGFzaChHUFJS
ZWcgaW5wdXRBbmRSZXN1bHQsIEdQUlJlZyBzY3JhdGNoKTsKICNlbmRpZgotICAgIAotICAgIC8v
IFRoaXMgYXNzdW1lcyB0aGF0IGluZGV4IGFuZCBsZW5ndGggYXJlIDMyLWJpdC4gVGhpcyBhbHNv
IGFzc3VtZXMgdGhhdCB0aGV5IGFyZSBhbHJlYWR5Ci0gICAgLy8gemVyby1leHRlbmRlZC4gQWxz
byB0aGlzIGRvZXMgbm90IGNsb2JiZXIgaW5kZXgsIHdoaWNoIGlzIHVzZWZ1bCBpbiB0aGUgYmFz
ZWxpbmUgSklULiBUaGlzCi0gICAgLy8gcGVybWl0cyBsZW5ndGggYW5kIHJlc3VsdCB0byBiZSBp
biB0aGUgc2FtZSByZWdpc3Rlci4KLSAgICB2b2lkIGVtaXRQcmVwYXJlUHJlY2lzZUluZGV4TWFz
azMyKEdQUlJlZyBpbmRleCwgR1BSUmVnIGxlbmd0aCwgR1BSUmVnIHJlc3VsdCk7CiAKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgdm9pZCBsb2FkV2FzbUNvbnRleHRJbnN0YW5jZShHUFJS
ZWcgZHN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCAxZmY4YjQ3MDQxZGZkZWUz
ZDQwY2E0Yjg0MTUyOGI2YmMwYjA1YzNiLi4yOGE3MzE3MTk2OWJjMjk5Y2RhN2E2NWYwODA5NWRh
NDU2NDgwNDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC04MSw3ICs4MSw2IEBA
IEpJVDo6SklUKFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlSW5kZXggbG9v
cE9TUkVudHJ5Qnl0ZWNvZGVJbmRleCkKICAgICAsIG1fcGNUb0NvZGVPcmlnaW5NYXBCdWlsZGVy
KHZtKQogICAgICwgbV9jYW5CZU9wdGltaXplZChmYWxzZSkKICAgICAsIG1fc2hvdWxkRW1pdFBy
b2ZpbGluZyhmYWxzZSkKLSAgICAsIG1fc2hvdWxkVXNlSW5kZXhNYXNraW5nKE9wdGlvbnM6OmVu
YWJsZVNwZWN0cmVNaXRpZ2F0aW9ucygpKQogICAgICwgbV9sb29wT1NSRW50cnlCeXRlY29kZUlu
ZGV4KGxvb3BPU1JFbnRyeUJ5dGVjb2RlSW5kZXgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aAppbmRleCAyYjRhNWQ2NGJmMTU2NWMxZTg0MzEwMjE1MGY5NDFmNGI5YTgyYzYxLi5kN2ZlNGFl
YzNhZDZlNmEzZWY5MTdkMzgxMjVmZDRhY2Q1ZDBmNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmgKQEAgLTk2Nyw3ICs5NjcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX2Nh
bkJlT3B0aW1pemVkOwogICAgICAgICBib29sIG1fY2FuQmVPcHRpbWl6ZWRPcklubGluZWQ7CiAg
ICAgICAgIGJvb2wgbV9zaG91bGRFbWl0UHJvZmlsaW5nOwotICAgICAgICBib29sIG1fc2hvdWxk
VXNlSW5kZXhNYXNraW5nOwogICAgICAgICBCeXRlY29kZUluZGV4IG1fbG9vcE9TUkVudHJ5Qnl0
ZWNvZGVJbmRleDsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IGZmMzliMjJiMGYxN2RjYjg0MTA5M2I0NTVlODk0NmIw
YjRjYmQ4NzUuLjRmODY3ZGE2NzBhZTljMTU5YzkwZWI5YjY5NmZiOWJkZTY1NTE2NGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0x
NjM0LDIwICsxNjM0LDE3IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0U2NvcGVkQXJndW1lbnRz
R2V0QnlWYWwoY29uc3QgSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wCiAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0ID0gSlNWYWx1ZVJlZ3MocmVnVDApOwogICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9
IHJlZ1QzOwogICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSByZWdUNDsKLSAgICBSZWdpc3RlcklE
IHNjcmF0Y2gzID0gcmVnVDU7CiAjZWxzZQogICAgIFJlZ2lzdGVySUQgYmFzZSA9IHJlZ1QwOwog
ICAgIFJlZ2lzdGVySUQgcHJvcGVydHkgPSByZWdUMjsKICAgICBKU1ZhbHVlUmVncyByZXN1bHQg
PSBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IHJl
Z1QzOwogICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSByZWdUNDsKLSAgICBSZWdpc3RlcklEIHNj
cmF0Y2gzID0gcmVnVDU7CiAjZW5kaWYKIAogICAgIGxvYWQ4KEFkZHJlc3MoYmFzZSwgSlNDZWxs
Ojp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIHNjcmF0Y2gpOwogICAgIGJhZFR5cGUgPSBwYXRjaGFi
bGVCcmFuY2gzMihOb3RFcXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbTMyKFNjb3BlZEFyZ3VtZW50
c1R5cGUpKTsKLSAgICBsb2FkUHRyKEFkZHJlc3MoYmFzZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZz
ZXRPZlN0b3JhZ2UoKSksIHNjcmF0Y2gzKTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaDMy
KEFib3ZlT3JFcXVhbCwgcHJvcGVydHksIEFkZHJlc3Moc2NyYXRjaDMsIFNjb3BlZEFyZ3VtZW50
czo6b2Zmc2V0T2ZUb3RhbExlbmd0aEluU3RvcmFnZSgpKSkpOworICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoMzIoQWJvdmVPckVxdWFsLCBwcm9wZXJ0eSwgQWRkcmVzcyhiYXNlLCBTY29wZWRB
cmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGgoKSkpKTsKICAgICAKICAgICBsb2FkUHRyKEFk
ZHJlc3MoYmFzZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRhYmxlKCkpLCBzY3JhdGNoKTsK
ICAgICBsb2FkMzIoQWRkcmVzcyhzY3JhdGNoLCBTY29wZWRBcmd1bWVudHNUYWJsZTo6b2Zmc2V0
T2ZMZW5ndGgoKSksIHNjcmF0Y2gyKTsKQEAgLTE2NjEsMTQgKzE2NTgsMTEgQEAgSklUOjpKdW1w
TGlzdCBKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZXRCeVZhbChjb25zdCBJbnN0cnVjdGlvbios
IFBhdGNoYWJsZUp1bXAKICAgICBvdmVyZmxvd0Nhc2UubGluayh0aGlzKTsKICAgICBzdWIzMihw
cm9wZXJ0eSwgc2NyYXRjaDIpOwogICAgIG5lZzMyKHNjcmF0Y2gyKTsKLSAgICBsb2FkVmFsdWUo
QmFzZUluZGV4KHNjcmF0Y2gzLCBzY3JhdGNoMiwgVGltZXNFaWdodCksIHJlc3VsdCk7CisgICAg
bG9hZFB0cihBZGRyZXNzKGJhc2UsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZTdG9yYWdlKCkp
LCBzY3JhdGNoKTsKKyAgICBsb2FkVmFsdWUoQmFzZUluZGV4KHNjcmF0Y2gsIHNjcmF0Y2gyLCBU
aW1lc0VpZ2h0KSwgcmVzdWx0KTsKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaElmRW1wdHko
cmVzdWx0KSk7CiAgICAgZG9uZS5saW5rKHRoaXMpOwogICAgIAotICAgIGxvYWQzMihBZGRyZXNz
KHNjcmF0Y2gzLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGhJblN0b3JhZ2Uo
KSksIHNjcmF0Y2gpOwotICAgIGVtaXRQcmVwYXJlUHJlY2lzZUluZGV4TWFzazMyKHByb3BlcnR5
LCBzY3JhdGNoLCBzY3JhdGNoMik7Ci0gICAgYW5kUHRyKHNjcmF0Y2gyLCByZXN1bHQucGF5bG9h
ZEdQUigpKTsKLSAgICAKICAgICByZXR1cm4gc2xvd0Nhc2VzOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCBjZjE0NWYxZWJmNTc2N2FiOTJj
OTk4NTY2MWM2ZTliMDYxMGQwNWFiLi4xNDJjMDg0N2M1NjUxYjE3ODY4MDE3MzNkMWJkNDg1ZDRh
NGVmZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
TGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgK
QEAgLTQxNyw3ICs0MTcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBcCiAgICAgdihCb29sLCB1
c2VXZWJBc3NlbWJseSwgdHJ1ZSwgTm9ybWFsLCAiRXhwb3NlIHRoZSBXZWJBc3NlbWJseSBnbG9i
YWwgb2JqZWN0LiIpIFwKICAgICBcCi0gICAgdihCb29sLCBlbmFibGVTcGVjdHJlTWl0aWdhdGlv
bnMsIHRydWUsIFJlc3RyaWN0ZWQsICJFbmFibGUgU3BlY3RyZSBtaXRpZ2F0aW9ucy4iKSBcCiAg
ICAgdihCb29sLCBlbmFibGVTcGVjdHJlR2FkZ2V0cywgZmFsc2UsIFJlc3RyaWN0ZWQsICJlbmFi
bGUgZ2FkZ2V0cyB0byB0ZXN0IFNwZWN0cmUgbWl0aWdhdGlvbnMuIikgXAogICAgIHYoQm9vbCwg
emVyb1N0YWNrRnJhbWUsIGZhbHNlLCBOb3JtYWwsICJaZXJvIHN0YWNrIGZyYW1lIG9uIGVudHJ5
IHRvIGEgZnVuY3Rpb24uIikgXAogICAgIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TY29wZWRBcmd1bWVudHMuY3BwCmluZGV4IGY0ODBiMTc1N2FjOTMzNGE3M2QzYTZi
ZjhmYjdmOWNhNjBkZWM2NGQuLjA4MWQ5NzhhN2IyYTYyNjZhYzU1MmMzNzlkMzg0NTAwNWRjMTFm
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3Vt
ZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1l
bnRzLmNwcApAQCAtMzUsMTEgKzM1LDEyIEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShTY29wZWRBcmd1bWVudHMpOwogCiBjb25zdCBDbGFzc0luZm8gU2NvcGVkQXJn
dW1lbnRzOjpzX2luZm8gPSB7ICJBcmd1bWVudHMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFNjb3BlZEFyZ3VtZW50cykgfTsKIAotU2NvcGVk
QXJndW1lbnRzOjpTY29wZWRBcmd1bWVudHMoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
V3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlKQorU2NvcGVkQXJndW1lbnRzOjpTY29wZWRB
cmd1bWVudHMoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV3JpdGVCYXJyaWVyPFVua25v
d24+KiBzdG9yYWdlLCB1bnNpZ25lZCB0b3RhbExlbmd0aCkKICAgICA6IEdlbmVyaWNBcmd1bWVu
dHModm0sIHN0cnVjdHVyZSkKLSAgICAsIG1fc3RvcmFnZSh2bSwgdGhpcywgc3RvcmFnZSkKKyAg
ICAsIG1fdG90YWxMZW5ndGgodG90YWxMZW5ndGgpCiB7Ci0gICAgQVNTRVJUKCFzdG9yYWdlSGVh
ZGVyKHN0b3JhZ2UpLm92ZXJyb2RlVGhpbmdzKTsKKyAgICBpZiAoc3RvcmFnZSkKKyAgICAgICAg
bV9zdG9yYWdlLnNldCh2bSwgdGhpcywgc3RvcmFnZSk7CiB9CiAKIHZvaWQgU2NvcGVkQXJndW1l
bnRzOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRnVuY3Rpb24qIGNhbGxlZSwgU2NvcGVkQXJn
dW1lbnRzVGFibGUqIHRhYmxlLCBKU0xleGljYWxFbnZpcm9ubWVudCogc2NvcGUpCkBAIC01Miwy
MiArNTMsMTYgQEAgdm9pZCBTY29wZWRBcmd1bWVudHM6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1bWVudHMKIAogU2NvcGVkQXJndW1lbnRzKiBT
Y29wZWRBcmd1bWVudHM6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1bWVudHNUYWJsZSogdGFibGUs
IEpTTGV4aWNhbEVudmlyb25tZW50KiBzY29wZSwgdW5zaWduZWQgdG90YWxMZW5ndGgpCiB7Ci0g
ICAgdW5zaWduZWQgb3ZlcmZsb3dMZW5ndGg7Ci0gICAgaWYgKHRvdGFsTGVuZ3RoID4gdGFibGUt
Pmxlbmd0aCgpKQotICAgICAgICBvdmVyZmxvd0xlbmd0aCA9IHRvdGFsTGVuZ3RoIC0gdGFibGUt
Pmxlbmd0aCgpOwotICAgIGVsc2UKLSAgICAgICAgb3ZlcmZsb3dMZW5ndGggPSAwOwotICAgIAot
ICAgIHZvaWQqIHJhd1N0b3JhZ2VQdHIgPSB2bS5qc1ZhbHVlR2lnYWNhZ2VBdXhpbGlhcnlTcGFj
ZS5hbGxvY2F0ZU5vblZpcnR1YWwoCi0gICAgICAgIHZtLCBzdG9yYWdlU2l6ZShvdmVyZmxvd0xl
bmd0aCksIG51bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0KTsKLSAgICBXcml0
ZUJhcnJpZXI8VW5rbm93bj4qIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxXcml0ZUJhcnJpZXI8VW5r
bm93bj4qPihyYXdTdG9yYWdlUHRyKSArIDE7Ci0gICAgc3RvcmFnZUhlYWRlcihzdG9yYWdlKS5v
dmVycm9kZVRoaW5ncyA9IGZhbHNlOwotICAgIHN0b3JhZ2VIZWFkZXIoc3RvcmFnZSkudG90YWxM
ZW5ndGggPSB0b3RhbExlbmd0aDsKLSAgICAKKyAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHN0
b3JhZ2UgPSBudWxscHRyOworICAgIGlmICh0b3RhbExlbmd0aCA+IHRhYmxlLT5sZW5ndGgoKSkg
eworICAgICAgICBDaGVja2VkPHVuc2lnbmVkPiBvdmVyZmxvd0xlbmd0aCA9IHRvdGFsTGVuZ3Ro
IC0gdGFibGUtPmxlbmd0aCgpOworICAgICAgICBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8V3JpdGVC
YXJyaWVyPFVua25vd24+Kj4odm0uanNWYWx1ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2UuYWxsb2Nh
dGVOb25WaXJ0dWFsKHZtLCAob3ZlcmZsb3dMZW5ndGggKiBzaXplb2YoV3JpdGVCYXJyaWVyPFVu
a25vd24+KSkudW5zYWZlR2V0KCksIG51bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNz
ZXJ0KSk7CisgICAgfQorCiAgICAgU2NvcGVkQXJndW1lbnRzKiByZXN1bHQgPSBuZXcgKAogICAg
ICAgICBOb3ROdWxsLAogICAgICAgICBhbGxvY2F0ZUNlbGw8U2NvcGVkQXJndW1lbnRzPih2bS5o
ZWFwKSkKLSAgICAgICAgU2NvcGVkQXJndW1lbnRzKHZtLCBzdHJ1Y3R1cmUsIHN0b3JhZ2UpOwor
ICAgICAgICBTY29wZWRBcmd1bWVudHModm0sIHN0cnVjdHVyZSwgc3RvcmFnZSwgdG90YWxMZW5n
dGgpOwogICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24odm0sIGNhbGxlZSwgdGFibGUsIHNjb3Bl
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNzksNyArNzQsNyBAQCBTY29wZWRBcmd1bWVu
dHMqIFNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRnVuY3RpbwogCiAgICAgdW5zaWduZWQgbmFtZWRMZW5ndGggPSB0YWJsZS0+bGVuZ3RoKCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbmFtZWRMZW5ndGg7IGkgPCB0b3RhbExlbmd0aDsgKytp
KQotICAgICAgICByZXN1bHQtPm92ZXJmbG93U3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uY2xl
YXIoKTsKKyAgICAgICAgcmVzdWx0LT5zdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5jbGVhcigp
OwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC05OSw3ICs5NCw3IEBAIFNjb3BlZEFy
Z3VtZW50cyogU2NvcGVkQXJndW1lbnRzOjpjcmVhdGVCeUNvcHlpbmdGcm9tKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1CiAgICAgCiAgICAgdW5zaWduZWQgbmFtZWRMZW5ndGggPSB0YWJsZS0+
bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbmFtZWRMZW5ndGg7IGkgPCB0b3RhbExl
bmd0aDsgKytpKQotICAgICAgICByZXN1bHQtPm92ZXJmbG93U3RvcmFnZSgpW2kgLSBuYW1lZExl
bmd0aF0uc2V0KHZtLCByZXN1bHQsIGFyZ3VtZW50c1N0YXJ0W2ldLmpzVmFsdWUoKSk7CisgICAg
ICAgIHJlc3VsdC0+c3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uc2V0KHZtLCByZXN1bHQsIGFy
Z3VtZW50c1N0YXJ0W2ldLmpzVmFsdWUoKSk7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
QEAgLTExNCwxMSArMTA5LDEwIEBAIHZvaWQgU2NvcGVkQXJndW1lbnRzOjp2aXNpdENoaWxkcmVu
KEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQo
dGhpc09iamVjdC0+bV90YWJsZSk7CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9z
Y29wZSk7CiAgICAgCi0gICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5KCZ0aGlzT2JqZWN0LT5zdG9y
YWdlSGVhZGVyKCkpOwotICAgIAotICAgIGlmICh0aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVyKCku
dG90YWxMZW5ndGggPiB0aGlzT2JqZWN0LT5tX3RhYmxlLT5sZW5ndGgoKSkgewotICAgICAgICB2
aXNpdG9yLmFwcGVuZFZhbHVlcygKLSAgICAgICAgICAgIHRoaXNPYmplY3QtPm92ZXJmbG93U3Rv
cmFnZSgpLCB0aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVyKCkudG90YWxMZW5ndGggLSB0aGlzT2Jq
ZWN0LT5tX3RhYmxlLT5sZW5ndGgoKSk7CisgICAgaWYgKFdyaXRlQmFycmllcjxVbmtub3duPiog
c3RvcmFnZSA9IHRoaXNPYmplY3QtPm1fc3RvcmFnZS5nZXQoKSkgeworICAgICAgICB2aXNpdG9y
Lm1hcmtBdXhpbGlhcnkoc3RvcmFnZSk7CisgICAgICAgIGlmICh0aGlzT2JqZWN0LT5tX3RvdGFs
TGVuZ3RoID4gdGhpc09iamVjdC0+bV90YWJsZS0+bGVuZ3RoKCkpCisgICAgICAgICAgICB2aXNp
dG9yLmFwcGVuZFZhbHVlcyhzdG9yYWdlLCB0aGlzT2JqZWN0LT5tX3RvdGFsTGVuZ3RoIC0gdGhp
c09iamVjdC0+bV90YWJsZS0+bGVuZ3RoKCkpOwogICAgIH0KIH0KIApAQCAtMTI5LDI5ICsxMjMs
MjkgQEAgU3RydWN0dXJlKiBTY29wZWRBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKIAogdm9pZCBTY29wZWRBcmd1bWVudHM6Om92
ZXJyaWRlVGhpbmdzKFZNJiB2bSkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVCghc3RvcmFnZUhlYWRl
cigpLm92ZXJyb2RlVGhpbmdzKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9vdmVycm9kZVRoaW5n
cyk7CiAgICAgCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpz
TnVtYmVyKG1fdGFibGUtPmxlbmd0aCgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y2FsbGVlLCBtX2NhbGxlZS5nZXQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9iamVjdCh2bSktPmFycmF5UHJvdG9WYWx1ZXNGdW5j
dGlvbigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CiAgICAgCi0gICAgc3RvcmFnZUhlYWRlcigpLm92ZXJyb2RlVGhpbmdzID0gdHJ1ZTsKKyAg
ICBtX292ZXJyb2RlVGhpbmdzID0gdHJ1ZTsKIH0KIAogdm9pZCBTY29wZWRBcmd1bWVudHM6Om92
ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoVk0mIHZtKQogewotICAgIGlmICghc3RvcmFnZUhlYWRl
cigpLm92ZXJyb2RlVGhpbmdzKQorICAgIGlmICghbV9vdmVycm9kZVRoaW5ncykKICAgICAgICAg
b3ZlcnJpZGVUaGluZ3Modm0pOwogfQogCiB2b2lkIFNjb3BlZEFyZ3VtZW50czo6dW5tYXBBcmd1
bWVudChWTSYgdm0sIHVpbnQzMl90IGkpCiB7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oaSA8IHN0b3JhZ2VIZWFkZXIoKS50b3RhbExlbmd0aCk7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaSA8IG1fdG90YWxMZW5ndGgpOwogICAgIHVuc2lnbmVk
IG5hbWVkTGVuZ3RoID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAgaWYgKGkgPCBuYW1lZExlbmd0
aCkKICAgICAgICAgbV90YWJsZS5zZXQodm0sIHRoaXMsIG1fdGFibGUtPnNldCh2bSwgaSwgU2Nv
cGVPZmZzZXQoKSkpOwogICAgIGVsc2UKLSAgICAgICAgb3ZlcmZsb3dTdG9yYWdlKClbaSAtIG5h
bWVkTGVuZ3RoXS5jbGVhcigpOworICAgICAgICBzdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5j
bGVhcigpOwogfQogCiB2b2lkIFNjb3BlZEFyZ3VtZW50czo6Y29weVRvQXJndW1lbnRzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBWaXJ0dWFsUmVn
aXN0ZXIgZmlyc3RFbGVtZW50RGVzdCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVu
dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCmlu
ZGV4IGZkMTg0NGQ1YmI3ZmI0NDZmYWRlYzJlMTlkZmY2MTA1ZjdhMzdjYzEuLmY4NWU0N2RmYmVl
OGNhN2MzNzA0ZjI5ZWQ0Y2IxYjRlOTcyMDQ0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCkBAIC0zOCwxNiArMzgsMTYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAvLyBsb29rdXBzLgogY2xhc3MgU2NvcGVkQXJndW1lbnRzIGZpbmFsIDogcHVi
bGljIEdlbmVyaWNBcmd1bWVudHM8U2NvcGVkQXJndW1lbnRzPiB7CiBwcml2YXRlOgotICAgIFNj
b3BlZEFyZ3VtZW50cyhWTSYsIFN0cnVjdHVyZSosIFdyaXRlQmFycmllcjxVbmtub3duPiogc3Rv
cmFnZSk7CisgICAgU2NvcGVkQXJndW1lbnRzKFZNJiwgU3RydWN0dXJlKiwgV3JpdGVCYXJyaWVy
PFVua25vd24+KiBzdG9yYWdlLCB1bnNpZ25lZCB0b3RhbExlbmd0aCk7CiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTRnVuY3Rpb24qIGNhbGxlZSwgU2NvcGVkQXJndW1lbnRzVGFibGUq
LCBKU0xleGljYWxFbnZpcm9ubWVudCopOwogICAgIHVzaW5nIEJhc2UgPSBHZW5lcmljQXJndW1l
bnRzPFNjb3BlZEFyZ3VtZW50cz47CiAKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
ZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+Ci0gICAgc3RhdGljIENvbXBsZXRlU3Vic3BhY2UqIHN1
YnNwYWNlRm9yKFZNJiB2bSkKKyAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZN
JiB2bSkKICAgICB7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxUeXBlOjpuZWVkc0Rlc3Ry
dWN0aW9uLCAiIik7Ci0gICAgICAgIHJldHVybiAmdm0udmFyaWFibGVTaXplZENlbGxTcGFjZTsK
KyAgICAgICAgcmV0dXJuICZ2bS5zY29wZWRBcmd1bWVudHNTcGFjZTsKICAgICB9CiAKICAgICAv
LyBDcmVhdGVzIGFuIGFyZ3VtZW50cyBvYmplY3QgYnV0IGxlYXZlcyBpdCB1bmluaXRpYWxpemVk
LiBUaGlzIGlzIGRhbmdlcm91cyBpZiB3ZSBHQyByaWdodApAQCAtNjgsMTQgKzY4LDE0IEBAIGNs
YXNzIFNjb3BlZEFyZ3VtZW50cyBmaW5hbCA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPFNjb3Bl
ZEFyZ3VtZW50cz4gewogICAgIAogICAgIHVpbnQzMl90IGludGVybmFsTGVuZ3RoKCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBzdG9yYWdlSGVhZGVyKCkudG90YWxMZW5ndGg7CisgICAg
ICAgIHJldHVybiBtX3RvdGFsTGVuZ3RoOwogICAgIH0KICAgICAKICAgICB1aW50MzJfdCBsZW5n
dGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKICAgICB7CiAgICAgICAgIFZN
JiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICAgICAgaWYgKFVOTElLRUxZKHN0b3JhZ2VIZWFkZXIoKS5v
dmVycm9kZVRoaW5ncykpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKG1fb3ZlcnJvZGVUaGluZ3Mp
KSB7CiAgICAgICAgICAgICBhdXRvIHZhbHVlID0gZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVy
dHlOYW1lcy0+bGVuZ3RoKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IDApOwogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCB2YWx1ZS50b1VJbnQz
MihnbG9iYWxPYmplY3QpKTsKQEAgLTg1LDEzICs4NSwxMiBAQCBjbGFzcyBTY29wZWRBcmd1bWVu
dHMgZmluYWwgOiBwdWJsaWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAg
ICAKICAgICBib29sIGlzTWFwcGVkQXJndW1lbnQodWludDMyX3QgaSkgY29uc3QKICAgICB7Ci0g
ICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9IG92ZXJmbG93U3RvcmFnZSgp
OwotICAgICAgICBpZiAoaSA+PSBzdG9yYWdlSGVhZGVyKHN0b3JhZ2UpLnRvdGFsTGVuZ3RoKQor
ICAgICAgICBpZiAoaSA+PSBtX3RvdGFsTGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB1bnNpZ25lZCBuYW1lZExlbmd0aCA9IG1fdGFibGUtPmxlbmd0aCgpOwogICAg
ICAgICBpZiAoaSA8IG5hbWVkTGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuICEhbV90YWJsZS0+
Z2V0KGkpOwotICAgICAgICByZXR1cm4gISFzdG9yYWdlW2kgLSBuYW1lZExlbmd0aF0uZ2V0KCk7
CisgICAgICAgIHJldHVybiAhIXN0b3JhZ2UoKVtpIC0gbmFtZWRMZW5ndGhdLmdldCgpOwogICAg
IH0KIAogICAgIGJvb2wgaXNNYXBwZWRBcmd1bWVudEluREZHKHVpbnQzMl90IGkpIGNvbnN0CkBA
IC0xMDIsMjQgKzEwMSwyMCBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJsaWMg
R2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAgICBKU1ZhbHVlIGdldEluZGV4
UXVpY2tseSh1aW50MzJfdCBpKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oaXNNYXBwZWRBcmd1bWVudChpKSk7Ci0gICAgICAgIFdyaXRlQmFy
cmllcjxVbmtub3duPiogc3RvcmFnZSA9IG92ZXJmbG93U3RvcmFnZSgpOwotICAgICAgICB1bnNp
Z25lZCB0b3RhbExlbmd0aCA9IHN0b3JhZ2VIZWFkZXIoc3RvcmFnZSkudG90YWxMZW5ndGg7CiAg
ICAgICAgIHVuc2lnbmVkIG5hbWVkTGVuZ3RoID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAgICAg
IGlmIChpIDwgbmFtZWRMZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gcHJlY2lzZUluZGV4TWFz
a1B0cihpLCB0b3RhbExlbmd0aCwgJm1fc2NvcGUtPnZhcmlhYmxlQXQobV90YWJsZS0+Z2V0KGkp
KSktPmdldCgpOwotICAgICAgICByZXR1cm4gcHJlY2lzZUluZGV4TWFza1B0cihpLCB0b3RhbExl
bmd0aCwgc3RvcmFnZSArIChpIC0gbmFtZWRMZW5ndGgpKS0+Z2V0KCk7CisgICAgICAgICAgICBy
ZXR1cm4gbV9zY29wZS0+dmFyaWFibGVBdChtX3RhYmxlLT5nZXQoaSkpLmdldCgpOworICAgICAg
ICByZXR1cm4gc3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uZ2V0KCk7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRJbmRleFF1aWNrbHkoVk0mIHZtLCB1aW50MzJfdCBpLCBKU1ZhbHVlIHZhbHVlKQog
ICAgIHsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNNYXBwZWRB
cmd1bWVudChpKSk7Ci0gICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9IG92
ZXJmbG93U3RvcmFnZSgpOwotICAgICAgICB1bnNpZ25lZCB0b3RhbExlbmd0aCA9IHN0b3JhZ2VI
ZWFkZXIoc3RvcmFnZSkudG90YWxMZW5ndGg7CiAgICAgICAgIHVuc2lnbmVkIG5hbWVkTGVuZ3Ro
ID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAgICAgIGlmIChpIDwgbmFtZWRMZW5ndGgpCi0gICAg
ICAgICAgICBwcmVjaXNlSW5kZXhNYXNrUHRyKGksIHRvdGFsTGVuZ3RoLCAmbV9zY29wZS0+dmFy
aWFibGVBdChtX3RhYmxlLT5nZXQoaSkpKS0+c2V0KHZtLCBtX3Njb3BlLmdldCgpLCB2YWx1ZSk7
CisgICAgICAgICAgICBtX3Njb3BlLT52YXJpYWJsZUF0KG1fdGFibGUtPmdldChpKSkuc2V0KHZt
LCBtX3Njb3BlLmdldCgpLCB2YWx1ZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByZWNp
c2VJbmRleE1hc2tQdHIoaSwgdG90YWxMZW5ndGgsIHN0b3JhZ2UgKyAoaSAtIG5hbWVkTGVuZ3Ro
KSktPnNldCh2bSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAgc3RvcmFnZSgpW2kgLSBuYW1l
ZExlbmd0aF0uc2V0KHZtLCB0aGlzLCB2YWx1ZSk7CiAgICAgfQogCiAgICAgSlNGdW5jdGlvbiog
Y2FsbGVlKCkKQEAgLTEyNyw3ICsxMjIsNyBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwg
OiBwdWJsaWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAgICAgICAgcmV0
dXJuIG1fY2FsbGVlLmdldCgpOwogICAgIH0KIAotICAgIGJvb2wgb3ZlcnJvZGVUaGluZ3MoKSBj
b25zdCB7IHJldHVybiBzdG9yYWdlSGVhZGVyKCkub3ZlcnJvZGVUaGluZ3M7IH0KKyAgICBib29s
IG92ZXJyb2RlVGhpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycm9kZVRoaW5nczsgfQogICAg
IHZvaWQgb3ZlcnJpZGVUaGluZ3MoVk0mKTsKICAgICB2b2lkIG92ZXJyaWRlVGhpbmdzSWZOZWNl
c3NhcnkoVk0mKTsKICAgICB2b2lkIHVubWFwQXJndW1lbnQoVk0mLCB1aW50MzJfdCBpbmRleCk7
CkBAIC0xNTMsNDcgKzE0OCwyMCBAQCBjbGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJs
aWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAgICAKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUg
cHJvdG90eXBlKTsKICAgICAKLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RvcmFnZSgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fc3RvcmFnZSk7IH0K
LSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mT3ZlcnJvZGVUaGluZ3NJblN0b3JhZ2UoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RvcmFnZUhlYWRlciwgb3ZlcnJvZGVUaGluZ3MpIC0g
c2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPik7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IG9m
ZnNldE9mVG90YWxMZW5ndGhJblN0b3JhZ2UoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3Rv
cmFnZUhlYWRlciwgdG90YWxMZW5ndGgpIC0gc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPik7
IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mT3ZlcnJvZGVUaGluZ3MoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoU2NvcGVkQXJndW1lbnRzLCBtX292ZXJyb2RlVGhpbmdzKTsgfQor
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZUb3RhbExlbmd0aCgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fdG90YWxMZW5ndGgpOyB9CiAgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZlRhYmxlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFNjb3Bl
ZEFyZ3VtZW50cywgbV90YWJsZSk7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU2Nv
cGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NvcGVkQXJndW1lbnRzLCBtX3Njb3BlKTsg
fQotICAgIAotICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoc2l6ZV90IGlubGluZVNp
emUpCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVCghaW5saW5lU2l6ZSk7Ci0gICAgICAg
IHJldHVybiBzaXplb2YoU2NvcGVkQXJndW1lbnRzKTsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGlj
IHNpemVfdCBzdG9yYWdlU2l6ZShDaGVja2VkPHNpemVfdD4gY2FwYWNpdHkpCi0gICAgewotICAg
ICAgICByZXR1cm4gKHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pICogKGNhcGFjaXR5ICsg
c3RhdGljX2Nhc3Q8c2l6ZV90PigxKSkpLnVuc2FmZUdldCgpOwotICAgIH0KLSAgICAKLSAgICBz
dGF0aWMgc2l6ZV90IHN0b3JhZ2VIZWFkZXJTaXplKCkgeyByZXR1cm4gc2l6ZW9mKFdyaXRlQmFy
cmllcjxVbmtub3duPik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RvcmFnZSgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fc3RvcmFnZSk7IH0K
ICAgICAKIHByaXZhdGU6Ci0gICAgc3RydWN0IFN0b3JhZ2VIZWFkZXIgewotICAgICAgICB1bnNp
Z25lZCB0b3RhbExlbmd0aDsKLSAgICAgICAgYm9vbCBvdmVycm9kZVRoaW5nczsgLy8gVHJ1ZSBp
ZiBsZW5ndGgsIGNhbGxlZSwgYW5kIGNhbGxlciBhcmUgZnVsbHkgbWF0ZXJpYWxpemVkIGluIHRo
ZSBvYmplY3QuCi0gICAgfTsKLSAgICAKLSAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIG92ZXJm
bG93U3RvcmFnZSgpIGNvbnN0CisgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3N0b3JhZ2UuZ2V0KCk7CiAgICAgfQogICAg
IAotICAgIHN0YXRpYyBTdG9yYWdlSGVhZGVyJiBzdG9yYWdlSGVhZGVyKFdyaXRlQmFycmllcjxV
bmtub3duPiogc3RvcmFnZSkKLSAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFN0
b3JhZ2VIZWFkZXIpIDw9IHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pLCAiU3RvcmFnZUhl
YWRlciBuZWVkcyB0byBiZSBubyBiaWdnZXIgdGhhbiBhIEpTVmFsdWUiKTsKLSAgICAgICAgcmV0
dXJuICpiaXR3aXNlX2Nhc3Q8U3RvcmFnZUhlYWRlcio+KHN0b3JhZ2UgLSAxKTsKLSAgICB9Ci0g
ICAgCi0gICAgU3RvcmFnZUhlYWRlciYgc3RvcmFnZUhlYWRlcigpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gc3RvcmFnZUhlYWRlcihvdmVyZmxvd1N0b3JhZ2UoKSk7Ci0gICAgfQotICAg
IAorICAgIGJvb2wgbV9vdmVycm9kZVRoaW5ncyB7IGZhbHNlIH07IC8vIFRydWUgaWYgbGVuZ3Ro
LCBjYWxsZWUsIGFuZCBjYWxsZXIgYXJlIGZ1bGx5IG1hdGVyaWFsaXplZCBpbiB0aGUgb2JqZWN0
LgorICAgIHVuc2lnbmVkIG1fdG90YWxMZW5ndGg7IC8vIFRoZSBsZW5ndGggb2YgZGVjbGFyZWQg
cGx1cyBvdmVyZmxvdyBhcmd1bWVudHMuCiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1f
Y2FsbGVlOwogICAgIFdyaXRlQmFycmllcjxTY29wZWRBcmd1bWVudHNUYWJsZT4gbV90YWJsZTsK
ICAgICBXcml0ZUJhcnJpZXI8SlNMZXhpY2FsRW52aXJvbm1lbnQ+IG1fc2NvcGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggMDc1YzlmODk5YWZiZDlmYjFiYjY4OTlkMDcy
ZWQwZmM4MzUwZTIzNS4uNzRkNDBmNDVmZDQxMDA4N2ZiODE5ZjMxMzUwZGY5Y2MwOTdhZjQxNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMTMwLDYgKzEzMCw3IEBACiAj
aW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJSdW50aW1lVHlwZS5o
IgogI2luY2x1ZGUgIlNhbXBsaW5nUHJvZmlsZXIuaCIKKyNpbmNsdWRlICJTY29wZWRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJTaGFkb3dDaGlja2VuLmgiCiAjaW5jbHVkZSAiU2ltcGxlVHlwZWRB
cnJheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92aWRlckNhY2hlLmgiCkBAIC0y
ODIsNiArMjgzLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQog
ICAgICwgbmF0aXZlRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIE5hdGl2ZUV4ZWN1dGFibGUpIC8vIEhhc2g6
MHg2NzU2N2Y5NQogICAgICwgcHJvcGVydHlUYWJsZVNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhl
YXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFByb3BlcnR5VGFibGUpIC8v
IEhhc2g6MHhjNmJjOWYxMgogICAgICwgcm9wZVN0cmluZ1NwYWNlIElTT19TVUJTUEFDRV9JTklU
KGhlYXAsIHN0cmluZ0hlYXBDZWxsVHlwZS5nZXQoKSwgSlNSb3BlU3RyaW5nKQorICAgICwgc2Nv
cGVkQXJndW1lbnRzU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlw
ZS5nZXQoKSwgU2NvcGVkQXJndW1lbnRzKQogICAgICwgc3BhcnNlQXJyYXlWYWx1ZU1hcFNwYWNl
IElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0
KCksIFNwYXJzZUFycmF5VmFsdWVNYXApCiAgICAgLCBzdHJpbmdTcGFjZSBJU09fU1VCU1BBQ0Vf
SU5JVChoZWFwLCBzdHJpbmdIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTU3RyaW5nKSAvLyBIYXNoOjB4
OTBjZjc1OGYKICAgICAsIHN0cnVjdHVyZVJhcmVEYXRhU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQo
aGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU3RydWN0dXJlUmFyZURh
dGEpIC8vIEhhc2g6MHhhY2E0ZTYyZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXgg
ZTZkNmNiZTU3N2MzZTZmMWZjMDY0NmI2NTNhMWQ3ZWYzNGMzZDRmMS4uZjY2MDY1NDQyYjI2OTVi
MTE1ZDI1MmUyMDRlMWUxNDZmNjUwNGU1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
CkBAIC0zODMsNiArMzgzLDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBJc29TdWJzcGFj
ZSBuYXRpdmVFeGVjdXRhYmxlU3BhY2U7CiAgICAgSXNvU3Vic3BhY2UgcHJvcGVydHlUYWJsZVNw
YWNlOwogICAgIElzb1N1YnNwYWNlIHJvcGVTdHJpbmdTcGFjZTsKKyAgICBJc29TdWJzcGFjZSBz
Y29wZWRBcmd1bWVudHNTcGFjZTsKICAgICBJc29TdWJzcGFjZSBzcGFyc2VBcnJheVZhbHVlTWFw
U3BhY2U7CiAgICAgSXNvU3Vic3BhY2Ugc3RyaW5nU3BhY2U7CiAgICAgSXNvU3Vic3BhY2Ugc3Ry
dWN0dXJlUmFyZURhdGFTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCA4NjVhNzM5M2FkYTlmOWYyMTQ1YjM4Y2E0ZDU0NzZi
NmUzNjZkMjEzLi5lNjU3MGY1MzVlY2JlMzgwNDcxMzE0MmM3NDBlOTE1NzU2NzA2ODA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBA
IC0xNjc4LDkgKzE2NzgsNiBAQCBhdXRvIEIzSVJHZW5lcmF0b3I6OmFkZENhbGxJbmRpcmVjdCh1
bnNpZ25lZCB0YWJsZUluZGV4LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdAogCiAgICAgY2FsbGVl
SW5kZXggPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwg
b3JpZ2luKCksIGNhbGxlZUluZGV4KTsKIAotICAgIGlmIChPcHRpb25zOjplbmFibGVTcGVjdHJl
TWl0aWdhdGlvbnMoKSkKLSAgICAgICAgY2FsbGVlSW5kZXggPSBtX2N1cnJlbnRCbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJpdEFuZCwgb3JpZ2luKCksIG1hc2ssIGNhbGxlZUluZGV4
KTsKLQogICAgIEV4cHJlc3Npb25UeXBlIGNhbGxhYmxlRnVuY3Rpb247CiAgICAgewogICAgICAg
ICAvLyBDb21wdXRlIHRoZSBvZmZzZXQgaW4gdGhlIHRhYmxlIGluZGV4IHNwYWNlIHdlIGFyZSBs
b29raW5nIGZvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaCBiL1Nv
dXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaAppbmRleCBmZGRjYmI2ZTFlYTc0ZDNiZGIxYjFlYmNh
ODY2MWQyMWY0NTUxNjQ4Li44ZWM4OTg3NDMyZDk2NDUyMmJjM2EyNzNkNWY1ZTc5Zjk4NjFiNjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvTWF0aEV4dHJhcy5oCkBAIC01NjQsNDQgKzU2NCw2IEBAIGlubGluZSBib29sIHJhbmdl
c092ZXJsYXAoVCBsZWZ0TWluLCBUIGxlZnRNYXgsIFQgcmlnaHRNaW4sIFQgcmlnaHRNYXgpCiAg
ICAgcmV0dXJuIG5vbkVtcHR5UmFuZ2VzT3ZlcmxhcChsZWZ0TWluLCBsZWZ0TWF4LCByaWdodE1p
biwgcmlnaHRNYXgpOwogfQogCi0vLyBUaGlzIG1hc2sgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBt
aW5pbWFsIG1hc2ssIHNwZWNpZmljYWxseSBpZiBzaXplIGlzCi0vLyBhIHBvd2VyIG9mIDIuIEl0
IGhhcyB0aGUgYWR2YW50YWdlIHRoYXQgaXQncyBmYXN0IHRvIGNvbXB1dGUsIGhvd2V2ZXIuCi1p
bmxpbmUgdWludDMyX3QgY29tcHV0ZUluZGV4aW5nTWFzayh1aW50MzJfdCBzaXplKQotewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KC0xKSkg
Pj4gc3RkOjpjbHooc2l6ZSk7Ci19Ci0KLWNvbnN0ZXhwciB1bnNpZ25lZCBwcmVjaXNlSW5kZXhN
YXNrU2hpZnRGb3JTaXplKHVuc2lnbmVkIHNpemUpCi17Ci0gICAgcmV0dXJuIHNpemUgKiA4IC0g
MTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWNvbnN0ZXhwciB1bnNpZ25lZCBwcmVjaXNl
SW5kZXhNYXNrU2hpZnQoKQotewotICAgIHJldHVybiBwcmVjaXNlSW5kZXhNYXNrU2hpZnRGb3JT
aXplKHNpemVvZihUKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1UIG9wYXF1ZShUIHBv
aW50ZXIpCi17Ci0jaWYgIU9TKFdJTkRPV1MpCi0gICAgYXNtKCIiIDogIityIihwb2ludGVyKSk7
Ci0jZW5kaWYKLSAgICByZXR1cm4gcG9pbnRlcjsKLX0KLQotLy8gVGhpcyBtYXNrcyB0aGUgZ2l2
ZW4gcG9pbnRlciB3aXRoIDB4ZmZmZmZmZmZmZmZmZmZmZiAocHRyd2lkdGgpIGlmIGBpbmRleCA8
Ci0vLyBsZW5ndGhgLiBPdGhlcndpc2UsIGl0IG1hc2tzIHRoZSBwb2ludGVyIHdpdGggMC4gU2lt
aWxhciB0byBMaW51eCBrZXJuZWwncyBhcnJheV9wdHIuCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgot
aW5saW5lIFQqIHByZWNpc2VJbmRleE1hc2tQdHIodWludHB0cl90IGluZGV4LCB1aW50cHRyX3Qg
bGVuZ3RoLCBUKiB2YWx1ZSkKLXsKLSAgICB1aW50cHRyX3QgcmVzdWx0ID0gYml0d2lzZV9jYXN0
PHVpbnRwdHJfdD4odmFsdWUpICYgc3RhdGljX2Nhc3Q8dWludHB0cl90PigKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50cHRyX3Q+KGluZGV4IC0gb3BhcXVlKGxlbmd0aCkpID4+Ci0gICAgICAgIHN0
YXRpY19jYXN0PGludHB0cl90PihwcmVjaXNlSW5kZXhNYXNrU2hpZnQ8VCo+KCkpKTsKLSAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PFQqPihyZXN1bHQpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
ZWN0b3JUeXBlLCB0eXBlbmFtZSBSYW5kb21GdW5jPgogdm9pZCBzaHVmZmxlVmVjdG9yKFZlY3Rv
clR5cGUmIHZlY3Rvciwgc2l6ZV90IHNpemUsIGNvbnN0IFJhbmRvbUZ1bmMmIHJhbmRvbUZ1bmMp
CiB7CkBAIC03MzUsMTAgKzY5Nyw2IEBAIGNvbnN0ZXhwciB1bnNpZ25lZCBnZXRNU0JTZXRDb25z
dGV4cHIoVCB0KQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotdXNpbmcgV1RGOjpvcGFxdWU7Ci11
c2luZyBXVEY6OnByZWNpc2VJbmRleE1hc2tQdHI7Ci11c2luZyBXVEY6OnByZWNpc2VJbmRleE1h
c2tTaGlmdDsKLXVzaW5nIFdURjo6cHJlY2lzZUluZGV4TWFza1NoaWZ0Rm9yU2l6ZTsKIHVzaW5n
IFdURjo6c2h1ZmZsZVZlY3RvcjsKIHVzaW5nIFdURjo6Y2x6OwogdXNpbmcgV1RGOjpjdHo7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383690</attachid>
            <date>2019-11-15 23:02:45 -0800</date>
            <delta_ts>2019-11-15 23:02:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204269-20191115230244.patch</filename>
            <type>text/plain</type>
            <size>35593</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
OTBlZWQ2NDdkOTE2NGVlMGE3NzZhZGYxNDVhN2NjYjkwZjA3ZTgxLi5jMWQwMDgyMzIwYjNhYWIz
NDM5NTFhMjVmZjE3NjExM2Q5NTI0YmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxOS0xMS0xNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBpbmRleC1tYXNraW5nIG9uIFNjb3BlZEFyZ3VtZW50
cyBhbmQgcHV0IGl0IGluIElzb1N1YnNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgcmVtb3ZlIGluZGV4LW1hc2tpbmcgZm9yIFNj
b3BlZEFyZ3VtZW50cy4gVGhpcyBwYXRjaCByZXZlcnRzIGl0LgorICAgICAgICBXZSBzdGlsbCB1
c2UgQXV4aWxpYXJ5QnVmZmVyLCBhbmQgYXZvaWQgdXNpbmcgdmFyaWFibGUgc2l6ZWQgY2VsbC4g
VGhlbiwKKyAgICAgICAgdGhpcyBwYXRjaCBhbHNvIHB1dHMgU2NvcGVkQXJndW1lbnRzIGluIElz
b1N1YnNwYWNlLgorCisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHA6CisgICAgICAg
IChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aCk6CisgICAgICAgICogZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6TG93ZXJERkdUb0IzKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEFycmF5TGVu
Z3RoKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldEJ5
VmFsKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUdldE15
QXJndW1lbnRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnBy
ZWNpc2VJbmRleE1hc2s2NCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OnByZWNpc2VJbmRleE1hc2szMik6IERlbGV0ZWQuCisgICAgICAgICogaml0L0Fz
c2VtYmx5SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFBy
ZXBhcmVQcmVjaXNlSW5kZXhNYXNrMzIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3NlbWJs
eUhlbHBlcnMuaDoKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpK
SVQpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTY29wZWRBcmd1bWVudHNHZXRCeVZhbCk6
CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpT
Y29wZWRBcmd1bWVudHM6OlNjb3BlZEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OlNjb3BlZEFy
Z3VtZW50czo6Y3JlYXRlVW5pbml0aWFsaXplZCk6CisgICAgICAgIChKU0M6OlNjb3BlZEFyZ3Vt
ZW50czo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpjcmVhdGVCeUNv
cHlpbmdGcm9tKToKKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjp2aXNpdENoaWxkcmVu
KToKKyAgICAgICAgKEpTQzo6U2NvcGVkQXJndW1lbnRzOjpvdmVycmlkZVRoaW5ncyk6CisgICAg
ICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6b3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeSk6Cisg
ICAgICAgIChKU0M6OlNjb3BlZEFyZ3VtZW50czo6dW5tYXBBcmd1bWVudCk6CisgICAgICAgICog
cnVudGltZS9TY29wZWRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAg
ICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisKIDIwMTktMTEt
MTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG9u
J3QgdXNlIEFWQ2FwdHVyZSBvbiB3YXRjaE9TIGFuZCB0dk9TCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU5OGQ3ZDk3YjVkM2I1
MDUzOTdjMjIzOWYwMjVmYzkyNzJhZDRmZjAuLjQzZmRiNjdmMWFhYzg0YzFmMWNhYjk4OTMzMzNj
YTg2OTljOThiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMTEtMTUgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgaW5kZXgtbWFz
a2luZyBvbiBTY29wZWRBcmd1bWVudHMgYW5kIHB1dCBpdCBpbiBJc29TdWJzcGFjZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjY5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvTWF0aEV4dHJh
cy5oOgorICAgICAgICAoV1RGOjpjb21wdXRlSW5kZXhpbmdNYXNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdURjo6cHJlY2lzZUluZGV4TWFza1NoaWZ0Rm9yU2l6ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OnByZWNpc2VJbmRleE1hc2tTaGlmdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6Om9w
YXF1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OnByZWNpc2VJbmRleE1hc2tQdHIpOiBEZWxl
dGVkLgorCiAyMDE5LTExLTE0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gQmxvY2tEaXJlY3RvcnkncyBiaXRzIHNob3VsZCBiZSBjb21wYWN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKaW5kZXggOGE1
NzIzYTFlMzA5YTRjMGJmZTM0ZDhlZmZhNWNjNTE3NjFiZTRiOS4uODU3YmM2ZTEzYjExNTBiNTIy
MjdhNDViYmE0OTQwNDIyNDFlZmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9BY2Nlc3NDYXNlLmNwcApAQCAtNTc2LDE1ICs1NzYsMTIgQEAgdm9pZCBBY2Nlc3NDYXNl
OjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgZmFsbFRocm91Z2guYXBwZW5kKAogICAgICAg
ICAgICAgaml0LmJyYW5jaElmTm90VHlwZShiYXNlR1BSLCBTY29wZWRBcmd1bWVudHNUeXBlKSk7
CiAKLSAgICAgICAgaml0LmxvYWRQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksCi0gICAgICAg
ICAgICBzY3JhdGNoR1BSKTsKICAgICAgICAgZmFsbFRocm91Z2guYXBwZW5kKAogICAgICAgICAg
ICAgaml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm9uWmVy
bywKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgU2Nv
cGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzSW5TdG9yYWdlKCkpKSk7CisgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIFNjb3BlZEFyZ3VtZW50
czo6b2Zmc2V0T2ZPdmVycm9kZVRoaW5ncygpKSkpOwogICAgICAgICBqaXQubG9hZDMyKAotICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFNjb3BlZEFyZ3VtZW50
czo6b2Zmc2V0T2ZUb3RhbExlbmd0aEluU3RvcmFnZSgpKSwKKyAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhiYXNlR1BSLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5n
dGgoKSksCiAgICAgICAgICAgICB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKICAgICAgICAgaml0
LmJveEludDMyKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHZhbHVlUmVncyk7CiAgICAgICAgIHN0
YXRlLnN1Y2NlZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKaW5kZXggYjg0OTY2NmM1ZmMyZGQ3Y2E0N2Q0MDE0NjJjYWQ0YTNhOGQ1Mjg0
MS4uODk2MzRmM2JkZDllMGYyMGMzMWYwMDVmYzQ3NzkzODQ3NGEzZThkMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTY5NjcsMTQg
KzY5NjcsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TY29wZWRB
cmd1bWVudHMoTm9kZSogbm9kZSkKICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhp
cyk7CiAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAgICAgR1BSVGVtcG9yYXJ5IHNj
cmF0Y2gyKHRoaXMpOwotICAgIEdQUlRlbXBvcmFyeSBpbmRleE1hc2sodGhpcyk7CiAgICAgCiAg
ICAgR1BSUmVnIGJhc2VSZWcgPSBiYXNlLmdwcigpOwogICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9
IHByb3BlcnR5LmdwcigpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVn
cygpOwogICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKICAgICBHUFJSZWcg
c2NyYXRjaDJSZWcgPSBzY3JhdGNoMi5ncHIoKTsKLSAgICBHUFJSZWcgaW5kZXhNYXNrUmVnID0g
aW5kZXhNYXNrLmdwcigpOwogICAgIAogICAgIGlmICghbV9jb21waWxlT2theSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNjk4MywxNSArNjk4MSwxMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgIAogICAgIG1faml0
LmxvYWRQdHIoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIFNjb3Bl
ZEFyZ3VtZW50czo6b2Zmc2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7
Ci0gICAgbV9qaXQubG9hZDMyKAotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1
bHRSZWdzLnBheWxvYWRHUFIoKSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRvdGFsTGVuZ3Ro
SW5TdG9yYWdlKCkpLAotICAgICAgICBzY3JhdGNoUmVnKTsKLSAgICAKKwogICAgIHNwZWN1bGF0
aW9uQ2hlY2soCiAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIEpTVmFsdWVTb3VyY2UoKSwgbnVs
bHB0ciwKLSAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVh
bCwgcHJvcGVydHlSZWcsIHNjcmF0Y2hSZWcpKTsKLSAgICAKLSAgICBtX2ppdC5lbWl0UHJlcGFy
ZVByZWNpc2VJbmRleE1hc2szMihwcm9wZXJ0eVJlZywgc2NyYXRjaFJlZywgaW5kZXhNYXNrUmVn
KTsKKyAgICAgICAgbV9qaXQuYnJhbmNoMzIoCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgpKSkp
OwogICAgIAogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJl
ZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlRhYmxlKCkpLCBzY3JhdGNoUmVnKTsKICAgICBt
X2ppdC5sb2FkMzIoCkBAIC03MDM0LDggKzcwMjksNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgIAogICAgIGRv
bmUubGluaygmbV9qaXQpOwogICAgIAotICAgIG1faml0LmFuZFB0cihpbmRleE1hc2tSZWcsIHJl
c3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICAKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJl
Z3MsIG5vZGUpOwogfQogCkBAIC03MTY2LDcgKzcxNTksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSogbm9kZSkKICAgICB9CiAgICAgY2FzZSBBcnJh
eTo6U2NvcGVkQXJndW1lbnRzOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2Uo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMp
OworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKICAgICAg
ICAgCiAgICAgICAgIEdQUlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICAgICAgR1BSUmVn
IHJlc3VsdFJlZyA9IHJlc3VsdC5ncHIoKTsKQEAgLTcxNzYsMTcgKzcxNjksMTQgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5vZGUpCiAgICAgICAg
IAogICAgICAgICBBU1NFUlQoQXJyYXlNb2RlKEFycmF5OjpTY29wZWRBcmd1bWVudHMsIEFycmF5
OjpSZWFkKS5hbHJlYWR5Q2hlY2tlZChtX2ppdC5ncmFwaCgpLCBub2RlLCBtX3N0YXRlLmZvck5v
ZGUobm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIAotICAgICAgICBtX2ppdC5sb2FkUHRyKAot
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgU2NvcGVkQXJndW1l
bnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHJlc3VsdFJlZyk7Ci0KICAgICAgICAgc3BlY3VsYXRp
b25DaGVjaygKICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIEpTVmFsdWVTb3VyY2UoKSwg
MCwKICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAogICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpOb25aZXJvLAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHJlc3VsdFJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzSW5T
dG9yYWdlKCkpKSk7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZVJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZk92ZXJyb2RlVGhpbmdzKCkpKSk7CiAgICAg
ICAgIAogICAgICAgICBtX2ppdC5sb2FkMzIoCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhyZXN1bHRSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aElu
U3RvcmFnZSgpKSwgcmVzdWx0UmVnKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgpKSwgcmVz
dWx0UmVnKTsKICAgICAgICAgCiAgICAgICAgIGludDMyUmVzdWx0KHJlc3VsdFJlZywgbm9kZSk7
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCA1ZGY0M2Y3NzRmZjM0NjY3MGNlMTg0ZWM3
NThkMWExMTMwNzJiZDBmLi44NzQwNTcyYmI4NTgzYzg1NWMxNmZmZWMyY2RiYzdmOThmOTUxNjAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJl
cG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaApAQCAtMTMzLDExICsxMzMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogICAgIG1hY3JvKFNoYWRvd0NoaWNrZW5fUGFja2V0X3Njb3BlLCBPQkpFQ1Rf
T0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0LCBzY29wZSkpIFwKICAgICBtYWNybyhTaGFk
b3dDaGlja2VuX1BhY2tldF9jb2RlQmxvY2ssIE9CSkVDVF9PRkZTRVRPRihTaGFkb3dDaGlja2Vu
OjpQYWNrZXQsIGNvZGVCbG9jaykpIFwKICAgICBtYWNybyhTaGFkb3dDaGlja2VuX1BhY2tldF9j
YWxsU2l0ZUluZGV4LCBPQkpFQ1RfT0ZGU0VUT0YoU2hhZG93Q2hpY2tlbjo6UGFja2V0LCBjYWxs
U2l0ZUluZGV4KSkgXAotICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX292ZXJyb2Rl
VGhpbmdzLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVUaGluZ3NJblN0b3JhZ2Uo
KSkgXAotICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX3RvdGFsTGVuZ3RoLCBTY29w
ZWRBcmd1bWVudHM6Om9mZnNldE9mVG90YWxMZW5ndGhJblN0b3JhZ2UoKSkgXAotICAgIG1hY3Jv
KFNjb3BlZEFyZ3VtZW50c19zdG9yYWdlLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mU3RvcmFn
ZSgpKSBcCisgICAgbWFjcm8oU2NvcGVkQXJndW1lbnRzX292ZXJyb2RlVGhpbmdzLCBTY29wZWRB
cmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVUaGluZ3MoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFy
Z3VtZW50c19zY29wZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlNjb3BlKCkpIFwKKyAgICBt
YWNybyhTY29wZWRBcmd1bWVudHNfc3RvcmFnZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0
b3JhZ2UoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c190YWJsZSwgU2NvcGVkQXJndW1l
bnRzOjpvZmZzZXRPZlRhYmxlKCkpIFwKKyAgICBtYWNybyhTY29wZWRBcmd1bWVudHNfdG90YWxM
ZW5ndGgsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgpKSBcCiAgICAgbWFj
cm8oU2NvcGVkQXJndW1lbnRzVGFibGVfYXJndW1lbnRzLCBTY29wZWRBcmd1bWVudHNUYWJsZTo6
b2Zmc2V0T2ZBcmd1bWVudHMoKSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50c1RhYmxlX2xl
bmd0aCwgU2NvcGVkQXJndW1lbnRzVGFibGU6Om9mZnNldE9mTGVuZ3RoKCkpIFwKICAgICBtYWNy
byhTdHJpbmdJbXBsX2RhdGEsIFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDM3ZjBhOTYwMGY2
NTdhYTA2ZjcyNWVkYmYxY2M0MDI3Njg4OWUyOTAuLmU1ZTM3NTM5OGM3MzliZTY0YzE5OTEyYjZk
MjM2OTRkMTRjMjBkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKQEAgLTE1OCw3ICsxNTgsNiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAg
ICAgICAsIG1fYXZhaWxhYmlsaXR5Q2FsY3VsYXRvcihtX2dyYXBoKQogICAgICAgICAsIG1fc3Rh
dGUoc3RhdGUuZ3JhcGgpCiAgICAgICAgICwgbV9pbnRlcnByZXRlcihzdGF0ZS5ncmFwaCwgbV9z
dGF0ZSkKLSAgICAgICAgLCBtX2luZGV4TWFza2luZ01vZGUoT3B0aW9uczo6ZW5hYmxlU3BlY3Ry
ZU1pdGlnYXRpb25zKCkgPyAgSW5kZXhNYXNraW5nRW5hYmxlZCA6IEluZGV4TWFza2luZ0Rpc2Fi
bGVkKQogICAgIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZhbGlkYXRlQWJzdHJhY3RJbnRlcnBy
ZXRlclN0YXRlKCkpIHsKICAgICAgICAgICAgIHBlcmZvcm1MaXZlbmVzc0FuYWx5c2lzKG1fZ3Jh
cGgpOwpAQCAtNDE4MywxMSArNDE4MiwxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAg
ICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OlNjb3BlZEFyZ3VtZW50czogewogICAgICAgICAg
ICAgTFZhbHVlIGFyZ3VtZW50cyA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAg
ICAgICBMVmFsdWUgc3RvcmFnZSA9IG1fb3V0LmxvYWRQdHIoYXJndW1lbnRzLCBtX2hlYXBzLlNj
b3BlZEFyZ3VtZW50c19zdG9yYWdlKTsKICAgICAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAg
ICAgICAgICBFeG90aWNPYmplY3RNb2RlLCBub1ZhbHVlKCksIG51bGxwdHIsCi0gICAgICAgICAg
ICAgICAgbV9vdXQubm90WmVybzMyKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKHN0b3JhZ2UsIG1faGVh
cHMuU2NvcGVkQXJndW1lbnRzX1N0b3JhZ2Vfb3ZlcnJvZGVUaGluZ3MpKSk7Ci0gICAgICAgICAg
ICBzZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLlNjb3Bl
ZEFyZ3VtZW50c19TdG9yYWdlX3RvdGFsTGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgbV9vdXQu
bm90WmVybzMyKG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGFyZ3VtZW50cywgbV9oZWFwcy5TY29wZWRB
cmd1bWVudHNfb3ZlcnJvZGVUaGluZ3MpKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5s
b2FkMzJOb25OZWdhdGl2ZShhcmd1bWVudHMsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3RvdGFs
TGVuZ3RoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIApA
QCAtNDM4MiwxMiArNDM4MCwxMSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAg
TFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSk7CiAg
ICAgICAgICAgICBMVmFsdWUgaW5kZXggPSBsb3dJbnQzMihtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMSkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMVmFsdWUgc3RvcmFnZSA9IG1f
b3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5TY29wZWRBcmd1bWVudHNfc3RvcmFnZSk7Ci0gICAg
ICAgICAgICBMVmFsdWUgdG90YWxMZW5ndGggPSBtX291dC5sb2FkMzJOb25OZWdhdGl2ZSgKLSAg
ICAgICAgICAgICAgICBzdG9yYWdlLCBtX2hlYXBzLlNjb3BlZEFyZ3VtZW50c19TdG9yYWdlX3Rv
dGFsTGVuZ3RoKTsKICAgICAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgICAgICBFeG90
aWNPYmplY3RNb2RlLCBub1ZhbHVlKCksIG51bGxwdHIsCi0gICAgICAgICAgICAgICAgbV9vdXQu
YWJvdmVPckVxdWFsKGluZGV4LCB0b3RhbExlbmd0aCkpOworICAgICAgICAgICAgICAgIG1fb3V0
LmFib3ZlT3JFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgsCisgICAgICAgICAgICAg
ICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1l
bnRzX3RvdGFsTGVuZ3RoKSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBMVmFsdWUgdGFi
bGUgPSBtX291dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX3RhYmxlKTsK
ICAgICAgICAgICAgIExWYWx1ZSBuYW1lZExlbmd0aCA9IG1fb3V0LmxvYWQzMih0YWJsZSwgbV9o
ZWFwcy5TY29wZWRBcmd1bWVudHNUYWJsZV9sZW5ndGgpOwpAQCAtNDQxOSw2ICs0NDE2LDcgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8ob3ZlcmZsb3dDYXNlLCBjb250aW51YXRpb24pOwogICAgICAgICAgICAgCisgICAgICAg
ICAgICBMVmFsdWUgc3RvcmFnZSA9IG1fb3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5TY29wZWRB
cmd1bWVudHNfc3RvcmFnZSk7CiAgICAgICAgICAgICBhZGRyZXNzID0gbV9vdXQuYmFzZUluZGV4
KAogICAgICAgICAgICAgICAgIG1faGVhcHMuU2NvcGVkQXJndW1lbnRzX1N0b3JhZ2Vfc3RvcmFn
ZSwgc3RvcmFnZSwKICAgICAgICAgICAgICAgICBtX291dC56ZXJvRXh0UHRyKG1fb3V0LnN1Yihp
bmRleCwgbmFtZWRMZW5ndGgpKSk7CkBAIC00NDI4LDExICs0NDI2LDcgQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5waGkoSW50
NjQsIG5hbWVkUmVzdWx0LCBvdmVyZmxvd1Jlc3VsdCk7Ci0gICAgICAgICAgICByZXN1bHQgPSBw
cmVjaXNlSW5kZXhNYXNrMzIocmVzdWx0LCBpbmRleCwgdG90YWxMZW5ndGgpOwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CisgICAgICAgICAgICBzZXRKU1Zh
bHVlKG1fb3V0LnBoaShJbnQ2NCwgbmFtZWRSZXN1bHQsIG92ZXJmbG93UmVzdWx0KSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtNDYwOSw3ICs0NjAz
LDYgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIExWYWx1ZSBwb2ludGVyID0g
bV9vdXQuYmFzZUluZGV4KAogICAgICAgICAgICAgICAgIGJhc2UudmFsdWUoKSwgbV9vdXQuemVy
b0V4dChpbmRleCwgcG9pbnRlclR5cGUoKSksIFNjYWxlRWlnaHQpOwogICAgICAgICAgICAgcmVz
dWx0ID0gbV9vdXQubG9hZDY0KFR5cGVkUG9pbnRlcihtX2hlYXBzLnZhcmlhYmxlcy5hdEFueUlu
ZGV4KCksIHBvaW50ZXIpKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IHByZWNpc2VJbmRleE1hc2sz
MihyZXN1bHQsIGluZGV4VG9DaGVjaywgbnVtYmVyT2ZBcmdzKTsKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICByZXN1bHQgPSBtX291dC5jb25zdEludDY0KEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKSk7CiAgICAgICAgIApAQCAtMTczNDksMjIgKzE3MzQyLDYgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4
dCk7CiAgICAgfQogICAgIAotICAgIExWYWx1ZSBwcmVjaXNlSW5kZXhNYXNrNjQoTFZhbHVlIHZh
bHVlLCBMVmFsdWUgaW5kZXgsIExWYWx1ZSBsaW1pdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBt
X291dC5iaXRBbmQoCi0gICAgICAgICAgICB2YWx1ZSwKLSAgICAgICAgICAgIG1fb3V0LmFTaHIo
Ci0gICAgICAgICAgICAgICAgbV9vdXQuc3ViKAotICAgICAgICAgICAgICAgICAgICBpbmRleCwK
LSAgICAgICAgICAgICAgICAgICAgbV9vdXQub3BhcXVlKGxpbWl0KSksCi0gICAgICAgICAgICAg
ICAgbV9vdXQuY29uc3RJbnQzMig2MykpKTsKLSAgICB9Ci0gICAgCi0gICAgTFZhbHVlIHByZWNp
c2VJbmRleE1hc2szMihMVmFsdWUgdmFsdWUsIExWYWx1ZSBpbmRleCwgTFZhbHVlIGxpbWl0KQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHByZWNpc2VJbmRleE1hc2s2NCh2YWx1ZSwgbV9vdXQuemVy
b0V4dChpbmRleCwgSW50NjQpLCBtX291dC56ZXJvRXh0KGxpbWl0LCBJbnQ2NCkpOwotICAgIH0K
LSAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB0eXBlbmFtZS4uLiBB
cmdzPgogICAgIExWYWx1ZSB2bUNhbGwoTFR5cGUgdHlwZSwgT3BlcmF0aW9uVHlwZSBmdW5jdGlv
biwgQXJncyYmLi4uIGFyZ3MpCiAgICAgewpAQCAtMTgwNjAsMTAgKzE4MDM3LDYgQEAgY2xhc3Mg
TG93ZXJERkdUb0IzIHsKICAgICBERkc6OkJhc2ljQmxvY2sqIG1fbmV4dEhpZ2hCbG9jazsKICAg
ICBMQmFzaWNCbG9jayBtX25leHRMb3dCbG9jazsKIAotICAgIGVudW0gSW5kZXhNYXNraW5nTW9k
ZSB7IEluZGV4TWFza2luZ0Rpc2FibGVkLCBJbmRleE1hc2tpbmdFbmFibGVkIH07Ci0KLSAgICBJ
bmRleE1hc2tpbmdNb2RlIG1faW5kZXhNYXNraW5nTW9kZTsKLQogICAgIE5vZGVPcmlnaW4gbV9v
cmlnaW47CiAgICAgdW5zaWduZWQgbV9ub2RlSW5kZXg7CiAgICAgTm9kZSogbV9ub2RlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDFjYWMx
YzQyMWRhOGI3YzY0YjkyMjBmYTliZjMyY2M0ZmRhNjA1NmIuLjM1YzU5NWVhZjNiMTM1MzI2Mjdi
YTMwYzZhMWEyY2MwY2RhNjViN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fz
c2VtYmx5SGVscGVycy5jcHAKQEAgLTk4OCwxOCArOTg4LDYgQEAgdm9pZCBBc3NlbWJseUhlbHBl
cnM6OnNhbml0aXplU3RhY2tJbmxpbmUoVk0mIHZtLCBHUFJSZWcgc2NyYXRjaCkKICAgICBzdG9y
ZVB0cihzY3JhdGNoLCB2bS5hZGRyZXNzT2ZMYXN0U3RhY2tUb3AoKSk7CiB9CiAKLXZvaWQgQXNz
ZW1ibHlIZWxwZXJzOjplbWl0UHJlcGFyZVByZWNpc2VJbmRleE1hc2szMihHUFJSZWcgaW5kZXgs
IEdQUlJlZyBsZW5ndGgsIEdQUlJlZyByZXN1bHQpCi17Ci0gICAgaWYgKGxlbmd0aCA9PSByZXN1
bHQpIHsKLSAgICAgICAgbmVnUHRyKGxlbmd0aCk7Ci0gICAgICAgIGFkZFB0cihpbmRleCwgbGVu
Z3RoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtb3ZlKGluZGV4LCByZXN1bHQpOwotICAgICAg
ICBzdWJQdHIobGVuZ3RoLCByZXN1bHQpOwotICAgIH0KLSAgICByc2hpZnRQdHIoVHJ1c3RlZElt
bTMyKHByZWNpc2VJbmRleE1hc2tTaGlmdDx2b2lkKj4oKSksIHJlc3VsdCk7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGNhMjExOTVmMmEzZmQ5MDU4MjU2ODc1
MjMzNGU1ZTU4NmU5Y2Y2ZDYuLjIyMDA5YzVmZDJiYTIyN2Q0N2NmZTg1NDkzOWY1MmRlZjJkNzFi
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAt
MTkwNywxMSArMTkwNyw2IEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fz
c2VtYmxlciB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICB2b2lkIHdhbmdzSW50NjRIYXNoKEdQ
UlJlZyBpbnB1dEFuZFJlc3VsdCwgR1BSUmVnIHNjcmF0Y2gpOwogI2VuZGlmCi0gICAgCi0gICAg
Ly8gVGhpcyBhc3N1bWVzIHRoYXQgaW5kZXggYW5kIGxlbmd0aCBhcmUgMzItYml0LiBUaGlzIGFs
c28gYXNzdW1lcyB0aGF0IHRoZXkgYXJlIGFscmVhZHkKLSAgICAvLyB6ZXJvLWV4dGVuZGVkLiBB
bHNvIHRoaXMgZG9lcyBub3QgY2xvYmJlciBpbmRleCwgd2hpY2ggaXMgdXNlZnVsIGluIHRoZSBi
YXNlbGluZSBKSVQuIFRoaXMKLSAgICAvLyBwZXJtaXRzIGxlbmd0aCBhbmQgcmVzdWx0IHRvIGJl
IGluIHRoZSBzYW1lIHJlZ2lzdGVyLgotICAgIHZvaWQgZW1pdFByZXBhcmVQcmVjaXNlSW5kZXhN
YXNrMzIoR1BSUmVnIGluZGV4LCBHUFJSZWcgbGVuZ3RoLCBHUFJSZWcgcmVzdWx0KTsKIAogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICB2b2lkIGxvYWRXYXNtQ29udGV4dEluc3RhbmNlKEdQ
UlJlZyBkc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDFmZjhiNDcwNDFkZmRl
ZTNkNDBjYTRiODQxNTI4YjZiYzBiMDVjM2IuLjI4YTczMTcxOTY5YmMyOTljZGE3YTY1ZjA4MDk1
ZGE0NTY0ODA0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTgxLDcgKzgxLDYg
QEAgSklUOjpKSVQoVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvZGVJbmRleCBs
b29wT1NSRW50cnlCeXRlY29kZUluZGV4KQogICAgICwgbV9wY1RvQ29kZU9yaWdpbk1hcEJ1aWxk
ZXIodm0pCiAgICAgLCBtX2NhbkJlT3B0aW1pemVkKGZhbHNlKQogICAgICwgbV9zaG91bGRFbWl0
UHJvZmlsaW5nKGZhbHNlKQotICAgICwgbV9zaG91bGRVc2VJbmRleE1hc2tpbmcoT3B0aW9uczo6
ZW5hYmxlU3BlY3RyZU1pdGlnYXRpb25zKCkpCiAgICAgLCBtX2xvb3BPU1JFbnRyeUJ5dGVjb2Rl
SW5kZXgobG9vcE9TUkVudHJ5Qnl0ZWNvZGVJbmRleCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCmluZGV4IDJiNGE1ZDY0YmYxNTY1YzFlODQzMTAyMTUwZjk0MWY0YjlhODJjNjEuLmQ3ZmU0
YWVjM2FkNmU2YTNlZjkxN2QzODEyNWZkNGFjZDVkMGY2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaApAQCAtOTY3LDcgKzk2Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1f
Y2FuQmVPcHRpbWl6ZWQ7CiAgICAgICAgIGJvb2wgbV9jYW5CZU9wdGltaXplZE9ySW5saW5lZDsK
ICAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxpbmc7Ci0gICAgICAgIGJvb2wgbV9zaG91
bGRVc2VJbmRleE1hc2tpbmc7CiAgICAgICAgIEJ5dGVjb2RlSW5kZXggbV9sb29wT1NSRW50cnlC
eXRlY29kZUluZGV4OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggZmYzOWIyMmIwZjE3ZGNiODQxMDkzYjQ1NWU4OTQ2
YjBiNGNiZDg3NS4uNGY4NjdkYTY3MGFlOWMxNTljOTBlYjliNjk2ZmI5YmRlNjU1MTY0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAg
LTE2MzQsMjAgKzE2MzQsMTcgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRTY29wZWRBcmd1bWVu
dHNHZXRCeVZhbChjb25zdCBJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAKICAgICBKU1ZhbHVl
UmVncyByZXN1bHQgPSBKU1ZhbHVlUmVncyhyZWdUMCk7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNo
ID0gcmVnVDM7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMiA9IHJlZ1Q0OwotICAgIFJlZ2lzdGVy
SUQgc2NyYXRjaDMgPSByZWdUNTsKICNlbHNlCiAgICAgUmVnaXN0ZXJJRCBiYXNlID0gcmVnVDA7
CiAgICAgUmVnaXN0ZXJJRCBwcm9wZXJ0eSA9IHJlZ1QyOwogICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dCA9IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCk7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0g
cmVnVDM7CiAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMiA9IHJlZ1Q0OwotICAgIFJlZ2lzdGVySUQg
c2NyYXRjaDMgPSByZWdUNTsKICNlbmRpZgogCiAgICAgbG9hZDgoQWRkcmVzcyhiYXNlLCBKU0Nl
bGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgc2NyYXRjaCk7CiAgICAgYmFkVHlwZSA9IHBhdGNo
YWJsZUJyYW5jaDMyKE5vdEVxdWFsLCBzY3JhdGNoLCBUcnVzdGVkSW1tMzIoU2NvcGVkQXJndW1l
bnRzVHlwZSkpOwotICAgIGxvYWRQdHIoQWRkcmVzcyhiYXNlLCBTY29wZWRBcmd1bWVudHM6Om9m
ZnNldE9mU3RvcmFnZSgpKSwgc2NyYXRjaDMpOwotICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNo
MzIoQWJvdmVPckVxdWFsLCBwcm9wZXJ0eSwgQWRkcmVzcyhzY3JhdGNoMywgU2NvcGVkQXJndW1l
bnRzOjpvZmZzZXRPZlRvdGFsTGVuZ3RoSW5TdG9yYWdlKCkpKSk7CisgICAgc2xvd0Nhc2VzLmFw
cGVuZChicmFuY2gzMihBYm92ZU9yRXF1YWwsIHByb3BlcnR5LCBBZGRyZXNzKGJhc2UsIFNjb3Bl
ZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aCgpKSkpOwogICAgIAogICAgIGxvYWRQdHIo
QWRkcmVzcyhiYXNlLCBTY29wZWRBcmd1bWVudHM6Om9mZnNldE9mVGFibGUoKSksIHNjcmF0Y2gp
OwogICAgIGxvYWQzMihBZGRyZXNzKHNjcmF0Y2gsIFNjb3BlZEFyZ3VtZW50c1RhYmxlOjpvZmZz
ZXRPZkxlbmd0aCgpKSwgc2NyYXRjaDIpOwpAQCAtMTY2MSwxNCArMTY1OCwxMSBAQCBKSVQ6Okp1
bXBMaXN0IEpJVDo6ZW1pdFNjb3BlZEFyZ3VtZW50c0dldEJ5VmFsKGNvbnN0IEluc3RydWN0aW9u
KiwgUGF0Y2hhYmxlSnVtcAogICAgIG92ZXJmbG93Q2FzZS5saW5rKHRoaXMpOwogICAgIHN1YjMy
KHByb3BlcnR5LCBzY3JhdGNoMik7CiAgICAgbmVnMzIoc2NyYXRjaDIpOwotICAgIGxvYWRWYWx1
ZShCYXNlSW5kZXgoc2NyYXRjaDMsIHNjcmF0Y2gyLCBUaW1lc0VpZ2h0KSwgcmVzdWx0KTsKKyAg
ICBsb2FkUHRyKEFkZHJlc3MoYmFzZSwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2Uo
KSksIHNjcmF0Y2gpOworICAgIGxvYWRWYWx1ZShCYXNlSW5kZXgoc2NyYXRjaCwgc2NyYXRjaDIs
IFRpbWVzRWlnaHQpLCByZXN1bHQpOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoSWZFbXB0
eShyZXN1bHQpKTsKICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgCi0gICAgbG9hZDMyKEFkZHJl
c3Moc2NyYXRjaDMsIFNjb3BlZEFyZ3VtZW50czo6b2Zmc2V0T2ZUb3RhbExlbmd0aEluU3RvcmFn
ZSgpKSwgc2NyYXRjaCk7Ci0gICAgZW1pdFByZXBhcmVQcmVjaXNlSW5kZXhNYXNrMzIocHJvcGVy
dHksIHNjcmF0Y2gsIHNjcmF0Y2gyKTsKLSAgICBhbmRQdHIoc2NyYXRjaDIsIHJlc3VsdC5wYXls
b2FkR1BSKCkpOwotICAgIAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHMuY3BwCmluZGV4IGY0ODBi
MTc1N2FjOTMzNGE3M2QzYTZiZjhmYjdmOWNhNjBkZWM2NGQuLjA4MWQ5NzhhN2IyYTYyNjZhYzU1
MmMzNzlkMzg0NTAwNWRjMTFmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2NvcGVkQXJndW1lbnRzLmNwcApAQCAtMzUsMTEgKzM1LDEyIEBAIFNUQVRJQ19BU1NF
UlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShTY29wZWRBcmd1bWVudHMpOwogCiBjb25zdCBD
bGFzc0luZm8gU2NvcGVkQXJndW1lbnRzOjpzX2luZm8gPSB7ICJBcmd1bWVudHMiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFNjb3BlZEFyZ3Vt
ZW50cykgfTsKIAotU2NvcGVkQXJndW1lbnRzOjpTY29wZWRBcmd1bWVudHMoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlKQorU2NvcGVk
QXJndW1lbnRzOjpTY29wZWRBcmd1bWVudHMoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
V3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlLCB1bnNpZ25lZCB0b3RhbExlbmd0aCkKICAg
ICA6IEdlbmVyaWNBcmd1bWVudHModm0sIHN0cnVjdHVyZSkKLSAgICAsIG1fc3RvcmFnZSh2bSwg
dGhpcywgc3RvcmFnZSkKKyAgICAsIG1fdG90YWxMZW5ndGgodG90YWxMZW5ndGgpCiB7Ci0gICAg
QVNTRVJUKCFzdG9yYWdlSGVhZGVyKHN0b3JhZ2UpLm92ZXJyb2RlVGhpbmdzKTsKKyAgICBpZiAo
c3RvcmFnZSkKKyAgICAgICAgbV9zdG9yYWdlLnNldCh2bSwgdGhpcywgc3RvcmFnZSk7CiB9CiAK
IHZvaWQgU2NvcGVkQXJndW1lbnRzOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRnVuY3Rpb24q
IGNhbGxlZSwgU2NvcGVkQXJndW1lbnRzVGFibGUqIHRhYmxlLCBKU0xleGljYWxFbnZpcm9ubWVu
dCogc2NvcGUpCkBAIC01MiwyMiArNTMsMTYgQEAgdm9pZCBTY29wZWRBcmd1bWVudHM6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1bWVudHMKIAog
U2NvcGVkQXJndW1lbnRzKiBTY29wZWRBcmd1bWVudHM6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNGdW5jdGlvbiogY2FsbGVlLCBTY29wZWRBcmd1
bWVudHNUYWJsZSogdGFibGUsIEpTTGV4aWNhbEVudmlyb25tZW50KiBzY29wZSwgdW5zaWduZWQg
dG90YWxMZW5ndGgpCiB7Ci0gICAgdW5zaWduZWQgb3ZlcmZsb3dMZW5ndGg7Ci0gICAgaWYgKHRv
dGFsTGVuZ3RoID4gdGFibGUtPmxlbmd0aCgpKQotICAgICAgICBvdmVyZmxvd0xlbmd0aCA9IHRv
dGFsTGVuZ3RoIC0gdGFibGUtPmxlbmd0aCgpOwotICAgIGVsc2UKLSAgICAgICAgb3ZlcmZsb3dM
ZW5ndGggPSAwOwotICAgIAotICAgIHZvaWQqIHJhd1N0b3JhZ2VQdHIgPSB2bS5qc1ZhbHVlR2ln
YWNhZ2VBdXhpbGlhcnlTcGFjZS5hbGxvY2F0ZU5vblZpcnR1YWwoCi0gICAgICAgIHZtLCBzdG9y
YWdlU2l6ZShvdmVyZmxvd0xlbmd0aCksIG51bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6
QXNzZXJ0KTsKLSAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHN0b3JhZ2UgPSBzdGF0aWNfY2Fz
dDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihyYXdTdG9yYWdlUHRyKSArIDE7Ci0gICAgc3RvcmFn
ZUhlYWRlcihzdG9yYWdlKS5vdmVycm9kZVRoaW5ncyA9IGZhbHNlOwotICAgIHN0b3JhZ2VIZWFk
ZXIoc3RvcmFnZSkudG90YWxMZW5ndGggPSB0b3RhbExlbmd0aDsKLSAgICAKKyAgICBXcml0ZUJh
cnJpZXI8VW5rbm93bj4qIHN0b3JhZ2UgPSBudWxscHRyOworICAgIGlmICh0b3RhbExlbmd0aCA+
IHRhYmxlLT5sZW5ndGgoKSkgeworICAgICAgICBDaGVja2VkPHVuc2lnbmVkPiBvdmVyZmxvd0xl
bmd0aCA9IHRvdGFsTGVuZ3RoIC0gdGFibGUtPmxlbmd0aCgpOworICAgICAgICBzdG9yYWdlID0g
c3RhdGljX2Nhc3Q8V3JpdGVCYXJyaWVyPFVua25vd24+Kj4odm0uanNWYWx1ZUdpZ2FjYWdlQXV4
aWxpYXJ5U3BhY2UuYWxsb2NhdGVOb25WaXJ0dWFsKHZtLCAob3ZlcmZsb3dMZW5ndGggKiBzaXpl
b2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSkudW5zYWZlR2V0KCksIG51bGxwdHIsIEFsbG9jYXRp
b25GYWlsdXJlTW9kZTo6QXNzZXJ0KSk7CisgICAgfQorCiAgICAgU2NvcGVkQXJndW1lbnRzKiBy
ZXN1bHQgPSBuZXcgKAogICAgICAgICBOb3ROdWxsLAogICAgICAgICBhbGxvY2F0ZUNlbGw8U2Nv
cGVkQXJndW1lbnRzPih2bS5oZWFwKSkKLSAgICAgICAgU2NvcGVkQXJndW1lbnRzKHZtLCBzdHJ1
Y3R1cmUsIHN0b3JhZ2UpOworICAgICAgICBTY29wZWRBcmd1bWVudHModm0sIHN0cnVjdHVyZSwg
c3RvcmFnZSwgdG90YWxMZW5ndGgpOwogICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24odm0sIGNh
bGxlZSwgdGFibGUsIHNjb3BlKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNzksNyArNzQs
NyBAQCBTY29wZWRBcmd1bWVudHMqIFNjb3BlZEFyZ3VtZW50czo6Y3JlYXRlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRnVuY3RpbwogCiAgICAgdW5zaWduZWQgbmFtZWRMZW5ndGgg
PSB0YWJsZS0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbmFtZWRMZW5ndGg7IGkg
PCB0b3RhbExlbmd0aDsgKytpKQotICAgICAgICByZXN1bHQtPm92ZXJmbG93U3RvcmFnZSgpW2kg
LSBuYW1lZExlbmd0aF0uY2xlYXIoKTsKKyAgICAgICAgcmVzdWx0LT5zdG9yYWdlKClbaSAtIG5h
bWVkTGVuZ3RoXS5jbGVhcigpOwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC05OSw3
ICs5NCw3IEBAIFNjb3BlZEFyZ3VtZW50cyogU2NvcGVkQXJndW1lbnRzOjpjcmVhdGVCeUNvcHlp
bmdGcm9tKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1CiAgICAgCiAgICAgdW5zaWduZWQgbmFt
ZWRMZW5ndGggPSB0YWJsZS0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbmFtZWRM
ZW5ndGg7IGkgPCB0b3RhbExlbmd0aDsgKytpKQotICAgICAgICByZXN1bHQtPm92ZXJmbG93U3Rv
cmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uc2V0KHZtLCByZXN1bHQsIGFyZ3VtZW50c1N0YXJ0W2ld
LmpzVmFsdWUoKSk7CisgICAgICAgIHJlc3VsdC0+c3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0u
c2V0KHZtLCByZXN1bHQsIGFyZ3VtZW50c1N0YXJ0W2ldLmpzVmFsdWUoKSk7CiAgICAgCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExNCwxMSArMTA5LDEwIEBAIHZvaWQgU2NvcGVkQXJndW1l
bnRzOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAg
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV90YWJsZSk7CiAgICAgdmlzaXRvci5hcHBl
bmQodGhpc09iamVjdC0+bV9zY29wZSk7CiAgICAgCi0gICAgdmlzaXRvci5tYXJrQXV4aWxpYXJ5
KCZ0aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVyKCkpOwotICAgIAotICAgIGlmICh0aGlzT2JqZWN0
LT5zdG9yYWdlSGVhZGVyKCkudG90YWxMZW5ndGggPiB0aGlzT2JqZWN0LT5tX3RhYmxlLT5sZW5n
dGgoKSkgewotICAgICAgICB2aXNpdG9yLmFwcGVuZFZhbHVlcygKLSAgICAgICAgICAgIHRoaXNP
YmplY3QtPm92ZXJmbG93U3RvcmFnZSgpLCB0aGlzT2JqZWN0LT5zdG9yYWdlSGVhZGVyKCkudG90
YWxMZW5ndGggLSB0aGlzT2JqZWN0LT5tX3RhYmxlLT5sZW5ndGgoKSk7CisgICAgaWYgKFdyaXRl
QmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9IHRoaXNPYmplY3QtPm1fc3RvcmFnZS5nZXQoKSkg
eworICAgICAgICB2aXNpdG9yLm1hcmtBdXhpbGlhcnkoc3RvcmFnZSk7CisgICAgICAgIGlmICh0
aGlzT2JqZWN0LT5tX3RvdGFsTGVuZ3RoID4gdGhpc09iamVjdC0+bV90YWJsZS0+bGVuZ3RoKCkp
CisgICAgICAgICAgICB2aXNpdG9yLmFwcGVuZFZhbHVlcyhzdG9yYWdlLCB0aGlzT2JqZWN0LT5t
X3RvdGFsTGVuZ3RoIC0gdGhpc09iamVjdC0+bV90YWJsZS0+bGVuZ3RoKCkpOwogICAgIH0KIH0K
IApAQCAtMTI5LDI5ICsxMjMsMjkgQEAgU3RydWN0dXJlKiBTY29wZWRBcmd1bWVudHM6OmNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKIAogdm9pZCBT
Y29wZWRBcmd1bWVudHM6Om92ZXJyaWRlVGhpbmdzKFZNJiB2bSkKIHsKLSAgICBSRUxFQVNFX0FT
U0VSVCghc3RvcmFnZUhlYWRlcigpLm92ZXJyb2RlVGhpbmdzKTsKKyAgICBSRUxFQVNFX0FTU0VS
VCghbV9vdmVycm9kZVRoaW5ncyk7CiAgICAgCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKG1fdGFibGUtPmxlbmd0aCgpKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+Y2FsbGVlLCBtX2NhbGxlZS5nZXQoKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9iamVjdCh2bSktPmFy
cmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgCi0gICAgc3RvcmFnZUhlYWRlcigpLm92ZXJyb2Rl
VGhpbmdzID0gdHJ1ZTsKKyAgICBtX292ZXJyb2RlVGhpbmdzID0gdHJ1ZTsKIH0KIAogdm9pZCBT
Y29wZWRBcmd1bWVudHM6Om92ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoVk0mIHZtKQogewotICAg
IGlmICghc3RvcmFnZUhlYWRlcigpLm92ZXJyb2RlVGhpbmdzKQorICAgIGlmICghbV9vdmVycm9k
ZVRoaW5ncykKICAgICAgICAgb3ZlcnJpZGVUaGluZ3Modm0pOwogfQogCiB2b2lkIFNjb3BlZEFy
Z3VtZW50czo6dW5tYXBBcmd1bWVudChWTSYgdm0sIHVpbnQzMl90IGkpCiB7Ci0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaSA8IHN0b3JhZ2VIZWFkZXIoKS50b3RhbExlbmd0
aCk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaSA8IG1fdG90YWxMZW5n
dGgpOwogICAgIHVuc2lnbmVkIG5hbWVkTGVuZ3RoID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAg
aWYgKGkgPCBuYW1lZExlbmd0aCkKICAgICAgICAgbV90YWJsZS5zZXQodm0sIHRoaXMsIG1fdGFi
bGUtPnNldCh2bSwgaSwgU2NvcGVPZmZzZXQoKSkpOwogICAgIGVsc2UKLSAgICAgICAgb3ZlcmZs
b3dTdG9yYWdlKClbaSAtIG5hbWVkTGVuZ3RoXS5jbGVhcigpOworICAgICAgICBzdG9yYWdlKClb
aSAtIG5hbWVkTGVuZ3RoXS5jbGVhcigpOwogfQogCiB2b2lkIFNjb3BlZEFyZ3VtZW50czo6Y29w
eVRvQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBWaXJ0dWFsUmVnaXN0ZXIgZmlyc3RFbGVtZW50RGVzdCwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TY29wZWRBcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nj
b3BlZEFyZ3VtZW50cy5oCmluZGV4IGZkMTg0NGQ1YmI3ZmI0NDZmYWRlYzJlMTlkZmY2MTA1Zjdh
MzdjYzEuLmY4NWU0N2RmYmVlOGNhN2MzNzA0ZjI5ZWQ0Y2IxYjRlOTcyMDQ0NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCkBAIC0zOCwx
NiArMzgsMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAvLyBsb29rdXBzLgogY2xhc3MgU2NvcGVkQXJn
dW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVyaWNBcmd1bWVudHM8U2NvcGVkQXJndW1lbnRzPiB7
CiBwcml2YXRlOgotICAgIFNjb3BlZEFyZ3VtZW50cyhWTSYsIFN0cnVjdHVyZSosIFdyaXRlQmFy
cmllcjxVbmtub3duPiogc3RvcmFnZSk7CisgICAgU2NvcGVkQXJndW1lbnRzKFZNJiwgU3RydWN0
dXJlKiwgV3JpdGVCYXJyaWVyPFVua25vd24+KiBzdG9yYWdlLCB1bnNpZ25lZCB0b3RhbExlbmd0
aCk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTRnVuY3Rpb24qIGNhbGxlZSwgU2Nv
cGVkQXJndW1lbnRzVGFibGUqLCBKU0xleGljYWxFbnZpcm9ubWVudCopOwogICAgIHVzaW5nIEJh
c2UgPSBHZW5lcmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz47CiAKIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+Ci0gICAgc3RhdGljIENv
bXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKKyAgICBzdGF0aWMgSXNvU3Vic3Bh
Y2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKICAgICB7CiAgICAgICAgIHN0YXRpY19hc3NlcnQoIUNl
bGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uLCAiIik7Ci0gICAgICAgIHJldHVybiAmdm0udmFyaWFi
bGVTaXplZENlbGxTcGFjZTsKKyAgICAgICAgcmV0dXJuICZ2bS5zY29wZWRBcmd1bWVudHNTcGFj
ZTsKICAgICB9CiAKICAgICAvLyBDcmVhdGVzIGFuIGFyZ3VtZW50cyBvYmplY3QgYnV0IGxlYXZl
cyBpdCB1bmluaXRpYWxpemVkLiBUaGlzIGlzIGRhbmdlcm91cyBpZiB3ZSBHQyByaWdodApAQCAt
NjgsMTQgKzY4LDE0IEBAIGNsYXNzIFNjb3BlZEFyZ3VtZW50cyBmaW5hbCA6IHB1YmxpYyBHZW5l
cmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz4gewogICAgIAogICAgIHVpbnQzMl90IGludGVy
bmFsTGVuZ3RoKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdG9yYWdlSGVhZGVyKCku
dG90YWxMZW5ndGg7CisgICAgICAgIHJldHVybiBtX3RvdGFsTGVuZ3RoOwogICAgIH0KICAgICAK
ICAgICB1aW50MzJfdCBsZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
ICAgICB7CiAgICAgICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICAgICAgaWYgKFVOTElLRUxZ
KHN0b3JhZ2VIZWFkZXIoKS5vdmVycm9kZVRoaW5ncykpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZ
KG1fb3ZlcnJvZGVUaGluZ3MpKSB7CiAgICAgICAgICAgICBhdXRvIHZhbHVlID0gZ2V0KGdsb2Jh
bE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKTsKICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIDApOwogICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCB2YWx1ZS50b1VJbnQzMihnbG9iYWxPYmplY3QpKTsKQEAgLTg1LDEzICs4NSwxMiBAQCBj
bGFzcyBTY29wZWRBcmd1bWVudHMgZmluYWwgOiBwdWJsaWMgR2VuZXJpY0FyZ3VtZW50czxTY29w
ZWRBcmd1bWVudHM+IHsKICAgICAKICAgICBib29sIGlzTWFwcGVkQXJndW1lbnQodWludDMyX3Qg
aSkgY29uc3QKICAgICB7Ci0gICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9
IG92ZXJmbG93U3RvcmFnZSgpOwotICAgICAgICBpZiAoaSA+PSBzdG9yYWdlSGVhZGVyKHN0b3Jh
Z2UpLnRvdGFsTGVuZ3RoKQorICAgICAgICBpZiAoaSA+PSBtX3RvdGFsTGVuZ3RoKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB1bnNpZ25lZCBuYW1lZExlbmd0aCA9IG1fdGFi
bGUtPmxlbmd0aCgpOwogICAgICAgICBpZiAoaSA8IG5hbWVkTGVuZ3RoKQogICAgICAgICAgICAg
cmV0dXJuICEhbV90YWJsZS0+Z2V0KGkpOwotICAgICAgICByZXR1cm4gISFzdG9yYWdlW2kgLSBu
YW1lZExlbmd0aF0uZ2V0KCk7CisgICAgICAgIHJldHVybiAhIXN0b3JhZ2UoKVtpIC0gbmFtZWRM
ZW5ndGhdLmdldCgpOwogICAgIH0KIAogICAgIGJvb2wgaXNNYXBwZWRBcmd1bWVudEluREZHKHVp
bnQzMl90IGkpIGNvbnN0CkBAIC0xMDIsMjQgKzEwMSwyMCBAQCBjbGFzcyBTY29wZWRBcmd1bWVu
dHMgZmluYWwgOiBwdWJsaWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsKICAg
ICBKU1ZhbHVlIGdldEluZGV4UXVpY2tseSh1aW50MzJfdCBpKSBjb25zdAogICAgIHsKICAgICAg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNNYXBwZWRBcmd1bWVudChpKSk7
Ci0gICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSA9IG92ZXJmbG93U3RvcmFn
ZSgpOwotICAgICAgICB1bnNpZ25lZCB0b3RhbExlbmd0aCA9IHN0b3JhZ2VIZWFkZXIoc3RvcmFn
ZSkudG90YWxMZW5ndGg7CiAgICAgICAgIHVuc2lnbmVkIG5hbWVkTGVuZ3RoID0gbV90YWJsZS0+
bGVuZ3RoKCk7CiAgICAgICAgIGlmIChpIDwgbmFtZWRMZW5ndGgpCi0gICAgICAgICAgICByZXR1
cm4gcHJlY2lzZUluZGV4TWFza1B0cihpLCB0b3RhbExlbmd0aCwgJm1fc2NvcGUtPnZhcmlhYmxl
QXQobV90YWJsZS0+Z2V0KGkpKSktPmdldCgpOwotICAgICAgICByZXR1cm4gcHJlY2lzZUluZGV4
TWFza1B0cihpLCB0b3RhbExlbmd0aCwgc3RvcmFnZSArIChpIC0gbmFtZWRMZW5ndGgpKS0+Z2V0
KCk7CisgICAgICAgICAgICByZXR1cm4gbV9zY29wZS0+dmFyaWFibGVBdChtX3RhYmxlLT5nZXQo
aSkpLmdldCgpOworICAgICAgICByZXR1cm4gc3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uZ2V0
KCk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRJbmRleFF1aWNrbHkoVk0mIHZtLCB1aW50MzJfdCBp
LCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oaXNNYXBwZWRBcmd1bWVudChpKSk7Ci0gICAgICAgIFdyaXRlQmFycmllcjxVbmtu
b3duPiogc3RvcmFnZSA9IG92ZXJmbG93U3RvcmFnZSgpOwotICAgICAgICB1bnNpZ25lZCB0b3Rh
bExlbmd0aCA9IHN0b3JhZ2VIZWFkZXIoc3RvcmFnZSkudG90YWxMZW5ndGg7CiAgICAgICAgIHVu
c2lnbmVkIG5hbWVkTGVuZ3RoID0gbV90YWJsZS0+bGVuZ3RoKCk7CiAgICAgICAgIGlmIChpIDwg
bmFtZWRMZW5ndGgpCi0gICAgICAgICAgICBwcmVjaXNlSW5kZXhNYXNrUHRyKGksIHRvdGFsTGVu
Z3RoLCAmbV9zY29wZS0+dmFyaWFibGVBdChtX3RhYmxlLT5nZXQoaSkpKS0+c2V0KHZtLCBtX3Nj
b3BlLmdldCgpLCB2YWx1ZSk7CisgICAgICAgICAgICBtX3Njb3BlLT52YXJpYWJsZUF0KG1fdGFi
bGUtPmdldChpKSkuc2V0KHZtLCBtX3Njb3BlLmdldCgpLCB2YWx1ZSk7CiAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHByZWNpc2VJbmRleE1hc2tQdHIoaSwgdG90YWxMZW5ndGgsIHN0b3JhZ2Ug
KyAoaSAtIG5hbWVkTGVuZ3RoKSktPnNldCh2bSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAg
c3RvcmFnZSgpW2kgLSBuYW1lZExlbmd0aF0uc2V0KHZtLCB0aGlzLCB2YWx1ZSk7CiAgICAgfQog
CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlKCkKQEAgLTEyNyw3ICsxMjIsNyBAQCBjbGFzcyBTY29w
ZWRBcmd1bWVudHMgZmluYWwgOiBwdWJsaWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVu
dHM+IHsKICAgICAgICAgcmV0dXJuIG1fY2FsbGVlLmdldCgpOwogICAgIH0KIAotICAgIGJvb2wg
b3ZlcnJvZGVUaGluZ3MoKSBjb25zdCB7IHJldHVybiBzdG9yYWdlSGVhZGVyKCkub3ZlcnJvZGVU
aGluZ3M7IH0KKyAgICBib29sIG92ZXJyb2RlVGhpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9vdmVy
cm9kZVRoaW5nczsgfQogICAgIHZvaWQgb3ZlcnJpZGVUaGluZ3MoVk0mKTsKICAgICB2b2lkIG92
ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoVk0mKTsKICAgICB2b2lkIHVubWFwQXJndW1lbnQoVk0m
LCB1aW50MzJfdCBpbmRleCk7CkBAIC0xNTMsNDcgKzE0OCwyMCBAQCBjbGFzcyBTY29wZWRBcmd1
bWVudHMgZmluYWwgOiBwdWJsaWMgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+IHsK
ICAgICAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlKTsKICAgICAKLSAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mU3RvcmFnZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVu
dHMsIG1fc3RvcmFnZSk7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mT3ZlcnJvZGVU
aGluZ3NJblN0b3JhZ2UoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU3RvcmFnZUhlYWRlciwg
b3ZlcnJvZGVUaGluZ3MpIC0gc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPik7IH0KLSAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mVG90YWxMZW5ndGhJblN0b3JhZ2UoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoU3RvcmFnZUhlYWRlciwgdG90YWxMZW5ndGgpIC0gc2l6ZW9mKFdyaXRl
QmFycmllcjxVbmtub3duPik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mT3ZlcnJv
ZGVUaGluZ3MoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NvcGVkQXJndW1lbnRzLCBtX292
ZXJyb2RlVGhpbmdzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZUb3RhbExlbmd0
aCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVudHMsIG1fdG90YWxMZW5n
dGgpOyB9CiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlRhYmxlKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKFNjb3BlZEFyZ3VtZW50cywgbV90YWJsZSk7IH0KICAgICBzdGF0aWMgcHRy
ZGlmZl90IG9mZnNldE9mU2NvcGUoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NvcGVkQXJn
dW1lbnRzLCBtX3Njb3BlKTsgfQotICAgIAotICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNp
emUoc2l6ZV90IGlubGluZVNpemUpCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVCghaW5s
aW5lU2l6ZSk7Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2NvcGVkQXJndW1lbnRzKTsKLSAgICB9
Ci0gICAgCi0gICAgc3RhdGljIHNpemVfdCBzdG9yYWdlU2l6ZShDaGVja2VkPHNpemVfdD4gY2Fw
YWNpdHkpCi0gICAgewotICAgICAgICByZXR1cm4gKHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93
bj4pICogKGNhcGFjaXR5ICsgc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSkpLnVuc2FmZUdldCgpOwot
ICAgIH0KLSAgICAKLSAgICBzdGF0aWMgc2l6ZV90IHN0b3JhZ2VIZWFkZXJTaXplKCkgeyByZXR1
cm4gc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPik7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mU3RvcmFnZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihTY29wZWRBcmd1bWVu
dHMsIG1fc3RvcmFnZSk7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgc3RydWN0IFN0b3JhZ2VIZWFk
ZXIgewotICAgICAgICB1bnNpZ25lZCB0b3RhbExlbmd0aDsKLSAgICAgICAgYm9vbCBvdmVycm9k
ZVRoaW5nczsgLy8gVHJ1ZSBpZiBsZW5ndGgsIGNhbGxlZSwgYW5kIGNhbGxlciBhcmUgZnVsbHkg
bWF0ZXJpYWxpemVkIGluIHRoZSBvYmplY3QuCi0gICAgfTsKLSAgICAKLSAgICBXcml0ZUJhcnJp
ZXI8VW5rbm93bj4qIG92ZXJmbG93U3RvcmFnZSgpIGNvbnN0CisgICAgV3JpdGVCYXJyaWVyPFVu
a25vd24+KiBzdG9yYWdlKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3N0b3JhZ2Uu
Z2V0KCk7CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBTdG9yYWdlSGVhZGVyJiBzdG9yYWdlSGVh
ZGVyKFdyaXRlQmFycmllcjxVbmtub3duPiogc3RvcmFnZSkKLSAgICB7Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoc2l6ZW9mKFN0b3JhZ2VIZWFkZXIpIDw9IHNpemVvZihXcml0ZUJhcnJpZXI8VW5r
bm93bj4pLCAiU3RvcmFnZUhlYWRlciBuZWVkcyB0byBiZSBubyBiaWdnZXIgdGhhbiBhIEpTVmFs
dWUiKTsKLSAgICAgICAgcmV0dXJuICpiaXR3aXNlX2Nhc3Q8U3RvcmFnZUhlYWRlcio+KHN0b3Jh
Z2UgLSAxKTsKLSAgICB9Ci0gICAgCi0gICAgU3RvcmFnZUhlYWRlciYgc3RvcmFnZUhlYWRlcigp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gc3RvcmFnZUhlYWRlcihvdmVyZmxvd1N0b3Jh
Z2UoKSk7Ci0gICAgfQotICAgIAorICAgIGJvb2wgbV9vdmVycm9kZVRoaW5ncyB7IGZhbHNlIH07
IC8vIFRydWUgaWYgbGVuZ3RoLCBjYWxsZWUsIGFuZCBjYWxsZXIgYXJlIGZ1bGx5IG1hdGVyaWFs
aXplZCBpbiB0aGUgb2JqZWN0LgorICAgIHVuc2lnbmVkIG1fdG90YWxMZW5ndGg7IC8vIFRoZSBs
ZW5ndGggb2YgZGVjbGFyZWQgcGx1cyBvdmVyZmxvdyBhcmd1bWVudHMuCiAgICAgV3JpdGVCYXJy
aWVyPEpTRnVuY3Rpb24+IG1fY2FsbGVlOwogICAgIFdyaXRlQmFycmllcjxTY29wZWRBcmd1bWVu
dHNUYWJsZT4gbV90YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNMZXhpY2FsRW52aXJvbm1lbnQ+
IG1fc2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggMDc1YzlmODk5
YWZiZDlmYjFiYjY4OTlkMDcyZWQwZmM4MzUwZTIzNS4uNzRkNDBmNDVmZDQxMDA4N2ZiODE5ZjMx
MzUwZGY5Y2MwOTdhZjQxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAt
MTMwLDYgKzEzMCw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNs
dWRlICJSdW50aW1lVHlwZS5oIgogI2luY2x1ZGUgIlNhbXBsaW5nUHJvZmlsZXIuaCIKKyNpbmNs
dWRlICJTY29wZWRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTaGFkb3dDaGlja2VuLmgiCiAjaW5j
bHVkZSAiU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92
aWRlckNhY2hlLmgiCkBAIC0yODIsNiArMjgzLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhl
YXBUeXBlIGhlYXBUeXBlKQogICAgICwgbmF0aXZlRXhlY3V0YWJsZVNwYWNlIElTT19TVUJTUEFD
RV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIE5hdGl2ZUV4
ZWN1dGFibGUpIC8vIEhhc2g6MHg2NzU2N2Y5NQogICAgICwgcHJvcGVydHlUYWJsZVNwYWNlIElT
T19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCks
IFByb3BlcnR5VGFibGUpIC8vIEhhc2g6MHhjNmJjOWYxMgogICAgICwgcm9wZVN0cmluZ1NwYWNl
IElTT19TVUJTUEFDRV9JTklUKGhlYXAsIHN0cmluZ0hlYXBDZWxsVHlwZS5nZXQoKSwgSlNSb3Bl
U3RyaW5nKQorICAgICwgc2NvcGVkQXJndW1lbnRzU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVh
cCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgU2NvcGVkQXJndW1lbnRzKQogICAgICwgc3BhcnNl
QXJyYXlWYWx1ZU1hcFNwYWNlIElTT19TVUJTUEFDRV9JTklUKGhlYXAsIGRlc3RydWN0aWJsZUNl
bGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFNwYXJzZUFycmF5VmFsdWVNYXApCiAgICAgLCBzdHJpbmdT
cGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBzdHJpbmdIZWFwQ2VsbFR5cGUuZ2V0KCksIEpT
U3RyaW5nKSAvLyBIYXNoOjB4OTBjZjc1OGYKICAgICAsIHN0cnVjdHVyZVJhcmVEYXRhU3BhY2Ug
SVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQo
KSwgU3RydWN0dXJlUmFyZURhdGEpIC8vIEhhc2g6MHhhY2E0ZTYyZApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKaW5kZXggZTZkNmNiZTU3N2MzZTZmMWZjMDY0NmI2NTNhMWQ3ZWYzNGMzZDRm
MS4uZjY2MDY1NDQyYjI2OTViMTE1ZDI1MmUyMDRlMWUxNDZmNjUwNGU1OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCkBAIC0zODMsNiArMzgzLDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+
IHsKICAgICBJc29TdWJzcGFjZSBuYXRpdmVFeGVjdXRhYmxlU3BhY2U7CiAgICAgSXNvU3Vic3Bh
Y2UgcHJvcGVydHlUYWJsZVNwYWNlOwogICAgIElzb1N1YnNwYWNlIHJvcGVTdHJpbmdTcGFjZTsK
KyAgICBJc29TdWJzcGFjZSBzY29wZWRBcmd1bWVudHNTcGFjZTsKICAgICBJc29TdWJzcGFjZSBz
cGFyc2VBcnJheVZhbHVlTWFwU3BhY2U7CiAgICAgSXNvU3Vic3BhY2Ugc3RyaW5nU3BhY2U7CiAg
ICAgSXNvU3Vic3BhY2Ugc3RydWN0dXJlUmFyZURhdGFTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL01hdGhFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaAppbmRl
eCBmZGRjYmI2ZTFlYTc0ZDNiZGIxYjFlYmNhODY2MWQyMWY0NTUxNjQ4Li44ZWM4OTg3NDMyZDk2
NDUyMmJjM2EyNzNkNWY1ZTc5Zjk4NjFiNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9N
YXRoRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCkBAIC01NjQsNDQg
KzU2NCw2IEBAIGlubGluZSBib29sIHJhbmdlc092ZXJsYXAoVCBsZWZ0TWluLCBUIGxlZnRNYXgs
IFQgcmlnaHRNaW4sIFQgcmlnaHRNYXgpCiAgICAgcmV0dXJuIG5vbkVtcHR5UmFuZ2VzT3Zlcmxh
cChsZWZ0TWluLCBsZWZ0TWF4LCByaWdodE1pbiwgcmlnaHRNYXgpOwogfQogCi0vLyBUaGlzIG1h
c2sgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBtaW5pbWFsIG1hc2ssIHNwZWNpZmljYWxseSBpZiBz
aXplIGlzCi0vLyBhIHBvd2VyIG9mIDIuIEl0IGhhcyB0aGUgYWR2YW50YWdlIHRoYXQgaXQncyBm
YXN0IHRvIGNvbXB1dGUsIGhvd2V2ZXIuCi1pbmxpbmUgdWludDMyX3QgY29tcHV0ZUluZGV4aW5n
TWFzayh1aW50MzJfdCBzaXplKQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KC0xKSkgPj4gc3RkOjpjbHooc2l6ZSk7Ci19Ci0KLWNvbnN0
ZXhwciB1bnNpZ25lZCBwcmVjaXNlSW5kZXhNYXNrU2hpZnRGb3JTaXplKHVuc2lnbmVkIHNpemUp
Ci17Ci0gICAgcmV0dXJuIHNpemUgKiA4IC0gMTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LWNvbnN0ZXhwciB1bnNpZ25lZCBwcmVjaXNlSW5kZXhNYXNrU2hpZnQoKQotewotICAgIHJldHVy
biBwcmVjaXNlSW5kZXhNYXNrU2hpZnRGb3JTaXplKHNpemVvZihUKSk7Ci19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFQ+Ci1UIG9wYXF1ZShUIHBvaW50ZXIpCi17Ci0jaWYgIU9TKFdJTkRPV1MpCi0g
ICAgYXNtKCIiIDogIityIihwb2ludGVyKSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gcG9pbnRlcjsK
LX0KLQotLy8gVGhpcyBtYXNrcyB0aGUgZ2l2ZW4gcG9pbnRlciB3aXRoIDB4ZmZmZmZmZmZmZmZm
ZmZmZiAocHRyd2lkdGgpIGlmIGBpbmRleCA8Ci0vLyBsZW5ndGhgLiBPdGhlcndpc2UsIGl0IG1h
c2tzIHRoZSBwb2ludGVyIHdpdGggMC4gU2ltaWxhciB0byBMaW51eCBrZXJuZWwncyBhcnJheV9w
dHIuCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgotaW5saW5lIFQqIHByZWNpc2VJbmRleE1hc2tQdHIo
dWludHB0cl90IGluZGV4LCB1aW50cHRyX3QgbGVuZ3RoLCBUKiB2YWx1ZSkKLXsKLSAgICB1aW50
cHRyX3QgcmVzdWx0ID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4odmFsdWUpICYgc3RhdGljX2Nh
c3Q8dWludHB0cl90PigKLSAgICAgICAgc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KGluZGV4IC0gb3Bh
cXVlKGxlbmd0aCkpID4+Ci0gICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwcmVjaXNlSW5k
ZXhNYXNrU2hpZnQ8VCo+KCkpKTsKLSAgICByZXR1cm4gYml0d2lzZV9jYXN0PFQqPihyZXN1bHQp
OwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlLCB0eXBlbmFtZSBSYW5kb21GdW5j
Pgogdm9pZCBzaHVmZmxlVmVjdG9yKFZlY3RvclR5cGUmIHZlY3Rvciwgc2l6ZV90IHNpemUsIGNv
bnN0IFJhbmRvbUZ1bmMmIHJhbmRvbUZ1bmMpCiB7CkBAIC03MzUsMTAgKzY5Nyw2IEBAIGNvbnN0
ZXhwciB1bnNpZ25lZCBnZXRNU0JTZXRDb25zdGV4cHIoVCB0KQogCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIAotdXNpbmcgV1RGOjpvcGFxdWU7Ci11c2luZyBXVEY6OnByZWNpc2VJbmRleE1hc2tQdHI7
Ci11c2luZyBXVEY6OnByZWNpc2VJbmRleE1hc2tTaGlmdDsKLXVzaW5nIFdURjo6cHJlY2lzZUlu
ZGV4TWFza1NoaWZ0Rm9yU2l6ZTsKIHVzaW5nIFdURjo6c2h1ZmZsZVZlY3RvcjsKIHVzaW5nIFdU
Rjo6Y2x6OwogdXNpbmcgV1RGOjpjdHo7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>