<?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>175492</bug_id>
          
          <creation_ts>2017-08-11 13:49:48 -0700</creation_ts>
          <short_desc>Merge JSLexicalEnvironment and JSEnvironmentRecord</short_desc>
          <delta_ts>2017-09-27 12:59:15 -0700</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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1337993</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-11 13:49:48 -0700</bug_when>
    <thetext>It looks like these are used as one type, since JSEnvironmentRecord is abstract and its only implementation is JSLexicalEnvironment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349752</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-17 08:17:30 -0700</bug_when>
    <thetext>I would like to optimize toThis() operation. Before doing this, we would like to drop JSEnvironmentRecord.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349756</commentid>
    <comment_count>2</comment_count>
      <attachid>321044</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-17 08:23:45 -0700</bug_when>
    <thetext>Created attachment 321044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349773</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-17 10:28:20 -0700</bug_when>
    <thetext>Committed r222136: &lt;http://trac.webkit.org/changeset/222136&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353750</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:59:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694427&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321044</attachid>
            <date>2017-09-17 08:23:45 -0700</date>
            <delta_ts>2017-09-17 10:25:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175492-20170918002344.patch</filename>
            <type>text/plain</type>
            <size>46699</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
N2FjMGI0NTkxNjZlYjIxOTJjOTU1YTYzYTg2YTMzYTFhYzI0MjAzLi43YjFjMTgxYWI1MTdhMDNh
NzEyM2I0NDBlMGM0ZmM0MTQzZTJlOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NSBAQAorMjAxNy0wOS0xNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBNZXJnZSBKU0xleGljYWxFbnZpcm9ubWVudCBhbmQgSlNFbnZpcm9u
bWVudFJlY29yZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc1NDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSlNFbnZpcm9ubWVudFJlY29yZCBpcyBvbmx5IGluaGVyaXRlZCBieSBKU0xleGljYWxFbnZp
cm9ubWVudC4KKyAgICAgICAgV2UgY2FuIG1lcmdlIEpTRW52aXJvbm1lbnRSZWNvcmQgYW5kIEpT
TGV4aWNhbEVudmlyb25tZW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyk6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0
bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVH
ZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVD
cmVhdGVBY3RpdmF0aW9uKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUdldENsb3N1cmVWYXIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlUHV0Q2xvc3VyZVZhcik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVNYXRlcmlhbGl6ZUNyZWF0ZUFjdGl2YXRpb24pOgorICAgICAgICAq
IGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldENs
b3N1cmVWYXIpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRDbG9zdXJlVmFyKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2NvcGVkQXJndW1lbnRzR2V0QnlWYWwpOgorICAgICAgICAqIGpp
dC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0
Q2xvc3VyZVZhcik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dENsb3N1cmVWYXIpOgorICAg
ICAgICAqIGxsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHA6CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
OgorICAgICAgICAqIHJ1bnRpbWUvSlNFbnZpcm9ubWVudFJlY29yZC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogcnVudGltZS9KU0Vudmlyb25tZW50UmVjb3JkLmg6IFJlbW92ZWQuCisgICAgICAg
ICogcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHA6CisgICAgICAgIChKU0M6OkpTTGV4
aWNhbEVudmlyb25tZW50Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKEpTQzo6SlNMZXhpY2Fs
RW52aXJvbm1lbnQ6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmly
b25tZW50OjpnZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNMZXhpY2FsRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKEpTQzo6SlNMZXhpY2FsRW52aXJvbm1l
bnQ6OnN1YnNwYWNlRm9yKToKKyAgICAgICAgKEpTQzo6SlNMZXhpY2FsRW52aXJvbm1lbnQ6OnZh
cmlhYmxlcyk6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50Ojppc1ZhbGlkU2Nv
cGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpKU0xleGljYWxFbnZpcm9ubWVudDo6dmFyaWFibGVB
dCk6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50OjpvZmZzZXRPZlZhcmlhYmxl
cyk6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50OjpvZmZzZXRPZlZhcmlhYmxl
KToKKyAgICAgICAgKEpTQzo6SlNMZXhpY2FsRW52aXJvbm1lbnQ6OmFsbG9jYXRpb25TaXplRm9y
U2NvcGVTaXplKToKKyAgICAgICAgKEpTQzo6SlNMZXhpY2FsRW52aXJvbm1lbnQ6OmFsbG9jYXRp
b25TaXplKToKKyAgICAgICAgKEpTQzo6SlNMZXhpY2FsRW52aXJvbm1lbnQ6OmZpbmlzaENyZWF0
aW9uVW5pbml0aWFsaXplZCk6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50Ojpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU01vZHVsZUVudmlyb25tZW50LmNw
cDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVFbnZpcm9ubWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojppc0Vudmlyb25t
ZW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmlzRW52aXJvbm1lbnRSZWNvcmQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9i
amVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAg
KEpTQzo6Y2hlY2tPYmplY3RDb2VyY2libGUpOgorCiAyMDE3LTA5LTE1ICBTYWFtIEJhcmF0aSAg
PHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFyaXR5IGZpeHVwIGR1cmluZyBpbmxpbmlu
ZyBzaG91bGQgZG8gYSAyIHBoYXNlIGNvbW1pdCBzbyBpdCBwcm9wZXJseSByZWNvdmVycyB0aGUg
ZnJhbWUgaW4gY2FzZSBvZiBleGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggYjZiNzE4N2MxYjEzYjE4YmExNWI3MzA3MWEwNWQwZjc5Y2M1ZmE1NS4uOTIyZGU4MTc2NWZh
YzA4NjcwNDQzMTkzYTBmYTZkNTAzNDc0YmM2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtNzkzLDcgKzc5Myw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9VTklGSUFCTEVf
U09VUkNFUwogICAgIHJ1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAKICAgICBydW50aW1l
L0pTRGF0ZU1hdGguY3BwCiAgICAgcnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdFN1YnNwYWNl
LmNwcAotICAgIHJ1bnRpbWUvSlNFbnZpcm9ubWVudFJlY29yZC5jcHAKICAgICBydW50aW1lL0pT
Rml4ZWRBcnJheS5jcHAKICAgICBydW50aW1lL0pTRnVuY3Rpb24uY3BwCiAgICAgcnVudGltZS9K
U0dlbmVyYXRvckZ1bmN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5
ZTE3YjkwYzExMzY5MjgwNmFkYzJlMmMxYTczYWFhNzZiODQwYzRmLi5hNzQ2ZjZkYWE3NzNkNGQy
OTVjMDA2NDAzMmFjNmE4MTlmOGFhNDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTIyNCw3ICsxMjI0LDYgQEAKIAkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTT2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MjJBMzk4MEUxNkUxNDgwMEFGMjFDOCAvKiBKU09iamVjdC5jcHAgKi87IH07CiAJCTE0N0YzOUQ1
MTA3RUMzNzYwMDQyN0E0OCAvKiBKU1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAyRTlCNjBFMTg0MkZBMDAwRjkyOTcgLyogSlNTdHJp
bmcuY3BwICovOyB9OwogCQkxNDdGMzlENjEwN0VDMzc2MDA0MjdBNDggLyogSlNDSlNWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg4
NzAyNTU1OTdEMDFGRjYwRjcgLyogSlNDSlNWYWx1ZS5jcHAgKi87IH07Ci0JCTE0N0YzOUQ3MTA3
RUMzNzYwMDQyN0E0OCAvKiBKU0Vudmlyb25tZW50UmVjb3JkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjJBMzlBMEUxNkUxNDgwMEFGMjFDOCAv
KiBKU0Vudmlyb25tZW50UmVjb3JkLmNwcCAqLzsgfTsKIAkJMTQ4MTVGNUY5OTFDNDZCRUI5OEQw
MDE2IC8qIEpTU2NyaXB0RmV0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxMUMxOTdDMjYyNDg0OEVEQTg0Q0VEN0YgLyogSlNTY3JpcHRGZXRj
aGVyLmNwcCAqLzsgfTsKIAkJMTQ4MkI3NEUwQTQzMDMyODAwNTE3Q0ZDIC8qIEpTU3RyaW5nUmVm
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0ODJC
NzRDMEE0MzAzMjgwMDUxN0NGQyAvKiBKU1N0cmluZ1JlZi5jcHAgKi87IH07CiAJCTE0ODJCN0U0
MEE0MzA3NjAwMDUxN0NGQyAvKiBKU09iamVjdFJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDgyQjdFMjBBNDMwNzYwMDA1MTdDRkMgLyogSlNP
YmplY3RSZWYuY3BwICovOyB9OwpAQCAtMjIzMiw3ICsyMjMxLDYgQEAKIAkJQkMxOEM0MkEwRTE2
RjVDRDAwQjM0NDYwIC8qIEpTVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTRBQkI0NTQwOTlDMkEwRjAwRTJBMjRGIC8qIEpTVHlwZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDJCMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBKU0NKU1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNEFCQjM2RTA5OUMwNzY0MDBFMkEyNEYgLyogSlNDSlNWYWx1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
MThDNDJDMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1ZhbHVlUmVmLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDgyQjZFQTBBNDMwMEIzMDA1MTdDRkMgLyog
SlNWYWx1ZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKLQkJQkMxOEM0MkQwRTE2RjVDRDAwQjM0NDYwIC8qIEpTRW52aXJvbm1lbnRSZWNvcmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RjI1MjU2MEQw
OEREOEQwMDRFQ0ZGRiAvKiBKU0Vudmlyb25tZW50UmVjb3JkLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0MkUwRTE2RjVDRDAwQjM0NDYw
IC8qIEpTV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVDN0ExNzIwQThFQUFDQjAwRkEzN0VBIC8qIEpTV3JhcHBlck9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThD
NDMxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4NjYwMjU1NTk3RDAxRkY2MEY3IC8qIExleGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0
MzcwRTE2RjVDRDAwQjM0NDYwIC8qIExvb2t1cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4NjkwMjU1NTk3RDAxRkY2MEY3IC8qIExvb2t1cC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zODQ3
LDcgKzM4NDUsNiBAQAogCQkxNEU4NEY5QjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha1NldC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWFrU2V0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRFODRGOUMxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtT
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vha1NldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNEU4NEY5RDE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0lt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vha0ltcGwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTRGMjUyNTYwRDA4REQ4RDAwNEVDRkZGIC8qIEpTRW52
aXJvbm1lbnRSZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFbnZp
cm9ubWVudFJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEY3MjU2MzE0
RUUyNjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYWtIYW5kbGVPd25lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0RjcyNTY0MTRFRTI2NUUwMEIxNjUyQiAvKiBXZWFrSGFuZGxlT3duZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vha0hhbmRsZU93bmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE2OTk0OEVERTY4RDQwNTRCMDFFRjc5NyAvKiBE
ZWZpbmVQcm9wZXJ0eUF0dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGVmaW5lUHJvcGVydHlBdHRyaWJ1dGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00ODc5LDcgKzQ4NzYsNiBAQAogCQlCQzE4QzUyRDBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4
ZXIubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExleGVyLmx1dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzIyQTM5ODBFMTZFMTQ4MDBBRjIxQzggLyog
SlNPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzIyQTM5OTBFMTZFMTQ4MDBB
RjIxQzggLyogSlNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNP
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyMkEzOUEwRTE2RTE0ODAw
QUYyMUM4IC8qIEpTRW52aXJvbm1lbnRSZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNFbnZpcm9ubWVudFJlY29yZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDMjY4MEMwMEUxNkQ0RTkwMEEwNkU5MiAvKiBGdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uQ29u
c3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzI2ODBDMTBFMTZE
NEU5MDBBMDZFOTIgLyogRnVuY3Rpb25Db25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGdW5jdGlvbkNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMjY4MEMyMEUxNkQ0RTkwMEEwNkU5MiAvKiBOdW1iZXJDb25zdHJ1Y3Rvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOdW1iZXJDb25zdHJ1Y3Rv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02ODgzLDggKzY4NzksNiBAQAog
CQkJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICov
LAogCQkJCTBGN0RGMTM5MUUyOTcxMEUwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdFN1
YnNwYWNlLmNwcCAqLywKIAkJCQkwRjdERjEzQTFFMjk3MTBFMDA5NTk1MUIgLyogSlNEZXN0cnVj
dGlibGVPYmplY3RTdWJzcGFjZS5oICovLAotCQkJCUJDMjJBMzlBMEUxNkUxNDgwMEFGMjFDOCAv
KiBKU0Vudmlyb25tZW50UmVjb3JkLmNwcCAqLywKLQkJCQkxNEYyNTI1NjBEMDhERDhEMDA0RUNG
RkYgLyogSlNFbnZpcm9ubWVudFJlY29yZC5oICovLAogCQkJCUE3QjRBQ0FFMTQ4NEM5Q0UwMEIz
OEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5oICovLAogCQkJCTc5ODkzNzc2MURDQUI1NzMwMEY4RDRG
QiAvKiBKU0ZpeGVkQXJyYXkuY3BwICovLAogCQkJCTc5ODkzNzc3MURDQUI1NzMwMEY4RDRGQiAv
KiBKU0ZpeGVkQXJyYXkuaCAqLywKQEAgLTkxMzQsNyArOTEyOCw2IEBACiAJCQkJMEY3REYxM0Mx
RTI5NzExMzAwOTU5NTFCIC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0U3Vic3BhY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFMzg0RUU2MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRTM4NEVFODFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTVBy
b3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMxOEM0MkQwRTE2RjVDRDAwQjM0NDYwIC8q
IEpTRW52aXJvbm1lbnRSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjE0MTY3QkFC
RDcwMDZENzYwQSAvKiBKU0V4cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCNEFDQUYxNDg0
QzlDRTAwQjM4QTM2IC8qIEpTRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTg5
Mzc3OTFEQ0FCNTczMDBGOEQ0RkIgLyogSlNGaXhlZEFycmF5LmggaW4gSGVhZGVycyAqLywKQEAg
LTEwODAyLDcgKzEwNzk1LDYgQEAKIAkJCQkwRjdERjEzQjFFMjk3MTExMDA5NTk1MUIgLyogSlNE
ZXN0cnVjdGlibGVPYmplY3RTdWJzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTM4NEVF
NTFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
RTM4NEVFNzFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkxNDdGMzlENzEwN0VDMzc2MDA0MjdBNDggLyogSlNFbnZpcm9ubWVudFJl
Y29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OTg5Mzc3ODFEQ0FCNTczMDBGOEQ0RkIgLyog
SlNGaXhlZEFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MDU2NkQ2MTA3RUMyNzEwMDVE
QkM4RCAvKiBKU0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwQjc5MTlCMUMwMjRB
NDYwMDI0ODFFMiAvKiBKU0dlbmVyYXRvckZ1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBl
ZDZkYjQxMzA1OGM4MGQyNTAwZjBkY2JkMjUxNjk3YjEwY2ZlMDliLi5lYTkyNzMwMzg4ZmJhMWUz
ZGI1YmU1NTVhYTYxMjBhMjBhYjkzYWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgIkpT
QXN5bmNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlICJKU0Vudmlyb25tZW50UmVjb3JkLmgi
CiAjaW5jbHVkZSAiSlNGaXhlZEFycmF5LmgiCiAjaW5jbHVkZSAiSlNHZW5lcmF0b3JGdW5jdGlv
bi5oIgogI2luY2x1ZGUgIkpTTGV4aWNhbEVudmlyb25tZW50LmgiCkBAIC02NDcxLDcgKzY0NzAs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50
cyhOb2RlKiBub2RlKQogICAgIG1faml0LmxvYWRWYWx1ZSgKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkJhc2VJbmRleCgKICAgICAgICAgICAgIHNjcmF0Y2gyUmVnLCBwcm9wZXJ0eVJlZywgTWFj
cm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsCi0gICAgICAgICAgICBKU0Vudmlyb25tZW50UmVjb3Jk
OjpvZmZzZXRPZlZhcmlhYmxlcygpKSwKKyAgICAgICAgICAgIEpTTGV4aWNhbEVudmlyb25tZW50
OjpvZmZzZXRPZlZhcmlhYmxlcygpKSwKICAgICAgICAgcmVzdWx0UmVncyk7CiAgICAgCiAgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IGU0
YThkMTc1ZGE3NDg1MDZkZTRjNWYxZWNmODBmMjBkYTM0MDFhZDkuLjI3NmUxZmFhZjM4ZDI0ZWY3
NzBlYjAyMGFhY2YxYjdhZTIyOTAyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMzksNyArMzksNyBAQAogI2lu
Y2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhhc093blByb3BlcnR5Q2FjaGUuaCIK
ICNpbmNsdWRlICJIYXNoTWFwSW1wbC5oIgotI2luY2x1ZGUgIkpTRW52aXJvbm1lbnRSZWNvcmQu
aCIKKyNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvci5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgogI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTQyNjcsOCArNDI2Nyw4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdw
cigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0VGFnR1BSID0gcmVzdWx0VGFnLmdwcigpOwogICAg
ICAgICBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7Ci0gICAg
ICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0Vudmlyb25t
ZW50UmVjb3JkOjpvZmZzZXRPZlZhcmlhYmxlKG5vZGUtPnNjb3BlT2Zmc2V0KCkpICsgVGFnT2Zm
c2V0KSwgcmVzdWx0VGFnR1BSKTsKLSAgICAgICAgbV9qaXQubG9hZDMyKEpJVENvbXBpbGVyOjpB
ZGRyZXNzKGJhc2VHUFIsIEpTRW52aXJvbm1lbnRSZWNvcmQ6Om9mZnNldE9mVmFyaWFibGUobm9k
ZS0+c2NvcGVPZmZzZXQoKSkgKyBQYXlsb2FkT2Zmc2V0KSwgcmVzdWx0UGF5bG9hZEdQUik7Cisg
ICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0xleGlj
YWxFbnZpcm9ubWVudDo6b2Zmc2V0T2ZWYXJpYWJsZShub2RlLT5zY29wZU9mZnNldCgpKSArIFRh
Z09mZnNldCksIHJlc3VsdFRhZ0dQUik7CisgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxl
cjo6QWRkcmVzcyhiYXNlR1BSLCBKU0xleGljYWxFbnZpcm9ubWVudDo6b2Zmc2V0T2ZWYXJpYWJs
ZShub2RlLT5zY29wZU9mZnNldCgpKSArIFBheWxvYWRPZmZzZXQpLCByZXN1bHRQYXlsb2FkR1BS
KTsKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIs
IG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC00MjgxLDggKzQyODEsOCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyB2YWx1
ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwogICAgICAgICBHUFJSZWcgdmFsdWVQYXlsb2FkR1BS
ID0gdmFsdWUucGF5bG9hZEdQUigpOwogCi0gICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVUYWdH
UFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTRW52aXJvbm1lbnRSZWNvcmQ6Om9m
ZnNldE9mVmFyaWFibGUobm9kZS0+c2NvcGVPZmZzZXQoKSkgKyBUYWdPZmZzZXQpKTsKLSAgICAg
ICAgbV9qaXQuc3RvcmUzMih2YWx1ZVBheWxvYWRHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKGJh
c2VHUFIsIEpTRW52aXJvbm1lbnRSZWNvcmQ6Om9mZnNldE9mVmFyaWFibGUobm9kZS0+c2NvcGVP
ZmZzZXQoKSkgKyBQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVU
YWdHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTTGV4aWNhbEVudmlyb25tZW50
OjpvZmZzZXRPZlZhcmlhYmxlKG5vZGUtPnNjb3BlT2Zmc2V0KCkpICsgVGFnT2Zmc2V0KSk7Cisg
ICAgICAgIG1faml0LnN0b3JlMzIodmFsdWVQYXlsb2FkR1BSLCBKSVRDb21waWxlcjo6QWRkcmVz
cyhiYXNlR1BSLCBKU0xleGljYWxFbnZpcm9ubWVudDo6b2Zmc2V0T2ZWYXJpYWJsZShub2RlLT5z
Y29wZU9mZnNldCgpKSArIFBheWxvYWRPZmZzZXQpKTsKICAgICAgICAgbm9SZXN1bHQobm9kZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDFjZGY1Zjk4YTY5NTEyNzk5YTliN2U2YjRh
MTAwNGVlMzFmM2Y1MGEuLjBjNTRmZWU4NjJmMjQ1ZWFhYzJmNjI0MzJhYTM1MmU4NTY4ZmE5NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1
ZGUgIkhhc093blByb3BlcnR5Q2FjaGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5j
bHVkZSAiSlNFbnZpcm9ubWVudFJlY29yZC5oIgogI2luY2x1ZGUgIkpTTGV4aWNhbEVudmlyb25t
ZW50LmgiCiAjaW5jbHVkZSAiSlNNYXAuaCIKICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IuaCIKQEAgLTQ0NjIsNyArNDQ2MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAg
ICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIG1faml0Lmxv
YWQ2NChKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0Vudmlyb25tZW50UmVjb3JkOjpv
ZmZzZXRPZlZhcmlhYmxlKG5vZGUtPnNjb3BlT2Zmc2V0KCkpKSwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgbV9qaXQubG9hZDY0KEpJVENvbXBpbGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTTGV4aWNhbEVu
dmlyb25tZW50OjpvZmZzZXRPZlZhcmlhYmxlKG5vZGUtPnNjb3BlT2Zmc2V0KCkpKSwgcmVzdWx0
R1BSKTsKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC00NDczLDcgKzQ0NzIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsK
ICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7CiAKLSAgICAgICAgbV9qaXQu
c3RvcmU2NCh2YWx1ZUdQUiwgSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNFbnZpcm9u
bWVudFJlY29yZDo6b2Zmc2V0T2ZWYXJpYWJsZShub2RlLT5zY29wZU9mZnNldCgpKSkpOworICAg
ICAgICBtX2ppdC5zdG9yZTY0KHZhbHVlR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BS
LCBKU0xleGljYWxFbnZpcm9ubWVudDo6b2Zmc2V0T2ZWYXJpYWJsZShub2RlLT5zY29wZU9mZnNl
dCgpKSkpOwogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaAppbmRleCBmNzQ4NjVhMmNiYTQ3Y2QwMDExMGIxODNlY2U0ODYxYmU2MWY4MjRlLi5l
ZTllNTM0YTYyNDg2ODc4NTQ0MDFhYTMwNDRiYmEwNzNjZWQyZjdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaApAQCAt
MTI0LDcgKzEyNCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICNkZWZpbmUg
Rk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oQXJyYXlT
dG9yYWdlX3ZlY3RvciwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSwgc2l6ZW9mKFdyaXRl
QmFycmllcjxVbmtub3duPikpIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwg
RGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkp
IFwKLSAgICBtYWNybyhKU0Vudmlyb25tZW50UmVjb3JkX3ZhcmlhYmxlcywgSlNFbnZpcm9ubWVu
dFJlY29yZDo6b2Zmc2V0T2ZWYXJpYWJsZXMoKSwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAor
ICAgIG1hY3JvKEpTTGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcywgSlNMZXhpY2FsRW52aXJv
bm1lbnQ6Om9mZnNldE9mVmFyaWFibGVzKCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKICAg
ICBtYWNybyhKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3JfY2FjaGVkUHJvcGVydHlOYW1lc1ZlY3Rv
ckNvbnRlbnRzLCAwLCBzaXplb2YoV3JpdGVCYXJyaWVyPEpTU3RyaW5nPikpIFwKICAgICBtYWNy
byhKU1JvcGVTdHJpbmdfZmliZXJzLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9mRmliZXJzKCksIHNp
emVvZihXcml0ZUJhcnJpZXI8SlNTdHJpbmc+KSkgXAogICAgIG1hY3JvKFNjb3BlZEFyZ3VtZW50
c19vdmVyZmxvd1N0b3JhZ2UsIFNjb3BlZEFyZ3VtZW50czo6b3ZlcmZsb3dTdG9yYWdlT2Zmc2V0
KCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAwNjZjYjM5NDg4YjcyMjE5Zjc2MjIyNjA3MTQ4
NWI2OTc0NmQxZjVlLi43N2Q5ZDQ1OGI1NjIxYzkzZDMxY2VhNzUyODMwMzZlYTA5YTFjMjZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0z
NjU1LDcgKzM2NTUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgICAgIG1f
b3V0LmVxdWFsKHNjb3BlT2Zmc2V0LCBtX291dC5jb25zdEludDMyKFNjb3BlT2Zmc2V0OjppbnZh
bGlkT2Zmc2V0KSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBhZGRyZXNzID0gbV9vdXQu
YmFzZUluZGV4KAotICAgICAgICAgICAgICAgIG1faGVhcHMuSlNFbnZpcm9ubWVudFJlY29yZF92
YXJpYWJsZXMsIGNhZ2VkKEdpZ2FjYWdlOjpKU1ZhbHVlLCBzY29wZSksCisgICAgICAgICAgICAg
ICAgbV9oZWFwcy5KU0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXMsIGNhZ2VkKEdpZ2FjYWdl
OjpKU1ZhbHVlLCBzY29wZSksCiAgICAgICAgICAgICAgICAgbV9vdXQuemVyb0V4dFB0cihzY29w
ZU9mZnNldCkpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgbmFtZWRSZXN1bHQgPSBtX291
dC5hbmNob3IobV9vdXQubG9hZDY0KGFkZHJlc3MpKTsKICAgICAgICAgICAgIG1fb3V0Lmp1bXAo
Y29udGludWF0aW9uKTsKQEAgLTQ0NTYsNyArNDQ1Niw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7
CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZS0+c2NvcGVTaXplKCk7ICsr
aSkgewogICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCgKICAgICAgICAgICAgICAgICBtX291dC5j
b25zdEludDY0KEpTVmFsdWU6OmVuY29kZShpbml0aWFsaXphdGlvblZhbHVlKSksCi0gICAgICAg
ICAgICAgICAgZmFzdE9iamVjdCwgbV9oZWFwcy5KU0Vudmlyb25tZW50UmVjb3JkX3ZhcmlhYmxl
c1tpXSk7CisgICAgICAgICAgICAgICAgZmFzdE9iamVjdCwgbV9oZWFwcy5KU0xleGljYWxFbnZp
cm9ubWVudF92YXJpYWJsZXNbaV0pOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtdXRh
dG9yRmVuY2UoKTsKQEAgLTU5NjYsNyArNTk2Niw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAg
ICAgICAgIHNldEpTVmFsdWUoCiAgICAgICAgICAgICBtX291dC5sb2FkNjQoCiAgICAgICAgICAg
ICAgICAgbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwKLSAgICAgICAgICAgICAgICBtX2hlYXBz
LkpTRW52aXJvbm1lbnRSZWNvcmRfdmFyaWFibGVzW21fbm9kZS0+c2NvcGVPZmZzZXQoKS5vZmZz
ZXQoKV0pKTsKKyAgICAgICAgICAgICAgICBtX2hlYXBzLkpTTGV4aWNhbEVudmlyb25tZW50X3Zh
cmlhYmxlc1ttX25vZGUtPnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCldKSk7CiAgICAgfQogICAgIAog
ICAgIHZvaWQgY29tcGlsZVB1dENsb3N1cmVWYXIoKQpAQCAtNTk3NCw3ICs1OTc0LDcgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgbV9vdXQuc3RvcmU2NCgKICAgICAgICAgICAgIGxv
d0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSksCiAgICAgICAgICAgICBsb3dDZWxsKG1fbm9kZS0+
Y2hpbGQxKCkpLAotICAgICAgICAgICAgbV9oZWFwcy5KU0Vudmlyb25tZW50UmVjb3JkX3Zhcmlh
Ymxlc1ttX25vZGUtPnNjb3BlT2Zmc2V0KCkub2Zmc2V0KCldKTsKKyAgICAgICAgICAgIG1faGVh
cHMuSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW21fbm9kZS0+c2NvcGVPZmZzZXQoKS5v
ZmZzZXQoKV0pOwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRGcm9tQXJndW1lbnRz
KCkKQEAgLTk1NDYsNyArOTU0Niw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAg
ICBBU1NFUlQoZGVzY3JpcHRvci5raW5kKCkgPT0gQ2xvc3VyZVZhclBMb2MpOwogICAgICAgICAg
ICAgbV9vdXQuc3RvcmU2NCgKICAgICAgICAgICAgICAgICB2YWx1ZXNbaV0sIGFjdGl2YXRpb24s
Ci0gICAgICAgICAgICAgICAgbV9oZWFwcy5KU0Vudmlyb25tZW50UmVjb3JkX3ZhcmlhYmxlc1tk
ZXNjcmlwdG9yLmluZm8oKV0pOworICAgICAgICAgICAgICAgIG1faGVhcHMuSlNMZXhpY2FsRW52
aXJvbm1lbnRfdmFyaWFibGVzW2Rlc2NyaXB0b3IuaW5mbygpXSk7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAodmFsaWRhdGlvbkVuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCAwMDUyZTZiN2Q5NzE2ZWVlMmJjMjFl
YTc0M2Q1N2RiM2ZmMThjZGIwLi5mMmU4NDQ0YjgwMDQwM2VkN2Q2YjI3ZTIxNWFiODRhM2ZjOWQx
OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIkludGVycHJldGVySW5saW5lcy5oIgog
I2luY2x1ZGUgIkpJVElubGluZXMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCi0jaW5jbHVkZSAi
SlNFbnZpcm9ubWVudFJlY29yZC5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRl
ICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNs
dWRlICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzLmgiCkBAIC04OTEs
NyArODkxLDcgQEAgdm9pZCBKSVQ6OmVtaXRHZXRWYXJGcm9tSW5kaXJlY3RQb2ludGVyKEpTVmFs
dWUqKiBvcGVyYW5kLCBHUFJSZWcgcmVnKQogdm9pZCBKSVQ6OmVtaXRHZXRDbG9zdXJlVmFyKGlu
dCBzY29wZSwgdWludHB0cl90IG9wZXJhbmQpCiB7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihzY29wZSwgcmVnVDApOwotICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgSlNFbnZpcm9ubWVu
dFJlY29yZDo6b2Zmc2V0T2ZWYXJpYWJsZXMoKSArIG9wZXJhbmQgKiBzaXplb2YoUmVnaXN0ZXIp
KSwgcmVnVDApOworICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgSlNMZXhpY2FsRW52aXJvbm1l
bnQ6Om9mZnNldE9mVmFyaWFibGVzKCkgKyBvcGVyYW5kICogc2l6ZW9mKFJlZ2lzdGVyKSksIHJl
Z1QwKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTEwNDEsNyArMTA0MSw3IEBAIHZvaWQgSklUOjplbWl0
UHV0Q2xvc3VyZVZhcihpbnQgc2NvcGUsIHVpbnRwdHJfdCBvcGVyYW5kLCBpbnQgdmFsdWUsIFdh
dGNocG9pbnRTCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDEpOwogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoc2NvcGUsIHJlZ1QwKTsKICAgICBlbWl0Tm90aWZ5V3Jp
dGUoc2V0KTsKLSAgICBzdG9yZVB0cihyZWdUMSwgQWRkcmVzcyhyZWdUMCwgSlNFbnZpcm9ubWVu
dFJlY29yZDo6b2Zmc2V0T2ZWYXJpYWJsZXMoKSArIG9wZXJhbmQgKiBzaXplb2YoUmVnaXN0ZXIp
KSk7CisgICAgc3RvcmVQdHIocmVnVDEsIEFkZHJlc3MocmVnVDAsIEpTTGV4aWNhbEVudmlyb25t
ZW50OjpvZmZzZXRPZlZhcmlhYmxlcygpICsgb3BlcmFuZCAqIHNpemVvZihSZWdpc3RlcikpKTsK
IH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCkBAIC0xNTQ3LDcgKzE1NDcsNyBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1p
dFNjb3BlZEFyZ3VtZW50c0dldEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFk
VAogICAgIGNhZ2UoU2NvcGVkQXJndW1lbnRzVGFibGU6OkFyZ3VtZW50c1B0cjo6a2luZCwgc2Ny
YXRjaCk7CiAgICAgbG9hZDMyKEJhc2VJbmRleChzY3JhdGNoLCBwcm9wZXJ0eSwgVGltZXNGb3Vy
KSwgc2NyYXRjaCk7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2gzMihFcXVhbCwgc2NyYXRj
aCwgVHJ1c3RlZEltbTMyKFNjb3BlT2Zmc2V0OjppbnZhbGlkT2Zmc2V0KSkpOwotICAgIGxvYWRW
YWx1ZShCYXNlSW5kZXgoc2NyYXRjaDIsIHNjcmF0Y2gsIFRpbWVzRWlnaHQsIEpTRW52aXJvbm1l
bnRSZWNvcmQ6Om9mZnNldE9mVmFyaWFibGVzKCkpLCByZXN1bHQpOworICAgIGxvYWRWYWx1ZShC
YXNlSW5kZXgoc2NyYXRjaDIsIHNjcmF0Y2gsIFRpbWVzRWlnaHQsIEpTTGV4aWNhbEVudmlyb25t
ZW50OjpvZmZzZXRPZlZhcmlhYmxlcygpKSwgcmVzdWx0KTsKICAgICBKdW1wIGRvbmUgPSBqdW1w
KCk7CiAgICAgb3ZlcmZsb3dDYXNlLmxpbmsodGhpcyk7CiAgICAgc3ViMzIocHJvcGVydHksIHNj
cmF0Y2gyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwCmluZGV4IGQ5YTc3YWUwNGMwMzc3N2FlMjc2ZjQwZDU3OWE5Zjk0ZDMx
N2RjNWEuLjExZTZhNjgxNWY0YzhlNjFlOTJkODBlMzU1ZWI1NTBiNTQ2Mzk1OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIkludGVycHJldGVySW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkpJVElubGluZXMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCi0jaW5jbHVkZSAiSlNF
bnZpcm9ubWVudFJlY29yZC5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJK
U0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRl
ICJSZXN1bHRUeXBlLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCkBAIC04OTMsOCArODkz
LDggQEAgdm9pZCBKSVQ6OmVtaXRHZXRWYXJGcm9tSW5kaXJlY3RQb2ludGVyKEpTVmFsdWUqKiBv
cGVyYW5kLCBHUFJSZWcgdGFnLCBHUFJSZWcgcGEKIHZvaWQgSklUOjplbWl0R2V0Q2xvc3VyZVZh
cihpbnQgc2NvcGUsIHVpbnRwdHJfdCBvcGVyYW5kKQogewogICAgIGVtaXRMb2FkKHNjb3BlLCBy
ZWdUMSwgcmVnVDApOwotICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QwLCBKU0Vudmlyb25tZW50UmVj
b3JkOjpvZmZzZXRPZlZhcmlhYmxlcygpICsgb3BlcmFuZCAqIHNpemVvZihSZWdpc3RlcikgKyBU
YWdPZmZzZXQpLCByZWdUMSk7Ci0gICAgbG9hZDMyKEFkZHJlc3MocmVnVDAsIEpTRW52aXJvbm1l
bnRSZWNvcmQ6Om9mZnNldE9mVmFyaWFibGVzKCkgKyBvcGVyYW5kICogc2l6ZW9mKFJlZ2lzdGVy
KSArIFBheWxvYWRPZmZzZXQpLCByZWdUMCk7CisgICAgbG9hZDMyKEFkZHJlc3MocmVnVDAsIEpT
TGV4aWNhbEVudmlyb25tZW50OjpvZmZzZXRPZlZhcmlhYmxlcygpICsgb3BlcmFuZCAqIHNpemVv
ZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpLCByZWdUMSk7CisgICAgbG9hZDMyKEFkZHJlc3MocmVn
VDAsIEpTTGV4aWNhbEVudmlyb25tZW50OjpvZmZzZXRPZlZhcmlhYmxlcygpICsgb3BlcmFuZCAq
IHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KSwgcmVnVDApOwogfQogCiB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQpAQCAtMTA0Myw4ICsxMDQzLDggQEAgdm9pZCBKSVQ6OmVtaXRQdXRDbG9zdXJlVmFyKGludCBz
Y29wZSwgdWludHB0cl90IG9wZXJhbmQsIGludCB2YWx1ZSwgV2F0Y2hwb2ludFMKICAgICBlbWl0
TG9hZCh2YWx1ZSwgcmVnVDMsIHJlZ1QyKTsKICAgICBlbWl0TG9hZChzY29wZSwgcmVnVDEsIHJl
Z1QwKTsKICAgICBlbWl0Tm90aWZ5V3JpdGUoc2V0KTsKLSAgICBzdG9yZTMyKHJlZ1QzLCBBZGRy
ZXNzKHJlZ1QwLCBKU0Vudmlyb25tZW50UmVjb3JkOjpvZmZzZXRPZlZhcmlhYmxlcygpICsgb3Bl
cmFuZCAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpKTsKLSAgICBzdG9yZTMyKHJlZ1Qy
LCBBZGRyZXNzKHJlZ1QwLCBKU0Vudmlyb25tZW50UmVjb3JkOjpvZmZzZXRPZlZhcmlhYmxlcygp
ICsgb3BlcmFuZCAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KSk7CisgICAgc3Rv
cmUzMihyZWdUMywgQWRkcmVzcyhyZWdUMCwgSlNMZXhpY2FsRW52aXJvbm1lbnQ6Om9mZnNldE9m
VmFyaWFibGVzKCkgKyBvcGVyYW5kICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09mZnNldCkpOwor
ICAgIHN0b3JlMzIocmVnVDIsIEFkZHJlc3MocmVnVDAsIEpTTGV4aWNhbEVudmlyb25tZW50Ojpv
ZmZzZXRPZlZhcmlhYmxlcygpICsgb3BlcmFuZCAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2Fk
T2Zmc2V0KSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAppbmRleCA1MDI3OTlkOTAxYWFhNGU3YjBh
MzFiOTRmYmQ2MzBjODhjNGIyMjlhLi5hZTc1NTlkYjE0MGYyYWEwNGZhZTBiNmUyZjYxNjUwN2Yy
ZmJiZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZz
ZXRzRXh0cmFjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRP
ZmZzZXRzRXh0cmFjdG9yLmNwcApAQCAtMzksOSArMzksOSBAQAogI2luY2x1ZGUgIkpTQXJyYXku
aCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgot
I2luY2x1ZGUgIkpTRW52aXJvbm1lbnRSZWNvcmQuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9u
bWVudC5oIgogI2luY2x1ZGUgIkpTTW9kdWxlUmVjb3JkLmgiCiAjaW5jbHVkZSAiSlNPYmplY3Qu
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDViZDY0ZmVhODEyM2VlZDNlMDI3
ZDYxMjNlYWUyNjc1MmY3MzEyYTMuLjVkZGU2NjQ5NGIxZjE2ODRjZTBiMjhlMGIyZDdlNzFlMDg5
MjgyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KQEAgLTE2Myw3ICsxNjMsNyBAQCBlbHNlCiBlbmQKIGNvbnN0IFNsb3RT
aXplID0gOAogCi1jb25zdCBKU0Vudmlyb25tZW50UmVjb3JkX3ZhcmlhYmxlcyA9IChzaXplb2Yg
SlNFbnZpcm9ubWVudFJlY29yZCArIFNsb3RTaXplIC0gMSkgJiB+KFNsb3RTaXplIC0gMSkKK2Nv
bnN0IEpTTGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcyA9IChzaXplb2YgSlNMZXhpY2FsRW52
aXJvbm1lbnQgKyBTbG90U2l6ZSAtIDEpICYgfihTbG90U2l6ZSAtIDEpCiBjb25zdCBEaXJlY3RB
cmd1bWVudHNfc3RvcmFnZSA9IChzaXplb2YgRGlyZWN0QXJndW1lbnRzICsgU2xvdFNpemUgLSAx
KSAmIH4oU2xvdFNpemUgLSAxKQogCiBjb25zdCBTdGFja0FsaWdubWVudCA9IDE2CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtCmluZGV4IDE2YWQwMDI4ZDE4NWUyYzEwMzA3NTM4YTVhZjUxMGUyMzM2ZDU5YTcuLjEx
NGE5NzhiMDI4YjNkMDA3MjM1YjMxOTdlODNkMjRjOGQ5OTgzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CkBAIC0yMjA2LDggKzIyMDYsOCBAQCBlbmQKIAogbWFjcm8gZ2V0Q2xvc3VyZVZhcigpCiAgICAg
bG9hZGlzRnJvbUluc3RydWN0aW9uKDYsIHQzKQotICAgIGxvYWRwIEpTRW52aXJvbm1lbnRSZWNv
cmRfdmFyaWFibGVzICsgVGFnT2Zmc2V0W3QwLCB0MywgOF0sIHQxCi0gICAgbG9hZHAgSlNFbnZp
cm9ubWVudFJlY29yZF92YXJpYWJsZXMgKyBQYXlsb2FkT2Zmc2V0W3QwLCB0MywgOF0sIHQyCisg
ICAgbG9hZHAgSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzICsgVGFnT2Zmc2V0W3QwLCB0
MywgOF0sIHQxCisgICAgbG9hZHAgSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzICsgUGF5
bG9hZE9mZnNldFt0MCwgdDMsIDhdLCB0MgogICAgIHZhbHVlUHJvZmlsZSh0MSwgdDIsIDI4LCB0
MCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDApCiAgICAgc3RvcmVpIHQxLCBUYWdP
ZmZzZXRbY2ZyLCB0MCwgOF0KQEAgLTIyOTgsOCArMjI5OCw4IEBAIG1hY3JvIHB1dENsb3N1cmVW
YXIoKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigzLCB0MSkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHQxLCB0MiwgdDMpCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDYsIHQxKQot
ICAgIHN0b3JlaSB0MiwgSlNFbnZpcm9ubWVudFJlY29yZF92YXJpYWJsZXMgKyBUYWdPZmZzZXRb
dDAsIHQxLCA4XQotICAgIHN0b3JlaSB0MywgSlNFbnZpcm9ubWVudFJlY29yZF92YXJpYWJsZXMg
KyBQYXlsb2FkT2Zmc2V0W3QwLCB0MSwgOF0KKyAgICBzdG9yZWkgdDIsIEpTTGV4aWNhbEVudmly
b25tZW50X3ZhcmlhYmxlcyArIFRhZ09mZnNldFt0MCwgdDEsIDhdCisgICAgc3RvcmVpIHQzLCBK
U0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXMgKyBQYXlsb2FkT2Zmc2V0W3QwLCB0MSwgOF0K
IGVuZAogCiBtYWNybyBwdXRMb2NhbENsb3N1cmVWYXIoKQpAQCAtMjMxMCw4ICsyMzEwLDggQEAg
bWFjcm8gcHV0TG9jYWxDbG9zdXJlVmFyKCkKICAgICBub3RpZnlXcml0ZSh0NSwgLnBEeW5hbWlj
KQogLm5vVmFyaWFibGVXYXRjaHBvaW50U2V0OgogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig2
LCB0MSkKLSAgICBzdG9yZWkgdDIsIEpTRW52aXJvbm1lbnRSZWNvcmRfdmFyaWFibGVzICsgVGFn
T2Zmc2V0W3QwLCB0MSwgOF0KLSAgICBzdG9yZWkgdDMsIEpTRW52aXJvbm1lbnRSZWNvcmRfdmFy
aWFibGVzICsgUGF5bG9hZE9mZnNldFt0MCwgdDEsIDhdCisgICAgc3RvcmVpIHQyLCBKU0xleGlj
YWxFbnZpcm9ubWVudF92YXJpYWJsZXMgKyBUYWdPZmZzZXRbdDAsIHQxLCA4XQorICAgIHN0b3Jl
aSB0MywgSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzICsgUGF5bG9hZE9mZnNldFt0MCwg
dDEsIDhdCiBlbmQKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDg5ODViYTQ5NDIzYmY0NjkxZmZiNmJjZjAz
MDk2MzU5MzEwZDQ2YWMuLmUzN2EwZjY5NTNjYzEwYTE5YTM5ZWRmYzgwZWZiMTM0ZTIzYTU3NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyNjQuYXNtCkBAIC0yMTY3LDcgKzIxNjcsNyBAQCBlbmQKIAogbWFjcm8gZ2V0Q2xvc3Vy
ZVZhcigpCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDYsIHQxKQotICAgIGxvYWRxIEpTRW52
aXJvbm1lbnRSZWNvcmRfdmFyaWFibGVzW3QwLCB0MSwgOF0sIHQwCisgICAgbG9hZHEgSlNMZXhp
Y2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW3QwLCB0MSwgOF0sIHQwCiAgICAgdmFsdWVQcm9maWxl
KHQwLCA3LCB0MSkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDEpCiAgICAgc3RvcmVx
IHQwLCBbY2ZyLCB0MSwgOF0KQEAgLTIyNTYsNyArMjI1Niw3IEBAIG1hY3JvIHB1dENsb3N1cmVW
YXIoKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigzLCB0MSkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHQxLCB0MikKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNiwgdDEpCi0gICAg
c3RvcmVxIHQyLCBKU0Vudmlyb25tZW50UmVjb3JkX3ZhcmlhYmxlc1t0MCwgdDEsIDhdCisgICAg
c3RvcmVxIHQyLCBKU0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXNbdDAsIHQxLCA4XQogZW5k
CiAKIG1hY3JvIHB1dExvY2FsQ2xvc3VyZVZhcigpCkBAIC0yMjY3LDcgKzIyNjcsNyBAQCBtYWNy
byBwdXRMb2NhbENsb3N1cmVWYXIoKQogICAgIG5vdGlmeVdyaXRlKHQzLCAucER5bmFtaWMpCiAu
bm9WYXJpYWJsZVdhdGNocG9pbnRTZXQ6CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDYsIHQx
KQotICAgIHN0b3JlcSB0MiwgSlNFbnZpcm9ubWVudFJlY29yZF92YXJpYWJsZXNbdDAsIHQxLCA4
XQorICAgIHN0b3JlcSB0MiwgSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW3QwLCB0MSwg
OF0KIGVuZAogCiBtYWNybyBjaGVja1REWkluR2xvYmFsUHV0VG9TY29wZUlmTmVjZXNzYXJ5KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRW52aXJvbm1lbnRS
ZWNvcmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNFbnZpcm9ubWVudFJl
Y29yZC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZDcxMjU1MmU5MWJmM2M0
NDU4NDNhN2E1N2Y0MDUwZWYzODIxZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNFbnZpcm9ubWVu
dFJlY29yZC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA3LCAyMDA4LCAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0Vudmlyb25tZW50UmVjb3JkLmgiCi0KLSNp
bmNsdWRlICJIZWFwU25hcHNob3RCdWlsZGVyLmgiCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3QgQ2xhc3NJbmZvIEpTRW52aXJvbm1lbnRSZWNvcmQ6
OnNfaW5mbyA9IHsgIkVudmlyb25tZW50UmVjb3JkIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0Vudmlyb25tZW50UmVjb3JkKSB9OwotCi12
b2lkIEpTRW52aXJvbm1lbnRSZWNvcmQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBKU0Vudmlyb25tZW50UmVjb3JkKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTRW52aXJvbm1lbnRSZWNvcmQqPihjZWxsKTsKLSAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFzZTo6dmlzaXRDaGlsZHJl
bih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICB2aXNpdG9yLmFwcGVuZFZhbHVlc0hpZGRlbih0
aGlzT2JqZWN0LT52YXJpYWJsZXMoKSwgdGhpc09iamVjdC0+c3ltYm9sVGFibGUoKS0+c2NvcGVT
aXplKCkpOwotfQotCi12b2lkIEpTRW52aXJvbm1lbnRSZWNvcmQ6OmhlYXBTbmFwc2hvdChKU0Nl
bGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCi17Ci0gICAgSlNFbnZpcm9u
bWVudFJlY29yZCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0Vudmlyb25tZW50UmVjb3JkKj4oY2Vs
bCk7Ci0gICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwotCi0gICAgQ29uY3Vy
cmVudEpTTG9ja2VyIGxvY2tlcih0aGlzT2JqZWN0LT5zeW1ib2xUYWJsZSgpLT5tX2xvY2spOwot
ICAgIFN5bWJvbFRhYmxlOjpNYXA6Oml0ZXJhdG9yIGVuZCA9IHRoaXNPYmplY3QtPnN5bWJvbFRh
YmxlKCktPmVuZChsb2NrZXIpOwotICAgIGZvciAoU3ltYm9sVGFibGU6Ok1hcDo6aXRlcmF0b3Ig
aXQgPSB0aGlzT2JqZWN0LT5zeW1ib2xUYWJsZSgpLT5iZWdpbihsb2NrZXIpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKLSAgICAgICAgU3ltYm9sVGFibGVFbnRyeTo6RmFzdCBlbnRyeSA9IGl0LT52YWx1
ZTsKLSAgICAgICAgQVNTRVJUKCFlbnRyeS5pc051bGwoKSk7Ci0gICAgICAgIFNjb3BlT2Zmc2V0
IG9mZnNldCA9IGVudHJ5LnNjb3BlT2Zmc2V0KCk7Ci0gICAgICAgIGlmICghdGhpc09iamVjdC0+
aXNWYWxpZFNjb3BlT2Zmc2V0KG9mZnNldCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAg
ICAgICBKU1ZhbHVlIHRvVmFsdWUgPSB0aGlzT2JqZWN0LT52YXJpYWJsZUF0KG9mZnNldCkuZ2V0
KCk7Ci0gICAgICAgIGlmICh0b1ZhbHVlICYmIHRvVmFsdWUuaXNDZWxsKCkpCi0gICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZFZhcmlhYmxlTmFtZUVkZ2UodGhpc09iamVjdCwgdG9WYWx1ZS5hc0Nl
bGwoKSwgaXQtPmtleS5nZXQoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRW52aXJvbm1lbnRSZWNv
cmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRW52aXJvbm1lbnRSZWNvcmQu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTVlNWRjNjliZmVlYWZjMDFmN2E3MWY4
ZmM0YTFlMThiZjhlZjM2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Vudmlyb25tZW50UmVjb3Jk
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVk
ZSAiSlNPYmplY3QuaCIKLSNpbmNsdWRlICJKU1N5bWJvbFRhYmxlT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiU3ltYm9sVGFibGUuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIExMSW50T2Zmc2V0
c0V4dHJhY3RvcjsKLQotLy8gRklYTUU6IE1lcmdlIHRoaXMgd2l0aCBKU0xleGljYWxFbnZpcm9u
bWVudCwgc2luY2UgdGhhdCdzIHRoZSBvbmx5IHN1YmNsYXNzLgotLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ5MgotY2xhc3MgSlNFbnZpcm9ubWVudFJlY29y
ZCA6IHB1YmxpYyBKU1N5bWJvbFRhYmxlT2JqZWN0IHsKLSAgICBmcmllbmQgY2xhc3MgSklUOwot
ICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7Ci0KLXB1YmxpYzoKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZT4KLSAgICBzdGF0aWMgU3Vic3BhY2UqIHN1YnNwYWNl
Rm9yKFZNJiB2bSkKLSAgICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFDZWxsVHlwZTo6bmVl
ZHNEZXN0cnVjdGlvbik7Ci0gICAgICAgIHJldHVybiAmdm0uanNWYWx1ZUdpZ2FjYWdlQ2VsbFNw
YWNlOwotICAgIH0KLQotICAgIHR5cGVkZWYgSlNTeW1ib2xUYWJsZU9iamVjdCBCYXNlOwotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOwotCi0gICAgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogdmFyaWFibGVzKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8V3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPio+
KGJpdHdpc2VfY2FzdDxjaGFyKj4oR2lnYWNhZ2U6OmNhZ2VkKEdpZ2FjYWdlOjpKU1ZhbHVlLCB0
aGlzKSkgKyBvZmZzZXRPZlZhcmlhYmxlcygpKTsKLSAgICB9Ci0gICAgCi0gICAgYm9vbCBpc1Zh
bGlkU2NvcGVPZmZzZXQoU2NvcGVPZmZzZXQgb2Zmc2V0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
ICEhb2Zmc2V0ICYmIG9mZnNldC5vZmZzZXQoKSA8IHN5bWJvbFRhYmxlKCktPnNjb3BlU2l6ZSgp
OwotICAgIH0KLSAgICAKLSAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+JiB2YXJpYWJsZUF0
KFNjb3BlT2Zmc2V0IG9mZnNldCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc1ZhbGlkU2NvcGVP
ZmZzZXQob2Zmc2V0KSk7Ci0gICAgICAgIHJldHVybiB2YXJpYWJsZXMoKVtvZmZzZXQub2Zmc2V0
KCldOwotICAgIH0KLQotICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZWYXJpYWJsZXMoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2YoV3JpdGVC
YXJyaWVyPFVua25vd24+KT4oc2l6ZW9mKEpTRW52aXJvbm1lbnRSZWNvcmQpKTsKLSAgICB9Ci0g
ICAgCi0gICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZlZhcmlhYmxlKFNjb3BlT2Zmc2V0IG9mZnNl
dCkKLSAgICB7Ci0gICAgICAgIENoZWNrZWQ8c2l6ZV90PiBzY29wZU9mZnNldCA9IG9mZnNldC5v
ZmZzZXQoKTsKLSAgICAgICAgcmV0dXJuIChvZmZzZXRPZlZhcmlhYmxlcygpICsgc2NvcGVPZmZz
ZXQgKiBzaXplb2YoV3JpdGVCYXJyaWVyPFVua25vd24+KSkudW5zYWZlR2V0KCk7Ci0gICAgfQot
Ci0gICAgREVDTEFSRV9JTkZPOwotCi0gICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZUZv
clNjb3BlU2l6ZShDaGVja2VkPHNpemVfdD4gc2NvcGVTaXplKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIChvZmZzZXRPZlZhcmlhYmxlcygpICsgc2NvcGVTaXplICogc2l6ZW9mKFdyaXRlQmFycmll
cjxVbmtub3duPikpLnVuc2FmZUdldCgpOwotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgc2l6ZV90
IGFsbG9jYXRpb25TaXplKFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhbGxvY2F0aW9uU2l6ZUZvclNjb3BlU2l6ZShzeW1ib2xUYWJsZS0+c2NvcGVTaXpl
KCkpOwotICAgIH0KLSAgICAKLXByb3RlY3RlZDoKLSAgICBKU0Vudmlyb25tZW50UmVjb3JkKAot
ICAgICAgICBWTSYgdm0sCi0gICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlLAotICAgICAgICBK
U1Njb3BlKiBzY29wZSwKLSAgICAgICAgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlKQotICAgICAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgc2NvcGUsIHN5bWJvbFRhYmxlKQotICAgIHsKLSAgICB9
Ci0gICAgCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvblVuaW5pdGlhbGl6ZWQoVk0mIHZtKQotICAg
IHsKLSAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIH0KLSAgICAKLSAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IGZpbmlzaENyZWF0aW9uVW5pbml0aWFsaXplZCh2bSk7Ci0gICAgICAgIEFTU0VSVCh2YWx1ZSA9
PSBqc1VuZGVmaW5lZCgpIHx8IHZhbHVlID09IGpzVERaVmFsdWUoKSk7Ci0gICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IHN5bWJvbFRhYmxlKCktPnNjb3BlU2l6ZSgpOyBpLS07KSB7Ci0gICAgICAg
ICAgICAvLyBGaWxsaW5nIHRoaXMgd2l0aCB1bmRlZmluZWQvVERaRW1wdHlWYWx1ZSBpcyB1c2Vm
dWwgYmVjYXVzZSB0aGF0J3Mgd2hhdCB2YXJpYWJsZXMgc3RhcnQgb3V0IGFzLgotICAgICAgICAg
ICAgdmFyaWFibGVBdChTY29wZU9mZnNldChpKSkuc2V0U3RhcnRpbmdWYWx1ZSh2YWx1ZSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCos
IFNsb3RWaXNpdG9yJik7Ci0gICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEhl
YXBTbmFwc2hvdEJ1aWxkZXImKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuY3Bw
CmluZGV4IDA1NDhhNjRiZDE5ZDQ2ZTQzNWRkYzYyYWE1NzFjZjZkYjFiYjY4YjUuLjljOGQ3Zjgw
MWE4NzA2NDA3ODA2YWJlM2ZkYWRmNGRlOWE4NGFiNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9u
bWVudC5oIgogCisjaW5jbHVkZSAiSGVhcFNuYXBzaG90QnVpbGRlci5oIgogI2luY2x1ZGUgIklu
dGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKQEAgLTM5LDYgKzQwLDM0IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0lu
Zm8gSlNMZXhpY2FsRW52aXJvbm1lbnQ6OnNfaW5mbyA9IHsgIkpTTGV4aWNhbEVudmlyb25tZW50
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U0xleGljYWxFbnZpcm9ubWVudCkgfTsKIAordm9pZCBKU0xleGljYWxFbnZpcm9ubWVudDo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNMZXhpY2FsRW52aXJvbm1lbnQqPihjZWxsKTsKKyAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQmFz
ZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKKyAgICB2aXNpdG9yLmFwcGVu
ZFZhbHVlc0hpZGRlbih0aGlzT2JqZWN0LT52YXJpYWJsZXMoKSwgdGhpc09iamVjdC0+c3ltYm9s
VGFibGUoKS0+c2NvcGVTaXplKCkpOworfQorCit2b2lkIEpTTGV4aWNhbEVudmlyb25tZW50Ojpo
ZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQor
eworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNMZXhpY2FsRW52aXJvbm1lbnQqPihj
ZWxsKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CisKKyAgICBDb25j
dXJyZW50SlNMb2NrZXIgbG9ja2VyKHRoaXNPYmplY3QtPnN5bWJvbFRhYmxlKCktPm1fbG9jayk7
CisgICAgU3ltYm9sVGFibGU6Ok1hcDo6aXRlcmF0b3IgZW5kID0gdGhpc09iamVjdC0+c3ltYm9s
VGFibGUoKS0+ZW5kKGxvY2tlcik7CisgICAgZm9yIChTeW1ib2xUYWJsZTo6TWFwOjppdGVyYXRv
ciBpdCA9IHRoaXNPYmplY3QtPnN5bWJvbFRhYmxlKCktPmJlZ2luKGxvY2tlcik7IGl0ICE9IGVu
ZDsgKytpdCkgeworICAgICAgICBTeW1ib2xUYWJsZUVudHJ5OjpGYXN0IGVudHJ5ID0gaXQtPnZh
bHVlOworICAgICAgICBBU1NFUlQoIWVudHJ5LmlzTnVsbCgpKTsKKyAgICAgICAgU2NvcGVPZmZz
ZXQgb2Zmc2V0ID0gZW50cnkuc2NvcGVPZmZzZXQoKTsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0
LT5pc1ZhbGlkU2NvcGVPZmZzZXQob2Zmc2V0KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIEpTVmFsdWUgdG9WYWx1ZSA9IHRoaXNPYmplY3QtPnZhcmlhYmxlQXQob2Zmc2V0KS5n
ZXQoKTsKKyAgICAgICAgaWYgKHRvVmFsdWUgJiYgdG9WYWx1ZS5pc0NlbGwoKSkKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kVmFyaWFibGVOYW1lRWRnZSh0aGlzT2JqZWN0LCB0b1ZhbHVlLmFz
Q2VsbCgpLCBpdC0+a2V5LmdldCgpKTsKKyAgICB9Cit9CisKIHZvaWQgSlNMZXhpY2FsRW52aXJv
bm1lbnQ6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlv
bk1vZGUgbW9kZSkKIHsKICAgICBKU0xleGljYWxFbnZpcm9ubWVudCogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU0xleGljYWxFbnZpcm9ubWVudCo+KG9iamVjdCk7CkBAIC01Niw3ICs4NSw3IEBAIHZv
aWQgSlNMZXhpY2FsRW52aXJvbm1lbnQ6OmdldE93bk5vbkluZGV4UHJvcGVydHlOYW1lcyhKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhCiAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVu
dGlmaWVyOjpmcm9tVWlkKGV4ZWMsIGl0LT5rZXkuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0K
LSAgICAvLyBTa2lwIHRoZSBKU0Vudmlyb25tZW50UmVjb3JkIGltcGxlbWVudGF0aW9uIG9mIGdl
dE93bk5vbkluZGV4UHJvcGVydHlOYW1lcworICAgIC8vIFNraXAgdGhlIEpTU3ltYm9sVGFibGVP
YmplY3QncyBpbXBsZW1lbnRhdGlvbiBvZiBnZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMKICAg
ICBKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaAppbmRleCBmM2IzZDRhMTIxYzk2MTJh
NjdiM2Y5NjUxYzk2NTBjYzk5NDJlZjQwLi42MWRhN2I3NDI2OTk3N2FhZTBiYTk4Zjk2MmMwZThl
Y2E3YjVhN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xl
eGljYWxFbnZpcm9ubWVudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TGV4aWNhbEVudmlyb25tZW50LmgKQEAgLTI5LDE5ICsyOSw2NCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJDb2RlQmxvY2suaCIKLSNpbmNsdWRlICJKU0Vudmlyb25tZW50UmVjb3JkLmgi
CisjaW5jbHVkZSAiSlNTeW1ib2xUYWJsZU9iamVjdC5oIgogI2luY2x1ZGUgIlN5bWJvbFRhYmxl
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBKU0xleGljYWxFbnZpcm9ubWVudCA6IHB1
YmxpYyBKU0Vudmlyb25tZW50UmVjb3JkIHsKLXByb3RlY3RlZDoKLSAgICBKU0xleGljYWxFbnZp
cm9ubWVudChWTSYsIFN0cnVjdHVyZSosIEpTU2NvcGUqLCBTeW1ib2xUYWJsZSopOwotICAgIAor
Y2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOworCitjbGFzcyBKU0xleGljYWxFbnZpcm9ubWVu
dCA6IHB1YmxpYyBKU1N5bWJvbFRhYmxlT2JqZWN0IHsKKyAgICBmcmllbmQgY2xhc3MgSklUOwor
ICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBwdWJsaWM6Ci0gICAgdHlw
ZWRlZiBKU0Vudmlyb25tZW50UmVjb3JkIEJhc2U7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2Vs
bFR5cGU+CisgICAgc3RhdGljIFN1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCisgICAgewor
ICAgICAgICBSRUxFQVNFX0FTU0VSVCghQ2VsbFR5cGU6Om5lZWRzRGVzdHJ1Y3Rpb24pOworICAg
ICAgICByZXR1cm4gJnZtLmpzVmFsdWVHaWdhY2FnZUNlbGxTcGFjZTsKKyAgICB9CisKKyAgICB1
c2luZyBCYXNlID0gSlNTeW1ib2xUYWJsZU9iamVjdDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlkZXNUb1Ro
aXM7CiAKKyAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiB2YXJpYWJsZXMoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+Kj4o
Yml0d2lzZV9jYXN0PGNoYXIqPihHaWdhY2FnZTo6Y2FnZWQoR2lnYWNhZ2U6OkpTVmFsdWUsIHRo
aXMpKSArIG9mZnNldE9mVmFyaWFibGVzKCkpOworICAgIH0KKworICAgIGJvb2wgaXNWYWxpZFNj
b3BlT2Zmc2V0KFNjb3BlT2Zmc2V0IG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiAhIW9m
ZnNldCAmJiBvZmZzZXQub2Zmc2V0KCkgPCBzeW1ib2xUYWJsZSgpLT5zY29wZVNpemUoKTsKKyAg
ICB9CisKKyAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+JiB2YXJpYWJsZUF0KFNjb3BlT2Zm
c2V0IG9mZnNldCkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc1ZhbGlkU2NvcGVPZmZzZXQob2Zm
c2V0KSk7CisgICAgICAgIHJldHVybiB2YXJpYWJsZXMoKVtvZmZzZXQub2Zmc2V0KCldOworICAg
IH0KKworICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZWYXJpYWJsZXMoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2YoV3JpdGVCYXJyaWVyPFVu
a25vd24+KT4oc2l6ZW9mKEpTTGV4aWNhbEVudmlyb25tZW50KSk7CisgICAgfQorCisgICAgc3Rh
dGljIHNpemVfdCBvZmZzZXRPZlZhcmlhYmxlKFNjb3BlT2Zmc2V0IG9mZnNldCkKKyAgICB7Cisg
ICAgICAgIENoZWNrZWQ8c2l6ZV90PiBzY29wZU9mZnNldCA9IG9mZnNldC5vZmZzZXQoKTsKKyAg
ICAgICAgcmV0dXJuIChvZmZzZXRPZlZhcmlhYmxlcygpICsgc2NvcGVPZmZzZXQgKiBzaXplb2Yo
V3JpdGVCYXJyaWVyPFVua25vd24+KSkudW5zYWZlR2V0KCk7CisgICAgfQorCisgICAgc3RhdGlj
IHNpemVfdCBhbGxvY2F0aW9uU2l6ZUZvclNjb3BlU2l6ZShDaGVja2VkPHNpemVfdD4gc2NvcGVT
aXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChvZmZzZXRPZlZhcmlhYmxlcygpICsgc2NvcGVT
aXplICogc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtub3duPikpLnVuc2FmZUdldCgpOworICAgIH0K
KworICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoU3ltYm9sVGFibGUqIHN5bWJvbFRh
YmxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFsbG9jYXRpb25TaXplRm9yU2NvcGVTaXplKHN5
bWJvbFRhYmxlLT5zY29wZVNpemUoKSk7CisgICAgfQorCiAgICAgc3RhdGljIEpTTGV4aWNhbEVu
dmlyb25tZW50KiBjcmVhdGUoCiAgICAgICAgIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTU2NvcGUqIGN1cnJlbnRTY29wZSwgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlLCBKU1ZhbHVl
IGluaXRpYWxWYWx1ZSkKICAgICB7CkBAIC03Miw2ICsxMTcsMjcgQEAgY2xhc3MgSlNMZXhpY2Fs
RW52aXJvbm1lbnQgOiBwdWJsaWMgSlNFbnZpcm9ubWVudFJlY29yZCB7CiAgICAgREVDTEFSRV9J
TkZPOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwganNOdWxsKCksIFR5cGVJbmZvKExleGljYWxFbnZpcm9ubWVudFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgSlNMZXhpY2Fs
RW52aXJvbm1lbnQoVk0mLCBTdHJ1Y3R1cmUqLCBKU1Njb3BlKiwgU3ltYm9sVGFibGUqKTsKKwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb25VbmluaXRpYWxpemVkKFZNJiB2bSkKKyAgICB7CisgICAg
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICB9CisKKyAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGZpbmlzaENyZWF0
aW9uVW5pbml0aWFsaXplZCh2bSk7CisgICAgICAgIEFTU0VSVCh2YWx1ZSA9PSBqc1VuZGVmaW5l
ZCgpIHx8IHZhbHVlID09IGpzVERaVmFsdWUoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IHN5bWJvbFRhYmxlKCktPnNjb3BlU2l6ZSgpOyBpLS07KSB7CisgICAgICAgICAgICAvLyBGaWxs
aW5nIHRoaXMgd2l0aCB1bmRlZmluZWQvVERaRW1wdHlWYWx1ZSBpcyB1c2VmdWwgYmVjYXVzZSB0
aGF0J3Mgd2hhdCB2YXJpYWJsZXMgc3RhcnQgb3V0IGFzLgorICAgICAgICAgICAgdmFyaWFibGVB
dChTY29wZU9mZnNldChpKSkuc2V0U3RhcnRpbmdWYWx1ZSh2YWx1ZSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9y
Jik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEhlYXBTbmFwc2hvdEJ1
aWxkZXImKTsKIH07CiAKIGlubGluZSBKU0xleGljYWxFbnZpcm9ubWVudDo6SlNMZXhpY2FsRW52
aXJvbm1lbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTY29wZSogY3VycmVudFNj
b3BlLCBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01vZHVsZUVudmlyb25tZW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlRW52aXJvbm1lbnQuY3BwCmluZGV4IDI0ZGJmNzczZDky
NDdkMzRhMmYxNDNhOGNiNzY3OGEzYzhhMGQ0NDYuLmJlMjljOTk3ZGI3OTc0MTg0YjRmY2M2ZGRl
NzY4M2NmNzBiYTIxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTW9kdWxlRW52aXJvbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTW9kdWxlRW52aXJvbm1lbnQuY3BwCkBAIC00Myw4ICs0Myw4IEBAIGNvbnN0IENsYXNz
SW5mbyBKU01vZHVsZUVudmlyb25tZW50OjpzX2luZm8gPSB7ICJKU01vZHVsZUVudmlyb25tZW50
IiwgJkJhc2U6OnNfCiBKU01vZHVsZUVudmlyb25tZW50KiBKU01vZHVsZUVudmlyb25tZW50Ojpj
cmVhdGUoCiAgICAgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTY29wZSogY3VycmVu
dFNjb3BlLCBTeW1ib2xUYWJsZSogc3ltYm9sVGFibGUsIEpTVmFsdWUgaW5pdGlhbFZhbHVlLCBB
YnN0cmFjdE1vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkKQogewotICAgIC8vIEpTTGV4aWNhbEVu
dmlyb25tZW50IChwcmVjaXNlbHksIEpTRW52aXJvbm1lbnRSZWNvcmQpIGhhcyB0aGUgc3RvcmFn
ZSB0byBzdG9yZSB0aGUgdmFyaWFibGUgc2xvdHMgYWZ0ZXIgdGhlIGl0cyBjbGFzcyBzdG9yYWdl
LgotICAgIC8vIEJlY2F1c2UgdGhlIG9mZnNldCBvZiB0aGUgdmFyaWFibGUgc2xvdHMgYXJlIGZp
eGVkIGluIHRoZSBKU0Vudmlyb25tZW50UmVjb3JkLCBpbmhlcml0dGluZyB0aGVzZSBjbGFzcyBh
bmQgYWRkaW5nIG5ldyBtZW1iZXIgZmllbGQgaXMgbm90IGFsbG93ZWQsCisgICAgLy8gSlNMZXhp
Y2FsRW52aXJvbm1lbnQgaGFzIHRoZSBzdG9yYWdlIHRvIHN0b3JlIHRoZSB2YXJpYWJsZSBzbG90
cyBhZnRlciB0aGUgaXRzIGNsYXNzIHN0b3JhZ2UuCisgICAgLy8gQmVjYXVzZSB0aGUgb2Zmc2V0
IG9mIHRoZSB2YXJpYWJsZSBzbG90cyBhcmUgZml4ZWQgaW4gdGhlIEpTTGV4aWNhbEVudmlyb25t
ZW50LCBpbmhlcml0dGluZyB0aGVzZSBjbGFzcyBhbmQgYWRkaW5nIG5ldyBtZW1iZXIgZmllbGQg
aXMgbm90IGFsbG93ZWQsCiAgICAgLy8gdGhlIG5ldyBtZW1iZXIgd2lsbCBvdmVybGFwIHRoZSB2
YXJpYWJsZSBzbG90cy4KICAgICAvLyBUbyBrZWVwIHRoZSBKU01vZHVsZUVudmlyb25tZW50IGNv
bXBhdGlibGUgdG8gdGhlIEpTTGV4aWNhbEVudmlyb25tZW50IGJ1dCBhZGQgdGhlIG5ldyBtZW1i
ZXIgdG8gc3RvcmUgdGhlIEFic3RyYWN0TW9kdWxlUmVjb3JkLCB3ZSBhZGRpdGlvbmFsbHkgYWxs
b2NhdGUKICAgICAvLyB0aGUgc3RvcmFnZSBhZnRlciB0aGUgdmFyaWFibGUgc2xvdHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBlYmQwY2ViMjNjMDdkOTk3
ZmRkOGI4ODQwMDExYmI2MmY5MjM0NjE5Li45MjQxYjMwYWNjNzRmMjI2ZTFkOGMxZTMyZjI4NTlh
NjU2ZTkwMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAg
LTcxOCw3ICs3MTgsNyBAQCBjbGFzcyBKU09iamVjdCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3Qq
LCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYsIGJv
b2wgc2hvdWxkVGhyb3cpOwogCi0gICAgYm9vbCBpc0Vudmlyb25tZW50UmVjb3JkKCkgY29uc3Q7
CisgICAgYm9vbCBpc0Vudmlyb25tZW50KCkgY29uc3Q7CiAgICAgYm9vbCBpc0dsb2JhbE9iamVj
dCgpIGNvbnN0OwogICAgIGJvb2wgaXNKU0xleGljYWxFbnZpcm9ubWVudCgpIGNvbnN0OwogICAg
IGJvb2wgaXNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQoKSBjb25zdDsKQEAgLTEyMTYsNyArMTIx
Niw3IEBAIGlubGluZSBib29sIEpTT2JqZWN0Ojppc1N0cmljdEV2YWxBY3RpdmF0aW9uKCkgY29u
c3QKICAgICByZXR1cm4gdHlwZSgpID09IFN0cmljdEV2YWxBY3RpdmF0aW9uVHlwZTsKIH0KIAot
aW5saW5lIGJvb2wgSlNPYmplY3Q6OmlzRW52aXJvbm1lbnRSZWNvcmQoKSBjb25zdAoraW5saW5l
IGJvb2wgSlNPYmplY3Q6OmlzRW52aXJvbm1lbnQoKSBjb25zdAogewogICAgIGJvb2wgcmVzdWx0
ID0gR2xvYmFsT2JqZWN0VHlwZSA8PSB0eXBlKCkgJiYgdHlwZSgpIDw9IFN0cmljdEV2YWxBY3Rp
dmF0aW9uVHlwZTsKICAgICBBU1NFUlQoKGlzR2xvYmFsT2JqZWN0KCkgfHwgaXNKU0xleGljYWxF
bnZpcm9ubWVudCgpIHx8IGlzR2xvYmFsTGV4aWNhbEVudmlyb25tZW50KCkgfHwgaXNTdHJpY3RF
dmFsQWN0aXZhdGlvbigpKSA9PSByZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oCmluZGV4IGIwMjQy
NmM2OTZkZTkxYTQ1OGQwNTEwN2Q0ZDk1ZTNjOTFjNWZlMTcuLjkzZmI5ODc4MWZkMTIyMmUxNTUx
Mjc0Y2Q3MjQ0NTZmZTY3NmUzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmgKQEAgLTM4LDExICszOCwx
MSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0v
LyBUaGlzIGlzIGEgbW9zdGx5IGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIEpTRW52aXJvbm1lbnRS
ZWNvcmQsIGV4Y2VwdCB0aGF0IGl0IHByZXNlcnZlcworLy8gVGhpcyBpcyBhIG1vc3RseSBkcm9w
LWluIHJlcGxhY2VtZW50IGZvciBKU0xleGljYWxFbnZpcm9ubWVudCwgZXhjZXB0IHRoYXQgaXQg
cHJlc2VydmVzCiAvLyB0aGUgaW52YXJpYW50IHRoYXQgYWZ0ZXIgYSB2YXJpYWJsZSBpcyBjcmVh
dGVkLCBpdHMgYWRkcmVzcyBpbiBtZW1vcnkgd2lsbCBub3QgY2hhbmdlCiAvLyBzbyBsb25nIGFz
IHRoZSBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0IGlzIGFsaXZlLiBUaGlzIGFsbG93cyBvcHRp
bWl6YXRpb25zIGJhc2VkCiAvLyBvbiBnZXR0aW5nIHRoZSBhZGRyZXNzIG9mIHRoZSB2YXJpYWJs
ZSBhbmQgcmVtZW1iZXJpbmcgaXQuIEFzIHdlbGwsIHVubGlrZSBhCi0vLyBKU0Vudmlyb25tZW50
UmVjb3JkLCB0aGlzIHdpbGwgbWFuYWdlIHRoZSBtZW1vcnkgZm9yIHRoZSByZWdpc3RlcnMgaXRz
ZWxmIGFuZCBuZWl0aGVyCisvLyBKU0xleGljYWxFbnZpcm9ubWVudCwgdGhpcyB3aWxsIG1hbmFn
ZSB0aGUgbWVtb3J5IGZvciB0aGUgcmVnaXN0ZXJzIGl0c2VsZiBhbmQgbmVpdGhlcgogLy8gcmVx
dWlyZXMgbm9yIGFsbG93cyBmb3IgdGhlIHN1YmNsYXNzZXMgdG8gbWFuYWdlIHRoYXQgbWVtb3J5
LiBGaW5hbGx5LAogLy8gSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCBoYXMgaXRzIG93biBHQyB0
cmFjaW5nIGZ1bmN0aW9uYWxpdHksIHNpbmNlIGl0IGtub3dzIHRoZQogLy8gZXhhY3QgZGltZW5z
aW9ucyBvZiB0aGUgdmFyaWFibGVzIGFycmF5IGF0IGFsbCB0aW1lcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDk3Zjc5ZmE2
YTdjMDRkMGYwNDdiZTlmY2M3ZmNmMTljOTU2OWU2ZDkuLjE2NWZkODdlMzA0OGI5N2Y2N2M1OWE2
ZDVlZjRmMjgzMjYzYzI3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtODYzLDcgKzg2Myw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBjaGVja09iamVjdENvZXJjaWJsZShKU1ZhbHVlIHRoaXNWYWx1ZSkKICAgICBpZiAodGhp
c1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmICh0aGlzVmFsdWUuaXNPYmplY3QoKSAmJiBhc09iamVjdCh0aGlzVmFsdWUpLT5pc0Vudmly
b25tZW50UmVjb3JkKCkpCisgICAgaWYgKHRoaXNWYWx1ZS5pc09iamVjdCgpICYmIGFzT2JqZWN0
KHRoaXNWYWx1ZSktPmlzRW52aXJvbm1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgcmV0dXJuIHRydWU7Cg==
</data>
<flag name="review"
          id="341074"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>