<?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>219951</bug_id>
          
          <creation_ts>2020-12-16 10:06:50 -0800</creation_ts>
          <short_desc>[GPUProcess] https://www.waveplayer.info/createmediaelementsource-test/ demo is flaky</short_desc>
          <delta_ts>2021-01-13 16:25:23 -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>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>220609</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1715154</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-16 10:06:50 -0800</bug_when>
    <thetext>https://www.waveplayer.info/createmediaelementsource-test/ demo is flaky. Sometimes the page claims audio is playing but nothing can be heard on the speakers. Pausing / resuming the song seems to fix the issue. I suspect some kind of initialization race.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715607</commentid>
    <comment_count>1</comment_count>
      <attachid>416478</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-17 16:02:19 -0800</bug_when>
    <thetext>Created attachment 416478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715608</commentid>
    <comment_count>2</comment_count>
      <attachid>416479</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-17 16:08:38 -0800</bug_when>
    <thetext>Created attachment 416479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715618</commentid>
    <comment_count>3</comment_count>
      <attachid>416479</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-12-17 16:44:01 -0800</bug_when>
    <thetext>Comment on attachment 416479
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715619</commentid>
    <comment_count>4</comment_count>
      <attachid>416479</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-12-17 16:45:57 -0800</bug_when>
    <thetext>Comment on attachment 416479
Patch

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

&gt; Source/WebCore/ChangeLog:33
&gt; +        I also made the following changes to make the code simpler and to resume code

s/resume/reduce/

&gt; Source/WebCore/ChangeLog:38
&gt; +          storage changed and in all cases, it needs to provide this 2 parameters

s/this/these/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715621</commentid>
    <comment_count>5</comment_count>
      <attachid>416482</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-17 16:51:34 -0800</bug_when>
    <thetext>Created attachment 416482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715626</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-17 17:22:07 -0800</bug_when>
    <thetext>Committed r270961: &lt;https://trac.webkit.org/changeset/270961&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416482.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715627</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-17 17:23:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/72448152&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416478</attachid>
            <date>2020-12-17 16:02:19 -0800</date>
            <delta_ts>2020-12-17 16:17:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219951-20201217160218.patch</filename>
            <type>text/plain</type>
            <size>43519</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg0NGRlN2QzM2NjMTk3
