<?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>194664</bug_id>
          
          <creation_ts>2019-02-14 12:49:17 -0800</creation_ts>
          <short_desc>REGRESSION (r240446): Storage Access API does not handle domains properly</short_desc>
          <delta_ts>2019-02-18 14:48:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=194791</see_also>
          <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>
          
          <blocked>193199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1506307</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-02-14 12:49:17 -0800</bug_when>
    <thetext>During my refactoring of the ResourceLoadStatistics code, I introduced two bugs:
(1) I neglected to be consistent in my use of &apos;primaryDomain&apos;, causing some Storage Access API code paths to store approves under one domain (e.g., &apos;www.example.com&apos;), while checking status under the eTLD+1 (e.g., &apos;example.com&apos;). The exact string matching requirement caused these to get missed.

(2) I used a move operator before a final set of copies of domain names, leading to some empty strings being passed to Storage Access API calls.

Both issues are corrected in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506310</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-02-14 12:55:18 -0800</bug_when>
    <thetext>This is another example of why I really should introduce a registrableDomain class so we can get type safety to save us. We’re using it in so many places now – ITP, SameSite cookies, partitioning, Ad Click Attribution, and PSON (afaik). I might do this next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506311</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-14 12:55:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/48084628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506312</commentid>
    <comment_count>3</comment_count>
      <attachid>362051</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-02-14 12:56:16 -0800</bug_when>
    <thetext>Created attachment 362051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506318</commentid>
    <comment_count>4</comment_count>
      <attachid>362051</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-14 13:02:36 -0800</bug_when>
    <thetext>Comment on attachment 362051
Patch

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

&gt; Source/WebKit/ChangeLog:17
&gt; +        Both issues are corrected in this patch.

Are there any tests to make sure we don&apos;t do this again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506325</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-02-14 13:21:10 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 362051 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362051&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:17
&gt; &gt; +        Both issues are corrected in this patch.
&gt; 
&gt; Are there any tests to make sure we don&apos;t do this again?

The problem is that our layout tests don’t support subdomains. That’s why we missed this once earlier. Type safety should fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506450</commentid>
    <comment_count>6</comment_count>
      <attachid>362051</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-14 17:55:32 -0800</bug_when>
    <thetext>Comment on attachment 362051
Patch

Clearing flags on attachment: 362051

Committed r241574: &lt;https://trac.webkit.org/changeset/241574&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506451</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-14 17:55:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362051</attachid>
            <date>2019-02-14 12:56:16 -0800</date>
            <delta_ts>2019-02-14 17:55:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194664-20190214125615.patch</filename>
            <type>text/plain</type>
            <size>31306</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRiOTdjMGZmOGI4NzMwZTlm
