<?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>230803</bug_id>
          
          <creation_ts>2021-09-26 01:54:44 -0700</creation_ts>
          <short_desc>[JSC][32bit] Fix build after unlinked baseline JIT (r283083)</short_desc>
          <delta_ts>2021-10-01 12:06:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kevin_neal</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797281</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-09-26 01:54:44 -0700</bug_when>
    <thetext>Bug #229223 broke 32-bit builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798857</commentid>
    <comment_count>1</comment_count>
      <attachid>439734</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-09-30 07:16:08 -0700</bug_when>
    <thetext>Created attachment 439734
WIP

This compiles/links/very basic stuff works, but it&apos;s still wrong and incomplete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799035</commentid>
    <comment_count>2</comment_count>
    <who name="Kevin Neal">kevin_neal</who>
    <bug_when>2021-09-30 15:11:49 -0700</bug_when>
    <thetext>Thank you for filing. The appropriate engineers have been notified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799036</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-30 15:12:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/83739988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799272</commentid>
    <comment_count>4</comment_count>
      <attachid>439849</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-10-01 06:44:12 -0700</bug_when>
    <thetext>Created attachment 439849
v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799275</commentid>
    <comment_count>5</comment_count>
      <attachid>439851</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-10-01 06:50:39 -0700</bug_when>
    <thetext>Created attachment 439851
v2

Try to fix i386 build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799284</commentid>
    <comment_count>6</comment_count>
      <attachid>439855</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-10-01 07:05:01 -0700</bug_when>
    <thetext>Created attachment 439855
v3

Add missing header to CMakeLists.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799289</commentid>
    <comment_count>7</comment_count>
      <attachid>439857</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-10-01 07:23:32 -0700</bug_when>
    <thetext>Created attachment 439857
v4

And another missing header... (RegisterMap.h)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799376</commentid>
    <comment_count>8</comment_count>
      <attachid>439857</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-01 10:22:32 -0700</bug_when>
    <thetext>Comment on attachment 439857
v4

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

Seems like a good first step to get things building. r=me

&gt; Source/JavaScriptCore/bytecode/CallLinkInfo.h:28
&gt; +#include &quot;CallFrameShuffleData.h&quot;

why was this needed. Why didn&apos;t the forward declare work?

&gt; Source/JavaScriptCore/jit/JITInlines.h:369
&gt; +    UNUSED_PARAM(value);
&gt; +    UNUSED_PARAM(bytecode);
&gt; +    // FIXME.

I think this can just be:
emitValueProfilingSite(valueProfileFor(bytecode.metadata(m_profiledCodeBlock), m_bytecodeIndex.checkpoint()), value);

&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:1472
&gt; +        loadGlobalObject(resultRegs.payloadGPR()); // FIXME: need to move the whole thing.

I think you just need:
move(TrustedImm32(CellTag), resultRegs.tagGPR())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799384</commentid>
    <comment_count>9</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-10-01 10:33:55 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #8)
&gt; Comment on attachment 439857 [details]
&gt; v4
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=439857&amp;action=review
&gt; 
&gt; Seems like a good first step to get things building. r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/bytecode/CallLinkInfo.h:28
&gt; &gt; +#include &quot;CallFrameShuffleData.h&quot;
&gt; 
&gt; why was this needed. Why didn&apos;t the forward declare work?

std::unique_ptr was complaining, but I read in the spec that it explicitly allows for incomplete types. I&apos;ll try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799396</commentid>
    <comment_count>10</comment_count>
      <attachid>439876</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-10-01 10:49:59 -0700</bug_when>
    <thetext>Created attachment 439876
v5

patch to land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799397</commentid>
    <comment_count>11</comment_count>
      <attachid>439877</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-10-01 10:54:21 -0700</bug_when>
    <thetext>Created attachment 439877
v6

