<?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>220585</bug_id>
          
          <creation_ts>2021-01-13 03:57:46 -0800</creation_ts>
          <short_desc>[JSC] Implement a B3::Compilation replacement for wasm-llint</short_desc>
          <delta_ts>2021-01-18 16:25:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>220365</blocked>
          <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>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>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1719247</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-01-13 03:57:46 -0800</bug_when>
    <thetext>This is used by WasmLLIntPlan, which prevents us from compiling Wasm without B3 support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719249</commentid>
    <comment_count>1</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-01-13 04:05:50 -0800</bug_when>
    <thetext>B3::Compilation is basically:
- A MacroAssemblerCodeRef.
- A vector of opaque &quot;compilation byproducts&quot;. This, incidentally, is never used by WasmLLInt (it&apos;s always set to null).

I see a few options:
- We could move this to jit/. This would remove the dependency from B3, but would still be a sort of layering violation, since it would make LLInt code depend on jit/ (which is still the case in other places, for now).
- We could move this even further down the stack?
- We could make WasmLLInt use something else when B3 is disabled, and keep the code as-is when B3 is enabled.

I suppose the cleanest solutions in terms of the end result would be either #2 or #1, but comments are welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719891</commentid>
    <comment_count>2</comment_count>
      <attachid>417704</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-01-15 08:55:09 -0800</bug_when>
    <thetext>Created attachment 417704
WIP.

WIP patch.