OTc4NGM5OGY3MTY5MGExN2I3NTI0NDQ2My4uMDJlYTZjNGJjMGE2NmNmODRhZjcxMzM0ZDE2OTU4
NzUxYjJjZmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTEyLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVByb2Nlc3NdIGh0dHBz
Oi8vd3d3LndhdmVwbGF5ZXIuaW5mby9jcmVhdGVtZWRpYWVsZW1lbnRzb3VyY2UtdGVzdC8gZGVt
byBpcyBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGlzc3VlIHdhcyB3aXRoIHRoZSBmb2xsb3dpbmcgbGluZSBpbiBBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZToKKyAgICAgICAgYG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1
ZmZlckNhbGxiYWNrKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSkubW92ZVRvVW5pcXVlUHRyKCk7YAor
CisgICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIG1fcmluZ0J1ZmZlciB3YXMgbm9uLW51bGwgYmVm
b3JlIHRoZSBhc3NpZ25tZW50LCB3ZSB3b3VsZCBoYXZlCisgICAgICAgIDIgUmluZ0J1ZmZlcnMg
dGhhdCB3b3VsZCBjb2V4aXN0IGZvciBhIHZlcnkgc21hbGwgcGVyaW9kIG9mIHRpbWUuIFdoZW4g
dGhlIG5ldworICAgICAgICBvbmUgd2FzIGNyZWF0ZWQsIHdlIHdvdWxkIHNlbmQgYW4gSVBDIHRv
IHRoZSByZW1vdGUgcHJvY2VzcyB3aXRoIHRoZSBzaGFyZWQKKyAgICAgICAgbWVtb3J5IGhhbmRs
ZSBvZiB0aGUgbmV3IFJpbmdCdWZmZXIuIEhvd2V2ZXIsIHZlcnkgc2hvcnRseSBhZnRlciwgdGhl
IG9sZAorICAgICAgICByaW5nIGJ1ZmZlciB3b3VsZCBnZXQgZGVzdHJveWVkLCBjYXVzaW5nIHVz
IHRvIHNlbmQgYW5vdGhlciBJUEMgdG8gdGhlIHJlbW90ZQorICAgICAgICBwcm9jZXNzIHdpdGgg
YSBudWxsIGhhbmRsZSAoc2luY2UgdGhlIHNoYXJlZCBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIHRo
ZSBvbGQKKyAgICAgICAgcmluZyBidWZmZXIgaXMgZ2V0dGluZyBkZXN0cm95ZWQpLiBBcyBhIHJl
c3VsdCwgb2YgdGhpcyBvcmRlcmluZyBpc3N1ZSwgdGhlCisgICAgICAgIHJlbW90ZSBwcm9jZXNz
IHdvdWxkIGVuZCB1cCB3aXRoIGEgUmluZ0J1ZmZlciB3aXRoIGEgbnVsbCBzaGFyZWQgbWVtb3J5
IGhhbmRsZQorICAgICAgICBhbmQgbm8gYXVkaW8gd291bGQgYmUgcmVuZGVyZWQuCisKKyAgICAg
ICAgV2UgY291bGQgaGF2ZSBhZGRyZXNzZWQgdGhlIGlzc3VlIGxpa2Ugc286CisgICAgICAgIGBg
YAorICAgICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOworICAgICAgICBtX3JpbmdCdWZmZXIg
PSBtX3JpbmdCdWZmZXJDYWxsYmFjayhkZXNjcmlwdGlvbiwgY2FwYWNpdHkpLm1vdmVUb1VuaXF1
ZVB0cigpOworICAgICAgICBgYGAKKyAgICAgICAgSG93ZXZlciwgdGhpcyB3b3VsZCBiZSBzdXBl
ciBmcmFnaWxlLiBJbnN0ZWFkLCBJIGhhdmUgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6Cisg
ICAgICAgIDEuIElmIHRoZXJlIGlzIGFscmVhZHkgYSByaW5nQnVmZmVyLCByZXVzZSBpdCBpbnN0
ZWFkIG9mIHJlY29uc3RydWN0aW5nIGl0LgorICAgICAgICAgICBDYWxsaW5nIGFsbG9jYXRlKCkg
d2l0aCB0aGUgbmV3IHBhcmFtZXRlcnMgb24gdGhlIGV4aXN0aW5nIHJpbmcgYnVmZmVyIGlzCisg
ICAgICAgICAgIHN1ZmZpY2llbnQgaW4gdGhpcyBjYXNlLgorICAgICAgICAyLiBCZWNhdXNlIG9m
IDEsIHRoZSByaW5nIGJ1ZmZlciBjcmVhdGlvbiBjYWxsYmFjayBubyBsb25nZXIgbmVlZHMgdG8g
Y2FsbAorICAgICAgICAgICBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKCkuCisKKyAgICAgICAgSSBh
bHNvIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIG1ha2UgdGhlIGNvZGUgc2ltcGxlciBh
bmQgdG8gcmVzdW1lIGNvZGUKKyAgICAgICAgZHVwbGljYXRpb246CisgICAgICAgIC0gVGhlIHN0
b3JhZ2UgY2hhbmdlIGhhbmRsZXIgcGFzc2VkIHRvIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlIGlz
IG5vdyBnaXZlbgorICAgICAgICAgIGFzIHBhcmFtZXRlciB0aGUgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uICYgZnJhbWVDb3VudC4gV2hhdCB0aGUgaGFuZGxlcgorICAgICAgICAgIGFsd2F5cyBk
b2VzIGlzIHNlbmQgYW4gSVBDIHRvIHRoZSByZW1vdGUgcHJvY2VzcyB0byB0ZWxsIGl0IHRoYXQg
dGhlCisgICAgICAgICAgc3RvcmFnZSBjaGFuZ2VkIGFuZCBpbiBhbGwgY2FzZXMsIGl0IG5lZWRz
IHRvIHByb3ZpZGUgdGhpcyAyIHBhcmFtZXRlcnMKKyAgICAgICAgICBhcyB3ZWxsLiBUaGlzIGlz
IGJlY2F1c2UgdGhlIHJlbW90ZSBwcm9jZXNzIHdpbGwgbmVlZCB0byBjYWxsCisgICAgICAgICAg
Q0FSaW5nQnVmZmVyOjphbGxvY2F0ZSgpLCB3aGljaCByZXF1aXJlcyB0aG9zZSAyIHBhcmFtZXRl
cnMuIFRoaXMKKyAgICAgICAgICBzaW1wbGlmaWVzIG91ciBjb2RlIGluIHNvbWUgY2FzZXMgc2lu
Y2Ugd2Ugbm8gbG9uZ2VyIG5lZWQgYSBtZWNoYW5pc20KKyAgICAgICAgICB0byByZXRyaWV2ZSB0
aG9zZSAyIHBhcmFtZXRlcnMgZnJvbSBpbnNpZGUgdGhlIHN0b3JhZ2UgY2hhbmdlIGhhbmRsZXIu
CisgICAgICAgIC0gVGhlIGxvZ2ljIG9mIHRoZSBTdG9yYWdlQ2hhbmdlIElQQyByZWNpcGllbnQg
dG8gdXBkYXRlIGl0cyByaW5nYnVmZmVyCisgICAgICAgICAgd2l0aCB0aGUgbmV3IHNoYXJlZCBt
ZW1vcnkgaGFuZGxlIGlzIGNvbXBsaWNhdGVkIGFuZCB3YXMgZHVwbGljYXRlZAorICAgICAgICAg
IGluIGEgTE9UIG9mIHBsYWNlcy4gVG8gYWRkcmVzcyB0aGlzLCBJIGludHJvZHVjZWQgYSBuZXcK
KyAgICAgICAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlUmVhZE9ubHlTdG9yYWdl
KCkgZnVuY3Rpb24gd2hpY2ggZG9lcworICAgICAgICAgIGV4YWN0bHkgd2hhdCB3ZSBuZWVkLgor
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6YWxsb2NhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6c2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2spOgorCiAyMDIwLTEyLTE3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1ZGlvXSBT
aW1wbGlmeSBjb2RlIHJlbGF0ZWQgdG8gZGlzcGF0Y2hUb1JlbmRlclRocmVhZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA3MDk0ZmZhMDMxZTUzZDVjZDMwOTJlNTUxOWQ0ODk5OTY2ODQ3Nzc1Li5hZDk2Y2M5YWE1NmZl
MWE4OGNkNTMwZjFlNDc5ZGRlNmViZWFlMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisy
MDIwLTEyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQ
VVByb2Nlc3NdIGh0dHBzOi8vd3d3LndhdmVwbGF5ZXIuaW5mby9jcmVhdGVtZWRpYWVsZW1lbnRz
b3VyY2UtdGVzdC8gZGVtbyBpcyBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGlzc3VlIHdhcyB3aXRoIHRoZSBmb2xsb3dpbmcgbGluZSBp
biBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZToKKyAgICAgICAgYG1fcmluZ0J1
ZmZlciA9IG1fcmluZ0J1ZmZlckNhbGxiYWNrKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSkubW92ZVRv
VW5pcXVlUHRyKCk7YAorCisgICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIG1fcmluZ0J1ZmZlciB3
YXMgbm9uLW51bGwgYmVmb3JlIHRoZSBhc3NpZ25tZW50LCB3ZSB3b3VsZCBoYXZlCisgICAgICAg
IDIgUmluZ0J1ZmZlcnMgdGhhdCB3b3VsZCBjb2V4aXN0IGZvciBhIHZlcnkgc21hbGwgcGVyaW9k
IG9mIHRpbWUuIFdoZW4gdGhlIG5ldworICAgICAgICBvbmUgd2FzIGNyZWF0ZWQsIHdlIHdvdWxk
IHNlbmQgYW4gSVBDIHRvIHRoZSByZW1vdGUgcHJvY2VzcyB3aXRoIHRoZSBzaGFyZWQKKyAgICAg
ICAgbWVtb3J5IGhhbmRsZSBvZiB0aGUgbmV3IFJpbmdCdWZmZXIuIEhvd2V2ZXIsIHZlcnkgc2hv
cnRseSBhZnRlciwgdGhlIG9sZAorICAgICAgICByaW5nIGJ1ZmZlciB3b3VsZCBnZXQgZGVzdHJv
eWVkLCBjYXVzaW5nIHVzIHRvIHNlbmQgYW5vdGhlciBJUEMgdG8gdGhlIHJlbW90ZQorICAgICAg
ICBwcm9jZXNzIHdpdGggYSBudWxsIGhhbmRsZSAoc2luY2UgdGhlIHNoYXJlZCBtZW1vcnkgYXNz
b2NpYXRlZCB3aXRoIHRoZSBvbGQKKyAgICAgICAgcmluZyBidWZmZXIgaXMgZ2V0dGluZyBkZXN0
cm95ZWQpLiBBcyBhIHJlc3VsdCwgb2YgdGhpcyBvcmRlcmluZyBpc3N1ZSwgdGhlCisgICAgICAg
IHJlbW90ZSBwcm9jZXNzIHdvdWxkIGVuZCB1cCB3aXRoIGEgUmluZ0J1ZmZlciB3aXRoIGEgbnVs
bCBzaGFyZWQgbWVtb3J5IGhhbmRsZQorICAgICAgICBhbmQgbm8gYXVkaW8gd291bGQgYmUgcmVu
ZGVyZWQuCisKKyAgICAgICAgV2UgY291bGQgaGF2ZSBhZGRyZXNzZWQgdGhlIGlzc3VlIGxpa2Ug
c286CisgICAgICAgIGBgYAorICAgICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOworICAgICAg
ICBtX3JpbmdCdWZmZXIgPSBtX3JpbmdCdWZmZXJDYWxsYmFjayhkZXNjcmlwdGlvbiwgY2FwYWNp
dHkpLm1vdmVUb1VuaXF1ZVB0cigpOworICAgICAgICBgYGAKKyAgICAgICAgSG93ZXZlciwgdGhp
cyB3b3VsZCBiZSBzdXBlciBmcmFnaWxlLiBJbnN0ZWFkLCBJIGhhdmUgbWFkZSB0aGUgZm9sbG93
aW5nIGNoYW5nZXM6CisgICAgICAgIDEuIElmIHRoZXJlIGlzIGFscmVhZHkgYSByaW5nQnVmZmVy
LCByZXVzZSBpdCBpbnN0ZWFkIG9mIHJlY29uc3RydWN0aW5nIGl0LgorICAgICAgICAgICBDYWxs
aW5nIGFsbG9jYXRlKCkgd2l0aCB0aGUgbmV3IHBhcmFtZXRlcnMgb24gdGhlIGV4aXN0aW5nIHJp
bmcgYnVmZmVyIGlzCisgICAgICAgICAgIHN1ZmZpY2llbnQgaW4gdGhpcyBjYXNlLgorICAgICAg
ICAyLiBCZWNhdXNlIG9mIDEsIHRoZSByaW5nIGJ1ZmZlciBjcmVhdGlvbiBjYWxsYmFjayBubyBs
b25nZXIgbmVlZHMgdG8gY2FsbAorICAgICAgICAgICBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKCku
CisKKyAgICAgICAgSSBhbHNvIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIG1ha2UgdGhl
IGNvZGUgc2ltcGxlciBhbmQgdG8gcmVzdW1lIGNvZGUKKyAgICAgICAgZHVwbGljYXRpb246Cisg
ICAgICAgIC0gVGhlIHN0b3JhZ2UgY2hhbmdlIGhhbmRsZXIgcGFzc2VkIHRvIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlIGlzIG5vdyBnaXZlbgorICAgICAgICAgIGFzIHBhcmFtZXRlciB0aGUgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uICYgZnJhbWVDb3VudC4gV2hhdCB0aGUgaGFuZGxlcgorICAg
ICAgICAgIGFsd2F5cyBkb2VzIGlzIHNlbmQgYW4gSVBDIHRvIHRoZSByZW1vdGUgcHJvY2VzcyB0
byB0ZWxsIGl0IHRoYXQgdGhlCisgICAgICAgICAgc3RvcmFnZSBjaGFuZ2VkIGFuZCBpbiBhbGwg
Y2FzZXMsIGl0IG5lZWRzIHRvIHByb3ZpZGUgdGhpcyAyIHBhcmFtZXRlcnMKKyAgICAgICAgICBh
cyB3ZWxsLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJlbW90ZSBwcm9jZXNzIHdpbGwgbmVlZCB0byBj
YWxsCisgICAgICAgICAgQ0FSaW5nQnVmZmVyOjphbGxvY2F0ZSgpLCB3aGljaCByZXF1aXJlcyB0
aG9zZSAyIHBhcmFtZXRlcnMuIFRoaXMKKyAgICAgICAgICBzaW1wbGlmaWVzIG91ciBjb2RlIGlu
IHNvbWUgY2FzZXMgc2luY2Ugd2Ugbm8gbG9uZ2VyIG5lZWQgYSBtZWNoYW5pc20KKyAgICAgICAg
ICB0byByZXRyaWV2ZSB0aG9zZSAyIHBhcmFtZXRlcnMgZnJvbSBpbnNpZGUgdGhlIHN0b3JhZ2Ug
Y2hhbmdlIGhhbmRsZXIuCisgICAgICAgIC0gVGhlIGxvZ2ljIG9mIHRoZSBTdG9yYWdlQ2hhbmdl
IElQQyByZWNpcGllbnQgdG8gdXBkYXRlIGl0cyByaW5nYnVmZmVyCisgICAgICAgICAgd2l0aCB0
aGUgbmV3IHNoYXJlZCBtZW1vcnkgaGFuZGxlIGlzIGNvbXBsaWNhdGVkIGFuZCB3YXMgZHVwbGlj
YXRlZAorICAgICAgICAgIGluIGEgTE9UIG9mIHBsYWNlcy4gVG8gYWRkcmVzcyB0aGlzLCBJIGlu
dHJvZHVjZWQgYSBuZXcKKyAgICAgICAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRl
UmVhZE9ubHlTdG9yYWdlKCkgZnVuY3Rpb24gd2hpY2ggZG9lcworICAgICAgICAgIGV4YWN0bHkg
d2hhdCB3ZSBuZWVkLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb246OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGVSaW5nQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpzdG9yYWdl
Q2hhbmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFu
Z2VkKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2V0U3RvcmFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjp1cGRhdGVSZWFkT25s
eVN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxs
b2NhdGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxv
Y2F0ZSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmg6
CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpz
dG9yYWdlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzdG9yYWdlQ2hhbmdlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3JhZ2VD
aGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0
b3JhZ2UpOgorCiAyMDIwLTEyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3MDkzOC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuY3BwCmluZGV4
IGMyYTVmZTc5NTk3Yjc1YTc3MmJiYWM1ZTkxMDBjM2Y1NDg5Zjc4MDYuLjQ1NmVlZTMxY2Y5ZTQ1
NTc0YzdhNjNjNzE5ZjAzMjg5YmFhNGNjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2
b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBmb3JtYXQsIHNpemVfdCBmcmFtZQogICAgIG1fZnJhbWVDb3VudE1hc2sgPSBmcmFtZUNvdW50
IC0gMTsKICAgICBtX2NhcGFjaXR5Qnl0ZXMgPSBtX2J5dGVzUGVyRnJhbWUgKiBmcmFtZUNvdW50
OwogCi0gICAgbV9idWZmZXJzLT5hbGxvY2F0ZShtX2NhcGFjaXR5Qnl0ZXMgKiBtX2NoYW5uZWxD
b3VudCk7CisgICAgbV9idWZmZXJzLT5hbGxvY2F0ZShtX2NhcGFjaXR5Qnl0ZXMgKiBtX2NoYW5u
ZWxDb3VudCwgZm9ybWF0LCBmcmFtZUNvdW50KTsKIAogICAgIG1fcG9pbnRlcnMucmVzaXplKG1f
Y2hhbm5lbENvdW50KTsKICAgICBCeXRlKiBjaGFubmVsRGF0YSA9IHN0YXRpY19jYXN0PEJ5dGUq
PihtX2J1ZmZlcnMtPmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5oCmluZGV4IDg4NzJhNzRmYzQ3MGNiYjQ3YjBmNjdlZGVj
Y2ZkYTMyNWY3Y2Y0NTIuLmZiMDM0NmQ5OTMyYTc2OTA0ZDZiYTZiMDcxNWNmZjNkZTQyZjc3MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1
ZmZlci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIENBUmluZ0J1ZmZlclN0b3JhZ2UgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHZpcnR1YWwgfkNBUmluZ0J1
ZmZlclN0b3JhZ2UoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGFsbG9jYXRlKHNpemVf
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZShzaXplX3QsIGNvbnN0IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkZWFsbG9jYXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCogZGF0YSgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90JiBzdGFy
dFRpbWUsIHVpbnQ2NF90JiBlbmRUaW1lKSA9IDA7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICB+Q0FSaW5nQnVmZmVyU3RvcmFnZVZlY3RvcigpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIGFsbG9jYXRlKHNpemVfdCBieXRlQ291bnQpIGZpbmFsIHsgbV9idWZmZXIuZ3Jv
dyhieXRlQ291bnQpOyB9CisgICAgdm9pZCBhbGxvY2F0ZShzaXplX3QgYnl0ZUNvdW50LCBjb25z
dCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsIHsgbV9idWZmZXIuZ3Jv
dyhieXRlQ291bnQpOyB9CiAgICAgdm9pZCBkZWFsbG9jYXRlKCkgZmluYWwgeyBtX2J1ZmZlci5j
bGVhcigpOyB9CiAgICAgdm9pZCogZGF0YSgpIGZpbmFsIHsgcmV0dXJuIG1fYnVmZmVyLmRhdGEo
KTsgfQogICAgIHZvaWQgZ2V0Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90JiBzdGFydFRpbWUs
IHVpbnQ2NF90JiBlbmRUaW1lKSBmaW5hbDsKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAg
ICAgICBUb29NdWNoLCAvLyBmZXRjaCBzdGFydCB0aW1lIGlzIGVhcmxpZXIgdGhhbiBidWZmZXIg
c3RhcnQgdGltZSBhbmQgZmV0Y2ggZW5kIHRpbWUgaXMgbGF0ZXIgdGhhbiBidWZmZXIgZW5kIHRp
bWUKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxvY2F0ZShjb25zdCBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
YWxsb2NhdGUoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IGZyYW1lQ291
bnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVhbGxvY2F0ZSgpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgRXJyb3Igc3RvcmUoY29uc3QgQXVkaW9CdWZmZXJMaXN0Kiwgc2l6ZV90IGZyYW1l
Q291bnQsIHVpbnQ2NF90IHN0YXJ0RnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaAppbmRleCA0NmUxY2YzMzYyNjE3YTAwNDA3NDg5NjYyZGYx
NDZhMTcwODhkYTVhLi41MWVhMWNlOTI0OTUyYTIxMTAxMzU1YjcxNDFlNDU3ODg1ZDBjYzA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAt
NjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBBdWRpb0NhbGxiYWNrID0gRnVuY3Rp
b248dm9pZCh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk+Owog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9DYWxsYmFjayhBdWRpb0NhbGxiYWNrJiYp
OwotICAgIHVzaW5nIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248VW5pcXVl
UmVmPENBUmluZ0J1ZmZlcj4oY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KT47CisgICAgdXNpbmcgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjxVbmlx
dWVSZWY8Q0FSaW5nQnVmZmVyPigpPjsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJpbmdC
dWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrJiYpOwogCiBw
cml2YXRlOgpAQCAtMTExLDcgKzExMSw3IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgVGFwU3RvcmFn
ZTsKICAgICBSZWZQdHI8VGFwU3RvcmFnZT4gbV90YXBTdG9yYWdlOwogICAgIEF1ZGlvQ2FsbGJh
Y2sgbV9hdWRpb0NhbGxiYWNrOwotICAgIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmlu
Z0J1ZmZlckNhbGxiYWNrOworICAgIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmluZ0J1
ZmZlckNyZWF0aW9uQ2FsbGJhY2s7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggMDgzNDAxNTMwNjAwMTlmMWNhYmFjZTAw
YTMyMjI4MjE1ZjgwMjcxZi4uNmZmNjhlYWZmNGM5OGZkNzYxM2FiMjQ1ZTAyNWM5ZjNlODk2YzI1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bQpAQCAtODAsNiArODAsNyBAQCBSZWZQdHI8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoQVZQbGF5ZXJJdAogCiBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoQVZQbGF5ZXJJdGVt
ICppdGVtKQogICAgIDogbV9hdlBsYXllckl0ZW0oaXRlbSkKKyAgICAsIG1fcmluZ0J1ZmZlckNy
ZWF0aW9uQ2FsbGJhY2soW10geyByZXR1cm4gbWFrZVVuaXF1ZVJlZjxDQVJpbmdCdWZmZXI+KCk7
IH0pCiB7CiB9CiAKQEAgLTMzOCwxMiArMzM5LDkgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEK
ICAgICBzaXplX3QgY2FwYWNpdHkgPSBzdGQ6Om1heChzdGF0aWNfY2FzdDxzaXplX3Q+KDIgKiBt
YXhGcmFtZXMpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGtSaW5nQnVmZmVyRHVyYXRpb24gKiBzYW1w
bGVSYXRlKSk7CiAKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24geyAq
cHJvY2Vzc2luZ0Zvcm1hdCB9OwotICAgIGlmIChtX3JpbmdCdWZmZXJDYWxsYmFjaykKLSAgICAg
ICAgbV9yaW5nQnVmZmVyID0gbV9yaW5nQnVmZmVyQ2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFj
aXR5KS5tb3ZlVG9VbmlxdWVQdHIoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgbV9yaW5nQnVmZmVy
ID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCk7Ci0gICAgICAgIG1fcmluZ0J1ZmZlci0+YWxs
b2NhdGUoZGVzY3JpcHRpb24sIGNhcGFjaXR5KTsKLSAgICB9CisgICAgaWYgKCFtX3JpbmdCdWZm
ZXIpCisgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2so
KS5tb3ZlVG9VbmlxdWVQdHIoKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0
aW9uLCBjYXBhY2l0eSk7CiAKICAgICAvLyBBdWRpb0J1ZmZlckxpc3QgaXMgYSB2YXJpYWJsZS1s
ZW5ndGggc3RydWN0LCBzbyBjcmVhdGUgb24gdGhlIGhlYXAgd2l0aCBhIGdlbmVyaWMgbmV3KCkg
b3BlcmF0b3IKICAgICAvLyB3aXRoIGEgY3VzdG9tIHNpemUsIGFuZCBpbml0aWFsaXplIHRoZSBz
dHJ1Y3QgbWFudWFsbHkuCkBAIC00MzgsNyArNDM2LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6c2V0QXVkaW9DYWxsYmFjayhBdWRpb0NhbGxiYWNrJiYgY2FsbGJhY2spCiB2
b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxs
YmFjayhSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIEFTU0VS
VCghbV9hdkF1ZGlvTWl4KTsKLSAgICBtX3JpbmdCdWZmZXJDYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spOworICAgIG1fcmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggMjI4NWEw
OTE5N2M3NmVjMDlkZjNlMDU5ZGRiMTVkYjBmZGEwYTU2YS4uN2MwMGNhY2JlNTFiZjM2N2EyN2Iy
MWIyZWZlOGU4MjU4Mjg4ZDJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBA
IC03MiwxOSArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGF1ZGlvU2FtcGxlc1N0b3JhZ2VD
aGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKQogICAgIHsKLSAgICAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9u
OwotCi0gICAgICAgIGlmIChpcGNIYW5kbGUuaGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAg
ICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKLSAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRS
ZWFkT25seShmYWxzZSk7Ci0gICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRy
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8gbWVtb3J5
ID0gU2hhcmVkTWVtb3J5OjptYXAoaXBjSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUo
bWVtb3J5KSk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKLSAgICAgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
ICAgICBzdG9yYWdlKCkudXBkYXRlUmVhZE9ubHlTdG9yYWdlKG1fcmluZ0J1ZmZlci5nZXQoKSwg
aXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAgICB9CiAj
ZW5kaWYKIApAQCAtMTY0LDcgKzE1Miw2IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvciBtX2F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3I7CiAKLSAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlw
dGlvbjsKICAgICBVbmlxdWVSZWY8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7
CiAgICAgTWFjaFNlbWFwaG9yZSBtX3JlbmRlclNlbWFwaG9yZTsKICAgICB1aW50NjRfdCBtX3N0
YXJ0RnJhbWUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwCmluZGV4IDRi
M2UxOWVjNWY5ZDQ0NjgyZDI1M2NhNGIwY2Q1MmJiZDE3N2I2YzMuLjVlNmE4YWEzMmVkMzQwODAy
ZGY5YzBiYzBjOGFiMWUxZjJjMmIyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHku
Y3BwCkBAIC0zNyw4ICszNyw4IEBAIFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk+
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6Y3JlYXRlKFdlYkNvCiB7CiAgICAgYXV0
byByZW1vdGVQcm92aWRlciA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5KGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIAotICAgIGxvY2FsUHJv
dmlkZXIuc2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soW3JlbW90ZVByb3ZpZGVyXShhdXRv
IGRlc2NyaXB0aW9uLCBhdXRvIGNhcGFjaXR5KSB7Ci0gICAgICAgIHJldHVybiByZW1vdGVQcm92
aWRlci0+Y3JlYXRlUmluZ0J1ZmZlcihkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOworICAgIGxvY2Fs
UHJvdmlkZXIuc2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soW3JlbW90ZVByb3ZpZGVyXSgp
IHsKKyAgICAgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVyLT5jcmVhdGVSaW5nQnVmZmVyKCk7CiAg
ICAgfSk7CiAgICAgbG9jYWxQcm92aWRlci5zZXRBdWRpb0NhbGxiYWNrKFtyZW1vdGVQcm92aWRl
cl0oYXV0byBzdGFydEZyYW1lLCBhdXRvIG51bWJlck9mRnJhbWVzKSB7CiAgICAgICAgIHJlbW90
ZVByb3ZpZGVyLT5uZXdBdWRpb1NhbXBsZXMoc3RhcnRGcmFtZSwgbnVtYmVyT2ZGcmFtZXMpOwpA
QCAtNTUsMTUgKzU1LDExIEBAIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6UmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KFdlYkNvcmU6Ok1lZGlhUGxhCiAKIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eTo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSgpID0g
ZGVmYXVsdDsKIAotVW5pcXVlUmVmPENBUmluZ0J1ZmZlcj4gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5OjpjcmVhdGVSaW5nQnVmZmVyKGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIHNpemVfdCBjYXBhY2l0eSkKK1VuaXF1ZVJlZjxDQVJpbmdCdWZmZXI+
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6Y3JlYXRlUmluZ0J1ZmZlcigpCiB7Ci0g
ICAgbV9yaW5nQnVmZmVyRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKLSAgICBtX3JpbmdCdWZm
ZXJDYXBhY2l0eSA9IGNhcGFjaXR5OwotICAgIGF1dG8gcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWVS
ZWY8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShTaGFyZWRNZW1vcnkqIG1lbW9yeSkgbXV0
YWJsZSB7Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPnN0b3JhZ2VDaGFuZ2VkKG1lbW9yeSk7Cisg
ICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlPihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShTaGFy
ZWRNZW1vcnkqIG1lbW9yeSwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQs
IHNpemVfdCBmcmFtZUNvdW50KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3Rv
cmFnZUNoYW5nZWQobWVtb3J5LCBmb3JtYXQsIGZyYW1lQ291bnQpOwogICAgIH0pKTsKLSAgICBy
aW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOwotICAgIHJldHVybiBy
aW5nQnVmZmVyOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6bmV3
QXVkaW9TYW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
KQpAQCAtNzEsNyArNjcsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
bmV3QXVkaW9TYW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NAogICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OkF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IG1faWRlbnRpZmllciwgc3RhcnRGcmFtZSwgbnVtYmVyT2ZG
cmFtZXMgfSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Ojpz
dG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSkKK3ZvaWQgUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlclByb3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSwgY29u
c3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KQog
ewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAobWVtb3J5KQpAQCAt
ODMsNyArNzksNyBAQCB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6c3RvcmFn
ZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBtZW1vcnkpCiAjZWxzZQogICAgIHVpbnQ2NF90IGRhdGFT
aXplID0gMDsKICNlbmRpZgotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQgeyBtX2lkZW50
aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNp
emUgfSwgbV9yaW5nQnVmZmVyRGVzY3JpcHRpb24sIG1fcmluZ0J1ZmZlckNhcGFjaXR5IH0sIDAp
OworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQgeyBtX2lkZW50aWZpZXIsIFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgZm9ybWF0LCBm
cmFtZUNvdW50IH0sIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyUHJveHkuaAppbmRleCAwNDcxMDFmN2JlMjg3NDJkZjU5NmYyYmZjNDI1YzgxNGFh
MDliMTA0Li5hYzhkNjNkNDllZGVhMjEzNTFmYzg5OTY0ZTM3YTQ5NTk2NGYzZGU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oCkBAIC00NywyMiArNDcsMTkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5PiBjcmVhdGUoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3Jl
OjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyYpOwogICAgIH5SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyUHJveHkoKTsKIAotICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IGNy
ZWF0ZVJpbmdCdWZmZXIoY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KTsKKyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBjcmVhdGVSaW5n
QnVmZmVyKCk7CiAgICAgdm9pZCBuZXdBdWRpb1NhbXBsZXModWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYpOwogCi0gICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKyAg
ICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKICAgICAv
LyBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50CiAgICAgdm9pZCBzZXRGb3JtYXQoc2l6ZV90IG51
bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIGZpbmFsIHsgfQogCiAgICAgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0KLSAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24gbV9yaW5nQnVmZmVyRGVzY3JpcHRpb247Ci0gICAgc2l6ZV90IG1fcmluZ0J1ZmZlckNh
cGFjaXR5IHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCmluZGV4IGVjNjZkZGE5MmE0ZGQ5Yzk5MjEx
M2U0ZWJkNGM3ODYzN2UzNGYyNjYuLjY0YjA5MTRlMTg0MTE2Mjg5NzlmNDJmYmMzYjc0YmU0MzFi
YTVlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCkBA
IC0xMDUsMTggKzEwNSw3IEBAIHZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlCiAgICAgTUVTU0FHRV9D
SEVDSyhXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVzY3JpcHRpb24oZGVzY3JpcHRp
b24sIG51bWJlck9mRnJhbWVzKSk7CiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwog
Ci0gICAgaWYgKGlwY0hhbmRsZS5oYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9yaW5nQnVm
ZmVyLT5kZWFsbG9jYXRlKCk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7
Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChpcGNIYW5kbGUu
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBzdG9yYWdl
KCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOwotICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25s
eSh0cnVlKTsKLQotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICBzdG9yYWdlKCkudXBkYXRlUmVhZE9ubHlTdG9yYWdlKG1fcmluZ0J1
ZmZlci5nZXQoKSwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKIAogICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxp
c3Q+KG1fZGVzY3JpcHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggMWZiMWNhMjJlZjRkYjIy
NmZhMzRjMWEzZDE1MjNjNzJmZjhkZDJlZS4uNTNmZDRiNGFlZjg4NWRjZTFhMGUyMTRhNDE1ZTgy
Y2U1MDU0OWRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCkBAIC03NCwxOCArNzQsNyBAQCB2b2lkIFJlbW90
ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZAogCiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwogCi0gICAg
aWYgKGlwY0hhbmRsZS5oYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9yaW5nQnVmZmVyLT5k
ZWFsbG9jYXRlKCk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAg
ICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChpcGNIYW5kbGUuaGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBzdG9yYWdlKCkuc2V0
U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOwotICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVl
KTsKLQotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworICAgIHN0b3JhZ2UoKS51cGRhdGVSZWFkT25seVN0b3JhZ2UoKm1fcmluZ0J1ZmZl
ciwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAgICBt
X2F1ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX2Rlc2Ny
aXB0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwCmluZGV4IGQ3ZTMxNDNjOTg4MTRiOWEzMjExNWI5ODg5
NzgxOWVkOTdlZmFhMTEuLmQ1MDcyZTU0ZThmM2JmODU3NTI3YWZmMzUxNjUzYTZhOGVlY2JiNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZS5jcHAKQEAgLTI4LDM1ICsyOCw0NiBAQAogCiAjaWYgVVNFKE1FRElBVE9PTEJP
WCkKIAorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi12b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRTdG9yYWdlKFJlZlB0cjxT
aGFyZWRNZW1vcnk+JiYgc3RvcmFnZSkKK3ZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNl
dFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiBzdG9yYWdlLCBjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCiB7CiAgICAgQVNTRVJU
KHN0b3JhZ2UgfHwgIW1fcmVhZE9ubHkpOwogICAgIG1fc3RvcmFnZSA9IFdURk1vdmUoc3RvcmFn
ZSk7CiAgICAgaWYgKG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyKQotICAgICAgICBtX3N0b3JhZ2VD
aGFuZ2VkSGFuZGxlcihtX3N0b3JhZ2UuZ2V0KCkpOworICAgICAgICBtX3N0b3JhZ2VDaGFuZ2Vk
SGFuZGxlcihtX3N0b3JhZ2UuZ2V0KCksIGZvcm1hdCwgZnJhbWVDb3VudCk7CiB9CiAKLXZvaWQg
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNldFJlYWRPbmx5KGJvb2wgcmVhZE9ubHkpCit2b2lk
IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjp1cGRhdGVSZWFkT25seVN0b3JhZ2UoV2ViQ29yZTo6
Q0FSaW5nQnVmZmVyJiByaW5nQnVmZmVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFu
ZGxlLCBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1l
Q291bnQpCiB7Ci0gICAgQVNTRVJUKG1fc3RvcmFnZSB8fCAhcmVhZE9ubHkpOwotICAgIG1fcmVh
ZE9ubHkgPSByZWFkT25seTsKKyAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIHJp
bmdCdWZmZXIuZGVhbGxvY2F0ZSgpOworICAgICAgICBtX3JlYWRPbmx5ID0gZmFsc2U7CisgICAg
ICAgIG1fc3RvcmFnZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBh
dXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CisgICAgbV9zdG9yYWdlID0gV1RGTW92ZShtZW1vcnkpOworICAg
IG1fcmVhZE9ubHkgPSB0cnVlOworICAgIHJpbmdCdWZmZXIuYWxsb2NhdGUoZm9ybWF0LCBmcmFt
ZUNvdW50KTsKIH0KIAotdm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxsb2NhdGUoc2l6
ZV90IGJ5dGVDb3VudCkKK3ZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmFsbG9jYXRlKHNp
emVfdCBieXRlQ291bnQsIGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBz
aXplX3QgZnJhbWVDb3VudCkKIHsKICAgICBpZiAoIW1fcmVhZE9ubHkpIHsKICAgICAgICAgYXV0
byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKGJ5dGVDb3VudCArIHNpemVv
ZihGcmFtZUJvdW5kcykpOwogICAgICAgICBuZXcgKE5vdE51bGwsIHNoYXJlZE1lbW9yeS0+ZGF0
YSgpKSBGcmFtZUJvdW5kczsKLSAgICAgICAgc2V0U3RvcmFnZShXVEZNb3ZlKHNoYXJlZE1lbW9y
eSkpOworICAgICAgICBzZXRTdG9yYWdlKFdURk1vdmUoc2hhcmVkTWVtb3J5KSwgZm9ybWF0LCBm
cmFtZUNvdW50KTsKICAgICB9CiB9CiAKIHZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmRl
YWxsb2NhdGUoKQogewogICAgIGlmICghbV9yZWFkT25seSkKLSAgICAgICAgc2V0U3RvcmFnZShu
dWxscHRyKTsKKyAgICAgICAgc2V0U3RvcmFnZShudWxscHRyLCB7IH0sIDApOwogfQogCiBhdXRv
IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzaGFyZWRGcmFtZUJvdW5kcygpIGNvbnN0IC0+IEZy
YW1lQm91bmRzKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlLmgKaW5kZXggMGIyZGZkZDIxMjhmYWNhMjRiN2ViMjYxOTJlYTEyNGY3
NGNkMGRjMy4uMmY5NmZlMTQ3NTQ1ZjkxMzk3ODM0MDE5YThmYzA4YzEyOTA1MjA2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oCkBAIC0zMiwyNSArMzIsMjYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDQVJpbmdCdWZmZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSA6IHB1YmxpYyBXZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9yYWdlIHsK
IHB1YmxpYzoKLSAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZShGdW5jdGlvbjx2b2lkKFNoYXJl
ZE1lbW9yeSopPiYmIHN0b3JhZ2VDaGFuZ2VkSGFuZGxlciA9IG51bGxwdHIpCisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UoRnVuY3Rpb248dm9pZChTaGFyZWRNZW1vcnkqLCBjb25zdCBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQp
PiYmIHN0b3JhZ2VDaGFuZ2VkSGFuZGxlciA9IG51bGxwdHIpCiAgICAgICAgIDogbV9zdG9yYWdl
Q2hhbmdlZEhhbmRsZXIoV1RGTW92ZShzdG9yYWdlQ2hhbmdlZEhhbmRsZXIpKQogICAgIHsKICAg
ICB9CiAKICAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyID0g
bnVsbHB0cjsgfQogCi0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc3RvcmFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RvcmFnZTsgfQotICAgIHZvaWQgc2V0U3RvcmFnZShSZWZQdHI8U2hhcmVkTWVt
b3J5PiYmKTsKLQotICAgIGJvb2wgcmVhZE9ubHkoKSBjb25zdCB7IHJldHVybiBtX3JlYWRPbmx5
OyB9Ci0gICAgdm9pZCBzZXRSZWFkT25seShib29sKTsKKyAgICBTaGFyZWRNZW1vcnkqIHN0b3Jh
Z2UoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2UuZ2V0KCk7IH0KKyAgICB2b2lkIHVwZGF0ZVJl
YWRPbmx5U3RvcmFnZShXZWJDb3JlOjpDQVJpbmdCdWZmZXImLCBjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0
LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKICAgICAvLyBXZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9y
YWdlCi0gICAgdm9pZCBhbGxvY2F0ZShzaXplX3QpIGZpbmFsOworICAgIHZvaWQgYWxsb2NhdGUo
c2l6ZV90LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwg
c2l6ZV90IGZyYW1lQ291bnQpIGZpbmFsOwogICAgIHZvaWQgZGVhbGxvY2F0ZSgpIGZpbmFsOwog
ICAgIHZvaWQqIGRhdGEoKSBmaW5hbDsKICAgICB2b2lkIGdldEN1cnJlbnRGcmFtZUJvdW5kcyh1
aW50NjRfdCYgc3RhcnRUaW1lLCB1aW50NjRfdCYgZW5kVGltZSkgZmluYWw7CkBAIC02Nyw5ICs2
OCwxMCBAQCBwcml2YXRlOgogICAgICAgICBBdG9taWM8dW5zaWduZWQ+IGJvdW5kc0J1ZmZlcklu
ZGV4IHsgMCB9OwogICAgIH07CiAKKyAgICB2b2lkIHNldFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1l
bW9yeT4mJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQs
IHNpemVfdCBmcmFtZUNvdW50KTsKICAgICBGcmFtZUJvdW5kcyogc2hhcmVkRnJhbWVCb3VuZHMo
KSBjb25zdDsKIAotICAgIEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVtb3J5Kik+IG1fc3RvcmFnZUNo
YW5nZWRIYW5kbGVyOworICAgIEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50
KT4gbV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXI7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9z
dG9yYWdlOwogICAgIGJvb2wgbV9yZWFkT25seSB7IGZhbHNlIH07CiAgICAgdWludDY0X3QgbV9z
dGFydEZyYW1lIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzMjJjMzhl
ZDQzNmU3YWYwN2I0OGNjYjUyODRjMTNkZDIwODI0NTE4Li5lZDdiNjI0MzA4NTk0ZWI0NmYzYmI4
OWU4Mzg1Yjg5ZWM0OTkxNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNTks
NyArNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNv
dXJjZSkpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KHN0ZDo6YmluZCgmU291cmNlUHJveHk6OnN0b3JhZ2VDaGFuZ2VkLCB0aGlz
LCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVu
aXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oc3RkOjpiaW5kKCZTb3VyY2VQcm94eTo6
c3RvcmFnZUNoYW5nZWQsIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhv
bGRlcnM6Ol8yLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzMpKSkKICAgICB7CiAgICAgICAgIG1fc291
cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIHN3aXRjaCAobV9zb3VyY2UtPnR5cGUo
KSkgewpAQCAtMTk0LDcgKzE5NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX3JvdGF0
aW9uU2Vzc2lvbi0+cm90YXRlKHNhbXBsZSwgcm90YXRpb24sIEltYWdlUm90YXRpb25TZXNzaW9u
VlQ6OklzQ0dJbWFnZUNvbXBhdGlibGU6Ok5vKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JhZ2VD
aGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNo
YXJlZE1lbW9yeSogc3RvcmFnZSwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3Jt
YXQsIHNpemVfdCBmcmFtZUNvdW50KQogICAgIHsKICAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOwogICAgICAgICBpZiAoc3RvcmFnZSkKQEAgLTIwNiw3ICsyMDYsNyBAQCBwcml2
YXRlOgogI2Vsc2UKICAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSAwOwogI2VuZGlmCi0gICAg
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQobV9pZCwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBX
VEZNb3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251bWJlck9mRnJh
bWVzKSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQobV9pZCwgU2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBmb3JtYXQsIGZyYW1l
Q291bnQpLCAwKTsKICAgICB9CiAKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmco
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggYWFmYjc2
YmYyMDQyY2YyOTMwYzc2NzFjMTAyOTI0Mzk5MGFlYzIwYi4uMTZjZjQ5ODU0MWRlODQ5YWY2Nzg1
NGI4Y2EyMzMzZmRiYTJlYzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCkBAIC03NywyMyArNzcsOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6Ogogewog
ICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIFJlZlB0cjxTaGFyZWRNZW1v
cnk+IG1lbW9yeTsKLSAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgewotICAgICAgICBtZW1vcnkg
PSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOwotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hhcmVkIG1lbW9y
eSBmb3IgcmVtb3RlIHNvdXJjZSIpOwotICAgIH0KLQogICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0
aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgp
KTsKLSAgICBpZiAoIW1lbW9yeSkgewotICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUo
KTsKLSAgICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAgICAgIHN0b3JhZ2Uu
c2V0U3RvcmFnZShudWxscHRyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0b3Jh
Z2Uuc2V0U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgc3RvcmFnZS5zZXRS
ZWFkT25seSh0cnVlKTsKLSAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CisgICAgc3RvcmFnZS51cGRhdGVSZWFkT25seVN0b3JhZ2UoKm1fcmlu
Z0J1ZmZlciwgaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogICAgIG1fYnVm
ZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRleCAw
YzdkNDU2MTExYjIxZGIxMGVmOTVlZmUxZGMwNWFmNWUyMDE5MWZhLi5kMjcwZjIzNWM5ODdhOGM1
ZjYyMmRjOTQ3YzUwOTYxMzNjMDAxMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkuY3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgOiBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoY2FsbGJh
Y2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUsIGZhbHNlKQogICAgICwgbV9u
dW1iZXJPZkZyYW1lcyhoYXJkd2FyZVNhbXBsZVJhdGUoKSAqIHJpbmdCdWZmZXJTaXplSW5TZWNv
bmQpCi0gICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHN0ZDo6YmluZCgmUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywgc3RkOjpwbGFjZWhv
bGRlcnM6Ol8xKSkpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FS
aW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJp
bmQoJlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcmFnZUNoYW5nZWQsIHRoaXMsIHN0
ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yLCBzdGQ6OnBsYWNlaG9s
ZGVyczo6XzMpKSkpCiAgICAgLCBtX3NhbXBsZVJhdGUoaGFyZHdhcmVTYW1wbGVSYXRlKCkpCiAj
ZWxzZQogICAgIDogV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihjYWxsYmFjaywg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkKQEAgLTE4Miw3ICsxODIsNyBAQCB2
b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyUXVhbnR1bSgpCiB9CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLXZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9y
YWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlLCBjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCiB7CiAg
ICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwogICAgIGlmIChzdG9yYWdlKQpAQCAtMTk1
LDExICsxOTUsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQogICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsK
ICNlbmRpZgogCi0gICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIHN0cmVhbUZvcm1hdDsK
LSAgICBnZXRBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24oc3RyZWFtRm9ybWF0KTsKLSAgICBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24oc3RyZWFtRm9ybWF0
KTsKLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyOjpBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCB7IG1fZGVzdGluYXRpb25JRCwgU2hh
cmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksIGRhdGFTaXplIH0sIHN0cmVh
bUZvcm1hdCwgbV9udW1iZXJPZkZyYW1lcyB9LCAwKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6QXVkaW9TYW1wbGVzU3RvcmFnZUNo
YW5nZWQgeyBtX2Rlc3RpbmF0aW9uSUQsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92
ZShoYW5kbGUpLCBkYXRhU2l6ZSB9LCBmb3JtYXQsIGZyYW1lQ291bnQgfSwgMCk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKaW5kZXggOWQ3MWRkM2Q3NDgyOGFk
ZGI1Y2YyOTEwZDAxYmFlYWQ5OTg0M2Q5NS4uOGQyYzYzZWI5YzU1ZmI4YjJhYzU0YmFhZGU4Zjcz
Y2U1ZDViMWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC05Niw3ICs5
Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQg
c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5Kik7CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChT
aGFyZWRNZW1vcnkqLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZv
cm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpOwogI2VuZGlmCiAKICAgICBSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXIuY3BwCmluZGV4IDg5YmFiNjBlMTk1YzZhMmJjYjNhZmM3OWEzNzZh
YTA1MjQyNWYyODUuLjlmMWI3NzJmMWEyNGVjYTU2MTVjZGI5MDU5MjdjNDQ2NDE4NmQwMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCkBAIC0xMjQsMjMg
KzEyNCw4IEBAIHZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1
ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yCiB7CiAgICAgbV9kZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uOwogCi0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbWVtb3J5OwotICAgIGlm
ICghaGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFw
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKCFtZW1vcnksIE1lZGlhLCAiVW5hYmxlIHRvIGNyZWF0ZSBzaGFy
ZWQgbWVtb3J5IGZvciBhdWRpbyBwcm92aWRlciAlbGx1IiwgbV9wcm92aWRlci0+aWRlbnRpZmll
cigpLnRvVUludDY0KCkpOwotICAgIH0KLQogICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2Fz
dDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKLSAg
ICBpZiAoIW1lbW9yeSkgewotICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKLSAg
ICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAgICAgIHN0b3JhZ2Uuc2V0U3Rv
cmFnZShudWxscHRyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0b3JhZ2Uuc2V0
U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgc3RvcmFnZS5zZXRSZWFkT25s
eSh0cnVlKTsKLSAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CisgICAgc3RvcmFnZS51cGRhdGVSZWFkT25seVN0b3JhZ2UoKm1fcmluZ0J1ZmZl
ciwgaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogICAgIG1fYnVmZmVyID0g
bWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1l
cyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAppbmRleCA0
Nzg3ZTRlYTM5MzU3MDZmNGYwYmIzMmQwZTcyZDc5MmE1Nzc2MTI0Li5hM2NhYTBkMjk1MjU4ZjEw
YTQ5YjQwMDE5YmZmZDU1OTg5ZTcwYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuCiBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogbV9jb25uZWN0aW9u
KFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAgLCBtX2lkZW50aWZpZXIoQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQotICAgICwgbV9yaW5nQnVmZmVy
KG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJpbmQoJkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSkpKQorICAgICwg
bV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJpbmQoJkF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8x
LCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMykpKSkKIHsKICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcjo6Q3JlYXRlUmVuZGVyZXIgeyBtX2lkZW50aWZpZXIgfSwgMCk7CiB9
CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnB1
c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgV2ViCiAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
QXVkaW9TYW1wbGVzQXZhaWxhYmxlIHsgdGltZSwgbnVtYmVyT2ZGcmFtZXMgfSwgbV9pZGVudGlm
aWVyKTsKIH0KIAotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQordm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlLCBjb25zdCBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCiB7CiAgICAg
U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwogICAgIGlmIChzdG9yYWdlKQpAQCAtMTEwLDcg
KzExMCw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VDaGFu
Z2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKICNlbHNlCiAgICAgdWludDY0X3QgZGF0YVNpemUg
PSAwOwogI2VuZGlmCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBT
aGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgZGF0YVNpemUgfSwgbV9k
ZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fbnVtYmVyT2ZGcmFtZXMpIH0sIG1f
aWRlbnRpZmllcik7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBT
aGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgZGF0YVNpemUgfSwgZm9y
bWF0LCBmcmFtZUNvdW50IH0sIG1faWRlbnRpZmllcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5oCmluZGV4IDZlZmEwNmE4MGE2NWNlMmYxZjBiMjJiYzBhZjk1
NGI1MzQyNzJhNzAuLjFhYjZiY2U0NDU0YzZjNGQ2NmMyNDc4ZWNjNWJmNmRiZjBlZjE0MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApAQCAtNDksNyArNDksNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOwogCi0gICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChT
aGFyZWRNZW1vcnkqKTsKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSosIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJh
bWVDb3VudCk7CiAKICAgICAvLyBXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
cgogICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCBh
YjAxMzhkZjMwNGY3OGEyOTFmOGYwNmViZTE1ZjgyZTY1MjEwNzk0Li43YjI0NjNlYzkwMzBlNTVk
NGNiZDAyODk3YjAwMjZmMGY2NjVhY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC01
OSw3ICs1OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0YXJ0UmVjb3JkaW5nKFN0
YXJ0UmVjb3JkaW5nQ2FsbGJhY2smJiBjYWxsYmFjaykKIAogICAgIGF1dG8gc2VsZWN0ZWRUcmFj
a3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2tzKG1fc3RyZWFtKTsKICAgICBp
ZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykKLSAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFr
ZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U+KHN0ZDo6YmluZCgmTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkLCB0aGlz
LCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSk7CisgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VV
bmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihzdGQ6OmJpbmQoJk1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywg
c3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIsIHN0ZDo6cGxhY2Vo
b2xkZXJzOjpfMykpKTsKIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lk
ZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaywgISFzZWxlY3RlZFRyYWNrcy52
aWRlb1RyYWNrLCBtX29wdGlvbnMgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhp
cyksIGF1ZGlvVHJhY2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spLCB2
aWRlb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2VwdGlvbiwgU3RyaW5nJiYgbWltZVR5
cGUsIHVuc2lnbmVkIGF1ZGlvQml0UmF0ZSwgdW5zaWduZWQgdmlkZW9CaXRSYXRlKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUm
IHRpbWUsIGNvbnN0IFBsCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUgeyB0aW1lLCBudW1iZXJPZkZyYW1l
cyB9LCBtX2lkZW50aWZpZXIpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9y
YWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UsIGNvbnN0IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCkKIHsKICAgICBTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKHN0b3JhZ2UpCkBAIC0xMTksNyArMTE5
LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVt
b3J5KiBzdG9yYWdlKQogI2Vsc2UKICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CiAjZW5kaWYK
LSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1
ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkIHsgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZN
b3ZlKGhhbmRsZSksIGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX251bWJlck9mRnJhbWVzKSB9LCBtX2lkZW50aWZpZXIpOworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVzU3RvcmFn
ZUNoYW5nZWQgeyBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgZGF0
YVNpemUgfSwgZm9ybWF0LCBmcmFtZUNvdW50IH0sIG1faWRlbnRpZmllcik7CiB9CiAKIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGU6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGRv
dWJsZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCA3NzE3
YzYyYzFiYTEwYjdhMjczNDFkODI5ODY2NmY3Y2I4MmJkMDljLi44Y2MwZTc0YTJhMjY3NjZmODVl
NDQ0YTQ4NjRjMmU0MmI1MjhlZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTYzLDcgKzYz
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhdXNlUmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCByZXN1bWVSZWNvcmRpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKIAotICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVk
TWVtb3J5Kik7CisgICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291
bnQpOwogCiAgICAgTWVkaWFSZWNvcmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJl
ZjxXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU+IG1fc3RyZWFtOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5jcHAKaW5kZXggYzRjNjljNzhjOGUxZjM5NWRhMDU1N2RiOWExODE2MTc1YjEzYjIxZC4u
OTlhMDdmZThmNGRjNzViMzYwZjVhNTBiNzQwZmU3NzhhZmZiODkyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwCkBAIC0xMjAsMjUgKzEyMCw4IEBAIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
CiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFn
ZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKIHsKICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247Ci0KLSAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBtZW1vcnk7Ci0gICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAg
bWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KTsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoIW1lbW9yeSwgV2Vi
UlRDLCAiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciBhdWRpbyBzb3VyY2UgJWxs
dSIsIG1fc291cmNlLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Ci0gICAgfQotCiAgICAgYXV0
byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5n
QnVmZmVyLT5zdG9yYWdlKCkpOwotICAgIGlmICghbWVtb3J5KSB7Ci0gICAgICAgIG1fcmluZ0J1
ZmZlci0+ZGVhbGxvY2F0ZSgpOwotICAgICAgICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsK
LSAgICAgICAgc3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsK
LSAgICBzdG9yYWdlLnNldFJlYWRPbmx5KHRydWUpOwotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2Nh
dGUoZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKLSAgICBtX2J1ZmZlciA9IG1ha2VVbmlx
dWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IHN0b3JhZ2UudXBkYXRlUmVhZE9ubHlTdG9yYWdlKCptX3JpbmdCdWZmZXIsIGhhbmRsZSwgZGVz
Y3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAogdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcjo6UmVtb3RlQXVkaW86OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGlt
ZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCg==
</data>
<flag name="commit-queue"
          id="434018"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416479</attachid>
            <date>2020-12-17 16:08:38 -0800</date>
            <delta_ts>2020-12-17 16:51:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219951-20201217160837.patch</filename>
            <type>text/plain</type>
            <size>43555</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg0NGRlN2QzM2NjMTk3