v6, patch to land (credit a couple of colleagues who helped with this patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799454</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-01 12:06:13 -0700</bug_when>
    <thetext>Committed r283389 (242393@main): &lt;https://commits.webkit.org/242393@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439877.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439734</attachid>
            <date>2021-09-30 07:16:08 -0700</date>
            <delta_ts>2021-10-01 06:44:12 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>0001-Test.patch</filename>
            <type>text/plain</type>
            <size>24011</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAxMWM3ZjU1YjUwMGRiZGFjYmRiZTVkZTI4ODc2MGE0M2U1NjcyZGZhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCAyNiBTZXAgMjAyMSAxMDo0NDoxMiArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFRlc3QuCgotLS0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oICAg
ICAgICAgICB8IDI2ICsrLS0tLQogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCAg
ICAgICAgICAgIHwgODkgKysrKysrKysrKysrKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oIHwgMTAgKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oICAgICAgICAgICAgICAgfCAxMiArKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ2FsbDMyXzY0LmNwcCAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaCAgICAgICAgfCAzNCArKysrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwICAgICAgfCAgNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAgIHwgMjAgKystLS0KIC4uLi9qaXQvSklUUHJvcGVydHlBY2Nl
c3MzMl82NC5jcHAgICAgICAgICAgICB8IDM4ICsrKystLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDE3
NSBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IGRmNTFlOTUy
ZGRjZC4uZDhlYzczYjc4ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTg0MCwyNyArMTg0MCwxMyBAQCBw
dWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBUcnVz
dGVkSW1tMzIgaW1tLCBBYnNvbHV0ZUFkZHJlc3MgZGVzdCkKICAgICB7Ci0gICAgICAgIC8vIE1v
dmUgdGhlIGhpZ2ggYml0cyBvZiB0aGUgYWRkcmVzcyBpbnRvIGFkZHJlc3NUZW1wUmVnaXN0ZXIs
Ci0gICAgICAgIC8vIGFuZCBsb2FkIHRoZSB2YWx1ZSBpbnRvIGRhdGFUZW1wUmVnaXN0ZXIuCi0g
ICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rl
cik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmxkcihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVt
cFJlZ2lzdGVyLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxNigwKSk7Ci0KLSAgICAgICAg
Ly8gRG8gdGhlIGFkZC4KLSAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1
bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKLSAgICAgICAgaWYgKGFy
bUltbS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRfUyhkYXRhVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhcm1JbW0pOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIElmIHRoZSBvcGVyYW5kIGRvZXMgbm90IGZpdCBpbnRvIGFuIGltbWVkaWF0ZSB0
aGVuIGxvYWQgaXQgdGVtcG9yYXJpbHkKLSAgICAgICAgICAgIC8vIGludG8gYWRkcmVzc1RlbXBS
ZWdpc3Rlcjsgc2luY2Ugd2UncmUgb3ZlcndyaXRpbmcgYWRkcmVzc1RlbXBSZWdpc3RlcgotICAg
ICAgICAgICAgLy8gd2UnbGwgbmVlZCB0byByZWxvYWQgaXQgd2l0aCB0aGUgaGlnaCBiaXRzIG9m
IHRoZSBhZGRyZXNzIGFmdGVyd2FyZHMuCi0gICAgICAgICAgICBtb3ZlKGltbSwgYWRkcmVzc1Rl
bXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRfUyhkYXRhVGVtcFJlZ2lz
dGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBTdG9yZSB0aGUgcmVzdWx0LgotICAgICAgICBtX2Fzc2Vt
Ymxlci5zdHIoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3RlciwgQVJNVGh1bWJJ
bW1lZGlhdGU6Om1ha2VVSW50MTYoMCkpOworICAgICAgICBhZGQzMihpbW0sIGRlc3QpOworICAg
ICAgICByZXR1cm4gSnVtcChtYWtlQnJhbmNoKGNvbmQpKTsKKyAgICB9CiAKKyAgICBKdW1wIGJy
YW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNz
IGRlc3QpCisgICAgeworICAgICAgICBhZGQzMihpbW0sIGRlc3QpOwogICAgICAgICByZXR1cm4g
SnVtcChtYWtlQnJhbmNoKGNvbmQpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IDNlM2FlMmFmYWYw
Yy4uNTllNzJhZDU1MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTIzNTQsNiArMjM1NCw5NSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBKdW1wKCk7CiAgICAgfQogCisgICAgSnVtcCBicmFuY2hBZGQzMihS
ZXN1bHRDb25kaXRpb24gY29uZCwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBkZXN0KQorICAg
IHsKKyAgICAgICAgQVNTRVJUKChjb25kID09IE92ZXJmbG93KSB8fCAoY29uZCA9PSBTaWduZWQp
IHx8IChjb25kID09IFBvc2l0aXZlT3JaZXJvKSB8fCAoY29uZCA9PSBaZXJvKSB8fCAoY29uZCA9
PSBOb25aZXJvKSk7CisgICAgICAgIGlmIChjb25kID09IE92ZXJmbG93KSB7CisgICAgICAgICAg
ICBpZiAobV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAg
ICAgIGxvYWQgICAgZGVzdCwgZGF0YVRlbXAKKyAgICAgICAgICAgICAgICAgIG1vdmUgICAgaW1t
LCBpbW1UZW1wCisgICAgICAgICAgICAgICAgICB4b3IgICAgIGNtcFRlbXAsIGRhdGFUZW1wLCBp
bW1UZW1wCisgICAgICAgICAgICAgICAgICBhZGR1ICAgIGRhdGFUZW1wLCBkYXRhVGVtcCwgaW1t
VGVtcAorICAgICAgICAgICAgICAgICAgc3RvcmUgICBkYXRhVGVtcCwgZGVzdAorICAgICAgICAg
ICAgICAgICAgYmx0eiAgICBjbXBUZW1wLCBOb19vdmVyZmxvdyAgICAjIGRpZmYgc2lnbiBiaXQg
LT4gbm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgIHhvciAgICAgY21wVGVtcCwgZGF0YVRl
bXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICAgIGJnZXogICAgY21wVGVtcCwgTm9fb3ZlcmZs
b3cgICAgIyBzYW1lIHNpZ24gYmlnIC0+IG5vIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICBu
b3AKKyAgICAgICAgICAgICAgICAgIGIgICAgICAgT3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAg
IG5vcAorICAgICAgICAgICAgICAgICAgYiAgICAgICBOb19vdmVyZmxvdworICAgICAgICAgICAg
ICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAgICAgICAgICAgIG5vcAor
ICAgICAgICAgICAgICAgICAgTm9fb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICBsb2FkMzIoZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAg
ICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIueG9ySW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdp
c3Rlcik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShkYXRhVGVtcFJlZ2lzdGVy
LCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIHN0
b3JlMzIoZGF0YVRlbXBSZWdpc3RlciwgZGVzdCk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYmx0eihjbXBUZW1wUmVnaXN0ZXIsIDkpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVy
Lnhvckluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0
ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooY21wVGVtcFJlZ2lzdGVyLCA3
KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgZGVz
dC5iYXNlLCBkZXN0Lm9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKGltbS5tX3ZhbHVlID49
IDAgJiYgaW1tLm1fdmFsdWUgIDw9IDMyNzY3KSB7CisgICAgICAgICAgICAgICAgICAgIG1vdmUo
ZGF0YVRlbXBSZWdpc3RlciwgY21wVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1t
Lm1fdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ibHR6KGNtcFRlbXBS
ZWdpc3RlciwgOSk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1w
UmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5vZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5iZ2V6KGRhdGFUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5ub3AoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGltbS5tX3Zh
bHVlID49IC0zMjc2OCAmJiBpbW0ubV92YWx1ZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAg
bW92ZShkYXRhVGVtcFJlZ2lzdGVyLCBjbXBUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVy
LCBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooY21w
VGVtcFJlZ2lzdGVyLCA5KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0
YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9mZnNldCk7CisgICAgICAgICAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVtcFJlZ2lzdGVyLCA3KTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnhvckluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5h
ZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVtcFJlZ2lzdGVyLCAx
MCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIs
IGRlc3QuYmFzZSwgZGVzdC5vZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci54b3JJbnNuKGNtcFRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmdleihjbXBUZW1wUmVnaXN0
ZXIsIDcpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4ganVtcCgpOworICAg
ICAgICB9CisgICAgICAgIGlmIChtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgIG1vdmUoaW1t
LCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDMyKGRlc3QsIGRhdGFUZW1wUmVn
aXN0ZXIpOworICAgICAgICAgICAgYWRkMzIoaW1tVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdpc3RlciwgZGVzdCk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJlZ2lzdGVy
LCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgICAgIGFkZDMyKGltbSwgZGF0YVRl
bXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lzdGVy
LCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29uZCA9
PSBTaWduZWQpIHsKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIGRlc3QgaXMgbmVnYXRpdmUuCisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zbHQoY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lz
dGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hOb3RF
cXVhbChjbXBUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICB9Cisg
ICAgICAgIGlmIChjb25kID09IFBvc2l0aXZlT3JaZXJvKSB7CisgICAgICAgICAgICAvLyBDaGVj
ayBpZiBkZXN0IGlzIG5vdCBuZWdhdGl2ZS4KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsdChj
bXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOwor
ICAgICAgICAgICAgcmV0dXJuIGJyYW5jaEVxdWFsKGNtcFRlbXBSZWdpc3RlciwgTUlQU1JlZ2lz
dGVyczo6emVybyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gWmVybykKKyAgICAg
ICAgICAgIHJldHVybiBicmFuY2hFcXVhbChkYXRhVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJz
Ojp6ZXJvKTsKKyAgICAgICAgaWYgKGNvbmQgPT0gTm9uWmVybykKKyAgICAgICAgICAgIHJldHVy
biBicmFuY2hOb3RFcXVhbChkYXRhVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsK
KyAgICAgICAgQVNTRVJUKDApOworICAgICAgICByZXR1cm4gSnVtcCgpOworICAgIH0KKwogICAg
IEp1bXAgYnJhbmNoTXVsMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgc3JjMSwg
UmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBBU1NFUlQo
KGNvbmQgPT0gT3ZlcmZsb3cpIHx8IChjb25kID09IFNpZ25lZCkgfHwgKGNvbmQgPT0gWmVybykg
fHwgKGNvbmQgPT0gTm9uWmVybykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NhbGxMaW5rSW5mby5oCmluZGV4IDRiODEyMGUyNjU4Ni4uZDU2ODdjMTIwOGQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbEZyYW1lU2h1ZmZsZURhdGEu
aCIKICNpbmNsdWRlICJDYWxsTW9kZS5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgogI2lu
Y2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKQEAgLTQxLDcgKzQyLDcgQEAgY2xhc3Mg
Q0NhbGxIZWxwZXJzOwogY2xhc3MgRnVuY3Rpb25Db2RlQmxvY2s7CiBjbGFzcyBKU0Z1bmN0aW9u
OwogZW51bSBPcGNvZGVJRCA6IHVuc2lnbmVkOwotc3RydWN0IENhbGxGcmFtZVNodWZmbGVEYXRh
OworCiAKIHN0cnVjdCBVbmxpbmtlZENhbGxMaW5rSW5mbzsKIApAQCAtMzE0LDYgKzMxNSwxMyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ2FsbExpbmtJbmZvLCBt
X21heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKTsKICAgICB9CiAKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgIHVpbnQzMl90KiBhZGRyZXNzT2ZNYXhBcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcygpCisgICAgeworICAgICAgICByZXR1cm4gJm1fbWF4QXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXM7CisgICAgfQorI2VuZGlmCisKICAgICB1aW50MzJfdCBtYXhBcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcygpCiAgICAgewogICAgICAgICByZXR1cm4gbV9tYXhBcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDVlZDNiODRkZTE3Ny4uOWVi
NzY0YzkwNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTM0NSwxMiArMzQ1LDEzIEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB2YWx1
ZSB0byBwcm9maWxlIGlzIGluIHJlZ1QwIGFuZCB0aGF0IHJlZ1QzIGlzIGF2YWlsYWJsZSBmb3IK
ICAgICAgICAgLy8gc2NyYXRjaC4KLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBCeXRlY29kZT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNvbnN0IEJ5
dGVjb2RlJiwgR1BSUmVnKTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+IHZv
aWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShjb25zdCBCeXRlY29kZSYsIEpTVmFsdWVSZWdzKTsK
LSNlbHNlCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYsIEpTVmFsdWVSZWdzKTsKLSAgICAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYs
IEpTVmFsdWVSZWdzKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+CisgICAg
ICAgIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE1ldGFkYXRhOjptX3By
b2ZpbGUpLCBWYWx1ZVByb2ZpbGU+Ojp2YWx1ZSwgdm9pZD4KKyAgICAgICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzKTsKICNlbmRpZgogCiAgICAgICAgIHZv
aWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUoLi4uKTsKQEAgLTM2Myw2
ICszNjQsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBC
eXRlY29kZT4KICAgICAgICAgdm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoY29u
c3QgQnl0ZWNvZGUmLCBwdHJkaWZmX3QsIFJlZ2lzdGVySUQgY2VsbEdQUiwgUmVnaXN0ZXJJRCBz
Y3JhdGNoR1BSKTsKIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHZvaWQgZW1pdEFy
cmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKFJlZ2lzdGVySUQsIEFycmF5UHJvZmlsZSogLCBSZWdp
c3RlcklEKTsKKyAgICAgICAgdm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCAsIFJlZ2lzdGVySUQpOworI2VuZGlmCisKICAgICAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgT3A+CiAgICAgICAgIEVDTUFNb2RlIGVjbWFNb2RlKE9wKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IDFjZDc0ZjQ2OTQ4
OS4uMWUwNWUyMDVhODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENhbGwzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJf
NjQuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCBjYWxsTGlua0luZm9JbmQKIAogICAg
IGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgaWYgKG9wY29kZUlEID09IG9wX3Rh
aWxfY2FsbCB8fCBvcGNvZGVJRCA9PSBvcF90YWlsX2NhbGxfdmFyYXJncyB8fCBvcGNvZGVJRCA9
PSBvcF90YWlsX2NhbGxfZm9yd2FyZF9hcmd1bWVudHMpIHsKLSAgICAgICAgYXV0byBzbG93UGF0
aHMgPSBpbmZvLT5lbWl0VGFpbENhbGxGYXN0UGF0aCgqdGhpcywgcmVnVDAsIHJlZ1QyLCBDYWxs
TGlua0luZm86OlVzZURhdGFJQzo6WWVzLCBbJl0geworICAgICAgICBhdXRvIHNsb3dQYXRocyA9
IGluZm8tPmVtaXRUYWlsQ2FsbERhdGFJQ0Zhc3RQYXRoKCp0aGlzLCByZWdUMCwgcmVnVDIsIFsm
XSB7CiAgICAgICAgICAgICBlbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7CiAgICAgICAgICAgICBw
cmVwYXJlRm9yVGFpbENhbGxTbG93KHJlZ1QyKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IDFmM2NhMzE4M2E4My4uZWQ1Mjk1Njg1NTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtMzM0LDYgKzMzNCwxMiBA
QCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiB2
YWx1ZVByb2ZpbGUsIEpTVmFsdWVSZWdzCiAgICAgc3RvcmUzMih2YWx1ZS5wYXlsb2FkR1BSKCks
ICZkZXNjcmlwdG9yLT5hc0JpdHMucGF5bG9hZCk7CiAgICAgc3RvcmUzMih2YWx1ZS50YWdHUFIo
KSwgJmRlc2NyaXB0b3ItPmFzQml0cy50YWcpOwogfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRh
ZGF0YT4KK3N0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE1ldGFkYXRhOjpt
X3Byb2ZpbGUpLCBWYWx1ZVByb2ZpbGU+Ojp2YWx1ZSwgdm9pZD4gSklUOjplbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKE1ldGFkYXRhJiBtZXRhZGF0YSwgSlNWYWx1ZVJlZ3MgdmFsdWUpCit7CisgICAg
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSh2YWx1ZVByb2ZpbGVGb3IobWV0YWRhdGEsIG1fYnl0ZWNv
ZGVJbmRleC5jaGVja3BvaW50KCkpLCB2YWx1ZSk7Cit9CiAjZW5kaWYKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgT3A+CkBAIC0zNDIsMjEgKzM0OCwyNiBAQCBpbmxpbmUgc3RkOjplbmFibGVfaWZfdDxz
dGQ6OmlzX3NhbWU8ZGVjbHR5cGUoT3A6Ok1ldGFkYXRhOjptX3Byb2ZpbGUpLCBWYWx1ZVBybwog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwg
cmVnVDApOwogI2Vsc2UKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFk
YXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisgICAgZW1pdFZh
bHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAj
ZW5kaWYKIH0KIAogaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9m
aWxlZE9wY29kZSguLi4pIHsgfQogCi0jaWYgVVNFKEpTVkFMVUU2NCkKIHRlbXBsYXRlPHR5cGVu
YW1lIEJ5dGVjb2RlPgogaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNv
bnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgSlNWYWx1ZVJlZ3MgdmFsdWUpCiB7CiAgICAgaWYgKCFz
aG91bGRFbWl0UHJvZmlsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgcHRyZGlmZl90IG9mZnNldCA9IG1fdW5saW5rZWRDb2RlQmxvY2stPm1ldGFkYXRh
KCkub2Zmc2V0SW5NZXRhZGF0YVRhYmxlKGJ5dGVjb2RlKSArIHZhbHVlUHJvZmlsZU9mZnNldEZv
cjxCeXRlY29kZT4obV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkgKyBWYWx1ZVByb2ZpbGU6
Om9mZnNldE9mRmlyc3RCdWNrZXQoKTsKICAgICBzdG9yZTY0KHZhbHVlLmdwcigpLCBBZGRyZXNz
KHNfbWV0YWRhdGFHUFIsIG9mZnNldCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odmFsdWUp
OworICAgIFVOVVNFRF9QQVJBTShieXRlY29kZSk7CisgICAgLy8gRklYTUUuCisjZW5kaWYKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+CkBAIC0zNjQsNyArMzc1LDYgQEAgaW5saW5l
IHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29k
ZSwgR1BSUmVnIHJlc3VsdFIKIHsKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2Rl
LCBKU1ZhbHVlUmVncyhyZXN1bHRSZWcpKTsKIH0KLSNlbmRpZgogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgQnl0ZWNvZGU+CiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRo
Q2VsbChjb25zdCBCeXRlY29kZSYgYnl0ZWNvZGUsIHB0cmRpZmZfdCBvZmZzZXRPZkFycmF5UHJv
ZmlsZSwgUmVnaXN0ZXJJRCBjZWxsR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpCkBAIC0zODEs
NiArMzkxLDI0IEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhD
ZWxsKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgUmVnaXN0CiAgICAgZW1pdEFycmF5UHJvZmls
aW5nU2l0ZVdpdGhDZWxsKGJ5dGVjb2RlLCBCeXRlY29kZTo6TWV0YWRhdGE6Om9mZnNldE9mQXJy
YXlQcm9maWxlKCkgKyBBcnJheVByb2ZpbGU6Om9mZnNldE9mTGFzdFNlZW5TdHJ1Y3R1cmVJRCgp
LCBjZWxsR1BSLCBzY3JhdGNoR1BSKTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitpbmxp
bmUgdm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNl
bGxHUFIsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIp
Cit7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBsb2FkMzIoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgp
KSwgc2NyYXRjaEdQUik7CisgICAgICAgIHN0b3JlMzIoc2NyYXRjaEdQUiwgYXJyYXlQcm9maWxl
LT5hZGRyZXNzT2ZMYXN0U2VlblN0cnVjdHVyZUlEKCkpOworICAgIH0KK30KKworaW5saW5lIHZv
aWQgSklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoUmVnaXN0ZXJJRCBjZWxsR1BS
LCBSZWdpc3RlcklEIGFycmF5UHJvZmlsZUdQUiwgUmVnaXN0ZXJJRCBzY3JhdGNoR1BSKQorewor
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgbG9hZDMyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNj
cmF0Y2hHUFIpOworICAgICAgICBzdG9yZTMyKHNjcmF0Y2hHUFIsIEFkZHJlc3MoYXJyYXlQcm9m
aWxlR1BSLCBBcnJheVByb2ZpbGU6Om9mZnNldE9mTGFzdFNlZW5TdHJ1Y3R1cmVJRCgpKSk7Cisg
ICAgfQorIH0KKyNlbmRpZgorCiBBTFdBWVNfSU5MSU5FIGludDMyX3QgSklUOjpnZXRPcGVyYW5k
Q29uc3RhbnRJbnQoVmlydHVhbFJlZ2lzdGVyIHNyYykKIHsKICAgICByZXR1cm4gZ2V0Q29uc3Rh
bnRPcGVyYW5kKHNyYykuYXNJbnQzMigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAKaW5kZXggZmMzYWJkNmZkOGIxLi4yMzkxZjlkMWJhZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTQ2NiwxMCArMTQ2NiwxMiBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9sb29wX2hpbnQoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyhHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGxvYWRHbG9iYWxPYmplY3QocmVzdWx0UmVn
cy5ncHIoKSk7CiAjZWxzZQogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzKEdQUkluZm86
OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBsb2Fk
R2xvYmFsT2JqZWN0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsgLy8gRklYTUU6IGlzIHRoaXMg
cmlnaHQ/CiAjZW5kaWYKLSAgICAgICAgbG9hZEdsb2JhbE9iamVjdChyZXN1bHRSZWdzLmdwcigp
KTsKKwogICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgICAgICBlbWl0
UmVzdG9yZUNhbGxlZVNhdmVzKCk7CiAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4
IDlhMmE3Y2FhYzliMy4uYzE4NjM2OTk2MGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMTgyMSwxNiArMTgyMSw2IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9oYXNfcHJpdmF0ZV9icmFuZChjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWCiAgICAgZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0
LCBieXRlY29kZS5tX2Jhc2UsIGJ5dGVjb2RlLm1fYnJhbmQsIEFjY2Vzc1R5cGU6Okhhc1ByaXZh
dGVCcmFuZCk7CiB9CiAKLXZvaWQgSklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2soYm9vbCBuZWVk
c1ZhckluamVjdGlvbkNoZWNrcywgR1BSUmVnIHNjcmF0Y2hHUFIpCi17Ci0gICAgaWYgKCFuZWVk
c1ZhckluamVjdGlvbkNoZWNrcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbG9hZEdsb2JhbE9i
amVjdChzY3JhdGNoR1BSKTsKLSAgICBsb2FkUHRyKEFkZHJlc3Moc2NyYXRjaEdQUiwgT0JKRUNU
X09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQpKSwgc2Ny
YXRjaEdQUik7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVhbCwgQWRkcmVzcyhzY3JhdGNo
R1BSLCBXYXRjaHBvaW50U2V0OjpvZmZzZXRPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZh
bGlkYXRlZCkpKTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZShWaXJ0dWFsUmVn
aXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUsIGJvb2wgbmVlZHNWYXJJbmplY3Rpb25D
aGVja3MsIHVuc2lnbmVkIGRlcHRoKQogewogICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVk
c1ZhckluamVjdGlvbkNoZWNrcywgcmVnVDApOwpAQCAtMzE5MSw2ICszMTgxLDE2IEBAIHZvaWQg
SklUOjplbWl0V3JpdGVCYXJyaWVyKEdQUlJlZyBvd25lcikKICAgICBvd25lcklzUmVtZW1iZXJl
ZE9ySW5FZGVuLmxpbmsodGhpcyk7CiB9CiAKK3ZvaWQgSklUOjplbWl0VmFySW5qZWN0aW9uQ2hl
Y2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgR1BSUmVnIHNjcmF0Y2hHUFIpCit7Cisg
ICAgaWYgKCFuZWVkc1ZhckluamVjdGlvbkNoZWNrcykKKyAgICAgICAgcmV0dXJuOworCisgICAg
bG9hZEdsb2JhbE9iamVjdChzY3JhdGNoR1BSKTsKKyAgICBsb2FkUHRyKEFkZHJlc3Moc2NyYXRj
aEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZhckluamVjdGlvbldhdGNo
cG9pbnQpKSwgc2NyYXRjaEdQUik7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVhbCwgQWRk
cmVzcyhzY3JhdGNoR1BSLCBXYXRjaHBvaW50U2V0OjpvZmZzZXRPZlN0YXRlKCkpLCBUcnVzdGVk
SW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRp
ZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNWY4NjJhNTdmZTAwLi4yNzIxNzA1MzU5ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
czMyXzY0LmNwcApAQCAtODQ2LDkgKzg0NiwxMiBAQCB2b2lkIEpJVDo6ZW1pdEhhc1ByaXZhdGUo
VmlydHVhbFJlZ2lzdGVyIGRzdCwgVmlydHVhbFJlZ2lzdGVyIGJhc2UsIFZpcnR1YWxSZWdpcwog
ICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9CiAKLXZvaWQgSklUOjplbWl0SGFz
UHJpdmF0ZVNsb3coVmlydHVhbFJlZ2lzdGVyIGRzdCwgQWNjZXNzVHlwZSB0eXBlKQordm9pZCBK
SVQ6OmVtaXRIYXNQcml2YXRlU2xvdyhWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0
ZXIgYmFzZSwgVmlydHVhbFJlZ2lzdGVyIHByb3BlcnR5LCBBY2Nlc3NUeXBlIHR5cGUpCiB7Cisg
ICAgLy8gRklYTUU6IDY0LWJpdCBzZWVtcyB0byBhbHNvIGlnbm9yZSBiYXNlL3Byb3BlcnR5Lgog
ICAgIEFTU0VSVCh0eXBlID09IEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVOYW1lIHx8IHR5cGUgPT0g
QWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5kKTsKKyAgICBVTlVTRURfUEFSQU0oYmFzZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKHByb3BlcnR5KTsKIAogICAgIEpJVEluQnlWYWxHZW5lcmF0b3ImIGdl
biA9IG1faW5CeVZhbHNbbV9pbkJ5VmFsSW5kZXgrK107CiAgICAgTGFiZWwgY29sZFBhdGhCZWdp
biA9IGxhYmVsKCk7CkBAIC04NjksNyArODcyLDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hh
c19wcml2YXRlX25hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmUK
ICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJl
bnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlTmFtZT4oKTsKLSAgICBlbWl0SGFzUHJpdmF0
ZVNsb3coYnl0ZWNvZGUubV9kc3QsIEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVOYW1lKTsKKyAgICBl
bWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIGJ5dGVjb2RlLm1fYmFzZSwgYnl0ZWNv
ZGUubV9wcm9wZXJ0eSwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZU5hbWUpOwogfQogCiB2b2lkIEpJ
VDo6ZW1pdF9vcF9oYXNfcHJpdmF0ZV9icmFuZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQpAQCAtODgzLDE5ICs4ODYsMTIgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hh
c19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFYK
ICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJl
bnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlQnJhbmQ+KCk7Ci0gICAgZW1pdEhhc1ByaXZh
dGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBBY2Nlc3NUeXBlOjpIYXNQcml2YXRlQnJhbmQpOwotfQot
Ci12b2lkIEpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNrKGJvb2wgbmVlZHNWYXJJbmplY3Rpb25D
aGVja3MpCi17Ci0gICAgaWYgKCFuZWVkc1ZhckluamVjdGlvbkNoZWNrcykKLSAgICAgICAgcmV0
dXJuOwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoRXF1YWwsIEFic29sdXRlQWRkcmVzcyhtX3By
b2ZpbGVkQ29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+dmFySW5qZWN0aW9uV2F0Y2hwb2ludCgp
LT5hZGRyZXNzT2ZTdGF0ZSgpKSwgVHJ1c3RlZEltbTMyKElzSW52YWxpZGF0ZWQpKSk7CisgICAg
ZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBieXRlY29kZS5tX2Jhc2UsIGJ5dGVj
b2RlLm1fYnJhbmQsIEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVCcmFuZCk7CiB9CiAKIHZvaWQgSklU
OjplbWl0UmVzb2x2ZUNsb3N1cmUoVmlydHVhbFJlZ2lzdGVyIGRzdCwgVmlydHVhbFJlZ2lzdGVy
IHNjb3BlLCBib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCB1bnNpZ25lZCBkZXB0aCkKIHsK
LSAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MpOworICAg
IGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgcmVnVDApOwog
ICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdUMSk7CiAgICAgZW1p
dExvYWRQYXlsb2FkKHNjb3BlLCByZWdUMCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGRlcHRoOyArK2kpCkBAIC05MTgsNyArOTE0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2
ZV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBj
YXNlIEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrczogewogICAgICAgICAgICAg
SlNTY29wZSogY29uc3RhbnRTY29wZSA9IEpTU2NvcGU6OmNvbnN0YW50U2NvcGVGb3JDb2RlQmxv
Y2socmVzb2x2ZVR5cGUsIG1fcHJvZmlsZWRDb2RlQmxvY2spOwogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoY29uc3RhbnRTY29wZSk7Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hl
Y2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVt
aXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSks
IHJlZ1QwKTsKICAgICAgICAgICAgIGxvYWQzMigmbWV0YWRhdGEubV9nbG9iYWxMZXhpY2FsQmlu
ZGluZ0Vwb2NoLCByZWdUMSk7CiAgICAgICAgICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RF
cXVhbCwgQWJzb2x1dGVBZGRyZXNzKG1fcHJvZmlsZWRDb2RlQmxvY2stPmdsb2JhbE9iamVjdCgp
LT5hZGRyZXNzT2ZHbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoKCkpLCByZWdUMSkpOwogICAgICAg
ICAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1QxKTsKQEAgLTkz
Myw3ICs5MjksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgR2xvYmFsTGV4aWNhbFZh
cldpdGhWYXJJbmplY3Rpb25DaGVja3M6IHsKICAgICAgICAgICAgIEpTU2NvcGUqIGNvbnN0YW50
U2NvcGUgPSBKU1Njb3BlOjpjb25zdGFudFNjb3BlRm9yQ29kZUJsb2NrKHJlc29sdmVUeXBlLCBt
X3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvbnN0YW50
U2NvcGUpOwotICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0
aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7CisgICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hl
Y2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpLCByZWdUMCk7CiAgICAgICAg
ICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVnVDEpOwogICAgICAg
ICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGNvbnN0YW50U2NvcGUpLCByZWdUMCk7CiAgICAgICAg
ICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwpAQCAtMTA3Myw3ICsxMDY5LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICAgICAgY2FzZSBHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hl
Y2tzOgogICAgICAgICBjYXNlIEdsb2JhbExleGljYWxWYXI6CiAgICAgICAgIGNhc2UgR2xvYmFs
TGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6Ci0gICAgICAgICAgICBlbWl0VmFySW5q
ZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpKTsKKyAgICAg
ICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNv
bHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGlmIChpbmRpcmVjdExvYWRGb3JPcGVyYW5k
KQogICAgICAgICAgICAgICAgIGVtaXRHZXRWYXJGcm9tSW5kaXJlY3RQb2ludGVyKGJpdHdpc2Vf
Y2FzdDxKU1ZhbHVlKio+KG9wZXJhbmRTbG90KSwgcmVnVDEsIHJlZ1QwKTsKICAgICAgICAgICAg
IGVsc2UKQEAgLTEwODMsNyArMTA3OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX3Nj
b3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBDbG9zdXJlVmFyOgogICAgICAgICBjYXNlIENsb3N1cmVWYXJX
aXRoVmFySW5qZWN0aW9uQ2hlY2tzOgotICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNr
KG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7CisgICAgICAgICAgICBlbWl0
VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpLCBy
ZWdUMCk7CiAgICAgICAgICAgICBlbWl0R2V0Q2xvc3VyZVZhcihzY29wZSwgKm9wZXJhbmRTbG90
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIER5bmFtaWM6CkBAIC0xMTcyLDcg
KzExNjgsNyBAQCB2b2lkIEpJVDo6ZW1pdFB1dEdsb2JhbFZhcmlhYmxlSW5kaXJlY3QoSlNWYWx1
ZSoqIGFkZHJlc3NPZk9wZXJhbmQsIFZpcnR1YWxSZWdpcwogewogICAgIGVtaXRMb2FkKHZhbHVl
LCByZWdUMSwgcmVnVDApOwogICAgIGxvYWRQdHIoaW5kaXJlY3RXYXRjaHBvaW50U2V0LCByZWdU
Mik7Ci0gICAgZW1pdE5vdGlmeVdyaXRlKHJlZ1QyKTsKKyAgICBlbWl0Tm90aWZ5V3JpdGUoKmlu
ZGlyZWN0V2F0Y2hwb2ludFNldCk7IC8vIEZJWE1FOiA/PwogICAgIGxvYWRQdHIoYWRkcmVzc09m
T3BlcmFuZCwgcmVnVDIpOwogICAgIHN0b3JlMzIocmVnVDEsIEFkZHJlc3MocmVnVDIsIFRhZ09m
ZnNldCkpOwogICAgIHN0b3JlMzIocmVnVDAsIEFkZHJlc3MocmVnVDIsIFBheWxvYWRPZmZzZXQp
KTsKQEAgLTExOTMsNyArMTE4OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGF1dG8mIG1ldGFkYXRh
ID0gYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayk7CiAgICAgVmlydHVhbFJl
Z2lzdGVyIHNjb3BlID0gYnl0ZWNvZGUubV9zY29wZTsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmFs
dWUgPSBieXRlY29kZS5tX3ZhbHVlOwotICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyA9IGNvcGll
ZEdldFB1dEluZm8oYnl0ZWNvZGUpOworICAgIEdldFB1dEluZm8gZ2V0UHV0SW5mbyA9IGJ5dGVj
b2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLm1fZ2V0UHV0SW5mbzsKICAgICBSZXNv
bHZlVHlwZSByZXNvbHZlVHlwZSA9IGdldFB1dEluZm8ucmVzb2x2ZVR5cGUoKTsKICAgICBTdHJ1
Y3R1cmUqKiBzdHJ1Y3R1cmVTbG90ID0gbWV0YWRhdGEubV9zdHJ1Y3R1cmUuc2xvdCgpOwogICAg
IHVpbnRwdHJfdCogb3BlcmFuZFNsb3QgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdCo+KCZt
ZXRhZGF0YS5tX29wZXJhbmQpOwpAQCAtMTIyMCw4ICsxMjE2LDggQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgICAgICAgICBKU1Njb3BlKiBjb25zdGFudFNjb3BlID0gSlNTY29wZTo6Y29uc3RhbnRTY29w
ZUZvckNvZGVCbG9jayhyZXNvbHZlVHlwZSwgbV9wcm9maWxlZENvZGVCbG9jayk7CiAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVChjb25zdGFudFNjb3BlKTsKICAgICAgICAgICAgIGVtaXRXcml0
ZUJhcnJpZXIoY29uc3RhbnRTY29wZSwgdmFsdWUsIFNob3VsZEZpbHRlclZhbHVlKTsKLSAgICAg
ICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNv
bHZlVHlwZSkpOwotICAgICAgICAgICAgZW1pdFZhclJlYWRPbmx5Q2hlY2socmVzb2x2ZVR5cGUp
OworICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hl
Y2tzKHJlc29sdmVUeXBlKSwgcmVnVDApOworICAgICAgICAgICAgZW1pdFZhclJlYWRPbmx5Q2hl
Y2socmVzb2x2ZVR5cGUsIHJlZ1QwKTsKICAgICAgICAgICAgIGlmICghaXNJbml0aWFsaXphdGlv
bihnZXRQdXRJbmZvLmluaXRpYWxpemF0aW9uTW9kZSgpKSAmJiAocmVzb2x2ZVR5cGUgPT0gR2xv
YmFsTGV4aWNhbFZhciB8fCByZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhcklu
amVjdGlvbkNoZWNrcykpIHsKICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGRvIGEgVERa
IGNoZWNrIGhlcmUgYmVjYXVzZSB3ZSBjYW4ndCBhbHdheXMgcHJvdmUgd2UgbmVlZCB0byBlbWl0
IFREWiBjaGVja3Mgc3RhdGljYWxseS4KICAgICAgICAgICAgICAgICBpZiAoaW5kaXJlY3RMb2Fk
Rm9yT3BlcmFuZCkKQEAgLTEyNDAsNyArMTIzNiw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF90
b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBj
YXNlIENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25D
aGVja3M6CiAgICAgICAgICAgICBlbWl0V3JpdGVCYXJyaWVyKHNjb3BlLCB2YWx1ZSwgU2hvdWxk
RmlsdGVyVmFsdWUpOwotICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFy
SW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7CisgICAgICAgICAgICBlbWl0VmFySW5qZWN0
aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpLCByZWdUMCk7CiAg
ICAgICAgICAgICBlbWl0UHV0Q2xvc3VyZVZhcihzY29wZSwgKm9wZXJhbmRTbG90LCB2YWx1ZSwg
bWV0YWRhdGEubV93YXRjaHBvaW50U2V0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIE1vZHVsZVZhcjoKQEAgLTEzMTMsNyArMTMwOSw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9wdXRfdG9fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yCiAgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKIAogICAgIGF1dG8gYnl0ZWNvZGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wUHV0VG9TY29wZT4oKTsKLSAgICBSZXNvbHZlVHlwZSBy
ZXNvbHZlVHlwZSA9IGNvcGllZEdldFB1dEluZm8oYnl0ZWNvZGUpLnJlc29sdmVUeXBlKCk7Cisg
ICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUgPSBieXRlY29kZS5tZXRhZGF0YShtX3Byb2ZpbGVk
Q29kZUJsb2NrKS5tX2dldFB1dEluZm8ucmVzb2x2ZVR5cGUoKTsKICAgICBpZiAocmVzb2x2ZVR5
cGUgPT0gTW9kdWxlVmFyKSB7CiAgICAgICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwo
dGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfdGhyb3dfc3RyaWN0X21vZGVfcmVh
ZG9ubHlfcHJvcGVydHlfd3JpdGVfZXJyb3IpOwogICAgICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OwotLSAKMi4zMS4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439849</attachid>
            <date>2021-10-01 06:44:12 -0700</date>
            <delta_ts>2021-10-01 06:56:35 -0700</delta_ts>
            <desc>v1</desc>
            <filename>0001-JSC-32bit-Fix-build-after-unlinked-baseline-JIT.patch</filename>
            <type>text/plain</type>
            <size>28699</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA2YmE2ZTg1YTczNmI5OTNjOGRmNGRkNWQxYjI1Zjk3ZWQzMThlZmNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCAyNiBTZXAgMjAyMSAxMDo0NDoxMiArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklU
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODAzCgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgZW5vdWdoIHRvIG1ha2UgdGhpbmdzIGJ1aWxk
LCBidXQgcHJldHR5IG11Y2ggbm90aGluZyB3b3Jrcwp5ZXQuIFdpbGwgZml4IGluIGEgZm9sbG93
LXVwLCB0aGlzIHdheSB3ZSBhdCBsZWFzdCBnaXZlIHBlb3BsZSBhCmNoYW5jZSBhdCBub3QgaW50
cm9kdWNpbmcgbW9yZSBidWlsZCByZWdyZXNzaW9ucy4KCiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNoMzIpOgooSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaEFkZDMyKToKKiBieXRl
Y29kZS9DYWxsTGlua0luZm8uaDoKKEpTQzo6Q2FsbExpbmtJbmZvOjphZGRyZXNzT2ZNYXhBcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcyk6Ciogaml0L0pJVC5oOgoqIGppdC9KSVRDYWxsMzJfNjQu
Y3BwOgooSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgoqIGppdC9KSVRJbmxpbmVzLmg6CihKU0M6
OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CihKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUpOgooSlNDOjpKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1Np
dGVXaXRoQ2VsbCk6Ciogaml0L0pJVE9wY29kZXMuY3BwOgooSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgooSlNDOjpKSVQ6OmVtaXRWYXJJ
bmplY3Rpb25DaGVjayk6Ciogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgooSlNDOjpK
SVQ6OmVtaXRIYXNQcml2YXRlU2xvdyk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZh
dGVfbmFtZSk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfYnJhbmQpOgooSlND
OjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6CihKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Nj
b3BlKToKKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKEpTQzo6SklUOjplbWl0
UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdCk6CihKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfdG9fc2Nv
cGUpOgooSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6CihKU0M6OkpJVDo6ZW1p
dFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICB8IDQyICsrKysrKysrKwogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmgg
ICAgICAgICAgIHwgMzUgKysrLS0tLS0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
LmggICAgICAgICAgICB8IDg5ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaCB8IDEwICsrLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaCAgICAgICAgICAgICAgIHwgMTIgKystCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwzMl82NC5jcHAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVzLmggICAgICAgIHwgMzQgKysrKysrLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzLmNwcCAgICAgIHwgIDMgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwICB8IDIwICsrLS0tCiAuLi4vaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwICAgICAgICAgICAgfCAzOCArKysrLS0tLQogLi4uL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gICAgICAgIHwgIDIgKwogMTEgZmlsZXMgY2hhbmdlZCwg
MjI2IGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CmluZGV4IDIxMmNmYTkxM2YzNy4uYzkyNDhhOWEwNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMS0xMC0wMSAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFz
ZWxpbmUgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzA4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIGVub3VnaCB0byBtYWtlIHRoaW5ncyBidWlsZCwgYnV0IHByZXR0eSBtdWNoIG5v
dGhpbmcgd29ya3MKKyAgICAgICAgeWV0LiBXaWxsIGZpeCBpbiBhIGZvbGxvdy11cCwgdGhpcyB3
YXkgd2UgYXQgbGVhc3QgZ2l2ZSBwZW9wbGUgYQorICAgICAgICBjaGFuY2UgYXQgbm90IGludHJv
ZHVjaW5nIG1vcmUgYnVpbGQgcmVncmVzc2lvbnMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpi
cmFuY2gzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmJyYW5jaEFkZDMy
KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YnJhbmNoQWRkMzIpOgorICAgICAgICAqIGJ5dGVjb2Rl
L0NhbGxMaW5rSW5mby5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmFkZHJlc3NPZk1h
eEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9w
Q2FsbCk6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0VmFsdWVQcm9m
aWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEFycmF5
UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9sb29wX2hpbnQpOgorICAgICAgICAqIGppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhckluamVjdGlvbkNo
ZWNrKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdEhhc1ByaXZhdGVTbG93KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
U2xvd19vcF9oYXNfcHJpdmF0ZV9uYW1lKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19v
cF9oYXNfcHJpdmF0ZV9icmFuZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFJlc29sdmVDbG9z
dXJlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Jlc29sdmVfc2NvcGUpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRQdXRHbG9iYWxWYXJpYWJsZUluZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3B1dF90b19zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0X3Rv
X3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2spOiBEZWxl
dGVkLgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisKIDIw
MjEtMDktMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBV
cGdyYWRlIEdDQyByZXF1aXJlbWVudCB0byA4LjMuMApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBkZjUxZTk1MmRk
Y2QuLjJlZjQ4NjAzMWMwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTE2MTAsNyArMTYxMCwxNCBAQCBwdWJs
aWM6CiAKICAgICBKdW1wIGJyYW5jaDMyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0
ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIu
Y21wKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgaWYgKGxlZnQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkg
eworICAgICAgICAgICAgbW92ZShsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmNtcChkYXRhVGVtcFJlZ2lzdGVyLCByaWdodCk7CisgICAgICAgIH0gZWxz
ZSBpZiAocmlnaHQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgbW92ZShyaWdo
dCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwg
ZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuY21wKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgcmV0dXJuIEp1bXAobWFrZUJyYW5jaChjb25k
KSk7CiAgICAgfQogCkBAIC0xODQwLDI3ICsxODQ3LDEzIEBAIHB1YmxpYzoKIAogICAgIEp1bXAg
YnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFic29s
dXRlQWRkcmVzcyBkZXN0KQogICAgIHsKLSAgICAgICAgLy8gTW92ZSB0aGUgaGlnaCBiaXRzIG9m
IHRoZSBhZGRyZXNzIGludG8gYWRkcmVzc1RlbXBSZWdpc3RlciwKLSAgICAgICAgLy8gYW5kIGxv
YWQgdGhlIHZhbHVlIGludG8gZGF0YVRlbXBSZWdpc3Rlci4KLSAgICAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgbV9hc3Nl
bWJsZXIubGRyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIsIEFSTVRodW1i
SW1tZWRpYXRlOjptYWtlVUludDE2KDApKTsKLQotICAgICAgICAvLyBEbyB0aGUgYWRkLgotICAg
ICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVu
Y29kZWRJbW0oaW1tLm1fdmFsdWUpOwotICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKLSAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVn
aXN0ZXIsIGFybUltbSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8gSWYgdGhlIG9w
ZXJhbmQgZG9lcyBub3QgZml0IGludG8gYW4gaW1tZWRpYXRlIHRoZW4gbG9hZCBpdCB0ZW1wb3Jh
cmlseQotICAgICAgICAgICAgLy8gaW50byBhZGRyZXNzVGVtcFJlZ2lzdGVyOyBzaW5jZSB3ZSdy
ZSBvdmVyd3JpdGluZyBhZGRyZXNzVGVtcFJlZ2lzdGVyCi0gICAgICAgICAgICAvLyB3ZSdsbCBu
ZWVkIHRvIHJlbG9hZCBpdCB3aXRoIHRoZSBoaWdoIGJpdHMgb2YgdGhlIGFkZHJlc3MgYWZ0ZXJ3
YXJkcy4KLSAgICAgICAgICAgIG1vdmUoaW1tLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgfQotCi0gICAgICAg
IC8vIFN0b3JlIHRoZSByZXN1bHQuCi0gICAgICAgIG1fYXNzZW1ibGVyLnN0cihkYXRhVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQx
NigwKSk7CisgICAgICAgIGFkZDMyKGltbSwgZGVzdCk7CisgICAgICAgIHJldHVybiBKdW1wKG1h
a2VCcmFuY2goY29uZCkpOworICAgIH0KIAorICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29u
ZGl0aW9uIGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAg
ICAgIGFkZDMyKGltbSwgZGVzdCk7CiAgICAgICAgIHJldHVybiBKdW1wKG1ha2VCcmFuY2goY29u
ZCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2UzYWUyYWZhZjBjLi41OWU3MmFkNTUwMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJN
SVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ck1JUFMuaApAQCAtMjM1NCw2ICsyMzU0LDk1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEp1
bXAoKTsKICAgICB9CiAKKyAgICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25k
LCBUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQo
KGNvbmQgPT0gT3ZlcmZsb3cpIHx8IChjb25kID09IFNpZ25lZCkgfHwgKGNvbmQgPT0gUG9zaXRp
dmVPclplcm8pIHx8IChjb25kID09IFplcm8pIHx8IChjb25kID09IE5vblplcm8pKTsKKyAgICAg
ICAgaWYgKGNvbmQgPT0gT3ZlcmZsb3cpIHsKKyAgICAgICAgICAgIGlmIChtX2ZpeGVkV2lkdGgp
IHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgbG9hZCAgICBkZXN0LCBk
YXRhVGVtcAorICAgICAgICAgICAgICAgICAgbW92ZSAgICBpbW0sIGltbVRlbXAKKyAgICAgICAg
ICAgICAgICAgIHhvciAgICAgY21wVGVtcCwgZGF0YVRlbXAsIGltbVRlbXAKKyAgICAgICAgICAg
ICAgICAgIGFkZHUgICAgZGF0YVRlbXAsIGRhdGFUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAg
ICAgICBzdG9yZSAgIGRhdGFUZW1wLCBkZXN0CisgICAgICAgICAgICAgICAgICBibHR6ICAgIGNt
cFRlbXAsIE5vX292ZXJmbG93ICAgICMgZGlmZiBzaWduIGJpdCAtPiBubyBvdmVyZmxvdworICAg
ICAgICAgICAgICAgICAgeG9yICAgICBjbXBUZW1wLCBkYXRhVGVtcCwgaW1tVGVtcAorICAgICAg
ICAgICAgICAgICAgYmdleiAgICBjbXBUZW1wLCBOb19vdmVyZmxvdyAgICAjIHNhbWUgc2lnbiBi
aWcgLT4gbm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgIG5vcAorICAgICAgICAgICAgICAg
ICAgYiAgICAgICBPdmVyZmxvdworICAgICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAg
ICAgICBiICAgICAgIE5vX292ZXJmbG93CisgICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAg
ICAgICAgICAgIG5vcAorICAgICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBO
b19vdmVyZmxvdzoKKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGxvYWQzMihk
ZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci54b3JJbnNuKGNtcFRlbXBS
ZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIs
IGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lz
dGVyLCBkZXN0KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ibHR6KGNtcFRlbXBSZWdp
c3RlciwgOSk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIueG9ySW5zbihjbXBUZW1wUmVn
aXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYmdleihjbXBUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLm5vcCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0
KTsKKyAgICAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gMCAmJiBpbW0ubV92YWx1ZSAg
PD0gMzI3NjcpIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShkYXRhVGVtcFJlZ2lzdGVyLCBj
bXBUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShk
YXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW0ubV92YWx1ZSk7CisgICAgICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVtcFJlZ2lzdGVyLCA5KTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNl
LCBkZXN0Lm9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooZGF0
YVRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGlt
bS5tX3ZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKGRhdGFUZW1wUmVnaXN0
ZXIsIGNtcFRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbS5tX3ZhbHVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmdleihjbXBUZW1wUmVnaXN0ZXIsIDkpOwor
ICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0
LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmx0
eihjbXBUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5u
b3AoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtb3Zl
KGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
eG9ySW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rl
cik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoZGF0YVRlbXBSZWdpc3Rl
ciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYmx0eihjbXBUZW1wUmVnaXN0ZXIsIDEwKTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9m
ZnNldCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnhvckluc24oY21wVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5iZ2V6KGNtcFRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJldHVybiBqdW1wKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KG1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICBsb2FkMzIoZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAg
ICBhZGQzMihpbW1UZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
c3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5v
ZmZzZXQpOworICAgICAgICAgICAgYWRkMzIoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5v
ZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGlmIChjb25kID09IFNpZ25lZCkgeworICAgICAg
ICAgICAgLy8gQ2hlY2sgaWYgZGVzdCBpcyBuZWdhdGl2ZS4KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsdChjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6
Onplcm8pOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFsKGNtcFRlbXBSZWdpc3Rl
ciwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0g
UG9zaXRpdmVPclplcm8pIHsKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIGRlc3QgaXMgbm90IG5l
Z2F0aXZlLgorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0KGNtcFRlbXBSZWdpc3RlciwgZGF0
YVRlbXBSZWdpc3RlciwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgICAgICByZXR1cm4g
YnJhbmNoRXF1YWwoY21wVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5j
aEVxdWFsKGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICBp
ZiAoY29uZCA9PSBOb25aZXJvKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFsKGRh
dGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICBBU1NFUlQoMCk7
CisgICAgICAgIHJldHVybiBKdW1wKCk7CisgICAgfQorCiAgICAgSnVtcCBicmFuY2hNdWwzMihS
ZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVCgoY29uZCA9PSBPdmVyZmxvdykg
fHwgKGNvbmQgPT0gU2lnbmVkKSB8fCAoY29uZCA9PSBaZXJvKSB8fCAoY29uZCA9PSBOb25aZXJv
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJ
bmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5k
ZXggNGI4MTIwZTI2NTg2Li5kNTY4N2MxMjA4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJDYWxsRnJhbWVTaHVmZmxlRGF0YS5oIgogI2luY2x1ZGUgIkNhbGxN
b2RlLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxp
emF0aW9uS2luZC5oIgpAQCAtNDEsNyArNDIsNyBAQCBjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFz
cyBGdW5jdGlvbkNvZGVCbG9jazsKIGNsYXNzIEpTRnVuY3Rpb247CiBlbnVtIE9wY29kZUlEIDog
dW5zaWduZWQ7Ci1zdHJ1Y3QgQ2FsbEZyYW1lU2h1ZmZsZURhdGE7CisKIAogc3RydWN0IFVubGlu
a2VkQ2FsbExpbmtJbmZvOwogCkBAIC0zMTQsNiArMzE1LDEzIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDYWxsTGlua0luZm8sIG1fbWF4QXJndW1lbnRDb3VudElu
Y2x1ZGluZ1RoaXMpOwogICAgIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgdWludDMy
X3QqIGFkZHJlc3NPZk1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiAmbV9tYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKKyAgICB9CisjZW5k
aWYKKwogICAgIHVpbnQzMl90IG1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkKICAgICB7
CiAgICAgICAgIHJldHVybiBtX21heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKaW5kZXggNWVkM2I4NGRlMTc3Li45ZWI3NjRjOTA0NGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaApAQCAtMzQ1LDEyICszNDUsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHZhbHVlIHRvIHByb2ZpbGUgaXMgaW4g
cmVnVDAgYW5kIHRoYXQgcmVnVDMgaXMgYXZhaWxhYmxlIGZvcgogICAgICAgICAvLyBzY3JhdGNo
LgotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2Rl
PiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmLCBHUFJSZWcpOwog
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZT4gdm9pZCBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiwgSlNWYWx1ZVJlZ3MpOwotI2Vsc2UKKyNpZiBVU0UoSlNW
QUxVRTMyXzY0KQogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9m
aWxlJiwgSlNWYWx1ZVJlZ3MpOwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4g
dm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwgSlNWYWx1ZVJlZ3MpOworICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4KKyAgICAgICAgc3RkOjplbmFibGVfaWZf
dDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvZmls
ZT46OnZhbHVlLCB2b2lkPgorICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRh
JiwgSlNWYWx1ZVJlZ3MpOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlSWZQcm9maWxlZE9wY29kZSguLi4pOwpAQCAtMzYzLDYgKzM2NCwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEJ5dGVjb2RlPgogICAgICAgICB2
b2lkIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChjb25zdCBCeXRlY29kZSYsIHB0cmRp
ZmZfdCwgUmVnaXN0ZXJJRCBjZWxsR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpOwogCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgdm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0
aENlbGwoUmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKiAsIFJlZ2lzdGVySUQpOworICAgICAgICB2
b2lkIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklELCBSZWdpc3RlcklE
ICwgUmVnaXN0ZXJJRCk7CisjZW5kaWYKKwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4K
ICAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUoT3ApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwzMl82NC5jcHAKaW5kZXggMWNkNzRmNDY5NDg5Li4xZTA1ZTIwNWE4N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKQEAgLTMxMCw3ICsz
MTAsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1
Y3Rpb24sIHVuc2lnbmVkIGNhbGxMaW5rSW5mb0luZAogCiAgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQoKTsKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfdGFpbF9jYWxsIHx8IG9wY29kZUlE
ID09IG9wX3RhaWxfY2FsbF92YXJhcmdzIHx8IG9wY29kZUlEID09IG9wX3RhaWxfY2FsbF9mb3J3
YXJkX2FyZ3VtZW50cykgewotICAgICAgICBhdXRvIHNsb3dQYXRocyA9IGluZm8tPmVtaXRUYWls
Q2FsbEZhc3RQYXRoKCp0aGlzLCByZWdUMCwgcmVnVDIsIENhbGxMaW5rSW5mbzo6VXNlRGF0YUlD
OjpZZXMsIFsmXSB7CisgICAgICAgIGF1dG8gc2xvd1BhdGhzID0gaW5mby0+ZW1pdFRhaWxDYWxs
RGF0YUlDRmFzdFBhdGgoKnRoaXMsIHJlZ1QwLCByZWdUMiwgWyZdIHsKICAgICAgICAgICAgIGVt
aXRSZXN0b3JlQ2FsbGVlU2F2ZXMoKTsKICAgICAgICAgICAgIHByZXBhcmVGb3JUYWlsQ2FsbFNs
b3cocmVnVDIpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVz
LmgKaW5kZXggMWYzY2EzMTgzYTgzLi44NWM2YTg0OGJmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCkBAIC0zMzQsNiArMzM0LDEyIEBAIGlubGluZSB2b2lkIEpJVDo6
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSwgSlNWYWx1
ZVJlZ3MKICAgICBzdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwgJmRlc2NyaXB0b3ItPmFzQml0
cy5wYXlsb2FkKTsKICAgICBzdG9yZTMyKHZhbHVlLnRhZ0dQUigpLCAmZGVzY3JpcHRvci0+YXNC
aXRzLnRhZyk7CiB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPgorc3RkOjplbmFibGVf
aWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJv
ZmlsZT46OnZhbHVlLCB2b2lkPiBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEm
IG1ldGFkYXRhLCBKU1ZhbHVlUmVncyB2YWx1ZSkKK3sKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKHZhbHVlUHJvZmlsZUZvcihtZXRhZGF0YSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQo
KSksIHZhbHVlKTsKK30KICNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KQEAgLTM0Miwy
MSArMzQ4LDI2IEBAIGlubGluZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxkZWNsdHlw
ZShPcDo6TWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvCiAjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCByZWdUMCk7CiAjZWxzZQotICAg
IGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBK
U1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICNlbmRpZgogfQogCiBpbmxpbmUg
dm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlByb2ZpbGVkT3Bjb2RlKC4uLikgeyB9
CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQogdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+CiBpbmxp
bmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5dGVj
b2RlLCBKU1ZhbHVlUmVncyB2YWx1ZSkKIHsKICAgICBpZiAoIXNob3VsZEVtaXRQcm9maWxpbmco
KSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBwdHJkaWZmX3Qg
b2Zmc2V0ID0gbV91bmxpbmtlZENvZGVCbG9jay0+bWV0YWRhdGEoKS5vZmZzZXRJbk1ldGFkYXRh
VGFibGUoYnl0ZWNvZGUpICsgdmFsdWVQcm9maWxlT2Zmc2V0Rm9yPEJ5dGVjb2RlPihtX2J5dGVj
b2RlSW5kZXguY2hlY2twb2ludCgpKSArIFZhbHVlUHJvZmlsZTo6b2Zmc2V0T2ZGaXJzdEJ1Y2tl
dCgpOwogICAgIHN0b3JlNjQodmFsdWUuZ3ByKCksIEFkZHJlc3Moc19tZXRhZGF0YUdQUiwgb2Zm
c2V0KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFN
KGJ5dGVjb2RlKTsKKyAgICAvLyBGSVhNRS4KKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBCeXRlY29kZT4KQEAgLTM2NCw3ICszNzUsNiBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2RlLCBHUFJSZWcgcmVzdWx0Ugog
ewogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJlc3Vs
dFJlZykpOwogfQotI2VuZGlmCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBCeXRlY29kZT4KIGlubGlu
ZSB2b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVjb2Rl
JiBieXRlY29kZSwgcHRyZGlmZl90IG9mZnNldE9mQXJyYXlQcm9maWxlLCBSZWdpc3RlcklEIGNl
bGxHUFIsIFJlZ2lzdGVySUQgc2NyYXRjaEdQUikKQEAgLTM4MSw2ICszOTEsMjQgQEAgaW5saW5l
IHZvaWQgSklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoY29uc3QgQnl0ZWNvZGUm
IGJ5dGVjb2RlLCBSZWdpc3QKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoYnl0
ZWNvZGUsIEJ5dGVjb2RlOjpNZXRhZGF0YTo6b2Zmc2V0T2ZBcnJheVByb2ZpbGUoKSArIEFycmF5
UHJvZmlsZTo6b2Zmc2V0T2ZMYXN0U2VlblN0cnVjdHVyZUlEKCksIGNlbGxHUFIsIHNjcmF0Y2hH
UFIpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSB2b2lkIEpJVDo6ZW1pdEFy
cmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKFJlZ2lzdGVySUQgY2VsbEdQUiwgQXJyYXlQcm9maWxl
KiBhcnJheVByb2ZpbGUsIFJlZ2lzdGVySUQgc2NyYXRjaEdQUikKK3sKKyAgICBpZiAoc2hvdWxk
RW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhjZWxsR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAg
ICAgICAgc3RvcmUzMihzY3JhdGNoR1BSLCBhcnJheVByb2ZpbGUtPmFkZHJlc3NPZkxhc3RTZWVu
U3RydWN0dXJlSUQoKSk7CisgICAgfQorfQorCitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVBy
b2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGxHUFIsIFJlZ2lzdGVySUQgYXJyYXlQ
cm9maWxlR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpCit7CisgICAgaWYgKHNob3VsZEVtaXRQ
cm9maWxpbmcoKSkgeworICAgICAgICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2Vs
bEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAg
IHN0b3JlMzIoc2NyYXRjaEdQUiwgQWRkcmVzcyhhcnJheVByb2ZpbGVHUFIsIEFycmF5UHJvZmls
ZTo6b2Zmc2V0T2ZMYXN0U2VlblN0cnVjdHVyZUlEKCkpKTsKKyAgICB9Cit9CisjZW5kaWYKKwog
QUxXQVlTX0lOTElORSBpbnQzMl90IEpJVDo6Z2V0T3BlcmFuZENvbnN0YW50SW50KFZpcnR1YWxS
ZWdpc3RlciBzcmMpCiB7CiAgICAgcmV0dXJuIGdldENvbnN0YW50T3BlcmFuZChzcmMpLmFzSW50
MzIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGZjM2Fi
ZDZmZDhiMS4uOGNjYmJiZmU5YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAKQEAgLTE0NjYsMTAgKzE0NjYsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9o
aW50KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKIAogI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OworICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KHJlc3VsdFJlZ3MuZ3ByKCkpOwogI2Vsc2UKICAg
ICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgbG9hZEdsb2JhbE9iamVjdChyZXN1bHRS
ZWdzLnBheWxvYWRHUFIoKSk7IC8vIEZJWE1FOiBuZWVkIHRvIG1vdmUgdGhlIHdob2xlIHRoaW5n
LgogI2VuZGlmCi0gICAgICAgIGxvYWRHbG9iYWxPYmplY3QocmVzdWx0UmVncy5ncHIoKSk7CiAg
ICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgICAgIGVtaXRSZXN0b3Jl
Q2FsbGVlU2F2ZXMoKTsKICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggOWEyYTdj
YWFjOWIzLi5jMTg2MzY5OTYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xODIxLDE2ICsxODIxLDYgQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX2hhc19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFYKICAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIGJ5dGVj
b2RlLm1fYmFzZSwgYnl0ZWNvZGUubV9icmFuZCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5k
KTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5lZWRzVmFySW5q
ZWN0aW9uQ2hlY2tzLCBHUFJSZWcgc2NyYXRjaEdQUikKLXsKLSAgICBpZiAoIW5lZWRzVmFySW5q
ZWN0aW9uQ2hlY2tzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBsb2FkR2xvYmFsT2JqZWN0KHNj
cmF0Y2hHUFIpOwotICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBPQkpFQ1RfT0ZGU0VU
T0YoSlNHbG9iYWxPYmplY3QsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludCkpLCBzY3JhdGNoR1BS
KTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2g4KEVxdWFsLCBBZGRyZXNzKHNjcmF0Y2hHUFIsIFdh
dGNocG9pbnRTZXQ6Om9mZnNldE9mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0ludmFsaWRhdGVk
KSkpOwotfQotCiB2b2lkIEpJVDo6ZW1pdFJlc29sdmVDbG9zdXJlKFZpcnR1YWxSZWdpc3RlciBk
c3QsIFZpcnR1YWxSZWdpc3RlciBzY29wZSwgYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywg
dW5zaWduZWQgZGVwdGgpCiB7CiAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5q
ZWN0aW9uQ2hlY2tzLCByZWdUMCk7CkBAIC0zMTkxLDYgKzMxODEsMTYgQEAgdm9pZCBKSVQ6OmVt
aXRXcml0ZUJhcnJpZXIoR1BSUmVnIG93bmVyKQogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVk
ZW4ubGluayh0aGlzKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29s
IG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCBHUFJSZWcgc2NyYXRjaEdQUikKK3sKKyAgICBpZiAo
IW5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2FkR2xv
YmFsT2JqZWN0KHNjcmF0Y2hHUFIpOworICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBP
QkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludCkp
LCBzY3JhdGNoR1BSKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4KEVxdWFsLCBBZGRyZXNzKHNj
cmF0Y2hHUFIsIFdhdGNocG9pbnRTZXQ6Om9mZnNldE9mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJ
c0ludmFsaWRhdGVkKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVO
QUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2VzczMyXzY0LmNwcAppbmRleCA1Zjg2MmE1N2ZlMDAuLjI3MjE3MDUzNTllYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwCkBAIC04NDYsOSArODQ2LDEyIEBAIHZvaWQgSklUOjplbWl0SGFzUHJpdmF0ZShWaXJ0dWFs
UmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgYmFzZSwgVmlydHVhbFJlZ2lzCiAgICAgZW1p
dFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRIYXNQcml2YXRl
U2xvdyhWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBBY2Nlc3NUeXBlIHR5cGUpCit2b2lkIEpJVDo6ZW1p
dEhhc1ByaXZhdGVTbG93KFZpcnR1YWxSZWdpc3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBiYXNl
LCBWaXJ0dWFsUmVnaXN0ZXIgcHJvcGVydHksIEFjY2Vzc1R5cGUgdHlwZSkKIHsKKyAgICAvLyBG
SVhNRTogNjQtYml0IHNlZW1zIHRvIGFsc28gaWdub3JlIGJhc2UvcHJvcGVydHkuCiAgICAgQVNT
RVJUKHR5cGUgPT0gQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZU5hbWUgfHwgdHlwZSA9PSBBY2Nlc3NU
eXBlOjpIYXNQcml2YXRlQnJhbmQpOworICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKKyAgICBVTlVT
RURfUEFSQU0ocHJvcGVydHkpOwogCiAgICAgSklUSW5CeVZhbEdlbmVyYXRvciYgZ2VuID0gbV9p
bkJ5VmFsc1ttX2luQnlWYWxJbmRleCsrXTsKICAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFi
ZWwoKTsKQEAgLTg2OSw3ICs4NzIsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZh
dGVfbmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZQogICAgIGxp
bmtBbGxTbG93Q2FzZXMoaXRlcik7CiAKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3Ry
dWN0aW9uLT5hczxPcEhhc1ByaXZhdGVOYW1lPigpOwotICAgIGVtaXRIYXNQcml2YXRlU2xvdyhi
eXRlY29kZS5tX2RzdCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZU5hbWUpOworICAgIGVtaXRIYXNQ
cml2YXRlU2xvdyhieXRlY29kZS5tX2RzdCwgYnl0ZWNvZGUubV9iYXNlLCBieXRlY29kZS5tX3By
b3BlcnR5LCBBY2Nlc3NUeXBlOjpIYXNQcml2YXRlTmFtZSk7CiB9CiAKIHZvaWQgSklUOjplbWl0
X29wX2hhc19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCkBAIC04ODMsMTkgKzg4NiwxMiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZh
dGVfYnJhbmQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVgogICAgIGxp
bmtBbGxTbG93Q2FzZXMoaXRlcik7CiAKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3Ry
dWN0aW9uLT5hczxPcEhhc1ByaXZhdGVCcmFuZD4oKTsKLSAgICBlbWl0SGFzUHJpdmF0ZVNsb3co
Ynl0ZWNvZGUubV9kc3QsIEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVCcmFuZCk7Ci19Ci0KLXZvaWQg
SklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcykK
LXsKLSAgICBpZiAoIW5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAgICByZXR1cm47Ci0g
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKG1fcHJvZmlsZWRD
b2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT52YXJJbmplY3Rpb25XYXRjaHBvaW50KCktPmFkZHJl
c3NPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKKyAgICBlbWl0SGFz
UHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIGJ5dGVjb2RlLm1fYmFzZSwgYnl0ZWNvZGUubV9i
cmFuZCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRS
ZXNvbHZlQ2xvc3VyZShWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUs
IGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRoKQogewotICAgIGVt
aXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyk7CisgICAgZW1pdFZh
ckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCByZWdUMCk7CiAgICAgbW92
ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1QxKTsKICAgICBlbWl0TG9hZFBh
eWxvYWQoc2NvcGUsIHJlZ1QwKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVwdGg7
ICsraSkKQEAgLTkxOCw3ICs5MTQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3Bl
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgR2xv
YmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOiB7CiAgICAgICAgICAgICBKU1Njb3Bl
KiBjb25zdGFudFNjb3BlID0gSlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVCbG9jayhyZXNv
bHZlVHlwZSwgbV9wcm9maWxlZENvZGVCbG9jayk7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VChjb25zdGFudFNjb3BlKTsKLSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVk
c1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOworICAgICAgICAgICAgZW1pdFZhcklu
amVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwgcmVnVDAp
OwogICAgICAgICAgICAgbG9hZDMyKCZtZXRhZGF0YS5tX2dsb2JhbExleGljYWxCaW5kaW5nRXBv
Y2gsIHJlZ1QxKTsKICAgICAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCBB
YnNvbHV0ZUFkZHJlc3MobV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmFkZHJl
c3NPZkdsb2JhbExleGljYWxCaW5kaW5nRXBvY2goKSksIHJlZ1QxKSk7CiAgICAgICAgICAgICBt
b3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVnVDEpOwpAQCAtOTMzLDcgKzky
OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Jlc29sdmVfc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZh
ckluamVjdGlvbkNoZWNrczogewogICAgICAgICAgICAgSlNTY29wZSogY29uc3RhbnRTY29wZSA9
IEpTU2NvcGU6OmNvbnN0YW50U2NvcGVGb3JDb2RlQmxvY2socmVzb2x2ZVR5cGUsIG1fcHJvZmls
ZWRDb2RlQmxvY2spOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29uc3RhbnRTY29wZSk7
Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVj
a3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVk
c1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIG1v
dmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdUMSk7CiAgICAgICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoY29uc3RhbnRTY29wZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGVt
aXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CkBAIC0xMDczLDcgKzEwNjksNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogICAgICAgICBjYXNlIEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAg
ICAgICAgIGNhc2UgR2xvYmFsTGV4aWNhbFZhcjoKICAgICAgICAgY2FzZSBHbG9iYWxMZXhpY2Fs
VmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKLSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25D
aGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOworICAgICAgICAgICAg
ZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBl
KSwgcmVnVDApOwogICAgICAgICAgICAgaWYgKGluZGlyZWN0TG9hZEZvck9wZXJhbmQpCiAgICAg
ICAgICAgICAgICAgZW1pdEdldFZhckZyb21JbmRpcmVjdFBvaW50ZXIoYml0d2lzZV9jYXN0PEpT
VmFsdWUqKj4ob3BlcmFuZFNsb3QpLCByZWdUMSwgcmVnVDApOwogICAgICAgICAgICAgZWxzZQpA
QCAtMTA4Myw3ICsxMDc5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgQ2xvc3VyZVZhcldpdGhWYXJJ
bmplY3Rpb25DaGVja3M6Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNW
YXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmpl
Y3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsK
ICAgICAgICAgICAgIGVtaXRHZXRDbG9zdXJlVmFyKHNjb3BlLCAqb3BlcmFuZFNsb3QpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRHluYW1pYzoKQEAgLTExNzIsNyArMTE2OCw3
IEBAIHZvaWQgSklUOjplbWl0UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdChKU1ZhbHVlKiogYWRk
cmVzc09mT3BlcmFuZCwgVmlydHVhbFJlZ2lzCiB7CiAgICAgZW1pdExvYWQodmFsdWUsIHJlZ1Qx
LCByZWdUMCk7CiAgICAgbG9hZFB0cihpbmRpcmVjdFdhdGNocG9pbnRTZXQsIHJlZ1QyKTsKLSAg
ICBlbWl0Tm90aWZ5V3JpdGUocmVnVDIpOworICAgIGVtaXROb3RpZnlXcml0ZSgqaW5kaXJlY3RX
YXRjaHBvaW50U2V0KTsgLy8gRklYTUU6ID8/CiAgICAgbG9hZFB0cihhZGRyZXNzT2ZPcGVyYW5k
LCByZWdUMik7CiAgICAgc3RvcmUzMihyZWdUMSwgQWRkcmVzcyhyZWdUMiwgVGFnT2Zmc2V0KSk7
CiAgICAgc3RvcmUzMihyZWdUMCwgQWRkcmVzcyhyZWdUMiwgUGF5bG9hZE9mZnNldCkpOwpAQCAt
MTE5Myw3ICsxMTg5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYXV0byYgbWV0YWRhdGEgPSBieXRl
Y29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAgICBWaXJ0dWFsUmVnaXN0ZXIg
c2NvcGUgPSBieXRlY29kZS5tX3Njb3BlOwogICAgIFZpcnR1YWxSZWdpc3RlciB2YWx1ZSA9IGJ5
dGVjb2RlLm1fdmFsdWU7Ci0gICAgR2V0UHV0SW5mbyBnZXRQdXRJbmZvID0gY29waWVkR2V0UHV0
SW5mbyhieXRlY29kZSk7CisgICAgR2V0UHV0SW5mbyBnZXRQdXRJbmZvID0gYnl0ZWNvZGUubWV0
YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9nZXRQdXRJbmZvOwogICAgIFJlc29sdmVUeXBl
IHJlc29sdmVUeXBlID0gZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpOwogICAgIFN0cnVjdHVyZSoq
IHN0cnVjdHVyZVNsb3QgPSBtZXRhZGF0YS5tX3N0cnVjdHVyZS5zbG90KCk7CiAgICAgdWludHB0
cl90KiBvcGVyYW5kU2xvdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Kj4oJm1ldGFkYXRh
Lm1fb3BlcmFuZCk7CkBAIC0xMjIwLDggKzEyMTYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRf
dG9fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAg
ICAgIEpTU2NvcGUqIGNvbnN0YW50U2NvcGUgPSBKU1Njb3BlOjpjb25zdGFudFNjb3BlRm9yQ29k
ZUJsb2NrKHJlc29sdmVUeXBlLCBtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGNvbnN0YW50U2NvcGUpOwogICAgICAgICAgICAgZW1pdFdyaXRlQmFycmll
cihjb25zdGFudFNjb3BlLCB2YWx1ZSwgU2hvdWxkRmlsdGVyVmFsdWUpOwotICAgICAgICAgICAg
ZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBl
KSk7Ci0gICAgICAgICAgICBlbWl0VmFyUmVhZE9ubHlDaGVjayhyZXNvbHZlVHlwZSk7CisgICAg
ICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVz
b2x2ZVR5cGUpLCByZWdUMCk7CisgICAgICAgICAgICBlbWl0VmFyUmVhZE9ubHlDaGVjayhyZXNv
bHZlVHlwZSwgcmVnVDApOwogICAgICAgICAgICAgaWYgKCFpc0luaXRpYWxpemF0aW9uKGdldFB1
dEluZm8uaW5pdGlhbGl6YXRpb25Nb2RlKCkpICYmIChyZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhp
Y2FsVmFyIHx8IHJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzKSkgewogICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZG8gYSBURFogY2hlY2sg
aGVyZSBiZWNhdXNlIHdlIGNhbid0IGFsd2F5cyBwcm92ZSB3ZSBuZWVkIHRvIGVtaXQgVERaIGNo
ZWNrcyBzdGF0aWNhbGx5LgogICAgICAgICAgICAgICAgIGlmIChpbmRpcmVjdExvYWRGb3JPcGVy
YW5kKQpAQCAtMTI0MCw3ICsxMjM2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3Bl
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgQ2xv
c3VyZVZhcjoKICAgICAgICAgY2FzZSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoK
ICAgICAgICAgICAgIGVtaXRXcml0ZUJhcnJpZXIoc2NvcGUsIHZhbHVlLCBTaG91bGRGaWx0ZXJW
YWx1ZSk7Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rp
b25DaGVja3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVj
ayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAg
ICAgIGVtaXRQdXRDbG9zdXJlVmFyKHNjb3BlLCAqb3BlcmFuZFNsb3QsIHZhbHVlLCBtZXRhZGF0
YS5tX3dhdGNocG9pbnRTZXQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTW9k
dWxlVmFyOgpAQCAtMTMxMyw3ICsxMzA5LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF90
b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3IKICAg
ICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJ
bnN0cnVjdGlvbi0+YXM8T3BQdXRUb1Njb3BlPigpOwotICAgIFJlc29sdmVUeXBlIHJlc29sdmVU
eXBlID0gY29waWVkR2V0UHV0SW5mbyhieXRlY29kZSkucmVzb2x2ZVR5cGUoKTsKKyAgICBSZXNv
bHZlVHlwZSByZXNvbHZlVHlwZSA9IGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxv
Y2spLm1fZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpOwogICAgIGlmIChyZXNvbHZlVHlwZSA9PSBN
b2R1bGVWYXIpIHsKICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBj
dXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF90aHJvd19zdHJpY3RfbW9kZV9yZWFkb25seV9w
cm9wZXJ0eV93cml0ZV9lcnJvcik7CiAgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCmluZGV4IGYzZDk3Y2E0ZjdjYi4uMzRhYjc3ZjQxMDQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQpAQCAtNDk5LDYgKzQ5OSw4IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkK
ICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IpCiAgICAgICAgICAgICBidHB6IHIw
LCAucmVjb3ZlcgogICAgICAgICAgICAgbW92ZSByMSwgc3AKKworICAgICAgICAgICAgbG9hZEJh
c2VsaW5lSklUQ29uc3RhbnRQb29sKCkKICAgICAgICAgICAgIGptcCByMAogICAgICAgICAucmVj
b3ZlcjoKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzICsgVGFn
T2Zmc2V0W2Nmcl0sIFBDCi0tIAoyLjMxLjEKCg==
</data>
<flag name="commit-queue"
          id="463600"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439851</attachid>
            <date>2021-10-01 06:50:39 -0700</date>
            <delta_ts>2021-10-01 07:05:01 -0700</delta_ts>
            <desc>v2</desc>
            <filename>0001-JSC-32bit-Fix-build-after-unlinked-baseline-JIT.patch</filename>
            <type>text/plain</type>
            <size>29204</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAwZWJiMzZlNjM5OTEyZGJmMzVlYzJkNjY1ZWY0MWE2YTFmMmY2ZDc3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCAyNiBTZXAgMjAyMSAxMDo0NDoxMiArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklU
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODAzCgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgZW5vdWdoIHRvIG1ha2UgdGhpbmdzIGJ1aWxk
LCBidXQgcHJldHR5IG11Y2ggbm90aGluZyB3b3Jrcwp5ZXQuIFdpbGwgZml4IGluIGEgZm9sbG93
LXVwLCB0aGlzIHdheSB3ZSBhdCBsZWFzdCBnaXZlIHBlb3BsZSBhCmNoYW5jZSBhdCBub3QgaW50
cm9kdWNpbmcgbW9yZSBidWlsZCByZWdyZXNzaW9ucy4KCiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNoMzIpOgooSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaEFkZDMyKToKKiBieXRl
Y29kZS9DYWxsTGlua0luZm8uaDoKKEpTQzo6Q2FsbExpbmtJbmZvOjphZGRyZXNzT2ZNYXhBcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcyk6Ciogaml0L0pJVC5oOgoqIGppdC9KSVRDYWxsMzJfNjQu
Y3BwOgooSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgoqIGppdC9KSVRJbmxpbmVzLmg6CihKU0M6
OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CihKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUpOgooSlNDOjpKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1Np
dGVXaXRoQ2VsbCk6Ciogaml0L0pJVE9wY29kZXMuY3BwOgooSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgooSlNDOjpKSVQ6OmVtaXRWYXJJ
bmplY3Rpb25DaGVjayk6Ciogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgooSlNDOjpK
SVQ6OmVtaXRIYXNQcml2YXRlU2xvdyk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZh
dGVfbmFtZSk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfYnJhbmQpOgooSlND
OjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6CihKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Nj
b3BlKToKKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKEpTQzo6SklUOjplbWl0
UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdCk6CihKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfdG9fc2Nv
cGUpOgooSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6CihKU0M6OkpJVDo6ZW1p
dFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICB8IDQyICsrKysrKysrKwogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmgg
ICAgICAgICAgIHwgMzUgKysrLS0tLS0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
LmggICAgICAgICAgICB8IDg5ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaCB8IDEwICsrLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaCAgICAgICAgICAgICAgIHwgMTIgKystCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwzMl82NC5jcHAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVzLmggICAgICAgIHwgMzQgKysrKysrLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzLmNwcCAgICAgIHwgIDMgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwICB8IDIwICsrLS0tCiAuLi4vaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwICAgICAgICAgICAgfCAzOCArKysrLS0tLQogLi4uL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtICAgICAgICAgICAgIHwgIDMgKwogLi4uL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20gICAgICAgIHwgIDMgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjMw
IGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDIxMmNmYTkxM2YzNy4uYzkyNDhhOWEwNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NSBAQAorMjAyMS0xMC0wMSAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxp
bmUgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzA4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGlzIGVub3VnaCB0byBtYWtlIHRoaW5ncyBidWlsZCwgYnV0IHByZXR0eSBtdWNoIG5vdGhp
bmcgd29ya3MKKyAgICAgICAgeWV0LiBXaWxsIGZpeCBpbiBhIGZvbGxvdy11cCwgdGhpcyB3YXkg
d2UgYXQgbGVhc3QgZ2l2ZSBwZW9wbGUgYQorICAgICAgICBjaGFuY2UgYXQgbm90IGludHJvZHVj
aW5nIG1vcmUgYnVpbGQgcmVncmVzc2lvbnMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpicmFu
Y2gzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmJyYW5jaEFkZDMyKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YnJhbmNoQWRkMzIpOgorICAgICAgICAqIGJ5dGVjb2RlL0Nh
bGxMaW5rSW5mby5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OmFkZHJlc3NPZk1heEFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAg
ICogaml0L0pJVENhbGwzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2Fs
bCk6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
VmFsdWVQcm9maWxpbmdTaXRlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxp
bmdTaXRlSWZQcm9maWxlZE9wY29kZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEFycmF5UHJv
ZmlsaW5nU2l0ZVdpdGhDZWxsKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9sb29wX2hpbnQpOgorICAgICAgICAqIGppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNr
KToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdEhhc1ByaXZhdGVTbG93KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xv
d19vcF9oYXNfcHJpdmF0ZV9uYW1lKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9o
YXNfcHJpdmF0ZV9icmFuZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFJlc29sdmVDbG9zdXJl
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Jlc29sdmVfc2NvcGUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRQdXRHbG9iYWxWYXJpYWJsZUluZGlyZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X3B1dF90b19zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0X3RvX3Nj
b3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2spOiBEZWxldGVk
LgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisKIDIwMjEt
MDktMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGdy
YWRlIEdDQyByZXF1aXJlbWVudCB0byA4LjMuMApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBkZjUxZTk1MmRkY2Qu
LjJlZjQ4NjAzMWMwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTE2MTAsNyArMTYxMCwxNCBAQCBwdWJsaWM6
CiAKICAgICBKdW1wIGJyYW5jaDMyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJ
RCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuY21w
KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgaWYgKGxlZnQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgewor
ICAgICAgICAgICAgbW92ZShsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmNtcChkYXRhVGVtcFJlZ2lzdGVyLCByaWdodCk7CisgICAgICAgIH0gZWxzZSBp
ZiAocmlnaHQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgbW92ZShyaWdodCwg
ZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwgZGF0
YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9hc3NlbWJsZXIu
Y21wKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgcmV0dXJuIEp1bXAobWFrZUJyYW5jaChjb25kKSk7
CiAgICAgfQogCkBAIC0xODQwLDI3ICsxODQ3LDEzIEBAIHB1YmxpYzoKIAogICAgIEp1bXAgYnJh
bmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFic29sdXRl
QWRkcmVzcyBkZXN0KQogICAgIHsKLSAgICAgICAgLy8gTW92ZSB0aGUgaGlnaCBiaXRzIG9mIHRo
ZSBhZGRyZXNzIGludG8gYWRkcmVzc1RlbXBSZWdpc3RlciwKLSAgICAgICAgLy8gYW5kIGxvYWQg
dGhlIHZhbHVlIGludG8gZGF0YVRlbXBSZWdpc3Rlci4KLSAgICAgICAgbW92ZShUcnVzdGVkSW1t
UHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgbV9hc3NlbWJs
ZXIubGRyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIsIEFSTVRodW1iSW1t
ZWRpYXRlOjptYWtlVUludDE2KDApKTsKLQotICAgICAgICAvLyBEbyB0aGUgYWRkLgotICAgICAg
ICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29k
ZWRJbW0oaW1tLm1fdmFsdWUpOwotICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0
ZXIsIGFybUltbSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8gSWYgdGhlIG9wZXJh
bmQgZG9lcyBub3QgZml0IGludG8gYW4gaW1tZWRpYXRlIHRoZW4gbG9hZCBpdCB0ZW1wb3Jhcmls
eQotICAgICAgICAgICAgLy8gaW50byBhZGRyZXNzVGVtcFJlZ2lzdGVyOyBzaW5jZSB3ZSdyZSBv
dmVyd3JpdGluZyBhZGRyZXNzVGVtcFJlZ2lzdGVyCi0gICAgICAgICAgICAvLyB3ZSdsbCBuZWVk
IHRvIHJlbG9hZCBpdCB3aXRoIHRoZSBoaWdoIGJpdHMgb2YgdGhlIGFkZHJlc3MgYWZ0ZXJ3YXJk
cy4KLSAgICAgICAgICAgIG1vdmUoaW1tLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZF9TKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIs
IGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRl
c3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8v
IFN0b3JlIHRoZSByZXN1bHQuCi0gICAgICAgIG1fYXNzZW1ibGVyLnN0cihkYXRhVGVtcFJlZ2lz
dGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxNigw
KSk7CisgICAgICAgIGFkZDMyKGltbSwgZGVzdCk7CisgICAgICAgIHJldHVybiBKdW1wKG1ha2VC
cmFuY2goY29uZCkpOworICAgIH0KIAorICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0
aW9uIGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAgICAg
IGFkZDMyKGltbSwgZGVzdCk7CiAgICAgICAgIHJldHVybiBKdW1wKG1ha2VCcmFuY2goY29uZCkp
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2UzYWUyYWZhZjBjLi41OWU3MmFkNTUwMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1J
UFMuaApAQCAtMjM1NCw2ICsyMzU0LDk1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEp1bXAo
KTsKICAgICB9CiAKKyAgICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBU
cnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQoKGNv
bmQgPT0gT3ZlcmZsb3cpIHx8IChjb25kID09IFNpZ25lZCkgfHwgKGNvbmQgPT0gUG9zaXRpdmVP
clplcm8pIHx8IChjb25kID09IFplcm8pIHx8IChjb25kID09IE5vblplcm8pKTsKKyAgICAgICAg
aWYgKGNvbmQgPT0gT3ZlcmZsb3cpIHsKKyAgICAgICAgICAgIGlmIChtX2ZpeGVkV2lkdGgpIHsK
KyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgbG9hZCAgICBkZXN0LCBkYXRh
VGVtcAorICAgICAgICAgICAgICAgICAgbW92ZSAgICBpbW0sIGltbVRlbXAKKyAgICAgICAgICAg
ICAgICAgIHhvciAgICAgY21wVGVtcCwgZGF0YVRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAg
ICAgIGFkZHUgICAgZGF0YVRlbXAsIGRhdGFUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAg
ICBzdG9yZSAgIGRhdGFUZW1wLCBkZXN0CisgICAgICAgICAgICAgICAgICBibHR6ICAgIGNtcFRl
bXAsIE5vX292ZXJmbG93ICAgICMgZGlmZiBzaWduIGJpdCAtPiBubyBvdmVyZmxvdworICAgICAg
ICAgICAgICAgICAgeG9yICAgICBjbXBUZW1wLCBkYXRhVGVtcCwgaW1tVGVtcAorICAgICAgICAg
ICAgICAgICAgYmdleiAgICBjbXBUZW1wLCBOb19vdmVyZmxvdyAgICAjIHNhbWUgc2lnbiBiaWcg
LT4gbm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgIG5vcAorICAgICAgICAgICAgICAgICAg
YiAgICAgICBPdmVyZmxvdworICAgICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAgICAg
ICBiICAgICAgIE5vX292ZXJmbG93CisgICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAgICAg
ICAgICAgIG5vcAorICAgICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBOb19v
dmVyZmxvdzoKKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGxvYWQzMihkZXN0
LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci54b3JJbnNuKGNtcFRlbXBSZWdp
c3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5hZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGlt
bVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVy
LCBkZXN0KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ibHR6KGNtcFRlbXBSZWdpc3Rl
ciwgOSk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIueG9ySW5zbihjbXBUZW1wUmVnaXN0
ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYmdleihjbXBUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLm5vcCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0KTsK
KyAgICAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gMCAmJiBpbW0ubV92YWx1ZSAgPD0g
MzI3NjcpIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShkYXRhVGVtcFJlZ2lzdGVyLCBjbXBU
ZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRh
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW0ubV92YWx1ZSk7CisgICAgICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVtcFJlZ2lzdGVyLCA5KTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBk
ZXN0Lm9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooZGF0YVRl
bXBSZWdpc3RlciwgNyk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGltbS5t
X3ZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKGRhdGFUZW1wUmVnaXN0ZXIs
IGNtcFRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGl1
KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbS5tX3ZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmdleihjbXBUZW1wUmVnaXN0ZXIsIDkpOworICAg
ICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0LmJh
c2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmx0eihj
bXBUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ub3Ao
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKGlt
bSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIueG9y
SW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoZGF0YVRlbXBSZWdpc3Rlciwg
ZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYmx0eihjbXBUZW1wUmVnaXN0ZXIsIDEwKTsKKyAgICAgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9mZnNl
dCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnhvckluc24oY21wVGVtcFJlZ2lz
dGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5iZ2V6KGNtcFRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiBqdW1wKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1f
Zml4ZWRXaWR0aCkgeworICAgICAgICAgICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7Cisg
ICAgICAgICAgICBsb2FkMzIoZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBh
ZGQzMihpbW1UZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgc3Rv
cmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5vZmZz
ZXQpOworICAgICAgICAgICAgYWRkMzIoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5vZmZz
ZXQpOworICAgICAgICB9CisgICAgICAgIGlmIChjb25kID09IFNpZ25lZCkgeworICAgICAgICAg
ICAgLy8gQ2hlY2sgaWYgZGVzdCBpcyBuZWdhdGl2ZS4KKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnNsdChjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onpl
cm8pOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFsKGNtcFRlbXBSZWdpc3Rlciwg
TUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gUG9z
aXRpdmVPclplcm8pIHsKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIGRlc3QgaXMgbm90IG5lZ2F0
aXZlLgorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0KGNtcFRlbXBSZWdpc3RlciwgZGF0YVRl
bXBSZWdpc3RlciwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgICAgICByZXR1cm4gYnJh
bmNoRXF1YWwoY21wVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaEVx
dWFsKGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICBpZiAo
Y29uZCA9PSBOb25aZXJvKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFsKGRhdGFU
ZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICBBU1NFUlQoMCk7Cisg
ICAgICAgIHJldHVybiBKdW1wKCk7CisgICAgfQorCiAgICAgSnVtcCBicmFuY2hNdWwzMihSZXN1
bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVCgoY29uZCA9PSBPdmVyZmxvdykgfHwg
KGNvbmQgPT0gU2lnbmVkKSB8fCAoY29uZCA9PSBaZXJvKSB8fCAoY29uZCA9PSBOb25aZXJvKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXgg
NGI4MTIwZTI2NTg2Li5kNTY4N2MxMjA4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJDYWxsRnJhbWVTaHVmZmxlRGF0YS5oIgogI2luY2x1ZGUgIkNhbGxNb2Rl
LmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0
aW9uS2luZC5oIgpAQCAtNDEsNyArNDIsNyBAQCBjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBG
dW5jdGlvbkNvZGVCbG9jazsKIGNsYXNzIEpTRnVuY3Rpb247CiBlbnVtIE9wY29kZUlEIDogdW5z
aWduZWQ7Ci1zdHJ1Y3QgQ2FsbEZyYW1lU2h1ZmZsZURhdGE7CisKIAogc3RydWN0IFVubGlua2Vk
Q2FsbExpbmtJbmZvOwogCkBAIC0zMTQsNiArMzE1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihDYWxsTGlua0luZm8sIG1fbWF4QXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMpOwogICAgIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgdWludDMyX3Qq
IGFkZHJlc3NPZk1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkKKyAgICB7CisgICAgICAg
IHJldHVybiAmbV9tYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKKyAgICB9CisjZW5kaWYK
KwogICAgIHVpbnQzMl90IG1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX21heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKaW5kZXggNWVkM2I4NGRlMTc3Li45ZWI3NjRjOTA0NGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaApAQCAtMzQ1LDEyICszNDUsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHZhbHVlIHRvIHByb2ZpbGUgaXMgaW4gcmVn
VDAgYW5kIHRoYXQgcmVnVDMgaXMgYXZhaWxhYmxlIGZvcgogICAgICAgICAvLyBzY3JhdGNoLgot
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2RlPiB2
b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmLCBHUFJSZWcpOwogICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlKGNvbnN0IEJ5dGVjb2RlJiwgSlNWYWx1ZVJlZ3MpOwotI2Vsc2UKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxl
JiwgSlNWYWx1ZVJlZ3MpOwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4gdm9p
ZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwgSlNWYWx1ZVJlZ3MpOworICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4KKyAgICAgICAgc3RkOjplbmFibGVfaWZfdDxz
dGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvZmlsZT46
OnZhbHVlLCB2b2lkPgorICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwg
SlNWYWx1ZVJlZ3MpOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdT
aXRlSWZQcm9maWxlZE9wY29kZSguLi4pOwpAQCAtMzYzLDYgKzM2NCwxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEJ5dGVjb2RlPgogICAgICAgICB2b2lk
IGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChjb25zdCBCeXRlY29kZSYsIHB0cmRpZmZf
dCwgUmVnaXN0ZXJJRCBjZWxsR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpOwogCisjaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICAgICAgdm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENl
bGwoUmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKiAsIFJlZ2lzdGVySUQpOworICAgICAgICB2b2lk
IGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklELCBSZWdpc3RlcklEICwg
UmVnaXN0ZXJJRCk7CisjZW5kaWYKKwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KICAg
ICAgICAgRUNNQU1vZGUgZWNtYU1vZGUoT3ApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENhbGwzMl82NC5jcHAKaW5kZXggMWNkNzRmNDY5NDg5Li4xZTA1ZTIwNWE4N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKQEAgLTMxMCw3ICszMTAs
NyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rp
b24sIHVuc2lnbmVkIGNhbGxMaW5rSW5mb0luZAogCiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQoKTsKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfdGFpbF9jYWxsIHx8IG9wY29kZUlEID09
IG9wX3RhaWxfY2FsbF92YXJhcmdzIHx8IG9wY29kZUlEID09IG9wX3RhaWxfY2FsbF9mb3J3YXJk
X2FyZ3VtZW50cykgewotICAgICAgICBhdXRvIHNsb3dQYXRocyA9IGluZm8tPmVtaXRUYWlsQ2Fs
bEZhc3RQYXRoKCp0aGlzLCByZWdUMCwgcmVnVDIsIENhbGxMaW5rSW5mbzo6VXNlRGF0YUlDOjpZ
ZXMsIFsmXSB7CisgICAgICAgIGF1dG8gc2xvd1BhdGhzID0gaW5mby0+ZW1pdFRhaWxDYWxsRGF0
YUlDRmFzdFBhdGgoKnRoaXMsIHJlZ1QwLCByZWdUMiwgWyZdIHsKICAgICAgICAgICAgIGVtaXRS
ZXN0b3JlQ2FsbGVlU2F2ZXMoKTsKICAgICAgICAgICAgIHByZXBhcmVGb3JUYWlsQ2FsbFNsb3co
cmVnVDIpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
aW5kZXggMWYzY2EzMTgzYTgzLi44NWM2YTg0OGJmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lcy5oCkBAIC0zMzQsNiArMzM0LDEyIEBAIGlubGluZSB2b2lkIEpJVDo6ZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSwgSlNWYWx1ZVJl
Z3MKICAgICBzdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwgJmRlc2NyaXB0b3ItPmFzQml0cy5w
YXlsb2FkKTsKICAgICBzdG9yZTMyKHZhbHVlLnRhZ0dQUigpLCAmZGVzY3JpcHRvci0+YXNCaXRz
LnRhZyk7CiB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPgorc3RkOjplbmFibGVfaWZf
dDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvZmls
ZT46OnZhbHVlLCB2b2lkPiBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmIG1l
dGFkYXRhLCBKU1ZhbHVlUmVncyB2YWx1ZSkKK3sKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KHZhbHVlUHJvZmlsZUZvcihtZXRhZGF0YSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSks
IHZhbHVlKTsKK30KICNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KQEAgLTM0MiwyMSAr
MzQ4LDI2IEBAIGlubGluZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxkZWNsdHlwZShP
cDo6TWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCByZWdUMCk7CiAjZWxzZQotICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVj
b2RlLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICNlbmRpZgogfQogCiBpbmxpbmUgdm9p
ZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlByb2ZpbGVkT3Bjb2RlKC4uLikgeyB9CiAK
LSNpZiBVU0UoSlNWQUxVRTY0KQogdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+CiBpbmxpbmUg
dm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2Rl
LCBKU1ZhbHVlUmVncyB2YWx1ZSkKIHsKICAgICBpZiAoIXNob3VsZEVtaXRQcm9maWxpbmcoKSkK
ICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBwdHJkaWZmX3Qgb2Zm
c2V0ID0gbV91bmxpbmtlZENvZGVCbG9jay0+bWV0YWRhdGEoKS5vZmZzZXRJbk1ldGFkYXRhVGFi
bGUoYnl0ZWNvZGUpICsgdmFsdWVQcm9maWxlT2Zmc2V0Rm9yPEJ5dGVjb2RlPihtX2J5dGVjb2Rl
SW5kZXguY2hlY2twb2ludCgpKSArIFZhbHVlUHJvZmlsZTo6b2Zmc2V0T2ZGaXJzdEJ1Y2tldCgp
OwogICAgIHN0b3JlNjQodmFsdWUuZ3ByKCksIEFkZHJlc3Moc19tZXRhZGF0YUdQUiwgb2Zmc2V0
KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJ5
dGVjb2RlKTsKKyAgICAvLyBGSVhNRS4KKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBC
eXRlY29kZT4KQEAgLTM2NCw3ICszNzUsNiBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVBy
b2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2RlLCBHUFJSZWcgcmVzdWx0Ugogewog
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJlc3VsdFJl
ZykpOwogfQotI2VuZGlmCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBCeXRlY29kZT4KIGlubGluZSB2
b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVjb2RlJiBi
eXRlY29kZSwgcHRyZGlmZl90IG9mZnNldE9mQXJyYXlQcm9maWxlLCBSZWdpc3RlcklEIGNlbGxH
UFIsIFJlZ2lzdGVySUQgc2NyYXRjaEdQUikKQEAgLTM4MSw2ICszOTEsMjQgQEAgaW5saW5lIHZv
aWQgSklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoY29uc3QgQnl0ZWNvZGUmIGJ5
dGVjb2RlLCBSZWdpc3QKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoYnl0ZWNv
ZGUsIEJ5dGVjb2RlOjpNZXRhZGF0YTo6b2Zmc2V0T2ZBcnJheVByb2ZpbGUoKSArIEFycmF5UHJv
ZmlsZTo6b2Zmc2V0T2ZMYXN0U2VlblN0cnVjdHVyZUlEKCksIGNlbGxHUFIsIHNjcmF0Y2hHUFIp
OwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSB2b2lkIEpJVDo6ZW1pdEFycmF5
UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKFJlZ2lzdGVySUQgY2VsbEdQUiwgQXJyYXlQcm9maWxlKiBh
cnJheVByb2ZpbGUsIFJlZ2lzdGVySUQgc2NyYXRjaEdQUikKK3sKKyAgICBpZiAoc2hvdWxkRW1p
dFByb2ZpbGluZygpKSB7CisgICAgICAgIGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhj
ZWxsR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAg
ICAgc3RvcmUzMihzY3JhdGNoR1BSLCBhcnJheVByb2ZpbGUtPmFkZHJlc3NPZkxhc3RTZWVuU3Ry
dWN0dXJlSUQoKSk7CisgICAgfQorfQorCitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVByb2Zp
bGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGxHUFIsIFJlZ2lzdGVySUQgYXJyYXlQcm9m
aWxlR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpCit7CisgICAgaWYgKHNob3VsZEVtaXRQcm9m
aWxpbmcoKSkgeworICAgICAgICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2VsbEdQ
UiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgIHN0
b3JlMzIoc2NyYXRjaEdQUiwgQWRkcmVzcyhhcnJheVByb2ZpbGVHUFIsIEFycmF5UHJvZmlsZTo6
b2Zmc2V0T2ZMYXN0U2VlblN0cnVjdHVyZUlEKCkpKTsKKyAgICB9Cit9CisjZW5kaWYKKwogQUxX
QVlTX0lOTElORSBpbnQzMl90IEpJVDo6Z2V0T3BlcmFuZENvbnN0YW50SW50KFZpcnR1YWxSZWdp
c3RlciBzcmMpCiB7CiAgICAgcmV0dXJuIGdldENvbnN0YW50T3BlcmFuZChzcmMpLmFzSW50MzIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGZjM2FiZDZm
ZDhiMS4uOGNjYmJiZmU5YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKQEAgLTE0NjYsMTAgKzE0NjYsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9oaW50
KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwor
ICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KHJlc3VsdFJlZ3MuZ3ByKCkpOwogI2Vsc2UKICAgICAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgbG9hZEdsb2JhbE9iamVjdChyZXN1bHRSZWdz
LnBheWxvYWRHUFIoKSk7IC8vIEZJWE1FOiBuZWVkIHRvIG1vdmUgdGhlIHdob2xlIHRoaW5nLgog
I2VuZGlmCi0gICAgICAgIGxvYWRHbG9iYWxPYmplY3QocmVzdWx0UmVncy5ncHIoKSk7CiAgICAg
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgICAgIGVtaXRSZXN0b3JlQ2Fs
bGVlU2F2ZXMoKTsKICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggOWEyYTdjYWFj
OWIzLi5jMTg2MzY5OTYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xODIxLDE2ICsxODIxLDYgQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX2hhc19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFYKICAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIGJ5dGVjb2Rl
Lm1fYmFzZSwgYnl0ZWNvZGUubV9icmFuZCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5kKTsK
IH0KIAotdm9pZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5lZWRzVmFySW5qZWN0
aW9uQ2hlY2tzLCBHUFJSZWcgc2NyYXRjaEdQUikKLXsKLSAgICBpZiAoIW5lZWRzVmFySW5qZWN0
aW9uQ2hlY2tzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBsb2FkR2xvYmFsT2JqZWN0KHNjcmF0
Y2hHUFIpOwotICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBPQkpFQ1RfT0ZGU0VUT0Yo
SlNHbG9iYWxPYmplY3QsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludCkpLCBzY3JhdGNoR1BSKTsK
LSAgICBhZGRTbG93Q2FzZShicmFuY2g4KEVxdWFsLCBBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhdGNo
cG9pbnRTZXQ6Om9mZnNldE9mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0ludmFsaWRhdGVkKSkp
OwotfQotCiB2b2lkIEpJVDo6ZW1pdFJlc29sdmVDbG9zdXJlKFZpcnR1YWxSZWdpc3RlciBkc3Qs
IFZpcnR1YWxSZWdpc3RlciBzY29wZSwgYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgdW5z
aWduZWQgZGVwdGgpCiB7CiAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0
aW9uQ2hlY2tzLCByZWdUMCk7CkBAIC0zMTkxLDYgKzMxODEsMTYgQEAgdm9pZCBKSVQ6OmVtaXRX
cml0ZUJhcnJpZXIoR1BSUmVnIG93bmVyKQogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVkZW4u
bGluayh0aGlzKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5l
ZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCBHUFJSZWcgc2NyYXRjaEdQUikKK3sKKyAgICBpZiAoIW5l
ZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2FkR2xvYmFs
T2JqZWN0KHNjcmF0Y2hHUFIpOworICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBPQkpF
Q1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludCkpLCBz
Y3JhdGNoR1BSKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4KEVxdWFsLCBBZGRyZXNzKHNjcmF0
Y2hHUFIsIFdhdGNocG9pbnRTZXQ6Om9mZnNldE9mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0lu
dmFsaWRhdGVkKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJM
RShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2VzczMyXzY0LmNwcAppbmRleCA1Zjg2MmE1N2ZlMDAuLjI3MjE3MDUzNTllYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
CkBAIC04NDYsOSArODQ2LDEyIEBAIHZvaWQgSklUOjplbWl0SGFzUHJpdmF0ZShWaXJ0dWFsUmVn
aXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgYmFzZSwgVmlydHVhbFJlZ2lzCiAgICAgZW1pdFN0
b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRIYXNQcml2YXRlU2xv
dyhWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBBY2Nlc3NUeXBlIHR5cGUpCit2b2lkIEpJVDo6ZW1pdEhh
c1ByaXZhdGVTbG93KFZpcnR1YWxSZWdpc3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBiYXNlLCBW
aXJ0dWFsUmVnaXN0ZXIgcHJvcGVydHksIEFjY2Vzc1R5cGUgdHlwZSkKIHsKKyAgICAvLyBGSVhN
RTogNjQtYml0IHNlZW1zIHRvIGFsc28gaWdub3JlIGJhc2UvcHJvcGVydHkuCiAgICAgQVNTRVJU
KHR5cGUgPT0gQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZU5hbWUgfHwgdHlwZSA9PSBBY2Nlc3NUeXBl
OjpIYXNQcml2YXRlQnJhbmQpOworICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKKyAgICBVTlVTRURf
UEFSQU0ocHJvcGVydHkpOwogCiAgICAgSklUSW5CeVZhbEdlbmVyYXRvciYgZ2VuID0gbV9pbkJ5
VmFsc1ttX2luQnlWYWxJbmRleCsrXTsKICAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwo
KTsKQEAgLTg2OSw3ICs4NzIsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVf
bmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZQogICAgIGxpbmtB
bGxTbG93Q2FzZXMoaXRlcik7CiAKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0
aW9uLT5hczxPcEhhc1ByaXZhdGVOYW1lPigpOwotICAgIGVtaXRIYXNQcml2YXRlU2xvdyhieXRl
Y29kZS5tX2RzdCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZU5hbWUpOworICAgIGVtaXRIYXNQcml2
YXRlU2xvdyhieXRlY29kZS5tX2RzdCwgYnl0ZWNvZGUubV9iYXNlLCBieXRlY29kZS5tX3Byb3Bl
cnR5LCBBY2Nlc3NUeXBlOjpIYXNQcml2YXRlTmFtZSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29w
X2hhc19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CkBAIC04ODMsMTkgKzg4NiwxMiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVf
YnJhbmQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVgogICAgIGxpbmtB
bGxTbG93Q2FzZXMoaXRlcik7CiAKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0
aW9uLT5hczxPcEhhc1ByaXZhdGVCcmFuZD4oKTsKLSAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0
ZWNvZGUubV9kc3QsIEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVCcmFuZCk7Ci19Ci0KLXZvaWQgSklU
OjplbWl0VmFySW5qZWN0aW9uQ2hlY2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcykKLXsK
LSAgICBpZiAoIW5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAgICByZXR1cm47Ci0gICAg
YWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKG1fcHJvZmlsZWRDb2Rl
QmxvY2stPmdsb2JhbE9iamVjdCgpLT52YXJJbmplY3Rpb25XYXRjaHBvaW50KCktPmFkZHJlc3NP
ZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKKyAgICBlbWl0SGFzUHJp
dmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIGJ5dGVjb2RlLm1fYmFzZSwgYnl0ZWNvZGUubV9icmFu
ZCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRSZXNv
bHZlQ2xvc3VyZShWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUsIGJv
b2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRoKQogewotICAgIGVtaXRW
YXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyk7CisgICAgZW1pdFZhcklu
amVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCByZWdUMCk7CiAgICAgbW92ZShU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1QxKTsKICAgICBlbWl0TG9hZFBheWxv
YWQoc2NvcGUsIHJlZ1QwKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVwdGg7ICsr
aSkKQEAgLTkxOCw3ICs5MTQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKGNv
bnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgR2xvYmFs
UHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOiB7CiAgICAgICAgICAgICBKU1Njb3BlKiBj
b25zdGFudFNjb3BlID0gSlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVCbG9jayhyZXNvbHZl
VHlwZSwgbV9wcm9maWxlZENvZGVCbG9jayk7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChj
b25zdGFudFNjb3BlKTsKLSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOworICAgICAgICAgICAgZW1pdFZhckluamVj
dGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwgcmVnVDApOwog
ICAgICAgICAgICAgbG9hZDMyKCZtZXRhZGF0YS5tX2dsb2JhbExleGljYWxCaW5kaW5nRXBvY2gs
IHJlZ1QxKTsKICAgICAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCBBYnNv
bHV0ZUFkZHJlc3MobV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmFkZHJlc3NP
Zkdsb2JhbExleGljYWxCaW5kaW5nRXBvY2goKSksIHJlZ1QxKSk7CiAgICAgICAgICAgICBtb3Zl
KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVnVDEpOwpAQCAtOTMzLDcgKzkyOSw3
IEBAIHZvaWQgSklUOjplbWl0X29wX3Jlc29sdmVfc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhcklu
amVjdGlvbkNoZWNrczogewogICAgICAgICAgICAgSlNTY29wZSogY29uc3RhbnRTY29wZSA9IEpT
U2NvcGU6OmNvbnN0YW50U2NvcGVGb3JDb2RlQmxvY2socmVzb2x2ZVR5cGUsIG1fcHJvZmlsZWRD
b2RlQmxvY2spOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29uc3RhbnRTY29wZSk7Ci0g
ICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3Mo
cmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIG1vdmUo
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdUMSk7CiAgICAgICAgICAgICBtb3Zl
KFRydXN0ZWRJbW1QdHIoY29uc3RhbnRTY29wZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGVtaXRT
dG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CkBAIC0xMDczLDcgKzEwNjksNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgICAgICBjYXNlIEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAg
ICAgIGNhc2UgR2xvYmFsTGV4aWNhbFZhcjoKICAgICAgICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFy
V2l0aFZhckluamVjdGlvbkNoZWNrczoKLSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVj
ayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOworICAgICAgICAgICAgZW1p
dFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwg
cmVnVDApOwogICAgICAgICAgICAgaWYgKGluZGlyZWN0TG9hZEZvck9wZXJhbmQpCiAgICAgICAg
ICAgICAgICAgZW1pdEdldFZhckZyb21JbmRpcmVjdFBvaW50ZXIoYml0d2lzZV9jYXN0PEpTVmFs
dWUqKj4ob3BlcmFuZFNsb3QpLCByZWdUMSwgcmVnVDApOwogICAgICAgICAgICAgZWxzZQpAQCAt
MTA4Myw3ICsxMDc5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3Qg
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgQ2xvc3VyZVZhcldpdGhWYXJJbmpl
Y3Rpb25DaGVja3M6Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJ
bmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rp
b25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAg
ICAgICAgICAgIGVtaXRHZXRDbG9zdXJlVmFyKHNjb3BlLCAqb3BlcmFuZFNsb3QpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRHluYW1pYzoKQEAgLTExNzIsNyArMTE2OCw3IEBA
IHZvaWQgSklUOjplbWl0UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdChKU1ZhbHVlKiogYWRkcmVz
c09mT3BlcmFuZCwgVmlydHVhbFJlZ2lzCiB7CiAgICAgZW1pdExvYWQodmFsdWUsIHJlZ1QxLCBy
ZWdUMCk7CiAgICAgbG9hZFB0cihpbmRpcmVjdFdhdGNocG9pbnRTZXQsIHJlZ1QyKTsKLSAgICBl
bWl0Tm90aWZ5V3JpdGUocmVnVDIpOworICAgIGVtaXROb3RpZnlXcml0ZSgqaW5kaXJlY3RXYXRj
aHBvaW50U2V0KTsgLy8gRklYTUU6ID8/CiAgICAgbG9hZFB0cihhZGRyZXNzT2ZPcGVyYW5kLCBy
ZWdUMik7CiAgICAgc3RvcmUzMihyZWdUMSwgQWRkcmVzcyhyZWdUMiwgVGFnT2Zmc2V0KSk7CiAg
ICAgc3RvcmUzMihyZWdUMCwgQWRkcmVzcyhyZWdUMiwgUGF5bG9hZE9mZnNldCkpOwpAQCAtMTE5
Myw3ICsxMTg5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgYXV0byYgbWV0YWRhdGEgPSBieXRlY29k
ZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgc2Nv
cGUgPSBieXRlY29kZS5tX3Njb3BlOwogICAgIFZpcnR1YWxSZWdpc3RlciB2YWx1ZSA9IGJ5dGVj
b2RlLm1fdmFsdWU7Ci0gICAgR2V0UHV0SW5mbyBnZXRQdXRJbmZvID0gY29waWVkR2V0UHV0SW5m
byhieXRlY29kZSk7CisgICAgR2V0UHV0SW5mbyBnZXRQdXRJbmZvID0gYnl0ZWNvZGUubWV0YWRh
dGEobV9wcm9maWxlZENvZGVCbG9jaykubV9nZXRQdXRJbmZvOwogICAgIFJlc29sdmVUeXBlIHJl
c29sdmVUeXBlID0gZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpOwogICAgIFN0cnVjdHVyZSoqIHN0
cnVjdHVyZVNsb3QgPSBtZXRhZGF0YS5tX3N0cnVjdHVyZS5zbG90KCk7CiAgICAgdWludHB0cl90
KiBvcGVyYW5kU2xvdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Kj4oJm1ldGFkYXRhLm1f
b3BlcmFuZCk7CkBAIC0xMjIwLDggKzEyMTYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfdG9f
c2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgICAg
IEpTU2NvcGUqIGNvbnN0YW50U2NvcGUgPSBKU1Njb3BlOjpjb25zdGFudFNjb3BlRm9yQ29kZUJs
b2NrKHJlc29sdmVUeXBlLCBtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKGNvbnN0YW50U2NvcGUpOwogICAgICAgICAgICAgZW1pdFdyaXRlQmFycmllcihj
b25zdGFudFNjb3BlLCB2YWx1ZSwgU2hvdWxkRmlsdGVyVmFsdWUpOwotICAgICAgICAgICAgZW1p
dFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7
Ci0gICAgICAgICAgICBlbWl0VmFyUmVhZE9ubHlDaGVjayhyZXNvbHZlVHlwZSk7CisgICAgICAg
ICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2
ZVR5cGUpLCByZWdUMCk7CisgICAgICAgICAgICBlbWl0VmFyUmVhZE9ubHlDaGVjayhyZXNvbHZl
VHlwZSwgcmVnVDApOwogICAgICAgICAgICAgaWYgKCFpc0luaXRpYWxpemF0aW9uKGdldFB1dElu
Zm8uaW5pdGlhbGl6YXRpb25Nb2RlKCkpICYmIChyZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhpY2Fs
VmFyIHx8IHJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hl
Y2tzKSkgewogICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZG8gYSBURFogY2hlY2sgaGVy
ZSBiZWNhdXNlIHdlIGNhbid0IGFsd2F5cyBwcm92ZSB3ZSBuZWVkIHRvIGVtaXQgVERaIGNoZWNr
cyBzdGF0aWNhbGx5LgogICAgICAgICAgICAgICAgIGlmIChpbmRpcmVjdExvYWRGb3JPcGVyYW5k
KQpAQCAtMTI0MCw3ICsxMjM2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNv
bnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgQ2xvc3Vy
ZVZhcjoKICAgICAgICAgY2FzZSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAg
ICAgICAgICAgIGVtaXRXcml0ZUJhcnJpZXIoc2NvcGUsIHZhbHVlLCBTaG91bGRGaWx0ZXJWYWx1
ZSk7Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25D
aGVja3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhu
ZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAg
IGVtaXRQdXRDbG9zdXJlVmFyKHNjb3BlLCAqb3BlcmFuZFNsb3QsIHZhbHVlLCBtZXRhZGF0YS5t
X3dhdGNocG9pbnRTZXQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTW9kdWxl
VmFyOgpAQCAtMTMxMyw3ICsxMzA5LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF90b19z
Y29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3IKICAgICBs
aW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0
cnVjdGlvbi0+YXM8T3BQdXRUb1Njb3BlPigpOwotICAgIFJlc29sdmVUeXBlIHJlc29sdmVUeXBl
ID0gY29waWVkR2V0UHV0SW5mbyhieXRlY29kZSkucmVzb2x2ZVR5cGUoKTsKKyAgICBSZXNvbHZl
VHlwZSByZXNvbHZlVHlwZSA9IGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2sp
Lm1fZ2V0UHV0SW5mby5yZXNvbHZlVHlwZSgpOwogICAgIGlmIChyZXNvbHZlVHlwZSA9PSBNb2R1
bGVWYXIpIHsKICAgICAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF90aHJvd19zdHJpY3RfbW9kZV9yZWFkb25seV9wcm9w
ZXJ0eV93cml0ZV9lcnJvcik7CiAgICAgICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5k
ZXggYzM1ZTQ1NDQxMTA2Li5kYmM0NzAwM2NjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTI1MDQsNiArMjUwNCw5
IEBAIGlmIEpJVAogCiAgICAgZW5kCiBlbHNlCisgICAgbWFjcm8gbG9hZEJhc2VsaW5lSklUQ29u
c3RhbnRQb29sKCkKKyAgICBlbmQKKwogICAgIG1hY3JvIHNldHVwUmV0dXJuVG9CYXNlbGluZUFm
dGVyQ2hlY2twb2ludEV4aXRJZk5lZWRlZCgpCiAgICAgZW5kCiBlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
aW5kZXggZjNkOTdjYTRmN2NiLi4zNjYxNmE2OTViMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC00
OTksNiArNDk5LDkgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAgICAg
ICAgY0NhbGwyKF9sbGludF9sb29wX29zcikKICAgICAgICAgICAgIGJ0cHogcjAsIC5yZWNvdmVy
CiAgICAgICAgICAgICBtb3ZlIHIxLCBzcAorCisgICAgICAgICAgICBsb2FkQmFzZWxpbmVKSVRD
b25zdGFudFBvb2woKQorCiAgICAgICAgICAgICBqbXAgcjAKICAgICAgICAgLnJlY292ZXI6CiAg
ICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIFRhZ09mZnNldFtj
ZnJdLCBQQwotLSAKMi4zMS4xCgo=
</data>
<flag name="commit-queue"
          id="463601"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439855</attachid>
            <date>2021-10-01 07:05:01 -0700</date>
            <delta_ts>2021-10-01 07:23:32 -0700</delta_ts>
            <desc>v3</desc>
            <filename>0001-JSC-32bit-Fix-build-after-unlinked-baseline-JIT.patch</filename>
            <type>text/plain</type>
            <size>29748</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAzZjcyMWMyM2U2ZTBkMmQxMWU3OGM2MjUxYTA3YzQzMmFlMDM1ZTQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCAyNiBTZXAgMjAyMSAxMDo0NDoxMiArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklU
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODAzCgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgZW5vdWdoIHRvIG1ha2UgdGhpbmdzIGJ1aWxk
LCBidXQgcHJldHR5IG11Y2ggbm90aGluZyB3b3Jrcwp5ZXQuIFdpbGwgZml4IGluIGEgZm9sbG93
LXVwLCB0aGlzIHdheSB3ZSBhdCBsZWFzdCBnaXZlIHBlb3BsZSBhCmNoYW5jZSBhdCBub3QgaW50
cm9kdWNpbmcgbW9yZSBidWlsZCByZWdyZXNzaW9ucy4KCiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNoMzIpOgooSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaEFkZDMyKToKKiBieXRl
Y29kZS9DYWxsTGlua0luZm8uaDoKKEpTQzo6Q2FsbExpbmtJbmZvOjphZGRyZXNzT2ZNYXhBcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcyk6Ciogaml0L0pJVC5oOgoqIGppdC9KSVRDYWxsMzJfNjQu
Y3BwOgooSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgoqIGppdC9KSVRJbmxpbmVzLmg6CihKU0M6
OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CihKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUpOgooSlNDOjpKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1Np
dGVXaXRoQ2VsbCk6Ciogaml0L0pJVE9wY29kZXMuY3BwOgooSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgooSlNDOjpKSVQ6OmVtaXRWYXJJ
bmplY3Rpb25DaGVjayk6Ciogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgooSlNDOjpK
SVQ6OmVtaXRIYXNQcml2YXRlU2xvdyk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZh
dGVfbmFtZSk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfYnJhbmQpOgooSlND
OjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6CihKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Nj
b3BlKToKKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKEpTQzo6SklUOjplbWl0
UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdCk6CihKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfdG9fc2Nv
cGUpOgooSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6CihKU0M6OkpJVDo6ZW1p
dFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAg
ICAgICB8ICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICB8IDQyICsrKysrKysrKwogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggICAg
ICAgICAgIHwgMzUgKysrLS0tLS0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgg
ICAgICAgICAgICB8IDg5ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaCB8IDEwICsrLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaCAgICAgICAgICAgICAgIHwgMTIgKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwzMl82NC5jcHAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmggICAgICAgIHwgMzQgKysrKysrLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcCAgICAgIHwgIDMgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwICB8IDIwICsrLS0tCiAuLi4vaml0L0pJVFByb3BlcnR5QWNj
ZXNzMzJfNjQuY3BwICAgICAgICAgICAgfCAzOCArKysrLS0tLQogLi4uL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtICAgICAgICAgICAgIHwgIDMgKwogLi4uL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20gICAgICAgIHwgIDMgKwogMTMgZmlsZXMgY2hhbmdlZCwgMjMxIGlu
c2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA4ODAyZGMyYzdmNzguLjBhZWNhNGY1MjE1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtODM5LDYgKzgzOSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaml0L0Fzc2VtYmx5SGVscGVycy5oCiAgICAg
aml0L0Fzc2VtYmx5SGVscGVyc1Nwb29sZXJzLmgKICAgICBqaXQvQmFzZWxpbmVKSVRDb2RlLmgK
KyAgICBqaXQvQ2FsbEZyYW1lU2h1ZmZsZURhdGEuaAogICAgIGppdC9DQ2FsbEhlbHBlcnMuaAog
ICAgIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKICAgICBqaXQvRXhlY3V0YWJsZU1lbW9yeUhh
bmRsZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAyMTJjZmE5MTNmMzcuLmM5MjQ4YTlh
MDYwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjEtMTAt
MDEgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXVszMmJpdF0g
Rml4IGJ1aWxkIGFmdGVyIHVubGlua2VkIGJhc2VsaW5lIEpJVAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBlbm91Z2ggdG8gbWFrZSB0aGlu
Z3MgYnVpbGQsIGJ1dCBwcmV0dHkgbXVjaCBub3RoaW5nIHdvcmtzCisgICAgICAgIHlldC4gV2ls
bCBmaXggaW4gYSBmb2xsb3ctdXAsIHRoaXMgd2F5IHdlIGF0IGxlYXN0IGdpdmUgcGVvcGxlIGEK
KyAgICAgICAgY2hhbmNlIGF0IG5vdCBpbnRyb2R1Y2luZyBtb3JlIGJ1aWxkIHJlZ3Jlc3Npb25z
LgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAg
KEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNoMzIpOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5j
aEFkZDMyKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjphZGRyZXNzT2ZNYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6
CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRDYWxsMzJfNjQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgorICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayk6CisgICAgICAgICogaml0L0pJVFByb3Bl
cnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRIYXNQcml2YXRlU2xv
dyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfbmFtZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfYnJhbmQpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9yZXNvbHZlX3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9t
X3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVj
dCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfdG9fc2NvcGUpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtOgorCiAyMDIxLTA5LTMwICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBncmFkZSBHQ0MgcmVxdWlyZW1lbnQgdG8gOC4z
LjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKaW5kZXggZGY1MWU5NTJkZGNkLi4yZWY0ODYwMzFjMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CkBAIC0xNjEwLDcgKzE2MTAsMTQgQEAgcHVibGljOgogCiAgICAgSnVtcCBicmFuY2gzMihSZWxh
dGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCkK
ICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0LCByaWdodCk7CisgICAgICAgIGlm
IChsZWZ0ID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKKyAgICAgICAgICAgIG1vdmUobGVmdCwgZGF0
YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAoZGF0YVRlbXBSZWdp
c3RlciwgcmlnaHQpOworICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0ID09IEFSTVJlZ2lzdGVyczo6
c3ApIHsKKyAgICAgICAgICAgIG1vdmUocmlnaHQsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuY21wKGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChsZWZ0LCByaWdodCk7CiAgICAgICAg
IHJldHVybiBKdW1wKG1ha2VCcmFuY2goY29uZCkpOwogICAgIH0KIApAQCAtMTg0MCwyNyArMTg0
NywxMyBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBj
b25kLCBUcnVzdGVkSW1tMzIgaW1tLCBBYnNvbHV0ZUFkZHJlc3MgZGVzdCkKICAgICB7Ci0gICAg
ICAgIC8vIE1vdmUgdGhlIGhpZ2ggYml0cyBvZiB0aGUgYWRkcmVzcyBpbnRvIGFkZHJlc3NUZW1w
UmVnaXN0ZXIsCi0gICAgICAgIC8vIGFuZCBsb2FkIHRoZSB2YWx1ZSBpbnRvIGRhdGFUZW1wUmVn
aXN0ZXIuCi0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1Rl
bXBSZWdpc3Rlcik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmxkcihkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzVGVtcFJlZ2lzdGVyLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxNigwKSk7Ci0K
LSAgICAgICAgLy8gRG8gdGhlIGFkZC4KLSAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1t
ID0gQVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKLSAgICAg
ICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRfUyhk
YXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhcm1JbW0pOwotICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIC8vIElmIHRoZSBvcGVyYW5kIGRvZXMgbm90IGZpdCBpbnRvIGFuIGlt
bWVkaWF0ZSB0aGVuIGxvYWQgaXQgdGVtcG9yYXJpbHkKLSAgICAgICAgICAgIC8vIGludG8gYWRk
cmVzc1RlbXBSZWdpc3Rlcjsgc2luY2Ugd2UncmUgb3ZlcndyaXRpbmcgYWRkcmVzc1RlbXBSZWdp
c3RlcgotICAgICAgICAgICAgLy8gd2UnbGwgbmVlZCB0byByZWxvYWQgaXQgd2l0aCB0aGUgaGln
aCBiaXRzIG9mIHRoZSBhZGRyZXNzIGFmdGVyd2FyZHMuCi0gICAgICAgICAgICBtb3ZlKGltbSwg
YWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRfUyhkYXRh
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAg
ICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwgYWRkcmVzc1RlbXBSZWdp
c3Rlcik7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBTdG9yZSB0aGUgcmVzdWx0LgotICAgICAg
ICBtX2Fzc2VtYmxlci5zdHIoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3Rlciwg
QVJNVGh1bWJJbW1lZGlhdGU6Om1ha2VVSW50MTYoMCkpOworICAgICAgICBhZGQzMihpbW0sIGRl
c3QpOworICAgICAgICByZXR1cm4gSnVtcChtYWtlQnJhbmNoKGNvbmQpKTsKKyAgICB9CiAKKyAg
ICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBUcnVzdGVkSW1tMzIgaW1t
LCBBZGRyZXNzIGRlc3QpCisgICAgeworICAgICAgICBhZGQzMihpbW0sIGRlc3QpOwogICAgICAg
ICByZXR1cm4gSnVtcChtYWtlQnJhbmNoKGNvbmQpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IDNl
M2FlMmFmYWYwYy4uNTllNzJhZDU1MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTIzNTQsNiArMjM1NCw5NSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBKdW1wKCk7CiAgICAgfQogCisgICAgSnVtcCBicmFu
Y2hBZGQzMihSZXN1bHRDb25kaXRpb24gY29uZCwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBk
ZXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKChjb25kID09IE92ZXJmbG93KSB8fCAoY29uZCA9
PSBTaWduZWQpIHx8IChjb25kID09IFBvc2l0aXZlT3JaZXJvKSB8fCAoY29uZCA9PSBaZXJvKSB8
fCAoY29uZCA9PSBOb25aZXJvKSk7CisgICAgICAgIGlmIChjb25kID09IE92ZXJmbG93KSB7Cisg
ICAgICAgICAgICBpZiAobV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAg
ICAgICAgICAgICAgIGxvYWQgICAgZGVzdCwgZGF0YVRlbXAKKyAgICAgICAgICAgICAgICAgIG1v
dmUgICAgaW1tLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgICB4b3IgICAgIGNtcFRlbXAsIGRh
dGFUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgICBhZGR1ICAgIGRhdGFUZW1wLCBkYXRh
VGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgICAgc3RvcmUgICBkYXRhVGVtcCwgZGVzdAor
ICAgICAgICAgICAgICAgICAgYmx0eiAgICBjbXBUZW1wLCBOb19vdmVyZmxvdyAgICAjIGRpZmYg
c2lnbiBiaXQgLT4gbm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgIHhvciAgICAgY21wVGVt
cCwgZGF0YVRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICAgIGJnZXogICAgY21wVGVtcCwg
Tm9fb3ZlcmZsb3cgICAgIyBzYW1lIHNpZ24gYmlnIC0+IG5vIG92ZXJmbG93CisgICAgICAgICAg
ICAgICAgICBub3AKKyAgICAgICAgICAgICAgICAgIGIgICAgICAgT3ZlcmZsb3cKKyAgICAgICAg
ICAgICAgICAgIG5vcAorICAgICAgICAgICAgICAgICAgYiAgICAgICBOb19vdmVyZmxvdworICAg
ICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAgICAgICAg
ICAgIG5vcAorICAgICAgICAgICAgICAgICAgTm9fb3ZlcmZsb3c6CisgICAgICAgICAgICAgICAg
Ki8KKyAgICAgICAgICAgICAgICBsb2FkMzIoZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAg
ICAgICAgICAgICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIueG9ySW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGlt
bVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShkYXRhVGVt
cFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAg
ICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdpc3RlciwgZGVzdCk7CisgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYmx0eihjbXBUZW1wUmVnaXN0ZXIsIDkpOworICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnhvckluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1U
ZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooY21wVGVtcFJl
Z2lzdGVyLCA3KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubHcoZGF0YVRlbXBSZWdp
c3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKGltbS5t
X3ZhbHVlID49IDAgJiYgaW1tLm1fdmFsdWUgIDw9IDMyNzY3KSB7CisgICAgICAgICAgICAgICAg
ICAgIG1vdmUoZGF0YVRlbXBSZWdpc3RlciwgY21wVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdp
c3RlciwgaW1tLm1fdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ibHR6
KGNtcFRlbXBSZWdpc3RlciwgOSk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3
KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5vZmZzZXQpOworICAgICAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5iZ2V6KGRhdGFUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KGltbS5tX3ZhbHVlID49IC0zMjc2OCAmJiBpbW0ubV92YWx1ZSA8IDApIHsKKyAgICAgICAgICAg
ICAgICAgICAgbW92ZShkYXRhVGVtcFJlZ2lzdGVyLCBjbXBUZW1wUmVnaXN0ZXIpOworICAgICAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVt
cFJlZ2lzdGVyLCBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmJnZXooY21wVGVtcFJlZ2lzdGVyLCA5KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9mZnNldCk7CisgICAgICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVtcFJlZ2lzdGVyLCA3KTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CisgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7CisgICAg
ICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnhvckluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRh
VGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5hZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBS
ZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVtcFJl
Z2lzdGVyLCAxMCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1w
UmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5vZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci54b3JJbnNuKGNtcFRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1t
VGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmdleihjbXBU
ZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4ganVt
cCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAg
IG1vdmUoaW1tLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgbG9hZDMyKGRlc3QsIGRh
dGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgYWRkMzIoaW1tVGVtcFJlZ2lzdGVyLCBkYXRh
VGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlMzIoZGF0YVRlbXBSZWdpc3RlciwgZGVz
dCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVt
cFJlZ2lzdGVyLCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgICAgIGFkZDMyKGlt
bSwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVt
cFJlZ2lzdGVyLCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoY29uZCA9PSBTaWduZWQpIHsKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIGRlc3QgaXMgbmVn
YXRpdmUuCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbHQoY21wVGVtcFJlZ2lzdGVyLCBkYXRh
VGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAgICAgIHJldHVybiBi
cmFuY2hOb3RFcXVhbChjbXBUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAg
ICAgICB9CisgICAgICAgIGlmIChjb25kID09IFBvc2l0aXZlT3JaZXJvKSB7CisgICAgICAgICAg
ICAvLyBDaGVjayBpZiBkZXN0IGlzIG5vdCBuZWdhdGl2ZS4KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsdChjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6
Onplcm8pOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaEVxdWFsKGNtcFRlbXBSZWdpc3Rlciwg
TUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gWmVy
bykKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hFcXVhbChkYXRhVGVtcFJlZ2lzdGVyLCBNSVBT
UmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAgaWYgKGNvbmQgPT0gTm9uWmVybykKKyAgICAgICAg
ICAgIHJldHVybiBicmFuY2hOb3RFcXVhbChkYXRhVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJz
Ojp6ZXJvKTsKKyAgICAgICAgQVNTRVJUKDApOworICAgICAgICByZXR1cm4gSnVtcCgpOworICAg
IH0KKwogICAgIEp1bXAgYnJhbmNoTXVsMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVy
SUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAg
ICBBU1NFUlQoKGNvbmQgPT0gT3ZlcmZsb3cpIHx8IChjb25kID09IFNpZ25lZCkgfHwgKGNvbmQg
PT0gWmVybykgfHwgKGNvbmQgPT0gTm9uWmVybykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCmluZGV4IDRiODEyMGUyNjU4Ni4uZDU2ODdjMTIwOGQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbEZyYW1lU2h1
ZmZsZURhdGEuaCIKICNpbmNsdWRlICJDYWxsTW9kZS5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlv
bi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKQEAgLTQxLDcgKzQyLDcg
QEAgY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgRnVuY3Rpb25Db2RlQmxvY2s7CiBjbGFzcyBK
U0Z1bmN0aW9uOwogZW51bSBPcGNvZGVJRCA6IHVuc2lnbmVkOwotc3RydWN0IENhbGxGcmFtZVNo
dWZmbGVEYXRhOworCiAKIHN0cnVjdCBVbmxpbmtlZENhbGxMaW5rSW5mbzsKIApAQCAtMzE0LDYg
KzMxNSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ2FsbExp
bmtJbmZvLCBtX21heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKTsKICAgICB9CiAKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90KiBhZGRyZXNzT2ZNYXhBcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcygpCisgICAgeworICAgICAgICByZXR1cm4gJm1fbWF4QXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXM7CisgICAgfQorI2VuZGlmCisKICAgICB1aW50MzJfdCBtYXhBcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcygpCiAgICAgewogICAgICAgICByZXR1cm4gbV9tYXhBcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDVlZDNiODRk
ZTE3Ny4uOWViNzY0YzkwNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTM0NSwxMiAr
MzQ1LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0
IHRoZSB2YWx1ZSB0byBwcm9maWxlIGlzIGluIHJlZ1QwIGFuZCB0aGF0IHJlZ1QzIGlzIGF2YWls
YWJsZSBmb3IKICAgICAgICAgLy8gc2NyYXRjaC4KLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGNvbnN0IEJ5dGVjb2RlJiwgR1BSUmVnKTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQnl0
ZWNvZGU+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShjb25zdCBCeXRlY29kZSYsIEpTVmFs
dWVSZWdzKTsKLSNlbHNlCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgdm9pZCBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmlsZSYsIEpTVmFsdWVSZWdzKTsKLSAgICAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShN
ZXRhZGF0YSYsIEpTVmFsdWVSZWdzKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRh
dGE+CisgICAgICAgIHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE1ldGFk
YXRhOjptX3Byb2ZpbGUpLCBWYWx1ZVByb2ZpbGU+Ojp2YWx1ZSwgdm9pZD4KKyAgICAgICAgZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzKTsKICNlbmRpZgogCiAg
ICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUoLi4uKTsK
QEAgLTM2Myw2ICszNjQsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBCeXRlY29kZT4KICAgICAgICAgdm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0
aENlbGwoY29uc3QgQnl0ZWNvZGUmLCBwdHJkaWZmX3QsIFJlZ2lzdGVySUQgY2VsbEdQUiwgUmVn
aXN0ZXJJRCBzY3JhdGNoR1BSKTsKIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHZv
aWQgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKFJlZ2lzdGVySUQsIEFycmF5UHJvZmls
ZSogLCBSZWdpc3RlcklEKTsKKyAgICAgICAgdm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0
aENlbGwoUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCAsIFJlZ2lzdGVySUQpOworI2VuZGlmCisKICAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiAgICAgICAgIEVDTUFNb2RlIGVjbWFNb2RlKE9w
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IDFj
ZDc0ZjQ2OTQ4OS4uMWUwNWUyMDVhODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDYWxsMzJfNjQuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENh
bGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1bnNpZ25lZCBjYWxsTGlua0luZm9J
bmQKIAogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAgICAgaWYgKG9wY29kZUlE
ID09IG9wX3RhaWxfY2FsbCB8fCBvcGNvZGVJRCA9PSBvcF90YWlsX2NhbGxfdmFyYXJncyB8fCBv
cGNvZGVJRCA9PSBvcF90YWlsX2NhbGxfZm9yd2FyZF9hcmd1bWVudHMpIHsKLSAgICAgICAgYXV0
byBzbG93UGF0aHMgPSBpbmZvLT5lbWl0VGFpbENhbGxGYXN0UGF0aCgqdGhpcywgcmVnVDAsIHJl
Z1QyLCBDYWxsTGlua0luZm86OlVzZURhdGFJQzo6WWVzLCBbJl0geworICAgICAgICBhdXRvIHNs
b3dQYXRocyA9IGluZm8tPmVtaXRUYWlsQ2FsbERhdGFJQ0Zhc3RQYXRoKCp0aGlzLCByZWdUMCwg
cmVnVDIsIFsmXSB7CiAgICAgICAgICAgICBlbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7CiAgICAg
ICAgICAgICBwcmVwYXJlRm9yVGFpbENhbGxTbG93KHJlZ1QyKTsKICAgICAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IDFmM2NhMzE4M2E4My4uODVjNmE4
NDhiZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtMzM0LDYg
KzMzNCwxMiBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQ
cm9maWxlJiB2YWx1ZVByb2ZpbGUsIEpTVmFsdWVSZWdzCiAgICAgc3RvcmUzMih2YWx1ZS5wYXls
b2FkR1BSKCksICZkZXNjcmlwdG9yLT5hc0JpdHMucGF5bG9hZCk7CiAgICAgc3RvcmUzMih2YWx1
ZS50YWdHUFIoKSwgJmRlc2NyaXB0b3ItPmFzQml0cy50YWcpOwogfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBNZXRhZGF0YT4KK3N0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE1l
dGFkYXRhOjptX3Byb2ZpbGUpLCBWYWx1ZVByb2ZpbGU+Ojp2YWx1ZSwgdm9pZD4gSklUOjplbWl0
VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiBtZXRhZGF0YSwgSlNWYWx1ZVJlZ3MgdmFsdWUp
Cit7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSh2YWx1ZVByb2ZpbGVGb3IobWV0YWRhdGEs
IG1fYnl0ZWNvZGVJbmRleC5jaGVja3BvaW50KCkpLCB2YWx1ZSk7Cit9CiAjZW5kaWYKIAogdGVt
cGxhdGU8dHlwZW5hbWUgT3A+CkBAIC0zNDIsMjEgKzM0OCwyNiBAQCBpbmxpbmUgc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoT3A6Ok1ldGFkYXRhOjptX3Byb2ZpbGUpLCBW
YWx1ZVBybwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShi
eXRlY29kZSwgcmVnVDApOwogI2Vsc2UKLSAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVj
b2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7Cisg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJl
Z1QwKSk7CiAjZW5kaWYKIH0KIAogaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdT
aXRlSWZQcm9maWxlZE9wY29kZSguLi4pIHsgfQogCi0jaWYgVVNFKEpTVkFMVUU2NCkKIHRlbXBs
YXRlPHR5cGVuYW1lIEJ5dGVjb2RlPgogaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxp
bmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgSlNWYWx1ZVJlZ3MgdmFsdWUpCiB7CiAg
ICAgaWYgKCFzaG91bGRFbWl0UHJvZmlsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgcHRyZGlmZl90IG9mZnNldCA9IG1fdW5saW5rZWRDb2RlQmxvY2st
Pm1ldGFkYXRhKCkub2Zmc2V0SW5NZXRhZGF0YVRhYmxlKGJ5dGVjb2RlKSArIHZhbHVlUHJvZmls
ZU9mZnNldEZvcjxCeXRlY29kZT4obV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSkgKyBWYWx1
ZVByb2ZpbGU6Om9mZnNldE9mRmlyc3RCdWNrZXQoKTsKICAgICBzdG9yZTY0KHZhbHVlLmdwcigp
LCBBZGRyZXNzKHNfbWV0YWRhdGFHUFIsIG9mZnNldCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShieXRlY29kZSk7CisgICAgLy8gRklYTUUuCisj
ZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+CkBAIC0zNjQsNyArMzc1LDYg
QEAgaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2Rl
JiBieXRlY29kZSwgR1BSUmVnIHJlc3VsdFIKIHsKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLCBKU1ZhbHVlUmVncyhyZXN1bHRSZWcpKTsKIH0KLSNlbmRpZgogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQnl0ZWNvZGU+CiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGlu
Z1NpdGVXaXRoQ2VsbChjb25zdCBCeXRlY29kZSYgYnl0ZWNvZGUsIHB0cmRpZmZfdCBvZmZzZXRP
ZkFycmF5UHJvZmlsZSwgUmVnaXN0ZXJJRCBjZWxsR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIp
CkBAIC0zODEsNiArMzkxLDI0IEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmlsaW5n
U2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgUmVnaXN0CiAgICAgZW1pdEFy
cmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGJ5dGVjb2RlLCBCeXRlY29kZTo6TWV0YWRhdGE6Om9m
ZnNldE9mQXJyYXlQcm9maWxlKCkgKyBBcnJheVByb2ZpbGU6Om9mZnNldE9mTGFzdFNlZW5TdHJ1
Y3R1cmVJRCgpLCBjZWxsR1BSLCBzY3JhdGNoR1BSKTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdp
c3RlcklEIGNlbGxHUFIsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBSZWdpc3RlcklEIHNj
cmF0Y2hHUFIpCit7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBs
b2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJ
RE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgIHN0b3JlMzIoc2NyYXRjaEdQUiwgYXJy
YXlQcm9maWxlLT5hZGRyZXNzT2ZMYXN0U2VlblN0cnVjdHVyZUlEKCkpOworICAgIH0KK30KKwor
aW5saW5lIHZvaWQgSklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoUmVnaXN0ZXJJ
RCBjZWxsR1BSLCBSZWdpc3RlcklEIGFycmF5UHJvZmlsZUdQUiwgUmVnaXN0ZXJJRCBzY3JhdGNo
R1BSKQoreworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgbG9hZDMy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICBzdG9yZTMyKHNjcmF0Y2hHUFIsIEFkZHJlc3Mo
YXJyYXlQcm9maWxlR1BSLCBBcnJheVByb2ZpbGU6Om9mZnNldE9mTGFzdFNlZW5TdHJ1Y3R1cmVJ
RCgpKSk7CisgICAgfQorfQorI2VuZGlmCisKIEFMV0FZU19JTkxJTkUgaW50MzJfdCBKSVQ6Omdl
dE9wZXJhbmRDb25zdGFudEludChWaXJ0dWFsUmVnaXN0ZXIgc3JjKQogewogICAgIHJldHVybiBn
ZXRDb25zdGFudE9wZXJhbmQoc3JjKS5hc0ludDMyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAppbmRleCBmYzNhYmQ2ZmQ4YjEuLjhjY2JiYmZlOWI2NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xNDY2LDEwICsxNDY2LDEx
IEBAIHZvaWQgSklUOjplbWl0X29wX2xvb3BfaGludChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1
Y3Rpb24pCiAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgbG9hZEdsb2JhbE9iamVjdChy
ZXN1bHRSZWdzLmdwcigpKTsKICNlbHNlCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3Mo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAg
ICAgIGxvYWRHbG9iYWxPYmplY3QocmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOyAvLyBGSVhNRTog
bmVlZCB0byBtb3ZlIHRoZSB3aG9sZSB0aGluZy4KICNlbmRpZgotICAgICAgICBsb2FkR2xvYmFs
T2JqZWN0KHJlc3VsdFJlZ3MuZ3ByKCkpOwogICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCgpOwogICAgICAgICBlbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7CiAgICAgICAgIGVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwCmluZGV4IDlhMmE3Y2FhYzliMy4uYzE4NjM2OTk2MGIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMTgy
MSwxNiArMTgyMSw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfcHJpdmF0ZV9icmFuZChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWCiAgICAgZW1pdEhhc1ByaXZh
dGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBieXRlY29kZS5tX2Jhc2UsIGJ5dGVjb2RlLm1fYnJhbmQs
IEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVCcmFuZCk7CiB9CiAKLXZvaWQgSklUOjplbWl0VmFySW5q
ZWN0aW9uQ2hlY2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgR1BSUmVnIHNjcmF0Y2hH
UFIpCi17Ci0gICAgaWYgKCFuZWVkc1ZhckluamVjdGlvbkNoZWNrcykKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbG9hZEdsb2JhbE9iamVjdChzY3JhdGNoR1BSKTsKLSAgICBsb2FkUHRyKEFkZHJl
c3Moc2NyYXRjaEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZhckluamVj
dGlvbldhdGNocG9pbnQpKSwgc2NyYXRjaEdQUik7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChF
cXVhbCwgQWRkcmVzcyhzY3JhdGNoR1BSLCBXYXRjaHBvaW50U2V0OjpvZmZzZXRPZlN0YXRlKCkp
LCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRSZXNv
bHZlQ2xvc3VyZShWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUsIGJv
b2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRoKQogewogICAgIGVtaXRW
YXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgcmVnVDApOwpAQCAtMzE5
MSw2ICszMTgxLDE2IEBAIHZvaWQgSklUOjplbWl0V3JpdGVCYXJyaWVyKEdQUlJlZyBvd25lcikK
ICAgICBvd25lcklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsodGhpcyk7CiB9CiAKK3ZvaWQgSklU
OjplbWl0VmFySW5qZWN0aW9uQ2hlY2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgR1BS
UmVnIHNjcmF0Y2hHUFIpCit7CisgICAgaWYgKCFuZWVkc1ZhckluamVjdGlvbkNoZWNrcykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbG9hZEdsb2JhbE9iamVjdChzY3JhdGNoR1BSKTsKKyAgICBs
b2FkUHRyKEFkZHJlc3Moc2NyYXRjaEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0
LCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQpKSwgc2NyYXRjaEdQUik7CisgICAgYWRkU2xvd0Nh
c2UoYnJhbmNoOChFcXVhbCwgQWRkcmVzcyhzY3JhdGNoR1BSLCBXYXRjaHBvaW50U2V0OjpvZmZz
ZXRPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNWY4NjJh
NTdmZTAwLi4yNzIxNzA1MzU5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtODQ2LDkgKzg0NiwxMiBAQCB2b2lk
IEpJVDo6ZW1pdEhhc1ByaXZhdGUoVmlydHVhbFJlZ2lzdGVyIGRzdCwgVmlydHVhbFJlZ2lzdGVy
IGJhc2UsIFZpcnR1YWxSZWdpcwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CiB9
CiAKLXZvaWQgSklUOjplbWl0SGFzUHJpdmF0ZVNsb3coVmlydHVhbFJlZ2lzdGVyIGRzdCwgQWNj
ZXNzVHlwZSB0eXBlKQordm9pZCBKSVQ6OmVtaXRIYXNQcml2YXRlU2xvdyhWaXJ0dWFsUmVnaXN0
ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgYmFzZSwgVmlydHVhbFJlZ2lzdGVyIHByb3BlcnR5LCBB
Y2Nlc3NUeXBlIHR5cGUpCiB7CisgICAgLy8gRklYTUU6IDY0LWJpdCBzZWVtcyB0byBhbHNvIGln
bm9yZSBiYXNlL3Byb3BlcnR5LgogICAgIEFTU0VSVCh0eXBlID09IEFjY2Vzc1R5cGU6Okhhc1By
aXZhdGVOYW1lIHx8IHR5cGUgPT0gQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5kKTsKKyAgICBV
TlVTRURfUEFSQU0oYmFzZSk7CisgICAgVU5VU0VEX1BBUkFNKHByb3BlcnR5KTsKIAogICAgIEpJ
VEluQnlWYWxHZW5lcmF0b3ImIGdlbiA9IG1faW5CeVZhbHNbbV9pbkJ5VmFsSW5kZXgrK107CiAg
ICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CkBAIC04NjksNyArODcyLDcgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX2hhc19wcml2YXRlX25hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmUKICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAgICAg
YXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlTmFtZT4o
KTsKLSAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIEFjY2Vzc1R5cGU6Okhh
c1ByaXZhdGVOYW1lKTsKKyAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIGJ5
dGVjb2RlLm1fYmFzZSwgYnl0ZWNvZGUubV9wcm9wZXJ0eSwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0
ZU5hbWUpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfcHJpdmF0ZV9icmFuZChjb25zdCBJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtODgzLDE5ICs4ODYsMTIgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX2hhc19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24sIFYKICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAgICAg
YXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlQnJhbmQ+
KCk7Ci0gICAgZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBBY2Nlc3NUeXBlOjpI
YXNQcml2YXRlQnJhbmQpOwotfQotCi12b2lkIEpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNrKGJv
b2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MpCi17Ci0gICAgaWYgKCFuZWVkc1ZhckluamVjdGlv
bkNoZWNrcykKLSAgICAgICAgcmV0dXJuOwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoRXF1YWws
IEFic29sdXRlQWRkcmVzcyhtX3Byb2ZpbGVkQ29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+dmFy
SW5qZWN0aW9uV2F0Y2hwb2ludCgpLT5hZGRyZXNzT2ZTdGF0ZSgpKSwgVHJ1c3RlZEltbTMyKElz
SW52YWxpZGF0ZWQpKSk7CisgICAgZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBi
eXRlY29kZS5tX2Jhc2UsIGJ5dGVjb2RlLm1fYnJhbmQsIEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVC
cmFuZCk7CiB9CiAKIHZvaWQgSklUOjplbWl0UmVzb2x2ZUNsb3N1cmUoVmlydHVhbFJlZ2lzdGVy
IGRzdCwgVmlydHVhbFJlZ2lzdGVyIHNjb3BlLCBib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tz
LCB1bnNpZ25lZCBkZXB0aCkKIHsKLSAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJ
bmplY3Rpb25DaGVja3MpOworICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVj
dGlvbkNoZWNrcywgcmVnVDApOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKHNjb3BlLCByZWdUMCk7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlcHRoOyArK2kpCkBAIC05MTgsNyArOTE0LDcgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgICAgICBjYXNlIEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNo
ZWNrczogewogICAgICAgICAgICAgSlNTY29wZSogY29uc3RhbnRTY29wZSA9IEpTU2NvcGU6OmNv
bnN0YW50U2NvcGVGb3JDb2RlQmxvY2socmVzb2x2ZVR5cGUsIG1fcHJvZmlsZWRDb2RlQmxvY2sp
OwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29uc3RhbnRTY29wZSk7Ci0gICAgICAgICAg
ICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5
cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlv
bkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGxvYWQzMigmbWV0YWRh
dGEubV9nbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoLCByZWdUMSk7CiAgICAgICAgICAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKG1fcHJvZmlsZWRDb2Rl
QmxvY2stPmdsb2JhbE9iamVjdCgpLT5hZGRyZXNzT2ZHbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2No
KCkpLCByZWdUMSkpOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIHJlZ1QxKTsKQEAgLTkzMyw3ICs5MjksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNv
bHZlX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAg
IGNhc2UgR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6IHsKICAgICAgICAg
ICAgIEpTU2NvcGUqIGNvbnN0YW50U2NvcGUgPSBKU1Njb3BlOjpjb25zdGFudFNjb3BlRm9yQ29k
ZUJsb2NrKHJlc29sdmVUeXBlLCBtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGNvbnN0YW50U2NvcGUpOwotICAgICAgICAgICAgZW1pdFZhckluamVjdGlv
bkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7CisgICAgICAgICAg
ICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5
cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgcmVnVDEpOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGNvbnN0YW50U2Nv
cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwpA
QCAtMTA3Myw3ICsxMDY5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgY2FzZSBHbG9iYWxW
YXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgogICAgICAgICBjYXNlIEdsb2JhbExleGljYWxWYXI6
CiAgICAgICAgIGNhc2UgR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6Ci0g
ICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3Mo
cmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGlmIChp
bmRpcmVjdExvYWRGb3JPcGVyYW5kKQogICAgICAgICAgICAgICAgIGVtaXRHZXRWYXJGcm9tSW5k
aXJlY3RQb2ludGVyKGJpdHdpc2VfY2FzdDxKU1ZhbHVlKio+KG9wZXJhbmRTbG90KSwgcmVnVDEs
IHJlZ1QwKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTEwODMsNyArMTA3OSw3IEBAIHZvaWQgSklU
OjplbWl0X29wX2dldF9mcm9tX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDbG9zdXJlVmFyOgogICAg
ICAgICBjYXNlIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgotICAgICAgICAgICAg
ZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBl
KSk7CisgICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25D
aGVja3MocmVzb2x2ZVR5cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBlbWl0R2V0Q2xvc3VyZVZh
cihzY29wZSwgKm9wZXJhbmRTbG90KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IER5bmFtaWM6CkBAIC0xMTcyLDcgKzExNjgsNyBAQCB2b2lkIEpJVDo6ZW1pdFB1dEdsb2JhbFZh
cmlhYmxlSW5kaXJlY3QoSlNWYWx1ZSoqIGFkZHJlc3NPZk9wZXJhbmQsIFZpcnR1YWxSZWdpcwog
ewogICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOwogICAgIGxvYWRQdHIoaW5kaXJl
Y3RXYXRjaHBvaW50U2V0LCByZWdUMik7Ci0gICAgZW1pdE5vdGlmeVdyaXRlKHJlZ1QyKTsKKyAg
ICBlbWl0Tm90aWZ5V3JpdGUoKmluZGlyZWN0V2F0Y2hwb2ludFNldCk7IC8vIEZJWE1FOiA/Pwog
ICAgIGxvYWRQdHIoYWRkcmVzc09mT3BlcmFuZCwgcmVnVDIpOwogICAgIHN0b3JlMzIocmVnVDEs
IEFkZHJlc3MocmVnVDIsIFRhZ09mZnNldCkpOwogICAgIHN0b3JlMzIocmVnVDAsIEFkZHJlc3Mo
cmVnVDIsIFBheWxvYWRPZmZzZXQpKTsKQEAgLTExOTMsNyArMTE4OSw3IEBAIHZvaWQgSklUOjpl
bWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVC
bG9jayk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIHNjb3BlID0gYnl0ZWNvZGUubV9zY29wZTsKICAg
ICBWaXJ0dWFsUmVnaXN0ZXIgdmFsdWUgPSBieXRlY29kZS5tX3ZhbHVlOwotICAgIEdldFB1dElu
Zm8gZ2V0UHV0SW5mbyA9IGNvcGllZEdldFB1dEluZm8oYnl0ZWNvZGUpOworICAgIEdldFB1dElu
Zm8gZ2V0UHV0SW5mbyA9IGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLm1f
Z2V0UHV0SW5mbzsKICAgICBSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSA9IGdldFB1dEluZm8ucmVz
b2x2ZVR5cGUoKTsKICAgICBTdHJ1Y3R1cmUqKiBzdHJ1Y3R1cmVTbG90ID0gbWV0YWRhdGEubV9z
dHJ1Y3R1cmUuc2xvdCgpOwogICAgIHVpbnRwdHJfdCogb3BlcmFuZFNsb3QgPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdCo+KCZtZXRhZGF0YS5tX29wZXJhbmQpOwpAQCAtMTIyMCw4ICsxMjE2
LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgICAgICBKU1Njb3BlKiBjb25zdGFudFNjb3BlID0g
SlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVCbG9jayhyZXNvbHZlVHlwZSwgbV9wcm9maWxl
ZENvZGVCbG9jayk7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjb25zdGFudFNjb3BlKTsK
ICAgICAgICAgICAgIGVtaXRXcml0ZUJhcnJpZXIoY29uc3RhbnRTY29wZSwgdmFsdWUsIFNob3Vs
ZEZpbHRlclZhbHVlKTsKLSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOwotICAgICAgICAgICAgZW1pdFZhclJlYWRP
bmx5Q2hlY2socmVzb2x2ZVR5cGUpOworICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNr
KG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwgcmVnVDApOworICAgICAgICAg
ICAgZW1pdFZhclJlYWRPbmx5Q2hlY2socmVzb2x2ZVR5cGUsIHJlZ1QwKTsKICAgICAgICAgICAg
IGlmICghaXNJbml0aWFsaXphdGlvbihnZXRQdXRJbmZvLmluaXRpYWxpemF0aW9uTW9kZSgpKSAm
JiAocmVzb2x2ZVR5cGUgPT0gR2xvYmFsTGV4aWNhbFZhciB8fCByZXNvbHZlVHlwZSA9PSBHbG9i
YWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpIHsKICAgICAgICAgICAgICAgICAv
LyBXZSBuZWVkIHRvIGRvIGEgVERaIGNoZWNrIGhlcmUgYmVjYXVzZSB3ZSBjYW4ndCBhbHdheXMg
cHJvdmUgd2UgbmVlZCB0byBlbWl0IFREWiBjaGVja3Mgc3RhdGljYWxseS4KICAgICAgICAgICAg
ICAgICBpZiAoaW5kaXJlY3RMb2FkRm9yT3BlcmFuZCkKQEAgLTEyNDAsNyArMTIzNiw3IEBAIHZv
aWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgICAgICBjYXNlIENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgQ2xvc3Vy
ZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAgICAgICAgICBlbWl0V3JpdGVCYXJyaWVy
KHNjb3BlLCB2YWx1ZSwgU2hvdWxkRmlsdGVyVmFsdWUpOwotICAgICAgICAgICAgZW1pdFZhcklu
amVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7CisgICAg
ICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVz
b2x2ZVR5cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBlbWl0UHV0Q2xvc3VyZVZhcihzY29wZSwg
Km9wZXJhbmRTbG90LCB2YWx1ZSwgbWV0YWRhdGEubV93YXRjaHBvaW50U2V0KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1vZHVsZVZhcjoKQEAgLTEzMTMsNyArMTMwOSw3IEBA
IHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfdG9fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yCiAgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKIAog
ICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wUHV0VG9TY29wZT4o
KTsKLSAgICBSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSA9IGNvcGllZEdldFB1dEluZm8oYnl0ZWNv
ZGUpLnJlc29sdmVUeXBlKCk7CisgICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUgPSBieXRlY29k
ZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2dldFB1dEluZm8ucmVzb2x2ZVR5cGUo
KTsKICAgICBpZiAocmVzb2x2ZVR5cGUgPT0gTW9kdWxlVmFyKSB7CiAgICAgICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
dGhyb3dfc3RyaWN0X21vZGVfcmVhZG9ubHlfcHJvcGVydHlfd3JpdGVfZXJyb3IpOwogICAgICAg
ICBzbG93UGF0aENhbGwuY2FsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IGMzNWU0NTQ0MTEwNi4uZGJjNDcwMDNj
Y2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtCkBAIC0yNTA0LDYgKzI1MDQsOSBAQCBpZiBKSVQKIAogICAgIGVuZAogZWxz
ZQorICAgIG1hY3JvIGxvYWRCYXNlbGluZUpJVENvbnN0YW50UG9vbCgpCisgICAgZW5kCisKICAg
ICBtYWNybyBzZXR1cFJldHVyblRvQmFzZWxpbmVBZnRlckNoZWNrcG9pbnRFeGl0SWZOZWVkZWQo
KQogICAgIGVuZAogZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGYzZDk3Y2E0ZjdjYi4uMzY2MTZh
Njk1YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNDk5LDYgKzQ5OSw5IEBAIG1hY3JvIGNoZWNr
U3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3Ip
CiAgICAgICAgICAgICBidHB6IHIwLCAucmVjb3ZlcgogICAgICAgICAgICAgbW92ZSByMSwgc3AK
KworICAgICAgICAgICAgbG9hZEJhc2VsaW5lSklUQ29uc3RhbnRQb29sKCkKKwogICAgICAgICAg
ICAgam1wIHIwCiAgICAgICAgIC5yZWNvdmVyOgogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKLS0gCjIuMzEuMQoK
</data>
<flag name="commit-queue"
          id="463604"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439857</attachid>
            <date>2021-10-01 07:23:32 -0700</date>
            <delta_ts>2021-10-01 10:49:59 -0700</delta_ts>
            <desc>v4</desc>
            <filename>0001-JSC-32bit-Fix-build-after-unlinked-baseline-JIT.patch</filename>
            <type>text/plain</type>
            <size>29978</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAwMmUwNjFjOWRlZDIyOWM0Y2M2NDdjN2Q2NGQzYmJhZTBkNzZmMTAzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCAyNiBTZXAgMjAyMSAxMDo0NDoxMiArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklU
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODAzCgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KClRoaXMgaXMgZW5vdWdoIHRvIG1ha2UgdGhpbmdzIGJ1aWxk
LCBidXQgcHJldHR5IG11Y2ggbm90aGluZyB3b3Jrcwp5ZXQuIFdpbGwgZml4IGluIGEgZm9sbG93
LXVwLCB0aGlzIHdheSB3ZSBhdCBsZWFzdCBnaXZlIHBlb3BsZSBhCmNoYW5jZSBhdCBub3QgaW50
cm9kdWNpbmcgbW9yZSBidWlsZCByZWdyZXNzaW9ucy4KCiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNoMzIpOgooSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CiogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaEFkZDMyKToKKiBieXRl
Y29kZS9DYWxsTGlua0luZm8uaDoKKEpTQzo6Q2FsbExpbmtJbmZvOjphZGRyZXNzT2ZNYXhBcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcyk6Ciogaml0L0pJVC5oOgoqIGppdC9KSVRDYWxsMzJfNjQu
Y3BwOgooSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgoqIGppdC9KSVRJbmxpbmVzLmg6CihKU0M6
OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CihKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmls
aW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUpOgooSlNDOjpKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1Np
dGVXaXRoQ2VsbCk6Ciogaml0L0pJVE9wY29kZXMuY3BwOgooSlNDOjpKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KToKKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgooSlNDOjpKSVQ6OmVtaXRWYXJJ
bmplY3Rpb25DaGVjayk6Ciogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgooSlNDOjpK
SVQ6OmVtaXRIYXNQcml2YXRlU2xvdyk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZh
dGVfbmFtZSk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfYnJhbmQpOgooSlND
OjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6CihKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Nj
b3BlKToKKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKEpTQzo6SklUOjplbWl0
UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdCk6CihKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfdG9fc2Nv
cGUpOgooSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6CihKU0M6OkpJVDo6ZW1p
dFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtOgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAg
ICAgICB8ICAyICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICB8IDQyICsrKysrKysrKwogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggICAg
ICAgICAgIHwgMzUgKysrLS0tLS0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgg
ICAgICAgICAgICB8IDg5ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaCB8IDEwICsrLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaCAgICAgICAgICAgICAgIHwgMTIgKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwzMl82NC5jcHAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmggICAgICAgIHwgMzQgKysrKysrLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcCAgICAgIHwgIDMgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwICB8IDIwICsrLS0tCiAuLi4vaml0L0pJVFByb3BlcnR5QWNj
ZXNzMzJfNjQuY3BwICAgICAgICAgICAgfCAzOCArKysrLS0tLQogLi4uL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtICAgICAgICAgICAgIHwgIDMgKwogLi4uL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20gICAgICAgIHwgIDMgKwogMTMgZmlsZXMgY2hhbmdlZCwgMjMyIGlu
c2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA4ODAyZGMyYzdmNzguLmY0YWM2OGM5MjY4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtODM5LDYgKzgzOSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaml0L0Fzc2VtYmx5SGVscGVycy5oCiAgICAg
aml0L0Fzc2VtYmx5SGVscGVyc1Nwb29sZXJzLmgKICAgICBqaXQvQmFzZWxpbmVKSVRDb2RlLmgK
KyAgICBqaXQvQ2FsbEZyYW1lU2h1ZmZsZURhdGEuaAogICAgIGppdC9DQ2FsbEhlbHBlcnMuaAog
ICAgIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKICAgICBqaXQvRXhlY3V0YWJsZU1lbW9yeUhh
bmRsZS5oCkBAIC04NTksNiArODYwLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBqaXQvUmVnLmgKICAgICBqaXQvUmVnaXN0ZXJBdE9mZnNldC5o
CiAgICAgaml0L1JlZ2lzdGVyQXRPZmZzZXRMaXN0LmgKKyAgICBqaXQvUmVnaXN0ZXJNYXAuaAog
ICAgIGppdC9SZWdpc3RlclNldC5oCiAgICAgaml0L1NuaXBwZXQuaAogICAgIGppdC9TbmlwcGV0
UGFyYW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDIxMmNmYTkxM2YzNy4uYzkyNDhh
OWEwNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAyMS0x
MC0wMSAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0
XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklUCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4MDMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGVub3VnaCB0byBtYWtlIHRo
aW5ncyBidWlsZCwgYnV0IHByZXR0eSBtdWNoIG5vdGhpbmcgd29ya3MKKyAgICAgICAgeWV0LiBX
aWxsIGZpeCBpbiBhIGZvbGxvdy11cCwgdGhpcyB3YXkgd2UgYXQgbGVhc3QgZ2l2ZSBwZW9wbGUg
YQorICAgICAgICBjaGFuY2UgYXQgbm90IGludHJvZHVjaW5nIG1vcmUgYnVpbGQgcmVncmVzc2lv
bnMuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2gzMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNdjc6OmJyYW5jaEFkZDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6YnJh
bmNoQWRkMzIpOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5oOgorICAgICAgICAo
SlNDOjpDYWxsTGlua0luZm86OmFkZHJlc3NPZk1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
KToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVENhbGwzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgICogaml0L0pJVElu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKToKKyAg
ICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9s
b29wX2hpbnQpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNrKToKKyAgICAgICAgKiBqaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEhhc1ByaXZhdGVT
bG93KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9oYXNfcHJpdmF0ZV9uYW1lKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9oYXNfcHJpdmF0ZV9icmFuZCk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFJlc29sdmVDbG9zdXJlKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3Jlc29sdmVfc2NvcGUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2Zy
b21fc2NvcGUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRQdXRHbG9iYWxWYXJpYWJsZUluZGly
ZWN0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF90b19zY29wZSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0X3RvX3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0VmFySW5qZWN0aW9uQ2hlY2spOiBEZWxldGVkLgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisKIDIwMjEtMDktMzAgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGdyYWRlIEdDQyByZXF1aXJlbWVudCB0byA4
LjMuMApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaAppbmRleCBkZjUxZTk1MmRkY2QuLjJlZjQ4NjAzMWMwNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmgKQEAgLTE2MTAsNyArMTYxMCwxNCBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaDMyKFJl
bGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0
KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAg
aWYgKGxlZnQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgbW92ZShsZWZ0LCBk
YXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChkYXRhVGVtcFJl
Z2lzdGVyLCByaWdodCk7CisgICAgICAgIH0gZWxzZSBpZiAocmlnaHQgPT0gQVJNUmVnaXN0ZXJz
OjpzcCkgeworICAgICAgICAgICAgbW92ZShyaWdodCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wKGxlZnQsIHJpZ2h0KTsKICAgICAg
ICAgcmV0dXJuIEp1bXAobWFrZUJyYW5jaChjb25kKSk7CiAgICAgfQogCkBAIC0xODQwLDI3ICsx
ODQ3LDEzIEBAIHB1YmxpYzoKIAogICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9u
IGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFic29sdXRlQWRkcmVzcyBkZXN0KQogICAgIHsKLSAg
ICAgICAgLy8gTW92ZSB0aGUgaGlnaCBiaXRzIG9mIHRoZSBhZGRyZXNzIGludG8gYWRkcmVzc1Rl
bXBSZWdpc3RlciwKLSAgICAgICAgLy8gYW5kIGxvYWQgdGhlIHZhbHVlIGludG8gZGF0YVRlbXBS
ZWdpc3Rlci4KLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNz
VGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubGRyKGRhdGFUZW1wUmVnaXN0ZXIs
IGFkZHJlc3NUZW1wUmVnaXN0ZXIsIEFSTVRodW1iSW1tZWRpYXRlOjptYWtlVUludDE2KDApKTsK
LQotICAgICAgICAvLyBEbyB0aGUgYWRkLgotICAgICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1J
bW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVuY29kZWRJbW0oaW1tLm1fdmFsdWUpOwotICAg
ICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZF9T
KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFybUltbSk7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgLy8gSWYgdGhlIG9wZXJhbmQgZG9lcyBub3QgZml0IGludG8gYW4g
aW1tZWRpYXRlIHRoZW4gbG9hZCBpdCB0ZW1wb3JhcmlseQotICAgICAgICAgICAgLy8gaW50byBh
ZGRyZXNzVGVtcFJlZ2lzdGVyOyBzaW5jZSB3ZSdyZSBvdmVyd3JpdGluZyBhZGRyZXNzVGVtcFJl
Z2lzdGVyCi0gICAgICAgICAgICAvLyB3ZSdsbCBuZWVkIHRvIHJlbG9hZCBpdCB3aXRoIHRoZSBo
aWdoIGJpdHMgb2YgdGhlIGFkZHJlc3MgYWZ0ZXJ3YXJkcy4KLSAgICAgICAgICAgIG1vdmUoaW1t
LCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGRh
dGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwot
ICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJl
Z2lzdGVyKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN0b3JlIHRoZSByZXN1bHQuCi0gICAg
ICAgIG1fYXNzZW1ibGVyLnN0cihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVy
LCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQxNigwKSk7CisgICAgICAgIGFkZDMyKGltbSwg
ZGVzdCk7CisgICAgICAgIHJldHVybiBKdW1wKG1ha2VCcmFuY2goY29uZCkpOworICAgIH0KIAor
ICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFRydXN0ZWRJbW0zMiBp
bW0sIEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAgICAgIGFkZDMyKGltbSwgZGVzdCk7CiAgICAg
ICAgIHJldHVybiBKdW1wKG1ha2VCcmFuY2goY29uZCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXgg
M2UzYWUyYWZhZjBjLi41OWU3MmFkNTUwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtMjM1NCw2ICsyMzU0LDk1
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEp1bXAoKTsKICAgICB9CiAKKyAgICBKdW1wIGJy
YW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNz
IGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQoKGNvbmQgPT0gT3ZlcmZsb3cpIHx8IChjb25k
ID09IFNpZ25lZCkgfHwgKGNvbmQgPT0gUG9zaXRpdmVPclplcm8pIHx8IChjb25kID09IFplcm8p
IHx8IChjb25kID09IE5vblplcm8pKTsKKyAgICAgICAgaWYgKGNvbmQgPT0gT3ZlcmZsb3cpIHsK
KyAgICAgICAgICAgIGlmIChtX2ZpeGVkV2lkdGgpIHsKKyAgICAgICAgICAgICAgICAvKgorICAg
ICAgICAgICAgICAgICAgbG9hZCAgICBkZXN0LCBkYXRhVGVtcAorICAgICAgICAgICAgICAgICAg
bW92ZSAgICBpbW0sIGltbVRlbXAKKyAgICAgICAgICAgICAgICAgIHhvciAgICAgY21wVGVtcCwg
ZGF0YVRlbXAsIGltbVRlbXAKKyAgICAgICAgICAgICAgICAgIGFkZHUgICAgZGF0YVRlbXAsIGRh
dGFUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAgICAgICBzdG9yZSAgIGRhdGFUZW1wLCBkZXN0
CisgICAgICAgICAgICAgICAgICBibHR6ICAgIGNtcFRlbXAsIE5vX292ZXJmbG93ICAgICMgZGlm
ZiBzaWduIGJpdCAtPiBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgeG9yICAgICBjbXBU
ZW1wLCBkYXRhVGVtcCwgaW1tVGVtcAorICAgICAgICAgICAgICAgICAgYmdleiAgICBjbXBUZW1w
LCBOb19vdmVyZmxvdyAgICAjIHNhbWUgc2lnbiBiaWcgLT4gbm8gb3ZlcmZsb3cKKyAgICAgICAg
ICAgICAgICAgIG5vcAorICAgICAgICAgICAgICAgICAgYiAgICAgICBPdmVyZmxvdworICAgICAg
ICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBiICAgICAgIE5vX292ZXJmbG93Cisg
ICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAgICAgICAgICAgIG5vcAorICAgICAgICAgICAg
ICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBOb19vdmVyZmxvdzoKKyAgICAgICAgICAgICAg
ICAqLworICAgICAgICAgICAgICAgIGxvYWQzMihkZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci54b3JJbnNuKGNtcFRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlciwg
aW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGR1KGRhdGFU
ZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAg
ICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5ibHR6KGNtcFRlbXBSZWdpc3RlciwgOSk7CisgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIueG9ySW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGlt
bVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmdleihjbXBUZW1w
UmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJl
Z2lzdGVyLCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoaW1t
Lm1fdmFsdWUgPj0gMCAmJiBpbW0ubV92YWx1ZSAgPD0gMzI3NjcpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbW92ZShkYXRhVGVtcFJlZ2lzdGVyLCBjbXBUZW1wUmVnaXN0ZXIpOworICAgICAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShkYXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJl
Z2lzdGVyLCBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJs
dHooY21wVGVtcFJlZ2lzdGVyLCA5KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
c3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9mZnNldCk7CisgICAgICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooZGF0YVRlbXBSZWdpc3RlciwgNyk7CisgICAgICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGltbS5tX3ZhbHVlIDwgMCkgeworICAgICAgICAg
ICAgICAgICAgICBtb3ZlKGRhdGFUZW1wUmVnaXN0ZXIsIGNtcFRlbXBSZWdpc3Rlcik7CisgICAg
ICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFU
ZW1wUmVnaXN0ZXIsIGltbS5tX3ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYmdleihjbXBUZW1wUmVnaXN0ZXIsIDkpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5zdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmx0eihjbXBUZW1wUmVnaXN0ZXIsIDcpOworICAg
ICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ub3AoKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIueG9ySW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRh
dGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmFkZHUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmx0eihjbXBUZW1w
UmVnaXN0ZXIsIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRl
bXBSZWdpc3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9mZnNldCk7CisgICAgICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnhvckluc24oY21wVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBp
bW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5iZ2V6KGNt
cFRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBq
dW1wKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fZml4ZWRXaWR0aCkgeworICAgICAgICAg
ICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBsb2FkMzIoZGVzdCwg
ZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBhZGQzMihpbW1UZW1wUmVnaXN0ZXIsIGRh
dGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBk
ZXN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFU
ZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5vZmZzZXQpOworICAgICAgICAgICAgYWRkMzIo
aW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFU
ZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5vZmZzZXQpOworICAgICAgICB9CisgICAgICAg
IGlmIChjb25kID09IFNpZ25lZCkgeworICAgICAgICAgICAgLy8gQ2hlY2sgaWYgZGVzdCBpcyBu
ZWdhdGl2ZS4KKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNsdChjbXBUZW1wUmVnaXN0ZXIsIGRh
dGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICAgICAgcmV0dXJu
IGJyYW5jaE5vdEVxdWFsKGNtcFRlbXBSZWdpc3RlciwgTUlQU1JlZ2lzdGVyczo6emVybyk7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gUG9zaXRpdmVPclplcm8pIHsKKyAgICAgICAg
ICAgIC8vIENoZWNrIGlmIGRlc3QgaXMgbm90IG5lZ2F0aXZlLgorICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc2x0KGNtcFRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgTUlQU1JlZ2lzdGVy
czo6emVybyk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoRXF1YWwoY21wVGVtcFJlZ2lzdGVy
LCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29uZCA9PSBa
ZXJvKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaEVxdWFsKGRhdGFUZW1wUmVnaXN0ZXIsIE1J
UFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICBpZiAoY29uZCA9PSBOb25aZXJvKQorICAgICAg
ICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFsKGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3Rl
cnM6Onplcm8pOworICAgICAgICBBU1NFUlQoMCk7CisgICAgICAgIHJldHVybiBKdW1wKCk7Cisg
ICAgfQorCiAgICAgSnVtcCBicmFuY2hNdWwzMihSZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0
ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVCgoY29uZCA9PSBPdmVyZmxvdykgfHwgKGNvbmQgPT0gU2lnbmVkKSB8fCAoY29u
ZCA9PSBaZXJvKSB8fCAoY29uZCA9PSBOb25aZXJvKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggNGI4MTIwZTI2NTg2Li5kNTY4N2MxMjA4
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0lu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgK
QEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYWxsRnJhbWVT
aHVmZmxlRGF0YS5oIgogI2luY2x1ZGUgIkNhbGxNb2RlLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0
aW9uLmgiCiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgpAQCAtNDEsNyArNDIs
NyBAQCBjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBGdW5jdGlvbkNvZGVCbG9jazsKIGNsYXNz
IEpTRnVuY3Rpb247CiBlbnVtIE9wY29kZUlEIDogdW5zaWduZWQ7Ci1zdHJ1Y3QgQ2FsbEZyYW1l
U2h1ZmZsZURhdGE7CisKIAogc3RydWN0IFVubGlua2VkQ2FsbExpbmtJbmZvOwogCkBAIC0zMTQs
NiArMzE1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDYWxs
TGlua0luZm8sIG1fbWF4QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpOwogICAgIH0KIAorI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCisgICAgdWludDMyX3QqIGFkZHJlc3NPZk1heEFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAmbV9tYXhBcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpczsKKyAgICB9CisjZW5kaWYKKwogICAgIHVpbnQzMl90IG1heEFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzKCkKICAgICB7CiAgICAgICAgIHJldHVybiBtX21heEFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggNWVkM2I4
NGRlMTc3Li45ZWI3NjRjOTA0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMzQ1LDEy
ICszNDUsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgLy8gVGhpcyBhc3N1bWVzIHRo
YXQgdGhlIHZhbHVlIHRvIHByb2ZpbGUgaXMgaW4gcmVnVDAgYW5kIHRoYXQgcmVnVDMgaXMgYXZh
aWxhYmxlIGZvcgogICAgICAgICAvLyBzY3JhdGNoLgotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2RlPiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1Np
dGUoY29uc3QgQnl0ZWNvZGUmLCBHUFJSZWcpOwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBC
eXRlY29kZT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiwgSlNW
YWx1ZVJlZ3MpOwotI2Vsc2UKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICB2b2lkIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiwgSlNWYWx1ZVJlZ3MpOwotICAgICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KE1ldGFkYXRhJiwgSlNWYWx1ZVJlZ3MpOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRh
ZGF0YT4KKyAgICAgICAgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0
YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvZmlsZT46OnZhbHVlLCB2b2lkPgorICAgICAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwgSlNWYWx1ZVJlZ3MpOwogI2VuZGlmCiAK
ICAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSguLi4p
OwpAQCAtMzYzLDYgKzM2NCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIEJ5dGVjb2RlPgogICAgICAgICB2b2lkIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVX
aXRoQ2VsbChjb25zdCBCeXRlY29kZSYsIHB0cmRpZmZfdCwgUmVnaXN0ZXJJRCBjZWxsR1BSLCBS
ZWdpc3RlcklEIHNjcmF0Y2hHUFIpOwogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAg
dm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoUmVnaXN0ZXJJRCwgQXJyYXlQcm9m
aWxlKiAsIFJlZ2lzdGVySUQpOworICAgICAgICB2b2lkIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVX
aXRoQ2VsbChSZWdpc3RlcklELCBSZWdpc3RlcklEICwgUmVnaXN0ZXJJRCk7CisjZW5kaWYKKwog
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KICAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUo
T3ApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82
NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKaW5kZXgg
MWNkNzRmNDY5NDg5Li4xZTA1ZTIwNWE4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVENhbGwzMl82NC5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9w
Q2FsbChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVkIGNhbGxMaW5rSW5m
b0luZAogCiAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKICAgICBpZiAob3Bjb2Rl
SUQgPT0gb3BfdGFpbF9jYWxsIHx8IG9wY29kZUlEID09IG9wX3RhaWxfY2FsbF92YXJhcmdzIHx8
IG9wY29kZUlEID09IG9wX3RhaWxfY2FsbF9mb3J3YXJkX2FyZ3VtZW50cykgewotICAgICAgICBh
dXRvIHNsb3dQYXRocyA9IGluZm8tPmVtaXRUYWlsQ2FsbEZhc3RQYXRoKCp0aGlzLCByZWdUMCwg
cmVnVDIsIENhbGxMaW5rSW5mbzo6VXNlRGF0YUlDOjpZZXMsIFsmXSB7CisgICAgICAgIGF1dG8g
c2xvd1BhdGhzID0gaW5mby0+ZW1pdFRhaWxDYWxsRGF0YUlDRmFzdFBhdGgoKnRoaXMsIHJlZ1Qw
LCByZWdUMiwgWyZdIHsKICAgICAgICAgICAgIGVtaXRSZXN0b3JlQ2FsbGVlU2F2ZXMoKTsKICAg
ICAgICAgICAgIHByZXBhcmVGb3JUYWlsQ2FsbFNsb3cocmVnVDIpOwogICAgICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggMWYzY2EzMTgzYTgzLi44NWM2
YTg0OGJmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC0zMzQs
NiArMzM0LDEyIEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1
ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSwgSlNWYWx1ZVJlZ3MKICAgICBzdG9yZTMyKHZhbHVlLnBh
eWxvYWRHUFIoKSwgJmRlc2NyaXB0b3ItPmFzQml0cy5wYXlsb2FkKTsKICAgICBzdG9yZTMyKHZh
bHVlLnRhZ0dQUigpLCAmZGVzY3JpcHRvci0+YXNCaXRzLnRhZyk7CiB9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIE1ldGFkYXRhPgorc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUo
TWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvZmlsZT46OnZhbHVlLCB2b2lkPiBKSVQ6OmVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRhdGEmIG1ldGFkYXRhLCBKU1ZhbHVlUmVncyB2YWx1
ZSkKK3sKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKHZhbHVlUHJvZmlsZUZvcihtZXRhZGF0
YSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9pbnQoKSksIHZhbHVlKTsKK30KICNlbmRpZgogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KQEAgLTM0MiwyMSArMzQ4LDI2IEBAIGlubGluZSBzdGQ6OmVu
YWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxkZWNsdHlwZShPcDo6TWV0YWRhdGE6Om1fcHJvZmlsZSks
IFZhbHVlUHJvCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLCByZWdUMCk7CiAjZWxzZQotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0
ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsK
KyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCBKU1ZhbHVlUmVncyhyZWdUMSwg
cmVnVDApKTsKICNlbmRpZgogfQogCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGlu
Z1NpdGVJZlByb2ZpbGVkT3Bjb2RlKC4uLikgeyB9CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQogdGVt
cGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+CiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2RlLCBKU1ZhbHVlUmVncyB2YWx1ZSkKIHsK
ICAgICBpZiAoIXNob3VsZEVtaXRQcm9maWxpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
VVNFKEpTVkFMVUU2NCkKICAgICBwdHJkaWZmX3Qgb2Zmc2V0ID0gbV91bmxpbmtlZENvZGVCbG9j
ay0+bWV0YWRhdGEoKS5vZmZzZXRJbk1ldGFkYXRhVGFibGUoYnl0ZWNvZGUpICsgdmFsdWVQcm9m
aWxlT2Zmc2V0Rm9yPEJ5dGVjb2RlPihtX2J5dGVjb2RlSW5kZXguY2hlY2twb2ludCgpKSArIFZh
bHVlUHJvZmlsZTo6b2Zmc2V0T2ZGaXJzdEJ1Y2tldCgpOwogICAgIHN0b3JlNjQodmFsdWUuZ3By
KCksIEFkZHJlc3Moc19tZXRhZGF0YUdQUiwgb2Zmc2V0KSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlKTsKKyAgICAvLyBGSVhNRS4K
KyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZT4KQEAgLTM2NCw3ICszNzUs
NiBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNv
ZGUmIGJ5dGVjb2RlLCBHUFJSZWcgcmVzdWx0UgogewogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1Np
dGUoYnl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJlc3VsdFJlZykpOwogfQotI2VuZGlmCiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBCeXRlY29kZT4KIGlubGluZSB2b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmls
aW5nU2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgcHRyZGlmZl90IG9mZnNl
dE9mQXJyYXlQcm9maWxlLCBSZWdpc3RlcklEIGNlbGxHUFIsIFJlZ2lzdGVySUQgc2NyYXRjaEdQ
UikKQEAgLTM4MSw2ICszOTEsMjQgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0QXJyYXlQcm9maWxp
bmdTaXRlV2l0aENlbGwoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2RlLCBSZWdpc3QKICAgICBlbWl0
QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoYnl0ZWNvZGUsIEJ5dGVjb2RlOjpNZXRhZGF0YTo6
b2Zmc2V0T2ZBcnJheVByb2ZpbGUoKSArIEFycmF5UHJvZmlsZTo6b2Zmc2V0T2ZMYXN0U2VlblN0
cnVjdHVyZUlEKCksIGNlbGxHUFIsIHNjcmF0Y2hHUFIpOwogfQogCisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKK2lubGluZSB2b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKFJl
Z2lzdGVySUQgY2VsbEdQUiwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUsIFJlZ2lzdGVySUQg
c2NyYXRjaEdQUikKK3sKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAg
IGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnN0cnVjdHVy
ZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgc3RvcmUzMihzY3JhdGNoR1BSLCBh
cnJheVByb2ZpbGUtPmFkZHJlc3NPZkxhc3RTZWVuU3RydWN0dXJlSUQoKSk7CisgICAgfQorfQor
CitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3Rl
cklEIGNlbGxHUFIsIFJlZ2lzdGVySUQgYXJyYXlQcm9maWxlR1BSLCBSZWdpc3RlcklEIHNjcmF0
Y2hHUFIpCit7CisgICAgaWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBsb2Fk
MzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9m
ZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgIHN0b3JlMzIoc2NyYXRjaEdQUiwgQWRkcmVz
cyhhcnJheVByb2ZpbGVHUFIsIEFycmF5UHJvZmlsZTo6b2Zmc2V0T2ZMYXN0U2VlblN0cnVjdHVy
ZUlEKCkpKTsKKyAgICB9Cit9CisjZW5kaWYKKwogQUxXQVlTX0lOTElORSBpbnQzMl90IEpJVDo6
Z2V0T3BlcmFuZENvbnN0YW50SW50KFZpcnR1YWxSZWdpc3RlciBzcmMpCiB7CiAgICAgcmV0dXJu
IGdldENvbnN0YW50T3BlcmFuZChzcmMpLmFzSW50MzIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGZjM2FiZDZmZDhiMS4uOGNjYmJiZmU5YjY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTE0NjYsMTAgKzE0NjYs
MTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0
cnVjdGlvbikKIAogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworICAgICAgICBsb2FkR2xvYmFsT2JqZWN0
KHJlc3VsdFJlZ3MuZ3ByKCkpOwogI2Vsc2UKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVn
cyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAg
ICAgICAgbG9hZEdsb2JhbE9iamVjdChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7IC8vIEZJWE1F
OiBuZWVkIHRvIG1vdmUgdGhlIHdob2xlIHRoaW5nLgogI2VuZGlmCi0gICAgICAgIGxvYWRHbG9i
YWxPYmplY3QocmVzdWx0UmVncy5ncHIoKSk7CiAgICAgICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KCk7CiAgICAgICAgIGVtaXRSZXN0b3JlQ2FsbGVlU2F2ZXMoKTsKICAgICAgICAgZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggOWEyYTdjYWFjOWIzLi5jMTg2MzY5OTYwYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0x
ODIxLDE2ICsxODIxLDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19wcml2YXRlX2JyYW5k
KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFYKICAgICBlbWl0SGFzUHJp
dmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIGJ5dGVjb2RlLm1fYmFzZSwgYnl0ZWNvZGUubV9icmFu
ZCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5kKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRWYXJJ
bmplY3Rpb25DaGVjayhib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCBHUFJSZWcgc2NyYXRj
aEdQUikKLXsKLSAgICBpZiAoIW5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBsb2FkR2xvYmFsT2JqZWN0KHNjcmF0Y2hHUFIpOwotICAgIGxvYWRQdHIoQWRk
cmVzcyhzY3JhdGNoR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fdmFySW5q
ZWN0aW9uV2F0Y2hwb2ludCkpLCBzY3JhdGNoR1BSKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2g4
KEVxdWFsLCBBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhdGNocG9pbnRTZXQ6Om9mZnNldE9mU3RhdGUo
KSksIFRydXN0ZWRJbW0zMihJc0ludmFsaWRhdGVkKSkpOwotfQotCiB2b2lkIEpJVDo6ZW1pdFJl
c29sdmVDbG9zdXJlKFZpcnR1YWxSZWdpc3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBzY29wZSwg
Ym9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgdW5zaWduZWQgZGVwdGgpCiB7CiAgICAgZW1p
dFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCByZWdUMCk7CkBAIC0z
MTkxLDYgKzMxODEsMTYgQEAgdm9pZCBKSVQ6OmVtaXRXcml0ZUJhcnJpZXIoR1BSUmVnIG93bmVy
KQogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVkZW4ubGluayh0aGlzKTsKIH0KIAordm9pZCBK
SVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCBH
UFJSZWcgc2NyYXRjaEdQUikKK3sKKyAgICBpZiAoIW5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQor
ICAgICAgICByZXR1cm47CisKKyAgICBsb2FkR2xvYmFsT2JqZWN0KHNjcmF0Y2hHUFIpOworICAg
IGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoR1BSLCBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmpl
Y3QsIG1fdmFySW5qZWN0aW9uV2F0Y2hwb2ludCkpLCBzY3JhdGNoR1BSKTsKKyAgICBhZGRTbG93
Q2FzZShicmFuY2g4KEVxdWFsLCBBZGRyZXNzKHNjcmF0Y2hHUFIsIFdhdGNocG9pbnRTZXQ6Om9m
ZnNldE9mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0ludmFsaWRhdGVkKSkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCA1Zjg2
MmE1N2ZlMDAuLjI3MjE3MDUzNTllYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC04NDYsOSArODQ2LDEyIEBAIHZv
aWQgSklUOjplbWl0SGFzUHJpdmF0ZShWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0
ZXIgYmFzZSwgVmlydHVhbFJlZ2lzCiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsK
IH0KIAotdm9pZCBKSVQ6OmVtaXRIYXNQcml2YXRlU2xvdyhWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBB
Y2Nlc3NUeXBlIHR5cGUpCit2b2lkIEpJVDo6ZW1pdEhhc1ByaXZhdGVTbG93KFZpcnR1YWxSZWdp
c3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBiYXNlLCBWaXJ0dWFsUmVnaXN0ZXIgcHJvcGVydHks
IEFjY2Vzc1R5cGUgdHlwZSkKIHsKKyAgICAvLyBGSVhNRTogNjQtYml0IHNlZW1zIHRvIGFsc28g
aWdub3JlIGJhc2UvcHJvcGVydHkuCiAgICAgQVNTRVJUKHR5cGUgPT0gQWNjZXNzVHlwZTo6SGFz
UHJpdmF0ZU5hbWUgfHwgdHlwZSA9PSBBY2Nlc3NUeXBlOjpIYXNQcml2YXRlQnJhbmQpOworICAg
IFVOVVNFRF9QQVJBTShiYXNlKTsKKyAgICBVTlVTRURfUEFSQU0ocHJvcGVydHkpOwogCiAgICAg
SklUSW5CeVZhbEdlbmVyYXRvciYgZ2VuID0gbV9pbkJ5VmFsc1ttX2luQnlWYWxJbmRleCsrXTsK
ICAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKQEAgLTg2OSw3ICs4NzIsNyBAQCB2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfbmFtZShjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZQogICAgIGxpbmtBbGxTbG93Q2FzZXMoaXRlcik7CiAKICAg
ICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEhhc1ByaXZhdGVOYW1l
PigpOwotICAgIGVtaXRIYXNQcml2YXRlU2xvdyhieXRlY29kZS5tX2RzdCwgQWNjZXNzVHlwZTo6
SGFzUHJpdmF0ZU5hbWUpOworICAgIGVtaXRIYXNQcml2YXRlU2xvdyhieXRlY29kZS5tX2RzdCwg
Ynl0ZWNvZGUubV9iYXNlLCBieXRlY29kZS5tX3Byb3BlcnR5LCBBY2Nlc3NUeXBlOjpIYXNQcml2
YXRlTmFtZSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2hhc19wcml2YXRlX2JyYW5kKGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC04ODMsMTkgKzg4NiwxMiBAQCB2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfYnJhbmQoY29uc3QgSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgVgogICAgIGxpbmtBbGxTbG93Q2FzZXMoaXRlcik7CiAKICAg
ICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEhhc1ByaXZhdGVCcmFu
ZD4oKTsKLSAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIEFjY2Vzc1R5cGU6
Okhhc1ByaXZhdGVCcmFuZCk7Ci19Ci0KLXZvaWQgSklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2so
Ym9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcykKLXsKLSAgICBpZiAoIW5lZWRzVmFySW5qZWN0
aW9uQ2hlY2tzKQotICAgICAgICByZXR1cm47Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChFcXVh
bCwgQWJzb2x1dGVBZGRyZXNzKG1fcHJvZmlsZWRDb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT52
YXJJbmplY3Rpb25XYXRjaHBvaW50KCktPmFkZHJlc3NPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIo
SXNJbnZhbGlkYXRlZCkpKTsKKyAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3Qs
IGJ5dGVjb2RlLm1fYmFzZSwgYnl0ZWNvZGUubV9icmFuZCwgQWNjZXNzVHlwZTo6SGFzUHJpdmF0
ZUJyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZShWaXJ0dWFsUmVnaXN0
ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUsIGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVj
a3MsIHVuc2lnbmVkIGRlcHRoKQogewotICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zh
ckluamVjdGlvbkNoZWNrcyk7CisgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5q
ZWN0aW9uQ2hlY2tzLCByZWdUMCk7CiAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIHJlZ1QxKTsKICAgICBlbWl0TG9hZFBheWxvYWQoc2NvcGUsIHJlZ1QwKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVwdGg7ICsraSkKQEAgLTkxOCw3ICs5MTQsNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzOiB7CiAgICAgICAgICAgICBKU1Njb3BlKiBjb25zdGFudFNjb3BlID0gSlNTY29wZTo6
Y29uc3RhbnRTY29wZUZvckNvZGVCbG9jayhyZXNvbHZlVHlwZSwgbV9wcm9maWxlZENvZGVCbG9j
ayk7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjb25zdGFudFNjb3BlKTsKLSAgICAgICAg
ICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZl
VHlwZSkpOworICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0
aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwgcmVnVDApOwogICAgICAgICAgICAgbG9hZDMyKCZtZXRh
ZGF0YS5tX2dsb2JhbExleGljYWxCaW5kaW5nRXBvY2gsIHJlZ1QxKTsKICAgICAgICAgICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCBBYnNvbHV0ZUFkZHJlc3MobV9wcm9maWxlZENv
ZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmFkZHJlc3NPZkdsb2JhbExleGljYWxCaW5kaW5nRXBv
Y2goKSksIHJlZ1QxKSk7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgcmVnVDEpOwpAQCAtOTMzLDcgKzkyOSw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Jl
c29sdmVfc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAg
ICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczogewogICAgICAg
ICAgICAgSlNTY29wZSogY29uc3RhbnRTY29wZSA9IEpTU2NvcGU6OmNvbnN0YW50U2NvcGVGb3JD
b2RlQmxvY2socmVzb2x2ZVR5cGUsIG1fcHJvZmlsZWRDb2RlQmxvY2spOwogICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoY29uc3RhbnRTY29wZSk7Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0
aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAg
ICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZl
VHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCByZWdUMSk7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoY29uc3RhbnRT
Y29wZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7
CkBAIC0xMDczLDcgKzEwNjksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBjYXNlIEdsb2Jh
bFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAgICAgIGNhc2UgR2xvYmFsTGV4aWNhbFZh
cjoKICAgICAgICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoK
LSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNr
cyhyZXNvbHZlVHlwZSkpOworICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRz
VmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwgcmVnVDApOwogICAgICAgICAgICAgaWYg
KGluZGlyZWN0TG9hZEZvck9wZXJhbmQpCiAgICAgICAgICAgICAgICAgZW1pdEdldFZhckZyb21J
bmRpcmVjdFBvaW50ZXIoYml0d2lzZV9jYXN0PEpTVmFsdWUqKj4ob3BlcmFuZFNsb3QpLCByZWdU
MSwgcmVnVDApOwogICAgICAgICAgICAgZWxzZQpAQCAtMTA4Myw3ICsxMDc5LDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENsb3N1cmVWYXI6CiAg
ICAgICAgIGNhc2UgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6Ci0gICAgICAgICAg
ICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5
cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlv
bkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGVtaXRHZXRDbG9zdXJl
VmFyKHNjb3BlLCAqb3BlcmFuZFNsb3QpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgRHluYW1pYzoKQEAgLTExNzIsNyArMTE2OCw3IEBAIHZvaWQgSklUOjplbWl0UHV0R2xvYmFs
VmFyaWFibGVJbmRpcmVjdChKU1ZhbHVlKiogYWRkcmVzc09mT3BlcmFuZCwgVmlydHVhbFJlZ2lz
CiB7CiAgICAgZW1pdExvYWQodmFsdWUsIHJlZ1QxLCByZWdUMCk7CiAgICAgbG9hZFB0cihpbmRp
cmVjdFdhdGNocG9pbnRTZXQsIHJlZ1QyKTsKLSAgICBlbWl0Tm90aWZ5V3JpdGUocmVnVDIpOwor
ICAgIGVtaXROb3RpZnlXcml0ZSgqaW5kaXJlY3RXYXRjaHBvaW50U2V0KTsgLy8gRklYTUU6ID8/
CiAgICAgbG9hZFB0cihhZGRyZXNzT2ZPcGVyYW5kLCByZWdUMik7CiAgICAgc3RvcmUzMihyZWdU
MSwgQWRkcmVzcyhyZWdUMiwgVGFnT2Zmc2V0KSk7CiAgICAgc3RvcmUzMihyZWdUMCwgQWRkcmVz
cyhyZWdUMiwgUGF5bG9hZE9mZnNldCkpOwpAQCAtMTE5Myw3ICsxMTg5LDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgYXV0byYgbWV0YWRhdGEgPSBieXRlY29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29k
ZUJsb2NrKTsKICAgICBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUgPSBieXRlY29kZS5tX3Njb3BlOwog
ICAgIFZpcnR1YWxSZWdpc3RlciB2YWx1ZSA9IGJ5dGVjb2RlLm1fdmFsdWU7Ci0gICAgR2V0UHV0
SW5mbyBnZXRQdXRJbmZvID0gY29waWVkR2V0UHV0SW5mbyhieXRlY29kZSk7CisgICAgR2V0UHV0
SW5mbyBnZXRQdXRJbmZvID0gYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jayku
bV9nZXRQdXRJbmZvOwogICAgIFJlc29sdmVUeXBlIHJlc29sdmVUeXBlID0gZ2V0UHV0SW5mby5y
ZXNvbHZlVHlwZSgpOwogICAgIFN0cnVjdHVyZSoqIHN0cnVjdHVyZVNsb3QgPSBtZXRhZGF0YS5t
X3N0cnVjdHVyZS5zbG90KCk7CiAgICAgdWludHB0cl90KiBvcGVyYW5kU2xvdCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Kj4oJm1ldGFkYXRhLm1fb3BlcmFuZCk7CkBAIC0xMjIwLDggKzEy
MTYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfdG9fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgICAgIEpTU2NvcGUqIGNvbnN0YW50U2NvcGUg
PSBKU1Njb3BlOjpjb25zdGFudFNjb3BlRm9yQ29kZUJsb2NrKHJlc29sdmVUeXBlLCBtX3Byb2Zp
bGVkQ29kZUJsb2NrKTsKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvbnN0YW50U2NvcGUp
OwogICAgICAgICAgICAgZW1pdFdyaXRlQmFycmllcihjb25zdGFudFNjb3BlLCB2YWx1ZSwgU2hv
dWxkRmlsdGVyVmFsdWUpOwotICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRz
VmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7Ci0gICAgICAgICAgICBlbWl0VmFyUmVh
ZE9ubHlDaGVjayhyZXNvbHZlVHlwZSk7CisgICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hl
Y2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpLCByZWdUMCk7CisgICAgICAg
ICAgICBlbWl0VmFyUmVhZE9ubHlDaGVjayhyZXNvbHZlVHlwZSwgcmVnVDApOwogICAgICAgICAg
ICAgaWYgKCFpc0luaXRpYWxpemF0aW9uKGdldFB1dEluZm8uaW5pdGlhbGl6YXRpb25Nb2RlKCkp
ICYmIChyZXNvbHZlVHlwZSA9PSBHbG9iYWxMZXhpY2FsVmFyIHx8IHJlc29sdmVUeXBlID09IEds
b2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzKSkgewogICAgICAgICAgICAgICAg
IC8vIFdlIG5lZWQgdG8gZG8gYSBURFogY2hlY2sgaGVyZSBiZWNhdXNlIHdlIGNhbid0IGFsd2F5
cyBwcm92ZSB3ZSBuZWVkIHRvIGVtaXQgVERaIGNoZWNrcyBzdGF0aWNhbGx5LgogICAgICAgICAg
ICAgICAgIGlmIChpbmRpcmVjdExvYWRGb3JPcGVyYW5kKQpAQCAtMTI0MCw3ICsxMjM2LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgQ2xvc3VyZVZhcjoKICAgICAgICAgY2FzZSBDbG9z
dXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICAgICAgICAgIGVtaXRXcml0ZUJhcnJp
ZXIoc2NvcGUsIHZhbHVlLCBTaG91bGRGaWx0ZXJWYWx1ZSk7Ci0gICAgICAgICAgICBlbWl0VmFy
SW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpKTsKKyAg
ICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhy
ZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGVtaXRQdXRDbG9zdXJlVmFyKHNjb3Bl
LCAqb3BlcmFuZFNsb3QsIHZhbHVlLCBtZXRhZGF0YS5tX3dhdGNocG9pbnRTZXQpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTW9kdWxlVmFyOgpAQCAtMTMxMyw3ICsxMzA5LDcg
QEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3IKICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwog
CiAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BQdXRUb1Njb3Bl
PigpOwotICAgIFJlc29sdmVUeXBlIHJlc29sdmVUeXBlID0gY29waWVkR2V0UHV0SW5mbyhieXRl
Y29kZSkucmVzb2x2ZVR5cGUoKTsKKyAgICBSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSA9IGJ5dGVj
b2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLm1fZ2V0UHV0SW5mby5yZXNvbHZlVHlw
ZSgpOwogICAgIGlmIChyZXNvbHZlVHlwZSA9PSBNb2R1bGVWYXIpIHsKICAgICAgICAgSklUU2xv
d1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0
aF90aHJvd19zdHJpY3RfbW9kZV9yZWFkb25seV9wcm9wZXJ0eV93cml0ZV9lcnJvcik7CiAgICAg
ICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggYzM1ZTQ1NDQxMTA2Li5kYmM0NzAw
M2NjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KQEAgLTI1MDQsNiArMjUwNCw5IEBAIGlmIEpJVAogCiAgICAgZW5kCiBl
bHNlCisgICAgbWFjcm8gbG9hZEJhc2VsaW5lSklUQ29uc3RhbnRQb29sKCkKKyAgICBlbmQKKwog
ICAgIG1hY3JvIHNldHVwUmV0dXJuVG9CYXNlbGluZUFmdGVyQ2hlY2twb2ludEV4aXRJZk5lZWRl
ZCgpCiAgICAgZW5kCiBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggZjNkOTdjYTRmN2NiLi4zNjYx
NmE2OTViMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC00OTksNiArNDk5LDkgQEAgbWFjcm8gY2hl
Y2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29z
cikKICAgICAgICAgICAgIGJ0cHogcjAsIC5yZWNvdmVyCiAgICAgICAgICAgICBtb3ZlIHIxLCBz
cAorCisgICAgICAgICAgICBsb2FkQmFzZWxpbmVKSVRDb25zdGFudFBvb2woKQorCiAgICAgICAg
ICAgICBqbXAgcjAKICAgICAgICAgLnJlY292ZXI6CiAgICAgICAgICAgICBsb2FkaSBBcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyArIFRhZ09mZnNldFtjZnJdLCBQQwotLSAKMi4zMS4xCgo=
</data>
<flag name="review"
          id="463610"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439876</attachid>
            <date>2021-10-01 10:49:59 -0700</date>
            <delta_ts>2021-10-01 10:54:21 -0700</delta_ts>
            <desc>v5</desc>
            <filename>0001-JSC-32bit-Fix-build-after-unlinked-baseline-JIT.patch</filename>
            <type>text/plain</type>
            <size>30145</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAyMWUzYTBhZmEzMTZiYThjM2RmNDk3M2NhYTRmNmZlMTE0MTliODgwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCAyNiBTZXAgMjAyMSAxMDo0NDoxMiArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklU
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODAzCgpSZXZpZXdl
ZCBieSBTYWFtIEJhcmF0aS4KClRoaXMgaXMgZW5vdWdoIHRvIG1ha2UgdGhpbmdzIGJ1aWxkLCBi
dXQgcHJldHR5IG11Y2ggbm90aGluZyB3b3Jrcwp5ZXQuIFdpbGwgZml4IGluIGEgZm9sbG93LXVw
LCB0aGlzIHdheSB3ZSBhdCBsZWFzdCBnaXZlIHBlb3BsZSBhCmNoYW5jZSBhdCBub3QgaW50cm9k
dWNpbmcgbW9yZSBidWlsZCByZWdyZXNzaW9ucy4KCiogQ01ha2VMaXN0cy50eHQ6CiogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJh
bmNoMzIpOgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CiogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5j
aEFkZDMyKToKKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKEpTQzo6Q2FsbExpbmtJbmZvOjph
ZGRyZXNzT2ZNYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6Ciogaml0L0pJVC5oOgoqIGpp
dC9KSVRDYWxsMzJfNjQuY3BwOgooSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgoqIGppdC9KSVRJ
bmxpbmVzLmg6CihKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CihKU0M6OkpJVDo6
ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUpOgooSlNDOjpKSVQ6OmVtaXRB
cnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCk6Ciogaml0L0pJVE9wY29kZXMuY3BwOgooSlNDOjpK
SVQ6OmVtaXRfb3BfbG9vcF9oaW50KToKKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgooSlND
OjpKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayk6Ciogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwOgooSlNDOjpKSVQ6OmVtaXRIYXNQcml2YXRlU2xvdyk6CihKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfaGFzX3ByaXZhdGVfbmFtZSk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZh
dGVfYnJhbmQpOgooSlNDOjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6CihKU0M6OkpJVDo6ZW1p
dF9vcF9yZXNvbHZlX3Njb3BlKToKKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToK
KEpTQzo6SklUOjplbWl0UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdCk6CihKU0M6OkpJVDo6ZW1p
dF9vcF9wdXRfdG9fc2NvcGUpOgooSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6
CihKU0M6OkpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbToKKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
OgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICB8ICAy
ICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICB8IDQ0ICsr
KysrKysrKwogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggICAgICAgICAgIHwg
MzUgKysrLS0tLS0KIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggICAgICAgICAg
ICB8IDg5ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9DYWxsTGlua0luZm8uaCB8ICA5ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
ICAgICAgICAgICAgICAgfCAxMiArKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2Fs
bDMyXzY0LmNwcCAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaCAgICAgICAgfCAzNCArKysrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMuY3BwICAgICAgfCAgNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAgIHwgMjAgKystLS0KIC4uLi9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAgICAgICAgICAgICB8IDM4ICsrKystLS0tCiAuLi4vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20gICAgICAgICAgICAgfCAgMyArCiAuLi4vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbSAgICAgICAgfCAgMyArCiAxMyBmaWxlcyBjaGFuZ2VkLCAyMzQgaW5zZXJ0aW9ucygr
KSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDg4MDJkYzJjN2Y3OC4uZjRhYzY4YzkyNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC04MzksNiArODM5LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBqaXQvQXNzZW1ibHlIZWxwZXJzLmgKICAgICBqaXQvQXNzZW1i
bHlIZWxwZXJzU3Bvb2xlcnMuaAogICAgIGppdC9CYXNlbGluZUpJVENvZGUuaAorICAgIGppdC9D
YWxsRnJhbWVTaHVmZmxlRGF0YS5oCiAgICAgaml0L0NDYWxsSGVscGVycy5oCiAgICAgaml0L0V4
ZWN1dGFibGVBbGxvY2F0b3IuaAogICAgIGppdC9FeGVjdXRhYmxlTWVtb3J5SGFuZGxlLmgKQEAg
LTg1OSw2ICs4NjAsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGppdC9SZWcuaAogICAgIGppdC9SZWdpc3RlckF0T2Zmc2V0LmgKICAgICBqaXQv
UmVnaXN0ZXJBdE9mZnNldExpc3QuaAorICAgIGppdC9SZWdpc3Rlck1hcC5oCiAgICAgaml0L1Jl
Z2lzdGVyU2V0LmgKICAgICBqaXQvU25pcHBldC5oCiAgICAgaml0L1NuaXBwZXRQYXJhbXMuaApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1NjNjMmZlZTJkLi41ODc2MmNlNzMyNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTEwLTAxICBYYW4g
TMOzcGV6ICA8eGFuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0pTQ11bMzJiaXRdIEZpeCBidWls
ZCBhZnRlciB1bmxpbmtlZCBiYXNlbGluZSBKSVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDgwMworCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0g
QmFyYXRpLgorCisgICAgICAgIFRoaXMgaXMgZW5vdWdoIHRvIG1ha2UgdGhpbmdzIGJ1aWxkLCBi
dXQgcHJldHR5IG11Y2ggbm90aGluZyB3b3JrcworICAgICAgICB5ZXQuIFdpbGwgZml4IGluIGEg
Zm9sbG93LXVwLCB0aGlzIHdheSB3ZSBhdCBsZWFzdCBnaXZlIHBlb3BsZSBhCisgICAgICAgIGNo
YW5jZSBhdCBub3QgaW50cm9kdWNpbmcgbW9yZSBidWlsZCByZWdyZXNzaW9ucy4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OmJyYW5jaDMyKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNoQWRkMzIpOgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJNSVBTOjpicmFuY2hBZGQzMik6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
Lmg6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6YWRkcmVzc09mTWF4QXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklU
Q2FsbDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAgICAg
ICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRWYWx1ZVByb2Zp
bGluZ1NpdGUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlBy
b2ZpbGVkT3Bjb2RlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRl
V2l0aENlbGwpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX2xvb3BfaGludCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2spOgorICAgICAg
ICAqIGppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0SGFzUHJpdmF0ZVNsb3cpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19w
cml2YXRlX25hbWUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hhc19wcml2YXRl
X2JyYW5kKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0UmVzb2x2ZUNsb3N1cmUpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9nZXRfZnJvbV9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFB1dEdsb2Jh
bFZhcmlhYmxlSW5kaXJlY3QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X3RvX3Nj
b3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9wdXRfdG9fc2NvcGUpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayk6IERlbGV0ZWQuCisgICAgICAg
ICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKwogMjAyMS0xMC0wMSAgT2xpdmllciBCbGluICA8b2xp
dmllci5ibGluQHNvZnRhdGhvbWUuY29tPgogCiAgICAgICAgIFtKU0NdW0dMaWJdIEZpeCB0eXBv
IGluIFdyYXBwZXJNYXAgY3JlYXRpb24gbWV0aG9kcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBkZjUxZTk1MmRk
Y2QuLjJlZjQ4NjAzMWMwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTE2MTAsNyArMTYxMCwxNCBAQCBwdWJs
aWM6CiAKICAgICBKdW1wIGJyYW5jaDMyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0
ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIu
Y21wKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgaWYgKGxlZnQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkg
eworICAgICAgICAgICAgbW92ZShsZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmNtcChkYXRhVGVtcFJlZ2lzdGVyLCByaWdodCk7CisgICAgICAgIH0gZWxz
ZSBpZiAocmlnaHQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgbW92ZShyaWdo
dCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXAobGVmdCwg
ZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuY21wKGxlZnQsIHJpZ2h0KTsKICAgICAgICAgcmV0dXJuIEp1bXAobWFrZUJyYW5jaChjb25k
KSk7CiAgICAgfQogCkBAIC0xODQwLDI3ICsxODQ3LDEzIEBAIHB1YmxpYzoKIAogICAgIEp1bXAg
YnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFic29s
dXRlQWRkcmVzcyBkZXN0KQogICAgIHsKLSAgICAgICAgLy8gTW92ZSB0aGUgaGlnaCBiaXRzIG9m
IHRoZSBhZGRyZXNzIGludG8gYWRkcmVzc1RlbXBSZWdpc3RlciwKLSAgICAgICAgLy8gYW5kIGxv
YWQgdGhlIHZhbHVlIGludG8gZGF0YVRlbXBSZWdpc3Rlci4KLSAgICAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgbV9hc3Nl
bWJsZXIubGRyKGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIsIEFSTVRodW1i
SW1tZWRpYXRlOjptYWtlVUludDE2KDApKTsKLQotICAgICAgICAvLyBEbyB0aGUgYWRkLgotICAg
ICAgICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZUVu
Y29kZWRJbW0oaW1tLm1fdmFsdWUpOwotICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkKLSAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVn
aXN0ZXIsIGFybUltbSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8gSWYgdGhlIG9w
ZXJhbmQgZG9lcyBub3QgZml0IGludG8gYW4gaW1tZWRpYXRlIHRoZW4gbG9hZCBpdCB0ZW1wb3Jh
cmlseQotICAgICAgICAgICAgLy8gaW50byBhZGRyZXNzVGVtcFJlZ2lzdGVyOyBzaW5jZSB3ZSdy
ZSBvdmVyd3JpdGluZyBhZGRyZXNzVGVtcFJlZ2lzdGVyCi0gICAgICAgICAgICAvLyB3ZSdsbCBu
ZWVkIHRvIHJlbG9hZCBpdCB3aXRoIHRoZSBoaWdoIGJpdHMgb2YgdGhlIGFkZHJlc3MgYWZ0ZXJ3
YXJkcy4KLSAgICAgICAgICAgIG1vdmUoaW1tLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmFkZF9TKGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0
ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGRlc3QubV9wdHIpLCBhZGRyZXNzVGVtcFJlZ2lzdGVyKTsKLSAgICAgICAgfQotCi0gICAgICAg
IC8vIFN0b3JlIHRoZSByZXN1bHQuCi0gICAgICAgIG1fYXNzZW1ibGVyLnN0cihkYXRhVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzVGVtcFJlZ2lzdGVyLCBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQx
NigwKSk7CisgICAgICAgIGFkZDMyKGltbSwgZGVzdCk7CisgICAgICAgIHJldHVybiBKdW1wKG1h
a2VCcmFuY2goY29uZCkpOworICAgIH0KIAorICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29u
ZGl0aW9uIGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAg
ICAgIGFkZDMyKGltbSwgZGVzdCk7CiAgICAgICAgIHJldHVybiBKdW1wKG1ha2VCcmFuY2goY29u
ZCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2UzYWUyYWZhZjBjLi41OWU3MmFkNTUwMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJN
SVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ck1JUFMuaApAQCAtMjM1NCw2ICsyMzU0LDk1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEp1
bXAoKTsKICAgICB9CiAKKyAgICBKdW1wIGJyYW5jaEFkZDMyKFJlc3VsdENvbmRpdGlvbiBjb25k
LCBUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGRlc3QpCisgICAgeworICAgICAgICBBU1NFUlQo
KGNvbmQgPT0gT3ZlcmZsb3cpIHx8IChjb25kID09IFNpZ25lZCkgfHwgKGNvbmQgPT0gUG9zaXRp
dmVPclplcm8pIHx8IChjb25kID09IFplcm8pIHx8IChjb25kID09IE5vblplcm8pKTsKKyAgICAg
ICAgaWYgKGNvbmQgPT0gT3ZlcmZsb3cpIHsKKyAgICAgICAgICAgIGlmIChtX2ZpeGVkV2lkdGgp
IHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgbG9hZCAgICBkZXN0LCBk
YXRhVGVtcAorICAgICAgICAgICAgICAgICAgbW92ZSAgICBpbW0sIGltbVRlbXAKKyAgICAgICAg
ICAgICAgICAgIHhvciAgICAgY21wVGVtcCwgZGF0YVRlbXAsIGltbVRlbXAKKyAgICAgICAgICAg
ICAgICAgIGFkZHUgICAgZGF0YVRlbXAsIGRhdGFUZW1wLCBpbW1UZW1wCisgICAgICAgICAgICAg
ICAgICBzdG9yZSAgIGRhdGFUZW1wLCBkZXN0CisgICAgICAgICAgICAgICAgICBibHR6ICAgIGNt
cFRlbXAsIE5vX292ZXJmbG93ICAgICMgZGlmZiBzaWduIGJpdCAtPiBubyBvdmVyZmxvdworICAg
ICAgICAgICAgICAgICAgeG9yICAgICBjbXBUZW1wLCBkYXRhVGVtcCwgaW1tVGVtcAorICAgICAg
ICAgICAgICAgICAgYmdleiAgICBjbXBUZW1wLCBOb19vdmVyZmxvdyAgICAjIHNhbWUgc2lnbiBi
aWcgLT4gbm8gb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgIG5vcAorICAgICAgICAgICAgICAg
ICAgYiAgICAgICBPdmVyZmxvdworICAgICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAg
ICAgICBiICAgICAgIE5vX292ZXJmbG93CisgICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAg
ICAgICAgICAgIG5vcAorICAgICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBO
b19vdmVyZmxvdzoKKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGxvYWQzMihk
ZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVt
cFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci54b3JJbnNuKGNtcFRlbXBS
ZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5hZGR1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIs
IGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgc3RvcmUzMihkYXRhVGVtcFJlZ2lz
dGVyLCBkZXN0KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5ibHR6KGNtcFRlbXBSZWdp
c3RlciwgOSk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIueG9ySW5zbihjbXBUZW1wUmVn
aXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYmdleihjbXBUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLm5vcCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5sdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0LmJhc2UsIGRlc3Qub2Zmc2V0
KTsKKyAgICAgICAgICAgICAgICBpZiAoaW1tLm1fdmFsdWUgPj0gMCAmJiBpbW0ubV92YWx1ZSAg
PD0gMzI3NjcpIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShkYXRhVGVtcFJlZ2lzdGVyLCBj
bXBUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGRpdShk
YXRhVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW0ubV92YWx1ZSk7CisgICAgICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVtcFJlZ2lzdGVyLCA5KTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNl
LCBkZXN0Lm9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooZGF0
YVRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW1tLm1fdmFsdWUgPj0gLTMyNzY4ICYmIGlt
bS5tX3ZhbHVlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKGRhdGFUZW1wUmVnaXN0
ZXIsIGNtcFRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbS5tX3ZhbHVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmdleihjbXBUZW1wUmVnaXN0ZXIsIDkpOwor
ICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0
LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmx0
eihjbXBUZW1wUmVnaXN0ZXIsIDcpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5u
b3AoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtb3Zl
KGltbSwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
eG9ySW5zbihjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rl
cik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoZGF0YVRlbXBSZWdpc3Rl
ciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuYmx0eihjbXBUZW1wUmVnaXN0ZXIsIDEwKTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBkZXN0Lm9m
ZnNldCk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnhvckluc24oY21wVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5iZ2V6KGNtcFRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLm5vcCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJldHVybiBqdW1wKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KG1fZml4ZWRXaWR0aCkgeworICAgICAgICAgICAgbW92ZShpbW0sIGltbVRlbXBSZWdpc3Rlcik7
CisgICAgICAgICAgICBsb2FkMzIoZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAg
ICBhZGQzMihpbW1UZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
c3RvcmUzMihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5v
ZmZzZXQpOworICAgICAgICAgICAgYWRkMzIoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5v
ZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGlmIChjb25kID09IFNpZ25lZCkgeworICAgICAg
ICAgICAgLy8gQ2hlY2sgaWYgZGVzdCBpcyBuZWdhdGl2ZS4KKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLnNsdChjbXBUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6
Onplcm8pOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFsKGNtcFRlbXBSZWdpc3Rl
ciwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0g
UG9zaXRpdmVPclplcm8pIHsKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIGRlc3QgaXMgbm90IG5l
Z2F0aXZlLgorICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2x0KGNtcFRlbXBSZWdpc3RlciwgZGF0
YVRlbXBSZWdpc3RlciwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgICAgICByZXR1cm4g
YnJhbmNoRXF1YWwoY21wVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoY29uZCA9PSBaZXJvKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5j
aEVxdWFsKGRhdGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICBp
ZiAoY29uZCA9PSBOb25aZXJvKQorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaE5vdEVxdWFsKGRh
dGFUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOworICAgICAgICBBU1NFUlQoMCk7
CisgICAgICAgIHJldHVybiBKdW1wKCk7CisgICAgfQorCiAgICAgSnVtcCBicmFuY2hNdWwzMihS
ZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVCgoY29uZCA9PSBPdmVyZmxvdykg
fHwgKGNvbmQgPT0gU2lnbmVkKSB8fCAoY29uZCA9PSBaZXJvKSB8fCAoY29uZCA9PSBOb25aZXJv
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJ
bmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5k
ZXggNGI4MTIwZTI2NTg2Li4wZjVjNTJiYmNjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJDYWxsRnJhbWVTaHVmZmxlRGF0YS5oIgogI2luY2x1ZGUgIkNhbGxN
b2RlLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxp
emF0aW9uS2luZC5oIgpAQCAtNDEsNyArNDIsNiBAQCBjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFz
cyBGdW5jdGlvbkNvZGVCbG9jazsKIGNsYXNzIEpTRnVuY3Rpb247CiBlbnVtIE9wY29kZUlEIDog
dW5zaWduZWQ7Ci1zdHJ1Y3QgQ2FsbEZyYW1lU2h1ZmZsZURhdGE7CiAKIHN0cnVjdCBVbmxpbmtl
ZENhbGxMaW5rSW5mbzsKIApAQCAtMzE0LDYgKzMxNCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ2FsbExpbmtJbmZvLCBtX21heEFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzKTsKICAgICB9CiAKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIHVpbnQzMl90
KiBhZGRyZXNzT2ZNYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpCisgICAgeworICAgICAg
ICByZXR1cm4gJm1fbWF4QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXM7CisgICAgfQorI2VuZGlm
CisKICAgICB1aW50MzJfdCBtYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpCiAgICAgewog
ICAgICAgICByZXR1cm4gbV9tYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCmluZGV4IDVlZDNiODRkZTE3Ny4uOWViNzY0YzkwNDRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTM0NSwxMiArMzQ1LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB2YWx1ZSB0byBwcm9maWxlIGlzIGluIHJl
Z1QwIGFuZCB0aGF0IHJlZ1QzIGlzIGF2YWlsYWJsZSBmb3IKICAgICAgICAgLy8gc2NyYXRjaC4K
LSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZT4g
dm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiwgR1BSUmVnKTsKICAg
ICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+IHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZShjb25zdCBCeXRlY29kZSYsIEpTVmFsdWVSZWdzKTsKLSNlbHNlCisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKICAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKFZhbHVlUHJvZmls
ZSYsIEpTVmFsdWVSZWdzKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+IHZv
aWQgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYsIEpTVmFsdWVSZWdzKTsKKyAgICAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTWV0YWRhdGE+CisgICAgICAgIHN0ZDo6ZW5hYmxlX2lmX3Q8
c3RkOjppc19zYW1lPGRlY2x0eXBlKE1ldGFkYXRhOjptX3Byb2ZpbGUpLCBWYWx1ZVByb2ZpbGU+
Ojp2YWx1ZSwgdm9pZD4KKyAgICAgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShNZXRhZGF0YSYs
IEpTVmFsdWVSZWdzKTsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgZW1pdFZhbHVlUHJvZmlsaW5n
U2l0ZUlmUHJvZmlsZWRPcGNvZGUoLi4uKTsKQEAgLTM2Myw2ICszNjQsMTEgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBCeXRlY29kZT4KICAgICAgICAgdm9p
ZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoY29uc3QgQnl0ZWNvZGUmLCBwdHJkaWZm
X3QsIFJlZ2lzdGVySUQgY2VsbEdQUiwgUmVnaXN0ZXJJRCBzY3JhdGNoR1BSKTsKIAorI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgIHZvaWQgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhD
ZWxsKFJlZ2lzdGVySUQsIEFycmF5UHJvZmlsZSogLCBSZWdpc3RlcklEKTsKKyAgICAgICAgdm9p
ZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCAs
IFJlZ2lzdGVySUQpOworI2VuZGlmCisKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3A+CiAg
ICAgICAgIEVDTUFNb2RlIGVjbWFNb2RlKE9wKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDYWxsMzJfNjQuY3BwCmluZGV4IDFjZDc0ZjQ2OTQ4OS4uMWUwNWUyMDVhODdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsMzJfNjQuY3BwCkBAIC0zMTAsNyArMzEw
LDcgQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCB1bnNpZ25lZCBjYWxsTGlua0luZm9JbmQKIAogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxp
Z25tZW50KCk7CiAgICAgaWYgKG9wY29kZUlEID09IG9wX3RhaWxfY2FsbCB8fCBvcGNvZGVJRCA9
PSBvcF90YWlsX2NhbGxfdmFyYXJncyB8fCBvcGNvZGVJRCA9PSBvcF90YWlsX2NhbGxfZm9yd2Fy
ZF9hcmd1bWVudHMpIHsKLSAgICAgICAgYXV0byBzbG93UGF0aHMgPSBpbmZvLT5lbWl0VGFpbENh
bGxGYXN0UGF0aCgqdGhpcywgcmVnVDAsIHJlZ1QyLCBDYWxsTGlua0luZm86OlVzZURhdGFJQzo6
WWVzLCBbJl0geworICAgICAgICBhdXRvIHNsb3dQYXRocyA9IGluZm8tPmVtaXRUYWlsQ2FsbERh
dGFJQ0Zhc3RQYXRoKCp0aGlzLCByZWdUMCwgcmVnVDIsIFsmXSB7CiAgICAgICAgICAgICBlbWl0
UmVzdG9yZUNhbGxlZVNhdmVzKCk7CiAgICAgICAgICAgICBwcmVwYXJlRm9yVGFpbENhbGxTbG93
KHJlZ1QyKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5o
CmluZGV4IDFmM2NhMzE4M2E4My4uODVjNmE4NDhiZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaApAQCAtMzM0LDYgKzMzNCwxMiBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQcm9maWxlJiB2YWx1ZVByb2ZpbGUsIEpTVmFsdWVS
ZWdzCiAgICAgc3RvcmUzMih2YWx1ZS5wYXlsb2FkR1BSKCksICZkZXNjcmlwdG9yLT5hc0JpdHMu
cGF5bG9hZCk7CiAgICAgc3RvcmUzMih2YWx1ZS50YWdHUFIoKSwgJmRlc2NyaXB0b3ItPmFzQml0
cy50YWcpOwogfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4KK3N0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19zYW1lPGRlY2x0eXBlKE1ldGFkYXRhOjptX3Byb2ZpbGUpLCBWYWx1ZVByb2Zp
bGU+Ojp2YWx1ZSwgdm9pZD4gSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiBt
ZXRhZGF0YSwgSlNWYWx1ZVJlZ3MgdmFsdWUpCit7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZSh2YWx1ZVByb2ZpbGVGb3IobWV0YWRhdGEsIG1fYnl0ZWNvZGVJbmRleC5jaGVja3BvaW50KCkp
LCB2YWx1ZSk7Cit9CiAjZW5kaWYKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3A+CkBAIC0zNDIsMjEg
KzM0OCwyNiBAQCBpbmxpbmUgc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUo
T3A6Ok1ldGFkYXRhOjptX3Byb2ZpbGUpLCBWYWx1ZVBybwogI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRlY29kZSwgcmVnVDApOwogI2Vsc2UKLSAgICBl
bWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgSlNW
YWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CisgICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShieXRl
Y29kZSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSk7CiAjZW5kaWYKIH0KIAogaW5saW5lIHZv
aWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSguLi4pIHsgfQog
Ci0jaWYgVVNFKEpTVkFMVUU2NCkKIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVjb2RlPgogaW5saW5l
IHZvaWQgSklUOjplbWl0VmFsdWVQcm9maWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29k
ZSwgSlNWYWx1ZVJlZ3MgdmFsdWUpCiB7CiAgICAgaWYgKCFzaG91bGRFbWl0UHJvZmlsaW5nKCkp
CiAgICAgICAgIHJldHVybjsKIAorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgcHRyZGlmZl90IG9m
ZnNldCA9IG1fdW5saW5rZWRDb2RlQmxvY2stPm1ldGFkYXRhKCkub2Zmc2V0SW5NZXRhZGF0YVRh
YmxlKGJ5dGVjb2RlKSArIHZhbHVlUHJvZmlsZU9mZnNldEZvcjxCeXRlY29kZT4obV9ieXRlY29k
ZUluZGV4LmNoZWNrcG9pbnQoKSkgKyBWYWx1ZVByb2ZpbGU6Om9mZnNldE9mRmlyc3RCdWNrZXQo
KTsKICAgICBzdG9yZTY0KHZhbHVlLmdwcigpLCBBZGRyZXNzKHNfbWV0YWRhdGFHUFIsIG9mZnNl
dCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShi
eXRlY29kZSk7CisgICAgLy8gRklYTUUuCisjZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
Qnl0ZWNvZGU+CkBAIC0zNjQsNyArMzc1LDYgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0VmFsdWVQ
cm9maWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiBieXRlY29kZSwgR1BSUmVnIHJlc3VsdFIKIHsK
ICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCBKU1ZhbHVlUmVncyhyZXN1bHRS
ZWcpKTsKIH0KLSNlbmRpZgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQnl0ZWNvZGU+CiBpbmxpbmUg
dm9pZCBKSVQ6OmVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChjb25zdCBCeXRlY29kZSYg
Ynl0ZWNvZGUsIHB0cmRpZmZfdCBvZmZzZXRPZkFycmF5UHJvZmlsZSwgUmVnaXN0ZXJJRCBjZWxs
R1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpCkBAIC0zODEsNiArMzkxLDI0IEBAIGlubGluZSB2
b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVjb2RlJiBi
eXRlY29kZSwgUmVnaXN0CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGJ5dGVj
b2RlLCBCeXRlY29kZTo6TWV0YWRhdGE6Om9mZnNldE9mQXJyYXlQcm9maWxlKCkgKyBBcnJheVBy
b2ZpbGU6Om9mZnNldE9mTGFzdFNlZW5TdHJ1Y3R1cmVJRCgpLCBjZWxsR1BSLCBzY3JhdGNoR1BS
KTsKIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGxHUFIsIEFycmF5UHJvZmlsZSog
YXJyYXlQcm9maWxlLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpCit7CisgICAgaWYgKHNob3VsZEVt
aXRQcm9maWxpbmcoKSkgeworICAgICAgICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
Y2VsbEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAg
ICAgIHN0b3JlMzIoc2NyYXRjaEdQUiwgYXJyYXlQcm9maWxlLT5hZGRyZXNzT2ZMYXN0U2VlblN0
cnVjdHVyZUlEKCkpOworICAgIH0KK30KKworaW5saW5lIHZvaWQgSklUOjplbWl0QXJyYXlQcm9m
aWxpbmdTaXRlV2l0aENlbGwoUmVnaXN0ZXJJRCBjZWxsR1BSLCBSZWdpc3RlcklEIGFycmF5UHJv
ZmlsZUdQUiwgUmVnaXN0ZXJJRCBzY3JhdGNoR1BSKQoreworICAgIGlmIChzaG91bGRFbWl0UHJv
ZmlsaW5nKCkpIHsKKyAgICAgICAgbG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNlbGxH
UFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICBz
dG9yZTMyKHNjcmF0Y2hHUFIsIEFkZHJlc3MoYXJyYXlQcm9maWxlR1BSLCBBcnJheVByb2ZpbGU6
Om9mZnNldE9mTGFzdFNlZW5TdHJ1Y3R1cmVJRCgpKSk7CisgICAgfQorfQorI2VuZGlmCisKIEFM
V0FZU19JTkxJTkUgaW50MzJfdCBKSVQ6OmdldE9wZXJhbmRDb25zdGFudEludChWaXJ0dWFsUmVn
aXN0ZXIgc3JjKQogewogICAgIHJldHVybiBnZXRDb25zdGFudE9wZXJhbmQoc3JjKS5hc0ludDMy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBmYzNhYmQ2
ZmQ4YjEuLmY5M2MwOGY0YTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCkBAIC0xNDY2LDEwICsxNDY2LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX2xvb3BfaGlu
dChjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAKICNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsK
KyAgICAgICAgbG9hZEdsb2JhbE9iamVjdChyZXN1bHRSZWdzLmdwcigpKTsKICNlbHNlCiAgICAg
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgICAgIGxvYWRHbG9iYWxPYmplY3QocmVzdWx0UmVn
cy5wYXlsb2FkR1BSKCkpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgcmVzdWx0UmVncy50YWdHUFIoKSk7CiAjZW5kaWYKLSAgICAgICAgbG9hZEdsb2JhbE9i
amVjdChyZXN1bHRSZWdzLmdwcigpKTsKICAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1l
bnQoKTsKICAgICAgICAgZW1pdFJlc3RvcmVDYWxsZWVTYXZlcygpOwogICAgICAgICBlbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAppbmRleCA5YTJhN2NhYWM5YjMuLmMxODYzNjk5NjBiMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTE4MjEs
MTYgKzE4MjEsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVfYnJhbmQoY29u
c3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVgogICAgIGVtaXRIYXNQcml2YXRl
U2xvdyhieXRlY29kZS5tX2RzdCwgYnl0ZWNvZGUubV9iYXNlLCBieXRlY29kZS5tX2JyYW5kLCBB
Y2Nlc3NUeXBlOjpIYXNQcml2YXRlQnJhbmQpOwogfQogCi12b2lkIEpJVDo6ZW1pdFZhckluamVj
dGlvbkNoZWNrKGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIEdQUlJlZyBzY3JhdGNoR1BS
KQotewotICAgIGlmICghbmVlZHNWYXJJbmplY3Rpb25DaGVja3MpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGxvYWRHbG9iYWxPYmplY3Qoc2NyYXRjaEdQUik7Ci0gICAgbG9hZFB0cihBZGRyZXNz
KHNjcmF0Y2hHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV92YXJJbmplY3Rp
b25XYXRjaHBvaW50KSksIHNjcmF0Y2hHUFIpOwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoRXF1
YWwsIEFkZHJlc3Moc2NyYXRjaEdQUiwgV2F0Y2hwb2ludFNldDo6b2Zmc2V0T2ZTdGF0ZSgpKSwg
VHJ1c3RlZEltbTMyKElzSW52YWxpZGF0ZWQpKSk7Ci19Ci0KIHZvaWQgSklUOjplbWl0UmVzb2x2
ZUNsb3N1cmUoVmlydHVhbFJlZ2lzdGVyIGRzdCwgVmlydHVhbFJlZ2lzdGVyIHNjb3BlLCBib29s
IG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzLCB1bnNpZ25lZCBkZXB0aCkKIHsKICAgICBlbWl0VmFy
SW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHJlZ1QwKTsKQEAgLTMxOTEs
NiArMzE4MSwxNiBAQCB2b2lkIEpJVDo6ZW1pdFdyaXRlQmFycmllcihHUFJSZWcgb3duZXIpCiAg
ICAgb3duZXJJc1JlbWVtYmVyZWRPckluRWRlbi5saW5rKHRoaXMpOwogfQogCit2b2lkIEpJVDo6
ZW1pdFZhckluamVjdGlvbkNoZWNrKGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIEdQUlJl
ZyBzY3JhdGNoR1BSKQoreworICAgIGlmICghbmVlZHNWYXJJbmplY3Rpb25DaGVja3MpCisgICAg
ICAgIHJldHVybjsKKworICAgIGxvYWRHbG9iYWxPYmplY3Qoc2NyYXRjaEdQUik7CisgICAgbG9h
ZFB0cihBZGRyZXNzKHNjcmF0Y2hHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwg
bV92YXJJbmplY3Rpb25XYXRjaHBvaW50KSksIHNjcmF0Y2hHUFIpOworICAgIGFkZFNsb3dDYXNl
KGJyYW5jaDgoRXF1YWwsIEFkZHJlc3Moc2NyYXRjaEdQUiwgV2F0Y2hwb2ludFNldDo6b2Zmc2V0
T2ZTdGF0ZSgpKSwgVHJ1c3RlZEltbTMyKElzSW52YWxpZGF0ZWQpKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IDVmODYyYTU3
ZmUwMC4uMjcyMTcwNTM1OWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTg0Niw5ICs4NDYsMTIgQEAgdm9pZCBK
SVQ6OmVtaXRIYXNQcml2YXRlKFZpcnR1YWxSZWdpc3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBi
YXNlLCBWaXJ0dWFsUmVnaXMKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQog
Ci12b2lkIEpJVDo6ZW1pdEhhc1ByaXZhdGVTbG93KFZpcnR1YWxSZWdpc3RlciBkc3QsIEFjY2Vz
c1R5cGUgdHlwZSkKK3ZvaWQgSklUOjplbWl0SGFzUHJpdmF0ZVNsb3coVmlydHVhbFJlZ2lzdGVy
IGRzdCwgVmlydHVhbFJlZ2lzdGVyIGJhc2UsIFZpcnR1YWxSZWdpc3RlciBwcm9wZXJ0eSwgQWNj
ZXNzVHlwZSB0eXBlKQogeworICAgIC8vIEZJWE1FOiA2NC1iaXQgc2VlbXMgdG8gYWxzbyBpZ25v
cmUgYmFzZS9wcm9wZXJ0eS4KICAgICBBU1NFUlQodHlwZSA9PSBBY2Nlc3NUeXBlOjpIYXNQcml2
YXRlTmFtZSB8fCB0eXBlID09IEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVCcmFuZCk7CisgICAgVU5V
U0VEX1BBUkFNKGJhc2UpOworICAgIFVOVVNFRF9QQVJBTShwcm9wZXJ0eSk7CiAKICAgICBKSVRJ
bkJ5VmFsR2VuZXJhdG9yJiBnZW4gPSBtX2luQnlWYWxzW21faW5CeVZhbEluZGV4KytdOwogICAg
IExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOwpAQCAtODY5LDcgKzg3Miw3IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9oYXNfcHJpdmF0ZV9uYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlCiAgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKIAogICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSGFzUHJpdmF0ZU5hbWU+KCk7
Ci0gICAgZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBBY2Nlc3NUeXBlOjpIYXNQ
cml2YXRlTmFtZSk7CisgICAgZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBieXRl
Y29kZS5tX2Jhc2UsIGJ5dGVjb2RlLm1fcHJvcGVydHksIEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVO
YW1lKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX3ByaXZhdGVfYnJhbmQoY29uc3QgSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTg4MywxOSArODg2LDEyIEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9oYXNfcHJpdmF0ZV9icmFuZChjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWCiAgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKIAogICAgIGF1
dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSGFzUHJpdmF0ZUJyYW5kPigp
OwotICAgIGVtaXRIYXNQcml2YXRlU2xvdyhieXRlY29kZS5tX2RzdCwgQWNjZXNzVHlwZTo6SGFz
UHJpdmF0ZUJyYW5kKTsKLX0KLQotdm9pZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayhib29s
IG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQotewotICAgIGlmICghbmVlZHNWYXJJbmplY3Rpb25D
aGVja3MpCi0gICAgICAgIHJldHVybjsKLSAgICBhZGRTbG93Q2FzZShicmFuY2g4KEVxdWFsLCBB
YnNvbHV0ZUFkZHJlc3MobV9wcm9maWxlZENvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPnZhcklu
amVjdGlvbldhdGNocG9pbnQoKS0+YWRkcmVzc09mU3RhdGUoKSksIFRydXN0ZWRJbW0zMihJc0lu
dmFsaWRhdGVkKSkpOworICAgIGVtaXRIYXNQcml2YXRlU2xvdyhieXRlY29kZS5tX2RzdCwgYnl0
ZWNvZGUubV9iYXNlLCBieXRlY29kZS5tX2JyYW5kLCBBY2Nlc3NUeXBlOjpIYXNQcml2YXRlQnJh
bmQpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFJlc29sdmVDbG9zdXJlKFZpcnR1YWxSZWdpc3RlciBk
c3QsIFZpcnR1YWxSZWdpc3RlciBzY29wZSwgYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywg
dW5zaWduZWQgZGVwdGgpCiB7Ci0gICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5q
ZWN0aW9uQ2hlY2tzKTsKKyAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rp
b25DaGVja3MsIHJlZ1QwKTsKICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwgcmVnVDEpOwogICAgIGVtaXRMb2FkUGF5bG9hZChzY29wZSwgcmVnVDApOwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBkZXB0aDsgKytpKQpAQCAtOTE4LDcgKzkxNCw3IEBAIHZvaWQg
SklUOjplbWl0X29wX3Jlc29sdmVfc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgY2FzZSBHbG9iYWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25DaGVj
a3M6IHsKICAgICAgICAgICAgIEpTU2NvcGUqIGNvbnN0YW50U2NvcGUgPSBKU1Njb3BlOjpjb25z
dGFudFNjb3BlRm9yQ29kZUJsb2NrKHJlc29sdmVUeXBlLCBtX3Byb2ZpbGVkQ29kZUJsb2NrKTsK
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNvbnN0YW50U2NvcGUpOwotICAgICAgICAgICAg
ZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBl
KSk7CisgICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25D
aGVja3MocmVzb2x2ZVR5cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBsb2FkMzIoJm1ldGFkYXRh
Lm1fZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaCwgcmVnVDEpOwogICAgICAgICAgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIEFic29sdXRlQWRkcmVzcyhtX3Byb2ZpbGVkQ29kZUJs
b2NrLT5nbG9iYWxPYmplY3QoKS0+YWRkcmVzc09mR2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaCgp
KSwgcmVnVDEpKTsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpLCByZWdUMSk7CkBAIC05MzMsNyArOTI5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2
ZV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBj
YXNlIEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOiB7CiAgICAgICAgICAg
ICBKU1Njb3BlKiBjb25zdGFudFNjb3BlID0gSlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVC
bG9jayhyZXNvbHZlVHlwZSwgbV9wcm9maWxlZENvZGVCbG9jayk7CiAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChjb25zdGFudFNjb3BlKTsKLSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25D
aGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOworICAgICAgICAgICAg
ZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBl
KSwgcmVnVDApOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRh
ZyksIHJlZ1QxKTsKICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihjb25zdGFudFNjb3Bl
KSwgcmVnVDApOwogICAgICAgICAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKQEAg
LTEwNzMsNyArMTA2OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKGNvbnN0
IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgIGNhc2UgR2xvYmFsVmFy
V2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICAgICAgY2FzZSBHbG9iYWxMZXhpY2FsVmFyOgog
ICAgICAgICBjYXNlIEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgotICAg
ICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJl
c29sdmVUeXBlKSk7CisgICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJ
bmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBpZiAoaW5k
aXJlY3RMb2FkRm9yT3BlcmFuZCkKICAgICAgICAgICAgICAgICBlbWl0R2V0VmFyRnJvbUluZGly
ZWN0UG9pbnRlcihiaXR3aXNlX2Nhc3Q8SlNWYWx1ZSoqPihvcGVyYW5kU2xvdCksIHJlZ1QxLCBy
ZWdUMCk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xMDgzLDcgKzEwNzksNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9nZXRfZnJvbV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2xvc3VyZVZhcjoKICAgICAg
ICAgY2FzZSBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKLSAgICAgICAgICAgIGVt
aXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkp
OworICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hl
Y2tzKHJlc29sdmVUeXBlKSwgcmVnVDApOwogICAgICAgICAgICAgZW1pdEdldENsb3N1cmVWYXIo
c2NvcGUsICpvcGVyYW5kU2xvdCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBE
eW5hbWljOgpAQCAtMTE3Miw3ICsxMTY4LDcgQEAgdm9pZCBKSVQ6OmVtaXRQdXRHbG9iYWxWYXJp
YWJsZUluZGlyZWN0KEpTVmFsdWUqKiBhZGRyZXNzT2ZPcGVyYW5kLCBWaXJ0dWFsUmVnaXMKIHsK
ICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBsb2FkUHRyKGluZGlyZWN0
V2F0Y2hwb2ludFNldCwgcmVnVDIpOwotICAgIGVtaXROb3RpZnlXcml0ZShyZWdUMik7CisgICAg
ZW1pdE5vdGlmeVdyaXRlKCppbmRpcmVjdFdhdGNocG9pbnRTZXQpOyAvLyBGSVhNRTogPz8KICAg
ICBsb2FkUHRyKGFkZHJlc3NPZk9wZXJhbmQsIHJlZ1QyKTsKICAgICBzdG9yZTMyKHJlZ1QxLCBB
ZGRyZXNzKHJlZ1QyLCBUYWdPZmZzZXQpKTsKICAgICBzdG9yZTMyKHJlZ1QwLCBBZGRyZXNzKHJl
Z1QyLCBQYXlsb2FkT2Zmc2V0KSk7CkBAIC0xMTkzLDcgKzExODksNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9wdXRfdG9fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
ICAgICBhdXRvJiBtZXRhZGF0YSA9IGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxv
Y2spOwogICAgIFZpcnR1YWxSZWdpc3RlciBzY29wZSA9IGJ5dGVjb2RlLm1fc2NvcGU7CiAgICAg
VmlydHVhbFJlZ2lzdGVyIHZhbHVlID0gYnl0ZWNvZGUubV92YWx1ZTsKLSAgICBHZXRQdXRJbmZv
IGdldFB1dEluZm8gPSBjb3BpZWRHZXRQdXRJbmZvKGJ5dGVjb2RlKTsKKyAgICBHZXRQdXRJbmZv
IGdldFB1dEluZm8gPSBieXRlY29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2dl
dFB1dEluZm87CiAgICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUgPSBnZXRQdXRJbmZvLnJlc29s
dmVUeXBlKCk7CiAgICAgU3RydWN0dXJlKiogc3RydWN0dXJlU2xvdCA9IG1ldGFkYXRhLm1fc3Ry
dWN0dXJlLnNsb3QoKTsKICAgICB1aW50cHRyX3QqIG9wZXJhbmRTbG90ID0gcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3QqPigmbWV0YWRhdGEubV9vcGVyYW5kKTsKQEAgLTEyMjAsOCArMTIxNiw4
IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgICAgICAgICAgSlNTY29wZSogY29uc3RhbnRTY29wZSA9IEpT
U2NvcGU6OmNvbnN0YW50U2NvcGVGb3JDb2RlQmxvY2socmVzb2x2ZVR5cGUsIG1fcHJvZmlsZWRD
b2RlQmxvY2spOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29uc3RhbnRTY29wZSk7CiAg
ICAgICAgICAgICBlbWl0V3JpdGVCYXJyaWVyKGNvbnN0YW50U2NvcGUsIHZhbHVlLCBTaG91bGRG
aWx0ZXJWYWx1ZSk7Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJ
bmplY3Rpb25DaGVja3MocmVzb2x2ZVR5cGUpKTsKLSAgICAgICAgICAgIGVtaXRWYXJSZWFkT25s
eUNoZWNrKHJlc29sdmVUeXBlKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhu
ZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKKyAgICAgICAgICAg
IGVtaXRWYXJSZWFkT25seUNoZWNrKHJlc29sdmVUeXBlLCByZWdUMCk7CiAgICAgICAgICAgICBp
ZiAoIWlzSW5pdGlhbGl6YXRpb24oZ2V0UHV0SW5mby5pbml0aWFsaXphdGlvbk1vZGUoKSkgJiYg
KHJlc29sdmVUeXBlID09IEdsb2JhbExleGljYWxWYXIgfHwgcmVzb2x2ZVR5cGUgPT0gR2xvYmFs
TGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MpKSB7CiAgICAgICAgICAgICAgICAgLy8g
V2UgbmVlZCB0byBkbyBhIFREWiBjaGVjayBoZXJlIGJlY2F1c2Ugd2UgY2FuJ3QgYWx3YXlzIHBy
b3ZlIHdlIG5lZWQgdG8gZW1pdCBURFogY2hlY2tzIHN0YXRpY2FsbHkuCiAgICAgICAgICAgICAg
ICAgaWYgKGluZGlyZWN0TG9hZEZvck9wZXJhbmQpCkBAIC0xMjQwLDcgKzEyMzYsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9wdXRfdG9fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKICAgICAgICAgY2FzZSBDbG9zdXJlVmFyOgogICAgICAgICBjYXNlIENsb3N1cmVW
YXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgogICAgICAgICAgICAgZW1pdFdyaXRlQmFycmllcihz
Y29wZSwgdmFsdWUsIFNob3VsZEZpbHRlclZhbHVlKTsKLSAgICAgICAgICAgIGVtaXRWYXJJbmpl
Y3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOworICAgICAg
ICAgICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29s
dmVUeXBlKSwgcmVnVDApOwogICAgICAgICAgICAgZW1pdFB1dENsb3N1cmVWYXIoc2NvcGUsICpv
cGVyYW5kU2xvdCwgdmFsdWUsIG1ldGFkYXRhLm1fd2F0Y2hwb2ludFNldCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBNb2R1bGVWYXI6CkBAIC0xMzEzLDcgKzEzMDksNyBAQCB2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcgogICAgIGxpbmtBbGxTbG93Q2FzZXMoaXRlcik7CiAKICAg
ICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFB1dFRvU2NvcGU+KCk7
Ci0gICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUgPSBjb3BpZWRHZXRQdXRJbmZvKGJ5dGVjb2Rl
KS5yZXNvbHZlVHlwZSgpOworICAgIFJlc29sdmVUeXBlIHJlc29sdmVUeXBlID0gYnl0ZWNvZGUu
bWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9nZXRQdXRJbmZvLnJlc29sdmVUeXBlKCk7
CiAgICAgaWYgKHJlc29sdmVUeXBlID09IE1vZHVsZVZhcikgewogICAgICAgICBKSVRTbG93UGF0
aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3Ro
cm93X3N0cmljdF9tb2RlX3JlYWRvbmx5X3Byb3BlcnR5X3dyaXRlX2Vycm9yKTsKICAgICAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCBjMzVlNDU0NDExMDYuLmRiYzQ3MDAzY2Ni
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmFzbQpAQCAtMjUwNCw2ICsyNTA0LDkgQEAgaWYgSklUCiAKICAgICBlbmQKIGVsc2UK
KyAgICBtYWNybyBsb2FkQmFzZWxpbmVKSVRDb25zdGFudFBvb2woKQorICAgIGVuZAorCiAgICAg
bWFjcm8gc2V0dXBSZXR1cm5Ub0Jhc2VsaW5lQWZ0ZXJDaGVja3BvaW50RXhpdElmTmVlZGVkKCkK
ICAgICBlbmQKIGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBmM2Q5N2NhNGY3Y2IuLjM2NjE2YTY5
NWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTQ5OSw2ICs0OTksOSBAQCBtYWNybyBjaGVja1N3
aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3NyKQog
ICAgICAgICAgICAgYnRweiByMCwgLnJlY292ZXIKICAgICAgICAgICAgIG1vdmUgcjEsIHNwCisK
KyAgICAgICAgICAgIGxvYWRCYXNlbGluZUpJVENvbnN0YW50UG9vbCgpCisKICAgICAgICAgICAg
IGptcCByMAogICAgICAgICAucmVjb3ZlcjoKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCi0tIAoyLjMxLjEKCg==
</data>
<flag name="commit-queue"
          id="463631"
          type_id="3"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439877</attachid>
            <date>2021-10-01 10:54:21 -0700</date>
            <delta_ts>2021-10-01 12:06:15 -0700</delta_ts>
            <desc>v6</desc>
            <filename>0001-JSC-32bit-Fix-build-after-unlinked-baseline-JIT.patch</filename>
            <type>text/plain</type>
            <size>30264</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBhMGUwOWI1NTE4YzU0MWIwMzc3OGMzODU0OGVmYjI4ODRjODA5OGQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogU3VuLCAyNiBTZXAgMjAyMSAxMDo0NDoxMiArMDIwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdWzMyYml0XSBGaXggYnVpbGQgYWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklU
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODAzCgpSZXZpZXdl
ZCBieSBTYWFtIEJhcmF0aS4KClRoaXMgaXMgZW5vdWdoIHRvIG1ha2UgdGhpbmdzIGJ1aWxkLCBi
dXQgcHJldHR5IG11Y2ggbm90aGluZyB3b3Jrcwp5ZXQuIFdpbGwgZml4IGluIGEgZm9sbG93LXVw
LCB0aGlzIHdheSB3ZSBhdCBsZWFzdCBnaXZlIHBlb3BsZSBhCmNoYW5jZSBhdCBub3QgaW50cm9k
dWNpbmcgbW9yZSBidWlsZCByZWdyZXNzaW9ucy4KCihXaXRoIHNvbWUgY29kZSBieSBNaWtoYWls
IFIuIEdhZGVsaGEgYW5kIEdlemEgTG9yZSkKCiogQ01ha2VMaXN0cy50eHQ6CiogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNo
MzIpOgooSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CiogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyTUlQUy5oOgooSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmJyYW5jaEFk
ZDMyKToKKiBieXRlY29kZS9DYWxsTGlua0luZm8uaDoKKEpTQzo6Q2FsbExpbmtJbmZvOjphZGRy
ZXNzT2ZNYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyk6Ciogaml0L0pJVC5oOgoqIGppdC9K
SVRDYWxsMzJfNjQuY3BwOgooSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgoqIGppdC9KSVRJbmxp
bmVzLmg6CihKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZSk6CihKU0M6OkpJVDo6ZW1p
dFZhbHVlUHJvZmlsaW5nU2l0ZUlmUHJvZmlsZWRPcGNvZGUpOgooSlNDOjpKSVQ6OmVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCk6Ciogaml0L0pJVE9wY29kZXMuY3BwOgooSlNDOjpKSVQ6
OmVtaXRfb3BfbG9vcF9oaW50KToKKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgooSlNDOjpK
SVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayk6Ciogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQu
Y3BwOgooSlNDOjpKSVQ6OmVtaXRIYXNQcml2YXRlU2xvdyk6CihKU0M6OkpJVDo6ZW1pdFNsb3df
b3BfaGFzX3ByaXZhdGVfbmFtZSk6CihKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3ByaXZhdGVf
YnJhbmQpOgooSlNDOjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6CihKU0M6OkpJVDo6ZW1pdF9v
cF9yZXNvbHZlX3Njb3BlKToKKEpTQzo6SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKEpT
Qzo6SklUOjplbWl0UHV0R2xvYmFsVmFyaWFibGVJbmRpcmVjdCk6CihKU0M6OkpJVDo6ZW1pdF9v
cF9wdXRfdG9fc2NvcGUpOgooSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6CihK
U0M6OkpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKiBsbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbToKKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgot
LS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICB8ICAyICsK
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICB8IDQ2ICsrKysr
KysrKysKIC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oICAgICAgICAgICB8IDM1
ICsrKy0tLS0tCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oICAgICAgICAgICAg
fCA4OSArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q2FsbExpbmtJbmZvLmggfCAgOSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCAg
ICAgICAgICAgICAgIHwgMTIgKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwz
Ml82NC5jcHAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVz
LmggICAgICAgIHwgMzQgKysrKysrLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzLmNwcCAgICAgIHwgIDQgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwICB8IDIwICsrLS0tCiAuLi4vaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
ICAgICAgICAgICAgfCAzOCArKysrLS0tLQogLi4uL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtICAgICAgICAgICAgIHwgIDMgKwogLi4uL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20gICAgICAgIHwgIDMgKwogMTMgZmlsZXMgY2hhbmdlZCwgMjM2IGluc2VydGlvbnMoKyks
IDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4
ODAyZGMyYzdmNzguLmY0YWM2OGM5MjY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtODM5LDYgKzgzOSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgaml0L0Fzc2VtYmx5SGVscGVycy5oCiAgICAgaml0L0Fzc2VtYmx5
SGVscGVyc1Nwb29sZXJzLmgKICAgICBqaXQvQmFzZWxpbmVKSVRDb2RlLmgKKyAgICBqaXQvQ2Fs
bEZyYW1lU2h1ZmZsZURhdGEuaAogICAgIGppdC9DQ2FsbEhlbHBlcnMuaAogICAgIGppdC9FeGVj
dXRhYmxlQWxsb2NhdG9yLmgKICAgICBqaXQvRXhlY3V0YWJsZU1lbW9yeUhhbmRsZS5oCkBAIC04
NTksNiArODYwLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBqaXQvUmVnLmgKICAgICBqaXQvUmVnaXN0ZXJBdE9mZnNldC5oCiAgICAgaml0L1Jl
Z2lzdGVyQXRPZmZzZXRMaXN0LmgKKyAgICBqaXQvUmVnaXN0ZXJNYXAuaAogICAgIGppdC9SZWdp
c3RlclNldC5oCiAgICAgaml0L1NuaXBwZXQuaAogICAgIGppdC9TbmlwcGV0UGFyYW1zLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBjNTYzYzJmZWUyZC4uNWMwZTVlOWUyYjk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAyMS0xMC0wMSAgWGFuIEzD
s3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggYnVpbGQg
YWZ0ZXIgdW5saW5rZWQgYmFzZWxpbmUgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJh
cmF0aS4KKworICAgICAgICBUaGlzIGlzIGVub3VnaCB0byBtYWtlIHRoaW5ncyBidWlsZCwgYnV0
IHByZXR0eSBtdWNoIG5vdGhpbmcgd29ya3MKKyAgICAgICAgeWV0LiBXaWxsIGZpeCBpbiBhIGZv
bGxvdy11cCwgdGhpcyB3YXkgd2UgYXQgbGVhc3QgZ2l2ZSBwZW9wbGUgYQorICAgICAgICBjaGFu
Y2UgYXQgbm90IGludHJvZHVjaW5nIG1vcmUgYnVpbGQgcmVncmVzc2lvbnMuCisKKyAgICAgICAg
KFdpdGggc29tZSBjb2RlIGJ5IE1pa2hhaWwgUi4gR2FkZWxoYSBhbmQgR2V6YSBMb3JlKQorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YnJhbmNoMzIp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpicmFuY2hBZGQzMik6CisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNy
b0Fzc2VtYmxlck1JUFM6OmJyYW5jaEFkZDMyKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlu
a0luZm8uaDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjphZGRyZXNzT2ZNYXhBcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGpp
dC9KSVRDYWxsMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVPcENhbGwpOgor
ICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVl
UHJvZmlsaW5nU2l0ZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZUlmUHJvZmlsZWRPcGNvZGUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRBcnJheVByb2ZpbGlu
Z1NpdGVXaXRoQ2VsbCk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRWYXJJbmplY3Rpb25DaGVjayk6Cisg
ICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRIYXNQcml2YXRlU2xvdyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bf
aGFzX3ByaXZhdGVfbmFtZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX3By
aXZhdGVfYnJhbmQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRSZXNvbHZlQ2xvc3VyZSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9yZXNvbHZlX3Njb3BlKToKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0UHV0
R2xvYmFsVmFyaWFibGVJbmRpcmVjdCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRf
dG9fc2NvcGUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF90b19zY29wZSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNrKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorCiAyMDIxLTEwLTAxICBPbGl2aWVyIEJsaW4g
IDxvbGl2aWVyLmJsaW5Ac29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW0pTQ11bR0xpYl0gRml4
IHR5cG8gaW4gV3JhcHBlck1hcCBjcmVhdGlvbiBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IGRmNTFl
OTUyZGRjZC4uMmVmNDg2MDMxYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTYxMCw3ICsxNjEwLDE0IEBA
IHB1YmxpYzoKIAogICAgIEp1bXAgYnJhbmNoMzIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBS
ZWdpc3RlcklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQpCiAgICAgewotICAgICAgICBtX2Fzc2Vt
Ymxlci5jbXAobGVmdCwgcmlnaHQpOworICAgICAgICBpZiAobGVmdCA9PSBBUk1SZWdpc3RlcnM6
OnNwKSB7CisgICAgICAgICAgICBtb3ZlKGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuY21wKGRhdGFUZW1wUmVnaXN0ZXIsIHJpZ2h0KTsKKyAgICAgICAg
fSBlbHNlIGlmIChyaWdodCA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CisgICAgICAgICAgICBtb3Zl
KHJpZ2h0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcChs
ZWZ0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5jbXAobGVmdCwgcmlnaHQpOwogICAgICAgICByZXR1cm4gSnVtcChtYWtlQnJhbmNo
KGNvbmQpKTsKICAgICB9CiAKQEAgLTE4NDAsMjcgKzE4NDcsMTMgQEAgcHVibGljOgogCiAgICAg
SnVtcCBicmFuY2hBZGQzMihSZXN1bHRDb25kaXRpb24gY29uZCwgVHJ1c3RlZEltbTMyIGltbSwg
QWJzb2x1dGVBZGRyZXNzIGRlc3QpCiAgICAgewotICAgICAgICAvLyBNb3ZlIHRoZSBoaWdoIGJp
dHMgb2YgdGhlIGFkZHJlc3MgaW50byBhZGRyZXNzVGVtcFJlZ2lzdGVyLAotICAgICAgICAvLyBh
bmQgbG9hZCB0aGUgdmFsdWUgaW50byBkYXRhVGVtcFJlZ2lzdGVyLgotICAgICAgICBtb3ZlKFRy
dXN0ZWRJbW1QdHIoZGVzdC5tX3B0ciksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICBt
X2Fzc2VtYmxlci5sZHIoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3RlciwgQVJN
VGh1bWJJbW1lZGlhdGU6Om1ha2VVSW50MTYoMCkpOwotCi0gICAgICAgIC8vIERvIHRoZSBhZGQu
Ci0gICAgICAgIEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjpt
YWtlRW5jb2RlZEltbShpbW0ubV92YWx1ZSk7Ci0gICAgICAgIGlmIChhcm1JbW0uaXNWYWxpZCgp
KQotICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkX1MoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRl
bXBSZWdpc3RlciwgYXJtSW1tKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBJZiB0
aGUgb3BlcmFuZCBkb2VzIG5vdCBmaXQgaW50byBhbiBpbW1lZGlhdGUgdGhlbiBsb2FkIGl0IHRl
bXBvcmFyaWx5Ci0gICAgICAgICAgICAvLyBpbnRvIGFkZHJlc3NUZW1wUmVnaXN0ZXI7IHNpbmNl
IHdlJ3JlIG92ZXJ3cml0aW5nIGFkZHJlc3NUZW1wUmVnaXN0ZXIKLSAgICAgICAgICAgIC8vIHdl
J2xsIG5lZWQgdG8gcmVsb2FkIGl0IHdpdGggdGhlIGhpZ2ggYml0cyBvZiB0aGUgYWRkcmVzcyBh
ZnRlcndhcmRzLgotICAgICAgICAgICAgbW92ZShpbW0sIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwot
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkX1MoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzc1RlbXBSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW1QdHIoZGVzdC5tX3B0ciksIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgLy8gU3RvcmUgdGhlIHJlc3VsdC4KLSAgICAgICAgbV9hc3NlbWJsZXIuc3RyKGRhdGFU
ZW1wUmVnaXN0ZXIsIGFkZHJlc3NUZW1wUmVnaXN0ZXIsIEFSTVRodW1iSW1tZWRpYXRlOjptYWtl
VUludDE2KDApKTsKKyAgICAgICAgYWRkMzIoaW1tLCBkZXN0KTsKKyAgICAgICAgcmV0dXJuIEp1
bXAobWFrZUJyYW5jaChjb25kKSk7CisgICAgfQogCisgICAgSnVtcCBicmFuY2hBZGQzMihSZXN1
bHRDb25kaXRpb24gY29uZCwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBkZXN0KQorICAgIHsK
KyAgICAgICAgYWRkMzIoaW1tLCBkZXN0KTsKICAgICAgICAgcmV0dXJuIEp1bXAobWFrZUJyYW5j
aChjb25kKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCAzZTNhZTJhZmFmMGMuLjU5ZTcyYWQ1NTAz
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oCkBAIC0yMzU0LDYgKzIzNTQsOTUgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gSnVtcCgpOwogICAgIH0KIAorICAgIEp1bXAgYnJhbmNoQWRkMzIoUmVzdWx0Q29uZGl0aW9u
IGNvbmQsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAgICAgIEFT
U0VSVCgoY29uZCA9PSBPdmVyZmxvdykgfHwgKGNvbmQgPT0gU2lnbmVkKSB8fCAoY29uZCA9PSBQ
b3NpdGl2ZU9yWmVybykgfHwgKGNvbmQgPT0gWmVybykgfHwgKGNvbmQgPT0gTm9uWmVybykpOwor
ICAgICAgICBpZiAoY29uZCA9PSBPdmVyZmxvdykgeworICAgICAgICAgICAgaWYgKG1fZml4ZWRX
aWR0aCkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICBsb2FkICAgIGRl
c3QsIGRhdGFUZW1wCisgICAgICAgICAgICAgICAgICBtb3ZlICAgIGltbSwgaW1tVGVtcAorICAg
ICAgICAgICAgICAgICAgeG9yICAgICBjbXBUZW1wLCBkYXRhVGVtcCwgaW1tVGVtcAorICAgICAg
ICAgICAgICAgICAgYWRkdSAgICBkYXRhVGVtcCwgZGF0YVRlbXAsIGltbVRlbXAKKyAgICAgICAg
ICAgICAgICAgIHN0b3JlICAgZGF0YVRlbXAsIGRlc3QKKyAgICAgICAgICAgICAgICAgIGJsdHog
ICAgY21wVGVtcCwgTm9fb3ZlcmZsb3cgICAgIyBkaWZmIHNpZ24gYml0IC0+IG5vIG92ZXJmbG93
CisgICAgICAgICAgICAgICAgICB4b3IgICAgIGNtcFRlbXAsIGRhdGFUZW1wLCBpbW1UZW1wCisg
ICAgICAgICAgICAgICAgICBiZ2V6ICAgIGNtcFRlbXAsIE5vX292ZXJmbG93ICAgICMgc2FtZSBz
aWduIGJpZyAtPiBubyBvdmVyZmxvdworICAgICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAg
ICAgICAgICBiICAgICAgIE92ZXJmbG93CisgICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAg
ICAgICAgICAgIGIgICAgICAgTm9fb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICAgIG5vcAorICAg
ICAgICAgICAgICAgICAgbm9wCisgICAgICAgICAgICAgICAgICBub3AKKyAgICAgICAgICAgICAg
ICAgIE5vX292ZXJmbG93OgorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbG9h
ZDMyKGRlc3QsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1vdmUoaW1tLCBp
bW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnhvckluc24oY21w
VGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAg
ICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZHUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdp
c3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICBzdG9yZTMyKGRhdGFUZW1w
UmVnaXN0ZXIsIGRlc3QpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJsdHooY21wVGVt
cFJlZ2lzdGVyLCA5KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci54b3JJbnNuKGNtcFRl
bXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5iZ2V6KGNtcFRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmx3KGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QuYmFzZSwgZGVzdC5v
ZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA+PSAwICYmIGltbS5tX3Zh
bHVlICA8PSAzMjc2NykgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKGRhdGFUZW1wUmVnaXN0
ZXIsIGNtcFRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZGl1KGRhdGFUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbS5tX3ZhbHVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmx0eihjbXBUZW1wUmVnaXN0ZXIsIDkpOwor
ICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0
LmJhc2UsIGRlc3Qub2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmdl
eihkYXRhVGVtcFJlZ2lzdGVyLCA3KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
bm9wKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbW0ubV92YWx1ZSA+PSAtMzI3Njgg
JiYgaW1tLm1fdmFsdWUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1vdmUoZGF0YVRlbXBS
ZWdpc3RlciwgY21wVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuYWRkaXUoZGF0YVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tLm1fdmFsdWUp
OworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5iZ2V6KGNtcFRlbXBSZWdpc3Rlciwg
OSk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN3KGRhdGFUZW1wUmVnaXN0ZXIs
IGRlc3QuYmFzZSwgZGVzdC5vZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5ibHR6KGNtcFRlbXBSZWdpc3RlciwgNyk7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLm5vcCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IG1vdmUoaW1tLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci54b3JJbnNuKGNtcFRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgaW1tVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkdShkYXRhVGVtcFJl
Z2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBpbW1UZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5ibHR6KGNtcFRlbXBSZWdpc3RlciwgMTApOworICAgICAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zdyhkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0LmJhc2UsIGRl
c3Qub2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIueG9ySW5zbihjbXBU
ZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGltbVRlbXBSZWdpc3Rlcik7CisgICAgICAg
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJnZXooY21wVGVtcFJlZ2lzdGVyLCA3KTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubm9wKCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGp1bXAoKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAobV9maXhlZFdpZHRoKSB7CisgICAgICAgICAgICBtb3ZlKGltbSwgaW1tVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgICAgIGxvYWQzMihkZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgICAgIGFkZDMyKGltbVRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAg
ICAgICBzdG9yZTMyKGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIubHcoZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBk
ZXN0Lm9mZnNldCk7CisgICAgICAgICAgICBhZGQzMihpbW0sIGRhdGFUZW1wUmVnaXN0ZXIpOwor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3coZGF0YVRlbXBSZWdpc3RlciwgZGVzdC5iYXNlLCBk
ZXN0Lm9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbmQgPT0gU2lnbmVkKSB7Cisg
ICAgICAgICAgICAvLyBDaGVjayBpZiBkZXN0IGlzIG5lZ2F0aXZlLgorICAgICAgICAgICAgbV9h
c3NlbWJsZXIuc2x0KGNtcFRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3RlciwgTUlQU1JlZ2lz
dGVyczo6emVybyk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoTm90RXF1YWwoY21wVGVtcFJl
Z2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29u
ZCA9PSBQb3NpdGl2ZU9yWmVybykgeworICAgICAgICAgICAgLy8gQ2hlY2sgaWYgZGVzdCBpcyBu
b3QgbmVnYXRpdmUuCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zbHQoY21wVGVtcFJlZ2lzdGVy
LCBkYXRhVGVtcFJlZ2lzdGVyLCBNSVBTUmVnaXN0ZXJzOjp6ZXJvKTsKKyAgICAgICAgICAgIHJl
dHVybiBicmFuY2hFcXVhbChjbXBUZW1wUmVnaXN0ZXIsIE1JUFNSZWdpc3RlcnM6Onplcm8pOwor
ICAgICAgICB9CisgICAgICAgIGlmIChjb25kID09IFplcm8pCisgICAgICAgICAgICByZXR1cm4g
YnJhbmNoRXF1YWwoZGF0YVRlbXBSZWdpc3RlciwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAg
ICAgIGlmIChjb25kID09IE5vblplcm8pCisgICAgICAgICAgICByZXR1cm4gYnJhbmNoTm90RXF1
YWwoZGF0YVRlbXBSZWdpc3RlciwgTUlQU1JlZ2lzdGVyczo6emVybyk7CisgICAgICAgIEFTU0VS
VCgwKTsKKyAgICAgICAgcmV0dXJuIEp1bXAoKTsKKyAgICB9CisKICAgICBKdW1wIGJyYW5jaE11
bDMyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3Jj
MiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKChjb25kID09IE92ZXJm
bG93KSB8fCAoY29uZCA9PSBTaWduZWQpIHx8IChjb25kID09IFplcm8pIHx8IChjb25kID09IE5v
blplcm8pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8u
aAppbmRleCA0YjgxMjBlMjY1ODYuLjBmNWM1MmJiY2NlNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIkNhbGxGcmFtZVNodWZmbGVEYXRhLmgiCiAjaW5jbHVkZSAi
Q2FsbE1vZGUuaCIKICNpbmNsdWRlICJDb2RlTG9jYXRpb24uaCIKICNpbmNsdWRlICJDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kLmgiCkBAIC00MSw3ICs0Miw2IEBAIGNsYXNzIENDYWxsSGVscGVyczsK
IGNsYXNzIEZ1bmN0aW9uQ29kZUJsb2NrOwogY2xhc3MgSlNGdW5jdGlvbjsKIGVudW0gT3Bjb2Rl
SUQgOiB1bnNpZ25lZDsKLXN0cnVjdCBDYWxsRnJhbWVTaHVmZmxlRGF0YTsKIAogc3RydWN0IFVu
bGlua2VkQ2FsbExpbmtJbmZvOwogCkBAIC0zMTQsNiArMzE0LDEzIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDYWxsTGlua0luZm8sIG1fbWF4QXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMpOwogICAgIH0KIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgdWlu
dDMyX3QqIGFkZHJlc3NPZk1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAmbV9tYXhBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIHVpbnQzMl90IG1heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX21heEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKaW5kZXggNWVkM2I4NGRlMTc3Li45ZWI3NjRjOTA0NGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMzQ1LDEyICszNDUsMTMgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHZhbHVlIHRvIHByb2ZpbGUgaXMg
aW4gcmVnVDAgYW5kIHRoYXQgcmVnVDMgaXMgYXZhaWxhYmxlIGZvcgogICAgICAgICAvLyBzY3Jh
dGNoLgotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJ5dGVj
b2RlPiB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmLCBHUFJSZWcp
OwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCeXRlY29kZT4gdm9pZCBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKGNvbnN0IEJ5dGVjb2RlJiwgSlNWYWx1ZVJlZ3MpOwotI2Vsc2UKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQogICAgICAgICB2b2lkIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoVmFsdWVQ
cm9maWxlJiwgSlNWYWx1ZVJlZ3MpOwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0
YT4gdm9pZCBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFkYXRhJiwgSlNWYWx1ZVJlZ3MpOwor
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZXRhZGF0YT4KKyAgICAgICAgc3RkOjplbmFibGVf
aWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJv
ZmlsZT46OnZhbHVlLCB2b2lkPgorICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKE1ldGFk
YXRhJiwgSlNWYWx1ZVJlZ3MpOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlSWZQcm9maWxlZE9wY29kZSguLi4pOwpAQCAtMzYzLDYgKzM2NCwxMSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEJ5dGVjb2RlPgogICAgICAg
ICB2b2lkIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChjb25zdCBCeXRlY29kZSYsIHB0
cmRpZmZfdCwgUmVnaXN0ZXJJRCBjZWxsR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpOwogCisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgdm9pZCBlbWl0QXJyYXlQcm9maWxpbmdTaXRl
V2l0aENlbGwoUmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKiAsIFJlZ2lzdGVySUQpOworICAgICAg
ICB2b2lkIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklELCBSZWdpc3Rl
cklEICwgUmVnaXN0ZXJJRCk7CisjZW5kaWYKKwogICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBP
cD4KICAgICAgICAgRUNNQU1vZGUgZWNtYU1vZGUoT3ApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENhbGwzMl82NC5jcHAKaW5kZXggMWNkNzRmNDY5NDg5Li4xZTA1ZTIwNWE4N2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwzMl82NC5jcHAKQEAgLTMxMCw3
ICszMTAsNyBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChjb25zdCBJbnN0cnVjdGlvbiogaW5z
dHJ1Y3Rpb24sIHVuc2lnbmVkIGNhbGxMaW5rSW5mb0luZAogCiAgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQoKTsKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfdGFpbF9jYWxsIHx8IG9wY29k
ZUlEID09IG9wX3RhaWxfY2FsbF92YXJhcmdzIHx8IG9wY29kZUlEID09IG9wX3RhaWxfY2FsbF9m
b3J3YXJkX2FyZ3VtZW50cykgewotICAgICAgICBhdXRvIHNsb3dQYXRocyA9IGluZm8tPmVtaXRU
YWlsQ2FsbEZhc3RQYXRoKCp0aGlzLCByZWdUMCwgcmVnVDIsIENhbGxMaW5rSW5mbzo6VXNlRGF0
YUlDOjpZZXMsIFsmXSB7CisgICAgICAgIGF1dG8gc2xvd1BhdGhzID0gaW5mby0+ZW1pdFRhaWxD
YWxsRGF0YUlDRmFzdFBhdGgoKnRoaXMsIHJlZ1QwLCByZWdUMiwgWyZdIHsKICAgICAgICAgICAg
IGVtaXRSZXN0b3JlQ2FsbGVlU2F2ZXMoKTsKICAgICAgICAgICAgIHByZXBhcmVGb3JUYWlsQ2Fs
bFNsb3cocmVnVDIpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVzLmgKaW5kZXggMWYzY2EzMTgzYTgzLi44NWM2YTg0OGJmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC0zMzQsNiArMzM0LDEyIEBAIGlubGluZSB2b2lkIEpJ
VDo6ZW1pdFZhbHVlUHJvZmlsaW5nU2l0ZShWYWx1ZVByb2ZpbGUmIHZhbHVlUHJvZmlsZSwgSlNW
YWx1ZVJlZ3MKICAgICBzdG9yZTMyKHZhbHVlLnBheWxvYWRHUFIoKSwgJmRlc2NyaXB0b3ItPmFz
Qml0cy5wYXlsb2FkKTsKICAgICBzdG9yZTMyKHZhbHVlLnRhZ0dQUigpLCAmZGVzY3JpcHRvci0+
YXNCaXRzLnRhZyk7CiB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIE1ldGFkYXRhPgorc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoTWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVl
UHJvZmlsZT46OnZhbHVlLCB2b2lkPiBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoTWV0YWRh
dGEmIG1ldGFkYXRhLCBKU1ZhbHVlUmVncyB2YWx1ZSkKK3sKKyAgICBlbWl0VmFsdWVQcm9maWxp
bmdTaXRlKHZhbHVlUHJvZmlsZUZvcihtZXRhZGF0YSwgbV9ieXRlY29kZUluZGV4LmNoZWNrcG9p
bnQoKSksIHZhbHVlKTsKK30KICNlbmRpZgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBPcD4KQEAgLTM0
MiwyMSArMzQ4LDI2IEBAIGlubGluZSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxkZWNs
dHlwZShPcDo6TWV0YWRhdGE6Om1fcHJvZmlsZSksIFZhbHVlUHJvCiAjaWYgVVNFKEpTVkFMVUU2
NCkKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLCByZWdUMCk7CiAjZWxzZQot
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKKyAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRl
KGJ5dGVjb2RlLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICNlbmRpZgogfQogCiBpbmxp
bmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGVJZlByb2ZpbGVkT3Bjb2RlKC4uLikg
eyB9CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQogdGVtcGxhdGU8dHlwZW5hbWUgQnl0ZWNvZGU+CiBp
bmxpbmUgdm9pZCBKSVQ6OmVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5
dGVjb2RlLCBKU1ZhbHVlUmVncyB2YWx1ZSkKIHsKICAgICBpZiAoIXNob3VsZEVtaXRQcm9maWxp
bmcoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBwdHJkaWZm
X3Qgb2Zmc2V0ID0gbV91bmxpbmtlZENvZGVCbG9jay0+bWV0YWRhdGEoKS5vZmZzZXRJbk1ldGFk
YXRhVGFibGUoYnl0ZWNvZGUpICsgdmFsdWVQcm9maWxlT2Zmc2V0Rm9yPEJ5dGVjb2RlPihtX2J5
dGVjb2RlSW5kZXguY2hlY2twb2ludCgpKSArIFZhbHVlUHJvZmlsZTo6b2Zmc2V0T2ZGaXJzdEJ1
Y2tldCgpOwogICAgIHN0b3JlNjQodmFsdWUuZ3ByKCksIEFkZHJlc3Moc19tZXRhZGF0YUdQUiwg
b2Zmc2V0KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BB
UkFNKGJ5dGVjb2RlKTsKKyAgICAvLyBGSVhNRS4KKyNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBCeXRlY29kZT4KQEAgLTM2NCw3ICszNzUsNiBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoY29uc3QgQnl0ZWNvZGUmIGJ5dGVjb2RlLCBHUFJSZWcgcmVzdWx0
UgogewogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUsIEpTVmFsdWVSZWdzKHJl
c3VsdFJlZykpOwogfQotI2VuZGlmCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBCeXRlY29kZT4KIGlu
bGluZSB2b2lkIEpJVDo6ZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKGNvbnN0IEJ5dGVj
b2RlJiBieXRlY29kZSwgcHRyZGlmZl90IG9mZnNldE9mQXJyYXlQcm9maWxlLCBSZWdpc3RlcklE
IGNlbGxHUFIsIFJlZ2lzdGVySUQgc2NyYXRjaEdQUikKQEAgLTM4MSw2ICszOTEsMjQgQEAgaW5s
aW5lIHZvaWQgSklUOjplbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoY29uc3QgQnl0ZWNv
ZGUmIGJ5dGVjb2RlLCBSZWdpc3QKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwo
Ynl0ZWNvZGUsIEJ5dGVjb2RlOjpNZXRhZGF0YTo6b2Zmc2V0T2ZBcnJheVByb2ZpbGUoKSArIEFy
cmF5UHJvZmlsZTo6b2Zmc2V0T2ZMYXN0U2VlblN0cnVjdHVyZUlEKCksIGNlbGxHUFIsIHNjcmF0
Y2hHUFIpOwogfQogCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKK2lubGluZSB2b2lkIEpJVDo6ZW1p
dEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKFJlZ2lzdGVySUQgY2VsbEdQUiwgQXJyYXlQcm9m
aWxlKiBhcnJheVByb2ZpbGUsIFJlZ2lzdGVySUQgc2NyYXRjaEdQUikKK3sKKyAgICBpZiAoc2hv
dWxkRW1pdFByb2ZpbGluZygpKSB7CisgICAgICAgIGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhjZWxsR1BSLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsK
KyAgICAgICAgc3RvcmUzMihzY3JhdGNoR1BSLCBhcnJheVByb2ZpbGUtPmFkZHJlc3NPZkxhc3RT
ZWVuU3RydWN0dXJlSUQoKSk7CisgICAgfQorfQorCitpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChSZWdpc3RlcklEIGNlbGxHUFIsIFJlZ2lzdGVySUQgYXJy
YXlQcm9maWxlR1BSLCBSZWdpc3RlcklEIHNjcmF0Y2hHUFIpCit7CisgICAgaWYgKHNob3VsZEVt
aXRQcm9maWxpbmcoKSkgeworICAgICAgICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
Y2VsbEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAg
ICAgIHN0b3JlMzIoc2NyYXRjaEdQUiwgQWRkcmVzcyhhcnJheVByb2ZpbGVHUFIsIEFycmF5UHJv
ZmlsZTo6b2Zmc2V0T2ZMYXN0U2VlblN0cnVjdHVyZUlEKCkpKTsKKyAgICB9Cit9CisjZW5kaWYK
KwogQUxXQVlTX0lOTElORSBpbnQzMl90IEpJVDo6Z2V0T3BlcmFuZENvbnN0YW50SW50KFZpcnR1
YWxSZWdpc3RlciBzcmMpCiB7CiAgICAgcmV0dXJuIGdldENvbnN0YW50T3BlcmFuZChzcmMpLmFz
SW50MzIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGZj
M2FiZDZmZDhiMS4uZjkzYzA4ZjRhMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKQEAgLTE0NjYsMTAgKzE0NjYsMTIgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9v
cF9oaW50KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKIAogI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MoR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIpOworICAgICAgICBsb2FkR2xvYmFsT2JqZWN0KHJlc3VsdFJlZ3MuZ3ByKCkpOwogI2Vsc2UK
ICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyhHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIs
IEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyAgICAgICAgbG9hZEdsb2JhbE9iamVjdChyZXN1
bHRSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCByZXN1bHRSZWdzLnRhZ0dQUigpKTsKICNlbmRpZgotICAgICAgICBsb2FkR2xv
YmFsT2JqZWN0KHJlc3VsdFJlZ3MuZ3ByKCkpOwogICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFs
aWdubWVudCgpOwogICAgICAgICBlbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7CiAgICAgICAgIGVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDlhMmE3Y2FhYzliMy4uYzE4NjM2OTk2MGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAt
MTgyMSwxNiArMTgyMSw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfcHJpdmF0ZV9icmFu
ZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWCiAgICAgZW1pdEhhc1By
aXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBieXRlY29kZS5tX2Jhc2UsIGJ5dGVjb2RlLm1fYnJh
bmQsIEFjY2Vzc1R5cGU6Okhhc1ByaXZhdGVCcmFuZCk7CiB9CiAKLXZvaWQgSklUOjplbWl0VmFy
SW5qZWN0aW9uQ2hlY2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgR1BSUmVnIHNjcmF0
Y2hHUFIpCi17Ci0gICAgaWYgKCFuZWVkc1ZhckluamVjdGlvbkNoZWNrcykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgbG9hZEdsb2JhbE9iamVjdChzY3JhdGNoR1BSKTsKLSAgICBsb2FkUHRyKEFk
ZHJlc3Moc2NyYXRjaEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3Zhcklu
amVjdGlvbldhdGNocG9pbnQpKSwgc2NyYXRjaEdQUik7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNo
OChFcXVhbCwgQWRkcmVzcyhzY3JhdGNoR1BSLCBXYXRjaHBvaW50U2V0OjpvZmZzZXRPZlN0YXRl
KCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRS
ZXNvbHZlQ2xvc3VyZShWaXJ0dWFsUmVnaXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgc2NvcGUs
IGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MsIHVuc2lnbmVkIGRlcHRoKQogewogICAgIGVt
aXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVjdGlvbkNoZWNrcywgcmVnVDApOwpAQCAt
MzE5MSw2ICszMTgxLDE2IEBAIHZvaWQgSklUOjplbWl0V3JpdGVCYXJyaWVyKEdQUlJlZyBvd25l
cikKICAgICBvd25lcklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsodGhpcyk7CiB9CiAKK3ZvaWQg
SklUOjplbWl0VmFySW5qZWN0aW9uQ2hlY2soYm9vbCBuZWVkc1ZhckluamVjdGlvbkNoZWNrcywg
R1BSUmVnIHNjcmF0Y2hHUFIpCit7CisgICAgaWYgKCFuZWVkc1ZhckluamVjdGlvbkNoZWNrcykK
KyAgICAgICAgcmV0dXJuOworCisgICAgbG9hZEdsb2JhbE9iamVjdChzY3JhdGNoR1BSKTsKKyAg
ICBsb2FkUHRyKEFkZHJlc3Moc2NyYXRjaEdQUiwgT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2Jq
ZWN0LCBtX3ZhckluamVjdGlvbldhdGNocG9pbnQpKSwgc2NyYXRjaEdQUik7CisgICAgYWRkU2xv
d0Nhc2UoYnJhbmNoOChFcXVhbCwgQWRkcmVzcyhzY3JhdGNoR1BSLCBXYXRjaHBvaW50U2V0Ojpv
ZmZzZXRPZlN0YXRlKCkpLCBUcnVzdGVkSW1tMzIoSXNJbnZhbGlkYXRlZCkpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggNWY4
NjJhNTdmZTAwLi4yNzIxNzA1MzU5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtODQ2LDkgKzg0NiwxMiBAQCB2
b2lkIEpJVDo6ZW1pdEhhc1ByaXZhdGUoVmlydHVhbFJlZ2lzdGVyIGRzdCwgVmlydHVhbFJlZ2lz
dGVyIGJhc2UsIFZpcnR1YWxSZWdpcwogICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7
CiB9CiAKLXZvaWQgSklUOjplbWl0SGFzUHJpdmF0ZVNsb3coVmlydHVhbFJlZ2lzdGVyIGRzdCwg
QWNjZXNzVHlwZSB0eXBlKQordm9pZCBKSVQ6OmVtaXRIYXNQcml2YXRlU2xvdyhWaXJ0dWFsUmVn
aXN0ZXIgZHN0LCBWaXJ0dWFsUmVnaXN0ZXIgYmFzZSwgVmlydHVhbFJlZ2lzdGVyIHByb3BlcnR5
LCBBY2Nlc3NUeXBlIHR5cGUpCiB7CisgICAgLy8gRklYTUU6IDY0LWJpdCBzZWVtcyB0byBhbHNv
IGlnbm9yZSBiYXNlL3Byb3BlcnR5LgogICAgIEFTU0VSVCh0eXBlID09IEFjY2Vzc1R5cGU6Okhh
c1ByaXZhdGVOYW1lIHx8IHR5cGUgPT0gQWNjZXNzVHlwZTo6SGFzUHJpdmF0ZUJyYW5kKTsKKyAg
ICBVTlVTRURfUEFSQU0oYmFzZSk7CisgICAgVU5VU0VEX1BBUkFNKHByb3BlcnR5KTsKIAogICAg
IEpJVEluQnlWYWxHZW5lcmF0b3ImIGdlbiA9IG1faW5CeVZhbHNbbV9pbkJ5VmFsSW5kZXgrK107
CiAgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CkBAIC04NjksNyArODcyLDcgQEAg
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19wcml2YXRlX25hbWUoY29uc3QgSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgVmUKICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAg
ICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlTmFt
ZT4oKTsKLSAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3QsIEFjY2Vzc1R5cGU6
Okhhc1ByaXZhdGVOYW1lKTsKKyAgICBlbWl0SGFzUHJpdmF0ZVNsb3coYnl0ZWNvZGUubV9kc3Qs
IGJ5dGVjb2RlLm1fYmFzZSwgYnl0ZWNvZGUubV9wcm9wZXJ0eSwgQWNjZXNzVHlwZTo6SGFzUHJp
dmF0ZU5hbWUpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfcHJpdmF0ZV9icmFuZChjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAtODgzLDE5ICs4ODYsMTIgQEAg
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFYKICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCiAg
ICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlQnJh
bmQ+KCk7Ci0gICAgZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0LCBBY2Nlc3NUeXBl
OjpIYXNQcml2YXRlQnJhbmQpOwotfQotCi12b2lkIEpJVDo6ZW1pdFZhckluamVjdGlvbkNoZWNr
KGJvb2wgbmVlZHNWYXJJbmplY3Rpb25DaGVja3MpCi17Ci0gICAgaWYgKCFuZWVkc1ZhckluamVj
dGlvbkNoZWNrcykKLSAgICAgICAgcmV0dXJuOwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoRXF1
YWwsIEFic29sdXRlQWRkcmVzcyhtX3Byb2ZpbGVkQ29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+
dmFySW5qZWN0aW9uV2F0Y2hwb2ludCgpLT5hZGRyZXNzT2ZTdGF0ZSgpKSwgVHJ1c3RlZEltbTMy
KElzSW52YWxpZGF0ZWQpKSk7CisgICAgZW1pdEhhc1ByaXZhdGVTbG93KGJ5dGVjb2RlLm1fZHN0
LCBieXRlY29kZS5tX2Jhc2UsIGJ5dGVjb2RlLm1fYnJhbmQsIEFjY2Vzc1R5cGU6Okhhc1ByaXZh
dGVCcmFuZCk7CiB9CiAKIHZvaWQgSklUOjplbWl0UmVzb2x2ZUNsb3N1cmUoVmlydHVhbFJlZ2lz
dGVyIGRzdCwgVmlydHVhbFJlZ2lzdGVyIHNjb3BlLCBib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hl
Y2tzLCB1bnNpZ25lZCBkZXB0aCkKIHsKLSAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNW
YXJJbmplY3Rpb25DaGVja3MpOworICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1Zhcklu
amVjdGlvbkNoZWNrcywgcmVnVDApOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCByZWdUMSk7CiAgICAgZW1pdExvYWRQYXlsb2FkKHNjb3BlLCByZWdUMCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlcHRoOyArK2kpCkBAIC05MTgsNyArOTE0LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgICAgICBjYXNlIEdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlv
bkNoZWNrczogewogICAgICAgICAgICAgSlNTY29wZSogY29uc3RhbnRTY29wZSA9IEpTU2NvcGU6
OmNvbnN0YW50U2NvcGVGb3JDb2RlQmxvY2socmVzb2x2ZVR5cGUsIG1fcHJvZmlsZWRDb2RlQmxv
Y2spOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY29uc3RhbnRTY29wZSk7Ci0gICAgICAg
ICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2
ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVkc1ZhckluamVj
dGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGxvYWQzMigmbWV0
YWRhdGEubV9nbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoLCByZWdUMSk7CiAgICAgICAgICAgICBh
ZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKG1fcHJvZmlsZWRD
b2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5hZGRyZXNzT2ZHbG9iYWxMZXhpY2FsQmluZGluZ0Vw
b2NoKCkpLCByZWdUMSkpOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksIHJlZ1QxKTsKQEAgLTkzMyw3ICs5MjksNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9y
ZXNvbHZlX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
ICAgIGNhc2UgR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6IHsKICAgICAg
ICAgICAgIEpTU2NvcGUqIGNvbnN0YW50U2NvcGUgPSBKU1Njb3BlOjpjb25zdGFudFNjb3BlRm9y
Q29kZUJsb2NrKHJlc29sdmVUeXBlLCBtX3Byb2ZpbGVkQ29kZUJsb2NrKTsKICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKGNvbnN0YW50U2NvcGUpOwotICAgICAgICAgICAgZW1pdFZhckluamVj
dGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7CisgICAgICAg
ICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3MocmVzb2x2
ZVR5cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgcmVnVDEpOwogICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGNvbnN0YW50
U2NvcGUpLCByZWdUMCk7CiAgICAgICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDAp
OwpAQCAtMTA3Myw3ICsxMDY5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2Zyb21fc2NvcGUo
Y29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAgICAgY2FzZSBHbG9i
YWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgogICAgICAgICBjYXNlIEdsb2JhbExleGljYWxW
YXI6CiAgICAgICAgIGNhc2UgR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6
Ci0gICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVj
a3MocmVzb2x2ZVR5cGUpKTsKKyAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVk
c1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSksIHJlZ1QwKTsKICAgICAgICAgICAgIGlm
IChpbmRpcmVjdExvYWRGb3JPcGVyYW5kKQogICAgICAgICAgICAgICAgIGVtaXRHZXRWYXJGcm9t
SW5kaXJlY3RQb2ludGVyKGJpdHdpc2VfY2FzdDxKU1ZhbHVlKio+KG9wZXJhbmRTbG90KSwgcmVn
VDEsIHJlZ1QwKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTEwODMsNyArMTA3OSw3IEBAIHZvaWQg
SklUOjplbWl0X29wX2dldF9mcm9tX3Njb3BlKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDbG9zdXJlVmFyOgog
ICAgICAgICBjYXNlIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgotICAgICAgICAg
ICAgZW1pdFZhckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVU
eXBlKSk7CisgICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rp
b25DaGVja3MocmVzb2x2ZVR5cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBlbWl0R2V0Q2xvc3Vy
ZVZhcihzY29wZSwgKm9wZXJhbmRTbG90KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIER5bmFtaWM6CkBAIC0xMTcyLDcgKzExNjgsNyBAQCB2b2lkIEpJVDo6ZW1pdFB1dEdsb2Jh
bFZhcmlhYmxlSW5kaXJlY3QoSlNWYWx1ZSoqIGFkZHJlc3NPZk9wZXJhbmQsIFZpcnR1YWxSZWdp
cwogewogICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOwogICAgIGxvYWRQdHIoaW5k
aXJlY3RXYXRjaHBvaW50U2V0LCByZWdUMik7Ci0gICAgZW1pdE5vdGlmeVdyaXRlKHJlZ1QyKTsK
KyAgICBlbWl0Tm90aWZ5V3JpdGUoKmluZGlyZWN0V2F0Y2hwb2ludFNldCk7IC8vIEZJWE1FOiA/
PwogICAgIGxvYWRQdHIoYWRkcmVzc09mT3BlcmFuZCwgcmVnVDIpOwogICAgIHN0b3JlMzIocmVn
VDEsIEFkZHJlc3MocmVnVDIsIFRhZ09mZnNldCkpOwogICAgIHN0b3JlMzIocmVnVDAsIEFkZHJl
c3MocmVnVDIsIFBheWxvYWRPZmZzZXQpKTsKQEAgLTExOTMsNyArMTE4OSw3IEBAIHZvaWQgSklU
OjplbWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEobV9wcm9maWxlZENv
ZGVCbG9jayk7CiAgICAgVmlydHVhbFJlZ2lzdGVyIHNjb3BlID0gYnl0ZWNvZGUubV9zY29wZTsK
ICAgICBWaXJ0dWFsUmVnaXN0ZXIgdmFsdWUgPSBieXRlY29kZS5tX3ZhbHVlOwotICAgIEdldFB1
dEluZm8gZ2V0UHV0SW5mbyA9IGNvcGllZEdldFB1dEluZm8oYnl0ZWNvZGUpOworICAgIEdldFB1
dEluZm8gZ2V0UHV0SW5mbyA9IGJ5dGVjb2RlLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2sp
Lm1fZ2V0UHV0SW5mbzsKICAgICBSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSA9IGdldFB1dEluZm8u
cmVzb2x2ZVR5cGUoKTsKICAgICBTdHJ1Y3R1cmUqKiBzdHJ1Y3R1cmVTbG90ID0gbWV0YWRhdGEu
bV9zdHJ1Y3R1cmUuc2xvdCgpOwogICAgIHVpbnRwdHJfdCogb3BlcmFuZFNsb3QgPSByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdCo+KCZtZXRhZGF0YS5tX29wZXJhbmQpOwpAQCAtMTIyMCw4ICsx
MjE2LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X3RvX3Njb3BlKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgICAgICAgICBKU1Njb3BlKiBjb25zdGFudFNjb3Bl
ID0gSlNTY29wZTo6Y29uc3RhbnRTY29wZUZvckNvZGVCbG9jayhyZXNvbHZlVHlwZSwgbV9wcm9m
aWxlZENvZGVCbG9jayk7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChjb25zdGFudFNjb3Bl
KTsKICAgICAgICAgICAgIGVtaXRXcml0ZUJhcnJpZXIoY29uc3RhbnRTY29wZSwgdmFsdWUsIFNo
b3VsZEZpbHRlclZhbHVlKTsKLSAgICAgICAgICAgIGVtaXRWYXJJbmplY3Rpb25DaGVjayhuZWVk
c1ZhckluamVjdGlvbkNoZWNrcyhyZXNvbHZlVHlwZSkpOwotICAgICAgICAgICAgZW1pdFZhclJl
YWRPbmx5Q2hlY2socmVzb2x2ZVR5cGUpOworICAgICAgICAgICAgZW1pdFZhckluamVjdGlvbkNo
ZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSwgcmVnVDApOworICAgICAg
ICAgICAgZW1pdFZhclJlYWRPbmx5Q2hlY2socmVzb2x2ZVR5cGUsIHJlZ1QwKTsKICAgICAgICAg
ICAgIGlmICghaXNJbml0aWFsaXphdGlvbihnZXRQdXRJbmZvLmluaXRpYWxpemF0aW9uTW9kZSgp
KSAmJiAocmVzb2x2ZVR5cGUgPT0gR2xvYmFsTGV4aWNhbFZhciB8fCByZXNvbHZlVHlwZSA9PSBH
bG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcykpIHsKICAgICAgICAgICAgICAg
ICAvLyBXZSBuZWVkIHRvIGRvIGEgVERaIGNoZWNrIGhlcmUgYmVjYXVzZSB3ZSBjYW4ndCBhbHdh
eXMgcHJvdmUgd2UgbmVlZCB0byBlbWl0IFREWiBjaGVja3Mgc3RhdGljYWxseS4KICAgICAgICAg
ICAgICAgICBpZiAoaW5kaXJlY3RMb2FkRm9yT3BlcmFuZCkKQEAgLTEyNDAsNyArMTIzNiw3IEBA
IHZvaWQgSklUOjplbWl0X29wX3B1dF90b19zY29wZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgICAgICBjYXNlIENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgQ2xv
c3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAgICAgICAgICBlbWl0V3JpdGVCYXJy
aWVyKHNjb3BlLCB2YWx1ZSwgU2hvdWxkRmlsdGVyVmFsdWUpOwotICAgICAgICAgICAgZW1pdFZh
ckluamVjdGlvbkNoZWNrKG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKHJlc29sdmVUeXBlKSk7Cisg
ICAgICAgICAgICBlbWl0VmFySW5qZWN0aW9uQ2hlY2sobmVlZHNWYXJJbmplY3Rpb25DaGVja3Mo
cmVzb2x2ZVR5cGUpLCByZWdUMCk7CiAgICAgICAgICAgICBlbWl0UHV0Q2xvc3VyZVZhcihzY29w
ZSwgKm9wZXJhbmRTbG90LCB2YWx1ZSwgbWV0YWRhdGEubV93YXRjaHBvaW50U2V0KTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE1vZHVsZVZhcjoKQEAgLTEzMTMsNyArMTMwOSw3
IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfdG9fc2NvcGUoY29uc3QgSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yCiAgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsK
IAogICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wUHV0VG9TY29w
ZT4oKTsKLSAgICBSZXNvbHZlVHlwZSByZXNvbHZlVHlwZSA9IGNvcGllZEdldFB1dEluZm8oYnl0
ZWNvZGUpLnJlc29sdmVUeXBlKCk7CisgICAgUmVzb2x2ZVR5cGUgcmVzb2x2ZVR5cGUgPSBieXRl
Y29kZS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2dldFB1dEluZm8ucmVzb2x2ZVR5
cGUoKTsKICAgICBpZiAocmVzb2x2ZVR5cGUgPT0gTW9kdWxlVmFyKSB7CiAgICAgICAgIEpJVFNs
b3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3Bh
dGhfdGhyb3dfc3RyaWN0X21vZGVfcmVhZG9ubHlfcHJvcGVydHlfd3JpdGVfZXJyb3IpOwogICAg
ICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IGMzNWU0NTQ0MTEwNi4uZGJjNDcw
MDNjY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCkBAIC0yNTA0LDYgKzI1MDQsOSBAQCBpZiBKSVQKIAogICAgIGVuZAog
ZWxzZQorICAgIG1hY3JvIGxvYWRCYXNlbGluZUpJVENvbnN0YW50UG9vbCgpCisgICAgZW5kCisK
ICAgICBtYWNybyBzZXR1cFJldHVyblRvQmFzZWxpbmVBZnRlckNoZWNrcG9pbnRFeGl0SWZOZWVk
ZWQoKQogICAgIGVuZAogZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGYzZDk3Y2E0ZjdjYi4uMzY2
MTZhNjk1YjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNDk5LDYgKzQ5OSw5IEBAIG1hY3JvIGNo
ZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9v
c3IpCiAgICAgICAgICAgICBidHB6IHIwLCAucmVjb3ZlcgogICAgICAgICAgICAgbW92ZSByMSwg
c3AKKworICAgICAgICAgICAgbG9hZEJhc2VsaW5lSklUQ29uc3RhbnRQb29sKCkKKwogICAgICAg
ICAgICAgam1wIHIwCiAgICAgICAgIC5yZWNvdmVyOgogICAgICAgICAgICAgbG9hZGkgQXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKLS0gCjIuMzEuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>