Having a closer look at the code it seems to me there&apos;s so much stuff depending on JIT atm that there&apos;s no point in trying to put B3Compilation elsewhere. Since it fits nicely there, let&apos;s start with that. WIP patch attached, 100% mechanical (I&apos;ve left the JSC namespace in front of classes so I can grep easily, but it could be removed in the final patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719897</commentid>
    <comment_count>3</comment_count>
      <attachid>417707</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-01-15 09:13:01 -0800</bug_when>
    <thetext>Created attachment 417707
WIP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720124</commentid>
    <comment_count>4</comment_count>
      <attachid>417764</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-01-16 02:24:34 -0800</bug_when>
    <thetext>Created attachment 417764
Move B3::Compilation to jit/, v1

Try the build bots, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720148</commentid>
    <comment_count>5</comment_count>
      <attachid>417764</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-16 14:47:45 -0800</bug_when>
    <thetext>Comment on attachment 417764
Move B3::Compilation to jit/, v1

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

r=me

&gt; Source/JavaScriptCore/b3/air/testair.cpp:88
&gt; +std::unique_ptr&lt;JSC::Compilation&gt; compile(B3::Procedure&amp; proc)

JSC:: of JSC::Compilation is not necessary.

&gt; Source/JavaScriptCore/b3/air/testair.cpp:95
&gt; +    return makeUnique&lt;JSC::Compilation&gt;(

JSC:: is not necessary.

&gt; Source/JavaScriptCore/b3/air/testair.cpp:100
&gt; +T invoke(const JSC::Compilation&amp; code, Arguments... arguments)

Ditto.

&gt; Source/JavaScriptCore/ftl/FTLJITCode.h:55
&gt; +    void initializeB3Byproducts(std::unique_ptr&lt;JSC::OpaqueByproducts&gt;);

JSC:: of JSC::OpaqueByproducts is not necessary.

&gt; Source/JavaScriptCore/ftl/FTLJITCode.h:80
&gt; +    std::unique_ptr&lt;JSC::OpaqueByproducts&gt; m_b3Byproducts;

Ditto.

&gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.h:50
&gt; +    std::unique_ptr&lt;JSC::OpaqueByproducts&gt; wasmEntrypointByproducts;

Ditto

&gt; Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:113
&gt; +    function-&gt;entrypoint.compilation = makeUnique&lt;JSC::Compilation&gt;(

Ditto

&gt; Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:229
&gt; +            m_wasmInternalFunctions[functionIndex]-&gt;entrypoint.compilation = makeUnique&lt;JSC::Compilation&gt;(

Ditto.

&gt; Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:241
&gt; +            embedderToWasmInternalFunction-&gt;entrypoint.compilation = makeUnique&lt;JSC::Compilation&gt;(

Ditto

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:341
&gt; +    std::unique_ptr&lt;JSC::Compilation&gt; compilation;

Ditto.

&gt; Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp:155
&gt; +            function-&gt;entrypoint.compilation = makeUnique&lt;JSC::Compilation&gt;(

Ditto.

&gt; Source/JavaScriptCore/wasm/WasmOMGForOSREntryPlan.cpp:92
&gt; +    omgEntrypoint.compilation = makeUnique&lt;JSC::Compilation&gt;(

Ditto

&gt; Source/JavaScriptCore/wasm/WasmOMGPlan.cpp:89
&gt; +    omgEntrypoint.compilation = makeUnique&lt;JSC::Compilation&gt;(

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720325</commentid>
    <comment_count>6</comment_count>
      <attachid>417827</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2021-01-18 03:26:16 -0800</bug_when>
    <thetext>Created attachment 417827
Move B3::Compilation to jit/, v2

v2, remove unnecessary JSC:: namespace (which also found a redundant and mistaken B3::Compilation declaration left).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720437</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-18 16:24:57 -0800</bug_when>
    <thetext>Committed r271594: &lt;https://trac.webkit.org/changeset/271594&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417827.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720438</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-18 16:25:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/73332409&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417704</attachid>
            <date>2021-01-15 08:55:09 -0800</date>
            <delta_ts>2021-01-15 09:13:01 -0800</delta_ts>
            <desc>WIP.</desc>
            <filename>0001-JSC-Implement-a-B3-Compilation-replacement-for-wasm-.patch</filename>
            <type>text/plain</type>
            <size>40997</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBlODUyY2ViYjk4NDA2MDM5YzU0YWIzOWRmOGE1NzUwMWJlMmZkZWI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogRnJpLCAxNSBKYW4gMjAyMSAxNzo1MjoyOCArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIEltcGxlbWVudCBhIEIzOjpDb21waWxhdGlvbiByZXBsYWNlbWVudCBmb3Ig
d2FzbS1sbGludAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDU4
NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAuCgoqIENNYWtlTGlzdHMudHh0Ogoq
IFNvdXJjZXMudHh0OgoqIGIzL0IzQ29tcGlsZS5jcHA6CihKU0M6OkIzOjpjb21waWxlKToKKiBi
My9CM0NvbXBpbGUuaDoKKiBiMy9CM0RhdGFTZWN0aW9uLmg6CiogYjMvQjNQcm9jZWR1cmUuY3Bw
OgoqIGIzL0IzUHJvY2VkdXJlLmg6CiogYjMvYWlyL3Rlc3RhaXIuY3BwOgoqIGIzL3Rlc3RiMy5o
OgooaW52b2tlKToKKiBiMy90ZXN0YjNfNi5jcHA6Cih0ZXN0SW50ZXJwcmV0ZXIpOgoodGVzdEVu
dHJ5U3dpdGNoU2ltcGxlKToKKHRlc3RFbnRyeVN3aXRjaE5vRW50cnlTd2l0Y2gpOgoodGVzdEVu
dHJ5U3dpdGNoV2l0aENvbW1vblBhdGhzKToKKHRlc3RFbnRyeVN3aXRjaFdpdGhDb21tb25QYXRo
c0FuZE5vblRyaXZpYWxFbnRyeXBvaW50KToKKHRlc3RFbnRyeVN3aXRjaExvb3ApOgoqIGZ0bC9G
VExKSVRDb2RlLmg6CiogZnRsL0ZUTE91dHB1dC5oOgoqIGppdC9KSVRDb21waWxhdGlvbi5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5jcHAu
CihKU0M6OkNvbXBpbGF0aW9uOjpDb21waWxhdGlvbik6CihKU0M6OkNvbXBpbGF0aW9uOjp+Q29t
cGlsYXRpb24pOgoqIGppdC9KSVRDb21waWxhdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRpb24uaC4KKEpTQzo6Q29tcGlsYXRpb246OmNvZGUg
Y29uc3QpOgooSlNDOjpDb21waWxhdGlvbjo6Y29kZVJlZiBjb25zdCk6CihKU0M6OkNvbXBpbGF0
aW9uOjpkaXNhc3NlbWJseSBjb25zdCk6Ciogaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0LmguCihK
U0M6Ok9wYXF1ZUJ5cHJvZHVjdDo6T3BhcXVlQnlwcm9kdWN0KToKKEpTQzo6T3BhcXVlQnlwcm9k
dWN0Ojp+T3BhcXVlQnlwcm9kdWN0KToKKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5jcHA6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNw
cC4KKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6T3BhcXVlQnlwcm9kdWN0cyk6CihKU0M6Ok9wYXF1
ZUJ5cHJvZHVjdHM6On5PcGFxdWVCeXByb2R1Y3RzKToKKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6
YWRkKToKKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6ZHVtcCBjb25zdCk6Ciogaml0L0pJVE9wYXF1
ZUJ5cHJvZHVjdHMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
YXF1ZUJ5cHJvZHVjdHMuaC4KKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6Y291bnQgY29uc3QpOgoq
IHJ1bnRpbWUvSlNDUHRyVGFnLmg6Ciogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5oOgoqIHdhc20v
V2FzbUJCUVBsYW4uY3BwOgooSlNDOjpXYXNtOjpCQlFQbGFuOjp3b3JrKToKKEpTQzo6V2FzbTo6
QkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6Ciogd2FzbS9XYXNtQmluZGluZy5oOgoq
IHdhc20vV2FzbUNhbGxlZS5oOgoqIHdhc20vV2FzbUZvcm1hdC5oOgoqIHdhc20vV2FzbUxMSW50
UGxhbi5jcHA6CihKU0M6Oldhc206OkxMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6
Ciogd2FzbS9XYXNtTExJbnRQbGFuLmg6Ciogd2FzbS9XYXNtTW9kdWxlLmg6Ciogd2FzbS9XYXNt
T01HRm9yT1NSRW50cnlQbGFuLmNwcDoKKEpTQzo6V2FzbTo6T01HRm9yT1NSRW50cnlQbGFuOjp3
b3JrKToKKiB3YXNtL1dhc21PTUdQbGFuLmNwcDoKKEpTQzo6V2FzbTo6T01HUGxhbjo6d29yayk6
Ciogd2FzbS9XYXNtUGFyc2VyLmg6Ciogd2FzbS9qcy9XYXNtVG9KUy5oOgotLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvU291cmNlcy50eHQgICAgICAgICAgICAgfCAgNCArLQogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5jcHAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbXBpbGUuaCAgICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNEYXRhU2VjdGlvbi5oICAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmNwcCAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5oICAgICAgICB8ICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL3Rlc3RhaXIuY3BwICAgICAgfCAxMiArKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5oICAgICAgICAgICAgIHwgIDYgKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzXzYuY3BwICAgICAgICAgfCA0NiArKysrKysrKystLS0tLS0tLS0tCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaCAgICAgICAgfCAgNiArLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggICAgICAgICB8ICAyICstCiAuLi4vSklUQ29t
cGlsYXRpb24uY3BwfSAgICAgICAgICAgICAgICAgICAgICAgfCAxNCArKystLS0KIC4uLi9CM0Nv
bXBpbGF0aW9uLmggPT4gaml0L0pJVENvbXBpbGF0aW9uLmh9ICB8IDIwICsrKystLS0tCiAuLi4v
SklUT3BhcXVlQnlwcm9kdWN0Lmh9ICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tCiAuLi4v
SklUT3BhcXVlQnlwcm9kdWN0cy5jcHB9ICAgICAgICAgICAgICAgICAgfCAxMCArKy0tCiAuLi4v
SklUT3BhcXVlQnlwcm9kdWN0cy5ofSAgICAgICAgICAgICAgICAgICAgfCAxMCArKy0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaCAgICAgfCAgMiArLQogLi4uL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuaCAgIHwgIDYgKy0tCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAgICAgfCAxNCArKystLS0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmggICAgICB8ICAyICstCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmggICAgICAgfCAgMiArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oICAgICAgIHwgIDQgKy0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwICB8ICA4ICsrLS0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uaCAgICB8ICA0ICstCiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmggICAgICAgfCAgMiArLQogLi4uL3dhc20vV2FzbU9N
R0Zvck9TUkVudHJ5UGxhbi5jcHAgICAgICAgICAgIHwgIDYgKy0tCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAgICAgfCAgNiArLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21QYXJzZXIuaCAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XYXNtVG9KUy5oICAgICAgfCAgMiArLQogMzAgZmlsZXMgY2hhbmdlZCwgMTAz
IGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKIHJlbmFtZSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUve2IzL0IzQ29tcGlsYXRpb24uY3BwID0+IGppdC9KSVRDb21waWxhdGlvbi5jcHB9ICg4
NSUpCiByZW5hbWUgU291cmNlL0phdmFTY3JpcHRDb3JlL3tiMy9CM0NvbXBpbGF0aW9uLmggPT4g
aml0L0pJVENvbXBpbGF0aW9uLmh9ICg3NyUpCiByZW5hbWUgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3tiMy9CM09wYXF1ZUJ5cHJvZHVjdC5oID0+IGppdC9KSVRPcGFxdWVCeXByb2R1Y3QuaH0gKDk0
JSkKIHJlbmFtZSBTb3VyY2UvSmF2YVNjcmlwdENvcmUve2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5j
cHAgPT4gaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuY3BwfSAoOTMlKQogcmVuYW1lIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS97YjMvQjNPcGFxdWVCeXByb2R1Y3RzLmggPT4gaml0L0pJVE9wYXF1ZUJ5
cHJvZHVjdHMuaH0gKDkzJSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
NThhNTcwNjk3ZWI5Li44OTM5OTBmNDk2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTUyMSw3ICs1MjEsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIGFzc2VtYmxlci9YODZfNjRSZWdpc3RlcnMuaAogCiAgICAgYjMv
QjNDb21tb24uaAotICAgIGIzL0IzQ29tcGlsYXRpb24uaAogICAgIGIzL0IzVHlwZS5oCiAKICAg
ICBiaW5kaW5ncy9TY3JpcHRGdW5jdGlvbkNhbGwuaApAQCAtNzU3LDYgKzc1Niw3IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaml0L0pJVEFsbG9j
YXRvci5oCiAgICAgaml0L0pJVENvZGUuaAogICAgIGppdC9KSVRDb2RlTWFwLmgKKyAgICBqaXQv
SklUQ29tcGlsYXRpb24uaAogICAgIGppdC9KSVRDb21waWxhdGlvbkVmZm9ydC5oCiAgICAgaml0
L0pJVE1hdGhJQ0ZvcndhcmRzLmgKICAgICBqaXQvSklUT3BlcmF0aW9ucy5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU291cmNlcy50eHQKaW5kZXggNmI5NzhhMzkwZTgzLi41YmZiMGFhYjdlZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU291cmNlcy50eHQKQEAgLTEyMCw3ICsxMjAsNiBAQCBiMy9CM0NoZWNrVmFsdWUu
Y3BwCiBiMy9CM0NvbW1vbi5jcHAKIGIzL0IzQ29tbXV0YXRpdml0eS5jcHAKIGIzL0IzQ29tcGls
ZS5jcHAKLWIzL0IzQ29tcGlsYXRpb24uY3BwCiBiMy9CM0NvbnN0MzJWYWx1ZS5jcHAKIGIzL0Iz
Q29uc3Q2NFZhbHVlLmNwcAogYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcApAQCAtMTQ5LDcgKzE0
OCw2IEBAIGIzL0IzTG93ZXJUb0Fpci5jcHAKIGIzL0IzTWF0aEV4dHJhcy5jcHAKIGIzL0IzTWVt
b3J5VmFsdWUuY3BwCiBiMy9CM01vdmVDb25zdGFudHMuY3BwCi1iMy9CM09wYXF1ZUJ5cHJvZHVj
dHMuY3BwCiBiMy9CM09wY29kZS5jcHAKIGIzL0IzT3B0aW1pemVBc3NvY2lhdGl2ZUV4cHJlc3Np
b25UcmVlcy5jcHAKIGIzL0IzT3JpZ2luLmNwcApAQCAtNjQzLDYgKzY0MSw3IEBAIGppdC9KSVRC
aXRYb3JHZW5lcmF0b3IuY3BwCiBqaXQvSklUQ2FsbC5jcHAKIGppdC9KSVRDYWxsMzJfNjQuY3Bw
CiBqaXQvSklUQ29kZS5jcHAKK2ppdC9KSVRDb21waWxhdGlvbi5jcHAKIGppdC9KSVREaXNhc3Nl
bWJsZXIuY3BwCiBqaXQvSklURGl2R2VuZXJhdG9yLmNwcAogaml0L0pJVEV4Y2VwdGlvbnMuY3Bw
CkBAIC02NTAsNiArNjQ5LDcgQEAgaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAogaml0
L0pJVExlZnRTaGlmdEdlbmVyYXRvci5jcHAKIGppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCiBqaXQv
SklUTmVnR2VuZXJhdG9yLmNwcAoraml0L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuY3BwCiBqaXQvSklU
T3Bjb2Rlcy5jcHAKIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCiBqaXQvSklUT3BlcmF0aW9ucy5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5jcHAKaW5kZXggZTM0OTQzYzRlMzlj
Li4yNzcwOWE1YmU5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bXBpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuY3BwCkBA
IC00Niw3ICs0Niw3IEBAIENvbXBpbGF0aW9uIGNvbXBpbGUoUHJvY2VkdXJlJiBwcm9jKQogICAg
IGdlbmVyYXRlKHByb2MsIGppdCk7CiAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgbnVs
bHB0cik7CiAKLSAgICByZXR1cm4gQ29tcGlsYXRpb24oRklOQUxJWkVfQ09ERShsaW5rQnVmZmVy
LCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiQjM6OkNvbXBpbGF0aW9uIiksIHByb2MucmVsZWFzZUJ5
cHJvZHVjdHMoKSk7CisgICAgcmV0dXJuIENvbXBpbGF0aW9uKEZJTkFMSVpFX0NPREUobGlua0J1
ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJKU0M6OkNvbXBpbGF0aW9uIiksIHByb2MucmVs
ZWFzZUJ5cHJvZHVjdHMoKSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oCmluZGV4IDViYmY3NzlmMThjMC4uOTdmMmI2OWY2NTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAj
aWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCi0jaW5jbHVkZSAiQjND
b21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uaAppbmRleCAyNjhm
NjUxNGYzZDAuLmRmZjE0MjUwNDdlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRGF0YVNlY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRh
U2VjdGlvbi5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5j
bHVkZSAiQjNPcGFxdWVCeXByb2R1Y3QuaCIKKyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3Qu
aCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQcm9jZWR1cmUuY3BwCmluZGV4IDhkYzQyMjZjZDU1Mi4uY2U2OTE0ZDZiNzg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlICJCM0RhdGFTZWN0aW9uLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgi
CiAjaW5jbHVkZSAiQjNOYXR1cmFsTG9vcHMuaCIKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVj
dHMuaCIKKyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAiQjNQcm9j
ZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJCM1Zh
bHVlSW5saW5lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJv
Y2VkdXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAppbmRleCAz
ZWUwNTA2MmJiZGIuLjM4YjM1MjVlZjFlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJv
Y2VkdXJlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKLSNpbmNs
dWRlICJCM09wYXF1ZUJ5cHJvZHVjdHMuaCIKKyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3Rz
LmgiCiAjaW5jbHVkZSAiQjNPcmlnaW4uaCIKICNpbmNsdWRlICJCM1BDVG9PcmlnaW5NYXAuaCIK
ICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKQEAgLTIzMSw3ICsyMzEsNyBAQCBwdWJs
aWM6CiAgICAgLy8gWW91IGhhdmUgdG8gY2FsbCB0aGlzIG1ldGhvZCBhZnRlciBjYWxsaW5nIGdl
bmVyYXRlKCkuIFRoZSBjb2RlIGdlbmVyYXRlZCBieSBCMzo6Z2VuZXJhdGUoKQogICAgIC8vIHdp
bGwgcmVxdWlyZSB5b3UgdG8ga2VlcCB0aGlzIG9iamVjdCBhbGl2ZSBmb3IgYXMgbG9uZyBhcyB0
aGF0IGNvZGUgaXMgcnVubmFibGUuIFVzdWFsbHksIHRoaXMKICAgICAvLyBqdXN0IGtlZXBzIGFs
aXZlIHRoaW5ncyBsaWtlIHRoZSBkb3VibGUgY29uc3RhbnQgcG9vbCBhbmQgc3dpdGNoIGxvb2t1
cCB0YWJsZXMuIElmIHRoaXMgc291bmRzCi0gICAgLy8gY29uZnVzaW5nLCB5b3Ugc2hvdWxkIHBy
b2JhYmx5IGJlIHVzaW5nIHRoZSBCMzo6Q29tcGlsYXRpb24gQVBJIHRvIGNvbXBpbGUgY29kZS4g
SWYgeW91IHVzZQorICAgIC8vIGNvbmZ1c2luZywgeW91IHNob3VsZCBwcm9iYWJseSBiZSB1c2lu
ZyB0aGUgSlNDOjpDb21waWxhdGlvbiBBUEkgdG8gY29tcGlsZSBjb2RlLiBJZiB5b3UgdXNlCiAg
ICAgLy8gdGhhdCBBUEksIHRoZW4geW91IGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhpcy4K
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8T3BhcXVlQnlwcm9kdWN0cz4gcmVsZWFzZUJ5cHJvZHVjdHMo
KSB7IHJldHVybiBXVEZNb3ZlKG1fYnlwcm9kdWN0cyk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvdGVzdGFpci5jcHAKaW5kZXggZmVmYzdhMTE4YThmLi40Y2IyOGZlNzNhOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAtMzAsNyArMzAsNyBA
QAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRjaFJl
Z2lzdGVyVXNhZ2UuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVk
ZSAiQjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5jbHVk
ZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1BhdGNocG9pbnRTcGVjaWFsLmgiCiAjaW5j
bHVkZSAiQjNQYXRjaHBvaW50VmFsdWUuaCIKQEAgLTg1LDIxICs4NSwyMSBAQCBMb2NrIGNyYXNo
TG9jazsKICAgICAgICAgQ1JBU0goKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAotc3RkOjp1bmlx
dWVfcHRyPEIzOjpDb21waWxhdGlvbj4gY29tcGlsZShCMzo6UHJvY2VkdXJlJiBwcm9jKQorc3Rk
Ojp1bmlxdWVfcHRyPEpTQzo6Q29tcGlsYXRpb24+IGNvbXBpbGUoQjM6OlByb2NlZHVyZSYgcHJv
YykKIHsKICAgICBwcmVwYXJlRm9yR2VuZXJhdGlvbihwcm9jLmNvZGUoKSk7CiAgICAgQ0NhbGxI
ZWxwZXJzIGppdDsKICAgICBnZW5lcmF0ZShwcm9jLmNvZGUoKSwgaml0KTsKICAgICBMaW5rQnVm
ZmVyIGxpbmtCdWZmZXIoaml0LCBudWxscHRyKTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEIz
OjpDb21waWxhdGlvbj4oCi0gICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21w
aWxhdGlvblB0clRhZywgInRlc3RhaXIgY29tcGlsYXRpb24iKSwgcHJvYy5yZWxlYXNlQnlwcm9k
dWN0cygpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxKU0M6OkNvbXBpbGF0aW9uPigKKyAgICAg
ICAgRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgInRlc3Rh
aXIgY29tcGlsYXRpb24iKSwgcHJvYy5yZWxlYXNlQnlwcm9kdWN0cygpKTsKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotVCBpbnZva2UoY29uc3QgQjM6
OkNvbXBpbGF0aW9uJiBjb2RlLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQorVCBpbnZva2UoY29u
c3QgSlNDOjpDb21waWxhdGlvbiYgY29kZSwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKIHsKLSAg
ICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcyA9IHVudGFnQ0Z1bmN0aW9uUHRyPEIzQ29tcGlsYXRp
b25QdHJUYWc+KGNvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgIHZvaWQqIGV4
ZWN1dGFibGVBZGRyZXNzID0gdW50YWdDRnVuY3Rpb25QdHI8SklUQ29tcGlsYXRpb25QdHJUYWc+
KGNvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogICAgIFQgKCpmdW5jdGlvbikoQXJn
dW1lbnRzLi4uKSA9IGJpdHdpc2VfY2FzdDxUKCopKEFyZ3VtZW50cy4uLik+KGV4ZWN1dGFibGVB
ZGRyZXNzKTsKICAgICByZXR1cm4gZnVuY3Rpb24oYXJndW1lbnRzLi4uKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuaAppbmRleCAwMTNmYTUwM2VjMmUuLmFkMTZiOWRlZGY4MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjMuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIgogI2lu
Y2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNs
dWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkIzQ29tcGlsZS5oIgogI2luY2x1ZGUg
IkIzQ29tcHV0ZURpdmlzaW9uTWFnaWMuaCIKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgpA
QCAtMTk2LDkgKzE5Niw5IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8Q29tcGlsYXRpb24+IGNv
bXBpbGVQcm9jKFByb2NlZHVyZSYgcHJvY2VkdXJlLCB1bnNpZ25lZCBvCiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLVQgaW52b2tlKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBwdHIsIEFyZ3VtZW50cy4uLiBhcmd1bWVu
dHMpCitUIGludm9rZShNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SklUQ29tcGlsYXRpb25QdHJUYWc+
IHB0ciwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKIHsKLSAgICB2b2lkKiBleGVjdXRhYmxlQWRk
cmVzcyA9IHVudGFnQ0Z1bmN0aW9uUHRyPEIzQ29tcGlsYXRpb25QdHJUYWc+KHB0ci5leGVjdXRh
YmxlQWRkcmVzcygpKTsKKyAgICB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcyA9IHVudGFnQ0Z1bmN0
aW9uUHRyPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiAg
ICAgVCAoKmZ1bmN0aW9uKShBcmd1bWVudHMuLi4pID0gYml0d2lzZV9jYXN0PFQoKikoQXJndW1l
bnRzLi4uKT4oZXhlY3V0YWJsZUFkZHJlc3MpOwogICAgIHJldHVybiBmdW5jdGlvbihhcmd1bWVu
dHMuLi4pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAKaW5kZXggMjlhYTk5
MWM4OWZjLi4zMWFmZjM5ZjQwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjNfNi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNw
cApAQCAtMTY3NCwxOSArMTY3NCwxOSBAQCB2b2lkIHRlc3RJbnRlcnByZXRlcigpCiAgICAgICAg
ICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAg
ICAgICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJh
bXMuc3VjY2Vzc29yTGFiZWxzKCk7CiAKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxCM0NvbXBpbGF0aW9uUHRyVGFnPioganVtcFRhYmxlID0gYml0d2lzZV9jYXN0PE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxCM0NvbXBpbGF0aW9uUHRyVGFnPio+KAotICAgICAgICAgICAgICAgIHBh
cmFtcy5wcm9jKCkuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxC
M0NvbXBpbGF0aW9uUHRyVGFnPikgKiBsYWJlbHMuc2l6ZSgpKSk7CisgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SklUQ29tcGlsYXRpb25QdHJUYWc+KiBqdW1wVGFibGUgPSBiaXR3
aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRyVGFnPio+KAor
ICAgICAgICAgICAgICAgIHBhcmFtcy5wcm9jKCkuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxKSVRDb21waWxhdGlvblB0clRhZz4pICogbGFiZWxzLnNpemUoKSkp
OwogCiAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFtcy5ncFNjcmF0Y2goMCk7CiAK
ICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihqdW1wVGFi
bGUpLCBzY3JhdGNoKTsKICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpCYXNl
SW5kZXgoc2NyYXRjaCwgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbEhlbHBlcnM6OlNjYWxlUHRyKSwg
c2NyYXRjaCk7Ci0gICAgICAgICAgICBqaXQuZmFySnVtcChzY3JhdGNoLCBCM0NvbXBpbGF0aW9u
UHRyVGFnKTsKKyAgICAgICAgICAgIGppdC5mYXJKdW1wKHNjcmF0Y2gsIEpJVENvbXBpbGF0aW9u
UHRyVGFnKTsKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAogICAgICAgICAgICAgICAg
IFsmLCBqdW1wVGFibGUsIGxhYmVsc10gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKICAgICAg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbGFiZWxzLnNpemUoKTsgaS0tOykKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJsZVtpXSA9IGxpbmtCdWZmZXIubG9jYXRpb25P
ZjxCM0NvbXBpbGF0aW9uUHRyVGFnPigqbGFiZWxzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGp1bXBUYWJsZVtpXSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0
clRhZz4oKmxhYmVsc1tpXSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC0xOTM3LDExICsxOTM3LDExIEBAIHZvaWQgdGVzdEVudHJ5U3dpdGNoU2ltcGxlKCkKICAgICBD
Q2FsbEhlbHBlcnMgaml0OwogICAgIGdlbmVyYXRlKHByb2MsIGppdCk7CiAgICAgTGlua0J1ZmZl
ciBsaW5rQnVmZmVyKGppdCwgbnVsbHB0cik7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21w
aWxhdGlvblB0clRhZz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxh
dGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKLSAgICBDb2RlTG9j
YXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9j
YXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwo
MSkpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVGhy
ZWUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2Rl
KCkuZW50cnlwb2ludExhYmVsKDIpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxh
dGlvblB0clRhZz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRp
b25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7CisgICAgQ29kZUxvY2F0
aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1ZmZlci5sb2Nh
dGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwo
MSkpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFRo
cmVlID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNv
ZGUoKS5lbnRyeXBvaW50TGFiZWwoMikpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIz
Q29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIz
Q29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKKyAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8SklUQ29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RF
KGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7
CiAKICAgICBDSEVDSyhpbnZva2U8aW50PihsYWJlbE9uZSwgMSwgMikgPT0gMyk7CiAgICAgQ0hF
Q0soaW52b2tlPGludD4obGFiZWxUd28sIDEsIDIpID09IC0xKTsKQEAgLTE5NzAsMTEgKzE5NzAs
MTEgQEAgdm9pZCB0ZXN0RW50cnlTd2l0Y2hOb0VudHJ5U3dpdGNoKCkKICAgICBDQ2FsbEhlbHBl
cnMgaml0OwogICAgIGdlbmVyYXRlKHByb2MsIGppdCk7CiAgICAgTGlua0J1ZmZlciBsaW5rQnVm
ZmVyKGppdCwgbnVsbHB0cik7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0
clRhZz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRh
Zz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKLSAgICBDb2RlTG9jYXRpb25MYWJl
bDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxC
M0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMSkpOwotICAg
IENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVGhyZWUgPSBsaW5r
QnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlw
b2ludExhYmVsKDIpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRh
Zz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+
KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8
SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJ
VENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMSkpOworICAg
IENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFRocmVlID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRy
eXBvaW50TGFiZWwoMikpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIzQ29tcGlsYXRp
b25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRp
b25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUQ29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZm
ZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7CiAKICAgICBD
SEVDS19FUShpbnZva2U8aW50PihsYWJlbE9uZSwgMSwgMiksIDMpOwogICAgIENIRUNLX0VRKGlu
dm9rZTxpbnQ+KGxhYmVsVHdvLCAxLCAyKSwgMyk7CkBAIC0yMDU3LDExICsyMDU3LDExIEBAIHZv
aWQgdGVzdEVudHJ5U3dpdGNoV2l0aENvbW1vblBhdGhzKCkKICAgICBDQ2FsbEhlbHBlcnMgaml0
OwogICAgIGdlbmVyYXRlKHByb2MsIGppdCk7CiAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGpp
dCwgbnVsbHB0cik7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4g
bGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJv
Yy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0Nv
bXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBp
bGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMSkpOwotICAgIENvZGVM
b2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVy
LmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExh
YmVsKDIpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFi
ZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2Mu
Y29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29t
cGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBp
bGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMSkpOworICAgIENvZGVM
b2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFRocmVlID0gbGlua0J1ZmZl
ci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50
TGFiZWwoMikpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIzQ29tcGlsYXRpb25QdHJU
YWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJU
YWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklU
Q29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEpJ
VENvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7CiAKICAgICBDSEVDS19F
UShpbnZva2U8aW50PihsYWJlbE9uZSwgMSwgMiwgMTApLCAzKTsKICAgICBDSEVDS19FUShpbnZv
a2U8aW50PihsYWJlbFR3bywgMSwgMiwgMTApLCAtMSk7CkBAIC0yMTc0LDExICsyMTc0LDExIEBA
IHZvaWQgdGVzdEVudHJ5U3dpdGNoV2l0aENvbW1vblBhdGhzQW5kTm9uVHJpdmlhbEVudHJ5cG9p
bnQoKQogICAgIENDYWxsSGVscGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJvYywgaml0KTsKICAg
ICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBudWxscHRyKTsKLSAgICBDb2RlTG9jYXRpb25M
YWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25P
ZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOwot
ICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5
cG9pbnRMYWJlbCgxKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRh
Zz4gbGFiZWxUaHJlZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFn
Pihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMikpOworICAgIENvZGVMb2NhdGlvbkxhYmVs
PEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxK
SVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKKyAg
ICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5r
QnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5
cG9pbnRMYWJlbCgxKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJU
YWc+IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJU
YWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgyKSk7CiAKLSAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlu
a0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOworICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJ
TkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29t
cGlsYXRpb24iKTsKIAogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGxhYmVsT25lLCAxLCAyLCAx
MCwgZmFsc2UpLCAzKTsKICAgICBDSEVDS19FUShpbnZva2U8aW50PihsYWJlbFR3bywgMSwgMiwg
MTAsIGZhbHNlKSwgLTEpOwpAQCAtMjI1MiwxMCArMjI1MiwxMCBAQCB2b2lkIHRlc3RFbnRyeVN3
aXRjaExvb3AoKQogICAgIENDYWxsSGVscGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJvYywgaml0
KTsKICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBudWxscHRyKTsKLSAgICBDb2RlTG9j
YXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9j
YXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwo
MCkpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdv
ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgp
LmVudHJ5cG9pbnRMYWJlbCgxKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRp
b25QdHJUYWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9u
UHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOworICAgIENvZGVMb2NhdGlv
bkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEp
KTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBjb2Rl
UmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAidGVz
dGIzIGNvbXBpbGF0aW9uIik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0
aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBKSVRDb21waWxh
dGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOwogCiAgICAgQ0hFQ0soaW52b2tlPGlu
dD4obGFiZWxPbmUsIDApID09IDEpOwogICAgIENIRUNLKGludm9rZTxpbnQ+KGxhYmVsT25lLCA0
MikgPT0gNDMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRD
b2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaAppbmRleCBjZjE2
NjcxNGI5MGEuLjA2OTE5Mjg0YmUyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRD
b2RlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCi0jaW5jbHVk
ZSAiQjNPcGFxdWVCeXByb2R1Y3RzLmgiCisjaW5jbHVkZSAiSklUT3BhcXVlQnlwcm9kdWN0cy5o
IgogI2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJGVExMYXp5U2xvd1BhdGgu
aCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGNvbnRhaW5zKHZvaWQqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUIz
Q29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+KTsKLSAgICB2b2lkIGluaXRpYWxpemVCM0J5cHJv
ZHVjdHMoc3RkOjp1bmlxdWVfcHRyPEIzOjpPcGFxdWVCeXByb2R1Y3RzPik7CisgICAgdm9pZCBp
bml0aWFsaXplQjNCeXByb2R1Y3RzKHN0ZDo6dW5pcXVlX3B0cjxKU0M6Ok9wYXF1ZUJ5cHJvZHVj
dHM+KTsKICAgICB2b2lkIGluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyPEpTRW50cnlQ
dHJUYWc+KTsKICAgICB2b2lkIGluaXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludChDb2RlUmVm
PEpTRW50cnlQdHJUYWc+KTsKICAgICAKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBDb2RlUHRyPEpTRW50cnlQdHJUYWc+IG1fYWRkcmVzc0ZvckNhbGw7CiAgICAgQ29k
ZVJlZjxKU0VudHJ5UHRyVGFnPiBtX2IzQ29kZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QjM6Ok9w
YXF1ZUJ5cHJvZHVjdHM+IG1fYjNCeXByb2R1Y3RzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6
Ok9wYXF1ZUJ5cHJvZHVjdHM+IG1fYjNCeXByb2R1Y3RzOwogICAgIENvZGVSZWY8SlNFbnRyeVB0
clRhZz4gbV9hcml0eUNoZWNrRW50cnlwb2ludDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE91dHB1dC5oCmluZGV4IDE2MTM0MTY0YmE3ZC4uYzRkOGQwNWVhNDFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUg
IkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKLSNpbmNs
dWRlICJCM0NvbXBpbGF0aW9uLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNs
dWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5j
bHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ29tcGlsYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb21w
aWxhdGlvbi5jcHAKc2ltaWxhcml0eSBpbmRleCA4NSUKcmVuYW1lIGZyb20gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRpb24uY3BwCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENvbXBpbGF0aW9uLmNwcAppbmRleCBhZGJlMTU5NTcxOTAuLjI1N2FjN2Vj
Njk1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29tcGlsYXRpb24uY3BwCkBA
IC0yNCwxNSArMjQsMTUgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
QjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAKLSNpZiBFTkFC
TEUoQjNfSklUKQorI2lmIEVOQUJMRShKSVQpCiAKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVj
dHMuaCIKKyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAKLW5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CiAKLUNvbXBpbGF0aW9uOjpDb21waWxh
dGlvbihNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiwg
c3RkOjp1bmlxdWVfcHRyPE9wYXF1ZUJ5cHJvZHVjdHM+IGJ5cHJvZHVjdHMpCitDb21waWxhdGlv
bjo6Q29tcGlsYXRpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFn
PiBjb2RlUmVmLCBzdGQ6OnVuaXF1ZV9wdHI8T3BhcXVlQnlwcm9kdWN0cz4gYnlwcm9kdWN0cykK
ICAgICA6IG1fY29kZVJlZihjb2RlUmVmKQogICAgICwgbV9ieXByb2R1Y3RzKFdURk1vdmUoYnlw
cm9kdWN0cykpCiB7CkBAIC00OCw3ICs0OCw3IEBAIENvbXBpbGF0aW9uOjp+Q29tcGlsYXRpb24o
KQogewogfQogCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKK30gLy8gbmFtZXNwYWNlIEpTQwog
Ci0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb21waWxhdGlvbi5oCnNpbWlsYXJpdHkgaW5kZXggNzcl
CnJlbmFtZSBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmgKcmVu
YW1lIHRvIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29tcGlsYXRpb24uaAppbmRleCAw
YmQwNjNlMzBmZTAuLmFkODljNjNhZmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29tcGlsYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VENvbXBpbGF0aW9uLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBF
TkFCTEUoQjNfSklUKQorI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaCIKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMzUsMzMgKzM1LDI5
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBWTTsKIAotbmFtZXNwYWNlIEIzIHsKLQogY2xh
c3MgT3BhcXVlQnlwcm9kdWN0czsKLWNsYXNzIFByb2NlZHVyZTsKIAotLy8gVGhpcyBjbGFzcyBp
cyBhIHdheSB0byBrZWVwIHRoZSByZXN1bHQgb2YgYSBCMyBjb21waWxhdGlvbiBhbGl2ZQotLy8g
YW5kIHJ1bm5hYmxlLgorLy8gVGhpcyBjbGFzcyBpcyBhIHdheSB0byBrZWVwIHRoZSByZXN1bHQg
b2YgYSBjb21waWxhdGlvbiBhbGl2ZSBhbmQgcnVubmFibGUuCiAKIGNsYXNzIENvbXBpbGF0aW9u
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21waWxhdGlvbik7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiAKIHB1YmxpYzoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBDb21waWxh
dGlvbihNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4sIHN0ZDo6dW5p
cXVlX3B0cjxPcGFxdWVCeXByb2R1Y3RzPik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ29tcGls
YXRpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiwgc3RkOjp1
bmlxdWVfcHRyPE9wYXF1ZUJ5cHJvZHVjdHM+KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBDb21w
aWxhdGlvbihDb21waWxhdGlvbiYmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+Q29tcGlsYXRp
b24oKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBj
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlUmVmLmNvZGUoKTsgfQotICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmKCkgY29uc3QgeyByZXR1cm4g
bV9jb2RlUmVmOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRy
VGFnPiBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlUmVmLmNvZGUoKTsgfQorICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZigpIGNvbnN0IHsg
cmV0dXJuIG1fY29kZVJlZjsgfQogICAgIAogICAgIENTdHJpbmcgZGlzYXNzZW1ibHkoKSBjb25z
dCB7IHJldHVybiBtX2NvZGVSZWYuZGlzYXNzZW1ibHkoKTsgfQogCiBwcml2YXRlOgotICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBtX2NvZGVSZWY7CisgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBtX2NvZGVSZWY7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPE9wYXF1ZUJ5cHJvZHVjdHM+IG1fYnlwcm9kdWN0czsKIH07CiAK
LX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAv
LyBFTkFCTEUoQjNfSklUKQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0LmgKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVu
YW1lIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0LmgKcmVu
YW1lIHRvIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0LmgKaW5k
ZXggMzVhMmEwNmE0ZGMwLi5iMTg3NDgxZDc1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0LmgKQEAgLTI1LDEzICsyNSwxMyBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2lmIEVOQUJMRShCM19KSVQpCisjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewor
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIE9wYXF1ZUJ5cHJvZHVjdCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoT3BhcXVlQnlwcm9kdWN0KTsKQEAgLTQzLDYgKzQzLDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3QgPSAwOwogfTsKIAotfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkIzCit9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVO
QUJMRShCM19KSVQpCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdHMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcApzaW1pbGFyaXR5IGluZGV4IDkzJQpy
ZW5hbWUgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNw
cApyZW5hbWUgdG8gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3Rz
LmNwcAppbmRleCBmODlmOGJmZWQ2ZDEuLjc2ODEzMGQ2OTJkNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcApAQCAtMjQsMTEgKzI0LDEx
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkIzT3BhcXVlQnlwcm9k
dWN0cy5oIgorI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCIKIAotI2lmIEVOQUJMRShC
M19KSVQpCisjaWYgRU5BQkxFKEpJVCkKIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CituYW1lc3BhY2UgSlNDIHsKIAogT3BhcXVlQnlwcm9kdWN0czo6T3BhcXVlQnlwcm9kdWN0cygp
CiB7CkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgT3BhcXVlQnlwcm9kdWN0czo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoIiAgICAiLCAqYnlwcm9kdWN0LCAi
XG4iKTsKIH0KIAotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCit9IC8vIG5hbWVzcGFjZSBKU0MK
IAotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmgKc2ltaWxhcml0
eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVl
Qnlwcm9kdWN0cy5oCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wYXF1
ZUJ5cHJvZHVjdHMuaAppbmRleCBlOGVlYzExM2Y0ZTguLmJkOGZhMDQ3MmU0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5oCkBAIC0yNSwxMyAr
MjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQjNfSklUKQorI2lmIEVOQUJM
RShKSVQpCiAKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVjdC5oIgorI2luY2x1ZGUgIkpJVE9w
YXF1ZUJ5cHJvZHVjdC5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CiAK
IGNsYXNzIE9wYXF1ZUJ5cHJvZHVjdHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE9wYXF1
ZUJ5cHJvZHVjdHMpCkBAIC01MCw2ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxPcGFxdWVCeXByb2R1Y3Q+PiBtX2J5cHJvZHVjdHM7CiB9OwogCi19IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjMKK30gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYgLy8gRU5BQkxF
KEIzX0pJVCkKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NQdHJUYWcuaAppbmRleCAxNWUyMDBhZWZkYmMuLjk5MTkwMzMyYmFjZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
dXNpbmcgUHRyVGFnID0gV1RGOjpQdHJUYWc7CiAgICAgdihET01KSVRGdW5jdGlvblB0clRhZywg
UHRyVGFnQ2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBcCiAgICAg
dihEaXNhc3NlbWJseVB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxs
ZXJUeXBlOjpOb25lKSBcCiAgICAgLyogQ2FsbGVlOkpJVCBDYWxsZXI6Tm9uZSAqLyBcCi0gICAg
dihCM0NvbXBpbGF0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxl
clR5cGU6Ok5vbmUpIFwKKyAgICB2KEpJVENvbXBpbGF0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVU
eXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5vbmUpIFwKICAgICB2KEV4ZWN1dGFibGVNZW1v
cnlQdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRyVGFnQ2FsbGVyVHlwZTo6Tm9uZSkg
XAogICAgIHYoTGlua0J1ZmZlclB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdD
YWxsZXJUeXBlOjpOb25lKSBcCiAgICAgdihZYXJyOEJpdFB0clRhZywgUHRyVGFnQ2FsbGVlVHlw
ZTo6SklULCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuaAppbmRleCBhM2VkMGQ5YjhmOWQuLmZhODkyZDk4
YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5l
cmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRv
ci5oCkBAIC0yOCw4ICsyOCw4IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVk
ZSAiQjNDb21tb24uaCIKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCi0jaW5jbHVkZSAiQjNP
cGFxdWVCeXByb2R1Y3RzLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRl
ICJKSVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5j
bHVkZSAiV2FzbUNvbXBpbGF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIldhc21FbWJlZGRlci5oIgpA
QCAtNDcsNyArNDcsNyBAQCBjbGFzcyBNZW1vcnlJbmZvcm1hdGlvbjsKIHN0cnVjdCBDb21waWxh
dGlvbkNvbnRleHQgewogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQ2FsbEhlbHBlcnM+IGVtYmVkZGVy
RW50cnlwb2ludEpJVDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0NhbGxIZWxwZXJzPiB3YXNtRW50
cnlwb2ludEpJVDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QjM6Ok9wYXF1ZUJ5cHJvZHVjdHM+IHdh
c21FbnRyeXBvaW50Qnlwcm9kdWN0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpPcGFxdWVC
eXByb2R1Y3RzPiB3YXNtRW50cnlwb2ludEJ5cHJvZHVjdHM7CiB9OwogCiBFeHBlY3RlZDxzdGQ6
OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4sIFN0cmluZz4gcGFyc2VBbmRDb21waWxlKENv
bXBpbGF0aW9uQ29udGV4dCYsIGNvbnN0IEZ1bmN0aW9uRGF0YSYsIGNvbnN0IFNpZ25hdHVyZSYs
IFZlY3RvcjxVbmxpbmtlZFdhc21Ub1dhc21DYWxsPiYsIHVuc2lnbmVkJiBvc3JFbnRyeVNjcmF0
Y2hCdWZmZXJTaXplLCBjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYsIE1lbW9yeU1vZGUsIENvbXBp
bGF0aW9uTW9kZSwgdWludDMyX3QgZnVuY3Rpb25JbmRleCwgdWludDMyX3QgbG9vcEluZGV4Rm9y
T1NSRW50cnksIFRpZXJVcENvdW50KiA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUJCUVBsYW4uY3BwCmluZGV4IGM5OTA1MmIyODZjMS4uNGEwZjZhM2JiMjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCkBAIC0yOCw3ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0
aW9uLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJKU1RvV2FzbS5o
IgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJXYXNtQWlySVJHZW5lcmF0b3Iu
aCIKQEAgLTExMCw4ICsxMTAsOCBAQCB2b2lkIEJCUVBsYW46OndvcmsoQ29tcGlsYXRpb25FZmZv
cnQgZWZmb3J0KQogICAgIHNpemVfdCBmdW5jdGlvbkluZGV4U3BhY2UgPSBtX2Z1bmN0aW9uSW5k
ZXggKyBtX21vZHVsZUluZm9ybWF0aW9uLT5pbXBvcnRGdW5jdGlvbkNvdW50KCk7CiAgICAgU2ln
bmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBtX21vZHVsZUluZm9ybWF0aW9uLT5pbnRlcm5h
bEZ1bmN0aW9uU2lnbmF0dXJlSW5kaWNlc1ttX2Z1bmN0aW9uSW5kZXhdOwogICAgIGNvbnN0IFNp
Z25hdHVyZSYgc2lnbmF0dXJlID0gU2lnbmF0dXJlSW5mb3JtYXRpb246OmdldChzaWduYXR1cmVJ
bmRleCk7Ci0gICAgZnVuY3Rpb24tPmVudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBtYWtlVW5pcXVl
PEIzOjpDb21waWxhdGlvbj4oCi0gICAgICAgIEZJTkFMSVpFX1dBU01fQ09ERV9GT1JfTU9ERShD
b21waWxhdGlvbk1vZGU6OkJCUU1vZGUsIGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcs
ICJXZWJBc3NlbWJseSBCQlEgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5k
ZXgsIHNpZ25hdHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4
T3JOYW1lKGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rp
b24tPmdldChmdW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAorICAgIGZ1bmN0
aW9uLT5lbnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxKU0M6OkNvbXBpbGF0aW9u
PigKKyAgICAgICAgRklOQUxJWkVfV0FTTV9DT0RFX0ZPUl9NT0RFKENvbXBpbGF0aW9uTW9kZTo6
QkJRTW9kZSwgbGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBC
QlEgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50
b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9u
SW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlv
bkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICBXVEZNb3ZlKGNvbnRleHQu
d2FzbUVudHJ5cG9pbnRCeXByb2R1Y3RzKSk7CiAKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50OwpAQCAtMjI2LDggKzIyNiw4IEBAIHZvaWQgQkJR
UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
bV93YXNtSW50ZXJuYWxGdW5jdGlvbnNbZnVuY3Rpb25JbmRleF0tPmVudHJ5cG9pbnQuY29tcGls
YXRpb24gPSBtYWtlVW5pcXVlPEIzOjpDb21waWxhdGlvbj4oCi0gICAgICAgICAgICAgICAgRklO
QUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiV2ViQXNzZW1ibHkg
QkJRIGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwgZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRv
U3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25J
bmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9u
SW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCisgICAgICAgICAgICBtX3dhc21JbnRlcm5h
bEZ1bmN0aW9uc1tmdW5jdGlvbkluZGV4XS0+ZW50cnlwb2ludC5jb21waWxhdGlvbiA9IG1ha2VV
bmlxdWU8SlNDOjpDb21waWxhdGlvbj4oCisgICAgICAgICAgICAgICAgRklOQUxJWkVfQ09ERShs
aW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIldlYkFzc2VtYmx5IEJCUSBmdW5jdGlv
blslaV0gJXMgbmFtZSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0cmluZygpLmFz
Y2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5kZXhTcGFjZSwg
bV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2Up
KSkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICAgICAgICAgIFdURk1vdmUoY29udGV4dC53YXNt
RW50cnlwb2ludEJ5cHJvZHVjdHMpKTsKICAgICAgICAgfQogCkBAIC0yMzgsOCArMjM4LDggQEAg
dm9pZCBCQlFQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBlbWJlZGRlclRvV2FzbUludGVybmFsRnVuY3Rpb24tPmVudHJ5cG9pbnQuY29tcGls
YXRpb24gPSBtYWtlVW5pcXVlPEIzOjpDb21waWxhdGlvbj4oCi0gICAgICAgICAgICAgICAgRklO
QUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiRW1iZWRkZXItPldl
YkFzc2VtYmx5IGVudHJ5cG9pbnRbJWldICVzIG5hbWUgJXMiLCBmdW5jdGlvbkluZGV4LCBzaWdu
YXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShm
dW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQo
ZnVuY3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKKyAgICAgICAgICAgIGVtYmVk
ZGVyVG9XYXNtSW50ZXJuYWxGdW5jdGlvbi0+ZW50cnlwb2ludC5jb21waWxhdGlvbiA9IG1ha2VV
bmlxdWU8SlNDOjpDb21waWxhdGlvbj4oCisgICAgICAgICAgICAgICAgRklOQUxJWkVfQ09ERShs
aW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIkVtYmVkZGVyLT5XZWJBc3NlbWJseSBl
bnRyeXBvaW50WyVpXSAlcyBuYW1lICVzIiwgZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRvU3Ry
aW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25JbmRl
eFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9uSW5k
ZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCiAgICAgICAgICAgICAgICAgbnVsbHB0cik7CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQmluZGluZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuaApp
bmRleCAwMDdlZTgxYjhkYjMuLjIzYmFjYmYyODQwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQmluZGluZy5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCisjaW5jbHVkZSAiSklUQ29tcGls
YXRpb24uaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVk
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaAppbmRleCBiYTM5ZTU2
YzIzMTQuLjcwNjc2ODY3MjAwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxlZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxs
ZWUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5j
bHVkZSAiQjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5j
bHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJXYXNtQ29tcGlsYXRpb25N
b2RlLmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUZvcm1hdC5oCmluZGV4IGZiZTg2MGMwMzYzNC4uZjk4MWUyMDE5NzA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC00Niw5ICs0Niw3IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1uYW1lc3BhY2UgQjMgewogY2xhc3MgQ29tcGlsYXRpb247Ci19CiAKIG5h
bWVzcGFjZSBXYXNtIHsKIApAQCAtMzQwLDcgKzMzOCw3IEBAIHN0cnVjdCBVbmxpbmtlZFdhc21U
b1dhc21DYWxsIHsKIAogc3RydWN0IEVudHJ5cG9pbnQgewogICAgIFdURl9NQUtFX1NUUlVDVF9G
QVNUX0FMTE9DQVRFRDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QjM6OkNvbXBpbGF0aW9uPiBjb21w
aWxhdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpDb21waWxhdGlvbj4gY29tcGlsYXRp
b247CiAgICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKaW5kZXggYTNk
NGY2MWQ4Y2JjLi42MDA3NjAxNjJjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21MTEludFBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludFBsYW4uY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCisjaW5jbHVkZSAiSklUQ29tcGls
YXRpb24uaCIKICNpbmNsdWRlICJCeXRlY29kZUR1bXBlci5oIgogI2luY2x1ZGUgIkNhbGxlZUJp
dHMuaCIKICNpbmNsdWRlICJKU1RvV2FzbS5oIgpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgTExJ
bnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2Nr
ZXIpCiAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbms8SklUVGh1bmtQdHJUYWc+KGp1bXBzW2ld
LCBDb2RlTG9jYXRpb25MYWJlbDxKSVRUaHVua1B0clRhZz4oTExJbnQ6Ondhc21GdW5jdGlvbkVu
dHJ5VGh1bmsoKS5jb2RlKCkpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fZW50cnlUaHVua3Mg
PSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJXYXNtIExM
SW50IGVudHJ5IHRodW5rcyIpOworICAgICAgICBtX2VudHJ5VGh1bmtzID0gRklOQUxJWkVfQ09E
RShsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIldhc20gTExJbnQgZW50cnkgdGh1
bmtzIik7CiAgICAgICAgIG1fY2FsbGVlcyA9IG1fY2FsbGVlc1ZlY3Rvci5kYXRhKCk7CiAgICAg
fQogCkBAIC0xNTIsOCArMTUyLDggQEAgdm9pZCBMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGls
YXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uLT5lbnRyeXBvaW50LmNv
bXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICAgICAgICAg
IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgIkVtYmVkZGVy
LT5XZWJBc3NlbWJseSBlbnRyeXBvaW50WyVpXSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25hdHVy
ZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKSwKKyAgICAgICAgICAgIGZ1bmN0aW9uLT5lbnRy
eXBvaW50LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxKU0M6OkNvbXBpbGF0aW9uPigKKyAgICAg
ICAgICAgICAgICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFn
LCAiRW1iZWRkZXItPldlYkFzc2VtYmx5IGVudHJ5cG9pbnRbJWldICVzIiwgZnVuY3Rpb25JbmRl
eCwgc2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICAgICAgICAg
IG51bGxwdHIpOwogCiAgICAgICAgICAgICBSZWY8RW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlPiBj
YWxsZWUgPSBFbWJlZGRlckVudHJ5cG9pbnRDYWxsZWU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9u
LT5lbnRyeXBvaW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFu
LmgKaW5kZXggMmVjYzQyODczNzlhLi40OWViMDA5Y2FhZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAg
IEpTX0VYUE9SVF9QUklWQVRFIExMSW50UGxhbihDb250ZXh0KiwgVmVjdG9yPHVpbnQ4X3Q+JiYs
IEFzeW5jV29yaywgQ29tcGxldGlvblRhc2smJik7CiAgICAgTExJbnRQbGFuKENvbnRleHQqLCBS
ZWY8TW9kdWxlSW5mb3JtYXRpb24+LCBjb25zdCBSZWY8TExJbnRDYWxsZWU+KiwgQ29tcGxldGlv
blRhc2smJik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRh
Zz4mJiB0YWtlRW50cnlUaHVua3MoKQorICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21w
aWxhdGlvblB0clRhZz4mJiB0YWtlRW50cnlUaHVua3MoKQogICAgIHsKICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoIWZhaWxlZCgpICYmICFoYXNXb3JrKCkpOwogICAgICAgICByZXR1cm4gV1RGTW92
ZShtX2VudHJ5VGh1bmtzKTsKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBS
ZWY8TExJbnRDYWxsZWU+KiBtX2NhbGxlZXMgeyBudWxscHRyIH07CiAgICAgVmVjdG9yPFJlZjxM
TEludENhbGxlZT4+IG1fY2FsbGVlc1ZlY3RvcjsKICAgICBFbWJlZGRlckVudHJ5cG9pbnRDYWxs
ZWVNYXAgbV9lbWJlZGRlckNhbGxlZXM7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIzQ29t
cGlsYXRpb25QdHJUYWc+IG1fZW50cnlUaHVua3M7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEpJVENvbXBpbGF0aW9uUHRyVGFnPiBtX2VudHJ5VGh1bmtzOwogfTsKIAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmgKaW5kZXggZmFkYTRiMmNlNTUxLi5hNWVkMGZlNzNl
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmgKQEAgLTczLDcgKzcz
LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8TW9kdWxlSW5mb3JtYXRpb24+IG1fbW9kdWxlSW5mb3Jt
YXRpb247CiAgICAgUmVmUHRyPENvZGVCbG9jaz4gbV9jb2RlQmxvY2tzW1dhc206Ok51bWJlck9m
TWVtb3J5TW9kZXNdOwogICAgIFJlZlB0cjxMTEludENhbGxlZXM+IG1fbGxpbnRDYWxsZWVzOwot
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBtX2xsaW50RW50
cnlUaHVua3M7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFn
PiBtX2xsaW50RW50cnlUaHVua3M7CiAgICAgTG9jayBtX2xvY2s7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwCmlu
ZGV4IGMyMjM5MWVjNThjOC4uZWQ4MzYxNWQyNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcApAQCAtMjgsNyArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiQjNDb21waWxhdGlv
bi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogI2luY2x1ZGUgIldhc21CM0lSR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxlZS5o
IgpAQCAtODksOCArODksOCBAQCB2b2lkIE9NR0Zvck9TUkVudHJ5UGxhbjo6d29yayhDb21waWxh
dGlvbkVmZm9ydCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG9tZ0VudHJ5cG9pbnQu
Y29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPEIzOjpDb21waWxhdGlvbj4oCi0gICAgICAgIEZJTkFM
SVpFX1dBU01fQ09ERV9GT1JfTU9ERShDb21waWxhdGlvbk1vZGU6Ok9NR0Zvck9TUkVudHJ5TW9k
ZSwgbGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgIldlYkFzc2VtYmx5IE9NR0Zvck9T
UkVudHJ5IGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwgbV9mdW5jdGlvbkluZGV4LCBzaWduYXR1
cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5j
dGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVu
Y3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKKyAgICBvbWdFbnRyeXBvaW50LmNv
bXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxKU0M6OkNvbXBpbGF0aW9uPigKKyAgICAgICAgRklOQUxJ
WkVfV0FTTV9DT0RFX0ZPUl9NT0RFKENvbXBpbGF0aW9uTW9kZTo6T01HRm9yT1NSRW50cnlNb2Rl
LCBsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIldlYkFzc2VtYmx5IE9NR0Zvck9T
UkVudHJ5IGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwgbV9mdW5jdGlvbkluZGV4LCBzaWduYXR1
cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5j
dGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVu
Y3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgV1RGTW92ZShjb250
ZXh0Lndhc21FbnRyeXBvaW50Qnlwcm9kdWN0cykpOwogCiAgICAgb21nRW50cnlwb2ludC5jYWxs
ZWVTYXZlUmVnaXN0ZXJzID0gV1RGTW92ZShwYXJzZUFuZENvbXBpbGVSZXN1bHQudmFsdWUoKS0+
ZW50cnlwb2ludC5jYWxsZWVTYXZlUmVnaXN0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PTUdQbGFuLmNwcAppbmRleCAxNmI3NDE1MDE0OTkuLmI5NjgwNGQyNjhjMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcApAQCAtMjgsNyArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiQjNDb21waWxhdGlv
bi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogI2luY2x1ZGUgIldhc21CM0lSR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2FzbUNhbGxlZS5o
IgpAQCAtODYsOCArODYsOCBAQCB2b2lkIE9NR1BsYW46OndvcmsoQ29tcGlsYXRpb25FZmZvcnQp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvbWdFbnRyeXBvaW50LmNvbXBpbGF0aW9u
ID0gbWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICBGSU5BTElaRV9XQVNNX0NP
REVfRk9SX01PREUoQ29tcGlsYXRpb25Nb2RlOjpPTUdNb2RlLCBsaW5rQnVmZmVyLCBCM0NvbXBp
bGF0aW9uUHRyVGFnLCAiV2ViQXNzZW1ibHkgT01HIGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwg
bV9mdW5jdGlvbkluZGV4LCBzaWduYXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFr
ZVN0cmluZyhJbmRleE9yTmFtZShmdW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRp
b24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgp
KSwKKyAgICBvbWdFbnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxKU0M6OkNvbXBp
bGF0aW9uPigKKyAgICAgICAgRklOQUxJWkVfV0FTTV9DT0RFX0ZPUl9NT0RFKENvbXBpbGF0aW9u
TW9kZTo6T01HTW9kZSwgbGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3Nl
bWJseSBPTUcgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25h
dHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1
bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChm
dW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICBXVEZNb3ZlKGNv
bnRleHQud2FzbUVudHJ5cG9pbnRCeXByb2R1Y3RzKSk7CiAKICAgICBvbWdFbnRyeXBvaW50LmNh
bGxlZVNhdmVSZWdpc3RlcnMgPSBXVEZNb3ZlKHBhcnNlQW5kQ29tcGlsZVJlc3VsdC52YWx1ZSgp
LT5lbnRyeXBvaW50LmNhbGxlZVNhdmVSZWdpc3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVBhcnNlci5oCmluZGV4IGExNWJlZGQ0MmJiZS4uYWRlZTQ3NjYyNmFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCisjaW5j
bHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgogI2luY2x1
ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5oCmluZGV4IDcxOWM0NTk1MzI2MS4uNTQ1OTli
NDg0Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9K
Uy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmgKQEAgLTI3
LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotI2luY2x1ZGUgIkIzQ29t
cGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIldhc21C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiV2FzbUVtYmVkZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5o
PgotLSAKMi4yOS4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417707</attachid>
            <date>2021-01-15 09:13:01 -0800</date>
            <delta_ts>2021-01-16 02:24:34 -0800</delta_ts>
            <desc>WIP.</desc>
            <filename>0001-JSC-Implement-a-B3-Compilation-replacement-for-wasm-.patch</filename>
            <type>text/plain</type>
            <size>41870</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBjNDg2NWEzMGQzNGI0ZTg5MTAwOGEyZWI4ZjYzYTkyYjAwMzA4N2NiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogRnJpLCAxNSBKYW4gMjAyMSAxNzo1MjoyOCArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIEltcGxlbWVudCBhIEIzOjpDb21waWxhdGlvbiByZXBsYWNlbWVudCBmb3Ig
d2FzbS1sbGludAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDU4
NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAuCgoqIENNYWtlTGlzdHMudHh0Ogoq
IFNvdXJjZXMudHh0OgoqIGIzL0IzQ29tcGlsZS5jcHA6CihKU0M6OkIzOjpjb21waWxlKToKKiBi
My9CM0NvbXBpbGUuaDoKKiBiMy9CM0RhdGFTZWN0aW9uLmg6CiogYjMvQjNQcm9jZWR1cmUuY3Bw
OgoqIGIzL0IzUHJvY2VkdXJlLmg6CiogYjMvYWlyL3Rlc3RhaXIuY3BwOgoqIGIzL3Rlc3RiMy5o
OgooaW52b2tlKToKKiBiMy90ZXN0YjNfNi5jcHA6Cih0ZXN0SW50ZXJwcmV0ZXIpOgoodGVzdEVu
dHJ5U3dpdGNoU2ltcGxlKToKKHRlc3RFbnRyeVN3aXRjaE5vRW50cnlTd2l0Y2gpOgoodGVzdEVu
dHJ5U3dpdGNoV2l0aENvbW1vblBhdGhzKToKKHRlc3RFbnRyeVN3aXRjaFdpdGhDb21tb25QYXRo
c0FuZE5vblRyaXZpYWxFbnRyeXBvaW50KToKKHRlc3RFbnRyeVN3aXRjaExvb3ApOgoqIGZ0bC9G
VExKSVRDb2RlLmg6CiogZnRsL0ZUTE91dHB1dC5oOgoqIGppdC9KSVRDb21waWxhdGlvbi5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5jcHAu
CihKU0M6OkNvbXBpbGF0aW9uOjpDb21waWxhdGlvbik6CihKU0M6OkNvbXBpbGF0aW9uOjp+Q29t
cGlsYXRpb24pOgoqIGppdC9KSVRDb21waWxhdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRpb24uaC4KKEpTQzo6Q29tcGlsYXRpb246OmNvZGUg
Y29uc3QpOgooSlNDOjpDb21waWxhdGlvbjo6Y29kZVJlZiBjb25zdCk6CihKU0M6OkNvbXBpbGF0
aW9uOjpkaXNhc3NlbWJseSBjb25zdCk6Ciogaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0LmguCihK
U0M6Ok9wYXF1ZUJ5cHJvZHVjdDo6T3BhcXVlQnlwcm9kdWN0KToKKEpTQzo6T3BhcXVlQnlwcm9k
dWN0Ojp+T3BhcXVlQnlwcm9kdWN0KToKKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5jcHA6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNw
cC4KKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6T3BhcXVlQnlwcm9kdWN0cyk6CihKU0M6Ok9wYXF1
ZUJ5cHJvZHVjdHM6On5PcGFxdWVCeXByb2R1Y3RzKToKKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6
YWRkKToKKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6ZHVtcCBjb25zdCk6Ciogaml0L0pJVE9wYXF1
ZUJ5cHJvZHVjdHMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
YXF1ZUJ5cHJvZHVjdHMuaC4KKEpTQzo6T3BhcXVlQnlwcm9kdWN0czo6Y291bnQgY29uc3QpOgoq
IHJ1bnRpbWUvSlNDUHRyVGFnLmg6Ciogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5oOgoqIHdhc20v
V2FzbUJCUVBsYW4uY3BwOgooSlNDOjpXYXNtOjpCQlFQbGFuOjp3b3JrKToKKEpTQzo6V2FzbTo6
QkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6Ciogd2FzbS9XYXNtQmluZGluZy5oOgoq
IHdhc20vV2FzbUNhbGxlZS5oOgoqIHdhc20vV2FzbUZvcm1hdC5oOgoqIHdhc20vV2FzbUxMSW50
UGxhbi5jcHA6CihKU0M6Oldhc206OkxMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6
Ciogd2FzbS9XYXNtTExJbnRQbGFuLmg6Ciogd2FzbS9XYXNtTW9kdWxlLmg6Ciogd2FzbS9XYXNt
T01HRm9yT1NSRW50cnlQbGFuLmNwcDoKKEpTQzo6V2FzbTo6T01HRm9yT1NSRW50cnlQbGFuOjp3
b3JrKToKKiB3YXNtL1dhc21PTUdQbGFuLmNwcDoKKEpTQzo6V2FzbTo6T01HUGxhbjo6d29yayk6
Ciogd2FzbS9XYXNtUGFyc2VyLmg6Ciogd2FzbS9qcy9XYXNtVG9KUy5oOgotLS0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvU291cmNlcy50eHQgICAgICAgICAgICAgfCAgNCArLQogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5jcHAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbXBpbGUuaCAgICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNEYXRhU2VjdGlvbi5oICAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmNwcCAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5oICAgICAgICB8ICA0ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL3Rlc3RhaXIuY3BwICAgICAgfCAxNCArKystLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuaCAgICAgICAgICAgICB8ICA2ICstLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiM182LmNwcCAgICAgICAgIHwgNDYgKysrKysrKysrLS0tLS0tLS0tLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmggICAgICAgIHwgIDYgKy0tCiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oICAgICAgICAgfCAgMiArLQogLi4uL0pJVENv
bXBpbGF0aW9uLmNwcH0gICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrLS0tCiAuLi4vQjND
b21waWxhdGlvbi5oID0+IGppdC9KSVRDb21waWxhdGlvbi5ofSAgfCAyMCArKysrLS0tLQogLi4u
L0pJVE9wYXF1ZUJ5cHJvZHVjdC5ofSAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLQogLi4u
L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuY3BwfSAgICAgICAgICAgICAgICAgIHwgMTAgKystLQogLi4u
L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuaH0gICAgICAgICAgICAgICAgICAgIHwgMTAgKystLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggICAgIHwgIDIgKy0KIC4uLi9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmggICB8ICA2ICstLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwICAgIHwgMTQgKysrLS0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5oICAgICAgfCAgMiArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oICAgICAgIHwgIDIgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCAgICAgICB8ICA0ICstCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcCAgfCAgOCArKy0tCiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmggICAgfCAgNCArLQogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5oICAgICAgIHwgIDIgKy0KIC4uLi93YXNtL1dhc21P
TUdGb3JPU1JFbnRyeVBsYW4uY3BwICAgICAgICAgICB8ICA2ICstLQogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwICAgIHwgIDYgKy0tCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtUGFyc2VyLmggICAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuaCAgICAgIHwgIDIgKy0KIDMwIGZpbGVzIGNoYW5nZWQsIDEw
NCBpbnNlcnRpb25zKCspLCAxMTAgZGVsZXRpb25zKC0pCiByZW5hbWUgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3tiMy9CM0NvbXBpbGF0aW9uLmNwcCA9PiBqaXQvSklUQ29tcGlsYXRpb24uY3BwfSAo
ODUlKQogcmVuYW1lIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS97YjMvQjNDb21waWxhdGlvbi5oID0+
IGppdC9KSVRDb21waWxhdGlvbi5ofSAoNzclKQogcmVuYW1lIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS97YjMvQjNPcGFxdWVCeXByb2R1Y3QuaCA9PiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0Lmh9ICg5
NCUpCiByZW5hbWUgU291cmNlL0phdmFTY3JpcHRDb3JlL3tiMy9CM09wYXF1ZUJ5cHJvZHVjdHMu
Y3BwID0+IGppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcH0gKDkzJSkKIHJlbmFtZSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUve2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oID0+IGppdC9KSVRPcGFxdWVC
eXByb2R1Y3RzLmh9ICg5MyUpCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDU4YTU3MDY5N2ViOS4uODkzOTkwZjQ5NmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC01MjEsNyArNTIxLDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBhc3NlbWJsZXIvWDg2XzY0UmVnaXN0ZXJzLmgKIAogICAgIGIz
L0IzQ29tbW9uLmgKLSAgICBiMy9CM0NvbXBpbGF0aW9uLmgKICAgICBiMy9CM1R5cGUuaAogCiAg
ICAgYmluZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmgKQEAgLTc1Nyw2ICs3NTYsNyBAQCBzZXQo
SmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGppdC9KSVRBbGxv
Y2F0b3IuaAogICAgIGppdC9KSVRDb2RlLmgKICAgICBqaXQvSklUQ29kZU1hcC5oCisgICAgaml0
L0pJVENvbXBpbGF0aW9uLmgKICAgICBqaXQvSklUQ29tcGlsYXRpb25FZmZvcnQuaAogICAgIGpp
dC9KSVRNYXRoSUNGb3J3YXJkcy5oCiAgICAgaml0L0pJVE9wZXJhdGlvbnMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDZiOTc4YTM5MGU4My4uNWJmYjBhYWI3ZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NvdXJjZXMudHh0CkBAIC0xMjAsNyArMTIwLDYgQEAgYjMvQjNDaGVja1ZhbHVl
LmNwcAogYjMvQjNDb21tb24uY3BwCiBiMy9CM0NvbW11dGF0aXZpdHkuY3BwCiBiMy9CM0NvbXBp
bGUuY3BwCi1iMy9CM0NvbXBpbGF0aW9uLmNwcAogYjMvQjNDb25zdDMyVmFsdWUuY3BwCiBiMy9C
M0NvbnN0NjRWYWx1ZS5jcHAKIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5jcHAKQEAgLTE0OSw3ICsx
NDgsNiBAQCBiMy9CM0xvd2VyVG9BaXIuY3BwCiBiMy9CM01hdGhFeHRyYXMuY3BwCiBiMy9CM01l
bW9yeVZhbHVlLmNwcAogYjMvQjNNb3ZlQ29uc3RhbnRzLmNwcAotYjMvQjNPcGFxdWVCeXByb2R1
Y3RzLmNwcAogYjMvQjNPcGNvZGUuY3BwCiBiMy9CM09wdGltaXplQXNzb2NpYXRpdmVFeHByZXNz
aW9uVHJlZXMuY3BwCiBiMy9CM09yaWdpbi5jcHAKQEAgLTY0Myw2ICs2NDEsNyBAQCBqaXQvSklU
Qml0WG9yR2VuZXJhdG9yLmNwcAogaml0L0pJVENhbGwuY3BwCiBqaXQvSklUQ2FsbDMyXzY0LmNw
cAogaml0L0pJVENvZGUuY3BwCitqaXQvSklUQ29tcGlsYXRpb24uY3BwCiBqaXQvSklURGlzYXNz
ZW1ibGVyLmNwcAogaml0L0pJVERpdkdlbmVyYXRvci5jcHAKIGppdC9KSVRFeGNlcHRpb25zLmNw
cApAQCAtNjUwLDYgKzY0OSw3IEBAIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKIGpp
dC9KSVRMZWZ0U2hpZnRHZW5lcmF0b3IuY3BwCiBqaXQvSklUTXVsR2VuZXJhdG9yLmNwcAogaml0
L0pJVE5lZ0dlbmVyYXRvci5jcHAKK2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcAogaml0L0pJ
VE9wY29kZXMuY3BwCiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcAogaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuY3BwCmluZGV4IGUzNDk0M2M0ZTM5
Yy4uMjc3MDlhNWJlOTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b21waWxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxlLmNwcApA
QCAtNDYsNyArNDYsNyBAQCBDb21waWxhdGlvbiBjb21waWxlKFByb2NlZHVyZSYgcHJvYykKICAg
ICBnZW5lcmF0ZShwcm9jLCBqaXQpOwogICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQsIG51
bGxwdHIpOwogCi0gICAgcmV0dXJuIENvbXBpbGF0aW9uKEZJTkFMSVpFX0NPREUobGlua0J1ZmZl
ciwgQjNDb21waWxhdGlvblB0clRhZywgIkIzOjpDb21waWxhdGlvbiIpLCBwcm9jLnJlbGVhc2VC
eXByb2R1Y3RzKCkpOworICAgIHJldHVybiBDb21waWxhdGlvbihGSU5BTElaRV9DT0RFKGxpbmtC
dWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiSlNDOjpDb21waWxhdGlvbiIpLCBwcm9jLnJl
bGVhc2VCeXByb2R1Y3RzKCkpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuaAppbmRleCA1YmJmNzc5ZjE4YzAuLjk3ZjJiNjlmNjU2
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuaApAQCAtMjgsNyArMjgsNyBAQAog
I2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgotI2luY2x1ZGUgIkIz
Q29tcGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmgKaW5kZXggMjY4
ZjY1MTRmM2QwLi5kZmYxNDI1MDQ3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0RhdGFTZWN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0
YVNlY3Rpb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAotI2lu
Y2x1ZGUgIkIzT3BhcXVlQnlwcm9kdWN0LmgiCisjaW5jbHVkZSAiSklUT3BhcXVlQnlwcm9kdWN0
LmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmNwcAppbmRleCA4ZGM0MjI2Y2Q1NTIuLmE1MmMwZjdmYWUxMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCkBAIC0zNiwxMSArMzYs
MTEgQEAKICNpbmNsdWRlICJCM0RhdGFTZWN0aW9uLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3Jz
LmgiCiAjaW5jbHVkZSAiQjNOYXR1cmFsTG9vcHMuaCIKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJv
ZHVjdHMuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1N0
YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJp
YWJsZS5oIgorI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCIKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgK
aW5kZXggM2VlMDUwNjJiYmRiLi4wNmZmNmY1ZmExM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5oCkBAIC0yNywxMiArMjcsMTIgQEAKIAogI2lmIEVOQUJMRShCM19KSVQp
CiAKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVjdHMuaCIKICNpbmNsdWRlICJCM09yaWdpbi5o
IgogI2luY2x1ZGUgIkIzUENUb09yaWdpbk1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVLZXkuaCIKKyNp
bmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAiUHVyZU5hTi5oIgogI2lu
Y2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgpAQCAt
MjMxLDcgKzIzMSw3IEBAIHB1YmxpYzoKICAgICAvLyBZb3UgaGF2ZSB0byBjYWxsIHRoaXMgbWV0
aG9kIGFmdGVyIGNhbGxpbmcgZ2VuZXJhdGUoKS4gVGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IEIzOjpn
ZW5lcmF0ZSgpCiAgICAgLy8gd2lsbCByZXF1aXJlIHlvdSB0byBrZWVwIHRoaXMgb2JqZWN0IGFs
aXZlIGZvciBhcyBsb25nIGFzIHRoYXQgY29kZSBpcyBydW5uYWJsZS4gVXN1YWxseSwgdGhpcwog
ICAgIC8vIGp1c3Qga2VlcHMgYWxpdmUgdGhpbmdzIGxpa2UgdGhlIGRvdWJsZSBjb25zdGFudCBw
b29sIGFuZCBzd2l0Y2ggbG9va3VwIHRhYmxlcy4gSWYgdGhpcyBzb3VuZHMKLSAgICAvLyBjb25m
dXNpbmcsIHlvdSBzaG91bGQgcHJvYmFibHkgYmUgdXNpbmcgdGhlIEIzOjpDb21waWxhdGlvbiBB
UEkgdG8gY29tcGlsZSBjb2RlLiBJZiB5b3UgdXNlCisgICAgLy8gY29uZnVzaW5nLCB5b3Ugc2hv
dWxkIHByb2JhYmx5IGJlIHVzaW5nIHRoZSBKU0M6OkNvbXBpbGF0aW9uIEFQSSB0byBjb21waWxl
IGNvZGUuIElmIHlvdSB1c2UKICAgICAvLyB0aGF0IEFQSSwgdGhlbiB5b3UgZG9uJ3QgaGF2ZSB0
byB3b3JyeSBhYm91dCB0aGlzLgogICAgIHN0ZDo6dW5pcXVlX3B0cjxPcGFxdWVCeXByb2R1Y3Rz
PiByZWxlYXNlQnlwcm9kdWN0cygpIHsgcmV0dXJuIFdURk1vdmUobV9ieXByb2R1Y3RzKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAppbmRleCBmZWZjN2ExMThh
OGYuLjlhZGY0YWJkYzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci90ZXN0YWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIu
Y3BwCkBAIC0zMCwxMyArMzAsMTMgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVk
ZSAiQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Js
b2NrSW5saW5lcy5oIgotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKLSNpbmNsdWRlICJCM1By
b2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzUGF0Y2hwb2ludFNwZWNpYWwuaCIKICNpbmNsdWRlICJC
M1BhdGNocG9pbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAi
QjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIK
ICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRp
b24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiUHJvYmVDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUHVyZU5hTi5oIgpAQCAtODUsMjEgKzg1LDIxIEBAIExvY2sgY3Jhc2hMb2Nr
OwogICAgICAgICBDUkFTSCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCi1zdGQ6OnVuaXF1ZV9w
dHI8QjM6OkNvbXBpbGF0aW9uPiBjb21waWxlKEIzOjpQcm9jZWR1cmUmIHByb2MpCitzdGQ6OnVu
aXF1ZV9wdHI8SlNDOjpDb21waWxhdGlvbj4gY29tcGlsZShCMzo6UHJvY2VkdXJlJiBwcm9jKQog
ewogICAgIHByZXBhcmVGb3JHZW5lcmF0aW9uKHByb2MuY29kZSgpKTsKICAgICBDQ2FsbEhlbHBl
cnMgaml0OwogICAgIGdlbmVyYXRlKHByb2MuY29kZSgpLCBqaXQpOwogICAgIExpbmtCdWZmZXIg
bGlua0J1ZmZlcihqaXQsIG51bGxwdHIpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8QjM6OkNv
bXBpbGF0aW9uPigKLSAgICAgICAgRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0
aW9uUHRyVGFnLCAidGVzdGFpciBjb21waWxhdGlvbiIpLCBwcm9jLnJlbGVhc2VCeXByb2R1Y3Rz
KCkpOworICAgIHJldHVybiBtYWtlVW5pcXVlPEpTQzo6Q29tcGlsYXRpb24+KAorICAgICAgICBG
SU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGFpciBj
b21waWxhdGlvbiIpLCBwcm9jLnJlbGVhc2VCeXByb2R1Y3RzKCkpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci1UIGludm9rZShjb25zdCBCMzo6Q29t
cGlsYXRpb24mIGNvZGUsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCitUIGludm9rZShjb25zdCBK
U0M6OkNvbXBpbGF0aW9uJiBjb2RlLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQogewotICAgIHZv
aWQqIGV4ZWN1dGFibGVBZGRyZXNzID0gdW50YWdDRnVuY3Rpb25QdHI8QjNDb21waWxhdGlvblB0
clRhZz4oY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgdm9pZCogZXhlY3V0
YWJsZUFkZHJlc3MgPSB1bnRhZ0NGdW5jdGlvblB0cjxKSVRDb21waWxhdGlvblB0clRhZz4oY29k
ZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiAgICAgVCAoKmZ1bmN0aW9uKShBcmd1bWVu
dHMuLi4pID0gYml0d2lzZV9jYXN0PFQoKikoQXJndW1lbnRzLi4uKT4oZXhlY3V0YWJsZUFkZHJl
c3MpOwogICAgIHJldHVybiBmdW5jdGlvbihhcmd1bWVudHMuLi4pOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5oCmluZGV4IDAxM2ZhNTAzZWMyZS4uZjIzMTFlZjIzZDg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQjNCYXNpY0Js
b2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCiAjaW5jbHVk
ZSAiQjNDQ2FsbFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgogI2luY2x1ZGUg
IkIzQ29tcGlsZS5oIgogI2luY2x1ZGUgIkIzQ29tcHV0ZURpdmlzaW9uTWFnaWMuaCIKICNpbmNs
dWRlICJCM0NvbnN0MzJWYWx1ZS5oIgpAQCAtNjcsNiArNjYsNyBAQAogI2luY2x1ZGUgIkZQUklu
Zm8uaCIKICNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJQdXJlTmFOLmgiCkBAIC0xOTYs
OSArMTk2LDkgQEAgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxDb21waWxhdGlvbj4gY29tcGlsZVBy
b2MoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIHVuc2lnbmVkIG8KIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotVCBpbnZva2UoTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEIzQ29tcGlsYXRpb25QdHJUYWc+IHB0ciwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKK1Qg
aW52b2tlKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKSVRDb21waWxhdGlvblB0clRhZz4gcHRyLCBB
cmd1bWVudHMuLi4gYXJndW1lbnRzKQogewotICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzID0g
dW50YWdDRnVuY3Rpb25QdHI8QjNDb21waWxhdGlvblB0clRhZz4ocHRyLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpOworICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzID0gdW50YWdDRnVuY3Rpb25QdHI8
SklUQ29tcGlsYXRpb25QdHJUYWc+KHB0ci5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICBUICgq
ZnVuY3Rpb24pKEFyZ3VtZW50cy4uLikgPSBiaXR3aXNlX2Nhc3Q8VCgqKShBcmd1bWVudHMuLi4p
PihleGVjdXRhYmxlQWRkcmVzcyk7CiAgICAgcmV0dXJuIGZ1bmN0aW9uKGFyZ3VtZW50cy4uLik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcAppbmRleCAyOWFhOTkxYzg5ZmMu
LjMxYWZmMzlmNDBmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
M182LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCkBAIC0x
Njc0LDE5ICsxNjc0LDE5IEBAIHZvaWQgdGVzdEludGVycHJldGVyKCkKICAgICAgICAgICAgIEFs
bG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAg
ICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGxhYmVscyA9IHBhcmFtcy5zdWNj
ZXNzb3JMYWJlbHMoKTsKIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEIzQ29t
cGlsYXRpb25QdHJUYWc+KiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEIzQ29tcGlsYXRpb25QdHJUYWc+Kj4oCi0gICAgICAgICAgICAgICAgcGFyYW1zLnBy
b2MoKS5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEIzQ29tcGls
YXRpb25QdHJUYWc+KSAqIGxhYmVscy5zaXplKCkpKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cjxKSVRDb21waWxhdGlvblB0clRhZz4qIGp1bXBUYWJsZSA9IGJpdHdpc2VfY2Fz
dDxNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SklUQ29tcGlsYXRpb25QdHJUYWc+Kj4oCisgICAgICAg
ICAgICAgICAgcGFyYW1zLnByb2MoKS5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRyVGFnPikgKiBsYWJlbHMuc2l6ZSgpKSk7CiAKICAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gcGFyYW1zLmdwU2NyYXRjaCgwKTsKIAogICAgICAg
ICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJsZSksIHNj
cmF0Y2gpOwogICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChz
Y3JhdGNoLCBwYXJhbXNbMF0uZ3ByKCksIENDYWxsSGVscGVyczo6U2NhbGVQdHIpLCBzY3JhdGNo
KTsKLSAgICAgICAgICAgIGppdC5mYXJKdW1wKHNjcmF0Y2gsIEIzQ29tcGlsYXRpb25QdHJUYWcp
OworICAgICAgICAgICAgaml0LmZhckp1bXAoc2NyYXRjaCwgSklUQ29tcGlsYXRpb25QdHJUYWcp
OwogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCiAgICAgICAgICAgICAgICAgWyYsIGp1
bXBUYWJsZSwgbGFiZWxzXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBsYWJlbHMuc2l6ZSgpOyBpLS07KQotICAgICAgICAg
ICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29t
cGlsYXRpb25QdHJUYWc+KCpsYWJlbHNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAganVt
cFRhYmxlW2ldID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPigq
bGFiZWxzW2ldKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE5Mzcs
MTEgKzE5MzcsMTEgQEAgdm9pZCB0ZXN0RW50cnlTd2l0Y2hTaW1wbGUoKQogICAgIENDYWxsSGVs
cGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJvYywgaml0KTsKICAgICBMaW5rQnVmZmVyIGxpbmtC
dWZmZXIoaml0LCBudWxscHRyKTsKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9u
UHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRy
VGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOwotICAgIENvZGVMb2NhdGlvbkxh
YmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9m
PEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7Ci0g
ICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxUaHJlZSA9IGxp
bmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRy
eXBvaW50TGFiZWwoMikpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRy
VGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRh
Zz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKKyAgICBDb2RlTG9jYXRpb25MYWJl
bDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8
SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7Cisg
ICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVGhyZWUgPSBs
aW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVu
dHJ5cG9pbnRMYWJlbCgyKSk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxh
dGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxh
dGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOworICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1
ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKIAogICAg
IENIRUNLKGludm9rZTxpbnQ+KGxhYmVsT25lLCAxLCAyKSA9PSAzKTsKICAgICBDSEVDSyhpbnZv
a2U8aW50PihsYWJlbFR3bywgMSwgMikgPT0gLTEpOwpAQCAtMTk3MCwxMSArMTk3MCwxMSBAQCB2
b2lkIHRlc3RFbnRyeVN3aXRjaE5vRW50cnlTd2l0Y2goKQogICAgIENDYWxsSGVscGVycyBqaXQ7
CiAgICAgZ2VuZXJhdGUocHJvYywgaml0KTsKICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0
LCBudWxscHRyKTsKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBs
YWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9j
LmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29t
cGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGls
YXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7Ci0gICAgQ29kZUxv
Y2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxUaHJlZSA9IGxpbmtCdWZmZXIu
bG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFi
ZWwoMikpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJl
bE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5j
b2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21w
aWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGls
YXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7CisgICAgQ29kZUxv
Y2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVy
LmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRM
YWJlbCgyKSk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRh
Zz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRh
ZywgInRlc3RiMyBjb21waWxhdGlvbiIpOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRD
b21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklU
Q29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKIAogICAgIENIRUNLX0VR
KGludm9rZTxpbnQ+KGxhYmVsT25lLCAxLCAyKSwgMyk7CiAgICAgQ0hFQ0tfRVEoaW52b2tlPGlu
dD4obGFiZWxUd28sIDEsIDIpLCAzKTsKQEAgLTIwNTcsMTEgKzIwNTcsMTEgQEAgdm9pZCB0ZXN0
RW50cnlTd2l0Y2hXaXRoQ29tbW9uUGF0aHMoKQogICAgIENDYWxsSGVscGVycyBqaXQ7CiAgICAg
Z2VuZXJhdGUocHJvYywgaml0KTsKICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBudWxs
cHRyKTsKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9u
ZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUo
KS5lbnRyeXBvaW50TGFiZWwoMCkpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRp
b25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25Q
dHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7Ci0gICAgQ29kZUxvY2F0aW9u
TGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxUaHJlZSA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMikp
OworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9
IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCku
ZW50cnlwb2ludExhYmVsKDApKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlv
blB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25Q
dHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7CisgICAgQ29kZUxvY2F0aW9u
TGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVyLmxvY2F0
aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgy
KSk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29k
ZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgInRl
c3RiMyBjb21waWxhdGlvbiIpOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxh
dGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGls
YXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKIAogICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ+KGxhYmVsT25lLCAxLCAyLCAxMCksIDMpOwogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+
KGxhYmVsVHdvLCAxLCAyLCAxMCksIC0xKTsKQEAgLTIxNzQsMTEgKzIxNzQsMTEgQEAgdm9pZCB0
ZXN0RW50cnlTd2l0Y2hXaXRoQ29tbW9uUGF0aHNBbmROb25Ucml2aWFsRW50cnlwb2ludCgpCiAg
ICAgQ0NhbGxIZWxwZXJzIGppdDsKICAgICBnZW5lcmF0ZShwcm9jLCBqaXQpOwogICAgIExpbmtC
dWZmZXIgbGlua0J1ZmZlcihqaXQsIG51bGxwdHIpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIz
Q29tcGlsYXRpb25QdHJUYWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29t
cGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7Ci0gICAgQ29k
ZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVy
LmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExh
YmVsKDEpKTsKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJl
bFRocmVlID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2Mu
Y29kZSgpLmVudHJ5cG9pbnRMYWJlbCgyKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29t
cGlsYXRpb25QdHJUYWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBp
bGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOworICAgIENvZGVM
b2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIu
bG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExh
YmVsKDEpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFi
ZWxUaHJlZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJv
Yy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDIpKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVy
LCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVf
Q09ERShsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlv
biIpOwogCiAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4obGFiZWxPbmUsIDEsIDIsIDEwLCBmYWxz
ZSksIDMpOwogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGxhYmVsVHdvLCAxLCAyLCAxMCwgZmFs
c2UpLCAtMSk7CkBAIC0yMjUyLDEwICsyMjUyLDEwIEBAIHZvaWQgdGVzdEVudHJ5U3dpdGNoTG9v
cCgpCiAgICAgQ0NhbGxIZWxwZXJzIGppdDsKICAgICBnZW5lcmF0ZShwcm9jLCBqaXQpOwogICAg
IExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQsIG51bGxwdHIpOwotICAgIENvZGVMb2NhdGlvbkxh
YmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9m
PEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7Ci0g
ICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5r
QnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlw
b2ludExhYmVsKDEpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRh
Zz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+
KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8
SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJ
VENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMSkpOwogCi0g
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIzQ29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBG
SU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29t
cGlsYXRpb24iKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUQ29tcGlsYXRpb25QdHJU
YWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRy
VGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7CiAKICAgICBDSEVDSyhpbnZva2U8aW50PihsYWJl
bE9uZSwgMCkgPT0gMSk7CiAgICAgQ0hFQ0soaW52b2tlPGludD4obGFiZWxPbmUsIDQyKSA9PSA0
Myk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCmluZGV4IGNmMTY2NzE0Yjkw
YS4uZDlkZWRmZTUyMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEpJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaApA
QCAtMjcsMTEgKzI3LDExIEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAotI2luY2x1ZGUgIkIz
T3BhcXVlQnlwcm9kdWN0cy5oIgogI2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKICNpbmNsdWRl
ICJGVExMYXp5U2xvd1BhdGguaCIKICNpbmNsdWRlICJGVExPU1JFeGl0LmgiCiAjaW5jbHVkZSAi
SklUQ29kZS5oIgorI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIGJvb2wgY29udGFpbnModm9p
ZCopIG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbml0aWFsaXplQjNDb2RlKENvZGVSZWY8SlNFbnRy
eVB0clRhZz4pOwotICAgIHZvaWQgaW5pdGlhbGl6ZUIzQnlwcm9kdWN0cyhzdGQ6OnVuaXF1ZV9w
dHI8QjM6Ok9wYXF1ZUJ5cHJvZHVjdHM+KTsKKyAgICB2b2lkIGluaXRpYWxpemVCM0J5cHJvZHVj
dHMoc3RkOjp1bmlxdWVfcHRyPEpTQzo6T3BhcXVlQnlwcm9kdWN0cz4pOwogICAgIHZvaWQgaW5p
dGlhbGl6ZUFkZHJlc3NGb3JDYWxsKENvZGVQdHI8SlNFbnRyeVB0clRhZz4pOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRyeXBvaW50KENvZGVSZWY8SlNFbnRyeVB0clRhZz4pOwog
ICAgIApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIENvZGVQdHI8SlNF
bnRyeVB0clRhZz4gbV9hZGRyZXNzRm9yQ2FsbDsKICAgICBDb2RlUmVmPEpTRW50cnlQdHJUYWc+
IG1fYjNDb2RlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxCMzo6T3BhcXVlQnlwcm9kdWN0cz4gbV9i
M0J5cHJvZHVjdHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6T3BhcXVlQnlwcm9kdWN0cz4g
bV9iM0J5cHJvZHVjdHM7CiAgICAgQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiBtX2FyaXR5Q2hlY2tF
bnRyeXBvaW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPdXRwdXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKaW5kZXgg
MTYxMzQxNjRiYTdkLi5jYzVmOTcxODhjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT3V0cHV0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
dXRwdXQuaApAQCAtMzEsNyArMzEsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5l
cy5oIgogI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24u
aCIKICNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJl
LmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgpAQCAtNDcsNiArNDYsNyBAQAogI2luY2x1
ZGUgIkZUTFdlaWdodC5oIgogI2luY2x1ZGUgIkZUTFdlaWdodGVkVGFyZ2V0LmgiCiAjaW5jbHVk
ZSAiSGVhcENlbGwuaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgPHd0
Zi9PcmRlck1ha2VyLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29tcGlsYXRpb24uY3BwCnNpbWlsYXJpdHkgaW5k
ZXggODUlCnJlbmFtZSBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9u
LmNwcApyZW5hbWUgdG8gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb21waWxhdGlvbi5j
cHAKaW5kZXggYWRiZTE1OTU3MTkwLi4yNTdhYzdlYzY5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENvbXBpbGF0aW9uLmNwcApAQCAtMjQsMTUgKzI0LDE1IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRl
ICJKSVRDb21waWxhdGlvbi5oIgogCi0jaWYgRU5BQkxFKEIzX0pJVCkKKyNpZiBFTkFCTEUoSklU
KQogCi0jaW5jbHVkZSAiQjNPcGFxdWVCeXByb2R1Y3RzLmgiCisjaW5jbHVkZSAiSklUT3BhcXVl
Qnlwcm9kdWN0cy5oIgogCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKK25hbWVzcGFj
ZSBKU0MgewogCi1Db21waWxhdGlvbjo6Q29tcGlsYXRpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEIzQ29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYsIHN0ZDo6dW5pcXVlX3B0cjxPcGFxdWVCeXBy
b2R1Y3RzPiBieXByb2R1Y3RzKQorQ29tcGlsYXRpb246OkNvbXBpbGF0aW9uKE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiwgc3RkOjp1bmlxdWVfcHRy
PE9wYXF1ZUJ5cHJvZHVjdHM+IGJ5cHJvZHVjdHMpCiAgICAgOiBtX2NvZGVSZWYoY29kZVJlZikK
ICAgICAsIG1fYnlwcm9kdWN0cyhXVEZNb3ZlKGJ5cHJvZHVjdHMpKQogewpAQCAtNDgsNyArNDgs
NyBAQCBDb21waWxhdGlvbjo6fkNvbXBpbGF0aW9uKCkKIHsKIH0KIAotfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkIzCit9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQp
CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29tcGlsYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29t
cGlsYXRpb24uaApzaW1pbGFyaXR5IGluZGV4IDc3JQpyZW5hbWUgZnJvbSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5oCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVENvbXBpbGF0aW9uLmgKaW5kZXggMGJkMDYzZTMwZmUwLi5hZDg5YzYzYWZmZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb21waWxhdGlvbi5oCkBAIC0yNSw3ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKEIzX0pJVCkKKyNpZiBFTkFCTEUo
SklUKQogCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCiAjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KQEAgLTM1LDMzICszNSwyOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xh
c3MgVk07CiAKLW5hbWVzcGFjZSBCMyB7Ci0KIGNsYXNzIE9wYXF1ZUJ5cHJvZHVjdHM7Ci1jbGFz
cyBQcm9jZWR1cmU7CiAKLS8vIFRoaXMgY2xhc3MgaXMgYSB3YXkgdG8ga2VlcCB0aGUgcmVzdWx0
IG9mIGEgQjMgY29tcGlsYXRpb24gYWxpdmUKLS8vIGFuZCBydW5uYWJsZS4KKy8vIFRoaXMgY2xh
c3MgaXMgYSB3YXkgdG8ga2VlcCB0aGUgcmVzdWx0IG9mIGEgY29tcGlsYXRpb24gYWxpdmUgYW5k
IHJ1bm5hYmxlLgogCiBjbGFzcyBDb21waWxhdGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ29tcGlsYXRpb24pOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCiBwdWJsaWM6
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgQ29tcGlsYXRpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEIzQ29tcGlsYXRpb25QdHJUYWc+LCBzdGQ6OnVuaXF1ZV9wdHI8T3BhcXVlQnlwcm9kdWN0cz4p
OworICAgIEpTX0VYUE9SVF9QUklWQVRFIENvbXBpbGF0aW9uKE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxKSVRDb21waWxhdGlvblB0clRhZz4sIHN0ZDo6dW5pcXVlX3B0cjxPcGFxdWVCeXByb2R1Y3Rz
Pik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ29tcGlsYXRpb24oQ29tcGlsYXRpb24mJik7CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgfkNvbXBpbGF0aW9uKCk7CiAKLSAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8QjNDb21waWxhdGlvblB0clRhZz4gY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29k
ZVJlZi5jb2RlKCk7IH0KLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0
clRhZz4gY29kZVJlZigpIGNvbnN0IHsgcmV0dXJuIG1fY29kZVJlZjsgfQorICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY29kZVJlZi5jb2RlKCk7IH0KKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUQ29tcGls
YXRpb25QdHJUYWc+IGNvZGVSZWYoKSBjb25zdCB7IHJldHVybiBtX2NvZGVSZWY7IH0KICAgICAK
ICAgICBDU3RyaW5nIGRpc2Fzc2VtYmx5KCkgY29uc3QgeyByZXR1cm4gbV9jb2RlUmVmLmRpc2Fz
c2VtYmx5KCk7IH0KIAogcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21w
aWxhdGlvblB0clRhZz4gbV9jb2RlUmVmOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRD
b21waWxhdGlvblB0clRhZz4gbV9jb2RlUmVmOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxPcGFxdWVC
eXByb2R1Y3RzPiBtX2J5cHJvZHVjdHM7CiB9OwogCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
K30gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bh
cXVlQnlwcm9kdWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wYXF1ZUJ5cHJv
ZHVjdC5oCnNpbWlsYXJpdHkgaW5kZXggOTQlCnJlbmFtZSBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdC5oCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdC5oCmluZGV4IDM1YTJhMDZhNGRjMC4uYjE4NzQ4MWQ3
NTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdC5o
CkBAIC0yNSwxMyArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQjNfSklU
KQorI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogCi1u
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKK25hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBP
cGFxdWVCeXByb2R1Y3QgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE9wYXF1ZUJ5cHJvZHVj
dCk7CkBAIC00Myw2ICs0Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYpIGNvbnN0ID0gMDsKIH07CiAKLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworfSAv
LyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorI2VuZGlmIC8vIEVO
QUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVC
eXByb2R1Y3RzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9k
dWN0cy5jcHAKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5jcHAKcmVuYW1lIHRvIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5jcHAKaW5kZXggZjg5ZjhiZmVkNmQxLi43
NjgxMzBkNjkyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wYXF1
ZUJ5cHJvZHVjdHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BhcXVl
Qnlwcm9kdWN0cy5jcHAKQEAgLTI0LDExICsyNCwxMSBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVjdHMuaCIKKyNpbmNsdWRlICJKSVRPcGFx
dWVCeXByb2R1Y3RzLmgiCiAKLSNpZiBFTkFCTEUoQjNfSklUKQorI2lmIEVOQUJMRShKSVQpCiAK
LW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CiAKIE9wYXF1
ZUJ5cHJvZHVjdHM6Ok9wYXF1ZUJ5cHJvZHVjdHMoKQogewpAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IE9wYXF1ZUJ5cHJvZHVjdHM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICAgICAg
b3V0LnByaW50KCIgICAgIiwgKmJ5cHJvZHVjdCwgIlxuIik7CiB9CiAKLX0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMworfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBFTkFCTEUoQjNfSklU
KQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BhcXVlQnlwcm9kdWN0cy5oCnNpbWlsYXJpdHkgaW5kZXggOTMlCnJlbmFtZSBmcm9tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdHMuaApyZW5hbWUgdG8gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmgKaW5kZXggZThlZWMx
MTNmNGU4Li5iZDhmYTA0NzJlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM09wYXF1ZUJ5cHJvZHVjdHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wYXF1ZUJ5cHJvZHVjdHMuaApAQCAtMjUsMTMgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaWYgRU5BQkxFKEIzX0pJVCkKKyNpZiBFTkFCTEUoSklUKQogCi0jaW5jbHVkZSAiQjNPcGFx
dWVCeXByb2R1Y3QuaCIKKyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3QuaCIKICNpbmNsdWRl
IDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKK25hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBPcGFxdWVCeXByb2R1Y3RzIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShPcGFxdWVCeXByb2R1Y3RzKQpAQCAtNTAsNiArNTAs
NiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8T3BhcXVlQnlwcm9kdWN0
Pj4gbV9ieXByb2R1Y3RzOwogfTsKIAotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCit9IC8vIG5h
bWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ1B0clRh
Zy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKaW5kZXggMTVl
MjAwYWVmZGJjLi45OTE5MDMzMmJhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ1B0clRhZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ1B0clRhZy5oCkBAIC00NCw3ICs0NCw3IEBAIHVzaW5nIFB0clRhZyA9IFdURjo6UHRyVGFn
OwogICAgIHYoRE9NSklURnVuY3Rpb25QdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6Ok5hdGl2ZSwg
UHRyVGFnQ2FsbGVyVHlwZTo6Tm9uZSkgXAogICAgIHYoRGlzYXNzZW1ibHlQdHJUYWcsIFB0clRh
Z0NhbGxlZVR5cGU6Ok5hdGl2ZSwgUHRyVGFnQ2FsbGVyVHlwZTo6Tm9uZSkgXAogICAgIC8qIENh
bGxlZTpKSVQgQ2FsbGVyOk5vbmUgKi8gXAotICAgIHYoQjNDb21waWxhdGlvblB0clRhZywgUHRy
VGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBcCisgICAgdihKSVRD
b21waWxhdGlvblB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxsZXJUeXBl
OjpOb25lKSBcCiAgICAgdihFeGVjdXRhYmxlTWVtb3J5UHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBl
OjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5vbmUpIFwKICAgICB2KExpbmtCdWZmZXJQdHJUYWcs
IFB0clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRyVGFnQ2FsbGVyVHlwZTo6Tm9uZSkgXAogICAgIHYo
WWFycjhCaXRQdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRyVGFnQ2FsbGVyVHlwZTo6
Tm9uZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9y
LmgKaW5kZXggYTNlZDBkOWI4ZjlkLi43N2ZjMmRiMDk0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuaApAQCAtMjgsOSArMjgsOSBAQAogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKIAogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCi0jaW5jbHVkZSAi
QjNDb21waWxhdGlvbi5oIgotI2luY2x1ZGUgIkIzT3BhcXVlQnlwcm9kdWN0cy5oIgogI2luY2x1
ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCisjaW5jbHVk
ZSAiSklUT3BhcXVlQnlwcm9kdWN0cy5oIgogI2luY2x1ZGUgIldhc21Db21waWxhdGlvbk1vZGUu
aCIKICNpbmNsdWRlICJXYXNtRW1iZWRkZXIuaCIKICNpbmNsdWRlICJXYXNtTWVtb3J5LmgiCkBA
IC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE1lbW9yeUluZm9ybWF0aW9uOwogc3RydWN0IENvbXBpbGF0
aW9uQ29udGV4dCB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENDYWxsSGVscGVycz4gZW1iZWRkZXJF
bnRyeXBvaW50SklUOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQ2FsbEhlbHBlcnM+IHdhc21FbnRy
eXBvaW50SklUOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxCMzo6T3BhcXVlQnlwcm9kdWN0cz4gd2Fz
bUVudHJ5cG9pbnRCeXByb2R1Y3RzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6Ok9wYXF1ZUJ5
cHJvZHVjdHM+IHdhc21FbnRyeXBvaW50Qnlwcm9kdWN0czsKIH07CiAKIEV4cGVjdGVkPHN0ZDo6
dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiwgU3RyaW5nPiBwYXJzZUFuZENvbXBpbGUoQ29t
cGlsYXRpb25Db250ZXh0JiwgY29uc3QgRnVuY3Rpb25EYXRhJiwgY29uc3QgU2lnbmF0dXJlJiwg
VmVjdG9yPFVubGlua2VkV2FzbVRvV2FzbUNhbGw+JiwgdW5zaWduZWQmIG9zckVudHJ5U2NyYXRj
aEJ1ZmZlclNpemUsIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiwgTWVtb3J5TW9kZSwgQ29tcGls
YXRpb25Nb2RlLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCB1aW50MzJfdCBsb29wSW5kZXhGb3JP
U1JFbnRyeSwgVGllclVwQ291bnQqID0gbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbi5jcHAKaW5kZXggYzk5MDUyYjI4NmMxLi40YTBmNmEzYmIyODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKQEAgLTI4LDcgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRp
b24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkpTVG9XYXNtLmgi
CiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIldhc21BaXJJUkdlbmVyYXRvci5o
IgpAQCAtMTEwLDggKzExMCw4IEBAIHZvaWQgQkJRUGxhbjo6d29yayhDb21waWxhdGlvbkVmZm9y
dCBlZmZvcnQpCiAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IG1fZnVuY3Rpb25JbmRl
eCArIG1fbW9kdWxlSW5mb3JtYXRpb24tPmltcG9ydEZ1bmN0aW9uQ291bnQoKTsKICAgICBTaWdu
YXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1fbW9kdWxlSW5mb3JtYXRpb24tPmludGVybmFs
RnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzW21fZnVuY3Rpb25JbmRleF07CiAgICAgY29uc3QgU2ln
bmF0dXJlJiBzaWduYXR1cmUgPSBTaWduYXR1cmVJbmZvcm1hdGlvbjo6Z2V0KHNpZ25hdHVyZUlu
ZGV4KTsKLSAgICBmdW5jdGlvbi0+ZW50cnlwb2ludC5jb21waWxhdGlvbiA9IG1ha2VVbmlxdWU8
QjM6OkNvbXBpbGF0aW9uPigKLSAgICAgICAgRklOQUxJWkVfV0FTTV9DT0RFX0ZPUl9NT0RFKENv
bXBpbGF0aW9uTW9kZTo6QkJRTW9kZSwgbGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywg
IldlYkFzc2VtYmx5IEJCUSBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIsIG1fZnVuY3Rpb25JbmRl
eCwgc2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhP
ck5hbWUoZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlv
bi0+Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCisgICAgZnVuY3Rp
b24tPmVudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPEpTQzo6Q29tcGlsYXRpb24+
KAorICAgICAgICBGSU5BTElaRV9XQVNNX0NPREVfRk9SX01PREUoQ29tcGlsYXRpb25Nb2RlOjpC
QlFNb2RlLCBsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIldlYkFzc2VtYmx5IEJC
USBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIsIG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRv
U3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25J
bmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9u
SW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCiAgICAgICAgIFdURk1vdmUoY29udGV4dC53
YXNtRW50cnlwb2ludEJ5cHJvZHVjdHMpKTsKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxX
YXNtRW50cnlQdHJUYWc+IGVudHJ5cG9pbnQ7CkBAIC0yMjYsOCArMjI2LDggQEAgdm9pZCBCQlFQ
bGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBt
X3dhc21JbnRlcm5hbEZ1bmN0aW9uc1tmdW5jdGlvbkluZGV4XS0+ZW50cnlwb2ludC5jb21waWxh
dGlvbiA9IG1ha2VVbmlxdWU8QjM6OkNvbXBpbGF0aW9uPigKLSAgICAgICAgICAgICAgICBGSU5B
TElaRV9DT0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBC
QlEgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBmdW5jdGlvbkluZGV4LCBzaWduYXR1cmUudG9T
dHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5jdGlvbklu
ZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25J
bmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKKyAgICAgICAgICAgIG1fd2FzbUludGVybmFs
RnVuY3Rpb25zW2Z1bmN0aW9uSW5kZXhdLT5lbnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFrZVVu
aXF1ZTxKU0M6OkNvbXBpbGF0aW9uPigKKyAgICAgICAgICAgICAgICBGSU5BTElaRV9DT0RFKGxp
bmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiV2ViQXNzZW1ibHkgQkJRIGZ1bmN0aW9u
WyVpXSAlcyBuYW1lICVzIiwgZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25JbmRleFNwYWNlLCBt
X21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkp
KS5hc2NpaSgpLmRhdGEoKSksCiAgICAgICAgICAgICAgICAgV1RGTW92ZShjb250ZXh0Lndhc21F
bnRyeXBvaW50Qnlwcm9kdWN0cykpOwogICAgICAgICB9CiAKQEAgLTIzOCw4ICsyMzgsOCBAQCB2
b2lkIEJCUVBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXIm
IGxvY2tlcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGVtYmVkZGVyVG9XYXNtSW50ZXJuYWxGdW5jdGlvbi0+ZW50cnlwb2ludC5jb21waWxh
dGlvbiA9IG1ha2VVbmlxdWU8QjM6OkNvbXBpbGF0aW9uPigKLSAgICAgICAgICAgICAgICBGSU5B
TElaRV9DT0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJFbWJlZGRlci0+V2Vi
QXNzZW1ibHkgZW50cnlwb2ludFslaV0gJXMgbmFtZSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25h
dHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1
bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChm
dW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAorICAgICAgICAgICAgZW1iZWRk
ZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uLT5lbnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFrZVVu
aXF1ZTxKU0M6OkNvbXBpbGF0aW9uPigKKyAgICAgICAgICAgICAgICBGSU5BTElaRV9DT0RFKGxp
bmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiRW1iZWRkZXItPldlYkFzc2VtYmx5IGVu
dHJ5cG9pbnRbJWldICVzIG5hbWUgJXMiLCBmdW5jdGlvbkluZGV4LCBzaWduYXR1cmUudG9TdHJp
bmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5jdGlvbkluZGV4
U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRl
eFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgICAgICAgICBudWxscHRyKTsKICAg
ICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CaW5kaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5oCmlu
ZGV4IDAwN2VlODFiOGRiMy4uMjNiYWNiZjI4NDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CaW5kaW5nLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxh
dGlvbi5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQu
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCmluZGV4IGJhMzllNTZj
MjMxNC4uNzA2NzY4NjcyMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNs
dWRlICJCM0NvbXBpbGF0aW9uLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNs
dWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIldhc21Db21waWxhdGlvbk1v
ZGUuaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtRm9ybWF0LmgKaW5kZXggZmJlODYwYzAzNjM0Li5mOTgxZTIwMTk3MDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAgLTQ2LDkgKzQ2LDcgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLW5hbWVzcGFjZSBCMyB7CiBjbGFzcyBDb21waWxhdGlvbjsKLX0KIAogbmFt
ZXNwYWNlIFdhc20gewogCkBAIC0zNDAsNyArMzM4LDcgQEAgc3RydWN0IFVubGlua2VkV2FzbVRv
V2FzbUNhbGwgewogCiBzdHJ1Y3QgRW50cnlwb2ludCB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZB
U1RfQUxMT0NBVEVEOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxCMzo6Q29tcGlsYXRpb24+IGNvbXBp
bGF0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OkNvbXBpbGF0aW9uPiBjb21waWxhdGlv
bjsKICAgICBSZWdpc3RlckF0T2Zmc2V0TGlzdCBjYWxsZWVTYXZlUmVnaXN0ZXJzOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAppbmRleCBhM2Q0
ZjYxZDhjYmMuLmIwZjdmMWU5NmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUxMSW50UGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50UGxhbi5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJCeXRlY29kZUR1
bXBlci5oIgogI2luY2x1ZGUgIkNhbGxlZUJpdHMuaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlv
bi5oIgogI2luY2x1ZGUgIkpTVG9XYXNtLmgiCiAjaW5jbHVkZSAiTExJbnRUaHVua3MuaCIKICNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBMTEludFBsYW46
OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikKICAg
ICAgICAgICAgIGxpbmtCdWZmZXIubGluazxKSVRUaHVua1B0clRhZz4oanVtcHNbaV0sIENvZGVM
b2NhdGlvbkxhYmVsPEpJVFRodW5rUHRyVGFnPihMTEludDo6d2FzbUZ1bmN0aW9uRW50cnlUaHVu
aygpLmNvZGUoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9lbnRyeVRodW5rcyA9IEZJTkFM
SVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgIldhc20gTExJbnQgZW50
cnkgdGh1bmtzIik7CisgICAgICAgIG1fZW50cnlUaHVua3MgPSBGSU5BTElaRV9DT0RFKGxpbmtC
dWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiV2FzbSBMTEludCBlbnRyeSB0aHVua3MiKTsK
ICAgICAgICAgbV9jYWxsZWVzID0gbV9jYWxsZWVzVmVjdG9yLmRhdGEoKTsKICAgICB9CiAKQEAg
LTE1Miw4ICsxNTIsOCBAQCB2b2lkIExMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihj
b25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgZnVuY3Rpb24tPmVudHJ5cG9pbnQuY29tcGlsYXRp
b24gPSBtYWtlVW5pcXVlPEIzOjpDb21waWxhdGlvbj4oCi0gICAgICAgICAgICAgICAgRklOQUxJ
WkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiRW1iZWRkZXItPldlYkFz
c2VtYmx5IGVudHJ5cG9pbnRbJWldICVzIiwgZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRvU3Ry
aW5nKCkuYXNjaWkoKS5kYXRhKCkpLAorICAgICAgICAgICAgZnVuY3Rpb24tPmVudHJ5cG9pbnQu
Y29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPEpTQzo6Q29tcGlsYXRpb24+KAorICAgICAgICAgICAg
ICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJFbWJl
ZGRlci0+V2ViQXNzZW1ibHkgZW50cnlwb2ludFslaV0gJXMiLCBmdW5jdGlvbkluZGV4LCBzaWdu
YXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSksCiAgICAgICAgICAgICAgICAgbnVsbHB0
cik7CiAKICAgICAgICAgICAgIFJlZjxFbWJlZGRlckVudHJ5cG9pbnRDYWxsZWU+IGNhbGxlZSA9
IEVtYmVkZGVyRW50cnlwb2ludENhbGxlZTo6Y3JlYXRlKFdURk1vdmUoZnVuY3Rpb24tPmVudHJ5
cG9pbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTElu
dFBsYW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uaAppbmRl
eCAyZWNjNDI4NzM3OWEuLjQ5ZWIwMDljYWFmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MTEludFBsYW4uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgTExJbnRQbGFuKENvbnRleHQqLCBWZWN0b3I8dWludDhfdD4mJiwgQXN5bmNX
b3JrLCBDb21wbGV0aW9uVGFzayYmKTsKICAgICBMTEludFBsYW4oQ29udGV4dCosIFJlZjxNb2R1
bGVJbmZvcm1hdGlvbj4sIGNvbnN0IFJlZjxMTEludENhbGxlZT4qLCBDb21wbGV0aW9uVGFzayYm
KTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiYmIHRh
a2VFbnRyeVRodW5rcygpCisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9u
UHRyVGFnPiYmIHRha2VFbnRyeVRodW5rcygpCiAgICAgewogICAgICAgICBSRUxFQVNFX0FTU0VS
VCghZmFpbGVkKCkgJiYgIWhhc1dvcmsoKSk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKG1fZW50
cnlUaHVua3MpOwpAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IFJlZjxMTElu
dENhbGxlZT4qIG1fY2FsbGVlcyB7IG51bGxwdHIgfTsKICAgICBWZWN0b3I8UmVmPExMSW50Q2Fs
bGVlPj4gbV9jYWxsZWVzVmVjdG9yOwogICAgIEVtYmVkZGVyRW50cnlwb2ludENhbGxlZU1hcCBt
X2VtYmVkZGVyQ2FsbGVlczsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlv
blB0clRhZz4gbV9lbnRyeVRodW5rczsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUQ29t
cGlsYXRpb25QdHJUYWc+IG1fZW50cnlUaHVua3M7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Nb2R1bGUuaAppbmRleCBmYWRhNGIyY2U1NTEuLmE1ZWQwZmU3M2VmOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGUuaApAQCAtNzMsNyArNzMsNyBAQCBw
cml2YXRlOgogICAgIFJlZjxNb2R1bGVJbmZvcm1hdGlvbj4gbV9tb2R1bGVJbmZvcm1hdGlvbjsK
ICAgICBSZWZQdHI8Q29kZUJsb2NrPiBtX2NvZGVCbG9ja3NbV2FzbTo6TnVtYmVyT2ZNZW1vcnlN
b2Rlc107CiAgICAgUmVmUHRyPExMSW50Q2FsbGVlcz4gbV9sbGludENhbGxlZXM7Ci0gICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPEIzQ29tcGlsYXRpb25QdHJUYWc+IG1fbGxpbnRFbnRyeVRodW5r
czsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUQ29tcGlsYXRpb25QdHJUYWc+IG1fbGxp
bnRFbnRyeVRodW5rczsKICAgICBMb2NrIG1fbG9jazsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHAKaW5kZXggYzIy
MzkxZWM1OGM4Li5lZDgzNjE1ZDI2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4uY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCisj
aW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiV2FzbUIzSVJHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGVlLmgiCkBAIC04
OSw4ICs4OSw4IEBAIHZvaWQgT01HRm9yT1NSRW50cnlQbGFuOjp3b3JrKENvbXBpbGF0aW9uRWZm
b3J0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgb21nRW50cnlwb2ludC5jb21waWxh
dGlvbiA9IG1ha2VVbmlxdWU8QjM6OkNvbXBpbGF0aW9uPigKLSAgICAgICAgRklOQUxJWkVfV0FT
TV9DT0RFX0ZPUl9NT0RFKENvbXBpbGF0aW9uTW9kZTo6T01HRm9yT1NSRW50cnlNb2RlLCBsaW5r
QnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiV2ViQXNzZW1ibHkgT01HRm9yT1NSRW50cnkg
ZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0
cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5k
ZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbklu
ZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAorICAgIG9tZ0VudHJ5cG9pbnQuY29tcGlsYXRp
b24gPSBtYWtlVW5pcXVlPEpTQzo6Q29tcGlsYXRpb24+KAorICAgICAgICBGSU5BTElaRV9XQVNN
X0NPREVfRk9SX01PREUoQ29tcGlsYXRpb25Nb2RlOjpPTUdGb3JPU1JFbnRyeU1vZGUsIGxpbmtC
dWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiV2ViQXNzZW1ibHkgT01HRm9yT1NSRW50cnkg
ZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0
cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5k
ZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbklu
ZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICBXVEZNb3ZlKGNvbnRleHQud2Fz
bUVudHJ5cG9pbnRCeXByb2R1Y3RzKSk7CiAKICAgICBvbWdFbnRyeXBvaW50LmNhbGxlZVNhdmVS
ZWdpc3RlcnMgPSBXVEZNb3ZlKHBhcnNlQW5kQ29tcGlsZVJlc3VsdC52YWx1ZSgpLT5lbnRyeXBv
aW50LmNhbGxlZVNhdmVSZWdpc3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9NR1BsYW4uY3BwCmluZGV4IDE2Yjc0MTUwMTQ5OS4uYjk2ODA0ZDI2OGMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCisj
aW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiV2FzbUIzSVJHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGVlLmgiCkBAIC04
Niw4ICs4Niw4IEBAIHZvaWQgT01HUGxhbjo6d29yayhDb21waWxhdGlvbkVmZm9ydCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG9tZ0VudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBtYWtl
VW5pcXVlPEIzOjpDb21waWxhdGlvbj4oCi0gICAgICAgIEZJTkFMSVpFX1dBU01fQ09ERV9GT1Jf
TU9ERShDb21waWxhdGlvbk1vZGU6Ok9NR01vZGUsIGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25Q
dHJUYWcsICJXZWJBc3NlbWJseSBPTUcgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0
aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5n
KEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFt
ZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAorICAg
IG9tZ0VudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPEpTQzo6Q29tcGlsYXRpb24+
KAorICAgICAgICBGSU5BTElaRV9XQVNNX0NPREVfRk9SX01PREUoQ29tcGlsYXRpb25Nb2RlOjpP
TUdNb2RlLCBsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIldlYkFzc2VtYmx5IE9N
RyBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIsIG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRv
U3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25J
bmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9u
SW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCiAgICAgICAgIFdURk1vdmUoY29udGV4dC53
YXNtRW50cnlwb2ludEJ5cHJvZHVjdHMpKTsKIAogICAgIG9tZ0VudHJ5cG9pbnQuY2FsbGVlU2F2
ZVJlZ2lzdGVycyA9IFdURk1vdmUocGFyc2VBbmRDb21waWxlUmVzdWx0LnZhbHVlKCktPmVudHJ5
cG9pbnQuY2FsbGVlU2F2ZVJlZ2lzdGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
UGFyc2VyLmgKaW5kZXggYTE1YmVkZDQyYmJlLi5lYzlkZTMwYmRkZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiVmly
dHVhbFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgogI2luY2x1ZGUgIldhc21M
aW1pdHMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21U
b0pTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5oCmluZGV4IDcx
OWM0NTk1MzI2MS4uNTQ1OTliNDg0Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XYXNtVG9KUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dhc21Ub0pTLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
IAotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5o
IgogI2luY2x1ZGUgIldhc21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiV2FzbUVtYmVkZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL0JhZy5oPgotLSAKMi4yOS4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417764</attachid>
            <date>2021-01-16 02:24:34 -0800</date>
            <delta_ts>2021-01-18 03:26:16 -0800</delta_ts>
            <desc>Move B3::Compilation to jit/, v1</desc>
            <filename>0001-JSC-Implement-a-B3-Compilation-replacement-for-wasm-.patch</filename>
            <type>text/plain</type>
            <size>59833</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBiNjFlODc4Y2RlNDBlZWFlMzY3MzU2N2IyYjNhNTY1ZDg1MzEyYjJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogRnJpLCAxNSBKYW4gMjAyMSAxNzo1MjoyOCArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIEltcGxlbWVudCBhIEIzOjpDb21waWxhdGlvbiByZXBsYWNlbWVudCBmb3Ig
d2FzbS1sbGludAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDU4
NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpNb3ZlIEIzQ29tcGlsYXRpb24sIEIzT3Bh
cXVlQnlwcm9kdWN0cyBhbmQgQjNPcGFxdWVCeXByb2R1Y3QgdG8Kaml0Ly4gVGhleSBhcmUgdXNl
ZCBieSBub24tQjMgY29kZSBhbmQgdGhleSBhcmUgbm90IHJlYWxseSBCMwpzcGVjaWZpYy4gQWxz
byByZW5hbWUgQjNDb21waWxhdGlvblB0clRhZyB0byBKSVRDb21waWxhdGlvblB0clRhZy4KCiog
Q01ha2VMaXN0cy50eHQ6IGFkZCBuZXcgc291cmNlIGZpbGVzLgoqIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgoqIFNvdXJjZXMudHh0OiBkaXR0by4KKiBi
My9CM0NvbXBpbGUuY3BwOgooSlNDOjpCMzo6Y29tcGlsZSk6IHVzZSBKSVRDb21waWxhdGlvblB0
clRhZy4KKiBiMy9CM0NvbXBpbGUuaDogY2hhbmdlIGluY2x1ZGVzLgoqIGIzL0IzRGF0YVNlY3Rp
b24uaDogZGl0dG8uCiogYjMvQjNQcm9jZWR1cmUuY3BwOiBkaXR0by4KKiBiMy9CM1Byb2NlZHVy
ZS5oOiBkaXR0by4KKiBiMy9haXIvdGVzdGFpci5jcHA6IHVzZSBKSVRDb21waWxhdGlvblB0clRh
Zy4KKiBiMy90ZXN0YjMuaDogY2hhbmdlIGluY2x1ZGVzLgooaW52b2tlKToKKiBiMy90ZXN0YjNf
Ni5jcHA6Cih0ZXN0SW50ZXJwcmV0ZXIpOiB1c2UgSklUQ29tcGlsYXRpb25QdHJUYWcuCih0ZXN0
RW50cnlTd2l0Y2hTaW1wbGUpOiBkaXR0by4KKHRlc3RFbnRyeVN3aXRjaE5vRW50cnlTd2l0Y2gp
OiBkaXR0by4KKHRlc3RFbnRyeVN3aXRjaFdpdGhDb21tb25QYXRocyk6IGRpdHRvLgoodGVzdEVu
dHJ5U3dpdGNoV2l0aENvbW1vblBhdGhzQW5kTm9uVHJpdmlhbEVudHJ5cG9pbnQpOiBkaXR0by4K
KHRlc3RFbnRyeVN3aXRjaExvb3ApOiBkaXR0by4KKiBmdGwvRlRMSklUQ29kZS5oOiB1c2UgSlND
OjpPcGFxdWVCeXByb2R1Y3RzLgoqIGZ0bC9GVExPdXRwdXQuaDogY2hhbmdlIGluY2x1ZGVzLgoq
IGppdC9KSVRDb21waWxhdGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21waWxhdGlvbi5jcHAuCihKU0M6OkNvbXBpbGF0aW9uOjpDb21waWxhdGlvbik6
Ciogaml0L0pJVENvbXBpbGF0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21waWxhdGlvbi5oLgooSlNDOjpDb21waWxhdGlvbjo6Y29kZSBjb25zdCk6CihK
U0M6OkNvbXBpbGF0aW9uOjpjb2RlUmVmIGNvbnN0KToKKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1
Y3QuaC4KKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNwcC4KKiBqaXQvSklUT3BhcXVl
Qnlwcm9kdWN0cy5oOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bh
cXVlQnlwcm9kdWN0cy5oLgoqIHJ1bnRpbWUvSlNDUHRyVGFnLmg6IHJlbmFtZSBCM0NvbXBpbGF0
aW9uUHRyVGFnIHRvIEpJVENvbXBpbGF0aW9uUHRyVGFnLgoqIHdhc20vV2FzbUIzSVJHZW5lcmF0
b3IuaDogdXNlIEpTQzo6T3BhcXVlQnlwcm9kdWN0cy4KKiB3YXNtL1dhc21CQlFQbGFuLmNwcDog
dXNlIEpTQzo6Q29tcGlsYXRpb24uCihKU0M6Oldhc206OkJCUVBsYW46OndvcmspOgooSlNDOjpX
YXNtOjpCQlFQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKiB3YXNtL1dhc21CaW5kaW5n
Lmg6IGNoYW5nZSBpbmNsdWRlcy4KKiB3YXNtL1dhc21DYWxsZWUuaDogZGl0dG8uCiogd2FzbS9X
YXNtRm9ybWF0Lmg6IHVzZSBKU0M6OkNvbXBpbGF0aW9uLgoqIHdhc20vV2FzbUxMSW50UGxhbi5j
cHA6IGRpdHRvLgooSlNDOjpXYXNtOjpMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24p
OgoqIHdhc20vV2FzbUxMSW50UGxhbi5oOiB1c2UgSklUQ29tcGlsYXRpb25QdHJUYWcuCiogd2Fz
bS9XYXNtTW9kdWxlLmg6IGRpdHRvLgoqIHdhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHA6
IHVzZSBKU0M6OkNvbXBpbGF0aW9uLgooSlNDOjpXYXNtOjpPTUdGb3JPU1JFbnRyeVBsYW46Ondv
cmspOgoqIHdhc20vV2FzbU9NR1BsYW4uY3BwOiBkaXR0by4KKEpTQzo6V2FzbTo6T01HUGxhbjo6
d29yayk6Ciogd2FzbS9XYXNtUGFyc2VyLmg6IGNoYW5nZSBpbmNsdWRlcy4KKiB3YXNtL2pzL1dh
c21Ub0pTLmg6IGRpdHRvLgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dCAgICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgfCAzNCArKysrKy0tLS0tLQogU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAgIHwgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0NvbXBpbGUuY3BwICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21waWxlLmggICAgICAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRGF0YVNlY3Rpb24uaCAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuaCAgICAgICAgfCAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci90ZXN0YWlyLmNwcCAgICAgIHwgMTQgKystLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuaCAgICAgICAgICAgICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzYuY3BwICAgICAgICAgfCA0NiArKysrKysrLS0tLS0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSklUQ29kZS5oICAgICAgICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE91dHB1dC5oICAgICAgICAgfCAgMiArLQogLi4uL0pJVENvbXBpbGF0aW9uLmNw
cH0gICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKystLS0KIC4uLi9CM0NvbXBpbGF0aW9uLmgg
PT4gaml0L0pJVENvbXBpbGF0aW9uLmh9ICB8IDIwICsrKy0tLS0KIC4uLi9KSVRPcGFxdWVCeXBy
b2R1Y3QuaH0gICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogLi4uL0pJVE9wYXF1ZUJ5cHJv
ZHVjdHMuY3BwfSAgICAgICAgICAgICAgICAgIHwgMTAgKystLQogLi4uL0pJVE9wYXF1ZUJ5cHJv
ZHVjdHMuaH0gICAgICAgICAgICAgICAgICAgIHwgMTAgKystLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggICAgIHwgIDIgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CM0lSR2VuZXJhdG9yLmggICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbi5jcHAgICAgfCAxNCArKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUJpbmRpbmcuaCAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuaCAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRm9ybWF0LmggICAgICAgfCAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50UGxhbi5jcHAgIHwgIDggKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRQbGFuLmggICAgfCAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZS5oICAgICAgIHwgIDIgKy0KIC4uLi93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4u
Y3BwICAgICAgICAgICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01H
UGxhbi5jcHAgICAgfCAgNiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNl
ci5oICAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pT
LmggICAgICB8ICAyICstCiAzMiBmaWxlcyBjaGFuZ2VkLCAxODAgaW5zZXJ0aW9ucygrKSwgMTI3
IGRlbGV0aW9ucygtKQogcmVuYW1lIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS97YjMvQjNDb21waWxh
dGlvbi5jcHAgPT4gaml0L0pJVENvbXBpbGF0aW9uLmNwcH0gKDg1JSkKIHJlbmFtZSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUve2IzL0IzQ29tcGlsYXRpb24uaCA9PiBqaXQvSklUQ29tcGlsYXRpb24u
aH0gKDc3JSkKIHJlbmFtZSBTb3VyY2UvSmF2YVNjcmlwdENvcmUve2IzL0IzT3BhcXVlQnlwcm9k
dWN0LmggPT4gaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdC5ofSAoOTQlKQogcmVuYW1lIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS97YjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNwcCA9PiBqaXQvSklUT3BhcXVl
Qnlwcm9kdWN0cy5jcHB9ICg5MyUpCiByZW5hbWUgU291cmNlL0phdmFTY3JpcHRDb3JlL3tiMy9C
M09wYXF1ZUJ5cHJvZHVjdHMuaCA9PiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5ofSAoOTMlKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1OGE1NzA2OTdlYjkuLjg5Mzk5
MGY0OTZkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTIxLDcgKzUy
MSw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
YXNzZW1ibGVyL1g4Nl82NFJlZ2lzdGVycy5oCiAKICAgICBiMy9CM0NvbW1vbi5oCi0gICAgYjMv
QjNDb21waWxhdGlvbi5oCiAgICAgYjMvQjNUeXBlLmgKIAogICAgIGJpbmRpbmdzL1NjcmlwdEZ1
bmN0aW9uQ2FsbC5oCkBAIC03NTcsNiArNzU2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBqaXQvSklUQWxsb2NhdG9yLmgKICAgICBqaXQvSklU
Q29kZS5oCiAgICAgaml0L0pJVENvZGVNYXAuaAorICAgIGppdC9KSVRDb21waWxhdGlvbi5oCiAg
ICAgaml0L0pJVENvbXBpbGF0aW9uRWZmb3J0LmgKICAgICBqaXQvSklUTWF0aElDRm9yd2FyZHMu
aAogICAgIGppdC9KSVRPcGVyYXRpb25zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGM3
YjIzNjE4YjI5NS4uZjVlMzMxNzRkMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAyMS0wMS0xNiAgWGFuIEzDs3BleiAgPHhhbkBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtKU0NdIEltcGxlbWVudCBhIEIzOjpDb21waWxhdGlvbiByZXBsYWNlbWVudCBmb3Ig
d2FzbS1sbGludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIwNTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBCM0NvbXBpbGF0aW9uLCBCM09wYXF1ZUJ5cHJvZHVjdHMgYW5kIEIzT3BhcXVlQnlw
cm9kdWN0IHRvCisgICAgICAgIGppdC8uIFRoZXkgYXJlIHVzZWQgYnkgbm9uLUIzIGNvZGUgYW5k
IHRoZXkgYXJlIG5vdCByZWFsbHkgQjMKKyAgICAgICAgc3BlY2lmaWMuIEFsc28gcmVuYW1lIEIz
Q29tcGlsYXRpb25QdHJUYWcgdG8gSklUQ29tcGlsYXRpb25QdHJUYWcuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDogYWRkIG5ldyBzb3VyY2UgZmlsZXMuCisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogU291cmNl
cy50eHQ6IGRpdHRvLgorICAgICAgICAqIGIzL0IzQ29tcGlsZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpjb21waWxlKTogdXNlIEpJVENvbXBpbGF0aW9uUHRyVGFnLgorICAgICAgICAqIGIzL0Iz
Q29tcGlsZS5oOiBjaGFuZ2UgaW5jbHVkZXMuCisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5o
OiBkaXR0by4KKyAgICAgICAgKiBiMy9CM1Byb2NlZHVyZS5jcHA6IGRpdHRvLgorICAgICAgICAq
IGIzL0IzUHJvY2VkdXJlLmg6IGRpdHRvLgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDog
dXNlIEpJVENvbXBpbGF0aW9uUHRyVGFnLgorICAgICAgICAqIGIzL3Rlc3RiMy5oOiBjaGFuZ2Ug
aW5jbHVkZXMuCisgICAgICAgIChpbnZva2UpOgorICAgICAgICAqIGIzL3Rlc3RiM182LmNwcDoK
KyAgICAgICAgKHRlc3RJbnRlcnByZXRlcik6IHVzZSBKSVRDb21waWxhdGlvblB0clRhZy4KKyAg
ICAgICAgKHRlc3RFbnRyeVN3aXRjaFNpbXBsZSk6IGRpdHRvLgorICAgICAgICAodGVzdEVudHJ5
U3dpdGNoTm9FbnRyeVN3aXRjaCk6IGRpdHRvLgorICAgICAgICAodGVzdEVudHJ5U3dpdGNoV2l0
aENvbW1vblBhdGhzKTogZGl0dG8uCisgICAgICAgICh0ZXN0RW50cnlTd2l0Y2hXaXRoQ29tbW9u
UGF0aHNBbmROb25Ucml2aWFsRW50cnlwb2ludCk6IGRpdHRvLgorICAgICAgICAodGVzdEVudHJ5
U3dpdGNoTG9vcCk6IGRpdHRvLgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmg6IHVzZSBKU0M6
Ok9wYXF1ZUJ5cHJvZHVjdHMuCisgICAgICAgICogZnRsL0ZUTE91dHB1dC5oOiBjaGFuZ2UgaW5j
bHVkZXMuCisgICAgICAgICogaml0L0pJVENvbXBpbGF0aW9uLmNwcDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmNwcC4KKyAgICAgICAgKEpTQzo6
Q29tcGlsYXRpb246OkNvbXBpbGF0aW9uKToKKyAgICAgICAgKiBqaXQvSklUQ29tcGlsYXRpb24u
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmgu
CisgICAgICAgIChKU0M6OkNvbXBpbGF0aW9uOjpjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
Q29tcGlsYXRpb246OmNvZGVSZWYgY29uc3QpOgorICAgICAgICAqIGppdC9KSVRPcGFxdWVCeXBy
b2R1Y3QuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wYXF1ZUJ5
cHJvZHVjdC5oLgorICAgICAgICAqIGppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdHMuY3BwLgor
ICAgICAgICAqIGppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmguCisgICAgICAgICogcnVudGlt
ZS9KU0NQdHJUYWcuaDogcmVuYW1lIEIzQ29tcGlsYXRpb25QdHJUYWcgdG8gSklUQ29tcGlsYXRp
b25QdHJUYWcuCisgICAgICAgICogd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5oOiB1c2UgSlNDOjpP
cGFxdWVCeXByb2R1Y3RzLgorICAgICAgICAqIHdhc20vV2FzbUJCUVBsYW4uY3BwOiB1c2UgSlND
OjpDb21waWxhdGlvbi4KKyAgICAgICAgKEpTQzo6V2FzbTo6QkJRUGxhbjo6d29yayk6CisgICAg
ICAgIChKU0M6Oldhc206OkJCUVBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24pOgorICAgICAg
ICAqIHdhc20vV2FzbUJpbmRpbmcuaDogY2hhbmdlIGluY2x1ZGVzLgorICAgICAgICAqIHdhc20v
V2FzbUNhbGxlZS5oOiBkaXR0by4KKyAgICAgICAgKiB3YXNtL1dhc21Gb3JtYXQuaDogdXNlIEpT
Qzo6Q29tcGlsYXRpb24uCisgICAgICAgICogd2FzbS9XYXNtTExJbnRQbGFuLmNwcDogZGl0dG8u
CisgICAgICAgIChKU0M6Oldhc206OkxMSW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbik6
CisgICAgICAgICogd2FzbS9XYXNtTExJbnRQbGFuLmg6IHVzZSBKSVRDb21waWxhdGlvblB0clRh
Zy4KKyAgICAgICAgKiB3YXNtL1dhc21Nb2R1bGUuaDogZGl0dG8uCisgICAgICAgICogd2FzbS9X
YXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcDogdXNlIEpTQzo6Q29tcGlsYXRpb24uCisgICAgICAg
IChKU0M6Oldhc206Ok9NR0Zvck9TUkVudHJ5UGxhbjo6d29yayk6CisgICAgICAgICogd2FzbS9X
YXNtT01HUGxhbi5jcHA6IGRpdHRvLgorICAgICAgICAoSlNDOjpXYXNtOjpPTUdQbGFuOjp3b3Jr
KToKKyAgICAgICAgKiB3YXNtL1dhc21QYXJzZXIuaDogY2hhbmdlIGluY2x1ZGVzLgorICAgICAg
ICAqIHdhc20vanMvV2FzbVRvSlMuaDogZGl0dG8uCisKIDIwMjEtMDEtMTQgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdIENvcnJlY3RseSBo
YW5kbGUgZXNjYXBlZCBrZXl3b3JkIGlkZW50aWZpZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGM5NTFhMGJmM2U0Yy4uYmNlMDc3NDU5MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjg5LDExICsyODksOCBAQAogCQkwRjMzOERGNjFCRTkzRDU1MDAxM0M4
OEYgLyogQjNDb25zdHJhaW5lZFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjMzOERGNDFCRTkzRDU1MDAxM0M4OEYgLyogQjNDb25zdHJhaW5l
ZFZhbHVlLmggKi87IH07CiAJCTBGMzM4REZBMUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzM4
REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLzsgfTsKIAkJMEYzMzhERkUx
QkVENTEyNzAwMTNDODhGIC8qIEFpclNpbXBsaWZ5Q0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMzOERGQzFCRUQ1MTI3MDAxM0M4OEYgLyogQWly
U2ltcGxpZnlDRkcuaCAqLzsgfTsKLQkJMEYzMzhFMEMxQkYwMjc2QzAwMTNDODhGIC8qIEIzQ29t
cGlsYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMzM4RTAwMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzMzhFMEUxQkYwMjc2QzAw
MTNDODhGIC8qIEIzRGF0YVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMzM4RTAyMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9u
LmggKi87IH07CiAJCTBGMzM4RTEwMUJGMDI3NkMwMDEzQzg4RiAvKiBCM01vdmVDb25zdGFudHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzM4RTA0
MUJGMDI3NkMwMDEzQzg4RiAvKiBCM01vdmVDb25zdGFudHMuaCAqLzsgfTsKLQkJMEYzMzhFMTEx
QkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMzOEUwNTFCRjAyNzZDMDAxM0M4OEYgLyog
QjNPcGFxdWVCeXByb2R1Y3QuaCAqLzsgfTsKLQkJMEYzMzhFMTMxQkYwMjc2QzAwMTNDODhGIC8q
IEIzT3BhcXVlQnlwcm9kdWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYzMzhFMDcxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0
cy5oICovOyB9OwogCQkwRjMzOEUxNTFCRjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzMzhFMDkxQkYw
Mjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXkuaCAqLzsgfTsKIAkJMEYzMzhFMTYxQkYwMjc2QzAw
MTNDODhGIC8qIEIzVmFsdWVLZXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMzOEUwQTFCRjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtl
eUlubGluZXMuaCAqLzsgfTsKIAkJMEYzMzhFMUMxQkYyODZFQTAwMTNDODhGIC8qIEIzQmxvY2tJ
bnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGMzM4RTE4MUJGMjg2RUEwMDEzQzg4RiAvKiBCM0Jsb2NrSW5zZXJ0aW9uU2V0LmggKi87
IH07CkBAIC0xMjQ3LDcgKzEyNDQsNyBAQAogCQk4NjE4MTY3NzFGQjc5MjQyMDBFQ0M0RUMgLyog
QmlnSW50T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NjE4MTY3NjFGQjc5MjJGMDBFQ0M0RUMgLyogQmlnSW50T2JqZWN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYyNTUzRDIxNjEzNkUx
QTAwOUYxN0QwIC8qIEpTUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg2MjU1M0NGMTYxMzZBQTUwMDlGMTdEMCAvKiBKU1Byb3h5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYzQjIzRTAwRkM2
MTE4OTAwNzAzQUE0IC8qIE1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYzQjIzREYwRkM2MEU2MjAwNzAzQUE0IC8q
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTg2M0ZCQzVBMjVCMDkzQjkwMEY2QzkzMCAvKiBXYXNtVmFsdWVM
b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODYzRkJDNTgyNUIwOTNCOTAwRjZDOTMwIC8qIFdhc21WYWx1ZUxvY2F0aW9uLmggKi87IH07ICAg
ICAgICAgICAgICAgIAorCQk4NjNGQkM1QTI1QjA5M0I5MDBGNkM5MzAgLyogV2FzbVZhbHVlTG9j
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
M0ZCQzU4MjVCMDkzQjkwMEY2QzkzMCAvKiBXYXNtVmFsdWVMb2NhdGlvbi5oICovOyB9OwogCQk4
NjVBMzBGMTEzNTAwN0UxMDBDREI0OUUgLyogSlNDSlNWYWx1ZUlubGluZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NUEzMEYwMTM1MDA3RTEwMENE
QjQ5RSAvKiBKU0NKU1ZhbHVlSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTg2NjczOUQyMTNCRkRFNzEwMDIzRDg3QyAvKiBCaWdJbnRl
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjY3
MzlEMDEzQkZERTcxMDAyM0Q4N0MgLyogQmlnSW50ZWdlci5oICovOyB9OwogCQk4NjY3MzlEMzEz
QkZERTcxMDAyM0Q4N0MgLyogVWludDE2V2l0aEZyYWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjY3MzlEMTEzQkZERTcxMDAyM0Q4N0MgLyog
VWludDE2V2l0aEZyYWN0aW9uLmggKi87IH07CkBAIC0xMjczLDYgKzEyNzAsOSBAQAogCQk4NkND
RUZERTBGNDEzRjg5MDBGRDdGOUUgLyogSklUQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZDQ0VGREQwRjQxM0Y4OTAwRkQ3RjlFIC8qIEpJVENv
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NkQyMjIxQTE2N0VGOTQ0MDAyNEM4MDQgLyogdGVzdGFwaS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDIyMjE5MTY3RUY5NDQwMDI0QzgwNCAvKiB0
ZXN0YXBpLm1tICovOyB9OwogCQk4NkQzQjNDMzEwMTU5RDdGMDAyODY1RTcgLyogTGlua0J1ZmZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZEM0Iz
QzExMDE1OUQ3RjAwMjg2NUU3IC8qIExpbmtCdWZmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4NkQ0NDZFQTI1QjIxMjUzMDBFQ0FFNzUgLyog
SklUT3BhcXVlQnlwcm9kdWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODZENDQ2RTYyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVj
dHMuaCAqLzsgfTsKKwkJODZENDQ2RUIyNUIyMTI1QzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJv
ZHVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZE
NDQ2RTUyNUIyMTI0NzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdC5oICovOyB9OworCQk4
NkQ0NDZFQzI1QjIxMjYwMDBFQ0FFNzUgLyogSklUQ29tcGlsYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDQ0NkU3MjVCMjEyNDgwMEVDQUU3
NSAvKiBKSVRDb21waWxhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg2RTExNkIxMEZFNzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RTExNkIw
MEZFNzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkUzQzYxMjE2N0JBQkQ3MDA2RDc2MEEgLyog
SlNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZFM0M2MDYxNjdCQUI4NzAwNkQ3NjBBIC8qIEpTVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAv
KiBKU0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RTNDNjA3MTY3QkFCODcwMDZENzYwQSAvKiBKU0NvbnRleHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC0yNTI1LDE1ICsyNTI1LDEwIEBA
CiAJCTBGMzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNDQ2FsbFZhbHVlLmg7IHBhdGggPSBiMy9CM0NDYWxs
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzMzhERkIxQkVENTEyNzAw
MTNDODhGIC8qIEFpclNpbXBsaWZ5Q0ZHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEFpclNpbXBsaWZ5Q0ZHLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJTaW1wbGlmeUNG
Ry5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzM4REZDMUJFRDUxMjcwMDEz
Qzg4RiAvKiBBaXJTaW1wbGlmeUNGRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBBaXJTaW1wbGlmeUNGRy5oOyBwYXRoID0gYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMzM4REZGMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0Nv
bXBpbGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29t
cGlsYXRpb24uY3BwOyBwYXRoID0gYjMvQjNDb21waWxhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGMzM4RTAwMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29tcGlsYXRpb24uaDsgcGF0
aCA9IGIzL0IzQ29tcGlsYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYz
MzhFMDExQkYwMjc2QzAwMTNDODhGIC8qIEIzRGF0YVNlY3Rpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNEYXRhU2VjdGlvbi5jcHA7IHBhdGggPSBiMy9CM0Rh
dGFTZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzMzhFMDIxQkYw
Mjc2QzAwMTNDODhGIC8qIEIzRGF0YVNlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQjNEYXRhU2VjdGlvbi5oOyBwYXRoID0gYjMvQjNEYXRhU2VjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMzOEUwMzFCRjAyNzZDMDAxM0M4OEYgLyogQjNN
b3ZlQ29uc3RhbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIz
TW92ZUNvbnN0YW50cy5jcHA7IHBhdGggPSBiMy9CM01vdmVDb25zdGFudHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMzOEUwNDFCRjAyNzZDMDAxM0M4OEYgLyogQjNNb3Zl
Q29uc3RhbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzTW92ZUNvbnN0
YW50cy5oOyBwYXRoID0gYjMvQjNNb3ZlQ29uc3RhbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGMzM4RTA1MUJGMDI3NkMwMDEzQzg4RiAvKiBCM09wYXF1ZUJ5cHJvZHVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM09wYXF1ZUJ5cHJvZHVjdC5oOyBw
YXRoID0gYjMvQjNPcGFxdWVCeXByb2R1Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEYzMzhFMDYxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM09wYXF1ZUJ5cHJvZHVjdHMuY3Bw
OyBwYXRoID0gYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEYzMzhFMDcxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM09wYXF1ZUJ5cHJvZHVjdHMuaDsg
cGF0aCA9IGIzL0IzT3BhcXVlQnlwcm9kdWN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjMzOEUwODFCRjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM1ZhbHVlS2V5LmNwcDsgcGF0aCA9IGIzL0Iz
VmFsdWVLZXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMzOEUwOTFCRjAy
NzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBCM1ZhbHVlS2V5Lmg7IHBhdGggPSBiMy9CM1ZhbHVlS2V5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMzM4RTBBMUJGMDI3NkMwMDEzQzg4RiAvKiBCM1ZhbHVlS2V5SW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1ZhbHVlS2V5SW5saW5l
cy5oOyBwYXRoID0gYjMvQjNWYWx1ZUtleUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQxOTgsNiArNDE5MywxMSBAQAogCQk4NkNDRUZERDBGNDEzRjg5MDBGRDdGOUUg
LyogSklUQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRDb2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RDIyMjE5MTY3RUY5NDQwMDI0QzgwNCAv
KiB0ZXN0YXBpLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSB0ZXN0
YXBpLm1tOyBwYXRoID0gQVBJL3Rlc3RzL3Rlc3RhcGkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTg2RDNCM0MxMTAxNTlEN0YwMDI4NjVFNyAvKiBMaW5rQnVmZmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpbmtCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODZENDQ2RTUyNUIyMTI0NzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJv
ZHVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRPcGFxdWVCeXByb2R1Y3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODZENDQ2RTYyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5
cHJvZHVjdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUT3BhcXVlQnlwcm9kdWN0cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4NkQ0NDZFNzI1QjIxMjQ4MDBFQ0FFNzUgLyogSklUQ29t
cGlsYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUQ29tcGlsYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODZENDQ2RTgyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVENvbXBpbGF0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVENvbXBpbGF0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODZENDQ2RTkyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVE9wYXF1
ZUJ5cHJvZHVjdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUT3BhcXVlQnlwcm9kdWN0cy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RTExNkIwMEZFNzVBQzgwMEI1MTJC
QyAvKiBDb2RlTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29k
ZUxvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RTNDNjA2MTY3QkFC
ODcwMDZENzYwQSAvKiBKU1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFM0M2MDcxNjdCQUI4
NzAwNkQ3NjBBIC8qIEpTQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3MzUsOCArNTcz
NSw2IEBACiAJCQkJMEZFQzg0QzAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbW9uLmggKi8sCiAJ
CQkJMEZFQzg0QzExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgKi8sCiAJ
CQkJMEZFQzg0QzIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5oICovLAotCQkJ
CTBGMzM4REZGMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmNwcCAqLywKLQkJCQkw
RjMzOEUwMDFCRjAyNzZDMDAxM0M4OEYgLyogQjNDb21waWxhdGlvbi5oICovLAogCQkJCTc5NUYw
OTlDMUUwMzYwMDUwMEJCRTM3RiAvKiBCM0NvbXBpbGUuY3BwICovLAogCQkJCTc5MTlCNzdGMUUw
MzU1OUMwMDVCRUVEOCAvKiBCM0NvbXBpbGUuaCAqLywKIAkJCQkwRjg2QUUxRjFDNTMxMUM1MDA2
QkU4RUMgLyogQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oICovLApAQCAtNTgwNiw5ICs1ODA0LDYg
QEAKIAkJCQkwRjMzOEUwNDFCRjAyNzZDMDAxM0M4OEYgLyogQjNNb3ZlQ29uc3RhbnRzLmggKi8s
CiAJCQkJMEYyQzYzQzExRTY2NEE1QTAwQzEzODM5IC8qIEIzTmF0aXZlVHJhaXRzLmggKi8sCiAJ
CQkJMEY1QkYxNjgxRjIzQTBBQTAwMjlEOTFEIC8qIEIzTmF0dXJhbExvb3BzLmggKi8sCi0JCQkJ
MEYzMzhFMDUxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0LmggKi8sCi0JCQkJ
MEYzMzhFMDYxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5jcHAgKi8sCi0J
CQkJMEYzMzhFMDcxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5oICovLAog
CQkJCTBGRUM4NEQ3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5jcHAgKi8sCiAJCQkJMEZF
Qzg0RDgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzT3Bjb2RlLmggKi8sCiAJCQkJMzM3NDM2NDkyMjRE
NzlFRjAwQzhDMjI3IC8qIEIzT3B0aW1pemVBc3NvY2lhdGl2ZUV4cHJlc3Npb25UcmVlcy5jcHAg
Ki8sCkBAIC02MTMwLDYgKzYxMjUsMTEgQEAKIAkJMTQyOUQ5MkMwRUQyMkQ3MDAwQjg5NjE5IC8q
IGppdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJODZE
NDQ2RTgyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVENvbXBpbGF0aW9uLmNwcCAqLywKKwkJCQk4NkQ0
NDZFNzI1QjIxMjQ4MDBFQ0FFNzUgLyogSklUQ29tcGlsYXRpb24uaCAqLywKKwkJCQk4NkQ0NDZF
NTI1QjIxMjQ3MDBFQ0FFNzUgLyogSklUT3BhcXVlQnlwcm9kdWN0LmggKi8sCisJCQkJODZENDQ2
RTkyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdHMuY3BwICovLAorCQkJCTg2
RDQ0NkU2MjVCMjEyNDgwMEVDQUU3NSAvKiBKSVRPcGFxdWVCeXByb2R1Y3RzLmggKi8sCiAJCQkJ
MEYyNEU1M0IxN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5jcHAgKi8sCiAJCQkJ
MEYyNEU1M0MxN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5oICovLAogCQkJCTBG
NjRCMjZGMUE3ODRCQUYwMDZFNEU2NiAvKiBCaW5hcnlTd2l0Y2guY3BwICovLApAQCAtOTAzNSw2
ICs5MDM1LDcgQEAKIAkJCQkwRjU1RjBGNTE0RDEwNjNDMDBBQzc2NDkgLyogQWJzdHJhY3RQQy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTM0RTAzNEUxRTRENEIxNjAwMjEzRjY0IC8qIEFjY2Vzc0Nh
c2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQkZEMEJDMURBRjgwOEUwMDY1REVBMiAvKiBBY2Nl
c3NDYXNlU25pcHBldFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODZENDQ2RUIyNUIyMTI1
QzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM3
MEI0RjYxQkYyNjIwNTAwNUM0MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0
Y2hwb2ludEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxNjhCRDg3MjQ0N0JBNEUwMDgwRkZC
NCAvKiBBZ2dyZWdhdGVFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTE4RTE1QzMyNDQ3QjIy
NzAwNDQ3QTU2IC8qIEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLApA
QCAtOTE3Miw3ICs5MTczLDYgQEAKIAkJCQkwRkVDODUwODFCREFDREFDMDA4MEZGNzQgLyogQjND
aGVja1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwQTFCREFDREFDMDA4MEZGNzQg
LyogQjNDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBDMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbW11dGF0aXZpdHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzM4RTBDMUJGMDI3
NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTE5Qjc4
MDFFMDM1NTlDMDA1QkVFRDggLyogQjNDb21waWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg2
QUUyMDFDNTMxMUM1MDA2QkU4RUMgLyogQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFQzg1MEUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3QzMlZhbHVlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTkyMTMsOCArOTIxMyw2IEBACiAJCQkJMEYzMzhFMTAxQkYwMjc2
QzAwMTNDODhGIC8qIEIzTW92ZUNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQzYz
QzIxRTY2NEE1QzAwQzEzODM5IC8qIEIzTmF0aXZlVHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjVCRjE2OTFGMjNBMEFBMDAyOUQ5MUQgLyogQjNOYXR1cmFsTG9vcHMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGMzM4RTExMUJGMDI3NkMwMDEzQzg4RiAvKiBCM09wYXF1ZUJ5cHJvZHVjdC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMzhFMTMxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVl
Qnlwcm9kdWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MjIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzT3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUyNDFCREFDREFDMDA4MEZG
NzQgLyogQjNPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEM5MTY2MUMyOUY0RjIwMDQz
NDFBNiAvKiBCM09yaWdpbkR1bXAuaCBpbiBIZWFkZXJzICovLApAQCAtMTAxNTEsNiArMTAxNDks
NyBAQAogCQkJCTk2MDA5N0E2MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEQ0YzRDU2QTFDRDI5NDcwMDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0
dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEQ0YzRDU2QjFDRDI5NDcyMDAzRDVDNjUgLyogTGF6
eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODZENDQ2RUMyNUIy
MTI2MDAwRUNBRTc1IC8qIEpJVENvbXBpbGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI1
NDY3NzE0RjU5QjVDMDAyQzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCURDRjNENTZDMUNEMjk0NzUwMDNENUM2NSAvKiBMYXp5UHJvcGVydHkuaCBp
biBIZWFkZXJzICovLAogCQkJCURDRjNENTZEMUNEMjk0NzYwMDNENUM2NSAvKiBMYXp5UHJvcGVy
dHlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEwNDMyLDYgKzEwNDMxLDcgQEAKIAkJCQlC
Q0RFM0FCODBFNkM4MkY1MDAxNDUzQTcgLyogU3RydWN0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3OTg2OTQzQjFGOEMwQUNDMDA5MjMyQUUgLyogU3RydWN0dXJlQ2FjaGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdFNEVFNzA5MEVCQjc5NjMwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODZENDQ2RUEyNUIyMTI1MzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5
cHJvZHVjdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBQUFBMzEyMThCRDQ5RDEwMDM5NENDOCAv
KiBTdHJ1Y3R1cmVJREJsb2IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBRjczODJEMThCQkJGOTIw
MDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQyQzky
NDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggNmI5NzhhMzkwZTgzLi41YmZiMGFhYjdlZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTEyMCw3ICsxMjAsNiBAQCBiMy9CM0No
ZWNrVmFsdWUuY3BwCiBiMy9CM0NvbW1vbi5jcHAKIGIzL0IzQ29tbXV0YXRpdml0eS5jcHAKIGIz
L0IzQ29tcGlsZS5jcHAKLWIzL0IzQ29tcGlsYXRpb24uY3BwCiBiMy9CM0NvbnN0MzJWYWx1ZS5j
cHAKIGIzL0IzQ29uc3Q2NFZhbHVlLmNwcAogYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcApAQCAt
MTQ5LDcgKzE0OCw2IEBAIGIzL0IzTG93ZXJUb0Fpci5jcHAKIGIzL0IzTWF0aEV4dHJhcy5jcHAK
IGIzL0IzTWVtb3J5VmFsdWUuY3BwCiBiMy9CM01vdmVDb25zdGFudHMuY3BwCi1iMy9CM09wYXF1
ZUJ5cHJvZHVjdHMuY3BwCiBiMy9CM09wY29kZS5jcHAKIGIzL0IzT3B0aW1pemVBc3NvY2lhdGl2
ZUV4cHJlc3Npb25UcmVlcy5jcHAKIGIzL0IzT3JpZ2luLmNwcApAQCAtNjQzLDYgKzY0MSw3IEBA
IGppdC9KSVRCaXRYb3JHZW5lcmF0b3IuY3BwCiBqaXQvSklUQ2FsbC5jcHAKIGppdC9KSVRDYWxs
MzJfNjQuY3BwCiBqaXQvSklUQ29kZS5jcHAKK2ppdC9KSVRDb21waWxhdGlvbi5jcHAKIGppdC9K
SVREaXNhc3NlbWJsZXIuY3BwCiBqaXQvSklURGl2R2VuZXJhdG9yLmNwcAogaml0L0pJVEV4Y2Vw
dGlvbnMuY3BwCkBAIC02NTAsNiArNjQ5LDcgQEAgaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmNwcAogaml0L0pJVExlZnRTaGlmdEdlbmVyYXRvci5jcHAKIGppdC9KSVRNdWxHZW5lcmF0b3Iu
Y3BwCiBqaXQvSklUTmVnR2VuZXJhdG9yLmNwcAoraml0L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuY3Bw
CiBqaXQvSklUT3Bjb2Rlcy5jcHAKIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCiBqaXQvSklUT3Bl
cmF0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBp
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5jcHAKaW5kZXggZTM0
OTQzYzRlMzljLi4yNzcwOWE1YmU5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbXBpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBp
bGUuY3BwCkBAIC00Niw3ICs0Niw3IEBAIENvbXBpbGF0aW9uIGNvbXBpbGUoUHJvY2VkdXJlJiBw
cm9jKQogICAgIGdlbmVyYXRlKHByb2MsIGppdCk7CiAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVy
KGppdCwgbnVsbHB0cik7CiAKLSAgICByZXR1cm4gQ29tcGlsYXRpb24oRklOQUxJWkVfQ09ERShs
aW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiQjM6OkNvbXBpbGF0aW9uIiksIHByb2Mu
cmVsZWFzZUJ5cHJvZHVjdHMoKSk7CisgICAgcmV0dXJuIENvbXBpbGF0aW9uKEZJTkFMSVpFX0NP
REUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJKU0M6OkNvbXBpbGF0aW9uIiks
IHByb2MucmVsZWFzZUJ5cHJvZHVjdHMoKSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpC
MwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oCmluZGV4IDViYmY3NzlmMThjMC4uOTdm
MmI2OWY2NTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oCkBAIC0yOCw3ICsy
OCw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCi0jaW5j
bHVkZSAiQjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
YXRhU2VjdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uaApp
bmRleCAyNjhmNjUxNGYzZDAuLmRmZjE0MjUwNDdlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNEYXRhU2VjdGlvbi5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklU
KQogCi0jaW5jbHVkZSAiQjNPcGFxdWVCeXByb2R1Y3QuaCIKKyNpbmNsdWRlICJKSVRPcGFxdWVC
eXByb2R1Y3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCmluZGV4IDhkYzQyMjZjZDU1Mi4uYTUyYzBm
N2ZhZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKQEAgLTM2
LDExICszNiwxMSBAQAogI2luY2x1ZGUgIkIzRGF0YVNlY3Rpb24uaCIKICNpbmNsdWRlICJCM0Rv
bWluYXRvcnMuaCIKICNpbmNsdWRlICJCM05hdHVyYWxMb29wcy5oIgotI2luY2x1ZGUgIkIzT3Bh
cXVlQnlwcm9kdWN0cy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1
ZGUgIkIzU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRl
ICJCM1ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiSklUT3BhcXVlQnlwcm9kdWN0cy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUHJvY2VkdXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9j
ZWR1cmUuaAppbmRleCAzZWUwNTA2MmJiZGIuLjA2ZmY2ZjVmYTEzZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKQEAgLTI3LDEyICsyNywxMiBAQAogCiAjaWYgRU5BQkxF
KEIzX0pJVCkKIAotI2luY2x1ZGUgIkIzT3BhcXVlQnlwcm9kdWN0cy5oIgogI2luY2x1ZGUgIkIz
T3JpZ2luLmgiCiAjaW5jbHVkZSAiQjNQQ1RvT3JpZ2luTWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFy
c2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiQjNUeXBlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUtl
eS5oIgorI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCIKICNpbmNsdWRlICJQdXJlTmFO
LmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlIDx3dGYvQmFn
Lmg+CkBAIC0yMzEsNyArMjMxLDcgQEAgcHVibGljOgogICAgIC8vIFlvdSBoYXZlIHRvIGNhbGwg
dGhpcyBtZXRob2QgYWZ0ZXIgY2FsbGluZyBnZW5lcmF0ZSgpLiBUaGUgY29kZSBnZW5lcmF0ZWQg
YnkgQjM6OmdlbmVyYXRlKCkKICAgICAvLyB3aWxsIHJlcXVpcmUgeW91IHRvIGtlZXAgdGhpcyBv
YmplY3QgYWxpdmUgZm9yIGFzIGxvbmcgYXMgdGhhdCBjb2RlIGlzIHJ1bm5hYmxlLiBVc3VhbGx5
LCB0aGlzCiAgICAgLy8ganVzdCBrZWVwcyBhbGl2ZSB0aGluZ3MgbGlrZSB0aGUgZG91YmxlIGNv
bnN0YW50IHBvb2wgYW5kIHN3aXRjaCBsb29rdXAgdGFibGVzLiBJZiB0aGlzIHNvdW5kcwotICAg
IC8vIGNvbmZ1c2luZywgeW91IHNob3VsZCBwcm9iYWJseSBiZSB1c2luZyB0aGUgQjM6OkNvbXBp
bGF0aW9uIEFQSSB0byBjb21waWxlIGNvZGUuIElmIHlvdSB1c2UKKyAgICAvLyBjb25mdXNpbmcs
IHlvdSBzaG91bGQgcHJvYmFibHkgYmUgdXNpbmcgdGhlIEpTQzo6Q29tcGlsYXRpb24gQVBJIHRv
IGNvbXBpbGUgY29kZS4gSWYgeW91IHVzZQogICAgIC8vIHRoYXQgQVBJLCB0aGVuIHlvdSBkb24n
dCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoaXMuCiAgICAgc3RkOjp1bmlxdWVfcHRyPE9wYXF1ZUJ5
cHJvZHVjdHM+IHJlbGVhc2VCeXByb2R1Y3RzKCkgeyByZXR1cm4gV1RGTW92ZShtX2J5cHJvZHVj
dHMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFp
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmluZGV4IGZl
ZmM3YTExOGE4Zi4uOWFkZjRhYmRjOTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL3Rlc3RhaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
dGVzdGFpci5jcHAKQEAgLTMwLDEzICszMCwxMyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIK
ICNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKICNpbmNsdWRlICJC
M0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgotI2luY2x1
ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNQYXRjaHBvaW50U3BlY2lhbC5oIgogI2lu
Y2x1ZGUgIkIzUGF0Y2hwb2ludFZhbHVlLmgiCisjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNp
bmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJKSVRD
b21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJQcm9iZUNv
bnRleHQuaCIKICNpbmNsdWRlICJQdXJlTmFOLmgiCkBAIC04NSwyMSArODUsMjEgQEAgTG9jayBj
cmFzaExvY2s7CiAgICAgICAgIENSQVNIKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKLXN0ZDo6
dW5pcXVlX3B0cjxCMzo6Q29tcGlsYXRpb24+IGNvbXBpbGUoQjM6OlByb2NlZHVyZSYgcHJvYykK
K3N0ZDo6dW5pcXVlX3B0cjxKU0M6OkNvbXBpbGF0aW9uPiBjb21waWxlKEIzOjpQcm9jZWR1cmUm
IHByb2MpCiB7CiAgICAgcHJlcGFyZUZvckdlbmVyYXRpb24ocHJvYy5jb2RlKCkpOwogICAgIEND
YWxsSGVscGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJvYy5jb2RlKCksIGppdCk7CiAgICAgTGlu
a0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgbnVsbHB0cik7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1
ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIz
Q29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YWlyIGNvbXBpbGF0aW9uIiksIHByb2MucmVsZWFzZUJ5
cHJvZHVjdHMoKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SlNDOjpDb21waWxhdGlvbj4oCisg
ICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJ0
ZXN0YWlyIGNvbXBpbGF0aW9uIiksIHByb2MucmVsZWFzZUJ5cHJvZHVjdHMoKSk7CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLVQgaW52b2tlKGNvbnN0
IEIzOjpDb21waWxhdGlvbiYgY29kZSwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKK1QgaW52b2tl
KGNvbnN0IEpTQzo6Q29tcGlsYXRpb24mIGNvZGUsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCiB7
Ci0gICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MgPSB1bnRhZ0NGdW5jdGlvblB0cjxCM0NvbXBp
bGF0aW9uUHRyVGFnPihjb2RlLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICB2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcyA9IHVudGFnQ0Z1bmN0aW9uUHRyPEpJVENvbXBpbGF0aW9uUHRy
VGFnPihjb2RlLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICBUICgqZnVuY3Rpb24p
KEFyZ3VtZW50cy4uLikgPSBiaXR3aXNlX2Nhc3Q8VCgqKShBcmd1bWVudHMuLi4pPihleGVjdXRh
YmxlQWRkcmVzcyk7CiAgICAgcmV0dXJuIGZ1bmN0aW9uKGFyZ3VtZW50cy4uLik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzLmgKaW5kZXggMDEzZmE1MDNlYzJlLi5mMjMxMWVmMjNkODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJC
M0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIK
ICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCiAj
aW5jbHVkZSAiQjNDb21waWxlLmgiCiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2aXNpb25NYWdpYy5o
IgogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCkBAIC02Nyw2ICs2Niw3IEBACiAjaW5jbHVk
ZSAiRlBSSW5mby5oIgogI2luY2x1ZGUgIkdQUkluZm8uaCIKICNpbmNsdWRlICJJbml0aWFsaXpl
VGhyZWFkaW5nLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIlB1cmVOYU4uaCIK
QEAgLTE5Niw5ICsxOTYsOSBAQCBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPENvbXBpbGF0aW9uPiBj
b21waWxlUHJvYyhQcm9jZWR1cmUmIHByb2NlZHVyZSwgdW5zaWduZWQgbwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci1UIGludm9rZShNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI8QjNDb21waWxhdGlvblB0clRhZz4gcHRyLCBBcmd1bWVudHMuLi4gYXJndW1l
bnRzKQorVCBpbnZva2UoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRyVGFn
PiBwdHIsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCiB7Ci0gICAgdm9pZCogZXhlY3V0YWJsZUFk
ZHJlc3MgPSB1bnRhZ0NGdW5jdGlvblB0cjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwdHIuZXhlY3V0
YWJsZUFkZHJlc3MoKSk7CisgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MgPSB1bnRhZ0NGdW5j
dGlvblB0cjxKSVRDb21waWxhdGlvblB0clRhZz4ocHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwog
ICAgIFQgKCpmdW5jdGlvbikoQXJndW1lbnRzLi4uKSA9IGJpdHdpc2VfY2FzdDxUKCopKEFyZ3Vt
ZW50cy4uLik+KGV4ZWN1dGFibGVBZGRyZXNzKTsKICAgICByZXR1cm4gZnVuY3Rpb24oYXJndW1l
bnRzLi4uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNf
Ni5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCmluZGV4IDI5YWE5
OTFjODlmYy4uMzFhZmYzOWY0MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzXzYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNi5j
cHAKQEAgLTE2NzQsMTkgKzE2NzQsMTkgQEAgdm9pZCB0ZXN0SW50ZXJwcmV0ZXIoKQogICAgICAg
ICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwog
ICAgICAgICAgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gbGFiZWxzID0gcGFy
YW1zLnN1Y2Nlc3NvckxhYmVscygpOwogCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI8QjNDb21waWxhdGlvblB0clRhZz4qIGp1bXBUYWJsZSA9IGJpdHdpc2VfY2FzdDxNYWNyb0Fz
c2VtYmxlckNvZGVQdHI8QjNDb21waWxhdGlvblB0clRhZz4qPigKLSAgICAgICAgICAgICAgICBw
YXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHI8
QjNDb21waWxhdGlvblB0clRhZz4pICogbGFiZWxzLnNpemUoKSkpOworICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRyVGFnPioganVtcFRhYmxlID0gYml0
d2lzZV9jYXN0PE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKSVRDb21waWxhdGlvblB0clRhZz4qPigK
KyAgICAgICAgICAgICAgICBwYXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKHNpemVvZihNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SklUQ29tcGlsYXRpb25QdHJUYWc+KSAqIGxhYmVscy5zaXplKCkp
KTsKIAogICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDApOwog
CiAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVtcFRh
YmxlKSwgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6QmFz
ZUluZGV4KHNjcmF0Y2gsIHBhcmFtc1swXS5ncHIoKSwgQ0NhbGxIZWxwZXJzOjpTY2FsZVB0ciks
IHNjcmF0Y2gpOwotICAgICAgICAgICAgaml0LmZhckp1bXAoc2NyYXRjaCwgQjNDb21waWxhdGlv
blB0clRhZyk7CisgICAgICAgICAgICBqaXQuZmFySnVtcChzY3JhdGNoLCBKSVRDb21waWxhdGlv
blB0clRhZyk7CiAKICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKICAgICAgICAgICAgICAg
ICBbJiwganVtcFRhYmxlLCBsYWJlbHNdIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGxhYmVscy5zaXplKCk7IGktLTspCi0g
ICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBsaW5rQnVmZmVyLmxvY2F0aW9u
T2Y8QjNDb21waWxhdGlvblB0clRhZz4oKmxhYmVsc1tpXSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBqdW1wVGFibGVbaV0gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25Q
dHJUYWc+KCpsYWJlbHNbaV0pOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtMTkzNywxMSArMTkzNywxMSBAQCB2b2lkIHRlc3RFbnRyeVN3aXRjaFNpbXBsZSgpCiAgICAg
Q0NhbGxIZWxwZXJzIGppdDsKICAgICBnZW5lcmF0ZShwcm9jLCBqaXQpOwogICAgIExpbmtCdWZm
ZXIgbGlua0J1ZmZlcihqaXQsIG51bGxwdHIpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29t
cGlsYXRpb25QdHJUYWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGls
YXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7Ci0gICAgQ29kZUxv
Y2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVs
KDEpKTsKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFRo
cmVlID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29k
ZSgpLmVudHJ5cG9pbnRMYWJlbCgyKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGls
YXRpb25QdHJUYWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0
aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOworICAgIENvZGVMb2Nh
dGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9j
YXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVs
KDEpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxU
aHJlZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5j
b2RlKCkuZW50cnlwb2ludExhYmVsKDIpKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxC
M0NvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBC
M0NvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7CisgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09E
RShsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIp
OwogCiAgICAgQ0hFQ0soaW52b2tlPGludD4obGFiZWxPbmUsIDEsIDIpID09IDMpOwogICAgIENI
RUNLKGludm9rZTxpbnQ+KGxhYmVsVHdvLCAxLCAyKSA9PSAtMSk7CkBAIC0xOTcwLDExICsxOTcw
LDExIEBAIHZvaWQgdGVzdEVudHJ5U3dpdGNoTm9FbnRyeVN3aXRjaCgpCiAgICAgQ0NhbGxIZWxw
ZXJzIGppdDsKICAgICBnZW5lcmF0ZShwcm9jLCBqaXQpOwogICAgIExpbmtCdWZmZXIgbGlua0J1
ZmZlcihqaXQsIG51bGxwdHIpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25Q
dHJUYWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJU
YWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFi
ZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8
QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEpKTsKLSAg
ICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFRocmVlID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5
cG9pbnRMYWJlbCgyKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJU
YWc+IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFn
Pihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOworICAgIENvZGVMb2NhdGlvbkxhYmVs
PEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxK
SVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEpKTsKKyAg
ICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUaHJlZSA9IGxp
bmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50
cnlwb2ludExhYmVsKDIpKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0
aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0
aW9uUHRyVGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVm
ZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOwogCiAgICAg
Q0hFQ0tfRVEoaW52b2tlPGludD4obGFiZWxPbmUsIDEsIDIpLCAzKTsKICAgICBDSEVDS19FUShp
bnZva2U8aW50PihsYWJlbFR3bywgMSwgMiksIDMpOwpAQCAtMjA1NywxMSArMjA1NywxMSBAQCB2
b2lkIHRlc3RFbnRyeVN3aXRjaFdpdGhDb21tb25QYXRocygpCiAgICAgQ0NhbGxIZWxwZXJzIGpp
dDsKICAgICBnZW5lcmF0ZShwcm9jLCBqaXQpOwogICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihq
aXQsIG51bGxwdHIpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+
IGxhYmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHBy
b2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjND
b21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21w
aWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEpKTsKLSAgICBDb2Rl
TG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFRocmVlID0gbGlua0J1ZmZl
ci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRM
YWJlbCgyKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxh
YmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9j
LmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENv
bXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21w
aWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEpKTsKKyAgICBDb2Rl
TG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUaHJlZSA9IGxpbmtCdWZm
ZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2lu
dExhYmVsKDIpKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRy
VGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRy
VGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJ
VENvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBK
SVRDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOwogCiAgICAgQ0hFQ0tf
RVEoaW52b2tlPGludD4obGFiZWxPbmUsIDEsIDIsIDEwKSwgMyk7CiAgICAgQ0hFQ0tfRVEoaW52
b2tlPGludD4obGFiZWxUd28sIDEsIDIsIDEwKSwgLTEpOwpAQCAtMjE3NCwxMSArMjE3NCwxMSBA
QCB2b2lkIHRlc3RFbnRyeVN3aXRjaFdpdGhDb21tb25QYXRoc0FuZE5vblRyaXZpYWxFbnRyeXBv
aW50KCkKICAgICBDQ2FsbEhlbHBlcnMgaml0OwogICAgIGdlbmVyYXRlKHByb2MsIGppdCk7CiAg
ICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgbnVsbHB0cik7Ci0gICAgQ29kZUxvY2F0aW9u
TGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9u
T2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsK
LSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3byA9IGxp
bmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRy
eXBvaW50TGFiZWwoMSkpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJU
YWc+IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRh
Zz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDIpKTsKKyAgICBDb2RlTG9jYXRpb25MYWJl
bDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8
SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7Cisg
ICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRy
eXBvaW50TGFiZWwoMSkpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRy
VGFnPiBsYWJlbFRocmVlID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRy
VGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMikpOwogCi0gICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPEIzQ29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxp
bmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKKyAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUQ29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBG
SU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGIzIGNv
bXBpbGF0aW9uIik7CiAKICAgICBDSEVDS19FUShpbnZva2U8aW50PihsYWJlbE9uZSwgMSwgMiwg
MTAsIGZhbHNlKSwgMyk7CiAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4obGFiZWxUd28sIDEsIDIs
IDEwLCBmYWxzZSksIC0xKTsKQEAgLTIyNTIsMTAgKzIyNTIsMTAgQEAgdm9pZCB0ZXN0RW50cnlT
d2l0Y2hMb29wKCkKICAgICBDQ2FsbEhlbHBlcnMgaml0OwogICAgIGdlbmVyYXRlKHByb2MsIGpp
dCk7CiAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgbnVsbHB0cik7Ci0gICAgQ29kZUxv
Y2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2Y8QjNDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVs
KDApKTsKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFR3
byA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUo
KS5lbnRyeXBvaW50TGFiZWwoMSkpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0
aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlv
blB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKKyAgICBDb2RlTG9jYXRp
b25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0
aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgx
KSk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29k
ZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgInRl
c3RiMyBjb21waWxhdGlvbiIpOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxh
dGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGls
YXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKIAogICAgIENIRUNLKGludm9rZTxp
bnQ+KGxhYmVsT25lLCAwKSA9PSAxKTsKICAgICBDSEVDSyhpbnZva2U8aW50PihsYWJlbE9uZSwg
NDIpID09IDQzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklU
Q29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKaW5kZXggY2Yx
NjY3MTRiOTBhLi5kOWRlZGZlNTIxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklU
Q29kZS5oCkBAIC0yNywxMSArMjcsMTEgQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCi0jaW5j
bHVkZSAiQjNPcGFxdWVCeXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAiREZHQ29tbW9uRGF0YS5oIgog
I2luY2x1ZGUgIkZUTExhenlTbG93UGF0aC5oIgogI2luY2x1ZGUgIkZUTE9TUkV4aXQuaCIKICNp
bmNsdWRlICJKSVRDb2RlLmgiCisjaW5jbHVkZSAiSklUT3BhcXVlQnlwcm9kdWN0cy5oIgogCiBu
YW1lc3BhY2UgSlNDIHsKIApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb250
YWlucyh2b2lkKikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXRpYWxpemVCM0NvZGUoQ29kZVJl
ZjxKU0VudHJ5UHRyVGFnPik7Ci0gICAgdm9pZCBpbml0aWFsaXplQjNCeXByb2R1Y3RzKHN0ZDo6
dW5pcXVlX3B0cjxCMzo6T3BhcXVlQnlwcm9kdWN0cz4pOworICAgIHZvaWQgaW5pdGlhbGl6ZUIz
Qnlwcm9kdWN0cyhzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpPcGFxdWVCeXByb2R1Y3RzPik7CiAgICAg
dm9pZCBpbml0aWFsaXplQWRkcmVzc0ZvckNhbGwoQ29kZVB0cjxKU0VudHJ5UHRyVGFnPik7CiAg
ICAgdm9pZCBpbml0aWFsaXplQXJpdHlDaGVja0VudHJ5cG9pbnQoQ29kZVJlZjxKU0VudHJ5UHRy
VGFnPik7CiAgICAgCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ29k
ZVB0cjxKU0VudHJ5UHRyVGFnPiBtX2FkZHJlc3NGb3JDYWxsOwogICAgIENvZGVSZWY8SlNFbnRy
eVB0clRhZz4gbV9iM0NvZGU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEIzOjpPcGFxdWVCeXByb2R1
Y3RzPiBtX2IzQnlwcm9kdWN0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpPcGFxdWVCeXBy
b2R1Y3RzPiBtX2IzQnlwcm9kdWN0czsKICAgICBDb2RlUmVmPEpTRW50cnlQdHJUYWc+IG1fYXJp
dHlDaGVja0VudHJ5cG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE91dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQu
aAppbmRleCAxNjEzNDE2NGJhN2QuLmNjNWY5NzE4OGM3NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE91dHB1dC5oCkBAIC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxv
Y2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb21w
aWxhdGlvbi5oIgogI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2NrLmgiCiAjaW5jbHVkZSAiQjNQ
cm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCkBAIC00Nyw2ICs0Niw3IEBA
CiAjaW5jbHVkZSAiRlRMV2VpZ2h0LmgiCiAjaW5jbHVkZSAiRlRMV2VpZ2h0ZWRUYXJnZXQuaCIK
ICNpbmNsdWRlICJIZWFwQ2VsbC5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL09yZGVyTWFrZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb21waWxhdGlvbi5jcHAKc2ltaWxh
cml0eSBpbmRleCA4NSUKcmVuYW1lIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29t
cGlsYXRpb24uY3BwCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvbXBp
bGF0aW9uLmNwcAppbmRleCBhZGJlMTU5NTcxOTAuLjI1N2FjN2VjNjk1NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ29tcGlsYXRpb24uY3BwCkBAIC0yNCwxNSArMjQsMTUgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgor
I2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAKLSNpZiBFTkFCTEUoQjNfSklUKQorI2lmIEVO
QUJMRShKSVQpCiAKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVjdHMuaCIKKyNpbmNsdWRlICJK
SVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewor
bmFtZXNwYWNlIEpTQyB7CiAKLUNvbXBpbGF0aW9uOjpDb21waWxhdGlvbihNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiwgc3RkOjp1bmlxdWVfcHRyPE9w
YXF1ZUJ5cHJvZHVjdHM+IGJ5cHJvZHVjdHMpCitDb21waWxhdGlvbjo6Q29tcGlsYXRpb24oTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmLCBzdGQ6OnVu
aXF1ZV9wdHI8T3BhcXVlQnlwcm9kdWN0cz4gYnlwcm9kdWN0cykKICAgICA6IG1fY29kZVJlZihj
b2RlUmVmKQogICAgICwgbV9ieXByb2R1Y3RzKFdURk1vdmUoYnlwcm9kdWN0cykpCiB7CkBAIC00
OCw3ICs0OCw3IEBAIENvbXBpbGF0aW9uOjp+Q29tcGlsYXRpb24oKQogewogfQogCi19IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjMKK30gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYgLy8gRU5BQkxF
KEIzX0pJVCkKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRDb21waWxhdGlvbi5oCnNpbWlsYXJpdHkgaW5kZXggNzclCnJlbmFtZSBmcm9tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmgKcmVuYW1lIHRvIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ29tcGlsYXRpb24uaAppbmRleCAwYmQwNjNlMzBmZTAuLmFkODlj
NjNhZmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvbXBpbGF0aW9uLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQjNfSklUKQorI2lm
IEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKICNpbmNs
dWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMzUsMzMgKzM1LDI5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBjbGFzcyBWTTsKIAotbmFtZXNwYWNlIEIzIHsKLQogY2xhc3MgT3BhcXVlQnlwcm9kdWN0
czsKLWNsYXNzIFByb2NlZHVyZTsKIAotLy8gVGhpcyBjbGFzcyBpcyBhIHdheSB0byBrZWVwIHRo
ZSByZXN1bHQgb2YgYSBCMyBjb21waWxhdGlvbiBhbGl2ZQotLy8gYW5kIHJ1bm5hYmxlLgorLy8g
VGhpcyBjbGFzcyBpcyBhIHdheSB0byBrZWVwIHRoZSByZXN1bHQgb2YgYSBjb21waWxhdGlvbiBh
bGl2ZSBhbmQgcnVubmFibGUuCiAKIGNsYXNzIENvbXBpbGF0aW9uIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb21waWxhdGlvbik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAK
IHB1YmxpYzoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBDb21waWxhdGlvbihNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4sIHN0ZDo6dW5pcXVlX3B0cjxPcGFxdWVCeXBy
b2R1Y3RzPik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ29tcGlsYXRpb24oTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiwgc3RkOjp1bmlxdWVfcHRyPE9wYXF1ZUJ5
cHJvZHVjdHM+KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBDb21waWxhdGlvbihDb21waWxhdGlv
biYmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+Q29tcGlsYXRpb24oKTsKIAotICAgIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBjb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9jb2RlUmVmLmNvZGUoKTsgfQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBp
bGF0aW9uUHRyVGFnPiBjb2RlUmVmKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlUmVmOyB9CisgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBjb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2RlUmVmLmNvZGUoKTsgfQorICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxK
SVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZigpIGNvbnN0IHsgcmV0dXJuIG1fY29kZVJlZjsg
fQogICAgIAogICAgIENTdHJpbmcgZGlzYXNzZW1ibHkoKSBjb25zdCB7IHJldHVybiBtX2NvZGVS
ZWYuZGlzYXNzZW1ibHkoKTsgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBtX2NvZGVSZWY7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBtX2NvZGVSZWY7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PE9wYXF1ZUJ5cHJvZHVjdHM+IG1fYnlwcm9kdWN0czsKIH07CiAKLX0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMworfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQor
I2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNPcGFxdWVCeXByb2R1Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bh
cXVlQnlwcm9kdWN0LmgKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVuYW1lIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0LmgKcmVuYW1lIHRvIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0LmgKaW5kZXggMzVhMmEwNmE0ZGMwLi5i
MTg3NDgxZDc1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wYXF1
ZUJ5cHJvZHVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BhcXVlQnlw
cm9kdWN0LmgKQEAgLTI1LDEzICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJM
RShCM19KSVQpCisjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFt
Lmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CiAK
IGNsYXNzIE9wYXF1ZUJ5cHJvZHVjdCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoT3BhcXVl
Qnlwcm9kdWN0KTsKQEAgLTQzLDYgKzQzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
dW1wKFByaW50U3RyZWFtJikgY29uc3QgPSAwOwogfTsKIAotfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkIzCit9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisjZW5k
aWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wYXF1ZUJ5cHJvZHVjdHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFx
dWVCeXByb2R1Y3RzLmNwcApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNwcApyZW5hbWUgdG8gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcAppbmRleCBmODlmOGJm
ZWQ2ZDEuLjc2ODEzMGQ2OTJkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzT3BhcXVlQnlwcm9kdWN0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGFxdWVCeXByb2R1Y3RzLmNwcApAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkIzT3BhcXVlQnlwcm9kdWN0cy5oIgorI2luY2x1ZGUg
IkpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCIKIAotI2lmIEVOQUJMRShCM19KSVQpCisjaWYgRU5BQkxF
KEpJVCkKIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CituYW1lc3BhY2UgSlNDIHsK
IAogT3BhcXVlQnlwcm9kdWN0czo6T3BhcXVlQnlwcm9kdWN0cygpCiB7CkBAIC01NCw3ICs1NCw3
IEBAIHZvaWQgT3BhcXVlQnlwcm9kdWN0czo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAog
ICAgICAgICBvdXQucHJpbnQoIiAgICAiLCAqYnlwcm9kdWN0LCAiXG4iKTsKIH0KIAotfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCit9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJM
RShCM19KSVQpCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmgKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1l
IGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oCnJlbmFt
ZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuaAppbmRl
eCBlOGVlYzExM2Y0ZTguLmJkOGZhMDQ3MmU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5oCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpZiBFTkFCTEUoQjNfSklUKQorI2lmIEVOQUJMRShKSVQpCiAKLSNpbmNsdWRl
ICJCM09wYXF1ZUJ5cHJvZHVjdC5oIgorI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5cHJvZHVjdC5oIgog
I2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIE9wYXF1ZUJ5cHJv
ZHVjdHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE9wYXF1ZUJ5cHJvZHVjdHMpCkBAIC01
MCw2ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxPcGFxdWVC
eXByb2R1Y3Q+PiBtX2J5cHJvZHVjdHM7CiB9OwogCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
K30gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDUHRyVGFnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaApp
bmRleCAxNWUyMDBhZWZkYmMuLjk5MTkwMzMyYmFjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDUHRyVGFnLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcgUHRyVGFnID0gV1RG
OjpQdHJUYWc7CiAgICAgdihET01KSVRGdW5jdGlvblB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6
TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBcCiAgICAgdihEaXNhc3NlbWJseVB0clRh
ZywgUHRyVGFnQ2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBcCiAg
ICAgLyogQ2FsbGVlOkpJVCBDYWxsZXI6Tm9uZSAqLyBcCi0gICAgdihCM0NvbXBpbGF0aW9uUHRy
VGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5vbmUpIFwKKyAg
ICB2KEpJVENvbXBpbGF0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0Nh
bGxlclR5cGU6Ok5vbmUpIFwKICAgICB2KEV4ZWN1dGFibGVNZW1vcnlQdHJUYWcsIFB0clRhZ0Nh
bGxlZVR5cGU6OkpJVCwgUHRyVGFnQ2FsbGVyVHlwZTo6Tm9uZSkgXAogICAgIHYoTGlua0J1ZmZl
clB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBc
CiAgICAgdihZYXJyOEJpdFB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxs
ZXJUeXBlOjpOb25lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQjNJUkdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJH
ZW5lcmF0b3IuaAppbmRleCBhM2VkMGQ5YjhmOWQuLjc3ZmMyZGIwOTQ0NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5oCkBAIC0yOCw5ICsyOCw5
IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQjNDb21tb24uaCIKLSNp
bmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCi0jaW5jbHVkZSAiQjNPcGFxdWVCeXByb2R1Y3RzLmgi
CiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIK
KyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAiV2FzbUNvbXBpbGF0
aW9uTW9kZS5oIgogI2luY2x1ZGUgIldhc21FbWJlZGRlci5oIgogI2luY2x1ZGUgIldhc21NZW1v
cnkuaCIKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgTWVtb3J5SW5mb3JtYXRpb247CiBzdHJ1Y3Qg
Q29tcGlsYXRpb25Db250ZXh0IHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0NhbGxIZWxwZXJzPiBl
bWJlZGRlckVudHJ5cG9pbnRKSVQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENDYWxsSGVscGVycz4g
d2FzbUVudHJ5cG9pbnRKSVQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEIzOjpPcGFxdWVCeXByb2R1
Y3RzPiB3YXNtRW50cnlwb2ludEJ5cHJvZHVjdHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6
T3BhcXVlQnlwcm9kdWN0cz4gd2FzbUVudHJ5cG9pbnRCeXByb2R1Y3RzOwogfTsKIAogRXhwZWN0
ZWQ8c3RkOjp1bmlxdWVfcHRyPEludGVybmFsRnVuY3Rpb24+LCBTdHJpbmc+IHBhcnNlQW5kQ29t
cGlsZShDb21waWxhdGlvbkNvbnRleHQmLCBjb25zdCBGdW5jdGlvbkRhdGEmLCBjb25zdCBTaWdu
YXR1cmUmLCBWZWN0b3I8VW5saW5rZWRXYXNtVG9XYXNtQ2FsbD4mLCB1bnNpZ25lZCYgb3NyRW50
cnlTY3JhdGNoQnVmZmVyU2l6ZSwgY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mLCBNZW1vcnlNb2Rl
LCBDb21waWxhdGlvbk1vZGUsIHVpbnQzMl90IGZ1bmN0aW9uSW5kZXgsIHVpbnQzMl90IGxvb3BJ
bmRleEZvck9TUkVudHJ5LCBUaWVyVXBDb3VudCogPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcAppbmRleCBjOTkwNTJiMjg2YzEuLjRhMGY2YTNi
YjI4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcApAQCAt
MjgsNyArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiQjND
b21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNU
b1dhc20uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2FzbUFpcklSR2Vu
ZXJhdG9yLmgiCkBAIC0xMTAsOCArMTEwLDggQEAgdm9pZCBCQlFQbGFuOjp3b3JrKENvbXBpbGF0
aW9uRWZmb3J0IGVmZm9ydCkKICAgICBzaXplX3QgZnVuY3Rpb25JbmRleFNwYWNlID0gbV9mdW5j
dGlvbkluZGV4ICsgbV9tb2R1bGVJbmZvcm1hdGlvbi0+aW1wb3J0RnVuY3Rpb25Db3VudCgpOwog
ICAgIFNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUluZGV4ID0gbV9tb2R1bGVJbmZvcm1hdGlvbi0+
aW50ZXJuYWxGdW5jdGlvblNpZ25hdHVyZUluZGljZXNbbV9mdW5jdGlvbkluZGV4XTsKICAgICBj
b25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSA9IFNpZ25hdHVyZUluZm9ybWF0aW9uOjpnZXQoc2ln
bmF0dXJlSW5kZXgpOwotICAgIGZ1bmN0aW9uLT5lbnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFr
ZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICBGSU5BTElaRV9XQVNNX0NPREVfRk9S
X01PREUoQ29tcGlsYXRpb25Nb2RlOjpCQlFNb2RlLCBsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9u
UHRyVGFnLCAiV2ViQXNzZW1ibHkgQkJRIGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwgbV9mdW5j
dGlvbkluZGV4LCBzaWduYXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmlu
ZyhJbmRleE9yTmFtZShmdW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5h
bWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKKyAg
ICBmdW5jdGlvbi0+ZW50cnlwb2ludC5jb21waWxhdGlvbiA9IG1ha2VVbmlxdWU8SlNDOjpDb21w
aWxhdGlvbj4oCisgICAgICAgIEZJTkFMSVpFX1dBU01fQ09ERV9GT1JfTU9ERShDb21waWxhdGlv
bk1vZGU6OkJCUU1vZGUsIGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiV2ViQXNz
ZW1ibHkgQkJRIGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwgbV9mdW5jdGlvbkluZGV4LCBzaWdu
YXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShm
dW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQo
ZnVuY3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgV1RGTW92ZShj
b250ZXh0Lndhc21FbnRyeXBvaW50Qnlwcm9kdWN0cykpOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPFdhc21FbnRyeVB0clRhZz4gZW50cnlwb2ludDsKQEAgLTIyNiw4ICsyMjYsOCBAQCB2
b2lkIEJCUVBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3QgQWJzdHJhY3RMb2NrZXIm
IGxvY2tlcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIG1fd2FzbUludGVybmFsRnVuY3Rpb25zW2Z1bmN0aW9uSW5kZXhdLT5lbnRyeXBvaW50
LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICAgICAg
ICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgIldlYkFz
c2VtYmx5IEJCUSBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25h
dHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1
bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChm
dW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAorICAgICAgICAgICAgbV93YXNt
SW50ZXJuYWxGdW5jdGlvbnNbZnVuY3Rpb25JbmRleF0tPmVudHJ5cG9pbnQuY29tcGlsYXRpb24g
PSBtYWtlVW5pcXVlPEpTQzo6Q29tcGlsYXRpb24+KAorICAgICAgICAgICAgICAgIEZJTkFMSVpF
X0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBCQlEg
ZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBmdW5jdGlvbkluZGV4LCBzaWduYXR1cmUudG9TdHJp
bmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5jdGlvbkluZGV4
U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRl
eFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgICAgICAgICBXVEZNb3ZlKGNvbnRl
eHQud2FzbUVudHJ5cG9pbnRCeXByb2R1Y3RzKSk7CiAgICAgICAgIH0KIApAQCAtMjM4LDggKzIz
OCw4IEBAIHZvaWQgQkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFj
dExvY2tlciYgbG9ja2VyKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uLT5lbnRyeXBvaW50
LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICAgICAg
ICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgIkVtYmVk
ZGVyLT5XZWJBc3NlbWJseSBlbnRyeXBvaW50WyVpXSAlcyBuYW1lICVzIiwgZnVuY3Rpb25JbmRl
eCwgc2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhP
ck5hbWUoZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlv
bi0+Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCisgICAgICAgICAg
ICBlbWJlZGRlclRvV2FzbUludGVybmFsRnVuY3Rpb24tPmVudHJ5cG9pbnQuY29tcGlsYXRpb24g
PSBtYWtlVW5pcXVlPEpTQzo6Q29tcGlsYXRpb24+KAorICAgICAgICAgICAgICAgIEZJTkFMSVpF
X0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJFbWJlZGRlci0+V2ViQXNz
ZW1ibHkgZW50cnlwb2ludFslaV0gJXMgbmFtZSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25hdHVy
ZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0
aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5j
dGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICAgICAgICAgIG51bGxw
dHIpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUJpbmRpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5k
aW5nLmgKaW5kZXggMDA3ZWU4MWI4ZGIzLi4yM2JhY2JmMjg0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CaW5kaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUJpbmRpbmcuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJ
VENvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgogI2luY2x1ZGUgPHd0Zi9F
eHBlY3RlZC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
Q2FsbGVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmgKaW5kZXgg
YmEzOWU1NmMyMzE0Li43MDY3Njg2NzIwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21DYWxsZWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ2FsbGVlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
IAotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5o
IgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiV2FzbUNvbXBp
bGF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Gb3JtYXQuaAppbmRleCBmYmU4NjBjMDM2MzQuLmY5ODFlMjAxOTcwNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNDYsOSArNDYsNyBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotbmFtZXNwYWNlIEIzIHsKIGNsYXNzIENvbXBpbGF0aW9uOwot
fQogCiBuYW1lc3BhY2UgV2FzbSB7CiAKQEAgLTM0MCw3ICszMzgsNyBAQCBzdHJ1Y3QgVW5saW5r
ZWRXYXNtVG9XYXNtQ2FsbCB7CiAKIHN0cnVjdCBFbnRyeXBvaW50IHsKICAgICBXVEZfTUFLRV9T
VFJVQ1RfRkFTVF9BTExPQ0FURUQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEIzOjpDb21waWxhdGlv
bj4gY29tcGlsYXRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6Q29tcGlsYXRpb24+IGNv
bXBpbGF0aW9uOwogICAgIFJlZ2lzdGVyQXRPZmZzZXRMaXN0IGNhbGxlZVNhdmVSZWdpc3RlcnM7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQ
bGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwCmlu
ZGV4IGEzZDRmNjFkOGNiYy4uYjBmN2YxZTk2ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTExJbnRQbGFuLmNwcApAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkJ5
dGVjb2RlRHVtcGVyLmgiCiAjaW5jbHVkZSAiQ2FsbGVlQml0cy5oIgorI2luY2x1ZGUgIkpJVENv
bXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNUb1dhc20uaCIKICNpbmNsdWRlICJMTEludFRodW5r
cy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIExM
SW50UGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyKQogICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rPEpJVFRodW5rUHRyVGFnPihqdW1wc1tp
XSwgQ29kZUxvY2F0aW9uTGFiZWw8SklUVGh1bmtQdHJUYWc+KExMSW50Ojp3YXNtRnVuY3Rpb25F
bnRyeVRodW5rKCkuY29kZSgpKSk7CiAgICAgICAgIH0KIAotICAgICAgICBtX2VudHJ5VGh1bmtz
ID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiV2FzbSBM
TEludCBlbnRyeSB0aHVua3MiKTsKKyAgICAgICAgbV9lbnRyeVRodW5rcyA9IEZJTkFMSVpFX0NP
REUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJXYXNtIExMSW50IGVudHJ5IHRo
dW5rcyIpOwogICAgICAgICBtX2NhbGxlZXMgPSBtX2NhbGxlZXNWZWN0b3IuZGF0YSgpOwogICAg
IH0KIApAQCAtMTUyLDggKzE1Miw4IEBAIHZvaWQgTExJbnRQbGFuOjpkaWRDb21wbGV0ZUNvbXBp
bGF0aW9uKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbi0+ZW50cnlwb2ludC5j
b21waWxhdGlvbiA9IG1ha2VVbmlxdWU8QjM6OkNvbXBpbGF0aW9uPigKLSAgICAgICAgICAgICAg
ICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJFbWJlZGRl
ci0+V2ViQXNzZW1ibHkgZW50cnlwb2ludFslaV0gJXMiLCBmdW5jdGlvbkluZGV4LCBzaWduYXR1
cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSksCisgICAgICAgICAgICBmdW5jdGlvbi0+ZW50
cnlwb2ludC5jb21waWxhdGlvbiA9IG1ha2VVbmlxdWU8SlNDOjpDb21waWxhdGlvbj4oCisgICAg
ICAgICAgICAgICAgRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRh
ZywgIkVtYmVkZGVyLT5XZWJBc3NlbWJseSBlbnRyeXBvaW50WyVpXSAlcyIsIGZ1bmN0aW9uSW5k
ZXgsIHNpZ25hdHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgICAgICAg
ICBudWxscHRyKTsKIAogICAgICAgICAgICAgUmVmPEVtYmVkZGVyRW50cnlwb2ludENhbGxlZT4g
Y2FsbGVlID0gRW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlv
bi0+ZW50cnlwb2ludCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50UGxhbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxh
bi5oCmluZGV4IDJlY2M0Mjg3Mzc5YS4uNDllYjAwOWNhYWZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBMTEludFBsYW4oQ29udGV4dCosIFZlY3Rvcjx1aW50OF90PiYm
LCBBc3luY1dvcmssIENvbXBsZXRpb25UYXNrJiYpOwogICAgIExMSW50UGxhbihDb250ZXh0Kiwg
UmVmPE1vZHVsZUluZm9ybWF0aW9uPiwgY29uc3QgUmVmPExMSW50Q2FsbGVlPiosIENvbXBsZXRp
b25UYXNrJiYpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIzQ29tcGlsYXRpb25QdHJU
YWc+JiYgdGFrZUVudHJ5VGh1bmtzKCkKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUQ29t
cGlsYXRpb25QdHJUYWc+JiYgdGFrZUVudHJ5VGh1bmtzKCkKICAgICB7CiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFmYWlsZWQoKSAmJiAhaGFzV29yaygpKTsKICAgICAgICAgcmV0dXJuIFdURk1v
dmUobV9lbnRyeVRodW5rcyk7CkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qg
UmVmPExMSW50Q2FsbGVlPiogbV9jYWxsZWVzIHsgbnVsbHB0ciB9OwogICAgIFZlY3RvcjxSZWY8
TExJbnRDYWxsZWU+PiBtX2NhbGxlZXNWZWN0b3I7CiAgICAgRW1iZWRkZXJFbnRyeXBvaW50Q2Fs
bGVlTWFwIG1fZW1iZWRkZXJDYWxsZWVzOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0Nv
bXBpbGF0aW9uUHRyVGFnPiBtX2VudHJ5VGh1bmtzOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxKSVRDb21waWxhdGlvblB0clRhZz4gbV9lbnRyeVRodW5rczsKIH07CiAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5oCmluZGV4IGZhZGE0YjJjZTU1MS4uYTVlZDBmZTcz
ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5oCkBAIC03Myw3ICs3
Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmPE1vZHVsZUluZm9ybWF0aW9uPiBtX21vZHVsZUluZm9y
bWF0aW9uOwogICAgIFJlZlB0cjxDb2RlQmxvY2s+IG1fY29kZUJsb2Nrc1tXYXNtOjpOdW1iZXJP
Zk1lbW9yeU1vZGVzXTsKICAgICBSZWZQdHI8TExJbnRDYWxsZWVzPiBtX2xsaW50Q2FsbGVlczsK
LSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gbV9sbGludEVu
dHJ5VGh1bmtzOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRh
Zz4gbV9sbGludEVudHJ5VGh1bmtzOwogICAgIExvY2sgbV9sb2NrOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcApp
bmRleCBjMjIzOTFlYzU4YzguLmVkODM2MTVkMjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHAKQEAgLTI4LDcgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRp
b24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKICNpbmNsdWRlICJXYXNtQjNJUkdlbmVyYXRvci5oIgogI2luY2x1ZGUgIldhc21DYWxsZWUu
aCIKQEAgLTg5LDggKzg5LDggQEAgdm9pZCBPTUdGb3JPU1JFbnRyeVBsYW46OndvcmsoQ29tcGls
YXRpb25FZmZvcnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvbWdFbnRyeXBvaW50
LmNvbXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICBGSU5B
TElaRV9XQVNNX0NPREVfRk9SX01PREUoQ29tcGlsYXRpb25Nb2RlOjpPTUdGb3JPU1JFbnRyeU1v
ZGUsIGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBPTUdGb3JP
U1JFbnRyeSBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIsIG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0
dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVu
Y3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1
bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCisgICAgb21nRW50cnlwb2ludC5j
b21waWxhdGlvbiA9IG1ha2VVbmlxdWU8SlNDOjpDb21waWxhdGlvbj4oCisgICAgICAgIEZJTkFM
SVpFX1dBU01fQ09ERV9GT1JfTU9ERShDb21waWxhdGlvbk1vZGU6Ok9NR0Zvck9TUkVudHJ5TW9k
ZSwgbGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBPTUdGb3JP
U1JFbnRyeSBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIsIG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0
dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVu
Y3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1
bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCiAgICAgICAgIFdURk1vdmUoY29u
dGV4dC53YXNtRW50cnlwb2ludEJ5cHJvZHVjdHMpKTsKIAogICAgIG9tZ0VudHJ5cG9pbnQuY2Fs
bGVlU2F2ZVJlZ2lzdGVycyA9IFdURk1vdmUocGFyc2VBbmRDb21waWxlUmVzdWx0LnZhbHVlKCkt
PmVudHJ5cG9pbnQuY2FsbGVlU2F2ZVJlZ2lzdGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT01HUGxhbi5jcHAKaW5kZXggMTZiNzQxNTAxNDk5Li5iOTY4MDRkMjY4YzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKQEAgLTI4LDcgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRp
b24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKICNpbmNsdWRlICJXYXNtQjNJUkdlbmVyYXRvci5oIgogI2luY2x1ZGUgIldhc21DYWxsZWUu
aCIKQEAgLTg2LDggKzg2LDggQEAgdm9pZCBPTUdQbGFuOjp3b3JrKENvbXBpbGF0aW9uRWZmb3J0
KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgb21nRW50cnlwb2ludC5jb21waWxhdGlv
biA9IG1ha2VVbmlxdWU8QjM6OkNvbXBpbGF0aW9uPigKLSAgICAgICAgRklOQUxJWkVfV0FTTV9D
T0RFX0ZPUl9NT0RFKENvbXBpbGF0aW9uTW9kZTo6T01HTW9kZSwgbGlua0J1ZmZlciwgQjNDb21w
aWxhdGlvblB0clRhZywgIldlYkFzc2VtYmx5IE9NRyBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIs
IG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1h
a2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0
aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEo
KSksCisgICAgb21nRW50cnlwb2ludC5jb21waWxhdGlvbiA9IG1ha2VVbmlxdWU8SlNDOjpDb21w
aWxhdGlvbj4oCisgICAgICAgIEZJTkFMSVpFX1dBU01fQ09ERV9GT1JfTU9ERShDb21waWxhdGlv
bk1vZGU6Ok9NR01vZGUsIGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiV2ViQXNz
ZW1ibHkgT01HIGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwgbV9mdW5jdGlvbkluZGV4LCBzaWdu
YXR1cmUudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShm
dW5jdGlvbkluZGV4U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQo
ZnVuY3Rpb25JbmRleFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgV1RGTW92ZShj
b250ZXh0Lndhc21FbnRyeXBvaW50Qnlwcm9kdWN0cykpOwogCiAgICAgb21nRW50cnlwb2ludC5j
YWxsZWVTYXZlUmVnaXN0ZXJzID0gV1RGTW92ZShwYXJzZUFuZENvbXBpbGVSZXN1bHQudmFsdWUo
KS0+ZW50cnlwb2ludC5jYWxsZWVTYXZlUmVnaXN0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21QYXJzZXIuaAppbmRleCBhMTViZWRkNDJiYmUuLmVjOWRlMzBiZGRlZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaApAQCAtMjcsOCArMjcsOCBAQAogCiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi0jaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNs
dWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCiAjaW5jbHVk
ZSAiV2FzbUxpbWl0cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2FzbVRvSlMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmgK
aW5kZXggNzE5YzQ1OTUzMjYxLi41NDU5OWI0ODRmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2FzbVRvSlMuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQogCi0jaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBp
bGF0aW9uLmgiCiAjaW5jbHVkZSAiV2FzbUJpbmRpbmcuaCIKICNpbmNsdWRlICJXYXNtRW1iZWRk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvQmFnLmg+Ci0tIAoyLjI5LjIKCg==
</data>
<flag name="review"
          id="435543"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="435544"
          type_id="3"
          status="-"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417827</attachid>
            <date>2021-01-18 03:26:16 -0800</date>
            <delta_ts>2021-01-18 16:24:59 -0800</delta_ts>
            <desc>Move B3::Compilation to jit/, v2</desc>
            <filename>0001-JSC-Implement-a-B3-Compilation-replacement-for-wasm-.patch</filename>
            <type>text/plain</type>
            <size>60356</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA0ODY0YTIxZmU5OGIyZDMyNmU1NTBkM2VlOTIyNzViMDYxYzIzZjRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WGFuPTIwTD1DMz1CM3Blej89IDx4YW5AaWdh
bGlhLmNvbT4KRGF0ZTogRnJpLCAxNSBKYW4gMjAyMSAxNzo1MjoyOCArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIFtKU0NdIEltcGxlbWVudCBhIEIzOjpDb21waWxhdGlvbiByZXBsYWNlbWVudCBmb3Ig
d2FzbS1sbGludAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDU4
NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpNb3ZlIEIzQ29tcGlsYXRpb24sIEIzT3Bh
cXVlQnlwcm9kdWN0cyBhbmQgQjNPcGFxdWVCeXByb2R1Y3QgdG8Kaml0Ly4gVGhleSBhcmUgdXNl
ZCBieSBub24tQjMgY29kZSBhbmQgdGhleSBhcmUgbm90IHJlYWxseSBCMwpzcGVjaWZpYy4gQWxz
byByZW5hbWUgQjNDb21waWxhdGlvblB0clRhZyB0byBKSVRDb21waWxhdGlvblB0clRhZy4KCiog
Q01ha2VMaXN0cy50eHQ6IGFkZCBuZXcgc291cmNlIGZpbGVzLgoqIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgoqIFNvdXJjZXMudHh0OiBkaXR0by4KKiBi
My9CM0NvbXBpbGUuY3BwOgooSlNDOjpCMzo6Y29tcGlsZSk6IHVzZSBKSVRDb21waWxhdGlvblB0
clRhZy4KKiBiMy9CM0NvbXBpbGUuaDogY2hhbmdlIGluY2x1ZGVzLgoqIGIzL0IzRGF0YVNlY3Rp
b24uaDogZGl0dG8uCiogYjMvQjNQcm9jZWR1cmUuY3BwOiBkaXR0by4KKiBiMy9CM1Byb2NlZHVy
ZS5oOiBkaXR0by4KKiBiMy9haXIvdGVzdGFpci5jcHA6IHVzZSBKSVRDb21waWxhdGlvblB0clRh
Zy4KKiBiMy90ZXN0YjMuaDogY2hhbmdlIGluY2x1ZGVzLgooaW52b2tlKToKKiBiMy90ZXN0YjNf
Ni5jcHA6Cih0ZXN0SW50ZXJwcmV0ZXIpOiB1c2UgSklUQ29tcGlsYXRpb25QdHJUYWcuCih0ZXN0
RW50cnlTd2l0Y2hTaW1wbGUpOiBkaXR0by4KKHRlc3RFbnRyeVN3aXRjaE5vRW50cnlTd2l0Y2gp
OiBkaXR0by4KKHRlc3RFbnRyeVN3aXRjaFdpdGhDb21tb25QYXRocyk6IGRpdHRvLgoodGVzdEVu
dHJ5U3dpdGNoV2l0aENvbW1vblBhdGhzQW5kTm9uVHJpdmlhbEVudHJ5cG9pbnQpOiBkaXR0by4K
KHRlc3RFbnRyeVN3aXRjaExvb3ApOiBkaXR0by4KKiBmdGwvRlRMSklUQ29kZS5oOiB1c2UgSlND
OjpPcGFxdWVCeXByb2R1Y3RzLgoqIGZ0bC9GVExPdXRwdXQuaDogY2hhbmdlIGluY2x1ZGVzLgoq
IGppdC9KSVRDb21waWxhdGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21waWxhdGlvbi5jcHAuCihKU0M6OkNvbXBpbGF0aW9uOjpDb21waWxhdGlvbik6
Ciogaml0L0pJVENvbXBpbGF0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21waWxhdGlvbi5oLgooSlNDOjpDb21waWxhdGlvbjo6Y29kZSBjb25zdCk6CihK
U0M6OkNvbXBpbGF0aW9uOjpjb2RlUmVmIGNvbnN0KToKKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1
Y3QuaC4KKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNwcC4KKiBqaXQvSklUT3BhcXVl
Qnlwcm9kdWN0cy5oOiBSZW5hbWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bh
cXVlQnlwcm9kdWN0cy5oLgoqIHJ1bnRpbWUvSlNDUHRyVGFnLmg6IHJlbmFtZSBCM0NvbXBpbGF0
aW9uUHRyVGFnIHRvIEpJVENvbXBpbGF0aW9uUHRyVGFnLgoqIHdhc20vV2FzbUIzSVJHZW5lcmF0
b3IuaDogdXNlIEpTQzo6T3BhcXVlQnlwcm9kdWN0cy4KKiB3YXNtL1dhc21CQlFQbGFuLmNwcDog
dXNlIEpTQzo6Q29tcGlsYXRpb24uCihKU0M6Oldhc206OkJCUVBsYW46OndvcmspOgooSlNDOjpX
YXNtOjpCQlFQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKiB3YXNtL1dhc21CaW5kaW5n
Lmg6IGNoYW5nZSBpbmNsdWRlcy4KKiB3YXNtL1dhc21DYWxsZWUuaDogZGl0dG8uCiogd2FzbS9X
YXNtRm9ybWF0Lmg6IHVzZSBKU0M6OkNvbXBpbGF0aW9uLgoqIHdhc20vV2FzbUxMSW50UGxhbi5j
cHA6IGRpdHRvLgooSlNDOjpXYXNtOjpMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24p
OgoqIHdhc20vV2FzbUxMSW50UGxhbi5oOiB1c2UgSklUQ29tcGlsYXRpb25QdHJUYWcuCiogd2Fz
bS9XYXNtTW9kdWxlLmg6IGRpdHRvLgoqIHdhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHA6
IHVzZSBKU0M6OkNvbXBpbGF0aW9uLgooSlNDOjpXYXNtOjpPTUdGb3JPU1JFbnRyeVBsYW46Ondv
cmspOgoqIHdhc20vV2FzbU9NR1BsYW4uY3BwOiBkaXR0by4KKEpTQzo6V2FzbTo6T01HUGxhbjo6
d29yayk6Ciogd2FzbS9XYXNtUGFyc2VyLmg6IGNoYW5nZSBpbmNsdWRlcy4KKiB3YXNtL2pzL1dh
c21Ub0pTLmg6IGRpdHRvLgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dCAgICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgfCAzNCArKysrKy0tLS0tLQogU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAgIHwgIDQgKy0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0NvbXBpbGUuY3BwICAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21waWxlLmggICAgICAgICAgfCAgMiArLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRGF0YVNlY3Rpb24uaCAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuaCAgICAgICAgfCAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci90ZXN0YWlyLmNwcCAgICAgIHwgMTQgKystLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuaCAgICAgICAgICAgICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzXzYuY3BwICAgICAgICAgfCA0NiArKysrKysrLS0tLS0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSklUQ29kZS5oICAgICAgICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE91dHB1dC5oICAgICAgICAgfCAgMiArLQogLi4uL0pJVENvbXBpbGF0aW9uLmNw
cH0gICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKystLS0KIC4uLi9CM0NvbXBpbGF0aW9uLmgg
PT4gaml0L0pJVENvbXBpbGF0aW9uLmh9ICB8IDIwICsrKy0tLS0KIC4uLi9KSVRPcGFxdWVCeXBy
b2R1Y3QuaH0gICAgICAgICAgICAgICAgICAgICB8ICA4ICstLQogLi4uL0pJVE9wYXF1ZUJ5cHJv
ZHVjdHMuY3BwfSAgICAgICAgICAgICAgICAgIHwgMTAgKystLQogLi4uL0pJVE9wYXF1ZUJ5cHJv
ZHVjdHMuaH0gICAgICAgICAgICAgICAgICAgIHwgMTAgKystLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggICAgIHwgIDIgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CM0lSR2VuZXJhdG9yLmggICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbi5jcHAgICAgfCAxNCArKy0tLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUJpbmRpbmcuaCAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21DYWxsZWUuaCAgICAgICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRm9ybWF0LmggICAgICAgfCAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUxMSW50UGxhbi5jcHAgIHwgIDggKy0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRQbGFuLmggICAgfCAgNCArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZS5oICAgICAgIHwgIDIgKy0KIC4uLi93YXNtL1dhc21PTUdGb3JPU1JFbnRyeVBsYW4u
Y3BwICAgICAgICAgICB8ICA2ICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01H
UGxhbi5jcHAgICAgfCAgNiArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNl
ci5oICAgICAgIHwgIDIgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pT
LmggICAgICB8ICAyICstCiAuLi4vd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmggICAgICAg
ICAgICAgfCAgNCAtLQogMzMgZmlsZXMgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDEzMSBk
ZWxldGlvbnMoLSkKIHJlbmFtZSBTb3VyY2UvSmF2YVNjcmlwdENvcmUve2IzL0IzQ29tcGlsYXRp
b24uY3BwID0+IGppdC9KSVRDb21waWxhdGlvbi5jcHB9ICg4NSUpCiByZW5hbWUgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3tiMy9CM0NvbXBpbGF0aW9uLmggPT4gaml0L0pJVENvbXBpbGF0aW9uLmh9
ICg3NyUpCiByZW5hbWUgU291cmNlL0phdmFTY3JpcHRDb3JlL3tiMy9CM09wYXF1ZUJ5cHJvZHVj
dC5oID0+IGppdC9KSVRPcGFxdWVCeXByb2R1Y3QuaH0gKDk0JSkKIHJlbmFtZSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUve2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5jcHAgPT4gaml0L0pJVE9wYXF1ZUJ5
cHJvZHVjdHMuY3BwfSAoOTMlKQogcmVuYW1lIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS97YjMvQjNP
cGFxdWVCeXByb2R1Y3RzLmggPT4gaml0L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuaH0gKDkzJSkKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNThhNTcwNjk3ZWI5Li44OTM5OTBm
NDk2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUyMSw3ICs1MjEs
NiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGFz
c2VtYmxlci9YODZfNjRSZWdpc3RlcnMuaAogCiAgICAgYjMvQjNDb21tb24uaAotICAgIGIzL0Iz
Q29tcGlsYXRpb24uaAogICAgIGIzL0IzVHlwZS5oCiAKICAgICBiaW5kaW5ncy9TY3JpcHRGdW5j
dGlvbkNhbGwuaApAQCAtNzU3LDYgKzc1Niw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgaml0L0pJVEFsbG9jYXRvci5oCiAgICAgaml0L0pJVENv
ZGUuaAogICAgIGppdC9KSVRDb2RlTWFwLmgKKyAgICBqaXQvSklUQ29tcGlsYXRpb24uaAogICAg
IGppdC9KSVRDb21waWxhdGlvbkVmZm9ydC5oCiAgICAgaml0L0pJVE1hdGhJQ0ZvcndhcmRzLmgK
ICAgICBqaXQvSklUT3BlcmF0aW9ucy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1ZTQz
NmU1NTAwNGMuLmNjYTM4ZWY1M2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjIgQEAKKzIwMjEtMDEtMTYgIFhhbiBMw7NwZXogIDx4YW5AaWdhbGlhLmNvbT4KKworICAg
ICAgICBbSlNDXSBJbXBsZW1lbnQgYSBCMzo6Q29tcGlsYXRpb24gcmVwbGFjZW1lbnQgZm9yIHdh
c20tbGxpbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMDU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgQjNDb21waWxhdGlvbiwgQjNPcGFxdWVCeXByb2R1Y3RzIGFuZCBCM09wYXF1ZUJ5cHJv
ZHVjdCB0bworICAgICAgICBqaXQvLiBUaGV5IGFyZSB1c2VkIGJ5IG5vbi1CMyBjb2RlIGFuZCB0
aGV5IGFyZSBub3QgcmVhbGx5IEIzCisgICAgICAgIHNwZWNpZmljLiBBbHNvIHJlbmFtZSBCM0Nv
bXBpbGF0aW9uUHRyVGFnIHRvIEpJVENvbXBpbGF0aW9uUHRyVGFnLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6IGFkZCBuZXcgc291cmNlIGZpbGVzLgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgorICAgICAgICAqIFNvdXJjZXMu
dHh0OiBkaXR0by4KKyAgICAgICAgKiBiMy9CM0NvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6Y29tcGlsZSk6IHVzZSBKSVRDb21waWxhdGlvblB0clRhZy4KKyAgICAgICAgKiBiMy9CM0Nv
bXBpbGUuaDogY2hhbmdlIGluY2x1ZGVzLgorICAgICAgICAqIGIzL0IzRGF0YVNlY3Rpb24uaDog
ZGl0dG8uCisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOiBkaXR0by4KKyAgICAgICAgKiBi
My9CM1Byb2NlZHVyZS5oOiBkaXR0by4KKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6IHVz
ZSBKSVRDb21waWxhdGlvblB0clRhZy4KKyAgICAgICAgKiBiMy90ZXN0YjMuaDogY2hhbmdlIGlu
Y2x1ZGVzLgorICAgICAgICAoaW52b2tlKToKKyAgICAgICAgKiBiMy90ZXN0YjNfNi5jcHA6Cisg
ICAgICAgICh0ZXN0SW50ZXJwcmV0ZXIpOiB1c2UgSklUQ29tcGlsYXRpb25QdHJUYWcuCisgICAg
ICAgICh0ZXN0RW50cnlTd2l0Y2hTaW1wbGUpOiBkaXR0by4KKyAgICAgICAgKHRlc3RFbnRyeVN3
aXRjaE5vRW50cnlTd2l0Y2gpOiBkaXR0by4KKyAgICAgICAgKHRlc3RFbnRyeVN3aXRjaFdpdGhD
b21tb25QYXRocyk6IGRpdHRvLgorICAgICAgICAodGVzdEVudHJ5U3dpdGNoV2l0aENvbW1vblBh
dGhzQW5kTm9uVHJpdmlhbEVudHJ5cG9pbnQpOiBkaXR0by4KKyAgICAgICAgKHRlc3RFbnRyeVN3
aXRjaExvb3ApOiBkaXR0by4KKyAgICAgICAgKiBmdGwvRlRMSklUQ29kZS5oOiB1c2UgSlNDOjpP
cGFxdWVCeXByb2R1Y3RzLgorICAgICAgICAqIGZ0bC9GVExPdXRwdXQuaDogY2hhbmdlIGluY2x1
ZGVzLgorICAgICAgICAqIGppdC9KSVRDb21waWxhdGlvbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5jcHAuCisgICAgICAgIChKU0M6OkNv
bXBpbGF0aW9uOjpDb21waWxhdGlvbik6CisgICAgICAgICogaml0L0pJVENvbXBpbGF0aW9uLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5oLgor
ICAgICAgICAoSlNDOjpDb21waWxhdGlvbjo6Y29kZSBjb25zdCk6CisgICAgICAgIChKU0M6OkNv
bXBpbGF0aW9uOjpjb2RlUmVmIGNvbnN0KToKKyAgICAgICAgKiBqaXQvSklUT3BhcXVlQnlwcm9k
dWN0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXBy
b2R1Y3QuaC4KKyAgICAgICAgKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNwcC4KKyAg
ICAgICAgKiBqaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5oOiBSZW5hbWVkIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oLgorICAgICAgICAqIHJ1bnRpbWUv
SlNDUHRyVGFnLmg6IHJlbmFtZSBCM0NvbXBpbGF0aW9uUHRyVGFnIHRvIEpJVENvbXBpbGF0aW9u
UHRyVGFnLgorICAgICAgICAqIHdhc20vV2FzbUIzSVJHZW5lcmF0b3IuaDogdXNlIEpTQzo6T3Bh
cXVlQnlwcm9kdWN0cy4KKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmNwcDogdXNlIEpTQzo6
Q29tcGlsYXRpb24uCisgICAgICAgIChKU0M6Oldhc206OkJCUVBsYW46OndvcmspOgorICAgICAg
ICAoSlNDOjpXYXNtOjpCQlFQbGFuOjpkaWRDb21wbGV0ZUNvbXBpbGF0aW9uKToKKyAgICAgICAg
KiB3YXNtL1dhc21CaW5kaW5nLmg6IGNoYW5nZSBpbmNsdWRlcy4KKyAgICAgICAgKiB3YXNtL1dh
c21DYWxsZWUuaDogZGl0dG8uCisgICAgICAgICogd2FzbS9XYXNtRm9ybWF0Lmg6IHVzZSBKU0M6
OkNvbXBpbGF0aW9uLgorICAgICAgICAqIHdhc20vV2FzbUxMSW50UGxhbi5jcHA6IGRpdHRvLgor
ICAgICAgICAoSlNDOjpXYXNtOjpMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24pOgor
ICAgICAgICAqIHdhc20vV2FzbUxMSW50UGxhbi5oOiB1c2UgSklUQ29tcGlsYXRpb25QdHJUYWcu
CisgICAgICAgICogd2FzbS9XYXNtTW9kdWxlLmg6IGRpdHRvLgorICAgICAgICAqIHdhc20vV2Fz
bU9NR0Zvck9TUkVudHJ5UGxhbi5jcHA6IHVzZSBKU0M6OkNvbXBpbGF0aW9uLgorICAgICAgICAo
SlNDOjpXYXNtOjpPTUdGb3JPU1JFbnRyeVBsYW46OndvcmspOgorICAgICAgICAqIHdhc20vV2Fz
bU9NR1BsYW4uY3BwOiBkaXR0by4KKyAgICAgICAgKEpTQzo6V2FzbTo6T01HUGxhbjo6d29yayk6
CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6IGNoYW5nZSBpbmNsdWRlcy4KKyAgICAgICAg
KiB3YXNtL2pzL1dhc21Ub0pTLmg6IGRpdHRvLgorCiAyMDIxLTAxLTE4ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gY2FsbGVySXNPTUdDb21waWxl
ZCBzaG91bGQgYmUgcm9idXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM5NTFh
MGJmM2U0Yy4uYmNlMDc3NDU5MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
Mjg5LDExICsyODksOCBAQAogCQkwRjMzOERGNjFCRTkzRDU1MDAxM0M4OEYgLyogQjNDb25zdHJh
aW5lZFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjMzOERGNDFCRTkzRDU1MDAxM0M4OEYgLyogQjNDb25zdHJhaW5lZFZhbHVlLmggKi87IH07
CiAJCTBGMzM4REZBMUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzM4REY4MUJFOTZBQTgwMDEz
Qzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLzsgfTsKIAkJMEYzMzhERkUxQkVENTEyNzAwMTNDODhG
IC8qIEFpclNpbXBsaWZ5Q0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjMzOERGQzFCRUQ1MTI3MDAxM0M4OEYgLyogQWlyU2ltcGxpZnlDRkcuaCAq
LzsgfTsKLQkJMEYzMzhFMEMxQkYwMjc2QzAwMTNDODhGIC8qIEIzQ29tcGlsYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzM4RTAwMUJGMDI3
NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzMzhFMEUxQkYwMjc2QzAwMTNDODhGIC8qIEIzRGF0
YVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMzM4RTAyMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmggKi87IH07CiAJCTBG
MzM4RTEwMUJGMDI3NkMwMDEzQzg4RiAvKiBCM01vdmVDb25zdGFudHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzM4RTA0MUJGMDI3NkMwMDEzQzg4
RiAvKiBCM01vdmVDb25zdGFudHMuaCAqLzsgfTsKLQkJMEYzMzhFMTExQkYwMjc2QzAwMTNDODhG
IC8qIEIzT3BhcXVlQnlwcm9kdWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjMzOEUwNTFCRjAyNzZDMDAxM0M4OEYgLyogQjNPcGFxdWVCeXByb2R1
Y3QuaCAqLzsgfTsKLQkJMEYzMzhFMTMxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9k
dWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYz
MzhFMDcxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5oICovOyB9OwogCQkw
RjMzOEUxNTFCRjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzMzhFMDkxQkYwMjc2QzAwMTNDODhGIC8q
IEIzVmFsdWVLZXkuaCAqLzsgfTsKIAkJMEYzMzhFMTYxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFs
dWVLZXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjMzOEUwQTFCRjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleUlubGluZXMuaCAqLzsg
fTsKIAkJMEYzMzhFMUMxQkYyODZFQTAwMTNDODhGIC8qIEIzQmxvY2tJbnNlcnRpb25TZXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzM4RTE4MUJG
Mjg2RUEwMDEzQzg4RiAvKiBCM0Jsb2NrSW5zZXJ0aW9uU2V0LmggKi87IH07CkBAIC0xMjQ3LDcg
KzEyNDQsNyBAQAogCQk4NjE4MTY3NzFGQjc5MjQyMDBFQ0M0RUMgLyogQmlnSW50T2JqZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjE4MTY3NjFG
Qjc5MjJGMDBFQ0M0RUMgLyogQmlnSW50T2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYyNTUzRDIxNjEzNkUxQTAwOUYxN0QwIC8qIEpT
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
MjU1M0NGMTYxMzZBQTUwMDlGMTdEMCAvKiBKU1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODYzQjIzRTAwRkM2MTE4OTAwNzAzQUE0IC8q
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODYzQjIzREYwRkM2MEU2MjAwNzAzQUE0IC8qIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTg2M0ZCQzVBMjVCMDkzQjkwMEY2QzkzMCAvKiBXYXNtVmFsdWVMb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYzRkJDNTgyNUIwOTNC
OTAwRjZDOTMwIC8qIFdhc21WYWx1ZUxvY2F0aW9uLmggKi87IH07ICAgICAgICAgICAgICAgIAor
CQk4NjNGQkM1QTI1QjA5M0I5MDBGNkM5MzAgLyogV2FzbVZhbHVlTG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2M0ZCQzU4MjVCMDkzQjkw
MEY2QzkzMCAvKiBXYXNtVmFsdWVMb2NhdGlvbi5oICovOyB9OwogCQk4NjVBMzBGMTEzNTAwN0Ux
MDBDREI0OUUgLyogSlNDSlNWYWx1ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NUEzMEYwMTM1MDA3RTEwMENEQjQ5RSAvKiBKU0NKU1Zh
bHVlSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg2NjczOUQyMTNCRkRFNzEwMDIzRDg3QyAvKiBCaWdJbnRlZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjY3MzlEMDEzQkZERTcxMDAy
M0Q4N0MgLyogQmlnSW50ZWdlci5oICovOyB9OwogCQk4NjY3MzlEMzEzQkZERTcxMDAyM0Q4N0Mg
LyogVWludDE2V2l0aEZyYWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NjY3MzlEMTEzQkZERTcxMDAyM0Q4N0MgLyogVWludDE2V2l0aEZyYWN0
aW9uLmggKi87IH07CkBAIC0xMjczLDYgKzEyNzAsOSBAQAogCQk4NkNDRUZERTBGNDEzRjg5MDBG
RDdGOUUgLyogSklUQ29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZDQ0VGREQwRjQxM0Y4OTAwRkQ3RjlFIC8qIEpJVENvZGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkQyMjIxQTE2N0VGOTQ0
MDAyNEM4MDQgLyogdGVzdGFwaS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg2RDIyMjE5MTY3RUY5NDQwMDI0QzgwNCAvKiB0ZXN0YXBpLm1tICovOyB9
OwogCQk4NkQzQjNDMzEwMTU5RDdGMDAyODY1RTcgLyogTGlua0J1ZmZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZEM0IzQzExMDE1OUQ3RjAwMjg2
NUU3IC8qIExpbmtCdWZmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk4NkQ0NDZFQTI1QjIxMjUzMDBFQ0FFNzUgLyogSklUT3BhcXVlQnlwcm9k
dWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZE
NDQ2RTYyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCAqLzsgfTsKKwkJ
ODZENDQ2RUIyNUIyMTI1QzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZENDQ2RTUyNUIyMTI0NzAw
RUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdC5oICovOyB9OworCQk4NkQ0NDZFQzI1QjIxMjYw
MDBFQ0FFNzUgLyogSklUQ29tcGlsYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RDQ0NkU3MjVCMjEyNDgwMEVDQUU3NSAvKiBKSVRDb21waWxh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTg2RTExNkIxMEZFNzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RTExNkIwMEZFNzVBQzgwMEI1MTJC
QyAvKiBDb2RlTG9jYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4NkUzQzYxMjE2N0JBQkQ3MDA2RDc2MEEgLyogSlNWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFM0M2MDYxNjdCQUI4
NzAwNkQ3NjBBIC8qIEpTVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CiAJCTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBKU0NvbnRleHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RTNDNjA3MTY3
QkFCODcwMDZENzYwQSAvKiBKU0NvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQdWJsaWMsICk7IH07IH07CkBAIC0yNTI1LDE1ICsyNTI1LDEwIEBACiAJCTBGMzM4REY4MUJF
OTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQjNDQ2FsbFZhbHVlLmg7IHBhdGggPSBiMy9CM0NDYWxsVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzMzhERkIxQkVENTEyNzAwMTNDODhGIC8qIEFpclNp
bXBsaWZ5Q0ZHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpclNp
bXBsaWZ5Q0ZHLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzM4REZDMUJFRDUxMjcwMDEzQzg4RiAvKiBBaXJTaW1w
bGlmeUNGRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBaXJTaW1wbGlmeUNG
Ry5oOyBwYXRoID0gYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGMzM4REZGMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29tcGlsYXRpb24uY3BwOyBw
YXRoID0gYjMvQjNDb21waWxhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGMzM4RTAwMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29tcGlsYXRpb24uaDsgcGF0aCA9IGIzL0IzQ29tcGls
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzMzhFMDExQkYwMjc2QzAw
MTNDODhGIC8qIEIzRGF0YVNlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gQjNEYXRhU2VjdGlvbi5jcHA7IHBhdGggPSBiMy9CM0RhdGFTZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzMzhFMDIxQkYwMjc2QzAwMTNDODhGIC8q
IEIzRGF0YVNlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNEYXRh
U2VjdGlvbi5oOyBwYXRoID0gYjMvQjNEYXRhU2VjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjMzOEUwMzFCRjAyNzZDMDAxM0M4OEYgLyogQjNNb3ZlQ29uc3RhbnRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzTW92ZUNvbnN0YW50cy5j
cHA7IHBhdGggPSBiMy9CM01vdmVDb25zdGFudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjMzOEUwNDFCRjAyNzZDMDAxM0M4OEYgLyogQjNNb3ZlQ29uc3RhbnRzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzTW92ZUNvbnN0YW50cy5oOyBwYXRoID0g
YjMvQjNNb3ZlQ29uc3RhbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMzM4
RTA1MUJGMDI3NkMwMDEzQzg4RiAvKiBCM09wYXF1ZUJ5cHJvZHVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM09wYXF1ZUJ5cHJvZHVjdC5oOyBwYXRoID0gYjMvQjNPcGFx
dWVCeXByb2R1Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYzMzhFMDYxQkYw
Mjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCM09wYXF1ZUJ5cHJvZHVjdHMuY3BwOyBwYXRoID0gYjMvQjNP
cGFxdWVCeXByb2R1Y3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYzMzhF
MDcxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM09wYXF1ZUJ5cHJvZHVjdHMuaDsgcGF0aCA9IGIzL0IzT3Bh
cXVlQnlwcm9kdWN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMzOEUwODFC
RjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBCM1ZhbHVlS2V5LmNwcDsgcGF0aCA9IGIzL0IzVmFsdWVLZXkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjMzOEUwOTFCRjAyNzZDMDAxM0M4OEYgLyog
QjNWYWx1ZUtleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1ZhbHVlS2V5
Lmg7IHBhdGggPSBiMy9CM1ZhbHVlS2V5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGMzM4RTBBMUJGMDI3NkMwMDEzQzg4RiAvKiBCM1ZhbHVlS2V5SW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1ZhbHVlS2V5SW5saW5lcy5oOyBwYXRoID0gYjMv
QjNWYWx1ZUtleUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxOTgs
NiArNDE5MywxMSBAQAogCQk4NkNDRUZERDBGNDEzRjg5MDBGRDdGOUUgLyogSklUQ29kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRDb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg2RDIyMjE5MTY3RUY5NDQwMDI0QzgwNCAvKiB0ZXN0YXBpLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSB0ZXN0YXBpLm1tOyBwYXRoID0g
QVBJL3Rlc3RzL3Rlc3RhcGkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RDNC
M0MxMTAxNTlEN0YwMDI4NjVFNyAvKiBMaW5rQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExpbmtCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODZENDQ2RTUyNUIyMTI0NzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKSVRPcGFxdWVCeXByb2R1Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODZENDQ2RTYyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSklUT3BhcXVlQnlwcm9kdWN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4NkQ0NDZFNzI1QjIxMjQ4MDBFQ0FFNzUgLyogSklUQ29tcGlsYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSklUQ29tcGlsYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJODZENDQ2RTgyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVENvbXBpbGF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpJVENvbXBpbGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODZENDQ2RTkyNUIyMTI0ODAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSklUT3BhcXVlQnlwcm9kdWN0cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2RTExNkIwMEZFNzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29kZUxvY2F0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RTNDNjA2MTY3QkFCODcwMDZENzYwQSAvKiBK
U1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmFsdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFM0M2MDcxNjdCQUI4NzAwNkQ3NjBBIC8qIEpT
Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NvbnRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU3MzUsOCArNTczNSw2IEBACiAJCQkJMEZF
Qzg0QzAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbW9uLmggKi8sCiAJCQkJMEZFQzg0QzExQkRB
Q0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgKi8sCiAJCQkJMEZFQzg0QzIxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5oICovLAotCQkJCTBGMzM4REZGMUJGMDI3
NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmNwcCAqLywKLQkJCQkwRjMzOEUwMDFCRjAyNzZD
MDAxM0M4OEYgLyogQjNDb21waWxhdGlvbi5oICovLAogCQkJCTc5NUYwOTlDMUUwMzYwMDUwMEJC
RTM3RiAvKiBCM0NvbXBpbGUuY3BwICovLAogCQkJCTc5MTlCNzdGMUUwMzU1OUMwMDVCRUVEOCAv
KiBCM0NvbXBpbGUuaCAqLywKIAkJCQkwRjg2QUUxRjFDNTMxMUM1MDA2QkU4RUMgLyogQjNDb21w
dXRlRGl2aXNpb25NYWdpYy5oICovLApAQCAtNTgwNiw5ICs1ODA0LDYgQEAKIAkJCQkwRjMzOEUw
NDFCRjAyNzZDMDAxM0M4OEYgLyogQjNNb3ZlQ29uc3RhbnRzLmggKi8sCiAJCQkJMEYyQzYzQzEx
RTY2NEE1QTAwQzEzODM5IC8qIEIzTmF0aXZlVHJhaXRzLmggKi8sCiAJCQkJMEY1QkYxNjgxRjIz
QTBBQTAwMjlEOTFEIC8qIEIzTmF0dXJhbExvb3BzLmggKi8sCi0JCQkJMEYzMzhFMDUxQkYwMjc2
QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0LmggKi8sCi0JCQkJMEYzMzhFMDYxQkYwMjc2
QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5jcHAgKi8sCi0JCQkJMEYzMzhFMDcxQkYw
Mjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5oICovLAogCQkJCTBGRUM4NEQ3MUJE
QUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5jcHAgKi8sCiAJCQkJMEZFQzg0RDgxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzT3Bjb2RlLmggKi8sCiAJCQkJMzM3NDM2NDkyMjRENzlFRjAwQzhDMjI3IC8q
IEIzT3B0aW1pemVBc3NvY2lhdGl2ZUV4cHJlc3Npb25UcmVlcy5jcHAgKi8sCkBAIC02MTMwLDYg
KzYxMjUsMTEgQEAKIAkJMTQyOUQ5MkMwRUQyMkQ3MDAwQjg5NjE5IC8qIGppdCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJODZENDQ2RTgyNUIyMTI0ODAw
RUNBRTc1IC8qIEpJVENvbXBpbGF0aW9uLmNwcCAqLywKKwkJCQk4NkQ0NDZFNzI1QjIxMjQ4MDBF
Q0FFNzUgLyogSklUQ29tcGlsYXRpb24uaCAqLywKKwkJCQk4NkQ0NDZFNTI1QjIxMjQ3MDBFQ0FF
NzUgLyogSklUT3BhcXVlQnlwcm9kdWN0LmggKi8sCisJCQkJODZENDQ2RTkyNUIyMTI0ODAwRUNB
RTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdHMuY3BwICovLAorCQkJCTg2RDQ0NkU2MjVCMjEyNDgw
MEVDQUU3NSAvKiBKSVRPcGFxdWVCeXByb2R1Y3RzLmggKi8sCiAJCQkJMEYyNEU1M0IxN0VBOUY1
OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5jcHAgKi8sCiAJCQkJMEYyNEU1M0MxN0VBOUY1
OTAwQUJCMjE3IC8qIEFzc2VtYmx5SGVscGVycy5oICovLAogCQkJCTBGNjRCMjZGMUE3ODRCQUYw
MDZFNEU2NiAvKiBCaW5hcnlTd2l0Y2guY3BwICovLApAQCAtOTAzNSw2ICs5MDM1LDcgQEAKIAkJ
CQkwRjU1RjBGNTE0RDEwNjNDMDBBQzc2NDkgLyogQWJzdHJhY3RQQy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTM0RTAzNEUxRTRENEIxNjAwMjEzRjY0IC8qIEFjY2Vzc0Nhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzQkZEMEJDMURBRjgwOEUwMDY1REVBMiAvKiBBY2Nlc3NDYXNlU25pcHBldFBh
cmFtcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODZENDQ2RUIyNUIyMTI1QzAwRUNBRTc1IC8qIEpJ
VE9wYXF1ZUJ5cHJvZHVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM3MEI0RjYxQkYyNjIwNTAw
NUM0MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludEJhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTkxNjhCRDg3MjQ0N0JBNEUwMDgwRkZCNCAvKiBBZ2dyZWdhdGVF
cnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTE4RTE1QzMyNDQ3QjIyNzAwNDQ3QTU2IC8qIEFn
Z3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtOTE3Miw3ICs5MTcz
LDYgQEAKIAkJCQkwRkVDODUwODFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVDODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW11dGF0
aXZpdHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzM4RTBDMUJGMDI3NkMwMDEzQzg4RiAvKiBC
M0NvbXBpbGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTE5Qjc4MDFFMDM1NTlDMDA1QkVF
RDggLyogQjNDb21waWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg2QUUyMDFDNTMxMUM1MDA2
QkU4RUMgLyogQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1MEUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3QzMlZhbHVlLmggaW4gSGVhZGVycyAqLywK
QEAgLTkyMTMsOCArOTIxMyw2IEBACiAJCQkJMEYzMzhFMTAxQkYwMjc2QzAwMTNDODhGIC8qIEIz
TW92ZUNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQzYzQzIxRTY2NEE1QzAwQzEz
ODM5IC8qIEIzTmF0aXZlVHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVCRjE2OTFGMjNB
MEFBMDAyOUQ5MUQgLyogQjNOYXR1cmFsTG9vcHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzM4
RTExMUJGMDI3NkMwMDEzQzg4RiAvKiBCM09wYXF1ZUJ5cHJvZHVjdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYzMzhFMTMxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MjIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzT3Bjb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUyNDFCREFDREFDMDA4MEZGNzQgLyogQjNPcmlnaW4u
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEM5MTY2MUMyOUY0RjIwMDQzNDFBNiAvKiBCM09yaWdp
bkR1bXAuaCBpbiBIZWFkZXJzICovLApAQCAtMTAxNTEsNiArMTAxNDksNyBAQAogCQkJCTk2MDA5
N0E2MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
Q0YzRDU2QTFDRDI5NDcwMDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEQ0YzRDU2QjFDRDI5NDcyMDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJl
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODZENDQ2RUMyNUIyMTI2MDAwRUNBRTc1IC8q
IEpJVENvbXBpbGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI1NDY3NzE0RjU5QjVDMDAy
QzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCURD
RjNENTZDMUNEMjk0NzUwMDNENUM2NSAvKiBMYXp5UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAog
CQkJCURDRjNENTZEMUNEMjk0NzYwMDNENUM2NSAvKiBMYXp5UHJvcGVydHlJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKQEAgLTEwNDMyLDYgKzEwNDMxLDcgQEAKIAkJCQlCQ0RFM0FCODBFNkM4MkY1
MDAxNDUzQTcgLyogU3RydWN0dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTg2OTQzQjFGOEMw
QUNDMDA5MjMyQUUgLyogU3RydWN0dXJlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNEVF
NzA5MEVCQjc5NjMwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODZENDQ2RUEyNUIyMTI1MzAwRUNBRTc1IC8qIEpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJBQUFBMzEyMThCRDQ5RDEwMDM5NENDOCAvKiBTdHJ1Y3R1cmVJREJs
b2IuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1
Y3R1cmVJRFRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgw
M0YgLyogU3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291
cmNlcy50eHQKaW5kZXggNmI5NzhhMzkwZTgzLi41YmZiMGFhYjdlZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU291cmNlcy50eHQKQEAgLTEyMCw3ICsxMjAsNiBAQCBiMy9CM0NoZWNrVmFsdWUuY3BwCiBi
My9CM0NvbW1vbi5jcHAKIGIzL0IzQ29tbXV0YXRpdml0eS5jcHAKIGIzL0IzQ29tcGlsZS5jcHAK
LWIzL0IzQ29tcGlsYXRpb24uY3BwCiBiMy9CM0NvbnN0MzJWYWx1ZS5jcHAKIGIzL0IzQ29uc3Q2
NFZhbHVlLmNwcAogYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcApAQCAtMTQ5LDcgKzE0OCw2IEBA
IGIzL0IzTG93ZXJUb0Fpci5jcHAKIGIzL0IzTWF0aEV4dHJhcy5jcHAKIGIzL0IzTWVtb3J5VmFs
dWUuY3BwCiBiMy9CM01vdmVDb25zdGFudHMuY3BwCi1iMy9CM09wYXF1ZUJ5cHJvZHVjdHMuY3Bw
CiBiMy9CM09wY29kZS5jcHAKIGIzL0IzT3B0aW1pemVBc3NvY2lhdGl2ZUV4cHJlc3Npb25UcmVl
cy5jcHAKIGIzL0IzT3JpZ2luLmNwcApAQCAtNjQzLDYgKzY0MSw3IEBAIGppdC9KSVRCaXRYb3JH
ZW5lcmF0b3IuY3BwCiBqaXQvSklUQ2FsbC5jcHAKIGppdC9KSVRDYWxsMzJfNjQuY3BwCiBqaXQv
SklUQ29kZS5jcHAKK2ppdC9KSVRDb21waWxhdGlvbi5jcHAKIGppdC9KSVREaXNhc3NlbWJsZXIu
Y3BwCiBqaXQvSklURGl2R2VuZXJhdG9yLmNwcAogaml0L0pJVEV4Y2VwdGlvbnMuY3BwCkBAIC02
NTAsNiArNjQ5LDcgQEAgaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAogaml0L0pJVExl
ZnRTaGlmdEdlbmVyYXRvci5jcHAKIGppdC9KSVRNdWxHZW5lcmF0b3IuY3BwCiBqaXQvSklUTmVn
R2VuZXJhdG9yLmNwcAoraml0L0pJVE9wYXF1ZUJ5cHJvZHVjdHMuY3BwCiBqaXQvSklUT3Bjb2Rl
cy5jcHAKIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCiBqaXQvSklUT3BlcmF0aW9ucy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5jcHAKaW5kZXggZTM0OTQzYzRlMzljLi4zMzgx
NTc4ODZmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuY3BwCkBAIC00Niw3
ICs0Niw3IEBAIENvbXBpbGF0aW9uIGNvbXBpbGUoUHJvY2VkdXJlJiBwcm9jKQogICAgIGdlbmVy
YXRlKHByb2MsIGppdCk7CiAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgbnVsbHB0cik7
CiAKLSAgICByZXR1cm4gQ29tcGlsYXRpb24oRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0Nv
bXBpbGF0aW9uUHRyVGFnLCAiQjM6OkNvbXBpbGF0aW9uIiksIHByb2MucmVsZWFzZUJ5cHJvZHVj
dHMoKSk7CisgICAgcmV0dXJuIENvbXBpbGF0aW9uKEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwg
SklUQ29tcGlsYXRpb25QdHJUYWcsICJDb21waWxhdGlvbiIpLCBwcm9jLnJlbGVhc2VCeXByb2R1
Y3RzKCkpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0NvbXBpbGUuaAppbmRleCA1YmJmNzc5ZjE4YzAuLjk3ZjJiNjlmNjU2MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbXBpbGUuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShC
M19KSVQpCiAKICNpbmNsdWRlICJCM0NvbW1vbi5oIgotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24u
aCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmgKaW5kZXggMjY4ZjY1MTRmM2QwLi5k
ZmYxNDI1MDQ3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFT
ZWN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uaApA
QCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAotI2luY2x1ZGUgIkIzT3Bh
cXVlQnlwcm9kdWN0LmgiCisjaW5jbHVkZSAiSklUT3BhcXVlQnlwcm9kdWN0LmgiCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJv
Y2VkdXJlLmNwcAppbmRleCA4ZGM0MjI2Y2Q1NTIuLmE1MmMwZjdmYWUxMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCkBAIC0zNiwxMSArMzYsMTEgQEAKICNpbmNs
dWRlICJCM0RhdGFTZWN0aW9uLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVk
ZSAiQjNOYXR1cmFsTG9vcHMuaCIKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVjdHMuaCIKICNp
bmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgog
I2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgorI2lu
Y2x1ZGUgIkpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVy
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKaW5kZXggM2VlMDUw
NjJiYmRiLi4wNmZmNmY1ZmExM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVy
ZS5oCkBAIC0yNywxMiArMjcsMTIgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKLSNpbmNsdWRl
ICJCM09wYXF1ZUJ5cHJvZHVjdHMuaCIKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUg
IkIzUENUb09yaWdpbk1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkIzVHlwZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVLZXkuaCIKKyNpbmNsdWRlICJKSVRP
cGFxdWVCeXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAiUHVyZU5hTi5oIgogI2luY2x1ZGUgIlJlZ2lz
dGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgpAQCAtMjMxLDcgKzIzMSw3
IEBAIHB1YmxpYzoKICAgICAvLyBZb3UgaGF2ZSB0byBjYWxsIHRoaXMgbWV0aG9kIGFmdGVyIGNh
bGxpbmcgZ2VuZXJhdGUoKS4gVGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IEIzOjpnZW5lcmF0ZSgpCiAg
ICAgLy8gd2lsbCByZXF1aXJlIHlvdSB0byBrZWVwIHRoaXMgb2JqZWN0IGFsaXZlIGZvciBhcyBs
b25nIGFzIHRoYXQgY29kZSBpcyBydW5uYWJsZS4gVXN1YWxseSwgdGhpcwogICAgIC8vIGp1c3Qg
a2VlcHMgYWxpdmUgdGhpbmdzIGxpa2UgdGhlIGRvdWJsZSBjb25zdGFudCBwb29sIGFuZCBzd2l0
Y2ggbG9va3VwIHRhYmxlcy4gSWYgdGhpcyBzb3VuZHMKLSAgICAvLyBjb25mdXNpbmcsIHlvdSBz
aG91bGQgcHJvYmFibHkgYmUgdXNpbmcgdGhlIEIzOjpDb21waWxhdGlvbiBBUEkgdG8gY29tcGls
ZSBjb2RlLiBJZiB5b3UgdXNlCisgICAgLy8gY29uZnVzaW5nLCB5b3Ugc2hvdWxkIHByb2JhYmx5
IGJlIHVzaW5nIHRoZSBKU0M6OkNvbXBpbGF0aW9uIEFQSSB0byBjb21waWxlIGNvZGUuIElmIHlv
dSB1c2UKICAgICAvLyB0aGF0IEFQSSwgdGhlbiB5b3UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91
dCB0aGlzLgogICAgIHN0ZDo6dW5pcXVlX3B0cjxPcGFxdWVCeXByb2R1Y3RzPiByZWxlYXNlQnlw
cm9kdWN0cygpIHsgcmV0dXJuIFdURk1vdmUobV9ieXByb2R1Y3RzKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAppbmRleCBmZWZjN2ExMThhOGYuLmJjYzE2MDNl
NWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBAIC0zMCwx
MyArMzAsMTMgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVkZSAiQWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5o
IgotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKLSNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgog
I2luY2x1ZGUgIkIzUGF0Y2hwb2ludFNwZWNpYWwuaCIKICNpbmNsdWRlICJCM1BhdGNocG9pbnRW
YWx1ZS5oIgorI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJJ
bml0aWFsaXplVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiUHJvYmVDb250ZXh0LmgiCiAjaW5jbHVkZSAi
UHVyZU5hTi5oIgpAQCAtODUsMjEgKzg1LDIxIEBAIExvY2sgY3Jhc2hMb2NrOwogICAgICAgICBD
UkFTSCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICAgIH0gd2hpbGUgKGZhbHNlKQogCi1zdGQ6OnVuaXF1ZV9wdHI8QjM6OkNvbXBp
bGF0aW9uPiBjb21waWxlKEIzOjpQcm9jZWR1cmUmIHByb2MpCitzdGQ6OnVuaXF1ZV9wdHI8Q29t
cGlsYXRpb24+IGNvbXBpbGUoQjM6OlByb2NlZHVyZSYgcHJvYykKIHsKICAgICBwcmVwYXJlRm9y
R2VuZXJhdGlvbihwcm9jLmNvZGUoKSk7CiAgICAgQ0NhbGxIZWxwZXJzIGppdDsKICAgICBnZW5l
cmF0ZShwcm9jLmNvZGUoKSwgaml0KTsKICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBu
dWxscHRyKTsKIAotICAgIHJldHVybiBtYWtlVW5pcXVlPEIzOjpDb21waWxhdGlvbj4oCi0gICAg
ICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgInRlc3Rh
aXIgY29tcGlsYXRpb24iKSwgcHJvYy5yZWxlYXNlQnlwcm9kdWN0cygpKTsKKyAgICByZXR1cm4g
bWFrZVVuaXF1ZTxDb21waWxhdGlvbj4oCisgICAgICAgIEZJTkFMSVpFX0NPREUobGlua0J1ZmZl
ciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YWlyIGNvbXBpbGF0aW9uIiksIHByb2MucmVs
ZWFzZUJ5cHJvZHVjdHMoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4u
IEFyZ3VtZW50cz4KLVQgaW52b2tlKGNvbnN0IEIzOjpDb21waWxhdGlvbiYgY29kZSwgQXJndW1l
bnRzLi4uIGFyZ3VtZW50cykKK1QgaW52b2tlKGNvbnN0IENvbXBpbGF0aW9uJiBjb2RlLCBBcmd1
bWVudHMuLi4gYXJndW1lbnRzKQogewotICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzID0gdW50
YWdDRnVuY3Rpb25QdHI8QjNDb21waWxhdGlvblB0clRhZz4oY29kZS5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSk7CisgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MgPSB1bnRhZ0NGdW5jdGlv
blB0cjxKSVRDb21waWxhdGlvblB0clRhZz4oY29kZS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KSk7CiAgICAgVCAoKmZ1bmN0aW9uKShBcmd1bWVudHMuLi4pID0gYml0d2lzZV9jYXN0PFQoKiko
QXJndW1lbnRzLi4uKT4oZXhlY3V0YWJsZUFkZHJlc3MpOwogICAgIHJldHVybiBmdW5jdGlvbihh
cmd1bWVudHMuLi4pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCmluZGV4IDAxM2ZhNTAz
ZWMyZS4uZjIzMTFlZjIzZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5oCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIz
QnJlYWtDcml0aWNhbEVkZ2VzLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCi0jaW5jbHVk
ZSAiQjNDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkIzQ29tcGlsZS5oIgogI2luY2x1ZGUgIkIz
Q29tcHV0ZURpdmlzaW9uTWFnaWMuaCIKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgpAQCAt
NjcsNiArNjYsNyBAQAogI2luY2x1ZGUgIkZQUkluZm8uaCIKICNpbmNsdWRlICJHUFJJbmZvLmgi
CiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIK
ICNpbmNsdWRlICJQdXJlTmFOLmgiCkBAIC0xOTYsOSArMTk2LDkgQEAgaW5saW5lIHN0ZDo6dW5p
cXVlX3B0cjxDb21waWxhdGlvbj4gY29tcGlsZVByb2MoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIHVu
c2lnbmVkIG8KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJndW1lbnRz
PgotVCBpbnZva2UoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEIzQ29tcGlsYXRpb25QdHJUYWc+IHB0
ciwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKK1QgaW52b2tlKE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxKSVRDb21waWxhdGlvblB0clRhZz4gcHRyLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQogewot
ICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzID0gdW50YWdDRnVuY3Rpb25QdHI8QjNDb21waWxh
dGlvblB0clRhZz4ocHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgIHZvaWQqIGV4ZWN1dGFi
bGVBZGRyZXNzID0gdW50YWdDRnVuY3Rpb25QdHI8SklUQ29tcGlsYXRpb25QdHJUYWc+KHB0ci5l
eGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICBUICgqZnVuY3Rpb24pKEFyZ3VtZW50cy4uLikgPSBi
aXR3aXNlX2Nhc3Q8VCgqKShBcmd1bWVudHMuLi4pPihleGVjdXRhYmxlQWRkcmVzcyk7CiAgICAg
cmV0dXJuIGZ1bmN0aW9uKGFyZ3VtZW50cy4uLik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiM182LmNwcAppbmRleCAyOWFhOTkxYzg5ZmMuLjMxYWZmMzlmNDBmMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCkBAIC0xNjc0LDE5ICsxNjc0LDE5IEBAIHZvaWQgdGVz
dEludGVycHJldGVyKCkKICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2Fn
ZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJz
OjpMYWJlbD4+IGxhYmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKIAotICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEIzQ29tcGlsYXRpb25QdHJUYWc+KiBqdW1wVGFibGUg
PSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEIzQ29tcGlsYXRpb25QdHJUYWc+
Kj4oCi0gICAgICAgICAgICAgICAgcGFyYW1zLnByb2MoKS5hZGREYXRhU2VjdGlvbihzaXplb2Yo
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEIzQ29tcGlsYXRpb25QdHJUYWc+KSAqIGxhYmVscy5zaXpl
KCkpKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKSVRDb21waWxhdGlvblB0
clRhZz4qIGp1bXBUYWJsZSA9IGJpdHdpc2VfY2FzdDxNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SklU
Q29tcGlsYXRpb25QdHJUYWc+Kj4oCisgICAgICAgICAgICAgICAgcGFyYW1zLnByb2MoKS5hZGRE
YXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRy
VGFnPikgKiBsYWJlbHMuc2l6ZSgpKSk7CiAKICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0g
cGFyYW1zLmdwU2NyYXRjaCgwKTsKIAogICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gpOwogICAgICAgICAgICAgaml0Lmxv
YWQ2NChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBwYXJhbXNbMF0uZ3ByKCksIEND
YWxsSGVscGVyczo6U2NhbGVQdHIpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgIGppdC5mYXJKdW1w
KHNjcmF0Y2gsIEIzQ29tcGlsYXRpb25QdHJUYWcpOworICAgICAgICAgICAgaml0LmZhckp1bXAo
c2NyYXRjaCwgSklUQ29tcGlsYXRpb25QdHJUYWcpOwogCiAgICAgICAgICAgICBqaXQuYWRkTGlu
a1Rhc2soCiAgICAgICAgICAgICAgICAgWyYsIGp1bXBUYWJsZSwgbGFiZWxzXSAoTGlua0J1ZmZl
ciYgbGlua0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBs
YWJlbHMuc2l6ZSgpOyBpLS07KQotICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ld
ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KCpsYWJlbHNbaV0p
OworICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gbGlua0J1ZmZlci5sb2Nh
dGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPigqbGFiZWxzW2ldKTsKICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE5MzcsMTEgKzE5MzcsMTEgQEAgdm9pZCB0ZXN0RW50
cnlTd2l0Y2hTaW1wbGUoKQogICAgIENDYWxsSGVscGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJv
Yywgaml0KTsKICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBudWxscHRyKTsKLSAgICBD
b2RlTG9jYXRpb25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZm
ZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50
TGFiZWwoMCkpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxh
YmVsVHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2Mu
Y29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21w
aWxhdGlvblB0clRhZz4gbGFiZWxUaHJlZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBp
bGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMikpOworICAgIENvZGVM
b2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIu
bG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExh
YmVsKDApKTsKKyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFi
ZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2Mu
Y29kZSgpLmVudHJ5cG9pbnRMYWJlbCgxKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29t
cGlsYXRpb25QdHJUYWc+IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29t
cGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgyKSk7CiAKLSAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFM
SVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxh
dGlvbiIpOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4g
Y29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcs
ICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKIAogICAgIENIRUNLKGludm9rZTxpbnQ+KGxhYmVsT25l
LCAxLCAyKSA9PSAzKTsKICAgICBDSEVDSyhpbnZva2U8aW50PihsYWJlbFR3bywgMSwgMikgPT0g
LTEpOwpAQCAtMTk3MCwxMSArMTk3MCwxMSBAQCB2b2lkIHRlc3RFbnRyeVN3aXRjaE5vRW50cnlT
d2l0Y2goKQogICAgIENDYWxsSGVscGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJvYywgaml0KTsK
ICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBudWxscHRyKTsKLSAgICBDb2RlTG9jYXRp
b25MYWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkp
OwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0g
bGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVu
dHJ5cG9pbnRMYWJlbCgxKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0
clRhZz4gbGFiZWxUaHJlZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRy
VGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMikpOworICAgIENvZGVMb2NhdGlvbkxh
YmVsPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25P
ZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsK
KyAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBs
aW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVu
dHJ5cG9pbnRMYWJlbCgxKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25Q
dHJUYWc+IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25Q
dHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgyKSk7CiAKLSAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUo
bGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOwor
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9
IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMg
Y29tcGlsYXRpb24iKTsKIAogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGxhYmVsT25lLCAxLCAy
KSwgMyk7CiAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4obGFiZWxUd28sIDEsIDIpLCAzKTsKQEAg
LTIwNTcsMTEgKzIwNTcsMTEgQEAgdm9pZCB0ZXN0RW50cnlTd2l0Y2hXaXRoQ29tbW9uUGF0aHMo
KQogICAgIENDYWxsSGVscGVycyBqaXQ7CiAgICAgZ2VuZXJhdGUocHJvYywgaml0KTsKICAgICBM
aW5rQnVmZmVyIGxpbmtCdWZmZXIoaml0LCBudWxscHRyKTsKLSAgICBDb2RlTG9jYXRpb25MYWJl
bDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxC
M0NvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMCkpOwotICAg
IENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsVHdvID0gbGlua0J1
ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9p
bnRMYWJlbCgxKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlvblB0clRhZz4g
bGFiZWxUaHJlZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxCM0NvbXBpbGF0aW9uUHRyVGFnPihw
cm9jLmNvZGUoKS5lbnRyeXBvaW50TGFiZWwoMikpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJ
VENvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbE9uZSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRD
b21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDApKTsKKyAgICBD
b2RlTG9jYXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVm
ZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9p
bnRMYWJlbCgxKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+
IGxhYmVsVGhyZWUgPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+
KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgyKSk7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1
ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOworICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiA9IEZJTkFM
SVpFX0NPREUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGls
YXRpb24iKTsKIAogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGxhYmVsT25lLCAxLCAyLCAxMCks
IDMpOwogICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KGxhYmVsVHdvLCAxLCAyLCAxMCksIC0xKTsK
QEAgLTIxNzQsMTEgKzIxNzQsMTEgQEAgdm9pZCB0ZXN0RW50cnlTd2l0Y2hXaXRoQ29tbW9uUGF0
aHNBbmROb25Ucml2aWFsRW50cnlwb2ludCgpCiAgICAgQ0NhbGxIZWxwZXJzIGppdDsKICAgICBn
ZW5lcmF0ZShwcm9jLCBqaXQpOwogICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQsIG51bGxw
dHIpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsT25l
ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgp
LmVudHJ5cG9pbnRMYWJlbCgwKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21waWxhdGlv
blB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxhdGlvblB0
clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEpKTsKLSAgICBDb2RlTG9jYXRpb25M
YWJlbDxCM0NvbXBpbGF0aW9uUHRyVGFnPiBsYWJlbFRocmVlID0gbGlua0J1ZmZlci5sb2NhdGlv
bk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJlbCgyKSk7
CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVsT25lID0g
bGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNvZGUoKS5l
bnRyeXBvaW50TGFiZWwoMCkpOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVENvbXBpbGF0aW9u
UHRyVGFnPiBsYWJlbFR3byA9IGxpbmtCdWZmZXIubG9jYXRpb25PZjxKSVRDb21waWxhdGlvblB0
clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEpKTsKKyAgICBDb2RlTG9jYXRpb25M
YWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxUaHJlZSA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZjxKSVRDb21waWxhdGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDIp
KTsKIAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBjb2Rl
UmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAidGVz
dGIzIGNvbXBpbGF0aW9uIik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0
aW9uUHRyVGFnPiBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBKSVRDb21waWxh
dGlvblB0clRhZywgInRlc3RiMyBjb21waWxhdGlvbiIpOwogCiAgICAgQ0hFQ0tfRVEoaW52b2tl
PGludD4obGFiZWxPbmUsIDEsIDIsIDEwLCBmYWxzZSksIDMpOwogICAgIENIRUNLX0VRKGludm9r
ZTxpbnQ+KGxhYmVsVHdvLCAxLCAyLCAxMCwgZmFsc2UpLCAtMSk7CkBAIC0yMjUyLDEwICsyMjUy
LDEwIEBAIHZvaWQgdGVzdEVudHJ5U3dpdGNoTG9vcCgpCiAgICAgQ0NhbGxIZWxwZXJzIGppdDsK
ICAgICBnZW5lcmF0ZShwcm9jLCBqaXQpOwogICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQs
IG51bGxwdHIpOwotICAgIENvZGVMb2NhdGlvbkxhYmVsPEIzQ29tcGlsYXRpb25QdHJUYWc+IGxh
YmVsT25lID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEIzQ29tcGlsYXRpb25QdHJUYWc+KHByb2Mu
Y29kZSgpLmVudHJ5cG9pbnRMYWJlbCgwKSk7Ci0gICAgQ29kZUxvY2F0aW9uTGFiZWw8QjNDb21w
aWxhdGlvblB0clRhZz4gbGFiZWxUd28gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8QjNDb21waWxh
dGlvblB0clRhZz4ocHJvYy5jb2RlKCkuZW50cnlwb2ludExhYmVsKDEpKTsKKyAgICBDb2RlTG9j
YXRpb25MYWJlbDxKSVRDb21waWxhdGlvblB0clRhZz4gbGFiZWxPbmUgPSBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2Y8SklUQ29tcGlsYXRpb25QdHJUYWc+KHByb2MuY29kZSgpLmVudHJ5cG9pbnRMYWJl
bCgwKSk7CisgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUQ29tcGlsYXRpb25QdHJUYWc+IGxhYmVs
VHdvID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVENvbXBpbGF0aW9uUHRyVGFnPihwcm9jLmNv
ZGUoKS5lbnRyeXBvaW50TGFiZWwoMSkpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIz
Q29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEIz
Q29tcGlsYXRpb25QdHJUYWcsICJ0ZXN0YjMgY29tcGlsYXRpb24iKTsKKyAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8SklUQ29tcGlsYXRpb25QdHJUYWc+IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RF
KGxpbmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAidGVzdGIzIGNvbXBpbGF0aW9uIik7
CiAKICAgICBDSEVDSyhpbnZva2U8aW50PihsYWJlbE9uZSwgMCkgPT0gMSk7CiAgICAgQ0hFQ0so
aW52b2tlPGludD4obGFiZWxPbmUsIDQyKSA9PSA0Myk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSklUQ29kZS5oCmluZGV4IGNmMTY2NzE0YjkwYS4uZjNlZWRlMmVkODk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuaApAQCAtMjcsMTEgKzI3LDExIEBACiAKICNpZiBF
TkFCTEUoRlRMX0pJVCkKIAotI2luY2x1ZGUgIkIzT3BhcXVlQnlwcm9kdWN0cy5oIgogI2luY2x1
ZGUgIkRGR0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJGVExMYXp5U2xvd1BhdGguaCIKICNpbmNs
dWRlICJGVExPU1JFeGl0LmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgorI2luY2x1ZGUgIkpJVE9w
YXF1ZUJ5cHJvZHVjdHMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTUyLDcgKzUyLDcgQEAg
cHVibGljOgogICAgIGJvb2wgY29udGFpbnModm9pZCopIG92ZXJyaWRlOwogCiAgICAgdm9pZCBp
bml0aWFsaXplQjNDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4pOwotICAgIHZvaWQgaW5pdGlh
bGl6ZUIzQnlwcm9kdWN0cyhzdGQ6OnVuaXF1ZV9wdHI8QjM6Ok9wYXF1ZUJ5cHJvZHVjdHM+KTsK
KyAgICB2b2lkIGluaXRpYWxpemVCM0J5cHJvZHVjdHMoc3RkOjp1bmlxdWVfcHRyPE9wYXF1ZUJ5
cHJvZHVjdHM+KTsKICAgICB2b2lkIGluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyPEpT
RW50cnlQdHJUYWc+KTsKICAgICB2b2lkIGluaXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludChD
b2RlUmVmPEpTRW50cnlQdHJUYWc+KTsKICAgICAKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBDb2RlUHRyPEpTRW50cnlQdHJUYWc+IG1fYWRkcmVzc0ZvckNhbGw7CiAg
ICAgQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiBtX2IzQ29kZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
QjM6Ok9wYXF1ZUJ5cHJvZHVjdHM+IG1fYjNCeXByb2R1Y3RzOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxPcGFxdWVCeXByb2R1Y3RzPiBtX2IzQnlwcm9kdWN0czsKICAgICBDb2RlUmVmPEpTRW50cnlQ
dHJUYWc+IG1fYXJpdHlDaGVja0VudHJ5cG9pbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAppbmRleCAxNjEzNDE2NGJhN2QuLmNjNWY5NzE4OGM3NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCkBAIC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRl
ICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCi0jaW5j
bHVkZSAiQjNDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2NrLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCkBAIC00
Nyw2ICs0Niw3IEBACiAjaW5jbHVkZSAiRlRMV2VpZ2h0LmgiCiAjaW5jbHVkZSAiRlRMV2VpZ2h0
ZWRUYXJnZXQuaCIKICNpbmNsdWRlICJIZWFwQ2VsbC5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0
aW9uLmgiCiAjaW5jbHVkZSA8d3RmL09yZGVyTWFrZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tcGlsYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb21waWxhdGlv
bi5jcHAKc2ltaWxhcml0eSBpbmRleCA4NSUKcmVuYW1lIGZyb20gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29tcGlsYXRpb24uY3BwCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENvbXBpbGF0aW9uLmNwcAppbmRleCBhZGJlMTU5NTcxOTAuLjI1N2FjN2VjNjk1NCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tcGlsYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29tcGlsYXRpb24uY3BwCkBAIC0yNCwx
NSArMjQsMTUgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNDb21w
aWxhdGlvbi5oIgorI2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uLmgiCiAKLSNpZiBFTkFCTEUoQjNf
SklUKQorI2lmIEVOQUJMRShKSVQpCiAKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVjdHMuaCIK
KyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CiAKLUNvbXBpbGF0aW9uOjpDb21waWxhdGlvbihN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gY29kZVJlZiwgc3RkOjp1
bmlxdWVfcHRyPE9wYXF1ZUJ5cHJvZHVjdHM+IGJ5cHJvZHVjdHMpCitDb21waWxhdGlvbjo6Q29t
cGlsYXRpb24oTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBjb2Rl
UmVmLCBzdGQ6OnVuaXF1ZV9wdHI8T3BhcXVlQnlwcm9kdWN0cz4gYnlwcm9kdWN0cykKICAgICA6
IG1fY29kZVJlZihjb2RlUmVmKQogICAgICwgbV9ieXByb2R1Y3RzKFdURk1vdmUoYnlwcm9kdWN0
cykpCiB7CkBAIC00OCw3ICs0OCw3IEBAIENvbXBpbGF0aW9uOjp+Q29tcGlsYXRpb24oKQogewog
fQogCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKK30gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21waWxhdGlvbi5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb21waWxhdGlvbi5oCnNpbWlsYXJpdHkgaW5kZXggNzclCnJlbmFt
ZSBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbXBpbGF0aW9uLmgKcmVuYW1lIHRv
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29tcGlsYXRpb24uaAppbmRleCAwYmQwNjNl
MzBmZTAuLmFkODljNjNhZmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ29tcGlsYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvbXBp
bGF0aW9uLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUo
QjNfSklUKQorI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYuaCIKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMzUsMzMgKzM1LDI5IEBAIG5h
bWVzcGFjZSBKU0MgewogCiBjbGFzcyBWTTsKIAotbmFtZXNwYWNlIEIzIHsKLQogY2xhc3MgT3Bh
cXVlQnlwcm9kdWN0czsKLWNsYXNzIFByb2NlZHVyZTsKIAotLy8gVGhpcyBjbGFzcyBpcyBhIHdh
eSB0byBrZWVwIHRoZSByZXN1bHQgb2YgYSBCMyBjb21waWxhdGlvbiBhbGl2ZQotLy8gYW5kIHJ1
bm5hYmxlLgorLy8gVGhpcyBjbGFzcyBpcyBhIHdheSB0byBrZWVwIHRoZSByZXN1bHQgb2YgYSBj
b21waWxhdGlvbiBhbGl2ZSBhbmQgcnVubmFibGUuCiAKIGNsYXNzIENvbXBpbGF0aW9uIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21waWxhdGlvbik7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAKIHB1YmxpYzoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBDb21waWxhdGlvbihN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4sIHN0ZDo6dW5pcXVlX3B0
cjxPcGFxdWVCeXByb2R1Y3RzPik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ29tcGlsYXRpb24o
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiwgc3RkOjp1bmlxdWVf
cHRyPE9wYXF1ZUJ5cHJvZHVjdHM+KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBDb21waWxhdGlv
bihDb21waWxhdGlvbiYmKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+Q29tcGlsYXRpb24oKTsK
IAotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBjb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2RlUmVmLmNvZGUoKTsgfQotICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBjb2RlUmVmKCkgY29uc3QgeyByZXR1cm4gbV9jb2Rl
UmVmOyB9CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBj
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlUmVmLmNvZGUoKTsgfQorICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gY29kZVJlZigpIGNvbnN0IHsgcmV0dXJu
IG1fY29kZVJlZjsgfQogICAgIAogICAgIENTdHJpbmcgZGlzYXNzZW1ibHkoKSBjb25zdCB7IHJl
dHVybiBtX2NvZGVSZWYuZGlzYXNzZW1ibHkoKTsgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBtX2NvZGVSZWY7CisgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmPEpJVENvbXBpbGF0aW9uUHRyVGFnPiBtX2NvZGVSZWY7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE9wYXF1ZUJ5cHJvZHVjdHM+IG1fYnlwcm9kdWN0czsKIH07CiAKLX0gfSAv
LyBuYW1lc3BhY2UgSlNDOjpCMworfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBFTkFC
TEUoQjNfSklUKQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0LmgKc2ltaWxhcml0eSBpbmRleCA5NCUKcmVuYW1lIGZy
b20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0LmgKcmVuYW1lIHRv
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0LmgKaW5kZXggMzVh
MmEwNmE0ZGMwLi5iMTg3NDgxZDc1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BhcXVlQnlwcm9kdWN0LmgKQEAgLTI1LDEzICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UK
IAotI2lmIEVOQUJMRShCM19KSVQpCisjaWYgRU5BQkxFKEpJVCkKIAogI2luY2x1ZGUgPHd0Zi9G
YXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1ByaW50U3RyZWFtLmg+CiAKLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNw
YWNlIEpTQyB7CiAKIGNsYXNzIE9wYXF1ZUJ5cHJvZHVjdCB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoT3BhcXVlQnlwcm9kdWN0KTsKQEAgLTQzLDYgKzQzLDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3QgPSAwOwogfTsKIAotfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkIzCit9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShC
M19KSVQpCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wYXF1ZUJ5cHJvZHVjdHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUg
ZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGFxdWVCeXByb2R1Y3RzLmNwcApyZW5h
bWUgdG8gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcApp
bmRleCBmODlmOGJmZWQ2ZDEuLjc2ODEzMGQ2OTJkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmNwcApAQCAtMjQsMTEgKzI0LDExIEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkIzT3BhcXVlQnlwcm9kdWN0cy5o
IgorI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5cHJvZHVjdHMuaCIKIAotI2lmIEVOQUJMRShCM19KSVQp
CisjaWYgRU5BQkxFKEpJVCkKIAotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CituYW1l
c3BhY2UgSlNDIHsKIAogT3BhcXVlQnlwcm9kdWN0czo6T3BhcXVlQnlwcm9kdWN0cygpCiB7CkBA
IC01NCw3ICs1NCw3IEBAIHZvaWQgT3BhcXVlQnlwcm9kdWN0czo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoIiAgICAiLCAqYnlwcm9kdWN0LCAiXG4iKTsK
IH0KIAotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCit9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGFxdWVCeXByb2R1Y3RzLmgKc2ltaWxhcml0eSBpbmRl
eCA5MyUKcmVuYW1lIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9k
dWN0cy5oCnJlbmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wYXF1ZUJ5cHJv
ZHVjdHMuaAppbmRleCBlOGVlYzExM2Y0ZTguLmJkOGZhMDQ3MmU0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3BhcXVlQnlwcm9kdWN0cy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BhcXVlQnlwcm9kdWN0cy5oCkBAIC0yNSwxMyArMjUsMTMg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoQjNfSklUKQorI2lmIEVOQUJMRShKSVQp
CiAKLSNpbmNsdWRlICJCM09wYXF1ZUJ5cHJvZHVjdC5oIgorI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5
cHJvZHVjdC5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
LW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNz
IE9wYXF1ZUJ5cHJvZHVjdHMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE9wYXF1ZUJ5cHJv
ZHVjdHMpCkBAIC01MCw2ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxPcGFxdWVCeXByb2R1Y3Q+PiBtX2J5cHJvZHVjdHM7CiB9OwogCi19IH0gLy8gbmFtZXNw
YWNlIEpTQzo6QjMKK30gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJ
VCkKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NQdHJUYWcuaAppbmRleCAxNWUyMDBhZWZkYmMuLjk5MTkwMzMyYmFjZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdXNpbmcg
UHRyVGFnID0gV1RGOjpQdHJUYWc7CiAgICAgdihET01KSVRGdW5jdGlvblB0clRhZywgUHRyVGFn
Q2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBcCiAgICAgdihEaXNh
c3NlbWJseVB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBl
OjpOb25lKSBcCiAgICAgLyogQ2FsbGVlOkpJVCBDYWxsZXI6Tm9uZSAqLyBcCi0gICAgdihCM0Nv
bXBpbGF0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6
Ok5vbmUpIFwKKyAgICB2KEpJVENvbXBpbGF0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpK
SVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5vbmUpIFwKICAgICB2KEV4ZWN1dGFibGVNZW1vcnlQdHJU
YWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRyVGFnQ2FsbGVyVHlwZTo6Tm9uZSkgXAogICAg
IHYoTGlua0J1ZmZlclB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxsZXJU
eXBlOjpOb25lKSBcCiAgICAgdihZYXJyOEJpdFB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklU
LCBQdHJUYWdDYWxsZXJUeXBlOjpOb25lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUIzSVJHZW5lcmF0b3IuaAppbmRleCBhM2VkMGQ5YjhmOWQuLjhlM2I2MDQ3NjBjNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5oCkBA
IC0yOCw5ICsyOCw5IEBACiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCiAjaW5jbHVkZSAiQjND
b21tb24uaCIKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCi0jaW5jbHVkZSAiQjNPcGFxdWVC
eXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSklUQ29t
cGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRPcGFxdWVCeXByb2R1Y3RzLmgiCiAjaW5jbHVkZSAi
V2FzbUNvbXBpbGF0aW9uTW9kZS5oIgogI2luY2x1ZGUgIldhc21FbWJlZGRlci5oIgogI2luY2x1
ZGUgIldhc21NZW1vcnkuaCIKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgTWVtb3J5SW5mb3JtYXRp
b247CiBzdHJ1Y3QgQ29tcGlsYXRpb25Db250ZXh0IHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0Nh
bGxIZWxwZXJzPiBlbWJlZGRlckVudHJ5cG9pbnRKSVQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEND
YWxsSGVscGVycz4gd2FzbUVudHJ5cG9pbnRKSVQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEIzOjpP
cGFxdWVCeXByb2R1Y3RzPiB3YXNtRW50cnlwb2ludEJ5cHJvZHVjdHM7CisgICAgc3RkOjp1bmlx
dWVfcHRyPE9wYXF1ZUJ5cHJvZHVjdHM+IHdhc21FbnRyeXBvaW50Qnlwcm9kdWN0czsKIH07CiAK
IEV4cGVjdGVkPHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbEZ1bmN0aW9uPiwgU3RyaW5nPiBwYXJz
ZUFuZENvbXBpbGUoQ29tcGlsYXRpb25Db250ZXh0JiwgY29uc3QgRnVuY3Rpb25EYXRhJiwgY29u
c3QgU2lnbmF0dXJlJiwgVmVjdG9yPFVubGlua2VkV2FzbVRvV2FzbUNhbGw+JiwgdW5zaWduZWQm
IG9zckVudHJ5U2NyYXRjaEJ1ZmZlclNpemUsIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiwgTWVt
b3J5TW9kZSwgQ29tcGlsYXRpb25Nb2RlLCB1aW50MzJfdCBmdW5jdGlvbkluZGV4LCB1aW50MzJf
dCBsb29wSW5kZXhGb3JPU1JFbnRyeSwgVGllclVwQ291bnQqID0gbnVsbHB0cik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKaW5kZXggYzk5MDUyYjI4NmMxLi42
ZjI0M2NlNzdhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21C
QlFQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5j
cHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotI2luY2x1
ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1
ZGUgIkpTVG9XYXNtLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIldhc21B
aXJJUkdlbmVyYXRvci5oIgpAQCAtMTEwLDggKzExMCw4IEBAIHZvaWQgQkJRUGxhbjo6d29yayhD
b21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFjZSA9
IG1fZnVuY3Rpb25JbmRleCArIG1fbW9kdWxlSW5mb3JtYXRpb24tPmltcG9ydEZ1bmN0aW9uQ291
bnQoKTsKICAgICBTaWduYXR1cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1fbW9kdWxlSW5mb3Jt
YXRpb24tPmludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzW21fZnVuY3Rpb25JbmRleF07
CiAgICAgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUgPSBTaWduYXR1cmVJbmZvcm1hdGlvbjo6
Z2V0KHNpZ25hdHVyZUluZGV4KTsKLSAgICBmdW5jdGlvbi0+ZW50cnlwb2ludC5jb21waWxhdGlv
biA9IG1ha2VVbmlxdWU8QjM6OkNvbXBpbGF0aW9uPigKLSAgICAgICAgRklOQUxJWkVfV0FTTV9D
T0RFX0ZPUl9NT0RFKENvbXBpbGF0aW9uTW9kZTo6QkJRTW9kZSwgbGlua0J1ZmZlciwgQjNDb21w
aWxhdGlvblB0clRhZywgIldlYkFzc2VtYmx5IEJCUSBmdW5jdGlvblslaV0gJXMgbmFtZSAlcyIs
IG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1h
a2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0
aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEo
KSksCisgICAgZnVuY3Rpb24tPmVudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPENv
bXBpbGF0aW9uPigKKyAgICAgICAgRklOQUxJWkVfV0FTTV9DT0RFX0ZPUl9NT0RFKENvbXBpbGF0
aW9uTW9kZTo6QkJRTW9kZSwgbGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJXZWJB
c3NlbWJseSBCQlEgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNp
Z25hdHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1l
KGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdl
dChmdW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICBXVEZNb3Zl
KGNvbnRleHQud2FzbUVudHJ5cG9pbnRCeXByb2R1Y3RzKSk7CiAKICAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8V2FzbUVudHJ5UHRyVGFnPiBlbnRyeXBvaW50OwpAQCAtMjI2LDggKzIyNiw4IEBA
IHZvaWQgQkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExvY2tl
ciYgbG9ja2VyKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgbV93YXNtSW50ZXJuYWxGdW5jdGlvbnNbZnVuY3Rpb25JbmRleF0tPmVudHJ5cG9p
bnQuY29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPEIzOjpDb21waWxhdGlvbj4oCi0gICAgICAgICAg
ICAgICAgRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBCM0NvbXBpbGF0aW9uUHRyVGFnLCAiV2Vi
QXNzZW1ibHkgQkJRIGZ1bmN0aW9uWyVpXSAlcyBuYW1lICVzIiwgZnVuY3Rpb25JbmRleCwgc2ln
bmF0dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUo
ZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0
KGZ1bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCisgICAgICAgICAgICBtX3dh
c21JbnRlcm5hbEZ1bmN0aW9uc1tmdW5jdGlvbkluZGV4XS0+ZW50cnlwb2ludC5jb21waWxhdGlv
biA9IG1ha2VVbmlxdWU8Q29tcGlsYXRpb24+KAorICAgICAgICAgICAgICAgIEZJTkFMSVpFX0NP
REUobGlua0J1ZmZlciwgSklUQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBCQlEgZnVu
Y3Rpb25bJWldICVzIG5hbWUgJXMiLCBmdW5jdGlvbkluZGV4LCBzaWduYXR1cmUudG9TdHJpbmco
KS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5jdGlvbkluZGV4U3Bh
Y2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRleFNw
YWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgICAgICAgICBXVEZNb3ZlKGNvbnRleHQu
d2FzbUVudHJ5cG9pbnRCeXByb2R1Y3RzKSk7CiAgICAgICAgIH0KIApAQCAtMjM4LDggKzIzOCw4
IEBAIHZvaWQgQkJRUGxhbjo6ZGlkQ29tcGxldGVDb21waWxhdGlvbihjb25zdCBBYnN0cmFjdExv
Y2tlciYgbG9ja2VyKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgZW1iZWRkZXJUb1dhc21JbnRlcm5hbEZ1bmN0aW9uLT5lbnRyeXBvaW50LmNv
bXBpbGF0aW9uID0gbWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICAgICAgICAg
IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgIkVtYmVkZGVy
LT5XZWJBc3NlbWJseSBlbnRyeXBvaW50WyVpXSAlcyBuYW1lICVzIiwgZnVuY3Rpb25JbmRleCwg
c2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5h
bWUoZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+
Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCisgICAgICAgICAgICBl
bWJlZGRlclRvV2FzbUludGVybmFsRnVuY3Rpb24tPmVudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBt
YWtlVW5pcXVlPENvbXBpbGF0aW9uPigKKyAgICAgICAgICAgICAgICBGSU5BTElaRV9DT0RFKGxp
bmtCdWZmZXIsIEpJVENvbXBpbGF0aW9uUHRyVGFnLCAiRW1iZWRkZXItPldlYkFzc2VtYmx5IGVu
dHJ5cG9pbnRbJWldICVzIG5hbWUgJXMiLCBmdW5jdGlvbkluZGV4LCBzaWduYXR1cmUudG9TdHJp
bmcoKS5hc2NpaSgpLmRhdGEoKSwgbWFrZVN0cmluZyhJbmRleE9yTmFtZShmdW5jdGlvbkluZGV4
U3BhY2UsIG1fbW9kdWxlSW5mb3JtYXRpb24tPm5hbWVTZWN0aW9uLT5nZXQoZnVuY3Rpb25JbmRl
eFNwYWNlKSkpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgICAgICAgICBudWxscHRyKTsKICAg
ICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CaW5kaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5oCmlu
ZGV4IDAwN2VlODFiOGRiMy4uMjNiYWNiZjI4NDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQmluZGluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21CaW5kaW5nLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRlICJKSVRDb21waWxh
dGlvbi5oIgogI2luY2x1ZGUgIldhc21Gb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQu
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCmluZGV4IGJhMzllNTZj
MjMxNC4uNzA2NzY4NjcyMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxl
ZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNs
dWRlICJCM0NvbXBpbGF0aW9uLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNs
dWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIldhc21Db21waWxhdGlvbk1v
ZGUuaCIKICNpbmNsdWRlICJXYXNtRm9ybWF0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtRm9ybWF0LmgKaW5kZXggZmJlODYwYzAzNjM0Li42ZjhkNzViMTM4NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAgLTQ2LDkgKzQ2LDcgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLW5hbWVzcGFjZSBCMyB7CiBjbGFzcyBDb21waWxhdGlvbjsKLX0KIAogbmFt
ZXNwYWNlIFdhc20gewogCkBAIC0zNDAsNyArMzM4LDcgQEAgc3RydWN0IFVubGlua2VkV2FzbVRv
V2FzbUNhbGwgewogCiBzdHJ1Y3QgRW50cnlwb2ludCB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZB
U1RfQUxMT0NBVEVEOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxCMzo6Q29tcGlsYXRpb24+IGNvbXBp
bGF0aW9uOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21waWxhdGlvbj4gY29tcGlsYXRpb247CiAg
ICAgUmVnaXN0ZXJBdE9mZnNldExpc3QgY2FsbGVlU2F2ZVJlZ2lzdGVyczsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFBsYW4uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5jcHAKaW5kZXggYTNkNGY2MWQ4
Y2JjLi5mZWQ5NTMxOWNiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludFBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21M
TEludFBsYW4uY3BwCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
CiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVEdW1wZXIu
aCIKICNpbmNsdWRlICJDYWxsZWVCaXRzLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIK
ICNpbmNsdWRlICJKU1RvV2FzbS5oIgogI2luY2x1ZGUgIkxMSW50VGh1bmtzLmgiCiAjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgTExJbnRQbGFuOjpkaWRD
b21wbGV0ZUNvbXBpbGF0aW9uKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpCiAgICAgICAg
ICAgICBsaW5rQnVmZmVyLmxpbms8SklUVGh1bmtQdHJUYWc+KGp1bXBzW2ldLCBDb2RlTG9jYXRp
b25MYWJlbDxKSVRUaHVua1B0clRhZz4oTExJbnQ6Ondhc21GdW5jdGlvbkVudHJ5VGh1bmsoKS5j
b2RlKCkpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fZW50cnlUaHVua3MgPSBGSU5BTElaRV9D
T0RFKGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJXYXNtIExMSW50IGVudHJ5IHRo
dW5rcyIpOworICAgICAgICBtX2VudHJ5VGh1bmtzID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVy
LCBKSVRDb21waWxhdGlvblB0clRhZywgIldhc20gTExJbnQgZW50cnkgdGh1bmtzIik7CiAgICAg
ICAgIG1fY2FsbGVlcyA9IG1fY2FsbGVlc1ZlY3Rvci5kYXRhKCk7CiAgICAgfQogCkBAIC0xNTIs
OCArMTUyLDggQEAgdm9pZCBMTEludFBsYW46OmRpZENvbXBsZXRlQ29tcGlsYXRpb24oY29uc3Qg
QWJzdHJhY3RMb2NrZXImIGxvY2tlcikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uLT5lbnRyeXBvaW50LmNvbXBpbGF0aW9uID0g
bWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICAgICAgICAgIEZJTkFMSVpFX0NP
REUobGlua0J1ZmZlciwgQjNDb21waWxhdGlvblB0clRhZywgIkVtYmVkZGVyLT5XZWJBc3NlbWJs
eSBlbnRyeXBvaW50WyVpXSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0cmluZygp
LmFzY2lpKCkuZGF0YSgpKSwKKyAgICAgICAgICAgIGZ1bmN0aW9uLT5lbnRyeXBvaW50LmNvbXBp
bGF0aW9uID0gbWFrZVVuaXF1ZTxDb21waWxhdGlvbj4oCisgICAgICAgICAgICAgICAgRklOQUxJ
WkVfQ09ERShsaW5rQnVmZmVyLCBKSVRDb21waWxhdGlvblB0clRhZywgIkVtYmVkZGVyLT5XZWJB
c3NlbWJseSBlbnRyeXBvaW50WyVpXSAlcyIsIGZ1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0
cmluZygpLmFzY2lpKCkuZGF0YSgpKSwKICAgICAgICAgICAgICAgICBudWxscHRyKTsKIAogICAg
ICAgICAgICAgUmVmPEVtYmVkZGVyRW50cnlwb2ludENhbGxlZT4gY2FsbGVlID0gRW1iZWRkZXJF
bnRyeXBvaW50Q2FsbGVlOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlvbi0+ZW50cnlwb2ludCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50UGxhbi5oCmluZGV4IDJlY2M0Mjg3
Mzc5YS4uNDllYjAwOWNhYWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTExJbnRQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxM
SW50UGxhbi5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBMTEludFBsYW4oQ29udGV4dCosIFZlY3Rvcjx1aW50OF90PiYmLCBBc3luY1dvcmssIENvbXBs
ZXRpb25UYXNrJiYpOwogICAgIExMSW50UGxhbihDb250ZXh0KiwgUmVmPE1vZHVsZUluZm9ybWF0
aW9uPiwgY29uc3QgUmVmPExMSW50Q2FsbGVlPiosIENvbXBsZXRpb25UYXNrJiYpOwogCi0gICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEIzQ29tcGlsYXRpb25QdHJUYWc+JiYgdGFrZUVudHJ5VGh1
bmtzKCkKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUQ29tcGlsYXRpb25QdHJUYWc+JiYg
dGFrZUVudHJ5VGh1bmtzKCkKICAgICB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFmYWlsZWQo
KSAmJiAhaGFzV29yaygpKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUobV9lbnRyeVRodW5rcyk7
CkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgUmVmPExMSW50Q2FsbGVlPiog
bV9jYWxsZWVzIHsgbnVsbHB0ciB9OwogICAgIFZlY3RvcjxSZWY8TExJbnRDYWxsZWU+PiBtX2Nh
bGxlZXNWZWN0b3I7CiAgICAgRW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlTWFwIG1fZW1iZWRkZXJD
YWxsZWVzOwotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxCM0NvbXBpbGF0aW9uUHRyVGFnPiBt
X2VudHJ5VGh1bmtzOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0
clRhZz4gbV9lbnRyeVRodW5rczsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU1vZHVsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZS5oCmluZGV4IGZhZGE0YjJjZTU1MS4uYTVlZDBmZTczZWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZS5oCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAg
ICAgUmVmPE1vZHVsZUluZm9ybWF0aW9uPiBtX21vZHVsZUluZm9ybWF0aW9uOwogICAgIFJlZlB0
cjxDb2RlQmxvY2s+IG1fY29kZUJsb2Nrc1tXYXNtOjpOdW1iZXJPZk1lbW9yeU1vZGVzXTsKICAg
ICBSZWZQdHI8TExJbnRDYWxsZWVzPiBtX2xsaW50Q2FsbGVlczsKLSAgICBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8QjNDb21waWxhdGlvblB0clRhZz4gbV9sbGludEVudHJ5VGh1bmtzOworICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRDb21waWxhdGlvblB0clRhZz4gbV9sbGludEVudHJ5VGh1
bmtzOwogICAgIExvY2sgbV9sb2NrOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtT01HRm9yT1NSRW50cnlQbGFuLmNwcAppbmRleCBjMjIzOTFlYzU4Yzgu
LmY4NDE3ODgyYTBjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9NR0Zvck9TUkVudHJ5UGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU9NR0Zvck9TUkVudHJ5UGxhbi5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKIAotI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKKyNpbmNsdWRlICJK
SVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJXYXNt
QjNJUkdlbmVyYXRvci5oIgogI2luY2x1ZGUgIldhc21DYWxsZWUuaCIKQEAgLTg5LDggKzg5LDgg
QEAgdm9pZCBPTUdGb3JPU1JFbnRyeVBsYW46OndvcmsoQ29tcGlsYXRpb25FZmZvcnQpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvbWdFbnRyeXBvaW50LmNvbXBpbGF0aW9uID0gbWFr
ZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICBGSU5BTElaRV9XQVNNX0NPREVfRk9S
X01PREUoQ29tcGlsYXRpb25Nb2RlOjpPTUdGb3JPU1JFbnRyeU1vZGUsIGxpbmtCdWZmZXIsIEIz
Q29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBPTUdGb3JPU1JFbnRyeSBmdW5jdGlvblsl
aV0gJXMgbmFtZSAlcyIsIG1fZnVuY3Rpb25JbmRleCwgc2lnbmF0dXJlLnRvU3RyaW5nKCkuYXNj
aWkoKS5kYXRhKCksIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVuY3Rpb25JbmRleFNwYWNlLCBt
X21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1bmN0aW9uSW5kZXhTcGFjZSkp
KS5hc2NpaSgpLmRhdGEoKSksCisgICAgb21nRW50cnlwb2ludC5jb21waWxhdGlvbiA9IG1ha2VV
bmlxdWU8Q29tcGlsYXRpb24+KAorICAgICAgICBGSU5BTElaRV9XQVNNX0NPREVfRk9SX01PREUo
Q29tcGlsYXRpb25Nb2RlOjpPTUdGb3JPU1JFbnRyeU1vZGUsIGxpbmtCdWZmZXIsIEpJVENvbXBp
bGF0aW9uUHRyVGFnLCAiV2ViQXNzZW1ibHkgT01HRm9yT1NSRW50cnkgZnVuY3Rpb25bJWldICVz
IG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0cmluZygpLmFzY2lpKCku
ZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1
bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2UpKSkuYXNj
aWkoKS5kYXRhKCkpLAogICAgICAgICBXVEZNb3ZlKGNvbnRleHQud2FzbUVudHJ5cG9pbnRCeXBy
b2R1Y3RzKSk7CiAKICAgICBvbWdFbnRyeXBvaW50LmNhbGxlZVNhdmVSZWdpc3RlcnMgPSBXVEZN
b3ZlKHBhcnNlQW5kQ29tcGlsZVJlc3VsdC52YWx1ZSgpLT5lbnRyeXBvaW50LmNhbGxlZVNhdmVS
ZWdpc3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9N
R1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCmlu
ZGV4IDE2Yjc0MTUwMTQ5OS4uMTk2MTRmNjA3NjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9NR1BsYW4uY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCisjaW5jbHVkZSAiSklUQ29t
cGlsYXRpb24uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2FzbUIzSVJH
ZW5lcmF0b3IuaCIKICNpbmNsdWRlICJXYXNtQ2FsbGVlLmgiCkBAIC04Niw4ICs4Niw4IEBAIHZv
aWQgT01HUGxhbjo6d29yayhDb21waWxhdGlvbkVmZm9ydCkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG9tZ0VudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPEIzOjpDb21w
aWxhdGlvbj4oCi0gICAgICAgIEZJTkFMSVpFX1dBU01fQ09ERV9GT1JfTU9ERShDb21waWxhdGlv
bk1vZGU6Ok9NR01vZGUsIGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3Nl
bWJseSBPTUcgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25h
dHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1
bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChm
dW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAorICAgIG9tZ0VudHJ5cG9pbnQu
Y29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPENvbXBpbGF0aW9uPigKKyAgICAgICAgRklOQUxJWkVf
V0FTTV9DT0RFX0ZPUl9NT0RFKENvbXBpbGF0aW9uTW9kZTo6T01HTW9kZSwgbGlua0J1ZmZlciwg
SklUQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBPTUcgZnVuY3Rpb25bJWldICVzIG5h
bWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25hdHVyZS50b1N0cmluZygpLmFzY2lpKCkuZGF0
YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJ
bmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2UpKSkuYXNjaWko
KS5kYXRhKCkpLAogICAgICAgICBXVEZNb3ZlKGNvbnRleHQud2FzbUVudHJ5cG9pbnRCeXByb2R1
Y3RzKSk7CiAKICAgICBvbWdFbnRyeXBvaW50LmNhbGxlZVNhdmVSZWdpc3RlcnMgPSBXVEZNb3Zl
KHBhcnNlQW5kQ29tcGlsZVJlc3VsdC52YWx1ZSgpLT5lbnRyeXBvaW50LmNhbGxlZVNhdmVSZWdp
c3RlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCmluZGV4IGExNWJl
ZGQ0MmJiZS4uZWM5ZGUzMGJkZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBh
cnNlci5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNp
bmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKKyNpbmNs
dWRlICJKSVRDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2lu
Y2x1ZGUgIldhc21Gb3JtYXQuaCIKICNpbmNsdWRlICJXYXNtTGltaXRzLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuaAppbmRleCA3MTljNDU5NTMyNjEuLjU0NTk5YjQ4
NGY5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5oCkBAIC0yNyw3
ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLSNpbmNsdWRlICJCM0NvbXBp
bGF0aW9uLmgiCisjaW5jbHVkZSAiSklUQ29tcGlsYXRpb24uaCIKICNpbmNsdWRlICJXYXNtQmlu
ZGluZy5oIgogI2luY2x1ZGUgIldhc21FbWJlZGRlci5oIgogI2luY2x1ZGUgPHd0Zi9CYWcuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVu
Y3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uaAppbmRleCBiMmNkMDAwMDI0MGQuLmVjZjQ2NTMyNjhiYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaApAQCAtNDEsMTAg
KzQxLDYgQEAgc3RydWN0IFByb3RvQ2FsbEZyYW1lOwogY2xhc3MgV2ViQXNzZW1ibHlJbnN0YW5j
ZTsKIHVzaW5nIFdhc206Oldhc21Ub1dhc21JbXBvcnRhYmxlRnVuY3Rpb247CiAKLW5hbWVzcGFj
ZSBCMyB7Ci1jbGFzcyBDb21waWxhdGlvbjsKLX0KLQogY2xhc3MgV2ViQXNzZW1ibHlGdW5jdGlv
biBmaW5hbCA6IHB1YmxpYyBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZSB7CiBwdWJsaWM6CiAgICAg
dXNpbmcgQmFzZSA9IFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOwotLSAKMi4yOS4yCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>