OTc4NGM5OGY3MTY5MGExN2I3NTI0NDQ2My4uMDJlYTZjNGJjMGE2NmNmODRhZjcxMzM0ZDE2OTU4
NzUxYjJjZmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTEyLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVByb2Nlc3NdIGh0dHBz
Oi8vd3d3LndhdmVwbGF5ZXIuaW5mby9jcmVhdGVtZWRpYWVsZW1lbnRzb3VyY2UtdGVzdC8gZGVt
byBpcyBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGlzc3VlIHdhcyB3aXRoIHRoZSBmb2xsb3dpbmcgbGluZSBpbiBBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZToKKyAgICAgICAgYG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1
ZmZlckNhbGxiYWNrKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSkubW92ZVRvVW5pcXVlUHRyKCk7YAor
CisgICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIG1fcmluZ0J1ZmZlciB3YXMgbm9uLW51bGwgYmVm
b3JlIHRoZSBhc3NpZ25tZW50LCB3ZSB3b3VsZCBoYXZlCisgICAgICAgIDIgUmluZ0J1ZmZlcnMg
dGhhdCB3b3VsZCBjb2V4aXN0IGZvciBhIHZlcnkgc21hbGwgcGVyaW9kIG9mIHRpbWUuIFdoZW4g
dGhlIG5ldworICAgICAgICBvbmUgd2FzIGNyZWF0ZWQsIHdlIHdvdWxkIHNlbmQgYW4gSVBDIHRv
IHRoZSByZW1vdGUgcHJvY2VzcyB3aXRoIHRoZSBzaGFyZWQKKyAgICAgICAgbWVtb3J5IGhhbmRs
ZSBvZiB0aGUgbmV3IFJpbmdCdWZmZXIuIEhvd2V2ZXIsIHZlcnkgc2hvcnRseSBhZnRlciwgdGhl
IG9sZAorICAgICAgICByaW5nIGJ1ZmZlciB3b3VsZCBnZXQgZGVzdHJveWVkLCBjYXVzaW5nIHVz
IHRvIHNlbmQgYW5vdGhlciBJUEMgdG8gdGhlIHJlbW90ZQorICAgICAgICBwcm9jZXNzIHdpdGgg
YSBudWxsIGhhbmRsZSAoc2luY2UgdGhlIHNoYXJlZCBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIHRo
ZSBvbGQKKyAgICAgICAgcmluZyBidWZmZXIgaXMgZ2V0dGluZyBkZXN0cm95ZWQpLiBBcyBhIHJl
c3VsdCwgb2YgdGhpcyBvcmRlcmluZyBpc3N1ZSwgdGhlCisgICAgICAgIHJlbW90ZSBwcm9jZXNz
IHdvdWxkIGVuZCB1cCB3aXRoIGEgUmluZ0J1ZmZlciB3aXRoIGEgbnVsbCBzaGFyZWQgbWVtb3J5
IGhhbmRsZQorICAgICAgICBhbmQgbm8gYXVkaW8gd291bGQgYmUgcmVuZGVyZWQuCisKKyAgICAg
ICAgV2UgY291bGQgaGF2ZSBhZGRyZXNzZWQgdGhlIGlzc3VlIGxpa2Ugc286CisgICAgICAgIGBg
YAorICAgICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOworICAgICAgICBtX3JpbmdCdWZmZXIg
PSBtX3JpbmdCdWZmZXJDYWxsYmFjayhkZXNjcmlwdGlvbiwgY2FwYWNpdHkpLm1vdmVUb1VuaXF1
ZVB0cigpOworICAgICAgICBgYGAKKyAgICAgICAgSG93ZXZlciwgdGhpcyB3b3VsZCBiZSBzdXBl
ciBmcmFnaWxlLiBJbnN0ZWFkLCBJIGhhdmUgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6Cisg
ICAgICAgIDEuIElmIHRoZXJlIGlzIGFscmVhZHkgYSByaW5nQnVmZmVyLCByZXVzZSBpdCBpbnN0
ZWFkIG9mIHJlY29uc3RydWN0aW5nIGl0LgorICAgICAgICAgICBDYWxsaW5nIGFsbG9jYXRlKCkg
d2l0aCB0aGUgbmV3IHBhcmFtZXRlcnMgb24gdGhlIGV4aXN0aW5nIHJpbmcgYnVmZmVyIGlzCisg
ICAgICAgICAgIHN1ZmZpY2llbnQgaW4gdGhpcyBjYXNlLgorICAgICAgICAyLiBCZWNhdXNlIG9m
IDEsIHRoZSByaW5nIGJ1ZmZlciBjcmVhdGlvbiBjYWxsYmFjayBubyBsb25nZXIgbmVlZHMgdG8g
Y2FsbAorICAgICAgICAgICBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKCkuCisKKyAgICAgICAgSSBh
bHNvIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIG1ha2UgdGhlIGNvZGUgc2ltcGxlciBh
bmQgdG8gcmVzdW1lIGNvZGUKKyAgICAgICAgZHVwbGljYXRpb246CisgICAgICAgIC0gVGhlIHN0
b3JhZ2UgY2hhbmdlIGhhbmRsZXIgcGFzc2VkIHRvIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlIGlz
IG5vdyBnaXZlbgorICAgICAgICAgIGFzIHBhcmFtZXRlciB0aGUgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uICYgZnJhbWVDb3VudC4gV2hhdCB0aGUgaGFuZGxlcgorICAgICAgICAgIGFsd2F5cyBk
b2VzIGlzIHNlbmQgYW4gSVBDIHRvIHRoZSByZW1vdGUgcHJvY2VzcyB0byB0ZWxsIGl0IHRoYXQg
dGhlCisgICAgICAgICAgc3RvcmFnZSBjaGFuZ2VkIGFuZCBpbiBhbGwgY2FzZXMsIGl0IG5lZWRz
IHRvIHByb3ZpZGUgdGhpcyAyIHBhcmFtZXRlcnMKKyAgICAgICAgICBhcyB3ZWxsLiBUaGlzIGlz
IGJlY2F1c2UgdGhlIHJlbW90ZSBwcm9jZXNzIHdpbGwgbmVlZCB0byBjYWxsCisgICAgICAgICAg
Q0FSaW5nQnVmZmVyOjphbGxvY2F0ZSgpLCB3aGljaCByZXF1aXJlcyB0aG9zZSAyIHBhcmFtZXRl
cnMuIFRoaXMKKyAgICAgICAgICBzaW1wbGlmaWVzIG91ciBjb2RlIGluIHNvbWUgY2FzZXMgc2lu
Y2Ugd2Ugbm8gbG9uZ2VyIG5lZWQgYSBtZWNoYW5pc20KKyAgICAgICAgICB0byByZXRyaWV2ZSB0
aG9zZSAyIHBhcmFtZXRlcnMgZnJvbSBpbnNpZGUgdGhlIHN0b3JhZ2UgY2hhbmdlIGhhbmRsZXIu
CisgICAgICAgIC0gVGhlIGxvZ2ljIG9mIHRoZSBTdG9yYWdlQ2hhbmdlIElQQyByZWNpcGllbnQg
dG8gdXBkYXRlIGl0cyByaW5nYnVmZmVyCisgICAgICAgICAgd2l0aCB0aGUgbmV3IHNoYXJlZCBt
ZW1vcnkgaGFuZGxlIGlzIGNvbXBsaWNhdGVkIGFuZCB3YXMgZHVwbGljYXRlZAorICAgICAgICAg
IGluIGEgTE9UIG9mIHBsYWNlcy4gVG8gYWRkcmVzcyB0aGlzLCBJIGludHJvZHVjZWQgYSBuZXcK
KyAgICAgICAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlUmVhZE9ubHlTdG9yYWdl
KCkgZnVuY3Rpb24gd2hpY2ggZG9lcworICAgICAgICAgIGV4YWN0bHkgd2hhdCB3ZSBuZWVkLgor
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6YWxsb2NhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6c2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2spOgorCiAyMDIwLTEyLTE3
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1ZGlvXSBT
aW1wbGlmeSBjb2RlIHJlbGF0ZWQgdG8gZGlzcGF0Y2hUb1JlbmRlclRocmVhZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA3MDk0ZmZhMDMxZTUzZDVjZDMwOTJlNTUxOWQ0ODk5OTY2ODQ3Nzc1Li5hZDk2Y2M5YWE1NmZl
MWE4OGNkNTMwZjFlNDc5ZGRlNmViZWFlMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisy
MDIwLTEyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQ
VVByb2Nlc3NdIGh0dHBzOi8vd3d3LndhdmVwbGF5ZXIuaW5mby9jcmVhdGVtZWRpYWVsZW1lbnRz
b3VyY2UtdGVzdC8gZGVtbyBpcyBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGlzc3VlIHdhcyB3aXRoIHRoZSBmb2xsb3dpbmcgbGluZSBp
biBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZToKKyAgICAgICAgYG1fcmluZ0J1
ZmZlciA9IG1fcmluZ0J1ZmZlckNhbGxiYWNrKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSkubW92ZVRv
VW5pcXVlUHRyKCk7YAorCisgICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIG1fcmluZ0J1ZmZlciB3
YXMgbm9uLW51bGwgYmVmb3JlIHRoZSBhc3NpZ25tZW50LCB3ZSB3b3VsZCBoYXZlCisgICAgICAg
IDIgUmluZ0J1ZmZlcnMgdGhhdCB3b3VsZCBjb2V4aXN0IGZvciBhIHZlcnkgc21hbGwgcGVyaW9k
IG9mIHRpbWUuIFdoZW4gdGhlIG5ldworICAgICAgICBvbmUgd2FzIGNyZWF0ZWQsIHdlIHdvdWxk
IHNlbmQgYW4gSVBDIHRvIHRoZSByZW1vdGUgcHJvY2VzcyB3aXRoIHRoZSBzaGFyZWQKKyAgICAg
ICAgbWVtb3J5IGhhbmRsZSBvZiB0aGUgbmV3IFJpbmdCdWZmZXIuIEhvd2V2ZXIsIHZlcnkgc2hv
cnRseSBhZnRlciwgdGhlIG9sZAorICAgICAgICByaW5nIGJ1ZmZlciB3b3VsZCBnZXQgZGVzdHJv
eWVkLCBjYXVzaW5nIHVzIHRvIHNlbmQgYW5vdGhlciBJUEMgdG8gdGhlIHJlbW90ZQorICAgICAg
ICBwcm9jZXNzIHdpdGggYSBudWxsIGhhbmRsZSAoc2luY2UgdGhlIHNoYXJlZCBtZW1vcnkgYXNz
b2NpYXRlZCB3aXRoIHRoZSBvbGQKKyAgICAgICAgcmluZyBidWZmZXIgaXMgZ2V0dGluZyBkZXN0
cm95ZWQpLiBBcyBhIHJlc3VsdCwgb2YgdGhpcyBvcmRlcmluZyBpc3N1ZSwgdGhlCisgICAgICAg
IHJlbW90ZSBwcm9jZXNzIHdvdWxkIGVuZCB1cCB3aXRoIGEgUmluZ0J1ZmZlciB3aXRoIGEgbnVs
bCBzaGFyZWQgbWVtb3J5IGhhbmRsZQorICAgICAgICBhbmQgbm8gYXVkaW8gd291bGQgYmUgcmVu
ZGVyZWQuCisKKyAgICAgICAgV2UgY291bGQgaGF2ZSBhZGRyZXNzZWQgdGhlIGlzc3VlIGxpa2Ug
c286CisgICAgICAgIGBgYAorICAgICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOworICAgICAg
ICBtX3JpbmdCdWZmZXIgPSBtX3JpbmdCdWZmZXJDYWxsYmFjayhkZXNjcmlwdGlvbiwgY2FwYWNp
dHkpLm1vdmVUb1VuaXF1ZVB0cigpOworICAgICAgICBgYGAKKyAgICAgICAgSG93ZXZlciwgdGhp
cyB3b3VsZCBiZSBzdXBlciBmcmFnaWxlLiBJbnN0ZWFkLCBJIGhhdmUgbWFkZSB0aGUgZm9sbG93
aW5nIGNoYW5nZXM6CisgICAgICAgIDEuIElmIHRoZXJlIGlzIGFscmVhZHkgYSByaW5nQnVmZmVy
LCByZXVzZSBpdCBpbnN0ZWFkIG9mIHJlY29uc3RydWN0aW5nIGl0LgorICAgICAgICAgICBDYWxs
aW5nIGFsbG9jYXRlKCkgd2l0aCB0aGUgbmV3IHBhcmFtZXRlcnMgb24gdGhlIGV4aXN0aW5nIHJp
bmcgYnVmZmVyIGlzCisgICAgICAgICAgIHN1ZmZpY2llbnQgaW4gdGhpcyBjYXNlLgorICAgICAg
ICAyLiBCZWNhdXNlIG9mIDEsIHRoZSByaW5nIGJ1ZmZlciBjcmVhdGlvbiBjYWxsYmFjayBubyBs
b25nZXIgbmVlZHMgdG8gY2FsbAorICAgICAgICAgICBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKCku
CisKKyAgICAgICAgSSBhbHNvIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIG1ha2UgdGhl
IGNvZGUgc2ltcGxlciBhbmQgdG8gcmVzdW1lIGNvZGUKKyAgICAgICAgZHVwbGljYXRpb246Cisg
ICAgICAgIC0gVGhlIHN0b3JhZ2UgY2hhbmdlIGhhbmRsZXIgcGFzc2VkIHRvIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlIGlzIG5vdyBnaXZlbgorICAgICAgICAgIGFzIHBhcmFtZXRlciB0aGUgQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uICYgZnJhbWVDb3VudC4gV2hhdCB0aGUgaGFuZGxlcgorICAg
ICAgICAgIGFsd2F5cyBkb2VzIGlzIHNlbmQgYW4gSVBDIHRvIHRoZSByZW1vdGUgcHJvY2VzcyB0
byB0ZWxsIGl0IHRoYXQgdGhlCisgICAgICAgICAgc3RvcmFnZSBjaGFuZ2VkIGFuZCBpbiBhbGwg
Y2FzZXMsIGl0IG5lZWRzIHRvIHByb3ZpZGUgdGhpcyAyIHBhcmFtZXRlcnMKKyAgICAgICAgICBh
cyB3ZWxsLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJlbW90ZSBwcm9jZXNzIHdpbGwgbmVlZCB0byBj
YWxsCisgICAgICAgICAgQ0FSaW5nQnVmZmVyOjphbGxvY2F0ZSgpLCB3aGljaCByZXF1aXJlcyB0
aG9zZSAyIHBhcmFtZXRlcnMuIFRoaXMKKyAgICAgICAgICBzaW1wbGlmaWVzIG91ciBjb2RlIGlu
IHNvbWUgY2FzZXMgc2luY2Ugd2Ugbm8gbG9uZ2VyIG5lZWQgYSBtZWNoYW5pc20KKyAgICAgICAg
ICB0byByZXRyaWV2ZSB0aG9zZSAyIHBhcmFtZXRlcnMgZnJvbSBpbnNpZGUgdGhlIHN0b3JhZ2Ug
Y2hhbmdlIGhhbmRsZXIuCisgICAgICAgIC0gVGhlIGxvZ2ljIG9mIHRoZSBTdG9yYWdlQ2hhbmdl
IElQQyByZWNpcGllbnQgdG8gdXBkYXRlIGl0cyByaW5nYnVmZmVyCisgICAgICAgICAgd2l0aCB0
aGUgbmV3IHNoYXJlZCBtZW1vcnkgaGFuZGxlIGlzIGNvbXBsaWNhdGVkIGFuZCB3YXMgZHVwbGlj
YXRlZAorICAgICAgICAgIGluIGEgTE9UIG9mIHBsYWNlcy4gVG8gYWRkcmVzcyB0aGlzLCBJIGlu
dHJvZHVjZWQgYSBuZXcKKyAgICAgICAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRl
UmVhZE9ubHlTdG9yYWdlKCkgZnVuY3Rpb24gd2hpY2ggZG9lcworICAgICAgICAgIGV4YWN0bHkg
d2hhdCB3ZSBuZWVkLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb246OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGVSaW5nQnVmZmVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpzdG9yYWdl
Q2hhbmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFu
Z2VkKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2V0U3RvcmFnZSk6
CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjp1cGRhdGVSZWFkT25s
eVN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxs
b2NhdGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxv
Y2F0ZSk6CisgICAgICAgICogU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmg6
CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpz
dG9yYWdlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzdG9yYWdlQ2hhbmdlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3JhZ2VD
aGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0
b3JhZ2UpOgorCiAyMDIwLTEyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjI3MDkzOC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuY3BwCmluZGV4
IGMyYTVmZTc5NTk3Yjc1YTc3MmJiYWM1ZTkxMDBjM2Y1NDg5Zjc4MDYuLjQ1NmVlZTMxY2Y5ZTQ1
NTc0YzdhNjNjNzE5ZjAzMjg5YmFhNGNjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2
b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBmb3JtYXQsIHNpemVfdCBmcmFtZQogICAgIG1fZnJhbWVDb3VudE1hc2sgPSBmcmFtZUNvdW50
IC0gMTsKICAgICBtX2NhcGFjaXR5Qnl0ZXMgPSBtX2J5dGVzUGVyRnJhbWUgKiBmcmFtZUNvdW50
OwogCi0gICAgbV9idWZmZXJzLT5hbGxvY2F0ZShtX2NhcGFjaXR5Qnl0ZXMgKiBtX2NoYW5uZWxD
b3VudCk7CisgICAgbV9idWZmZXJzLT5hbGxvY2F0ZShtX2NhcGFjaXR5Qnl0ZXMgKiBtX2NoYW5u
ZWxDb3VudCwgZm9ybWF0LCBmcmFtZUNvdW50KTsKIAogICAgIG1fcG9pbnRlcnMucmVzaXplKG1f
Y2hhbm5lbENvdW50KTsKICAgICBCeXRlKiBjaGFubmVsRGF0YSA9IHN0YXRpY19jYXN0PEJ5dGUq
PihtX2J1ZmZlcnMtPmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5oCmluZGV4IDg4NzJhNzRmYzQ3MGNiYjQ3YjBmNjdlZGVj
Y2ZkYTMyNWY3Y2Y0NTIuLmZiMDM0NmQ5OTMyYTc2OTA0ZDZiYTZiMDcxNWNmZjNkZTQyZjc3MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1
ZmZlci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIENBUmluZ0J1ZmZlclN0b3JhZ2UgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHZpcnR1YWwgfkNBUmluZ0J1
ZmZlclN0b3JhZ2UoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGFsbG9jYXRlKHNpemVf
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZShzaXplX3QsIGNvbnN0IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkZWFsbG9jYXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCogZGF0YSgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90JiBzdGFy
dFRpbWUsIHVpbnQ2NF90JiBlbmRUaW1lKSA9IDA7CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICB+Q0FSaW5nQnVmZmVyU3RvcmFnZVZlY3RvcigpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIGFsbG9jYXRlKHNpemVfdCBieXRlQ291bnQpIGZpbmFsIHsgbV9idWZmZXIuZ3Jv
dyhieXRlQ291bnQpOyB9CisgICAgdm9pZCBhbGxvY2F0ZShzaXplX3QgYnl0ZUNvdW50LCBjb25z
dCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsIHsgbV9idWZmZXIuZ3Jv
dyhieXRlQ291bnQpOyB9CiAgICAgdm9pZCBkZWFsbG9jYXRlKCkgZmluYWwgeyBtX2J1ZmZlci5j
bGVhcigpOyB9CiAgICAgdm9pZCogZGF0YSgpIGZpbmFsIHsgcmV0dXJuIG1fYnVmZmVyLmRhdGEo
KTsgfQogICAgIHZvaWQgZ2V0Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90JiBzdGFydFRpbWUs
IHVpbnQ2NF90JiBlbmRUaW1lKSBmaW5hbDsKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAg
ICAgICBUb29NdWNoLCAvLyBmZXRjaCBzdGFydCB0aW1lIGlzIGVhcmxpZXIgdGhhbiBidWZmZXIg
c3RhcnQgdGltZSBhbmQgZmV0Y2ggZW5kIHRpbWUgaXMgbGF0ZXIgdGhhbiBidWZmZXIgZW5kIHRp
bWUKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxvY2F0ZShjb25zdCBDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
YWxsb2NhdGUoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IGZyYW1lQ291
bnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVhbGxvY2F0ZSgpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgRXJyb3Igc3RvcmUoY29uc3QgQXVkaW9CdWZmZXJMaXN0Kiwgc2l6ZV90IGZyYW1l
Q291bnQsIHVpbnQ2NF90IHN0YXJ0RnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMuaAppbmRleCA0NmUxY2YzMzYyNjE3YTAwNDA3NDg5NjYyZGYx
NDZhMTcwODhkYTVhLi41MWVhMWNlOTI0OTUyYTIxMTAxMzU1YjcxNDFlNDU3ODg1ZDBjYzA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAt
NjMsNyArNjMsNyBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBBdWRpb0NhbGxiYWNrID0gRnVuY3Rp
b248dm9pZCh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk+Owog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9DYWxsYmFjayhBdWRpb0NhbGxiYWNrJiYp
OwotICAgIHVzaW5nIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248VW5pcXVl
UmVmPENBUmluZ0J1ZmZlcj4oY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90
KT47CisgICAgdXNpbmcgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjxVbmlx
dWVSZWY8Q0FSaW5nQnVmZmVyPigpPjsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJpbmdC
dWZmZXJDcmVhdGlvbkNhbGxiYWNrKFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrJiYpOwogCiBw
cml2YXRlOgpAQCAtMTExLDcgKzExMSw3IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgVGFwU3RvcmFn
ZTsKICAgICBSZWZQdHI8VGFwU3RvcmFnZT4gbV90YXBTdG9yYWdlOwogICAgIEF1ZGlvQ2FsbGJh
Y2sgbV9hdWRpb0NhbGxiYWNrOwotICAgIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmlu
Z0J1ZmZlckNhbGxiYWNrOworICAgIFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrIG1fcmluZ0J1
ZmZlckNyZWF0aW9uQ2FsbGJhY2s7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggMDgzNDAxNTMwNjAwMTlmMWNhYmFjZTAw
YTMyMjI4MjE1ZjgwMjcxZi4uNmZmNjhlYWZmNGM5OGZkNzYxM2FiMjQ1ZTAyNWM5ZjNlODk2YzI1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bQpAQCAtODAsNiArODAsNyBAQCBSZWZQdHI8QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpjcmVhdGUoQVZQbGF5ZXJJdAogCiBBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMoQVZQbGF5ZXJJdGVt
ICppdGVtKQogICAgIDogbV9hdlBsYXllckl0ZW0oaXRlbSkKKyAgICAsIG1fcmluZ0J1ZmZlckNy
ZWF0aW9uQ2FsbGJhY2soW10geyByZXR1cm4gbWFrZVVuaXF1ZVJlZjxDQVJpbmdCdWZmZXI+KCk7
IH0pCiB7CiB9CiAKQEAgLTMzOCwxMiArMzM5LDkgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6cHJlcGFyZShDTUl0ZW1Db3VudCBtYXhGcmFtZXMsIGNvbnN0IEF1ZGlvU3RyZWEK
ICAgICBzaXplX3QgY2FwYWNpdHkgPSBzdGQ6Om1heChzdGF0aWNfY2FzdDxzaXplX3Q+KDIgKiBt
YXhGcmFtZXMpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGtSaW5nQnVmZmVyRHVyYXRpb24gKiBzYW1w
bGVSYXRlKSk7CiAKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3JpcHRpb24geyAq
cHJvY2Vzc2luZ0Zvcm1hdCB9OwotICAgIGlmIChtX3JpbmdCdWZmZXJDYWxsYmFjaykKLSAgICAg
ICAgbV9yaW5nQnVmZmVyID0gbV9yaW5nQnVmZmVyQ2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFj
aXR5KS5tb3ZlVG9VbmlxdWVQdHIoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgbV9yaW5nQnVmZmVy
ID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCk7Ci0gICAgICAgIG1fcmluZ0J1ZmZlci0+YWxs
b2NhdGUoZGVzY3JpcHRpb24sIGNhcGFjaXR5KTsKLSAgICB9CisgICAgaWYgKCFtX3JpbmdCdWZm
ZXIpCisgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2so
KS5tb3ZlVG9VbmlxdWVQdHIoKTsKKyAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0
aW9uLCBjYXBhY2l0eSk7CiAKICAgICAvLyBBdWRpb0J1ZmZlckxpc3QgaXMgYSB2YXJpYWJsZS1s
ZW5ndGggc3RydWN0LCBzbyBjcmVhdGUgb24gdGhlIGhlYXAgd2l0aCBhIGdlbmVyaWMgbmV3KCkg
b3BlcmF0b3IKICAgICAvLyB3aXRoIGEgY3VzdG9tIHNpemUsIGFuZCBpbml0aWFsaXplIHRoZSBz
dHJ1Y3QgbWFudWFsbHkuCkBAIC00MzgsNyArNDM2LDcgQEAgdm9pZCBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6c2V0QXVkaW9DYWxsYmFjayhBdWRpb0NhbGxiYWNrJiYgY2FsbGJhY2spCiB2
b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpzZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxs
YmFjayhSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIEFTU0VS
VCghbV9hdkF1ZGlvTWl4KTsKLSAgICBtX3JpbmdCdWZmZXJDYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spOworICAgIG1fcmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggMjI4NWEw
OTE5N2M3NmVjMDlkZjNlMDU5ZGRiMTVkYjBmZGEwYTU2YS4uN2MwMGNhY2JlNTFiZjM2N2EyN2Iy
MWIyZWZlOGU4MjU4Mjg4ZDJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBA
IC03MiwxOSArNzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGF1ZGlvU2FtcGxlc1N0b3JhZ2VD
aGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKQogICAgIHsKLSAgICAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9u
OwotCi0gICAgICAgIGlmIChpcGNIYW5kbGUuaGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAg
ICBtX3JpbmdCdWZmZXItPmRlYWxsb2NhdGUoKTsKLSAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRS
ZWFkT25seShmYWxzZSk7Ci0gICAgICAgICAgICBzdG9yYWdlKCkuc2V0U3RvcmFnZShudWxscHRy
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8gbWVtb3J5
ID0gU2hhcmVkTWVtb3J5OjptYXAoaXBjSGFuZGxlLmhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKFdURk1vdmUo
bWVtb3J5KSk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVlKTsKLSAgICAgICAg
bV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
ICAgICBzdG9yYWdlKCkudXBkYXRlUmVhZE9ubHlTdG9yYWdlKG1fcmluZ0J1ZmZlci5nZXQoKSwg
aXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAgICB9CiAj
ZW5kaWYKIApAQCAtMTY0LDcgKzE1Miw2IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgV2ViQ29yZTo6QXVkaW9PdXRwdXRVbml0QWRhcHRvciBtX2F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3I7CiAKLSAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlw
dGlvbjsKICAgICBVbmlxdWVSZWY8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7
CiAgICAgTWFjaFNlbWFwaG9yZSBtX3JlbmRlclNlbWFwaG9yZTsKICAgICB1aW50NjRfdCBtX3N0
YXJ0RnJhbWUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwCmluZGV4IDRi
M2UxOWVjNWY5ZDQ0NjgyZDI1M2NhNGIwY2Q1MmJiZDE3N2I2YzMuLjVlNmE4YWEzMmVkMzQwODAy
ZGY5YzBiYzBjOGFiMWUxZjJjMmIyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHku
Y3BwCkBAIC0zNyw4ICszNyw4IEBAIFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk+
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6Y3JlYXRlKFdlYkNvCiB7CiAgICAgYXV0
byByZW1vdGVQcm92aWRlciA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5KGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIAotICAgIGxvY2FsUHJv
dmlkZXIuc2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soW3JlbW90ZVByb3ZpZGVyXShhdXRv
IGRlc2NyaXB0aW9uLCBhdXRvIGNhcGFjaXR5KSB7Ci0gICAgICAgIHJldHVybiByZW1vdGVQcm92
aWRlci0+Y3JlYXRlUmluZ0J1ZmZlcihkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOworICAgIGxvY2Fs
UHJvdmlkZXIuc2V0UmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2soW3JlbW90ZVByb3ZpZGVyXSgp
IHsKKyAgICAgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVyLT5jcmVhdGVSaW5nQnVmZmVyKCk7CiAg
ICAgfSk7CiAgICAgbG9jYWxQcm92aWRlci5zZXRBdWRpb0NhbGxiYWNrKFtyZW1vdGVQcm92aWRl
cl0oYXV0byBzdGFydEZyYW1lLCBhdXRvIG51bWJlck9mRnJhbWVzKSB7CiAgICAgICAgIHJlbW90
ZVByb3ZpZGVyLT5uZXdBdWRpb1NhbXBsZXMoc3RhcnRGcmFtZSwgbnVtYmVyT2ZGcmFtZXMpOwpA
QCAtNTUsMTUgKzU1LDExIEBAIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6UmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KFdlYkNvcmU6Ok1lZGlhUGxhCiAKIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJQcm94eTo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eSgpID0g
ZGVmYXVsdDsKIAotVW5pcXVlUmVmPENBUmluZ0J1ZmZlcj4gUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5OjpjcmVhdGVSaW5nQnVmZmVyKGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIHNpemVfdCBjYXBhY2l0eSkKK1VuaXF1ZVJlZjxDQVJpbmdCdWZmZXI+
IFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6Y3JlYXRlUmluZ0J1ZmZlcigpCiB7Ci0g
ICAgbV9yaW5nQnVmZmVyRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKLSAgICBtX3JpbmdCdWZm
ZXJDYXBhY2l0eSA9IGNhcGFjaXR5OwotICAgIGF1dG8gcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWVS
ZWY8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShTaGFyZWRNZW1vcnkqIG1lbW9yeSkgbXV0
YWJsZSB7Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPnN0b3JhZ2VDaGFuZ2VkKG1lbW9yeSk7Cisg
ICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlPihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShTaGFy
ZWRNZW1vcnkqIG1lbW9yeSwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQs
IHNpemVfdCBmcmFtZUNvdW50KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3Rv
cmFnZUNoYW5nZWQobWVtb3J5LCBmb3JtYXQsIGZyYW1lQ291bnQpOwogICAgIH0pKTsKLSAgICBy
aW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOwotICAgIHJldHVybiBy
aW5nQnVmZmVyOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6bmV3
QXVkaW9TYW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVz
KQpAQCAtNzEsNyArNjcsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6
bmV3QXVkaW9TYW1wbGVzKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NAogICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OkF1
ZGlvU2FtcGxlc0F2YWlsYWJsZSB7IG1faWRlbnRpZmllciwgc3RhcnRGcmFtZSwgbnVtYmVyT2ZG
cmFtZXMgfSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5Ojpz
dG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSkKK3ZvaWQgUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlclByb3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSwgY29u
c3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KQog
ewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAobWVtb3J5KQpAQCAt
ODMsNyArNzksNyBAQCB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eTo6c3RvcmFn
ZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBtZW1vcnkpCiAjZWxzZQogICAgIHVpbnQ2NF90IGRhdGFT
aXplID0gMDsKICNlbmRpZgotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQgeyBtX2lkZW50
aWZpZXIsIFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNp
emUgfSwgbV9yaW5nQnVmZmVyRGVzY3JpcHRpb24sIG1fcmluZ0J1ZmZlckNhcGFjaXR5IH0sIDAp
OworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlck1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQgeyBtX2lkZW50aWZpZXIsIFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCAgZGF0YVNpemUgfSwgZm9ybWF0LCBm
cmFtZUNvdW50IH0sIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyUHJveHkuaAppbmRleCAwNDcxMDFmN2JlMjg3NDJkZjU5NmYyYmZjNDI1YzgxNGFh
MDliMTA0Li5hYzhkNjNkNDllZGVhMjEzNTFmYzg5OTY0ZTM3YTQ5NTk2NGYzZGU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92
aWRlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvU291cmNlUHJvdmlkZXJQcm94eS5oCkBAIC00NywyMiArNDcsMTkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5PiBjcmVhdGUoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3Jl
OjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyYpOwogICAgIH5SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyUHJveHkoKTsKIAotICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IGNy
ZWF0ZVJpbmdCdWZmZXIoY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwg
c2l6ZV90KTsKKyAgICBVbmlxdWVSZWY8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPiBjcmVhdGVSaW5n
QnVmZmVyKCk7CiAgICAgdm9pZCBuZXdBdWRpb1NhbXBsZXModWludDY0X3Qgc3RhcnRGcmFtZSwg
dWludDY0X3QgZW5kRnJhbWUpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJQcm94eShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYpOwogCi0gICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKyAg
ICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKICAgICAv
LyBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50CiAgICAgdm9pZCBzZXRGb3JtYXQoc2l6ZV90IG51
bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIGZpbmFsIHsgfQogCiAgICAgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0KLSAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24gbV9yaW5nQnVmZmVyRGVzY3JpcHRpb247Ci0gICAgc2l6ZV90IG1fcmluZ0J1ZmZlckNh
cGFjaXR5IHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCmluZGV4IGVjNjZkZGE5MmE0ZGQ5Yzk5MjEx
M2U0ZWJkNGM3ODYzN2UzNGYyNjYuLjY0YjA5MTRlMTg0MTE2Mjg5NzlmNDJmYmMzYjc0YmU0MzFi
YTVlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCkBA
IC0xMDUsMTggKzEwNSw3IEBAIHZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlCiAgICAgTUVTU0FHRV9D
SEVDSyhXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVzY3JpcHRpb24oZGVzY3JpcHRp
b24sIG51bWJlck9mRnJhbWVzKSk7CiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwog
Ci0gICAgaWYgKGlwY0hhbmRsZS5oYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9yaW5nQnVm
ZmVyLT5kZWFsbG9jYXRlKCk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7
Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChpcGNIYW5kbGUu
aGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBzdG9yYWdl
KCkuc2V0U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOwotICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25s
eSh0cnVlKTsKLQotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICBzdG9yYWdlKCkudXBkYXRlUmVhZE9ubHlTdG9yYWdlKG1fcmluZ0J1
ZmZlci5nZXQoKSwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKIAogICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxp
c3Q+KG1fZGVzY3JpcHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggMWZiMWNhMjJlZjRkYjIy
NmZhMzRjMWEzZDE1MjNjNzJmZjhkZDJlZS4uNTNmZDRiNGFlZjg4NWRjZTFhMGUyMTRhNDE1ZTgy
Y2U1MDU0OWRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCkBAIC03NCwxOCArNzQsNyBAQCB2b2lkIFJlbW90
ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZAogCiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwogCi0gICAg
aWYgKGlwY0hhbmRsZS5oYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9yaW5nQnVmZmVyLT5k
ZWFsbG9jYXRlKCk7Ci0gICAgICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAg
ICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgYXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChpcGNIYW5kbGUuaGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBzdG9yYWdlKCkuc2V0
U3RvcmFnZShXVEZNb3ZlKG1lbW9yeSkpOwotICAgIHN0b3JhZ2UoKS5zZXRSZWFkT25seSh0cnVl
KTsKLQotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUobV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworICAgIHN0b3JhZ2UoKS51cGRhdGVSZWFkT25seVN0b3JhZ2UoKm1fcmluZ0J1ZmZl
ciwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAgICBt
X2F1ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX2Rlc2Ny
aXB0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwCmluZGV4IGQ3ZTMxNDNjOTg4MTRiOWEzMjExNWI5ODg5
NzgxOWVkOTdlZmFhMTEuLmQ1MDcyZTU0ZThmM2JmODU3NTI3YWZmMzUxNjUzYTZhOGVlY2JiNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZS5jcHAKQEAgLTI4LDM1ICsyOCw0NiBAQAogCiAjaWYgVVNFKE1FRElBVE9PTEJP
WCkKIAorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi12b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRTdG9yYWdlKFJlZlB0cjxT
aGFyZWRNZW1vcnk+JiYgc3RvcmFnZSkKK3ZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNl
dFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiBzdG9yYWdlLCBjb25zdCBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCiB7CiAgICAgQVNTRVJU
KHN0b3JhZ2UgfHwgIW1fcmVhZE9ubHkpOwogICAgIG1fc3RvcmFnZSA9IFdURk1vdmUoc3RvcmFn
ZSk7CiAgICAgaWYgKG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyKQotICAgICAgICBtX3N0b3JhZ2VD
aGFuZ2VkSGFuZGxlcihtX3N0b3JhZ2UuZ2V0KCkpOworICAgICAgICBtX3N0b3JhZ2VDaGFuZ2Vk
SGFuZGxlcihtX3N0b3JhZ2UuZ2V0KCksIGZvcm1hdCwgZnJhbWVDb3VudCk7CiB9CiAKLXZvaWQg
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNldFJlYWRPbmx5KGJvb2wgcmVhZE9ubHkpCit2b2lk
IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjp1cGRhdGVSZWFkT25seVN0b3JhZ2UoV2ViQ29yZTo6
Q0FSaW5nQnVmZmVyJiByaW5nQnVmZmVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFu
ZGxlLCBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1l
Q291bnQpCiB7Ci0gICAgQVNTRVJUKG1fc3RvcmFnZSB8fCAhcmVhZE9ubHkpOwotICAgIG1fcmVh
ZE9ubHkgPSByZWFkT25seTsKKyAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKSB7CisgICAgICAgIHJp
bmdCdWZmZXIuZGVhbGxvY2F0ZSgpOworICAgICAgICBtX3JlYWRPbmx5ID0gZmFsc2U7CisgICAg
ICAgIG1fc3RvcmFnZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBh
dXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CisgICAgbV9zdG9yYWdlID0gV1RGTW92ZShtZW1vcnkpOworICAg
IG1fcmVhZE9ubHkgPSB0cnVlOworICAgIHJpbmdCdWZmZXIuYWxsb2NhdGUoZm9ybWF0LCBmcmFt
ZUNvdW50KTsKIH0KIAotdm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxsb2NhdGUoc2l6
ZV90IGJ5dGVDb3VudCkKK3ZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmFsbG9jYXRlKHNp
emVfdCBieXRlQ291bnQsIGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBz
aXplX3QgZnJhbWVDb3VudCkKIHsKICAgICBpZiAoIW1fcmVhZE9ubHkpIHsKICAgICAgICAgYXV0
byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKGJ5dGVDb3VudCArIHNpemVv
ZihGcmFtZUJvdW5kcykpOwogICAgICAgICBuZXcgKE5vdE51bGwsIHNoYXJlZE1lbW9yeS0+ZGF0
YSgpKSBGcmFtZUJvdW5kczsKLSAgICAgICAgc2V0U3RvcmFnZShXVEZNb3ZlKHNoYXJlZE1lbW9y
eSkpOworICAgICAgICBzZXRTdG9yYWdlKFdURk1vdmUoc2hhcmVkTWVtb3J5KSwgZm9ybWF0LCBm
cmFtZUNvdW50KTsKICAgICB9CiB9CiAKIHZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmRl
YWxsb2NhdGUoKQogewogICAgIGlmICghbV9yZWFkT25seSkKLSAgICAgICAgc2V0U3RvcmFnZShu
dWxscHRyKTsKKyAgICAgICAgc2V0U3RvcmFnZShudWxscHRyLCB7IH0sIDApOwogfQogCiBhdXRv
IFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzaGFyZWRGcmFtZUJvdW5kcygpIGNvbnN0IC0+IEZy
YW1lQm91bmRzKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlLmgKaW5kZXggMGIyZGZkZDIxMjhmYWNhMjRiN2ViMjYxOTJlYTEyNGY3
NGNkMGRjMy4uMmY5NmZlMTQ3NTQ1ZjkxMzk3ODM0MDE5YThmYzA4YzEyOTA1MjA2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZS5oCkBAIC0zMiwyNSArMzIsMjYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5o
PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBDQVJpbmdCdWZmZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSA6IHB1YmxpYyBXZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9yYWdlIHsK
IHB1YmxpYzoKLSAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZShGdW5jdGlvbjx2b2lkKFNoYXJl
ZE1lbW9yeSopPiYmIHN0b3JhZ2VDaGFuZ2VkSGFuZGxlciA9IG51bGxwdHIpCisgICAgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UoRnVuY3Rpb248dm9pZChTaGFyZWRNZW1vcnkqLCBjb25zdCBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQp
PiYmIHN0b3JhZ2VDaGFuZ2VkSGFuZGxlciA9IG51bGxwdHIpCiAgICAgICAgIDogbV9zdG9yYWdl
Q2hhbmdlZEhhbmRsZXIoV1RGTW92ZShzdG9yYWdlQ2hhbmdlZEhhbmRsZXIpKQogICAgIHsKICAg
ICB9CiAKICAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyID0g
bnVsbHB0cjsgfQogCi0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc3RvcmFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RvcmFnZTsgfQotICAgIHZvaWQgc2V0U3RvcmFnZShSZWZQdHI8U2hhcmVkTWVt
b3J5PiYmKTsKLQotICAgIGJvb2wgcmVhZE9ubHkoKSBjb25zdCB7IHJldHVybiBtX3JlYWRPbmx5
OyB9Ci0gICAgdm9pZCBzZXRSZWFkT25seShib29sKTsKKyAgICBTaGFyZWRNZW1vcnkqIHN0b3Jh
Z2UoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2UuZ2V0KCk7IH0KKyAgICB2b2lkIHVwZGF0ZVJl
YWRPbmx5U3RvcmFnZShXZWJDb3JlOjpDQVJpbmdCdWZmZXImLCBjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0
LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKICAgICAvLyBXZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9y
YWdlCi0gICAgdm9pZCBhbGxvY2F0ZShzaXplX3QpIGZpbmFsOworICAgIHZvaWQgYWxsb2NhdGUo
c2l6ZV90LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwg
c2l6ZV90IGZyYW1lQ291bnQpIGZpbmFsOwogICAgIHZvaWQgZGVhbGxvY2F0ZSgpIGZpbmFsOwog
ICAgIHZvaWQqIGRhdGEoKSBmaW5hbDsKICAgICB2b2lkIGdldEN1cnJlbnRGcmFtZUJvdW5kcyh1
aW50NjRfdCYgc3RhcnRUaW1lLCB1aW50NjRfdCYgZW5kVGltZSkgZmluYWw7CkBAIC02Nyw5ICs2
OCwxMCBAQCBwcml2YXRlOgogICAgICAgICBBdG9taWM8dW5zaWduZWQ+IGJvdW5kc0J1ZmZlcklu
ZGV4IHsgMCB9OwogICAgIH07CiAKKyAgICB2b2lkIHNldFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1l
bW9yeT4mJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQs
IHNpemVfdCBmcmFtZUNvdW50KTsKICAgICBGcmFtZUJvdW5kcyogc2hhcmVkRnJhbWVCb3VuZHMo
KSBjb25zdDsKIAotICAgIEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVtb3J5Kik+IG1fc3RvcmFnZUNo
YW5nZWRIYW5kbGVyOworICAgIEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50
KT4gbV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXI7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9z
dG9yYWdlOwogICAgIGJvb2wgbV9yZWFkT25seSB7IGZhbHNlIH07CiAgICAgdWludDY0X3QgbV9z
dGFydEZyYW1lIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAzMjJjMzhl
ZDQzNmU3YWYwN2I0OGNjYjUyODRjMTNkZDIwODI0NTE4Li4zNzc3NjY4YWU2ZGI1MmRjMmEyZDgy
ODAzNTBlNTA0MTNmZGM3OWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNTks
NyArNTksNyBAQCBwdWJsaWM6CiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNv
dXJjZSkpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2U+KHN0ZDo6YmluZCgmU291cmNlUHJveHk6OnN0b3JhZ2VDaGFuZ2VkLCB0aGlz
LCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVu
aXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oc3RkOjpiaW5kKCZTb3VyY2VQcm94eTo6
c3RvcmFnZUNoYW5nZWQsIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhv
bGRlcnM6Ol8yLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzMpKSkKICAgICB7CiAgICAgICAgIG1fc291
cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIHN3aXRjaCAobV9zb3VyY2UtPnR5cGUo
KSkgewpAQCAtMTk0LDcgKzE5NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBtX3JvdGF0
aW9uU2Vzc2lvbi0+cm90YXRlKHNhbXBsZSwgcm90YXRpb24sIEltYWdlUm90YXRpb25TZXNzaW9u
VlQ6OklzQ0dJbWFnZUNvbXBhdGlibGU6Ok5vKTsKICAgICB9CiAKLSAgICB2b2lkIHN0b3JhZ2VD
aGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKKyAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNo
YXJlZE1lbW9yeSogc3RvcmFnZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KQogICAgIHsKICAgICAgICAgU2hhcmVkTWVt
b3J5OjpIYW5kbGUgaGFuZGxlOwogICAgICAgICBpZiAoc3RvcmFnZSkKQEAgLTIwNiw3ICsyMDYs
NyBAQCBwcml2YXRlOgogI2Vsc2UKICAgICAgICAgdWludDY0X3QgZGF0YVNpemUgPSAwOwogI2Vu
ZGlmCi0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQobV9pZCwgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBtX251
bWJlck9mRnJhbWVzKSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OkF1ZGlvU3RvcmFnZUNoYW5nZWQobV9pZCwgU2hh
cmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBmb3Jt
YXQsIGZyYW1lQ291bnQpLCAwKTsKICAgICB9CiAKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9t
U3RvcHBpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5k
ZXggYWFmYjc2YmYyMDQyY2YyOTMwYzc2NzFjMTAyOTI0Mzk5MGFlYzIwYi4uMTZjZjQ5ODU0MWRl
ODQ5YWY2Nzg1NGI4Y2EyMzMzZmRiYTJlYzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC03NywyMyArNzcsOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1v
cnk6OgogewogICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IG1lbW9yeTsKLSAgICBpZiAoIWhhbmRsZS5pc051bGwoKSkgewotICAgICAg
ICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOwotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgc2hh
cmVkIG1lbW9yeSBmb3IgcmVtb3RlIHNvdXJjZSIpOwotICAgIH0KLQogICAgIGF1dG8mIHN0b3Jh
Z2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+
c3RvcmFnZSgpKTsKLSAgICBpZiAoIW1lbW9yeSkgewotICAgICAgICBtX3JpbmdCdWZmZXItPmRl
YWxsb2NhdGUoKTsKLSAgICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAgICAg
IHN0b3JhZ2Uuc2V0U3RvcmFnZShudWxscHRyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgc3Rv
cmFnZS5zZXRSZWFkT25seSh0cnVlKTsKLSAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRlc2Ny
aXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc3RvcmFnZS51cGRhdGVSZWFkT25seVN0b3Jh
Z2UoKm1fcmluZ0J1ZmZlciwgaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwog
ICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9u
LCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNw
cAppbmRleCAwYzdkNDU2MTExYjIxZGIxMGVmOTVlZmUxZGMwNWFmNWUyMDE5MWZhLi4yYmFhMmQ3
MTU4NmRkZTFlZGZmZTdmNDcwYjdjZDI4NmM2ZDc4OGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuY3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJh
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgOiBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2EoY2FsbGJhY2ssIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUsIGZhbHNlKQog
ICAgICwgbV9udW1iZXJPZkZyYW1lcyhoYXJkd2FyZVNhbXBsZVJhdGUoKSAqIHJpbmdCdWZmZXJT
aXplSW5TZWNvbmQpCi0gICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJp
bmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHN0ZDo6Ymlu
ZCgmUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywgc3Rk
OjpwbGFjZWhvbGRlcnM6Ol8xKSkpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2Vi
Q29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihzdGQ6OmJpbmQoJlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcmFnZUNoYW5nZWQs
IHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yLCBzdGQ6
OnBsYWNlaG9sZGVyczo6XzMpKSkpCiAgICAgLCBtX3NhbXBsZVJhdGUoaGFyZHdhcmVTYW1wbGVS
YXRlKCkpCiAjZWxzZQogICAgIDogV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcihj
YWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkKQEAgLTE4Miw3ICsx
ODIsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyUXVhbnR1bSgp
CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit2b2lkIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdl
LCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90
IGZyYW1lQ291bnQpCiB7CiAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwogICAgIGlm
IChzdG9yYWdlKQpAQCAtMTk1LDExICsxOTUsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQogICAgIHVpbnQ2
NF90IGRhdGFTaXplID0gMDsKICNlbmRpZgogCi0gICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uIHN0cmVhbUZvcm1hdDsKLSAgICBnZXRBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24oc3Ry
ZWFtRm9ybWF0KTsKLSAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb24oc3RyZWFtRm9ybWF0KTsKLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCB7IG1f
ZGVzdGluYXRpb25JRCwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSks
IGRhdGFTaXplIH0sIHN0cmVhbUZvcm1hdCwgbV9udW1iZXJPZkZyYW1lcyB9LCAwKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6QXVk
aW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBtX2Rlc3RpbmF0aW9uSUQsIFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCBkYXRhU2l6ZSB9LCBmb3JtYXQsIGZyYW1lQ291
bnQgfSwgMCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKaW5k
ZXggOWQ3MWRkM2Q3NDgyOGFkZGI1Y2YyOTEwZDAxYmFlYWQ5OTg0M2Q5NS4uOGQyYzYzZWI5YzU1
ZmI4YjJhYzU0YmFhZGU4ZjczY2U1ZDViMWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eS5oCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5Kik7CisgICAgdm9p
ZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpOwogI2VuZGlmCiAKICAg
ICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCmluZGV4IDg5YmFiNjBlMTk1
YzZhMmJjYjNhZmM3OWEzNzZhYTA1MjQyNWYyODUuLjlmMWI3NzJmMWEyNGVjYTU2MTVjZGI5MDU5
MjdjNDQ2NDE4NmQwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFn
ZXIuY3BwCkBAIC0xMjQsMjMgKzEyNCw4IEBAIHZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yCiB7CiAg
ICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwogCi0gICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gbWVtb3J5OwotICAgIGlmICghaGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1lbW9yeSA9
IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFk
T25seSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKCFtZW1vcnksIE1lZGlhLCAiVW5h
YmxlIHRvIGNyZWF0ZSBzaGFyZWQgbWVtb3J5IGZvciBhdWRpbyBwcm92aWRlciAlbGx1IiwgbV9w
cm92aWRlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOwotICAgIH0KLQogICAgIGF1dG8mIHN0
b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZl
ci0+c3RvcmFnZSgpKTsKLSAgICBpZiAoIW1lbW9yeSkgewotICAgICAgICBtX3JpbmdCdWZmZXIt
PmRlYWxsb2NhdGUoKTsKLSAgICAgICAgc3RvcmFnZS5zZXRSZWFkT25seShmYWxzZSk7Ci0gICAg
ICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShudWxscHRyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIHN0b3JhZ2Uuc2V0U3RvcmFnZShtZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAg
c3RvcmFnZS5zZXRSZWFkT25seSh0cnVlKTsKLSAgICBtX3JpbmdCdWZmZXItPmFsbG9jYXRlKGRl
c2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc3RvcmFnZS51cGRhdGVSZWFkT25seVN0
b3JhZ2UoKm1fcmluZ0J1ZmZlciwgaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OwogICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0
aW9uLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmNwcAppbmRleCA0Nzg3ZTRlYTM5MzU3MDZmNGYwYmIzMmQwZTcyZDc5MmE1Nzc2MTI0
Li5kZjIyNTAwY2Q5ZjZmY2ZmZGJiNDRmNGMyYzBjODBiMGRhNTUwYjIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4gQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuCiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQog
ICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAgLCBtX2lkZW50aWZp
ZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQot
ICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtl
VW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJpbmQoJkF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywgc3RkOjpwbGFjZWhvbGRl
cnM6Ol8xKSkpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5n
QnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJpbmQo
JkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywgc3Rk
OjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIsIHN0ZDo6cGxhY2Vob2xk
ZXJzOjpfMykpKSkKIHsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Q3JlYXRlUmVuZGVyZXIgeyBtX2lk
ZW50aWZpZXIgfSwgMCk7CiB9CkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3Qg
V2ViCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9TYW1wbGVzQXZhaWxhYmxlIHsgdGltZSwgbnVtYmVyT2ZG
cmFtZXMgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQordm9pZCBBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBz
dG9yYWdlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwg
c2l6ZV90IGZyYW1lQ291bnQpCiB7CiAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwog
ICAgIGlmIChzdG9yYWdlKQpAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKICNl
bHNlCiAgICAgdWludDY0X3QgZGF0YVNpemUgPSAwOwogI2VuZGlmCi0gICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVk
aW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1v
dmUoaGFuZGxlKSwgZGF0YVNpemUgfSwgbV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDY0
X3Q+KG1fbnVtYmVyT2ZGcmFtZXMpIH0sIG1faWRlbnRpZmllcik7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVk
aW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1v
dmUoaGFuZGxlKSwgZGF0YVNpemUgfSwgZm9ybWF0LCBmcmFtZUNvdW50IH0sIG1faWRlbnRpZmll
cik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCmluZGV4IDZl
ZmEwNmE4MGE2NWNlMmYxZjBiMjJiYzBhZjk1NGI1MzQyNzJhNzAuLjFhYjZiY2U0NDU0YzZjNGQ2
NmMyNDc4ZWNjNWJmNmRiZjBlZjE0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOwog
Ci0gICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKyAgICB2b2lkIHN0b3Jh
Z2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKICAgICAvLyBXZWJDb3JlOjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcgogICAgIHZvaWQgc3RhcnQoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCBhYjAxMzhkZjMwNGY3OGEyOTFmOGYwNmViZTE1Zjgy
ZTY1MjEwNzk0Li43MzVkODI5NGQ4ZDRkNTE3Nzc5YmZiNDk3ZmZkZjE5YzgyOWZhZjQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGU6OnN0YXJ0UmVjb3JkaW5nKFN0YXJ0UmVjb3JkaW5nQ2FsbGJhY2smJiBjYWxsYmFj
aykKIAogICAgIGF1dG8gc2VsZWN0ZWRUcmFja3MgPSBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2Vs
ZWN0VHJhY2tzKG1fc3RyZWFtKTsKICAgICBpZiAoc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFjaykK
LSAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlx
dWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHN0ZDo6YmluZCgmTWVkaWFSZWNvcmRlclBy
aXZhdGU6OnN0b3JhZ2VDaGFuZ2VkLCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSk7Cisg
ICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJpbmQoJk1lZGlhUmVjb3JkZXJQcml2
YXRlOjpzdG9yYWdlQ2hhbmdlZCwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBs
YWNlaG9sZGVyczo6XzIsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMykpKTsKIAogICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlcjo6Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVk
aW9UcmFjaywgISFzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLCBtX29wdGlvbnMgfSwgW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGF1ZGlvVHJhY2sgPSBtYWtlUmVmUHRyKHNl
bGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spLCB2aWRlb1RyYWNrID0gbWFrZVJlZlB0cihzZWxlY3Rl
ZFRyYWNrcy52aWRlb1RyYWNrKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYm
IGV4Y2VwdGlvbiwgU3RyaW5nJiYgbWltZVR5cGUsIHVuc2lnbmVkIGF1ZGlvQml0UmF0ZSwgdW5z
aWduZWQgdmlkZW9CaXRSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewpA
QCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsCiAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNBdmFp
bGFibGUgeyB0aW1lLCBudW1iZXJPZkZyYW1lcyB9LCBtX2lkZW50aWZpZXIpOwogfQogCi12b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3Jh
Z2UpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1v
cnkqIHN0b3JhZ2UsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9y
bWF0LCBzaXplX3QgZnJhbWVDb3VudCkKIHsKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5k
bGU7CiAgICAgaWYgKHN0b3JhZ2UpCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZTo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQogI2Vsc2UK
ICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CiAjZW5kaWYKLSAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFu
Z2VkIHsgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksIGRhdGFTaXpl
IH0sIG1fZGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX251bWJlck9mRnJhbWVz
KSB9LCBtX2lkZW50aWZpZXIpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgZGF0YVNpemUgfSwgZm9ybWF0LCBmcmFt
ZUNvdW50IH0sIG1faWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6
OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGRvdWJsZSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCA3NzE3YzYyYzFiYTEwYjdhMjczNDFkODI5
ODY2NmY3Y2I4MmJkMDljLi44Y2MwZTc0YTJhMjY3NjZmODVlNDQ0YTQ4NjRjMmU0MmI1MjhlZjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBhdXNlUmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAg
ICAgdm9pZCByZXN1bWVSZWNvcmRpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5h
bDsKIAotICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5Kik7CisgICAgdm9pZCBz
dG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpOwogCiAgICAgTWVkaWFSZWNv
cmRlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxXZWJDb3JlOjpNZWRpYVN0cmVh
bVByaXZhdGU+IG1fc3RyZWFtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggYzRjNjlj
NzhjOGUxZjM5NWRhMDU1N2RiOWExODE2MTc1YjEzYjIxZC4uOTlhMDdmZThmNGRjNzViMzYwZjVh
NTBiNzQwZmU3NzhhZmZiODkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC0xMjAs
MjUgKzEyMCw4IEBAIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVt
b3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyCiB2b2lkIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSYgaGFuZGxlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKIHsKICAgICBtX2Rlc2NyaXB0
aW9uID0gZGVzY3JpcHRpb247Ci0KLSAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtZW1vcnk7Ci0g
ICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgbWVtb3J5ID0gU2hhcmVkTWVtb3J5
OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoIW1lbW9yeSwgV2ViUlRDLCAiVW5hYmxlIHRvIGNyZWF0
ZSBzaGFyZWQgbWVtb3J5IGZvciBhdWRpbyBzb3VyY2UgJWxsdSIsIG1fc291cmNlLT5pZGVudGlm
aWVyKCkudG9VSW50NjQoKSk7Ci0gICAgfQotCiAgICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19j
YXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOwot
ICAgIGlmICghbWVtb3J5KSB7Ci0gICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOwot
ICAgICAgICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAgICAgICAgc3RvcmFnZS5zZXRT
dG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc3RvcmFnZS5z
ZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICBzdG9yYWdlLnNldFJlYWRP
bmx5KHRydWUpOwotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKLSAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0
PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIHN0b3JhZ2UudXBkYXRlUmVhZE9u
bHlTdG9yYWdlKCptX3JpbmdCdWZmZXIsIGhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKIH0KIAogdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416482</attachid>
            <date>2020-12-17 16:51:34 -0800</date>
            <delta_ts>2020-12-17 17:22:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219951-20201217165133.patch</filename>
            <type>text/plain</type>
            <size>43551</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg0NGRlN2QzM2NjMTk3