MjA3YjdmN2VhZjFjZmIyNWQ0MjJhNTEuLjRiMzM0MmZkZTAzMDQ2MDU5YmM2ZDRlMjdlNjk0ZWEz
MzU4MmY4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTktMDItMTQgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI0MDQ0
Nik6IFN0b3JhZ2UgQWNjZXNzIEFQSSBkb2VzIG5vdCBoYW5kbGUgZG9tYWlucyBjb25zaXN0ZW50
bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY2
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAg
ICAgRHVyaW5nIG15IHJlZmFjdG9yaW5nIG9mIHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGNv
ZGUsIEkgaW50cm9kdWNlZCB0d28gYnVnczoKKyAgICAgICAgKDEpIEkgbmVnbGVjdGVkIHRvIGJl
IGNvbnNpc3RlbnQgaW4gbXkgdXNlIG9mICdwcmltYXJ5RG9tYWluJywgY2F1c2luZyBzb21lIFN0
b3JhZ2UKKyAgICAgICAgQWNjZXNzIEFQSSBjb2RlIHBhdGhzIHRvIHN0b3JlIGFwcHJvdmVzIHVu
ZGVyIG9uZSBkb21haW4gKGUuZy4sICd3d3cuZXhhbXBsZS5jb20nKSwKKyAgICAgICAgd2hpbGUg
Y2hlY2tpbmcgc3RhdHVzIHVuZGVyIHRoZSBlVExEKzEgKGUuZy4sICdleGFtcGxlLmNvbScpLiBU
aGUgZXhhY3Qgc3RyaW5nIG1hdGNoaW5nCisgICAgICAgIHJlcXVpcmVtZW50IGNhdXNlZCB0aGVz
ZSB0byBnZXQgbWlzc2VkLgorCisgICAgICAgICgyKSBJIHVzZWQgYSBtb3ZlIG9wZXJhdG9yIGJl
Zm9yZSBhIGZpbmFsIHNldCBvZiBjb3BpZXMgb2YgZG9tYWluIG5hbWVzLCBsZWFkaW5nIHRvCisg
ICAgICAgIHNvbWUgZW1wdHkgc3RyaW5ncyBiZWluZyBwYXNzZWQgdG8gU3RvcmFnZSBBY2Nlc3Mg
QVBJIGNhbGxzLgorCisgICAgICAgIEJvdGggaXNzdWVzIGFyZSBjb3JyZWN0ZWQgaW4gdGhpcyBw
YXRjaC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSk6IEFsd2F5
cyBtYWtlIHRoZQorICAgICAgICBkb21haW4gY29tcGx5IHdpdGggb3VyICdwcmltYXJ5RG9tYWlu
JyBsb2dpYy4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpoYXNTdG9yYWdlQWNjZXNzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NHcmFudGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6bG9nV2ViU29ja2V0TG9hZGluZyk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1N1YnJlc291cmNlTG9hZGlu
Zyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmxvZ1N1YnJlc291cmNlUmVkaXJlY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24pOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhclVz
ZXJJbnRlcmFjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbik6IERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldExhc3RTZWVuKTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0
UHJldmFsZW50UmVzb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppc1ByZXZhbGVu
dFJlc291cmNlKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppc1JlZ2lzdGVyZWRBc1N1YnJl
c291cmNlVW5kZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjppc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjppc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8pOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpjbGVhclByZXZhbGVudFJlc291cmNlKTogRGl0dG8uCisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0R3JhbmRmYXRoZXJl
ZCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmlzR3JhbmRmYXRoZXJlZCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbik6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNl
dFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbik6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RUbyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VG9wRnJhbWVV
bmlxdWVSZWRpcmVjdFRvKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20pOiBEaXR0by4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOiBBbHdh
eXMgbWFrZSB0aGUKKyAgICAgICAgZG9tYWluIGNvbXBseSB3aXRoIG91ciAncHJpbWFyeURvbWFp
bicgbG9naWMuCisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKTogRGl0dG8uIEFsc28gbWFrZSBjb3B5IG9mIGRvbWFpbgorICAgICAgICBuYW1l
cyBiZWZvcmUgbW92aW5nIHRoZW0gdG8gdGhlIGNvbXBsZXRpb24gaGFuZGxlci4KKyAgICAgICAg
KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKTogRGl0dG8uCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKTogIEFsd2F5cyBtYWtlIHRoZSBkb21haW4gY29t
cGx5IHdpdGggb3VyCisgICAgICAgICdwcmltYXJ5RG9tYWluJyBsb2dpYy4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOiBEaXR0by4KKwogMjAxOS0wMi0x
MyAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAg
Rml4IC1XZm9ybWF0IHdhcm5pbmcgZnJvbSByMjQxNDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDZmOWVmN2RiNmViM2Q3NjMxOGI3YzVh
NTJjMDdlMWEyOGFlNDgyZTUuLmUwZGFjMjFkNjc5NjdkNzRkYzVhM2E5ZjQ0ODY3NGI4M2FjOTU1
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGNvbnN0IFN0cmkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5
RG9tYWluID0gcHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhb
dGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbihwcmltYXJ5RG9tYWlu
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0
b3JlLT5zZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShwcmltYXJ5RG9tYWluKTsKICAg
ICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0yNjEs
NyArMjYxLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3RyaW5nJiBzdWJGcmFtZUhvc3QKICAgICBBU1NFUlQoc3ViRnJhbWVI
b3N0ICE9IHRvcEZyYW1lSG9zdCk7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAot
ICAgIHBvc3RUYXNrKFt0aGlzLCBzdWJGcmFtZVByaW1hcnlEb21haW4gPSBzdWJGcmFtZUhvc3Qu
aXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lUHJpbWFyeURvbWFpbiA9IHRvcEZyYW1lSG9zdC5pc29s
YXRlZENvcHkoKSwgZnJhbWVJRCwgcGFnZUlELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBzdWJG
cmFtZVByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4oc3ViRnJhbWVIb3N0KSwg
dG9wRnJhbWVQcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHRvcEZyYW1lSG9z
dCksIGZyYW1lSUQsIHBhZ2VJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX21lbW9yeVN0b3JlKSB7CiAg
ICAgICAgICAgICBwb3N0VGFza1JlcGx5KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZhbHNlKTsKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3Qg
UwogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NHcmFudGVkKGNvbnN0IFN0cmluZyYgc3ViRnJhbWVIb3N0LCBjb25zdCBTdHJpbmcmIHRv
cEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21w
dEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0gICAgYXV0byBzdGF0dXNIYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgc3ViRnJhbWVIb3N0ID0gc3ViRnJhbWVIb3N0Lmlzb2xhdGVkQ29weSgp
LCB0b3BGcmFtZUhvc3QgPSB0b3BGcmFtZUhvc3QuaXNvbGF0ZWRDb3B5KCksIHByb21wdEVuYWJs
ZWQsIGZyYW1lSUQsIHBhZ2VJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oU3RvcmFnZUFjY2Vzc1N0YXR1cyBzdGF0dXMpIG11dGFibGUgeworICAgIGF1
dG8gc3RhdHVzSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHN1YkZyYW1lSG9zdCA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpLCB0b3BG
cmFtZUhvc3QgPSBpc29sYXRlZFByaW1hcnlEb21haW4odG9wRnJhbWVIb3N0KSwgcHJvbXB0RW5h
YmxlZCwgZnJhbWVJRCwgcGFnZUlELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShTdG9yYWdlQWNjZXNzU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CiAgICAg
ICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgICAgIGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6
Q2Fubm90UmVxdWVzdEFjY2VzczoKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKQEAgLTMwMywxMyArMzAzLDE1IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0dyYW50ZWQoY29uc3QgU3RyaW5nJiBzCiAgICAgICAg
IGNhc2UgU3RvcmFnZUFjY2Vzc1N0YXR1czo6UmVxdWlyZXNVc2VyUHJvbXB0OgogICAgICAgICAg
ICAgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChwcm9tcHRFbmFibGVkLCBwcm9tcHRFbmFi
bGVkKTsKKyAgICAgICAgICAgIGF1dG8gc3ViRnJhbWVQcmltYXJ5RG9tYWluID0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpOworICAgICAgICAgICAg
YXV0byB0b3BGcmFtZVByaW1hcnlEb21haW4gPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmlt
YXJ5RG9tYWluKHRvcEZyYW1lSG9zdCk7CiAgICAgICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiByZXF1ZXN0Q29uZmlybWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBzdWJGcmFtZUhvc3QgPSBXVEZNb3ZlKHN1
YkZyYW1lSG9zdCksIHRvcEZyYW1lSG9zdCA9IFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJhbWVJ
RCwgcGFnZUlELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlm
ICh1c2VyRGlkR3JhbnRBY2Nlc3MpCiAgICAgICAgICAgICAgICAgICAgIGdyYW50U3RvcmFnZUFj
Y2VzcyhXVEZNb3ZlKHN1YkZyYW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJhbWVJ
RCwgcGFnZUlELCB1c2VyRGlkR3JhbnRBY2Nlc3MsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZhbHNlKTsKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBtX25ldHdvcmtTZXNz
aW9uLT5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6UmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NDb25maXJtKHBhZ2VJRCwgZnJhbWVJRCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJp
bWFyeURvbWFpbihzdWJGcmFtZUhvc3QpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5
RG9tYWluKHRvcEZyYW1lSG9zdCkpLCBXVEZNb3ZlKHJlcXVlc3RDb25maXJtYXRpb25Db21wbGV0
aW9uSGFuZGxlcikpOworICAgICAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1Byb2Nl
c3MoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShwYWdl
SUQsIGZyYW1lSUQsIHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQcmltYXJ5RG9tYWlu
KSwgV1RGTW92ZShyZXF1ZXN0Q29uZmlybWF0aW9uQ29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBTdG9yYWdlQWNjZXNz
U3RhdHVzOjpIYXNBY2Nlc3M6CkBAIC00ODEsNyArNDgzLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVByb3h5
JiBmcmEKIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2
aWdhdGlvbihjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYg
bWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBzb3VyY2VQcmltYXJ5RG9tYWlu
LCBjb25zdCBTdHJpbmcmIHRhcmdldEhvc3QsIGNvbnN0IFN0cmluZyYgbWFpbkZyYW1lSG9zdCwg
Ym9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKQogewotICAgIHBvc3RUYXNrKFt0aGlz
LCB0YXJnZXRQcmltYXJ5RG9tYWluID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHko
KSwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiA9IG1haW5GcmFtZVByaW1hcnlEb21haW4uaXNvbGF0
ZWRDb3B5KCksIHNvdXJjZVByaW1hcnlEb21haW4gPSBzb3VyY2VQcmltYXJ5RG9tYWluLmlzb2xh
dGVkQ29weSgpLCB0YXJnZXRIb3N0ID0gdGFyZ2V0SG9zdC5pc29sYXRlZENvcHkoKSwgbWFpbkZy
YW1lSG9zdCA9IG1haW5GcmFtZUhvc3QuaXNvbGF0ZWRDb3B5KCksIGlzUmVkaXJlY3QsIGlzTWFp
bkZyYW1lXSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHRhcmdldFByaW1hcnlEb21haW4gPSBpc29s
YXRlZFByaW1hcnlEb21haW4odGFyZ2V0UHJpbWFyeURvbWFpbiksIG1haW5GcmFtZVByaW1hcnlE
b21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4obWFpbkZyYW1lUHJpbWFyeURvbWFpbiksIHNv
dXJjZVByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4oc291cmNlUHJpbWFyeURv
bWFpbiksIHRhcmdldEhvc3QgPSBpc29sYXRlZFByaW1hcnlEb21haW4odGFyZ2V0SG9zdCksIG1h
aW5GcmFtZUhvc3QgPSBpc29sYXRlZFByaW1hcnlEb21haW4obWFpbkZyYW1lSG9zdCksIGlzUmVk
aXJlY3QsIGlzTWFpbkZyYW1lXSB7CiAgICAgICAgIAogICAgICAgICBpZiAobV9tZW1vcnlTdG9y
ZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXRQ
cmltYXJ5RG9tYWluLCBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBzb3VyY2VQcmltYXJ5RG9tYWlu
LCB0YXJnZXRIb3N0LCBtYWluRnJhbWVIb3N0LCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZSk7CkBA
IC00OTAsNyArNDkyLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omxv
Z0ZyYW1lTmF2aWdhdGlvbihjb25zdCBTdHJpbmcmIHRhcmdldFByaW0KIAogdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1dlYlNvY2tldExvYWRpbmcoY29uc3QgU3RyaW5n
JiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlEb21h
aW4sIFdhbGxUaW1lIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgcG9zdFRhc2soW3RoaXMsIHRhcmdldFByaW1hcnlEb21haW4g
PSB0YXJnZXRQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVQcmltYXJ5RG9t
YWluID0gbWFpbkZyYW1lUHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgbGFzdFNlZW4sIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
CisgICAgcG9zdFRhc2soW3RoaXMsIHRhcmdldFByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1h
cnlEb21haW4odGFyZ2V0UHJpbWFyeURvbWFpbiksIG1haW5GcmFtZVByaW1hcnlEb21haW4gPSBp
c29sYXRlZFByaW1hcnlEb21haW4obWFpbkZyYW1lUHJpbWFyeURvbWFpbiksIGxhc3RTZWVuLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
ewogICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUt
PmxvZ1N1YnJlc291cmNlTG9hZGluZyh0YXJnZXRQcmltYXJ5RG9tYWluLCBtYWluRnJhbWVQcmlt
YXJ5RG9tYWluLCBsYXN0U2Vlbik7CiAKQEAgLTUwMCw3ICs1MDIsNyBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nV2ViU29ja2V0TG9hZGluZyhjb25zdCBTdHJpbmcm
IHRhcmdldFByaQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nU3Vi
cmVzb3VyY2VMb2FkaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3Qg
U3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHBvc3RUYXNr
KFt0aGlzLCB0YXJnZXRQcmltYXJ5RG9tYWluID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5pc29sYXRl
ZENvcHkoKSwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiA9IG1haW5GcmFtZVByaW1hcnlEb21haW4u
aXNvbGF0ZWRDb3B5KCksIGxhc3RTZWVuLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCB0YXJnZXRQ
cmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHRhcmdldFByaW1hcnlEb21haW4p
LCBtYWluRnJhbWVQcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKG1haW5GcmFt
ZVByaW1hcnlEb21haW4pLCBsYXN0U2VlbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUp
CiAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5sb2dTdWJyZXNvdXJjZUxvYWRpbmcodGFyZ2V0
UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgbGFzdFNlZW4pOwogICAgICAg
ICAKQEAgLTUxMCw3ICs1MTIsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6bG9nU3VicmVzb3VyY2VMb2FkaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0UAogCiB2b2lkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nU3VicmVzb3VyY2VSZWRpcmVjdChjb25z
dCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFy
eURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIHBvc3RUYXNrKFt0aGlzLCBzb3VyY2VQcmltYXJ5RG9tYWluID0gc291cmNlUHJpbWFy
eURvbWFpbi5pc29sYXRlZENvcHkoKSwgdGFyZ2V0UHJpbWFyeURvbWFpbiA9IHRhcmdldFByaW1h
cnlEb21haW4uaXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHNvdXJjZVBy
aW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4oc291cmNlUHJpbWFyeURvbWFpbiks
IHRhcmdldFByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4odGFyZ2V0UHJpbWFy
eURvbWFpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgbV9t
ZW1vcnlTdG9yZS0+bG9nU3VicmVzb3VyY2VSZWRpcmVjdChzb3VyY2VQcmltYXJ5RG9tYWluLCB0
YXJnZXRQcmltYXJ5RG9tYWluKTsKICAgICAgICAgCkBAIC01MjIsNyArNTI0LDcgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBT
dHJpbmcmIHRhcmdldFByaW0KIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0g
ICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21haW4gPSB0YXJnZXRQcmltYXJ5RG9tYWluLmlz
b2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9tYWluID0gaXNv
bGF0ZWRQcmltYXJ5RG9tYWluKHRhcmdldFByaW1hcnlEb21haW4pLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBpZiAo
bV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmxvZ1VzZXJJbnRlcmFj
dGlvbihwcmltYXJ5RG9tYWluKTsKICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CkBAIC01MzMsNyArNTM1LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgdGFyZ2V0
UHIKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIAotICAgIHBvc3RUYXNr
KFt0aGlzLCBwcmltYXJ5RG9tYWluID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHko
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFy
eURvbWFpbih0YXJnZXRQcmltYXJ5RG9tYWluKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3Rv
cmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5jbGVhclVzZXJJbnRlcmFjdGlvbihwcmlt
YXJ5RG9tYWluKTsKICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CkBAIC01NDIsNyArNTQ0LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgdGFyZ2V0UHIKIAogdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihj
b25zdCBTdHJpbmcmIHByaW1hcnlEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21h
aW4gPSBwcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlz
LCBwcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHByaW1hcnlEb21haW4pLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
ewogICAgICAgICBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiA9IG1fbWVtb3J5U3RvcmUgPyBtX21l
bW9yeVN0b3JlLT5oYXNIYWRVc2VySW50ZXJhY3Rpb24ocHJpbWFyeURvbWFpbikgOiBmYWxzZTsK
ICAgICAgICAgcG9zdFRhc2tSZXBseShbaGFkVXNlckludGVyYWN0aW9uLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoaGFkVXNlckludGVyYWN0aW9uKTsKQEAgLTU1NCw3ICs1NTYs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TGFzdFNlZW4oY29u
c3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgUwogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgCi0gICAgcG9zdFRhc2soW3RoaXMsIHJlc291cmNlRG9tYWluID0gcmVzb3Vy
Y2VEb21haW4uaXNvbGF0ZWRDb3B5KCksIHNlY29uZHMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMs
IHJlc291cmNlRG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHJlc291cmNlRG9tYWluKSwg
c2Vjb25kcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21l
bW9yeVN0b3JlLT5zZXRMYXN0U2VlbihyZXNvdXJjZURvbWFpbiwgc2Vjb25kcyk7CiAgICAgICAg
IHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtNTY1LDcgKzU2
Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBTdHJpbmcmIHJlc291cmNlCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCByZXNvdXJjZURvbWFpbiA9IHJlc291cmNl
RG9tYWluLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCByZXNvdXJjZURv
bWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbihyZXNvdXJjZURvbWFpbiksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+c2V0UHJldmFs
ZW50UmVzb3VyY2UocmVzb3VyY2VEb21haW4pOwogICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTU3Niw3ICs1NzgsNyBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFN0
cmluZyYgcHJpbQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBwb3N0
VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IHByaW1hcnlEb21haW4uaXNvbGF0ZWRDb3B5KCks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJs
ZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlE
b21haW4ocHJpbWFyeURvbWFpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX21lbW9yeVN0b3JlKQogICAg
ICAgICAgICAgbV9tZW1vcnlTdG9yZS0+c2V0VmVyeVByZXZhbGVudFJlc291cmNlKHByaW1hcnlE
b21haW4pOwogICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKQEAgLTU5OSw3ICs2MDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6aXNQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBTdHJpbmcmIHByaW1hcnlEbwogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCi0gICAgcG9zdFRhc2soW3RoaXMsIHByaW1h
cnlEb21haW4gPSBwcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNr
KFt0aGlzLCBwcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHByaW1hcnlEb21h
aW4pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgewogICAgICAgICBib29sIGlzUHJldmFsZW50UmVzb3VyY2UgPSBtX21lbW9yeVN0b3Jl
ID8gbV9tZW1vcnlTdG9yZS0+aXNQcmV2YWxlbnRSZXNvdXJjZShwcmltYXJ5RG9tYWluKSA6IGZh
bHNlOwogICAgICAgICBwb3N0VGFza1JlcGx5KFtpc1ByZXZhbGVudFJlc291cmNlLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaXNQcmV2YWxlbnRSZXNvdXJjZSk7CkBAIC02MTEs
NyArNjEzLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmlzVmVyeVBy
ZXZhbGVudFJlc291cmNlKGNvbnN0IFN0cmluZyYgcHJpbWEKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9tYWluID0g
cHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgcHJp
bWFyeURvbWFpbiA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbihwcmltYXJ5RG9tYWluKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgYm9vbCBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSA9IG1fbWVtb3J5U3RvcmUgPyBtX21l
bW9yeVN0b3JlLT5pc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShwcmltYXJ5RG9tYWluKSA6IGZhbHNl
OwogICAgICAgICBwb3N0VGFza1JlcGx5KFtpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGlzVmVyeVByZXZhbGVudFJlc291cmNlKTsKQEAg
LTYyMyw3ICs2MjUsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNS
ZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKGNvbnN0IFN0cmluZwogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBwb3N0VGFzayhbdGhpcywgc3VicmVzb3VyY2VQcmlt
YXJ5RG9tYWluID0gc3VicmVzb3VyY2UuaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lUHJpbWFyeURv
bWFpbiA9IHRvcEZyYW1lLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBz
dWJyZXNvdXJjZVByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4oc3VicmVzb3Vy
Y2UpLCB0b3BGcmFtZVByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4odG9wRnJh
bWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgewogICAgICAgICBib29sIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlciA9IG1f
bWVtb3J5U3RvcmUgPyBtX21lbW9yeVN0b3JlLT5pc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5k
ZXIoc3VicmVzb3VyY2VQcmltYXJ5RG9tYWluLCB0b3BGcmFtZVByaW1hcnlEb21haW4pIDogZmFs
c2U7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoW2lzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
ciwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGlzUmVnaXN0ZXJlZEFzU3VicmVz
b3VyY2VVbmRlcik7CkBAIC02MzUsNyArNjM3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihjb25zdCBTdHJpbmcmIHMK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMs
IHN1YkZyYW1lUHJpbWFyeURvbWFpbiA9IHN1YkZyYW1lLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFt
ZVByaW1hcnlEb21haW4gPSB0b3BGcmFtZS5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFz
ayhbdGhpcywgc3ViRnJhbWVQcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHN1
YkZyYW1lKSwgdG9wRnJhbWVQcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHRv
cEZyYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgYm9vbCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIgPSBt
X21lbW9yeVN0b3JlID8gbV9tZW1vcnlTdG9yZS0+aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJhbWVQcmltYXJ5RG9tYWluKSA6IGZhbHNlOwog
ICAgICAgICBwb3N0VGFza1JlcGx5KFtpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIp
OwpAQCAtNjQ3LDcgKzY0OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojppc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oY29uc3QgU3RyaW5nJiBoCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCBob3N0UmVkaXJl
Y3RlZEZyb21QcmltYXJ5RG9tYWluID0gaG9zdFJlZGlyZWN0ZWRGcm9tLmlzb2xhdGVkQ29weSgp
LCBob3N0UmVkaXJlY3RlZFRvUHJpbWFyeURvbWFpbiA9IGhvc3RSZWRpcmVjdGVkVG8uaXNvbGF0
ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIGhvc3RSZWRpcmVjdGVkRnJvbVByaW1h
cnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4oaG9zdFJlZGlyZWN0ZWRGcm9tKSwgaG9z
dFJlZGlyZWN0ZWRUb1ByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4oaG9zdFJl
ZGlyZWN0ZWRUbyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKCkgbXV0YWJsZSB7CiAgICAgICAgIGJvb2wgaXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
ID0gbV9tZW1vcnlTdG9yZSA/IG1fbWVtb3J5U3RvcmUtPmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbyhob3N0UmVkaXJlY3RlZEZyb21QcmltYXJ5RG9tYWluLCBob3N0UmVkaXJlY3RlZFRvUHJp
bWFyeURvbWFpbikgOiBmYWxzZTsKICAgICAgICAgcG9zdFRhc2tSZXBseShbaXNSZWdpc3RlcmVk
QXNSZWRpcmVjdGluZ1RvLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaXNSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKTsKQEAgLTY1OSw3ICs2NjEsNyBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBTdHJp
bmcmIHJlc291cgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCi0gICAg
cG9zdFRhc2soW3RoaXMsIHJlc291cmNlRG9tYWluID0gcmVzb3VyY2VEb21haW4uaXNvbGF0ZWRD
b3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkg
bXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIHJlc291cmNlRG9tYWluID0gaXNvbGF0ZWRQ
cmltYXJ5RG9tYWluKHJlc291cmNlRG9tYWluKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3Rv
cmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5jbGVhclByZXZhbGVudFJlc291cmNlKHJl
c291cmNlRG9tYWluKTsKICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CkBAIC02NzAsNyArNjcyLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGJvb2wKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHBy
aW1hcnlEb21haW4gPSBkb21haW4uaXNvbGF0ZWRDb3B5KCksIHZhbHVlLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIHBvc3RU
YXNrKFt0aGlzLCBwcmltYXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKGRvbWFpbiks
IHZhbHVlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgp
IG11dGFibGUgewogICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVt
b3J5U3RvcmUtPnNldEdyYW5kZmF0aGVyZWQocHJpbWFyeURvbWFpbiwgdmFsdWUpOwogICAgICAg
ICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTY4MSw3ICs2
ODMsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aXNHcmFuZGZhdGhl
cmVkKGNvbnN0IFN0cmluZyYgcHJpbWFyeURvbWFpbgogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKLSAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcHJpbWFyeURvbWFpbiA9IHByaW1hcnlEb21haW4uaXNv
bGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHByaW1hcnlEb21haW4gPSBpc29s
YXRlZFByaW1hcnlEb21haW4ocHJpbWFyeURvbWFpbildKCkgbXV0YWJsZSB7CiAgICAgICAgIGJv
b2wgaXNHcmFuZEZhdGhlcmVkID0gbV9tZW1vcnlTdG9yZSA/IG1fbWVtb3J5U3RvcmUtPmlzR3Jh
bmRmYXRoZXJlZChwcmltYXJ5RG9tYWluKSA6IGZhbHNlOwogICAgICAgICBwb3N0VGFza1JlcGx5
KFtpc0dyYW5kRmF0aGVyZWQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpc0dy
YW5kRmF0aGVyZWQpOwpAQCAtNjkzLDcgKzY5NSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3QgU3RyaW5n
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKLSAgICBwb3N0VGFzayhb
dGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcHJp
bWFyeVRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWUuaXNvbGF0ZWRDb3B5KCksIHByaW1hcnlTdWJG
cmFtZURvbWFpbiA9IHN1YmZyYW1lLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgIHBv
c3RUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBwcmltYXJ5VG9wRnJhbWVEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4odG9wRnJh
bWUpLCBwcmltYXJ5U3ViRnJhbWVEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4oc3ViZnJh
bWUpXSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAg
IG1fbWVtb3J5U3RvcmUtPnNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbihwcmltYXJ5U3Vi
RnJhbWVEb21haW4sIHByaW1hcnlUb3BGcmFtZURvbWFpbik7CiAgICAgICAgIHBvc3RUYXNrUmVw
bHkoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtNzA0LDcgKzcwNiw3IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW4oY29uc3QgU3RyCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICAKLSAgICBwb3N0VGFzayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgcHJpbWFyeVRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWUuaXNvbGF0ZWRD
b3B5KCksIHByaW1hcnlTdWJyZXNvdXJjZURvbWFpbiA9IHN1YnJlc291cmNlLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBwcmltYXJ5VG9wRnJhbWVEb21haW4gPSBpc29s
YXRlZFByaW1hcnlEb21haW4odG9wRnJhbWUpLCBwcmltYXJ5U3VicmVzb3VyY2VEb21haW4gPSBp
c29sYXRlZFByaW1hcnlEb21haW4oc3VicmVzb3VyY2UpXSgpIG11dGFibGUgewogICAgICAgICBp
ZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPnNldFN1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihwcmltYXJ5U3VicmVzb3VyY2VEb21haW4sIHByaW1hcnlU
b3BGcmFtZURvbWFpbik7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwpAQCAtNzE1LDcgKzcxNyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgU3RyaW5nCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKLSAgICBwb3N0VGFzayhbdGhp
cywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcHJpbWFy
eVJlZGlyZWN0RG9tYWluID0gaG9zdE5hbWVSZWRpcmVjdGVkVG8uaXNvbGF0ZWRDb3B5KCksIHBy
aW1hcnlTdWJyZXNvdXJjZURvbWFpbiA9IHN1YnJlc291cmNlLmlzb2xhdGVkQ29weSgpXSgpIG11
dGFibGUgeworICAgIHBvc3RUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpLCBwcmltYXJ5UmVkaXJlY3REb21haW4gPSBpc29sYXRlZFByaW1h
cnlEb21haW4oaG9zdE5hbWVSZWRpcmVjdGVkVG8pLCBwcmltYXJ5U3VicmVzb3VyY2VEb21haW4g
PSBpc29sYXRlZFByaW1hcnlEb21haW4oc3VicmVzb3VyY2UpXSgpIG11dGFibGUgewogICAgICAg
ICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPnNldFN1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhwcmltYXJ5U3VicmVzb3VyY2VEb21haW4sIHByaW1hcnlS
ZWRpcmVjdERvbWFpbik7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwpAQCAtNzI2LDcgKzcyOCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBTdHJpCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKLSAgICBwb3N0VGFzayhbdGhp
cywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcHJpbWFy
eVJlZGlyZWN0RG9tYWluID0gaG9zdE5hbWVSZWRpcmVjdGVkRnJvbS5pc29sYXRlZENvcHkoKSwg
cHJpbWFyeVN1YnJlc291cmNlRG9tYWluID0gc3VicmVzb3VyY2UuaXNvbGF0ZWRDb3B5KCldKCkg
bXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIHByaW1hcnlSZWRpcmVjdERvbWFpbiA9IGlzb2xhdGVkUHJp
bWFyeURvbWFpbihob3N0TmFtZVJlZGlyZWN0ZWRGcm9tKSwgcHJpbWFyeVN1YnJlc291cmNlRG9t
YWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHN1YnJlc291cmNlKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5zZXRT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShwcmltYXJ5U3VicmVzb3VyY2VEb21haW4sIHBy
aW1hcnlSZWRpcmVjdERvbWFpbik7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwpAQCAtNzM3LDcgKzczOSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgU3RyaW5n
JiB0CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKLSAgICBwb3N0VGFz
ayhbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
dG9wRnJhbWVQcmltYXJ5RG9tYWluID0gdG9wRnJhbWVIb3N0TmFtZS5pc29sYXRlZENvcHkoKSwg
cHJpbWFyeVJlZGlyZWN0RG9tYWluID0gaG9zdE5hbWVSZWRpcmVjdGVkVG8uaXNvbGF0ZWRDb3B5
KCldKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHRvcEZyYW1lUHJpbWFyeURvbWFpbiA9IGlzb2xh
dGVkUHJpbWFyeURvbWFpbih0b3BGcmFtZUhvc3ROYW1lKSwgcHJpbWFyeVJlZGlyZWN0RG9tYWlu
ID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKGhvc3ROYW1lUmVkaXJlY3RlZFRvKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3Jl
LT5zZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8odG9wRnJhbWVQcmltYXJ5RG9tYWluLCBwcmlt
YXJ5UmVkaXJlY3REb21haW4pOwogICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKQEAgLTc0OCw3ICs3NTAsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oY29uc3QgU3RyaW5n
JgogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgCi0gICAgcG9zdFRhc2so
W3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHRv
cEZyYW1lUHJpbWFyeURvbWFpbiA9IHRvcEZyYW1lSG9zdE5hbWUuaXNvbGF0ZWRDb3B5KCksIHBy
aW1hcnlSZWRpcmVjdERvbWFpbiA9IGhvc3ROYW1lUmVkaXJlY3RlZEZyb20uaXNvbGF0ZWRDb3B5
KCldKCkgbXV0YWJsZSB7CisgICAgcG9zdFRhc2soW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHRvcEZyYW1lUHJpbWFyeURvbWFpbiA9IGlzb2xh
dGVkUHJpbWFyeURvbWFpbih0b3BGcmFtZUhvc3ROYW1lKSwgcHJpbWFyeVJlZGlyZWN0RG9tYWlu
ID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKGhvc3ROYW1lUmVkaXJlY3RlZEZyb20pXSgpIG11dGFi
bGUgewogICAgICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3Rv
cmUtPnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHRvcEZyYW1lUHJpbWFyeURvbWFpbiwg
cHJpbWFyeVJlZGlyZWN0RG9tYWluKTsKICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDQyOWQxMzJiYjM1MjA4MGI0
NDMyM2IxN2QxNWJiMzQ5MjkzZmNiZDIuLjVjMDM1NTZkYzUxOTgyY2U2MzQ3Yjc2ZGQ0MTZlOWY3
YTNiMjgyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjU4LDcgKzE2NTgsNyBAQCB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBT
dHJpbmcmJiB0b3BGcmFtZQogICAgIH0KIAogICAgIGlmIChhdXRvIG5ldHdvcmtQcm9jZXNzID0g
d2ViUGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkubmV0d29ya1Byb2Nlc3MoKSkKLSAgICAg
ICAgbmV0d29ya1Byb2Nlc3MtPmhhc1N0b3JhZ2VBY2Nlc3MobV9zZXNzaW9uSUQsIFdURk1vdmUo
c3ViRnJhbWVIb3N0KSwgV1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBwYWdlSUQsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgbmV0d29ya1Byb2Nlc3MtPmhhc1N0
b3JhZ2VBY2Nlc3MobV9zZXNzaW9uSUQsIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6
OnByaW1hcnlEb21haW4oc3ViRnJhbWVIb3N0KSwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljczo6cHJpbWFyeURvbWFpbih0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBwYWdlSUQsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1l
SG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBib29sIHByb21wdEVuYWJs
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC0xNjc1LDcgKzE2NzUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5nJiYgdG9w
RgogICAgIH0KIAogICAgIGlmIChhdXRvIG5ldHdvcmtQcm9jZXNzID0gd2ViUGFnZS0+cHJvY2Vz
cygpLnByb2Nlc3NQb29sKCkubmV0d29ya1Byb2Nlc3MoKSkKLSAgICAgICAgbmV0d29ya1Byb2Nl
c3MtPnJlcXVlc3RTdG9yYWdlQWNjZXNzKG1fc2Vzc2lvbklELCBXVEZNb3ZlKHN1YkZyYW1lSG9z
dCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRFbmFibGVk
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5y
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhtX3Nlc3Npb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljczo6cHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpLCBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIHBhZ2VJ
RCwgcHJvbXB0RW5hYmxlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhv
c3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFn
ZUlELCBib29sIHVzZXJXYXNQcm9tcHRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE2OTIsNyArMTY5Miw3IEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyaW5n
JiYgdG9wRnJhCiAgICAgfQogCiAgICAgaWYgKGF1dG8gbmV0d29ya1Byb2Nlc3MgPSB3ZWJQYWdl
LT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5uZXR3b3JrUHJvY2VzcygpKQotICAgICAgICBuZXR3
b3JrUHJvY2Vzcy0+Z3JhbnRTdG9yYWdlQWNjZXNzKG1fc2Vzc2lvbklELCBXVEZNb3ZlKHN1YkZy
YW1lSG9zdCksIFdURk1vdmUodG9wRnJhbWVIb3N0KSwgZnJhbWVJRCwgcGFnZUlELCB1c2VyV2Fz
UHJvbXB0ZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgbmV0d29ya1By
b2Nlc3MtPmdyYW50U3RvcmFnZUFjY2VzcyhtX3Nlc3Npb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpLCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQs
IHBhZ2VJRCwgdXNlcldhc1Byb21wdGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihT
ZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggMjBhNWE1YTg4NmRiZTZhNzcyY2NlNjA4YTFiMjQxZGExM2JjNjZmNS4uNGYxYWQxYzBjZTg0
YWFhYWJlYzk3NTM0OGViOTc1ZTE1MmU5MGI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIwMCw2ICsyMDAsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUmVuZGVyVGhlbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRyZWVBc1RleHQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgpAQCAtNjM5MCwxMyArNjM5MSwxMyBAQCB2
b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZy
YW1lSWRlbnRpZmllciYmIHJlbW90ZQogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiB2b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0
LCBTdHJpbmcmJiB0b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVIb3N0KSwg
V1RGTW92ZSh0b3BGcmFtZUhvc3QpLCBmcmFtZUlELCBtX3BhZ2VJRCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6SGFzU3RvcmFnZUFjY2VzcyhzZXNz
aW9uSUQoKSwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihz
dWJGcmFtZUhvc3QpLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9t
YWluKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogICAgIAogdm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhT
dHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cmluZyYmIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBib29sIHByb21wdEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnN0b3JhZ2VBY2Nlc3NQcm9tcHRzRW5hYmxlZCgpOwotICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFt
ZUhvc3QpLCBXVEZNb3ZlKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1fcGFnZUlELCBwcm9tcHRF
bmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihzdWJGcmFtZUhvc3QpLCBXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHRvcEZyYW1lSG9zdCksIGZyYW1lSUQsIG1f
cGFnZUlELCBwcm9tcHRFbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
I2VuZGlmCiAgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>