OTc4NGM5OGY3MTY5MGExN2I3NTI0NDQ2My4uMzYyNjQ3Y2QwMjQzNTY0NWU0NmJiN2U3OTE5NGUw
ZGNkZWQ4ODVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTEyLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVByb2Nlc3NdIGh0dHBz
Oi8vd3d3LndhdmVwbGF5ZXIuaW5mby9jcmVhdGVtZWRpYWVsZW1lbnRzb3VyY2UtdGVzdC8gZGVt
byBpcyBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAg
VGhlIGlzc3VlIHdhcyB3aXRoIHRoZSBmb2xsb3dpbmcgbGluZSBpbiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJlcGFyZToKKyAgICAgICAgYG1fcmluZ0J1ZmZlciA9IG1fcmluZ0J1ZmZl
ckNhbGxiYWNrKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSkubW92ZVRvVW5pcXVlUHRyKCk7YAorCisg
ICAgICAgIEluIHRoZSBjYXNlIHdoZXJlIG1fcmluZ0J1ZmZlciB3YXMgbm9uLW51bGwgYmVmb3Jl
IHRoZSBhc3NpZ25tZW50LCB3ZSB3b3VsZCBoYXZlCisgICAgICAgIDIgUmluZ0J1ZmZlcnMgdGhh
dCB3b3VsZCBjb2V4aXN0IGZvciBhIHZlcnkgc21hbGwgcGVyaW9kIG9mIHRpbWUuIFdoZW4gdGhl
IG5ldworICAgICAgICBvbmUgd2FzIGNyZWF0ZWQsIHdlIHdvdWxkIHNlbmQgYW4gSVBDIHRvIHRo
ZSByZW1vdGUgcHJvY2VzcyB3aXRoIHRoZSBzaGFyZWQKKyAgICAgICAgbWVtb3J5IGhhbmRsZSBv
ZiB0aGUgbmV3IFJpbmdCdWZmZXIuIEhvd2V2ZXIsIHZlcnkgc2hvcnRseSBhZnRlciwgdGhlIG9s
ZAorICAgICAgICByaW5nIGJ1ZmZlciB3b3VsZCBnZXQgZGVzdHJveWVkLCBjYXVzaW5nIHVzIHRv
IHNlbmQgYW5vdGhlciBJUEMgdG8gdGhlIHJlbW90ZQorICAgICAgICBwcm9jZXNzIHdpdGggYSBu
dWxsIGhhbmRsZSAoc2luY2UgdGhlIHNoYXJlZCBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBv
bGQKKyAgICAgICAgcmluZyBidWZmZXIgaXMgZ2V0dGluZyBkZXN0cm95ZWQpLiBBcyBhIHJlc3Vs
dCwgb2YgdGhpcyBvcmRlcmluZyBpc3N1ZSwgdGhlCisgICAgICAgIHJlbW90ZSBwcm9jZXNzIHdv
dWxkIGVuZCB1cCB3aXRoIGEgUmluZ0J1ZmZlciB3aXRoIGEgbnVsbCBzaGFyZWQgbWVtb3J5IGhh
bmRsZQorICAgICAgICBhbmQgbm8gYXVkaW8gd291bGQgYmUgcmVuZGVyZWQuCisKKyAgICAgICAg
V2UgY291bGQgaGF2ZSBhZGRyZXNzZWQgdGhlIGlzc3VlIGxpa2Ugc286CisgICAgICAgIGBgYAor
ICAgICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOworICAgICAgICBtX3JpbmdCdWZmZXIgPSBt
X3JpbmdCdWZmZXJDYWxsYmFjayhkZXNjcmlwdGlvbiwgY2FwYWNpdHkpLm1vdmVUb1VuaXF1ZVB0
cigpOworICAgICAgICBgYGAKKyAgICAgICAgSG93ZXZlciwgdGhpcyB3b3VsZCBiZSBzdXBlciBm
cmFnaWxlLiBJbnN0ZWFkLCBJIGhhdmUgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CisgICAg
ICAgIDEuIElmIHRoZXJlIGlzIGFscmVhZHkgYSByaW5nQnVmZmVyLCByZXVzZSBpdCBpbnN0ZWFk
IG9mIHJlY29uc3RydWN0aW5nIGl0LgorICAgICAgICAgICBDYWxsaW5nIGFsbG9jYXRlKCkgd2l0
aCB0aGUgbmV3IHBhcmFtZXRlcnMgb24gdGhlIGV4aXN0aW5nIHJpbmcgYnVmZmVyIGlzCisgICAg
ICAgICAgIHN1ZmZpY2llbnQgaW4gdGhpcyBjYXNlLgorICAgICAgICAyLiBCZWNhdXNlIG9mIDEs
IHRoZSByaW5nIGJ1ZmZlciBjcmVhdGlvbiBjYWxsYmFjayBubyBsb25nZXIgbmVlZHMgdG8gY2Fs
bAorICAgICAgICAgICBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKCkuCisKKyAgICAgICAgSSBhbHNv
IG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIG1ha2UgdGhlIGNvZGUgc2ltcGxlciBhbmQg
dG8gcmVkdWNlIGNvZGUKKyAgICAgICAgZHVwbGljYXRpb246CisgICAgICAgIC0gVGhlIHN0b3Jh
Z2UgY2hhbmdlIGhhbmRsZXIgcGFzc2VkIHRvIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlIGlzIG5v
dyBnaXZlbgorICAgICAgICAgIGFzIHBhcmFtZXRlciB0aGUgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uICYgZnJhbWVDb3VudC4gV2hhdCB0aGUgaGFuZGxlcgorICAgICAgICAgIGFsd2F5cyBkb2Vz
IGlzIHNlbmQgYW4gSVBDIHRvIHRoZSByZW1vdGUgcHJvY2VzcyB0byB0ZWxsIGl0IHRoYXQgdGhl
CisgICAgICAgICAgc3RvcmFnZSBjaGFuZ2VkIGFuZCBpbiBhbGwgY2FzZXMsIGl0IG5lZWRzIHRv
IHByb3ZpZGUgdGhlc2UgMiBwYXJhbWV0ZXJzCisgICAgICAgICAgYXMgd2VsbC4gVGhpcyBpcyBi
ZWNhdXNlIHRoZSByZW1vdGUgcHJvY2VzcyB3aWxsIG5lZWQgdG8gY2FsbAorICAgICAgICAgIENB
UmluZ0J1ZmZlcjo6YWxsb2NhdGUoKSwgd2hpY2ggcmVxdWlyZXMgdGhvc2UgMiBwYXJhbWV0ZXJz
LiBUaGlzCisgICAgICAgICAgc2ltcGxpZmllcyBvdXIgY29kZSBpbiBzb21lIGNhc2VzIHNpbmNl
IHdlIG5vIGxvbmdlciBuZWVkIGEgbWVjaGFuaXNtCisgICAgICAgICAgdG8gcmV0cmlldmUgdGhv
c2UgMiBwYXJhbWV0ZXJzIGZyb20gaW5zaWRlIHRoZSBzdG9yYWdlIGNoYW5nZSBoYW5kbGVyLgor
ICAgICAgICAtIFRoZSBsb2dpYyBvZiB0aGUgU3RvcmFnZUNoYW5nZSBJUEMgcmVjaXBpZW50IHRv
IHVwZGF0ZSBpdHMgcmluZ2J1ZmZlcgorICAgICAgICAgIHdpdGggdGhlIG5ldyBzaGFyZWQgbWVt
b3J5IGhhbmRsZSBpcyBjb21wbGljYXRlZCBhbmQgd2FzIGR1cGxpY2F0ZWQKKyAgICAgICAgICBp
biBhIExPVCBvZiBwbGFjZXMuIFRvIGFkZHJlc3MgdGhpcywgSSBpbnRyb2R1Y2VkIGEgbmV3Cisg
ICAgICAgICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnVwZGF0ZVJlYWRPbmx5U3RvcmFnZSgp
IGZ1bmN0aW9uIHdoaWNoIGRvZXMKKyAgICAgICAgICBleGFjdGx5IHdoYXQgd2UgbmVlZC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6QXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByZXBhcmUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrKToKKwogMjAyMC0xMi0xNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdWRpb10gU2lt
cGxpZnkgY29kZSByZWxhdGVkIHRvIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NzA5NGZmYTAzMWU1M2Q1Y2QzMDkyZTU1MTlkNDg5OTk2Njg0Nzc3NS4uYTY5MzQ4OGVhNzk2ODU5
ZTA5NGEwNjczZTU5NTA0ODkzNGVlZGMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MiBAQAorMjAy
MC0xMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQ
cm9jZXNzXSBodHRwczovL3d3dy53YXZlcGxheWVyLmluZm8vY3JlYXRlbWVkaWFlbGVtZW50c291
cmNlLXRlc3QvIGRlbW8gaXMgZmxha3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxOTk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVu
LgorCisgICAgICAgIFRoZSBpc3N1ZSB3YXMgd2l0aCB0aGUgZm9sbG93aW5nIGxpbmUgaW4gQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmU6CisgICAgICAgIGBtX3JpbmdCdWZmZXIg
PSBtX3JpbmdCdWZmZXJDYWxsYmFjayhkZXNjcmlwdGlvbiwgY2FwYWNpdHkpLm1vdmVUb1VuaXF1
ZVB0cigpO2AKKworICAgICAgICBJbiB0aGUgY2FzZSB3aGVyZSBtX3JpbmdCdWZmZXIgd2FzIG5v
bi1udWxsIGJlZm9yZSB0aGUgYXNzaWdubWVudCwgd2Ugd291bGQgaGF2ZQorICAgICAgICAyIFJp
bmdCdWZmZXJzIHRoYXQgd291bGQgY29leGlzdCBmb3IgYSB2ZXJ5IHNtYWxsIHBlcmlvZCBvZiB0
aW1lLiBXaGVuIHRoZSBuZXcKKyAgICAgICAgb25lIHdhcyBjcmVhdGVkLCB3ZSB3b3VsZCBzZW5k
IGFuIElQQyB0byB0aGUgcmVtb3RlIHByb2Nlc3Mgd2l0aCB0aGUgc2hhcmVkCisgICAgICAgIG1l
bW9yeSBoYW5kbGUgb2YgdGhlIG5ldyBSaW5nQnVmZmVyLiBIb3dldmVyLCB2ZXJ5IHNob3J0bHkg
YWZ0ZXIsIHRoZSBvbGQKKyAgICAgICAgcmluZyBidWZmZXIgd291bGQgZ2V0IGRlc3Ryb3llZCwg
Y2F1c2luZyB1cyB0byBzZW5kIGFub3RoZXIgSVBDIHRvIHRoZSByZW1vdGUKKyAgICAgICAgcHJv
Y2VzcyB3aXRoIGEgbnVsbCBoYW5kbGUgKHNpbmNlIHRoZSBzaGFyZWQgbWVtb3J5IGFzc29jaWF0
ZWQgd2l0aCB0aGUgb2xkCisgICAgICAgIHJpbmcgYnVmZmVyIGlzIGdldHRpbmcgZGVzdHJveWVk
KS4gQXMgYSByZXN1bHQsIG9mIHRoaXMgb3JkZXJpbmcgaXNzdWUsIHRoZQorICAgICAgICByZW1v
dGUgcHJvY2VzcyB3b3VsZCBlbmQgdXAgd2l0aCBhIFJpbmdCdWZmZXIgd2l0aCBhIG51bGwgc2hh
cmVkIG1lbW9yeSBoYW5kbGUKKyAgICAgICAgYW5kIG5vIGF1ZGlvIHdvdWxkIGJlIHJlbmRlcmVk
LgorCisgICAgICAgIFdlIGNvdWxkIGhhdmUgYWRkcmVzc2VkIHRoZSBpc3N1ZSBsaWtlIHNvOgor
ICAgICAgICBgYGAKKyAgICAgICAgbV9yaW5nQnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgbV9y
aW5nQnVmZmVyID0gbV9yaW5nQnVmZmVyQ2FsbGJhY2soZGVzY3JpcHRpb24sIGNhcGFjaXR5KS5t
b3ZlVG9VbmlxdWVQdHIoKTsKKyAgICAgICAgYGBgCisgICAgICAgIEhvd2V2ZXIsIHRoaXMgd291
bGQgYmUgc3VwZXIgZnJhZ2lsZS4gSW5zdGVhZCwgSSBoYXZlIG1hZGUgdGhlIGZvbGxvd2luZyBj
aGFuZ2VzOgorICAgICAgICAxLiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgcmluZ0J1ZmZlciwgcmV1
c2UgaXQgaW5zdGVhZCBvZiByZWNvbnN0cnVjdGluZyBpdC4KKyAgICAgICAgICAgQ2FsbGluZyBh
bGxvY2F0ZSgpIHdpdGggdGhlIG5ldyBwYXJhbWV0ZXJzIG9uIHRoZSBleGlzdGluZyByaW5nIGJ1
ZmZlciBpcworICAgICAgICAgICBzdWZmaWNpZW50IGluIHRoaXMgY2FzZS4KKyAgICAgICAgMi4g
QmVjYXVzZSBvZiAxLCB0aGUgcmluZyBidWZmZXIgY3JlYXRpb24gY2FsbGJhY2sgbm8gbG9uZ2Vy
IG5lZWRzIHRvIGNhbGwKKyAgICAgICAgICAgQ0FSaW5nQnVmZmVyOjphbGxvY2F0ZSgpLgorCisg
ICAgICAgIEkgYWxzbyBtYWRlIHRoZSBmb2xsb3dpbmcgY2hhbmdlcyB0byBtYWtlIHRoZSBjb2Rl
IHNpbXBsZXIgYW5kIHRvIHJlZHVjZSBjb2RlCisgICAgICAgIGR1cGxpY2F0aW9uOgorICAgICAg
ICAtIFRoZSBzdG9yYWdlIGNoYW5nZSBoYW5kbGVyIHBhc3NlZCB0byBTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSBpcyBub3cgZ2l2ZW4KKyAgICAgICAgICBhcyBwYXJhbWV0ZXIgdGhlIENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiAmIGZyYW1lQ291bnQuIFdoYXQgdGhlIGhhbmRsZXIKKyAgICAgICAg
ICBhbHdheXMgZG9lcyBpcyBzZW5kIGFuIElQQyB0byB0aGUgcmVtb3RlIHByb2Nlc3MgdG8gdGVs
bCBpdCB0aGF0IHRoZQorICAgICAgICAgIHN0b3JhZ2UgY2hhbmdlZCBhbmQgaW4gYWxsIGNhc2Vz
LCBpdCBuZWVkcyB0byBwcm92aWRlIHRoZXNlIDIgcGFyYW1ldGVycworICAgICAgICAgIGFzIHdl
bGwuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcmVtb3RlIHByb2Nlc3Mgd2lsbCBuZWVkIHRvIGNhbGwK
KyAgICAgICAgICBDQVJpbmdCdWZmZXI6OmFsbG9jYXRlKCksIHdoaWNoIHJlcXVpcmVzIHRob3Nl
IDIgcGFyYW1ldGVycy4gVGhpcworICAgICAgICAgIHNpbXBsaWZpZXMgb3VyIGNvZGUgaW4gc29t
ZSBjYXNlcyBzaW5jZSB3ZSBubyBsb25nZXIgbmVlZCBhIG1lY2hhbmlzbQorICAgICAgICAgIHRv
IHJldHJpZXZlIHRob3NlIDIgcGFyYW1ldGVycyBmcm9tIGluc2lkZSB0aGUgc3RvcmFnZSBjaGFu
Z2UgaGFuZGxlci4KKyAgICAgICAgLSBUaGUgbG9naWMgb2YgdGhlIFN0b3JhZ2VDaGFuZ2UgSVBD
IHJlY2lwaWVudCB0byB1cGRhdGUgaXRzIHJpbmdidWZmZXIKKyAgICAgICAgICB3aXRoIHRoZSBu
ZXcgc2hhcmVkIG1lbW9yeSBoYW5kbGUgaXMgY29tcGxpY2F0ZWQgYW5kIHdhcyBkdXBsaWNhdGVk
CisgICAgICAgICAgaW4gYSBMT1Qgb2YgcGxhY2VzLiBUbyBhZGRyZXNzIHRoaXMsIEkgaW50cm9k
dWNlZCBhIG5ldworICAgICAgICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjp1cGRhdGVSZWFk
T25seVN0b3JhZ2UoKSBmdW5jdGlvbiB3aGljaCBkb2VzCisgICAgICAgICAgZXhhY3RseSB3aGF0
IHdlIG5lZWQuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OnN0b3JhZ2VDaGFu
Z2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQp
OgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRTdG9yYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnVwZGF0ZVJlYWRPbmx5U3Rv
cmFnZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjphbGxvY2F0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpkZWFsbG9jYXRl
KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaDoKKyAg
ICAgICAgKFdlYktpdDo6U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OlNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnN0b3Jh
Z2UgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnN0b3JhZ2VDaGFuZ2VkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcmFnZUNoYW5n
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlck1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcjo6c3RvcmFnZUNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFn
ZSk6CisKIDIwMjAtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjcwOTM4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5jcHAKaW5kZXggYzJh
NWZlNzk1OTdiNzVhNzcyYmJhYzVlOTEwMGMzZjU0ODlmNzgwNi4uNDU2ZWVlMzFjZjllNDU1NzRj
N2E2M2M3MTlmMDMyODliYWE0Y2M1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQg
Q0FSaW5nQnVmZmVyOjphbGxvY2F0ZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZv
cm1hdCwgc2l6ZV90IGZyYW1lCiAgICAgbV9mcmFtZUNvdW50TWFzayA9IGZyYW1lQ291bnQgLSAx
OwogICAgIG1fY2FwYWNpdHlCeXRlcyA9IG1fYnl0ZXNQZXJGcmFtZSAqIGZyYW1lQ291bnQ7CiAK
LSAgICBtX2J1ZmZlcnMtPmFsbG9jYXRlKG1fY2FwYWNpdHlCeXRlcyAqIG1fY2hhbm5lbENvdW50
KTsKKyAgICBtX2J1ZmZlcnMtPmFsbG9jYXRlKG1fY2FwYWNpdHlCeXRlcyAqIG1fY2hhbm5lbENv
dW50LCBmb3JtYXQsIGZyYW1lQ291bnQpOwogCiAgICAgbV9wb2ludGVycy5yZXNpemUobV9jaGFu
bmVsQ291bnQpOwogICAgIEJ5dGUqIGNoYW5uZWxEYXRhID0gc3RhdGljX2Nhc3Q8Qnl0ZSo+KG1f
YnVmZmVycy0+ZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQ0FSaW5nQnVmZmVyLmgKaW5kZXggODg3MmE3NGZjNDcwY2JiNDdiMGY2N2VkZWNjZmRh
MzI1ZjdjZjQ1Mi4uZmIwMzQ2ZDk5MzJhNzY5MDRkNmJhNmIwNzE1Y2ZmM2RlNDJmNzcwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVy
LmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgQ0FSaW5nQnVmZmVyU3RvcmFnZSB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q0FSaW5nQnVmZmVy
U3RvcmFnZSgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUoc2l6ZV90KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGFsbG9jYXRlKHNpemVfdCwgY29uc3QgQ0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRlYWxsb2NhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkKiBkYXRhKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXRDdXJyZW50RnJhbWVCb3VuZHModWludDY0X3QmIHN0YXJ0VGlt
ZSwgdWludDY0X3QmIGVuZFRpbWUpID0gMDsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAg
IH5DQVJpbmdCdWZmZXJTdG9yYWdlVmVjdG9yKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAg
IHZvaWQgYWxsb2NhdGUoc2l6ZV90IGJ5dGVDb3VudCkgZmluYWwgeyBtX2J1ZmZlci5ncm93KGJ5
dGVDb3VudCk7IH0KKyAgICB2b2lkIGFsbG9jYXRlKHNpemVfdCBieXRlQ291bnQsIGNvbnN0IENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWwgeyBtX2J1ZmZlci5ncm93KGJ5
dGVDb3VudCk7IH0KICAgICB2b2lkIGRlYWxsb2NhdGUoKSBmaW5hbCB7IG1fYnVmZmVyLmNsZWFy
KCk7IH0KICAgICB2b2lkKiBkYXRhKCkgZmluYWwgeyByZXR1cm4gbV9idWZmZXIuZGF0YSgpOyB9
CiAgICAgdm9pZCBnZXRDdXJyZW50RnJhbWVCb3VuZHModWludDY0X3QmIHN0YXJ0VGltZSwgdWlu
dDY0X3QmIGVuZFRpbWUpIGZpbmFsOwpAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFRvb011Y2gsIC8vIGZldGNoIHN0YXJ0IHRpbWUgaXMgZWFybGllciB0aGFuIGJ1ZmZlciBzdGFy
dCB0aW1lIGFuZCBmZXRjaCBlbmQgdGltZSBpcyBsYXRlciB0aGFuIGJ1ZmZlciBlbmQgdGltZQog
ICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFsbG9jYXRlKGNvbnN0IENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhbGxv
Y2F0ZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgZnJhbWVDb3VudCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWFsbG9jYXRlKCk7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBFcnJvciBzdG9yZShjb25zdCBBdWRpb0J1ZmZlckxpc3QqLCBzaXplX3QgZnJhbWVDb3Vu
dCwgdWludDY0X3Qgc3RhcnRGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5oCmluZGV4IDQ2ZTFjZjMzNjI2MTdhMDA0MDc0ODk2NjJkZjE0NmEx
NzA4OGRhNWEuLjUxZWExY2U5MjQ5NTJhMjExMDEzNTViNzE0MWU0NTc4ODVkMGNjMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCkBAIC02Myw3
ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEF1ZGlvQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKHVpbnQ2NF90IHN0YXJ0RnJhbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKT47CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0NhbGxiYWNrKEF1ZGlvQ2FsbGJhY2smJik7Ci0g
ICAgdXNpbmcgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjxVbmlxdWVSZWY8
Q0FSaW5nQnVmZmVyPihjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsK
KyAgICB1c2luZyBSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayA9IEZ1bmN0aW9uPFVuaXF1ZVJl
ZjxDQVJpbmdCdWZmZXI+KCk+OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmluZ0J1ZmZl
ckNyZWF0aW9uQ2FsbGJhY2soUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2smJik7CiAKIHByaXZh
dGU6CkBAIC0xMTEsNyArMTExLDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBUYXBTdG9yYWdlOwog
ICAgIFJlZlB0cjxUYXBTdG9yYWdlPiBtX3RhcFN0b3JhZ2U7CiAgICAgQXVkaW9DYWxsYmFjayBt
X2F1ZGlvQ2FsbGJhY2s7Ci0gICAgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgbV9yaW5nQnVm
ZmVyQ2FsbGJhY2s7CisgICAgUmluZ0J1ZmZlckNyZWF0aW9uQ2FsbGJhY2sgbV9yaW5nQnVmZmVy
Q3JlYXRpb25DYWxsYmFjazsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCAwODM0MDE1MzA2MDAxOWYxY2FiYWNlMDBhMzIy
MjgyMTVmODAyNzFmLi42ZmY2OGVhZmY0Yzk4ZmQ3NjEzYWIyNDVlMDI1YzlmM2U4OTZjMjU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBA
IC04MCw2ICs4MCw3IEBAIFJlZlB0cjxBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OmNyZWF0ZShBVlBsYXllckl0CiAKIEF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyhBVlBsYXllckl0ZW0gKml0
ZW0pCiAgICAgOiBtX2F2UGxheWVySXRlbShpdGVtKQorICAgICwgbV9yaW5nQnVmZmVyQ3JlYXRp
b25DYWxsYmFjayhbXSB7IHJldHVybiBtYWtlVW5pcXVlUmVmPENBUmluZ0J1ZmZlcj4oKTsgfSkK
IHsKIH0KIApAQCAtMzM4LDEyICszMzksOSBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpwcmVwYXJlKENNSXRlbUNvdW50IG1heEZyYW1lcywgY29uc3QgQXVkaW9TdHJlYQogICAg
IHNpemVfdCBjYXBhY2l0eSA9IHN0ZDo6bWF4KHN0YXRpY19jYXN0PHNpemVfdD4oMiAqIG1heEZy
YW1lcyksIHN0YXRpY19jYXN0PHNpemVfdD4oa1JpbmdCdWZmZXJEdXJhdGlvbiAqIHNhbXBsZVJh
dGUpKTsKIAogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiB7ICpwcm9j
ZXNzaW5nRm9ybWF0IH07Ci0gICAgaWYgKG1fcmluZ0J1ZmZlckNhbGxiYWNrKQotICAgICAgICBt
X3JpbmdCdWZmZXIgPSBtX3JpbmdCdWZmZXJDYWxsYmFjayhkZXNjcmlwdGlvbiwgY2FwYWNpdHkp
Lm1vdmVUb1VuaXF1ZVB0cigpOwotICAgIGVsc2UgewotICAgICAgICBtX3JpbmdCdWZmZXIgPSBt
YWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKLSAgICAgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0
ZShkZXNjcmlwdGlvbiwgY2FwYWNpdHkpOwotICAgIH0KKyAgICBpZiAoIW1fcmluZ0J1ZmZlcikK
KyAgICAgICAgbV9yaW5nQnVmZmVyID0gbV9yaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjaygpLm1v
dmVUb1VuaXF1ZVB0cigpOworICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRpb24s
IGNhcGFjaXR5KTsKIAogICAgIC8vIEF1ZGlvQnVmZmVyTGlzdCBpcyBhIHZhcmlhYmxlLWxlbmd0
aCBzdHJ1Y3QsIHNvIGNyZWF0ZSBvbiB0aGUgaGVhcCB3aXRoIGEgZ2VuZXJpYyBuZXcoKSBvcGVy
YXRvcgogICAgIC8vIHdpdGggYSBjdXN0b20gc2l6ZSwgYW5kIGluaXRpYWxpemUgdGhlIHN0cnVj
dCBtYW51YWxseS4KQEAgLTQzOCw3ICs0MzYsNyBAQCB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpzZXRBdWRpb0NhbGxiYWNrKEF1ZGlvQ2FsbGJhY2smJiBjYWxsYmFjaykKIHZvaWQg
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNr
KFJpbmdCdWZmZXJDcmVhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKCFt
X2F2QXVkaW9NaXgpOwotICAgIG1fcmluZ0J1ZmZlckNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayk7CisgICAgbV9yaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCAyMjg1YTA5MTk3
Yzc2ZWMwOWRmM2UwNTlkZGIxNWRiMGZkYTBhNTZhLi43YzAwY2FjYmU1MWJmMzY3YTI3YjIxYjJl
ZmU4ZTgyNTgyODhkMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTcy
LDE5ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5n
ZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwgY29uc3QgV2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVy
T2ZGcmFtZXMpCiAgICAgewotICAgICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247Ci0K
LSAgICAgICAgaWYgKGlwY0hhbmRsZS5oYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1f
cmluZ0J1ZmZlci0+ZGVhbGxvY2F0ZSgpOwotICAgICAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRP
bmx5KGZhbHNlKTsKLSAgICAgICAgICAgIHN0b3JhZ2UoKS5zZXRTdG9yYWdlKG51bGxwdHIpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgYXV0byBtZW1vcnkgPSBT
aGFyZWRNZW1vcnk6Om1hcChpcGNIYW5kbGUuaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KTsKLSAgICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UoV1RGTW92ZShtZW1v
cnkpKTsKLSAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOwotICAgICAgICBtX3Jp
bmdCdWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgICAg
IHN0b3JhZ2UoKS51cGRhdGVSZWFkT25seVN0b3JhZ2UobV9yaW5nQnVmZmVyLmdldCgpLCBpcGNI
YW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogICAgIH0KICNlbmRp
ZgogCkBAIC0xNjQsNyArMTUyLDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBXZWJDb3JlOjpBdWRpb091dHB1dFVuaXRBZGFwdG9yIG1fYXVkaW9PdXRwdXRVbml0QWRhcHRv
cjsKIAotICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9u
OwogICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAg
ICBNYWNoU2VtYXBob3JlIG1fcmVuZGVyU2VtYXBob3JlOwogICAgIHVpbnQ2NF90IG1fc3RhcnRG
cmFtZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAKaW5kZXggNGIzZTE5
ZWM1ZjlkNDQ2ODJkMjUzY2E0YjBjZDUyYmJkMTc3YjZjMy4uNWU2YThhYTMyZWQzNDA4MDJkZjlj
MGJjMGM4YWIxZTFmMmMyYjI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eS5jcHAK
QEAgLTM3LDggKzM3LDggQEAgUmVmPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94eT4gUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGUoV2ViQ28KIHsKICAgICBhdXRvIHJl
bW90ZVByb3ZpZGVyID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJv
eHkoaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogCi0gICAgbG9jYWxQcm92aWRl
ci5zZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayhbcmVtb3RlUHJvdmlkZXJdKGF1dG8gZGVz
Y3JpcHRpb24sIGF1dG8gY2FwYWNpdHkpIHsKLSAgICAgICAgcmV0dXJuIHJlbW90ZVByb3ZpZGVy
LT5jcmVhdGVSaW5nQnVmZmVyKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSk7CisgICAgbG9jYWxQcm92
aWRlci5zZXRSaW5nQnVmZmVyQ3JlYXRpb25DYWxsYmFjayhbcmVtb3RlUHJvdmlkZXJdKCkgewor
ICAgICAgICByZXR1cm4gcmVtb3RlUHJvdmlkZXItPmNyZWF0ZVJpbmdCdWZmZXIoKTsKICAgICB9
KTsKICAgICBsb2NhbFByb3ZpZGVyLnNldEF1ZGlvQ2FsbGJhY2soW3JlbW90ZVByb3ZpZGVyXShh
dXRvIHN0YXJ0RnJhbWUsIGF1dG8gbnVtYmVyT2ZGcmFtZXMpIHsKICAgICAgICAgcmVtb3RlUHJv
dmlkZXItPm5ld0F1ZGlvU2FtcGxlcyhzdGFydEZyYW1lLCBudW1iZXJPZkZyYW1lcyk7CkBAIC01
NSwxNSArNTUsMTEgQEAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyUHJveHkoV2ViQ29yZTo6TWVkaWFQbGEKIAogUmVtb3RlQXVkaW9Tb3Vy
Y2VQcm92aWRlclByb3h5Ojp+UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5KCkgPSBkZWZh
dWx0OwogCi1VbmlxdWVSZWY8Q0FSaW5nQnVmZmVyPiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHk6OmNyZWF0ZVJpbmdCdWZmZXIoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgc2l6ZV90IGNhcGFjaXR5KQorVW5pcXVlUmVmPENBUmluZ0J1ZmZlcj4gUmVt
b3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpjcmVhdGVSaW5nQnVmZmVyKCkKIHsKLSAgICBt
X3JpbmdCdWZmZXJEZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwotICAgIG1fcmluZ0J1ZmZlckNh
cGFjaXR5ID0gY2FwYWNpdHk7Ci0gICAgYXV0byByaW5nQnVmZmVyID0gbWFrZVVuaXF1ZVJlZjxD
QVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKFNoYXJlZE1lbW9yeSogbWVtb3J5KSBtdXRhYmxl
IHsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RvcmFnZUNoYW5nZWQobWVtb3J5KTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZVJlZjxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2U+KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKFNoYXJlZE1l
bW9yeSogbWVtb3J5LCBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6
ZV90IGZyYW1lQ291bnQpIG11dGFibGUgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zdG9yYWdl
Q2hhbmdlZChtZW1vcnksIGZvcm1hdCwgZnJhbWVDb3VudCk7CiAgICAgfSkpOwotICAgIHJpbmdC
dWZmZXItPmFsbG9jYXRlKGRlc2NyaXB0aW9uLCBjYXBhY2l0eSk7Ci0gICAgcmV0dXJuIHJpbmdC
dWZmZXI7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpuZXdBdWRp
b1NhbXBsZXModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCkBA
IC03MSw3ICs2Nyw3IEBAIHZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpuZXdB
dWRpb1NhbXBsZXModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0CiAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6QXVkaW9T
YW1wbGVzQXZhaWxhYmxlIHsgbV9pZGVudGlmaWVyLCBzdGFydEZyYW1lLCBudW1iZXJPZkZyYW1l
cyB9LCAwKTsKIH0KIAotdm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk6OnN0b3Jh
Z2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogbWVtb3J5KQordm9pZCBSZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyUHJveHk6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogbWVtb3J5LCBjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCiB7CiAg
ICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwogICAgIGlmIChtZW1vcnkpCkBAIC04Myw3
ICs3OSw3IEBAIHZvaWQgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5OjpzdG9yYWdlQ2hh
bmdlZChTaGFyZWRNZW1vcnkqIG1lbW9yeSkKICNlbHNlCiAgICAgdWludDY0X3QgZGF0YVNpemUg
PSAwOwogI2VuZGlmCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRp
b1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6QXVkaW9TdG9yYWdlQ2hhbmdlZCB7IG1faWRlbnRpZmll
ciwgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9
LCBtX3JpbmdCdWZmZXJEZXNjcmlwdGlvbiwgbV9yaW5nQnVmZmVyQ2FwYWNpdHkgfSwgMCk7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlcjo6QXVkaW9TdG9yYWdlQ2hhbmdlZCB7IG1faWRlbnRpZmllciwgU2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksICBkYXRhU2l6ZSB9LCBmb3JtYXQsIGZyYW1l
Q291bnQgfSwgMCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJQcm94eS5oCmluZGV4IDA0NzEwMWY3YmUyODc0MmRmNTk2ZjJiZmM0MjVjODE0YWEwOWIx
MDQuLmFjOGQ2M2Q0OWVkZWEyMTM1MWZjODk5NjRlMzdhNDk1OTY0ZjNkZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlclByb3h5LmgKQEAgLTQ3LDIyICs0NywxOSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyUHJveHk+IGNyZWF0ZShXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDJik7CiAgICAgflJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJQcm94eSgpOwogCi0gICAgVW5pcXVlUmVmPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gY3JlYXRl
UmluZ0J1ZmZlcihjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXpl
X3QpOworICAgIFVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IGNyZWF0ZVJpbmdCdWZm
ZXIoKTsKICAgICB2b2lkIG5ld0F1ZGlvU2FtcGxlcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50
NjRfdCBlbmRGcmFtZSk7CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
clByb3h5KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlv
bj4mJik7CiAKLSAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSopOworICAgIHZv
aWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KTsKIAogICAgIC8vIEF1
ZGlvU291cmNlUHJvdmlkZXJDbGllbnQKICAgICB2b2lkIHNldEZvcm1hdChzaXplX3QgbnVtYmVy
T2ZDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSkgZmluYWwgeyB9CiAKICAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKLQotICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biBtX3JpbmdCdWZmZXJEZXNjcmlwdGlvbjsKLSAgICBzaXplX3QgbV9yaW5nQnVmZmVyQ2FwYWNp
dHkgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKaW5kZXggZWM2NmRkYTkyYTRkZDljOTkyMTEzZTRl
YmQ0Yzc4NjM3ZTM0ZjI2Ni4uNjRiMDkxNGUxODQxMTYyODk3OWY0MmZiYzNiNzRiZTQzMWJhNWUw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKQEAgLTEw
NSwxOCArMTA1LDcgQEAgdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmUKICAgICBNRVNTQUdFX0NIRUNL
KFdlYkF1ZGlvQnVmZmVyTGlzdDo6aXNTdXBwb3J0ZWREZXNjcmlwdGlvbihkZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpKTsKICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CiAKLSAg
ICBpZiAoaXBjSGFuZGxlLmhhbmRsZS5pc051bGwoKSkgewotICAgICAgICBtX3JpbmdCdWZmZXIt
PmRlYWxsb2NhdGUoKTsKLSAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAg
ICAgICAgc3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGlwY0hhbmRsZS5oYW5k
bGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIHN0b3JhZ2UoKS5z
ZXRTdG9yYWdlKFdURk1vdmUobWVtb3J5KSk7Ci0gICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRy
dWUpOwotCi0gICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOworICAgIHN0b3JhZ2UoKS51cGRhdGVSZWFkT25seVN0b3JhZ2UobV9yaW5nQnVmZmVy
LmdldCgpLCBpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwog
CiAgICAgbV9hdWRpb0J1ZmZlckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4o
bV9kZXNjcmlwdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCAxZmIxY2EyMmVmNGRiMjI2ZmEz
NGMxYTNkMTUyM2M3MmZmOGRkMmVlLi41M2ZkNGI0YWVmODg1ZGNlMWEwZTIxNGE0MTVlODJjZTUw
NTQ5ZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTc0LDE4ICs3NCw3IEBAIHZvaWQgUmVtb3RlTWVk
aWFSZWNvcmRlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5
OjpJUENIYW5kCiAKICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CiAKLSAgICBpZiAo
aXBjSGFuZGxlLmhhbmRsZS5pc051bGwoKSkgewotICAgICAgICBtX3JpbmdCdWZmZXItPmRlYWxs
b2NhdGUoKTsKLSAgICAgICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAgICAgICAg
c3RvcmFnZSgpLnNldFN0b3JhZ2UobnVsbHB0cik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBhdXRvIG1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGlwY0hhbmRsZS5oYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIHN0b3JhZ2UoKS5zZXRTdG9y
YWdlKFdURk1vdmUobWVtb3J5KSk7Ci0gICAgc3RvcmFnZSgpLnNldFJlYWRPbmx5KHRydWUpOwot
Ci0gICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1l
cyk7CisgICAgc3RvcmFnZSgpLnVwZGF0ZVJlYWRPbmx5U3RvcmFnZSgqbV9yaW5nQnVmZmVyLCBp
cGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogICAgIG1fYXVk
aW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KG1fZGVzY3JpcHRp
b24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5jcHAKaW5kZXggZDdlMzE0M2M5ODgxNGI5YTMyMTE1Yjk4ODk3ODE5
ZWQ5N2VmYWExMS4uZDUwNzJlNTRlOGYzYmY4NTc1MjdhZmYzNTE2NTNhNmE4ZWVjYmI0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlLmNwcApAQCAtMjgsMzUgKzI4LDQ2IEBACiAKICNpZiBVU0UoTUVESUFUT09MQk9YKQog
CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNldFN0b3JhZ2UoUmVmUHRyPFNoYXJl
ZE1lbW9yeT4mJiBzdG9yYWdlKQordm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2V0U3Rv
cmFnZShSZWZQdHI8U2hhcmVkTWVtb3J5PiYmIHN0b3JhZ2UsIGNvbnN0IENBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCkKIHsKICAgICBBU1NFUlQoc3Rv
cmFnZSB8fCAhbV9yZWFkT25seSk7CiAgICAgbV9zdG9yYWdlID0gV1RGTW92ZShzdG9yYWdlKTsK
ICAgICBpZiAobV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXIpCi0gICAgICAgIG1fc3RvcmFnZUNoYW5n
ZWRIYW5kbGVyKG1fc3RvcmFnZS5nZXQoKSk7CisgICAgICAgIG1fc3RvcmFnZUNoYW5nZWRIYW5k
bGVyKG1fc3RvcmFnZS5nZXQoKSwgZm9ybWF0LCBmcmFtZUNvdW50KTsKIH0KIAotdm9pZCBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2V0UmVhZE9ubHkoYm9vbCByZWFkT25seSkKK3ZvaWQgU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnVwZGF0ZVJlYWRPbmx5U3RvcmFnZShXZWJDb3JlOjpDQVJp
bmdCdWZmZXImIHJpbmdCdWZmZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUs
IGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3Vu
dCkKIHsKLSAgICBBU1NFUlQobV9zdG9yYWdlIHx8ICFyZWFkT25seSk7Ci0gICAgbV9yZWFkT25s
eSA9IHJlYWRPbmx5OworICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpIHsKKyAgICAgICAgcmluZ0J1
ZmZlci5kZWFsbG9jYXRlKCk7CisgICAgICAgIG1fcmVhZE9ubHkgPSBmYWxzZTsKKyAgICAgICAg
bV9zdG9yYWdlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8g
bWVtb3J5ID0gU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KTsKKyAgICBtX3N0b3JhZ2UgPSBXVEZNb3ZlKG1lbW9yeSk7CisgICAgbV9y
ZWFkT25seSA9IHRydWU7CisgICAgcmluZ0J1ZmZlci5hbGxvY2F0ZShmb3JtYXQsIGZyYW1lQ291
bnQpOwogfQogCi12b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjphbGxvY2F0ZShzaXplX3Qg
Ynl0ZUNvdW50KQordm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxsb2NhdGUoc2l6ZV90
IGJ5dGVDb3VudCwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVf
dCBmcmFtZUNvdW50KQogewogICAgIGlmICghbV9yZWFkT25seSkgewogICAgICAgICBhdXRvIHNo
YXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoYnl0ZUNvdW50ICsgc2l6ZW9mKEZy
YW1lQm91bmRzKSk7CiAgICAgICAgIG5ldyAoTm90TnVsbCwgc2hhcmVkTWVtb3J5LT5kYXRhKCkp
IEZyYW1lQm91bmRzOwotICAgICAgICBzZXRTdG9yYWdlKFdURk1vdmUoc2hhcmVkTWVtb3J5KSk7
CisgICAgICAgIHNldFN0b3JhZ2UoV1RGTW92ZShzaGFyZWRNZW1vcnkpLCBmb3JtYXQsIGZyYW1l
Q291bnQpOwogICAgIH0KIH0KIAogdm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxv
Y2F0ZSgpCiB7CiAgICAgaWYgKCFtX3JlYWRPbmx5KQotICAgICAgICBzZXRTdG9yYWdlKG51bGxw
dHIpOworICAgICAgICBzZXRTdG9yYWdlKG51bGxwdHIsIHsgfSwgMCk7CiB9CiAKIGF1dG8gU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNoYXJlZEZyYW1lQm91bmRzKCkgY29uc3QgLT4gRnJhbWVC
b3VuZHMqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaAppbmRleCAwYjJkZmRkMjEyOGZhY2EyNGI3ZWIyNjE5MmVhMTI0Zjc0Y2Qw
ZGMzLi4yZjk2ZmUxNDc1NDVmOTEzOTc4MzQwMTlhOGZjMDhjMTI5MDUyMDYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgK
QEAgLTMyLDI1ICszMiwyNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CiAj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENB
UmluZ0J1ZmZlcjsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlIDogcHVibGljIFdlYkNvcmU6OkNBUmluZ0J1ZmZlclN0b3JhZ2UgewogcHVi
bGljOgotICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlKEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVt
b3J5Kik+JiYgc3RvcmFnZUNoYW5nZWRIYW5kbGVyID0gbnVsbHB0cikKKyAgICBTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZShGdW5jdGlvbjx2b2lkKFNoYXJlZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk+JiYg
c3RvcmFnZUNoYW5nZWRIYW5kbGVyID0gbnVsbHB0cikKICAgICAgICAgOiBtX3N0b3JhZ2VDaGFu
Z2VkSGFuZGxlcihXVEZNb3ZlKHN0b3JhZ2VDaGFuZ2VkSGFuZGxlcikpCiAgICAgewogICAgIH0K
IAogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXIgPSBudWxs
cHRyOyB9CiAKLSAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzdG9yYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9zdG9yYWdlOyB9Ci0gICAgdm9pZCBzZXRTdG9yYWdlKFJlZlB0cjxTaGFyZWRNZW1vcnk+
JiYpOwotCi0gICAgYm9vbCByZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZE9ubHk7IH0K
LSAgICB2b2lkIHNldFJlYWRPbmx5KGJvb2wpOworICAgIFNoYXJlZE1lbW9yeSogc3RvcmFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZS5nZXQoKTsgfQorICAgIHZvaWQgdXBkYXRlUmVhZE9u
bHlTdG9yYWdlKFdlYkNvcmU6OkNBUmluZ0J1ZmZlciYsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFu
ZGxlJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNp
emVfdCBmcmFtZUNvdW50KTsKIAogICAgIC8vIFdlYkNvcmU6OkNBUmluZ0J1ZmZlclN0b3JhZ2UK
LSAgICB2b2lkIGFsbG9jYXRlKHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBhbGxvY2F0ZShzaXpl
X3QsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXpl
X3QgZnJhbWVDb3VudCkgZmluYWw7CiAgICAgdm9pZCBkZWFsbG9jYXRlKCkgZmluYWw7CiAgICAg
dm9pZCogZGF0YSgpIGZpbmFsOwogICAgIHZvaWQgZ2V0Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2
NF90JiBzdGFydFRpbWUsIHVpbnQ2NF90JiBlbmRUaW1lKSBmaW5hbDsKQEAgLTY3LDkgKzY4LDEw
IEBAIHByaXZhdGU6CiAgICAgICAgIEF0b21pYzx1bnNpZ25lZD4gYm91bmRzQnVmZmVySW5kZXgg
eyAwIH07CiAgICAgfTsKIAorICAgIHZvaWQgc2V0U3RvcmFnZShSZWZQdHI8U2hhcmVkTWVtb3J5
PiYmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6
ZV90IGZyYW1lQ291bnQpOwogICAgIEZyYW1lQm91bmRzKiBzaGFyZWRGcmFtZUJvdW5kcygpIGNv
bnN0OwogCi0gICAgRnVuY3Rpb248dm9pZChTaGFyZWRNZW1vcnkqKT4gbV9zdG9yYWdlQ2hhbmdl
ZEhhbmRsZXI7CisgICAgRnVuY3Rpb248dm9pZChTaGFyZWRNZW1vcnkqLCBjb25zdCBXZWJDb3Jl
OjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpPiBt
X3N0b3JhZ2VDaGFuZ2VkSGFuZGxlcjsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX3N0b3Jh
Z2U7CiAgICAgYm9vbCBtX3JlYWRPbmx5IHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX3N0YXJ0
RnJhbWUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDMyMmMzOGVkNDM2
ZTdhZjA3YjQ4Y2NiNTI4NGMxM2RkMjA4MjQ1MTguLjM3Nzc2NjhhZTZkYjUyZGMyYTJkODI4MDM1
MGU1MDQxM2ZkYzc5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01OSw3ICs1
OSw3IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX2lkKGlkKQogICAgICAgICAsIG1fY29ubmVjdGlv
bihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNl
KSkKLSAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZT4oc3RkOjpiaW5kKCZTb3VyY2VQcm94eTo6c3RvcmFnZUNoYW5nZWQsIHRoaXMsIHN0
ZDo6cGxhY2Vob2xkZXJzOjpfMSkpKQorICAgICAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVl
UmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJpbmQoJlNvdXJjZVByb3h5OjpzdG9y
YWdlQ2hhbmdlZCwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVy
czo6XzIsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMykpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2Ut
PmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgc3dpdGNoIChtX3NvdXJjZS0+dHlwZSgpKSB7
CkBAIC0xOTQsNyArMTk0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1fcm90YXRpb25T
ZXNzaW9uLT5yb3RhdGUoc2FtcGxlLCByb3RhdGlvbiwgSW1hZ2VSb3RhdGlvblNlc3Npb25WVDo6
SXNDR0ltYWdlQ29tcGF0aWJsZTo6Tm8pOwogICAgIH0KIAotICAgIHZvaWQgc3RvcmFnZUNoYW5n
ZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQorICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVk
TWVtb3J5KiBzdG9yYWdlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCiAgICAgewogICAgICAgICBTaGFyZWRNZW1vcnk6
OkhhbmRsZSBoYW5kbGU7CiAgICAgICAgIGlmIChzdG9yYWdlKQpAQCAtMjA2LDcgKzIwNiw3IEBA
IHByaXZhdGU6CiAjZWxzZQogICAgICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CiAjZW5kaWYK
LSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcjo6QXVkaW9TdG9yYWdlQ2hhbmdlZChtX2lkLCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSB7IFdURk1vdmUoaGFuZGxlKSwgIGRhdGFTaXplIH0sIG1fZGVzY3JpcHRpb24sIG1fbnVtYmVy
T2ZGcmFtZXMpLCAwKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6QXVkaW9TdG9yYWdlQ2hhbmdlZChtX2lkLCBTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgIGRhdGFTaXplIH0sIGZvcm1hdCwg
ZnJhbWVDb3VudCksIDApOwogICAgIH0KIAogICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9w
cGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBh
YWZiNzZiZjIwNDJjZjI5MzBjNzY3MWMxMDI5MjQzOTkwYWVjMjBiLi4xNmNmNDk4NTQxZGU4NDlh
ZjY3ODU0YjhjYTIzMzNmZGJhMmVjOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKQEAgLTc3LDIzICs3Nyw4IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6
CiB7CiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwogCi0gICAgUmVmUHRyPFNoYXJl
ZE1lbW9yeT4gbWVtb3J5OwotICAgIGlmICghaGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1l
bW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkT25seSk7Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBzaGFyZWQg
bWVtb3J5IGZvciByZW1vdGUgc291cmNlIik7Ci0gICAgfQotCiAgICAgYXV0byYgc3RvcmFnZSA9
IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9y
YWdlKCkpOwotICAgIGlmICghbWVtb3J5KSB7Ci0gICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVhbGxv
Y2F0ZSgpOwotICAgICAgICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAgICAgICAgc3Rv
cmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
c3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICBzdG9yYWdl
LnNldFJlYWRPbmx5KHRydWUpOwotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3JpcHRp
b24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBzdG9yYWdlLnVwZGF0ZVJlYWRPbmx5U3RvcmFnZSgq
bV9yaW5nQnVmZmVyLCBoYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAgICAg
bV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51
bWJlck9mRnJhbWVzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCmlu
ZGV4IDBjN2Q0NTYxMTFiMjFkYjEwZWY5NWVmZTFkYzA1YWY1ZTIwMTkxZmEuLjJiYWEyZDcxNTg2
ZGRlMWVkZmZlN2Y0NzBiN2NkMjg2YzZkNzg4ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmEKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICA6IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYShj
YWxsYmFjaywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSwgZmFsc2UpCiAgICAg
LCBtX251bWJlck9mRnJhbWVzKGhhcmR3YXJlU2FtcGxlUmF0ZSgpICogcmluZ0J1ZmZlclNpemVJ
blNlY29uZCkKLSAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPFdlYkNvcmU6OkNBUmluZ0J1
ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oc3RkOjpiaW5kKCZS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0b3JhZ2VDaGFuZ2VkLCB0aGlzLCBzdGQ6OnBs
YWNlaG9sZGVyczo6XzEpKSkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3Jl
OjpDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHN0
ZDo6YmluZCgmUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9yYWdlQ2hhbmdlZCwgdGhp
cywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIsIHN0ZDo6cGxh
Y2Vob2xkZXJzOjpfMykpKSkKICAgICAsIG1fc2FtcGxlUmF0ZShoYXJkd2FyZVNhbXBsZVJhdGUo
KSkKICNlbHNlCiAgICAgOiBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKGNhbGxi
YWNrLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKQpAQCAtMTgyLDcgKzE4Miw3
IEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJRdWFudHVtKCkKIH0K
IAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkKK3ZvaWQgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJh
bWVDb3VudCkKIHsKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKHN0
b3JhZ2UpCkBAIC0xOTUsMTEgKzE5NSw3IEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCiAgICAgdWludDY0X3Qg
ZGF0YVNpemUgPSAwOwogI2VuZGlmCiAKLSAgICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24g
c3RyZWFtRm9ybWF0OwotICAgIGdldEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbihzdHJlYW1G
b3JtYXQpOwotICAgIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlv
bihzdHJlYW1Gb3JtYXQpOwotCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVk
aW9EZXN0aW5hdGlvbk1hbmFnZXI6OkF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkIHsgbV9kZXN0
aW5hdGlvbklELCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgZGF0
YVNpemUgfSwgc3RyZWFtRm9ybWF0LCBtX251bWJlck9mRnJhbWVzIH0sIDApOworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpBdWRpb1Nh
bXBsZXNTdG9yYWdlQ2hhbmdlZCB7IG1fZGVzdGluYXRpb25JRCwgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksIGRhdGFTaXplIH0sIGZvcm1hdCwgZnJhbWVDb3VudCB9
LCAwKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaAppbmRleCA5
ZDcxZGQzZDc0ODI4YWRkYjVjZjI5MTBkMDFiYWVhZDk5ODQzZDk1Li44ZDJjNjNlYjljNTVmYjhi
MmFjNTRiYWFkZThmNzNjZTVkNWIxY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
LmgKQEAgLTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKyAgICB2b2lkIHN0
b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk7CiAjZW5kaWYKIAogICAgIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1fZGVzdGluYXRpb25JRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKaW5kZXggODliYWI2MGUxOTVjNmEy
YmNiM2FmYzc5YTM3NmFhMDUyNDI1ZjI4NS4uOWYxYjc3MmYxYTI0ZWNhNTYxNWNkYjkwNTkyN2M0
NDY0MTg2ZDAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5j
cHAKQEAgLTEyNCwyMyArMTI0LDggQEAgdm9pZCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFu
YWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3IKIHsKICAgICBt
X2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CiAKLSAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBt
ZW1vcnk7Ci0gICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgbWVtb3J5ID0gU2hh
cmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5
KTsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoIW1lbW9yeSwgTWVkaWEsICJVbmFibGUg
dG8gY3JlYXRlIHNoYXJlZCBtZW1vcnkgZm9yIGF1ZGlvIHByb3ZpZGVyICVsbHUiLCBtX3Byb3Zp
ZGVyLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Ci0gICAgfQotCiAgICAgYXV0byYgc3RvcmFn
ZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5z
dG9yYWdlKCkpOwotICAgIGlmICghbWVtb3J5KSB7Ci0gICAgICAgIG1fcmluZ0J1ZmZlci0+ZGVh
bGxvY2F0ZSgpOwotICAgICAgICBzdG9yYWdlLnNldFJlYWRPbmx5KGZhbHNlKTsKLSAgICAgICAg
c3RvcmFnZS5zZXRTdG9yYWdlKG51bGxwdHIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgc3RvcmFnZS5zZXRTdG9yYWdlKG1lbW9yeS5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICBzdG9y
YWdlLnNldFJlYWRPbmx5KHRydWUpOwotICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZGVzY3Jp
cHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBzdG9yYWdlLnVwZGF0ZVJlYWRPbmx5U3RvcmFn
ZSgqbV9yaW5nQnVmZmVyLCBoYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAg
ICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuY3BwCmluZGV4IDQ3ODdlNGVhMzkzNTcwNmY0ZjBiYjMyZDBlNzJkNzkyYTU3NzYxMjQuLmRm
MjI1MDBjZDlmNmZjZmZkYmI0NGY0YzJjMGM4MGIwZGE1NTBiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPiBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW4KIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAg
OiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1faWRlbnRpZmllcihB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAg
LCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+KG1ha2VVbmlx
dWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHN0ZDo6YmluZCgmQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkLCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6
XzEpKSkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZm
ZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHN0ZDo6YmluZCgmQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VDaGFuZ2VkLCB0aGlzLCBzdGQ6OnBs
YWNlaG9sZGVyczo6XzEsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMiwgc3RkOjpwbGFjZWhvbGRlcnM6
Ol8zKSkpKQogewogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpDcmVhdGVSZW5kZXJlciB7IG1faWRlbnRp
ZmllciB9LCAwKTsKIH0KQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBXZWIK
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUgeyB0aW1lLCBudW1iZXJPZkZyYW1l
cyB9LCBtX2lkZW50aWZpZXIpOwogfQogCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCit2b2lkIEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3Jh
Z2UsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXpl
X3QgZnJhbWVDb3VudCkKIHsKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CiAgICAg
aWYgKHN0b3JhZ2UpCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlKQogI2Vsc2UK
ICAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7CiAjZW5kaWYKLSAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb1Nh
bXBsZXNTdG9yYWdlQ2hhbmdlZCB7IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZSho
YW5kbGUpLCBkYXRhU2l6ZSB9LCBtX2Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4o
bV9udW1iZXJPZkZyYW1lcykgfSwgbV9pZGVudGlmaWVyKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb1Nh
bXBsZXNTdG9yYWdlQ2hhbmdlZCB7IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZSho
YW5kbGUpLCBkYXRhU2l6ZSB9LCBmb3JtYXQsIGZyYW1lQ291bnQgfSwgbV9pZGVudGlmaWVyKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKaW5kZXggNmVmYTA2
YTgwYTY1Y2UyZjFmMGIyMmJjMGFmOTU0YjUzNDI3MmE3MC4uMWFiNmJjZTQ0NTRjNmM0ZDY2YzI0
NzhlY2M1YmY2ZGJmMGVmMTQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CiAKLSAg
ICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSopOworICAgIHZvaWQgc3RvcmFnZUNo
YW5nZWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KTsKIAogICAgIC8vIFdlYkNvcmU6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAgICAgdm9pZCBzdGFydCgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNv
cmRlclByaXZhdGUuY3BwCmluZGV4IGFiMDEzOGRmMzA0Zjc4YTI5MWY4ZjA2ZWJlMTVmODJlNjUy
MTA3OTQuLjczNWQ4Mjk0ZDhkNGQ1MTc3NzliZmI0OTdmZmRmMTljODI5ZmFmNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2
YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVyUHJpdmF0ZS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZTo6c3RhcnRSZWNvcmRpbmcoU3RhcnRSZWNvcmRpbmdDYWxsYmFjayYmIGNhbGxiYWNrKQog
CiAgICAgYXV0byBzZWxlY3RlZFRyYWNrcyA9IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzZWxlY3RU
cmFja3MobV9zdHJlYW0pOwogICAgIGlmIChzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKQotICAg
ICAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJl
ZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oc3RkOjpiaW5kKCZNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c3RvcmFnZUNoYW5nZWQsIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpKTsKKyAgICAg
ICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KHN0ZDo6YmluZCgmTWVkaWFSZWNvcmRlclByaXZhdGU6
OnN0b3JhZ2VDaGFuZ2VkLCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIHN0ZDo6cGxhY2Vo
b2xkZXJzOjpfMiwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8zKSkpOwogCiAgICAgbV9jb25uZWN0aW9u
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2Vy
OjpDcmVhdGVSZWNvcmRlciB7IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1Ry
YWNrLCAhIXNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2ssIG1fb3B0aW9ucyB9LCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgYXVkaW9UcmFjayA9IG1ha2VSZWZQdHIoc2VsZWN0
ZWRUcmFja3MuYXVkaW9UcmFjayksIHZpZGVvVHJhY2sgPSBtYWtlUmVmUHRyKHNlbGVjdGVkVHJh
Y2tzLnZpZGVvVHJhY2spLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXhj
ZXB0aW9uLCBTdHJpbmcmJiBtaW1lVHlwZSwgdW5zaWduZWQgYXVkaW9CaXRSYXRlLCB1bnNpZ25l
ZCB2aWRlb0JpdFJhdGUpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CkBAIC0x
MDcsNyArMTA3LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZh
aWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGwKICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OkF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZSB7IHRpbWUsIG51bWJlck9mRnJhbWVzIH0sIG1faWRlbnRpZmllcik7CiB9CiAKLXZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSkK
K3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSog
c3RvcmFnZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQs
IHNpemVfdCBmcmFtZUNvdW50KQogewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsK
ICAgICBpZiAoc3RvcmFnZSkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UpCiAjZWxzZQogICAg
IHVpbnQ2NF90IGRhdGFTaXplID0gMDsKICNlbmRpZgotICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNvcmRlcjo6QXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQg
eyBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgZGF0YVNpemUgfSwg
bV9kZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fbnVtYmVyT2ZGcmFtZXMpIH0s
IG1faWRlbnRpZmllcik7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlY29yZGVyOjpBdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCB7IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlIHsgV1RGTW92ZShoYW5kbGUpLCBkYXRhU2l6ZSB9LCBmb3JtYXQsIGZyYW1lQ291
bnQgfSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0
Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4mJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgZG91YmxlKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDc3MTdjNjJjMWJhMTBiN2EyNzM0MWQ4Mjk4NjY2
ZjdjYjgyYmQwOWMuLjhjYzBlNzRhMmEyNjc2NmY4NWU0NDRhNDg2NGMyZTQyYjUyOGVmMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuaApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
cGF1c2VSZWNvcmRpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2
b2lkIHJlc3VtZVJlY29yZGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwog
Ci0gICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqKTsKKyAgICB2b2lkIHN0b3Jh
Z2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKICAgICBNZWRpYVJlY29yZGVy
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVmPFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJp
dmF0ZT4gbV9zdHJlYW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCBjNGM2OWM3OGM4
ZTFmMzk1ZGEwNTU3ZGI5YTE4MTYxNzViMTNiMjFkLi45OWEwN2ZlOGY0ZGM3NWIzNjBmNWE1MGI3
NDBmZTc3OGFmZmI4OTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTEyMCwyNSAr
MTIwLDggQEAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpSZW1vdGVB
dWRpbyhSZWY8UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXIKIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFu
ZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQogewogICAgIG1fZGVzY3JpcHRpb24g
PSBkZXNjcmlwdGlvbjsKLQotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1lbW9yeTsKLSAgICBp
ZiAoIWhhbmRsZS5pc051bGwoKSkgewotICAgICAgICBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1h
cChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRighbWVtb3J5LCBXZWJSVEMsICJVbmFibGUgdG8gY3JlYXRlIHNo
YXJlZCBtZW1vcnkgZm9yIGF1ZGlvIHNvdXJjZSAlbGx1IiwgbV9zb3VyY2UtPmlkZW50aWZpZXIo
KS50b1VJbnQ2NCgpKTsKLSAgICB9Ci0KICAgICBhdXRvJiBzdG9yYWdlID0gc3RhdGljX2Nhc3Q8
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmPihtX3JpbmdCdWZmZXItPnN0b3JhZ2UoKSk7Ci0gICAg
aWYgKCFtZW1vcnkpIHsKLSAgICAgICAgbV9yaW5nQnVmZmVyLT5kZWFsbG9jYXRlKCk7Ci0gICAg
ICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHkoZmFsc2UpOwotICAgICAgICBzdG9yYWdlLnNldFN0b3Jh
Z2UobnVsbHB0cik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzdG9yYWdlLnNldFN0
b3JhZ2UobWVtb3J5LnJlbGVhc2VOb25OdWxsKCkpOwotICAgIHN0b3JhZ2Uuc2V0UmVhZE9ubHko
dHJ1ZSk7Ci0gICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShkZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOwotICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRl
c2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgc3RvcmFnZS51cGRhdGVSZWFkT25seVN0
b3JhZ2UoKm1fcmluZ0J1ZmZlciwgaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OwogfQogCiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykK
</data>

          </attachment>
      

    </bug>

</bugzilla>