<?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>184187</bug_id>
          
          <creation_ts>2018-03-30 11:31:51 -0700</creation_ts>
          <short_desc>Online version of the LLInt</short_desc>
          <delta_ts>2018-05-01 20:50:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>185106</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1410677</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 11:31:51 -0700</bug_when>
    <thetext>The LLInt is currently entirely generated at JSC compile time, assembled with the binary, and doesn&apos;t JIT anything. That&apos;s great for when there aren&apos;t any JIT privileges and we want to keep that property! However, there are neat fancy things that we could do if, when we can JIT, we generated the LLInt on the fly. In other words, we want an online offline assembler.

So we&apos;d still have say x86 and ARM LLInt codegen, but we&apos;d *also* have LLInt codegen to the macro assembler, which we then would compile into JSC. At VM startup we&apos;d then try to JIT that compiled macro assembler code, into actual assembly (either x86 or ARM). What we want is therefore a compiler compiler that generates native code for a JavaScript interpreter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410681</commentid>
    <comment_count>1</comment_count>
      <attachid>336873</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 11:33:00 -0700</bug_when>
    <thetext>Created attachment 336873
patch

Here&apos;s a patch which goes most of the way to this working. There&apos;s a bug still which I haven&apos;t tracked down, and a bit of debug logging too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410682</commentid>
    <comment_count>2</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 11:34:04 -0700</bug_when>
    <thetext>Some of the macro assembler changes I should split out and commit as their own thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410700</commentid>
    <comment_count>3</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-30 12:32:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/36451201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418756</commentid>
    <comment_count>4</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-04-27 21:13:44 -0700</bug_when>
    <thetext>Separate macro assembler improvements in https://bugs.webkit.org/show_bug.cgi?id=185106</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336873</attachid>
            <date>2018-03-30 11:33:00 -0700</date>
            <delta_ts>2018-03-30 11:33:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-Online-version-of-the-offline-assembler.patch</filename>
            <type>text/plain</type>
            <size>101638</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBjZjc3ZWM1OTBjZmExOGMxZmI0NjYxYmI0ODcyODZkMGQzODYyODI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDE5IEphbiAyMDE4IDE0OjQxOjE3IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gT25saW5l
IHZlcnNpb24gb2YgdGhlIG9mZmxpbmUgYXNzZW1ibGVyCgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgIHwgICA5ICstCiAuLi4vSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICB8ICAgOCArLQogU291cmNlL0ph
dmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0ICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oICAgICAgIHwgICAzICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmggICB8IDE1NiAr
KystCiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwICAgICAgICAgICAgICB8
ICAgNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmggfCAxNjQgKystLQogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oICAg
ICAgICAgICAgfCAgMTggKwogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oICAg
ICAgICAgICAgICAgfCAxMDUgKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oICAgICB8ICAxNyArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcCAgfCAgIDMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludENvbW1vbi5oICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcCAgICAgICAgICB8ICAgNSArLQogLi4uL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oICAgfCAgIDQgKwogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50UENSYW5nZXMuaCAgICAgICAgfCAgMTYgKy0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgICAgIHwgICAzICsKIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmggIHwgIDE0ICstCiAuLi4v
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlck9ubGluZS5jcHAgICAgICAgICAgICB8ICA1OCArKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIgICAgICAgICAgfCAgIDgg
Ky0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYiAgICAgICAgICAgIHwg
MTgzICsrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYiAg
ICAgICB8ICAgOSArLQogLi4uL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vb25saW5lYXNzZW1i
bGVyLnJiICAgfCA4NTcgKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9zZXR0aW5ncy5yYiAgICAgICB8ICAxNCArLQogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgfCAgIDcgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwICAgICAgICAgIHwgICA0ICstCiBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArCiAy
NyBmaWxlcyBjaGFuZ2VkLCAxNTUyIGluc2VydGlvbnMoKyksIDEzNCBkZWxldGlvbnMoLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlck9ubGluZS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9vbmxpbmVhc3NlbWJsZXIucmIKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggZmY2YWUxMi4uNWZmZDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTc2LDYgKzE3Niw3IEBAIHNldChPRkZMSU5FX0FTTQogICAgIG9mZmxp
bmVhc20vaW5zdHJ1Y3Rpb25zLnJiCiAgICAgb2ZmbGluZWFzbS9taXBzLnJiCiAgICAgb2ZmbGlu
ZWFzbS9vZmZzZXRzLnJiCisgICAgb2ZmbGluZWFzbS9vbmxpbmVhc3NlbWJsZXIucmIKICAgICBv
ZmZsaW5lYXNtL29wdC5yYgogICAgIG9mZmxpbmVhc20vcGFyc2VyLnJiCiAgICAgb2ZmbGluZWFz
bS9yZWdpc3RlcnMucmIKQEAgLTI1NiwxMSArMjU3LDEyIEBAIGVsc2UgKCkKIGVuZGlmICgpCiAK
IGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfS8ke0xMSW50T3V0cHV0fQorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9LyR7TExJbnRPdXRwdXR9ICR7REVSSVZFRF9TT1VSQ0VTX0pB
VkFTQ1JJUFRDT1JFX0RJUn0vTExJbnRPbmxpbmVBc3NlbWJseS5oCiAgICAgTUFJTl9ERVBFTkRF
TkNZICR7SkFWQVNDUklQVENPUkVfRElSfS9vZmZsaW5lYXNtL2FzbS5yYgogICAgIERFUEVORFMg
TExJbnRPZmZzZXRzRXh0cmFjdG9yICR7TExJTlRfQVNNfSAke09GRkxJTkVfQVNNfSAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0luaXRCeXRlY29kZXMuYXNtCiAgICAgQ09N
TUFORCAke1JVQllfRVhFQ1VUQUJMRX0gJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L29mZmxpbmVhc20v
YXNtLnJiIC1JJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS8gJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtICQ8VEFSR0VUX0ZJTEU6
TExJbnRPZmZzZXRzRXh0cmFjdG9yPiAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9E
SVJ9LyR7TExJbnRPdXRwdXR9ICR7T0ZGTElORV9BU01fQVJHU30KICAgICBDT01NQU5EICR7Q01B
S0VfQ09NTUFORH0gLUUgdG91Y2hfbm9jcmVhdGUgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQ
VENPUkVfRElSfS8ke0xMSW50T3V0cHV0fQorICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAt
RSB0b3VjaF9ub2NyZWF0ZSAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0xM
SW50T25saW5lQXNzZW1ibHkuaAogICAgIFdPUktJTkdfRElSRUNUT1JZICR7REVSSVZFRF9TT1VS
Q0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0KICAgICBWRVJCQVRJTSkKIApAQCAtMjg4LDYgKzI5MCwx
MSBAQCBlbHNlICgpCiAgICAgbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSEVBREVSUwogICAg
ICAgICAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L0xMSW50QXNzZW1ibHku
aAogICAgICkKKyAgICBpZiAoV1RGX0NQVV9YODZfNjQgT1IgV1RGX0NQVV9BUk02NCkKKyAgICAg
ICAgbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSEVBREVSUworICAgICAgICAgICAgJHtERVJJ
VkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9MTEludE9ubGluZUFzc2VtYmx5LmgKKyAg
ICAgICAgKQorICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCiAjIFdlYkFzc2VtYmx5IGdlbmVyYXRv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5Y2M5ZWY0Li5kYzE2NjM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4NCw2ICsxMTg0LDcgQEAKIAkJODZGM0VF
QkQxNjhDREU5MzAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCOTE2OENDRjc1MDA3N0I5
MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCAqLzsgfTsKIAkJODZGM0VFQkYxNjhDREU5MzAw
NzdCOTJBIC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCNjE2ODU1QTVCMDA3N0I5MkEgLyogT2JqY1J1bnRp
bWVFeHRyYXMuaCAqLzsgfTsKIAkJODZGQTlFOTIxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRG
dW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZGQTlFOTAxNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5oICovOyB9OworCQk4
N0Q3NjE5RTQ3NjE0RUM0QkY3Q0RBQkUgLyogTExJbnRPbmxpbmVBc3NlbWJseS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzN0M5MkVFMjI2NDdCQTg0
MDVGNTgyIC8qIExMSW50T25saW5lQXNzZW1ibHkuaCAqLzsgfTsKIAkJOEIzQkY1RTQxRTNEMzY4
QjAwNzZBODdBIC8qIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEIzQkY1RTMxRTNEMzY1QTAwNzZBODdB
IC8qIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmx1dC5oICovOyB9OwogCQk4QjYwMTZGNjFGM0Uz
Q0MwMDBGOURFNkEgLyogQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjYwMTZGNDFGM0UzQ0MwMDBG
OURFNkEgLyogQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLmggKi87IH07CiAJCThCOUY2
RDU2MUQ1OTEyRkEwMDFDNzM5RiAvKiBJdGVyYXRpb25LaW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjlGNkQ1NTFENTkxMkZBMDAxQzczOUYgLyog
SXRlcmF0aW9uS2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0zMTg3LDYgKzMxODgsNyBAQAogCQk0NDkwOTdFRTBGOEY4MUI1MDA3NkEzMjcg
LyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ1MTUzOUI4MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFlhcnIuaDsgcGF0aCA9IHlhcnIvWWFyci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NUUxMkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gNDsgfTsKKwkJNDYzN0M5MkVFMjI2
NDdCQTg0MDVGNTgyIC8qIExMSW50T25saW5lQXNzZW1ibHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTExJbnRPbmxpbmVBc3NlbWJseS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0Q0U5NzhFMzg1QTg0OTgxOTkwNTIxNTMgLyogTW9kdWxlTmFtZXNwYWNlQWNj
ZXNzQ2FzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVOYW1lc3Bh
Y2VBY2Nlc3NDYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRjBFQjYxMDVD
ODZDNkIwMEU2REYxQiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
Rm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9G
b3VuZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJNTFG
MEVDMDcwNUM4NkM5QTAwRTZERjFCIC8qIGxpYm9iamMuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsg
bmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJvYmpjLmR5bGliOyBzb3Vy
Y2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwpAQCAtNDI5OCw2ICs0MzAwLDcgQEAKIAkJQUQ4RkYz
OTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXYXNtSW5kZXhPck5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQUQ4RkYzOTYxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXNtSW5kZXhPck5hbWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDlFODUyRTFFOEEwQzZFMDA4REUzOUUg
LyogSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmg7IHBhdGggPSBqcy9KU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFEQUIxMUU3MjAxQTk0RDcw
MDZGQUE1OSAvKiBMb3dMZXZlbEludGVycHJldGVyT25saW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvd0xldmVsSW50ZXJwcmV0ZXJPbmxpbmUuY3BwOyBwYXRo
ID0gbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlck9ubGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUFEQjZGNjdDMUUxNUQ3NTAwMDgyRjM4NCAvKiBXYXNtUGFnZUNvdW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21QYWdlQ291bnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREJDNTREMjFERjhFQTAwMDA1QkY3Mzgg
LyogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5jcHA7IHBhdGggPSBqcy9XZWJBc3NlbWJs
eVRvSlNDYWxsZWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREJDNTREMzFE
RjhFQTAwMDA1QkY3MzggLyogV2ViQXNzZW1ibHlUb0pTQ2FsbGVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5oOyBwYXRoID0ganMvV2Vi
QXNzZW1ibHlUb0pTQ2FsbGVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTE2
LDYgKzQ5MTksNyBAQAogCQkJCTBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dMZXZlbElu
dGVycHJldGVyLmggKi8sCiAJCQkJODZBMDU0NDcxNTU2NDUxQjAwNDQ1MTU3IC8qIExvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20gKi8sCiAJCQkJODZBMDU0NDgxNTU2NDUxQjAwNDQ1MTU3IC8q
IExvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gKi8sCisJCQkJQURBQjExRTcyMDFBOTRENzAwNkZB
QTU5IC8qIExvd0xldmVsSW50ZXJwcmV0ZXJPbmxpbmUuY3BwICovLAogCQkJKTsKIAkJCW5hbWUg
PSBsbGludDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MTIwLDYgKzYxMjQsNyBA
QAogCQkJCUE3QzIyNUNEMTM5OTg0OUMwMEZGMTY2MiAvKiBLZXl3b3JkTG9va3VwLmggKi8sCiAJ
CQkJQkMxOEM1MkQwRTE2RkNFMTAwQjM0NDYwIC8qIExleGVyLmx1dC5oICovLAogCQkJCTcwREU5
QTA4MUJFN0Q2NzAwMDVEODlEOSAvKiBMTEludEFzc2VtYmx5LmggKi8sCisJCQkJNDYzN0M5MkVF
MjI2NDdCQTg0MDVGNTgyIC8qIExMSW50T25saW5lQXNzZW1ibHkuaCAqLywKIAkJCQk3MDM1NTg3
RTFDNDE4NDU4MDA0QkQ3QkYgLyogTWFwUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTk5NkI3MzBD
MUJEOUZBMkMwMDMzMUI4NCAvKiBNb2R1bGVMb2FkZXJQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJ
QkMyNjgwRTYwRTE2RDUyMzAwQTA2RTkyIC8qIE51bWJlckNvbnN0cnVjdG9yLmx1dC5oICovLApA
QCAtOTAzNyw2ICs5MDQyLDcgQEAKIAkJCQkwRjQzMTczODE0NkJBQzY5MDA3RTM4OTAgLyogTGlz
dGFibGVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0UyRUE2QjBGQjQ2MENGMDA2MDFG
MDYgLyogTGl0ZXJhbFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBERTlBMDkxQkU3RDY5
RTAwNUQ4OUQ5IC8qIExMSW50QXNzZW1ibHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTg3RDc2MTlF
NDc2MTRFQzRCRjdDREFCRSAvKiBMTEludE9ubGluZUFzc2VtYmx5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjBGQzQ1QTE0QkQxNUY1MDBCODExNTQgLyogTExJbnRDYWxsTGlua0luZm8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZFMjBDRTlFMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENMb29wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjQ2ODBDQTE0QkJCMTZDMDBCRkUyNzIgLyogTExJbnRDb21t
b24uaCBpbiBIZWFkZXJzICovLApAQCAtOTc0MSw3ICs5NzQ3LDcgQEAKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4v
c2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJzZXQgLWVcblxubWtkaXIgLXAgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vTExJbnRPZmZzZXRzL1wiXG5cbi91c3IvYmluL2VudiBydWJ5IFwiJHtTUkNST09U
fS9vZmZsaW5lYXNtL2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmJcIiBcIi1JJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlXCIgXCIke1NSQ1JPT1R9
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtXCIgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0v
TExJbnRPZmZzZXRzL0xMSW50RGVzaXJlZE9mZnNldHMuaFwiIFwiJHtBUkNIU30gQ19MT09QXCJc
biI7CisJCQlzaGVsbFNjcmlwdCA9ICJzZXQgLWVcblxubWtkaXIgLXAgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vTExJbnRPZmZzZXRzL1wiXG5cbi91c3IvYmluL2VudiBydWJ5IFwiJHtTUkNST09U
fS9vZmZsaW5lYXNtL2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmJcIiBcIi1JJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlXCIgXCIke1NSQ1JPT1R9
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtXCIgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0v
TExJbnRPZmZzZXRzL0xMSW50RGVzaXJlZE9mZnNldHMuaFwiIFwiJHtBUkNIU30gQ19MT09QIE9O
TElORV9BU1NFTUJMRVJcIlxuIjsKIAkJfTsKIAkJMUEwMkQ5QTgxQjM0QTg4MjAwMEQxNTIyIC8q
IEFkZCBTeW1saW5rIGluIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3JrcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2Vz
LnR4dAppbmRleCAzY2Q5YTg4Li4yYzk1NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0
CkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KIC8vCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIC8vIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjM5
LDYgKzYzOSw3IEBAIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcAogbGxpbnQvTExJbnRUaHVua3Mu
Y3BwCiAvLyBGSVhNRTogV2UgY2FuJ3QgYnVuZGxlIHRoaXMgZmlsZSBkdWUgdG8gYSBjbGFuZyBi
dWcuCiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcCBAbm8tdW5pZnkKK2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXJPbmxpbmUuY3BwCiAKIHBhcnNlci9MZXhlci5jcHAKIHBhcnNlci9Nb2R1
bGVBbmFseXplci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTGlua0J1ZmZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVm
ZmVyLmgKaW5kZXggMzk3YzY1Zi4uZDhjOGZkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMyw3IEBACiAjZGVmaW5lIEdMT0JB
TF9USFVOS19JRCByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJfdD4o
LTEpKQogI2RlZmluZSBSRUdFWFBfQ09ERV9JRCByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0
aWNfY2FzdDxpbnRwdHJfdD4oLTIpKQogI2RlZmluZSBDU1NfQ09ERV9JRCByZWludGVycHJldF9j
YXN0PHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJfdD4oLTMpKQorI2RlZmluZSBMTElOVF9PTkxJ
TkVfQ09ERV9JRCByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJfdD4o
LTQpKQogCiAjaW5jbHVkZSAiSklUQ29tcGlsYXRpb25FZmZvcnQuaCIKICNpbmNsdWRlICJNYWNy
b0Fzc2VtYmxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlci5oCmluZGV4IDBjM2FjOTYuLmRiZDczMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAgLTM0Nyw3ICszNDcsMTUg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gVHJ1c3RlZEltbTMyKGltbS5hc1RydXN0ZWRJbW0z
MigpLm1fdmFsdWUgJiAzMSk7CiAgICAgfQogCi0gICAgLy8gQmFja3dhcmRzIGJhbmNoZXMsIHRo
ZXNlIGFyZSBjdXJyZW50bHkgYWxsIGltcGxlbWVudGVkIHVzaW5nIGV4aXN0aW5nIGZvcndhcmRz
IGJyYW5jaCBtZWNoYW5pc21zLgorICAgIC8vIFNoaWZ0cyBjYW4gYmUgY3JlYXRlZCBmcm9tIGEg
dHJ1c3RlZCBpbW1lZGlhdGUgZGlyZWN0bHksIGluIHdoaWNoIGNhc2Ugd2UgZ2VuZXJhdGVkIHRo
YXQKKyAgICAvLyBpbW1lZGlhdGUgYW5kIGhhZCBiZXR0ZXIga25vdyB3aGF0IHdlJ3JlIGRvaW5n
LiBUaGlzIHBhc3MtdGhyb3VnaCBtYWtlcyBzdXJlIHRoYXQncyB0cnVlLgorICAgIFRydXN0ZWRJ
bW0zMiB0cnVzdGVkSW1tMzJGb3JTaGlmdChUcnVzdGVkSW1tMzIgaW1tKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKChpbW0ubV92YWx1ZSAmIDMxKSA9PSBpbW0ubV92YWx1ZSk7CisgICAgICAgIHJl
dHVybiBpbW07CisgICAgfQorCisgICAgLy8gQmFja3dhcmRzIGJyYW5jaGVzLCB0aGVzZSBhcmUg
Y3VycmVudGx5IGFsbCBpbXBsZW1lbnRlZCB1c2luZyBleGlzdGluZyBmb3J3YXJkcyBicmFuY2gg
bWVjaGFuaXNtcy4KICAgICB2b2lkIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQs
IFJlZ2lzdGVySUQgb3AxLCBUcnVzdGVkSW1tUHRyIGltbSwgTGFiZWwgdGFyZ2V0KQogICAgIHsK
ICAgICAgICAgYnJhbmNoUHRyKGNvbmQsIG9wMSwgaW1tKS5saW5rVG8odGFyZ2V0LCB0aGlzKTsK
QEAgLTM5Niw2ICs0MDQsMTYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgY29tcGFyZTMyKGNv
bW11dGUoY29uZCksIHJpZ2h0LCBsZWZ0LCBkZXN0KTsKICAgICB9CisgICAgCisgICAgdm9pZCBj
b21wYXJlMzIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIGxlZnQsIFJlZ2lzdGVy
SUQgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGNvbXBhcmUzMihjb21t
dXRlKGNvbmQpLCByaWdodCwgbGVmdCwgZGVzdCk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29t
cGFyZTMyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgQWRkcmVzcyBsZWZ0LCBUcnVzdGVkSW1t
MzIgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGNvbXBhcmUzMihjb21t
dXRlKGNvbmQpLCByaWdodCwgbGVmdCwgZGVzdCk7CisgICAgfQogCiAgICAgdm9pZCBicmFuY2hU
ZXN0UHRyKFJlc3VsdENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIHJlZywgTGFiZWwgdGFyZ2V0
KQogICAgIHsKQEAgLTU5Niw2ICs2MTQsMjEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgdXJz
aGlmdDMyKHNoaWZ0QW1tb3VudCwgc3JjRGVzdCk7CiAgICAgfQorICAgIAorICAgIHZvaWQgbHNo
aWZ0UHRyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjRGVzdCkKKyAgICB7CisgICAg
ICAgIGxzaGlmdDMyKHRydXN0ZWRJbW0zMkZvclNoaWZ0KGltbSksIHNyY0Rlc3QpOworICAgIH0K
KyAgICAKKyAgICB2b2lkIHJzaGlmdFB0cihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNy
Y0Rlc3QpCisgICAgeworICAgICAgICByc2hpZnQzMih0cnVzdGVkSW1tMzJGb3JTaGlmdChpbW0p
LCBzcmNEZXN0KTsKKyAgICB9CisgICAgCisgICAgdm9pZCB1cnNoaWZ0UHRyKFRydXN0ZWRJbW0z
MiBpbW0sIFJlZ2lzdGVySUQgc3JjRGVzdCkKKyAgICB7CisgICAgICAgIHVyc2hpZnQzMih0cnVz
dGVkSW1tMzJGb3JTaGlmdChpbW0pLCBzcmNEZXN0KTsKKyAgICB9CiAKICAgICB2b2lkIG5lZ1B0
cihSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtNzk0LDkgKzgyNyw5IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIGxlZnQsIFRydXN0ZWRJbW0zMihyaWdodCkpOwog
ICAgIH0KICAgICAKLSAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQs
IEFic29sdXRlQWRkcmVzcyBsZWZ0LCBUcnVzdGVkSW1tUHRyIHJpZ2h0KQorICAgIEp1bXAgYnJh
bmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgQWJzb2x1dGVBZGRyZXNzIGxlZnQsIFRy
dXN0ZWRJbW0zMiByaWdodCkKICAgICB7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihjb25kLCBs
ZWZ0LCBUcnVzdGVkSW1tMzIocmlnaHQpKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQs
IGxlZnQsIHJpZ2h0KTsKICAgICB9CiAKICAgICBKdW1wIGJyYW5jaFN1YlB0cihSZXN1bHRDb25k
aXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTg4NSwyMiAr
OTE4LDYyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGFkZDY0KGltbSwgYWRkcmVzcyk7CiAg
ICAgfQorICAgIAorICAgIHZvaWQgbXVsUHRyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQg
c3JjLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtdWw2NChpbW0sIHNyYywgZGVz
dCk7CisgICAgfQogCiAgICAgdm9pZCBhbmRQdHIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIGFuZDY0KHNyYywgZGVzdCk7CiAgICAgfQogCisgICAgdm9p
ZCBhbmRQdHIoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3RlcklEIGRl
c3QpCisgICAgeworICAgICAgICBhbmQ2NChsZWZ0LCByaWdodCwgZGVzdCk7CisgICAgfQorCiAg
ICAgdm9pZCBhbmRQdHIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmNEZXN0KQogICAg
IHsKICAgICAgICAgYW5kNjQoaW1tLCBzcmNEZXN0KTsKICAgICB9CisKKyAgICB2b2lkIGFuZFB0
cihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQorICAg
IHsKKyAgICAgICAgYW5kNjQoaW1tLCBzcmMsIGRlc3QpOworICAgIH0KKyAgICAKKyAgICB2b2lk
IGFuZFB0cihUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIHNyY0Rlc3QpCisgICAgeworICAg
ICAgICBhbmQ2NChpbW0sIHNyY0Rlc3QsIHNyY0Rlc3QpOworICAgIH0KKyAgICAKKyAgICB2b2lk
IGFuZFB0cihUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHsKKyAgICAgICAgYW5kNjQoaW1tLCBzcmMsIGRlc3QpOworICAgIH0KKyAgICAKKyAg
ICB2b2lkIGFuZFB0cihSZWdpc3RlcklEIHNyYywgVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHsKKyAgICAgICAgYW5kNjQoaW1tLCBzcmMsIGRlc3QpOworICAgIH0KICAg
ICAKICAgICB2b2lkIGFuZFB0cihUcnVzdGVkSW1tUHRyIGltbSwgUmVnaXN0ZXJJRCBzcmNEZXN0
KQogICAgIHsKICAgICAgICAgYW5kNjQoaW1tLCBzcmNEZXN0KTsKICAgICB9CiAgICAgCisgICAg
dm9pZCBhbmRQdHIoVHJ1c3RlZEltbVB0ciBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklE
IGRlc3QpCisgICAgeworICAgICAgICBhbmQ2NChpbW0sIHNyYywgZGVzdCk7CisgICAgfQorICAg
IAorICAgIHZvaWQgYW5kUHRyKFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1tUHRyIGltbSwgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgYW5kNjQoaW1tLCBzcmMsIGRlc3QpOworICAg
IH0KKyAgICAKICAgICB2b2lkIGxzaGlmdFB0cihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjRGVz
dCkKICAgICB7CiAgICAgICAgIGxzaGlmdDY0KHRydXN0ZWRJbW0zMkZvclNoaWZ0KGltbSksIHNy
Y0Rlc3QpOwpAQCAtOTIwLDYgKzk5MywyMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICB1cnNo
aWZ0NjQoc2hpZnRBbW1vdW50LCBzcmNEZXN0KTsKICAgICB9CisgICAgCisgICAgdm9pZCBsc2hp
ZnRQdHIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmNEZXN0KQorICAgIHsKKyAgICAg
ICAgbHNoaWZ0NjQodHJ1c3RlZEltbTMyRm9yU2hpZnQoaW1tKSwgc3JjRGVzdCk7CisgICAgfQor
ICAgIAorICAgIHZvaWQgcnNoaWZ0UHRyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3Jj
RGVzdCkKKyAgICB7CisgICAgICAgIHJzaGlmdDY0KHRydXN0ZWRJbW0zMkZvclNoaWZ0KGltbSks
IHNyY0Rlc3QpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHVyc2hpZnRQdHIoVHJ1c3RlZEltbTMy
IGltbSwgUmVnaXN0ZXJJRCBzcmNEZXN0KQorICAgIHsKKyAgICAgICAgdXJzaGlmdDY0KHRydXN0
ZWRJbW0zMkZvclNoaWZ0KGltbSksIHNyY0Rlc3QpOworICAgIH0KIAogICAgIHZvaWQgbmVnUHRy
KFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC05NjUsMTYgKzEwNTMsNDEgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgc3ViNjQoc3JjLCBkZXN0KTsKICAgICB9Ci0gICAgCisKKyAgICB2b2lk
IHN1YlB0cihSZWdpc3RlcklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQsIFJlZ2lzdGVySUQgZGVz
dCkKKyAgICB7CisgICAgICAgIHN1YjY0KGxlZnQsIHJpZ2h0LCBkZXN0KTsKKyAgICB9CisKICAg
ICB2b2lkIHN1YlB0cihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBzdWI2NChpbW0sIGRlc3QpOwogICAgIH0KICAgICAKKyAgICB2b2lkIHN1YlB0cihU
cnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsK
KyAgICAgICAgc3ViNjQoaW1tLCBzcmMsIGRlc3QpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHN1
YlB0cihSZWdpc3RlcklEIHNyYywgVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHsKKyAgICAgICAgc3ViNjQoc3JjLCBpbW0sIGRlc3QpOworICAgIH0KKyAgICAKICAgICB2
b2lkIHN1YlB0cihUcnVzdGVkSW1tUHRyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgc3ViNjQoVHJ1c3RlZEltbTY0KGltbSksIGRlc3QpOwogICAgIH0KKyAgICAKKyAgICB2
b2lkIHN1YlB0cihUcnVzdGVkSW1tUHRyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB7CisgICAgICAgIHN1YjY0KFRydXN0ZWRJbW02NChpbW0pLCBzcmMsIGRlc3Qp
OworICAgIH0KKyAgICAKKyAgICB2b2lkIHN1YlB0cihSZWdpc3RlcklEIHNyYywgVHJ1c3RlZElt
bVB0ciBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIHN1YjY0KHNyYywgVHJ1
c3RlZEltbTY0KGltbSksIGRlc3QpOworICAgIH0KIAogICAgIHZvaWQgeG9yUHRyKFJlZ2lzdGVy
SUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtMTA4Myw2ICsxMTk2LDE2IEBAIHB1
YmxpYzoKICAgICAgICAgY29tcGFyZTY0KGNvbmQsIGxlZnQsIHJpZ2h0LCBkZXN0KTsKICAgICB9
CiAgICAgCisgICAgdm9pZCBjb21wYXJlUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVn
aXN0ZXJJRCBsZWZ0LCBBZGRyZXNzIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAg
ICAgICBjb21wYXJlNjQoY29uZCwgbGVmdCwgcmlnaHQsIGRlc3QpOworICAgIH0KKyAgICAKKyAg
ICB2b2lkIGNvbXBhcmVQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIGxlZnQs
IFJlZ2lzdGVySUQgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGNvbXBh
cmU2NChjb21tdXRlKGNvbmQpLCByaWdodCwgbGVmdCwgZGVzdCk7CisgICAgfQorICAgIAogICAg
IHZvaWQgdGVzdFB0cihSZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCByZWcsIFRydXN0
ZWRJbW0zMiBtYXNrLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICB0ZXN0NjQoY29u
ZCwgcmVnLCBtYXNrLCBkZXN0KTsKQEAgLTExMDMsNiArMTIyNiwxNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBicmFuY2g2NChjb25kLCBsZWZ0LCBUcnVzdGVkSW1tNjQocmlnaHQpKTsKICAg
ICB9CiAgICAgCisgICAgSnVtcCBicmFuY2hQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBS
ZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJbW0zMiByaWdodCkKKyAgICB7CisgICAgICAgIHJldHVy
biBicmFuY2g2NChjb25kLCBsZWZ0LCByaWdodCk7CisgICAgfQorICAgIAorICAgIEp1bXAgYnJh
bmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBUcnVzdGVk
SW1tNjQgcmlnaHQpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoNjQoY29uZCwgbGVmdCwg
cmlnaHQpOworICAgIH0KKyAgICAKICAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0
aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgQWRkcmVzcyByaWdodCkKICAgICB7CiAgICAgICAg
IHJldHVybiBicmFuY2g2NChjb25kLCBsZWZ0LCByaWdodCk7CkBAIC0xMTIyLDYgKzEyNTUsMTEg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGJyYW5jaDY0KGNvbmQsIGxlZnQsIFRy
dXN0ZWRJbW02NChyaWdodCkpOwogICAgIH0KKyAgICAKKyAgICBKdW1wIGJyYW5jaFB0cihSZWxh
dGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgQmFzZUluZGV4IHJpZ2h0KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDY0KGNvbW11dGUoY29uZCksIHJpZ2h0LCBsZWZ0
KTsKKyAgICB9CiAKICAgICBKdW1wIGJyYW5jaFRlc3RQdHIoUmVzdWx0Q29uZGl0aW9uIGNvbmQs
IFJlZ2lzdGVySUQgcmVnLCBSZWdpc3RlcklEIG1hc2spCiAgICAgewpAQCAtMTYwMyw2ICsxNzQx
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgbXVsMzIoaW1tLmFzVHJ1c3RlZEltbTMyKCksIHNyYywg
ZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBtdWwzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3Jj
RGVzdCkKKyAgICB7CisgICAgICAgIG11bDMyKGltbSwgc3JjRGVzdCwgc3JjRGVzdCk7CisgICAg
fQorICAgIAorICAgIHZvaWQgbXVsMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmNE
ZXN0KQorICAgIHsKKyAgICAgICAgbXVsMzIoaW1tLCBzcmNEZXN0LCBzcmNEZXN0KTsKKyAgICB9
CisKICAgICB2b2lkIGFuZDMyKEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwCmluZGV4IDdiYjA1MmUu
LjM2ZjU0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk02NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihQcm9iZTo6U3RhdGUpID09IFBST0JFX1NJWkUsICJQcm9iZTo6U3RhdGUncyBz
aXplIG1hdGNoZXMgYwogLy8gQ29uZGl0aW9ucyBmb3IgdXNpbmcgbGRwIGFuZCBzdHAuCiBzdGF0
aWNfYXNzZXJ0KFBST0JFX0NQVV9QQ19PRkZTRVQgPT0gUFJPQkVfQ1BVX1NQX09GRlNFVCArIFBU
Ul9TSVpFLCAiUFJPQkVfQ1BVX1NQX09GRlNFVCBhbmQgUFJPQkVfQ1BVX1BDX09GRlNFVCBtdXN0
IGJlIGFkamFjZW50Iik7CiBzdGF0aWNfYXNzZXJ0KCEoUFJPQkVfU0laRV9QTFVTX0VYVFJBUyAm
IDB4ZiksICJQUk9CRV9TSVpFX1BMVVNfRVhUUkFTIHNob3VsZCBiZSAxNiBieXRlIGFsaWduZWQi
KTsgLy8gdGhlIFByb2JlOjpTdGF0ZSBjb3B5aW5nIGNvZGUgcmVsaWVzIG9uIHRoaXMuCi0KK2dy
ZXAgIlwuY2FsbFwoIiIgLi9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9KYXZhU2Ny
aXB0Q29yZS9MTEludE9ubGluZUFzc2VtYmx5LmggY2FsbCgKICN1bmRlZiBQUk9CRV9PRkZTRVRP
RgogCiAjZGVmaW5lIEZQUl9PRkZTRVQoZnByKSAoUFJPQkVfQ1BVXyMjZnByIyNfT0ZGU0VUIC0g
UFJPQkVfQ1BVX1EwX09GRlNFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggZDVhMGFkNi4uYzc5ZWEyNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKQEAgLTI3Niw4ICsyNzYsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihpbW0sIGdldENhY2hlZERh
dGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFk
ZDw2ND4oZGVzdCwgc3JjLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgUmVnaXN0ZXJJRCBz
Y3JhdGNoID0gc3JjICE9IGRlc3QgPyBkZXN0IDogZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklE
QW5kSW52YWxpZGF0ZSgpOworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihpbW0sIHNjcmF0Y2gp
OworICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIHNyYywgc2NyYXRjaCk7CiAgICAg
fQogCiAgICAgdm9pZCBhZGQ2NChUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCkBA
IC0zNTgsOCArMzU5LDkgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgbW92ZShpbW0sIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFs
aWRhdGUoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFuZF88MzI+KGRlc3QsIHNyYywgZGF0YVRl
bXBSZWdpc3Rlcik7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IHNyYyAhPSBkZXN0ID8g
ZGVzdCA6IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAg
ICAgbW92ZShpbW0sIHNjcmF0Y2gpOworICAgICAgICBtX2Fzc2VtYmxlci5hbmRfPDMyPihkZXN0
LCBzcmMsIHNjcmF0Y2gpOwogICAgIH0KIAogICAgIHZvaWQgYW5kMzIoQWRkcmVzcyBzcmMsIFJl
Z2lzdGVySUQgZGVzdCkKQEAgLTM4Miw4ICszODQsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBtb3ZlKGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBS
ZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuYW5kXzw2ND4o
ZGVzdCwgc3JjLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNo
ID0gc3JjICE9IGRlc3QgPyBkZXN0IDogZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52
YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaCk7CisgICAgICAgIG1fYXNzZW1i
bGVyLmFuZF88NjQ+KGRlc3QsIHNyYywgc2NyYXRjaCk7CiAgICAgfQogCiAgICAgdm9pZCBhbmQ2
NChSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMzkxLDMyICszOTQsNDQgQEAg
cHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5hbmRfPDY0PihkZXN0LCBkZXN0LCBzcmMpOwog
ICAgIH0KIAotICAgIHZvaWQgYW5kNjQoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0
KQorICAgIHZvaWQgYW5kNjQoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIExvZ2ljYWxJbW1lZGlhdGUgbG9naWNhbEltbSA9
IExvZ2ljYWxJbW1lZGlhdGU6OmNyZWF0ZTY0KHN0YXRpY19jYXN0PGludHB0cl90PihzdGF0aWNf
Y2FzdDxpbnQ2NF90PihpbW0ubV92YWx1ZSkpKTsKIAogICAgICAgICBpZiAobG9naWNhbEltbS5p
c1ZhbGlkKCkpIHsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFuZF88NjQ+KGRlc3QsIGRlc3Qs
IGxvZ2ljYWxJbW0pOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYW5kXzw2ND4oZGVzdCwgc3Jj
LCBsb2dpY2FsSW1tKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IHNpZ25FeHRlbmQzMlRvUHRyKGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52
YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuYW5kXzw2ND4oZGVzdCwgZGVzdCwgZGF0
YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IHNyYyAhPSBkZXN0
ID8gZGVzdCA6IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAg
ICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIuYW5kXzw2ND4oZGVzdCwgc3JjLCBzY3JhdGNoKTsKICAgICB9CiAKLSAgICB2b2lkIGFuZDY0
KFRydXN0ZWRJbW1QdHIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgdm9pZCBhbmQ2NChUcnVz
dGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBhbmQ2NChpbW0s
IGRlc3QsIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgYW5kNjQoVHJ1c3RlZEltbVB0ciBpbW0s
IFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBMb2dpY2Fs
SW1tZWRpYXRlIGxvZ2ljYWxJbW0gPSBMb2dpY2FsSW1tZWRpYXRlOjpjcmVhdGU2NChyZWludGVy
cHJldF9jYXN0PHVpbnQ2NF90PihpbW0ubV92YWx1ZSkpOwogCiAgICAgICAgIGlmIChsb2dpY2Fs
SW1tLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgbV9hc3NlbWJsZXIuYW5kXzw2ND4oZGVzdCwg
ZGVzdCwgbG9naWNhbEltbSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hbmRfPDY0PihkZXN0
LCBzcmMsIGxvZ2ljYWxJbW0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAg
ICAgICAgbW92ZShpbW0sIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFuZF88NjQ+KGRlc3QsIGRlc3QsIGRhdGFUZW1wUmVn
aXN0ZXIpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBzcmMgIT0gZGVzdCA/IGRlc3Qg
OiBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1v
dmUoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYW5kXzw2ND4oZGVzdCwgc3Jj
LCBzY3JhdGNoKTsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIGFuZDY0KFRydXN0ZWRJbW1QdHIg
aW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICByZXR1cm4gYW5kNjQoaW1tLCBk
ZXN0LCBkZXN0KTsKKyAgICB9CisKICAgICB2b2lkIGNvdW50TGVhZGluZ1plcm9zMzIoUmVnaXN0
ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmNs
ejwzMj4oZGVzdCwgc3JjKTsKQEAgLTQ5OSw4ICs1MTQsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IG11bDMyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewotICAgICAgICBtb3ZlKGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5k
SW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubXVsPDMyPihkZXN0LCBzcmMsIGRh
dGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBzcmMgIT0gZGVz
dCA/IGRlc3QgOiBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7Cisg
ICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubXVsPDMyPihk
ZXN0LCBzcmMsIHNjcmF0Y2gpOwogICAgIH0KIAogICAgIHZvaWQgbXVsNjQoUmVnaXN0ZXJJRCBz
cmMsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTYwNyw5ICs2MjMsOSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc3JjICE9IGRhdGFUZW1w
UmVnaXN0ZXIpOwotICAgICAgICBtb3ZlKGltbSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklE
QW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIub3JyPDMyPihkZXN0LCBzcmMs
IGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBzcmMgIT0g
ZGVzdCA/IGRlc3QgOiBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7
CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIub3JyPDMy
PihkZXN0LCBzcmMsIHNjcmF0Y2gpOwogICAgIH0KIAogICAgIHZvaWQgb3IzMihSZWdpc3RlcklE
IHNyYywgQWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MpCkBAIC02NjQsOCArNjgwLDkgQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgc2lnbkV4dGVuZDMy
VG9QdHIoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwot
ICAgICAgICBtX2Fzc2VtYmxlci5vcnI8NjQ+KGRlc3QsIHNyYywgZGF0YVRlbXBSZWdpc3Rlcik7
CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IHNyYyAhPSBkZXN0ID8gZGVzdCA6IGdldENh
Y2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgc2lnbkV4dGVu
ZDMyVG9QdHIoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIub3JyPDY0PihkZXN0
LCBzcmMsIHNjcmF0Y2gpOwogICAgIH0KIAogICAgIHZvaWQgb3I2NChUcnVzdGVkSW1tNjQgaW1t
LCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtNjc3LDggKzY5NCw5IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1vdmUoaW1t
LCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBt
X2Fzc2VtYmxlci5vcnI8NjQ+KGRlc3QsIHNyYywgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAg
IFJlZ2lzdGVySUQgc2NyYXRjaCA9IHNyYyAhPSBkZXN0ID8gZGVzdCA6IGdldENhY2hlZERhdGFU
ZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gp
OworICAgICAgICBtX2Fzc2VtYmxlci5vcnI8NjQ+KGRlc3QsIHNyYywgc2NyYXRjaCk7CiAgICAg
fQogCiAgICAgdm9pZCBvcjY0KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAg
LTg0NCwzNCArODYyLDgwIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJ
bW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CisgICAgICAgIHN1YjY0KGRlc3QsIGlt
bSwgZGVzdCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3ViNjQoVHJ1c3RlZEltbTMyIGltbSwg
UmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGlmIChpc1VJ
bnQxMigtaW1tLm1fdmFsdWUpKSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRl
c3QsIHNyYywgVUludDEyKC1pbW0ubV92YWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CiAgICAgICAgIGlmIChpc1VJbnQxMihpbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAg
IG1fYXNzZW1ibGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgVUludDEyKGltbS5tX3ZhbHVlKSk7Cisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIHNyYywgVUludDEyKGltbS5tX3Zh
bHVlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBSZWdpc3Rl
cklEIHNjcmF0Y2ggPSBzcmMgIT0gZGVzdCA/IGRlc3QgOiBnZXRDYWNoZWREYXRhVGVtcFJlZ2lz
dGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKC1pbW0ubV92
YWx1ZSwgc2NyYXRjaCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgc3JjLCBz
Y3JhdGNoKTsKKyAgICB9CisKKyAgICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVk
SW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoaXNVSW50MTIo
aW1tLm1fdmFsdWUpKSB7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIHNy
YywgVUludDEyKGltbS5tX3ZhbHVlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKGlzVUludDEyKC1pbW0ubV92YWx1ZSkpIHsKLSAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmFkZDw2ND4oZGVzdCwgZGVzdCwgVUludDEyKC1pbW0ubV92YWx1ZSkpOworICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBzcmMsIFVJbnQxMigtaW1tLm1fdmFsdWUp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUmVn
aXN0ZXJJRCBzY3JhdGNoID0gc3JjICE9IGRlc3QgPyBkZXN0IDogZ2V0Q2FjaGVkRGF0YVRlbXBS
ZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihpbW0s
IHNjcmF0Y2gpOworICAgICAgICBtX2Fzc2VtYmxlci5zdWI8NjQ+KGRlc3QsIHNyYywgc2NyYXRj
aCk7CisgICAgfQogCi0gICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKGltbSwgZ2V0Q2FjaGVkRGF0
YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuc3Vi
PDY0PihkZXN0LCBkZXN0LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICB2b2lkIHN1YjY0KFRydXN0
ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIHN1YjY0KGRlc3Qs
IGltbSwgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBzdWI2NChUcnVzdGVkSW1tNjQgaW1tLCBS
ZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaW50cHRyX3Qg
aW1tZWRpYXRlID0gaW1tLm1fdmFsdWU7CisgICAgICAgIAorICAgICAgICBpZiAoaXNVSW50MTIo
LWltbWVkaWF0ZSkpIHsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4oZGVzdCwgc3Jj
LCBVSW50MTIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oLWltbWVkaWF0ZSkpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNVSW50MTIoaW1tZWRpYXRlKSkgewor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBzcmMsIFVJbnQxMihzdGF0aWNf
Y2FzdDxpbnQzMl90PihpbW1lZGlhdGUpKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IHNyYyAhPSBkZXN0ID8g
ZGVzdCA6IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAg
ICAgbW92ZShUcnVzdGVkSW1tNjQoLWltbWVkaWF0ZSksIHNjcmF0Y2gpOworICAgICAgICBtX2Fz
c2VtYmxlci5hZGQ8NjQ+KGRlc3QsIHNyYywgc2NyYXRjaCk7CiAgICAgfQogICAgIAotICAgIHZv
aWQgc3ViNjQoVHJ1c3RlZEltbTY0IGltbSwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHZvaWQgc3Vi
NjQoUmVnaXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CiAgICAgICAgIGludHB0cl90IGltbWVkaWF0ZSA9IGltbS5tX3ZhbHVlOwotCisgICAgICAg
IAogICAgICAgICBpZiAoaXNVSW50MTIoaW1tZWRpYXRlKSkgewotICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc3ViPDY0PihkZXN0LCBkZXN0LCBVSW50MTIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW1t
ZWRpYXRlKSkpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBzcmMsIFVJ
bnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbW1lZGlhdGUpKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlzVUludDEyKC1pbW1lZGlhdGUpKSB7Ci0gICAg
ICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIFVJbnQxMihzdGF0aWNfY2Fz
dDxpbnQzMl90PigtaW1tZWRpYXRlKSkpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0
PihkZXN0LCBzcmMsIFVJbnQxMihzdGF0aWNfY2FzdDxpbnQzMl90PigtaW1tZWRpYXRlKSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KLSAgICAgICAgbW92ZShpbW0sIGdldENh
Y2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0gICAgICAgIG1fYXNzZW1i
bGVyLnN1Yjw2ND4oZGVzdCwgZGVzdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIAorICAg
ICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBzcmMgIT0gZGVzdCA/IGRlc3QgOiBnZXRDYWNoZWRE
YXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tLCBzY3Jh
dGNoKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3ViPDY0PihkZXN0LCBzcmMsIHNjcmF0Y2gpOwog
ICAgIH0KIAogICAgIHZvaWQgdXJzaGlmdDMyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIHNo
aWZ0QW1vdW50LCBSZWdpc3RlcklEIGRlc3QpCkBAIC05NDcsOCArMTAxMSw5IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIG1v
dmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuZW9yPDMyPihkZXN0LCBzcmMsIGRhdGFUZW1wUmVnaXN0ZXIp
OworICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gc3JjICE9IGRlc3QgPyBkZXN0IDog
Z2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICAgICAg
bW92ZShpbW0sIHNjcmF0Y2gpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuZW9yPDMyPihkZXN0
LCBzcmMsIHNjcmF0Y2gpOwogICAgICAgICB9CiAgICAgfQogCkBAIC05ODYsOCArMTA1MSw5IEBA
IHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRl
KCkpOwotICAgICAgICAgICAgbV9hc3NlbWJsZXIuZW9yPDY0PihkZXN0LCBzcmMsIGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gc3JjICE9IGRlc3Qg
PyBkZXN0IDogZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAg
ICAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuZW9y
PDY0PihkZXN0LCBzcmMsIHNjcmF0Y2gpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDA4LDgg
KzEwNzQsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihpbW0sIGdldENhY2hlZERhdGFUZW1w
UmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5lb3I8
NjQ+KGRlc3QsIHNyYywgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBSZWdpc3RlcklE
IHNjcmF0Y2ggPSBzcmMgIT0gZGVzdCA/IGRlc3QgOiBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVy
SURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihpbW0sIHNj
cmF0Y2gpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuZW9yPDY0PihkZXN0LCBzcmMsIHNjcmF0
Y2gpOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtMzE5MSwxMyArMzI1OCwxNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICBSZWdpc3RlcklEIHNjcmF0
Y2ggPSBsZWZ0ICE9IGRlc3QgPyBkZXN0IDogZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5k
SW52YWxpZGF0ZSgpOwogICAgICAgICBpZiAoaXNVSW50MTIocmlnaHQubV92YWx1ZSkpCiAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5jbXA8MzI+KGxlZnQsIFVJbnQxMihyaWdodC5tX3ZhbHVlKSk7
CiAgICAgICAgIGVsc2UgaWYgKGlzVUludDEyKC1yaWdodC5tX3ZhbHVlKSkKICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmNtbjwzMj4obGVmdCwgVUludDEyKC1yaWdodC5tX3ZhbHVlKSk7CiAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgbW92ZShyaWdodCwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdp
c3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcDwzMj4o
bGVmdCwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBtb3ZlKHJpZ2h0LCBzY3JhdGNo
KTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcDwzMj4obGVmdCwgc2NyYXRjaCk7CiAgICAg
ICAgIH0KICAgICAgICAgbV9hc3NlbWJsZXIuY3NldDwzMj4oZGVzdCwgQVJNNjRDb25kaXRpb24o
Y29uZCkpOwogICAgIH0KQEAgLTMyMTcsOCArMzI4NSw5IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCi0gICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKHJpZ2h0LCBnZXRDYWNo
ZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBtX2Fzc2VtYmxl
ci5jbXA8NjQ+KGxlZnQsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBSZWdpc3RlcklEIHNj
cmF0Y2ggPSBsZWZ0ICE9IGRlc3QgPyBkZXN0IDogZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklE
QW5kSW52YWxpZGF0ZSgpOworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihyaWdodCwgc2NyYXRj
aCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmNtcDw2ND4obGVmdCwgc2NyYXRjaCk7CiAgICAgICAg
IG1fYXNzZW1ibGVyLmNzZXQ8MzI+KGRlc3QsIEFSTTY0Q29uZGl0aW9uKGNvbmQpKTsKICAgICB9
CiAKQEAgLTMyNjYsOCArMzMzNSw5IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG1hc2subV92YWx1
ZSA9PSAtMSkKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdDw2ND4oc3JjLCBzcmMpOwogICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKG1hc2ssIGdldENhY2hl
ZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci50c3Q8NjQ+KHNyYywgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICBSZWdpc3Rl
cklEIHNjcmF0Y2ggPSBzcmMgIT0gZGVzdCA/IGRlc3QgOiBnZXRDYWNoZWREYXRhVGVtcFJlZ2lz
dGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihtYXNr
LCBzY3JhdGNoKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdDw2ND4oc3JjLCBzY3JhdGNo
KTsKICAgICAgICAgfQogICAgICAgICBtX2Fzc2VtYmxlci5jc2V0PDMyPihkZXN0LCBBUk02NENv
bmRpdGlvbihjb25kKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IGFjYWRkMmEuLmUx
MDU0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTI5MDAsNiArMjkwMCwxOCBAQCBwdWJsaWM6
CiAgICAgICAgIG1fYXNzZW1ibGVyLmNtcGxfaXIocmlnaHQubV92YWx1ZSwgbGVmdCk7CiAgICAg
ICAgIHNldDMyKHg4NkNvbmRpdGlvbihjb25kKSwgZGVzdCk7CiAgICAgfQorICAgIAorICAgIHZv
aWQgY29tcGFyZTMyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBB
ZGRyZXNzIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxl
ci5jbXBsX21yKHJpZ2h0Lm9mZnNldCwgcmlnaHQuYmFzZSwgbGVmdCk7CisgICAgICAgIHNldDMy
KHg4NkNvbmRpdGlvbihjb25kKSwgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBjb21wYXJlMzIo
UmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBUcnVzdGVkSW1tMzIgbGVmdCwgQWRkcmVzcyByaWdo
dCwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuY21wbF9pbShs
ZWZ0Lm1fdmFsdWUsIHJpZ2h0Lm9mZnNldCwgcmlnaHQuYmFzZSk7CisgICAgICAgIHNldDMyKHg4
NkNvbmRpdGlvbihjb25kKSwgZGVzdCk7CisgICAgfQogCiAgICAgLy8gRklYTUU6CiAgICAgLy8g
VGhlIG1hc2sgc2hvdWxkIGJlIG9wdGlvbmFsLi4uIHBlcmhhcHMgdGhlIGFyZ3VtZW50IG9yZGVy
IHNob3VsZCBiZQpAQCAtMzkxNSw2ICszOTI3LDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IG1fYXNzZW1ibGVyLmNwdWlkKCk7CiAgICAgfQorICAgIAorICAgIC8vIE5vIHF1ZXN0aW9ucyBh
c2tlZCwgd2hhdGV2ZXIgdmFsdWUgeW91IHdhbnQuCisgICAgdm9pZCB1bmNoZWNrZWQzMihpbnQg
dmFsdWUpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci51bmNoZWNrZWQzMih2YWx1ZSk7Cisg
ICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgWDg2QXNzZW1ibGVyOjpDb25kaXRpb24geDg2Q29uZGl0
aW9uKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCBlMGRhMTE2Li45
OWM4YjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC00MTMsMTAgKzQxMywxMCBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5hbmRxX2ltKGltbS5tX3ZhbHVlLCBkZXN0Lm9mZnNldCwg
ZGVzdC5iYXNlLCBkZXN0LmluZGV4LCBkZXN0LnNjYWxlKTsKICAgICB9Ci0KLSAgICB2b2lkIGFu
ZDY0KFRydXN0ZWRJbW1QdHIgaW1tLCBSZWdpc3RlcklEIHNyY0Rlc3QpCisgICAgCisgICAgdm9p
ZCBhbmQ2NChUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIHNyY0Rlc3QpCiAgICAgewotICAg
ICAgICBpbnRwdHJfdCBpbnRWYWx1ZSA9IGltbS5hc0ludHB0cigpOworICAgICAgICBpbnQ2NF90
IGludFZhbHVlID0gaW1tLm1fdmFsdWU7CiAgICAgICAgIGlmIChpbnRWYWx1ZSA8PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKQogICAgICAgICAgICAgJiYgaW50VmFsdWUgPj0g
c3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpIHsKICAgICAgICAgICAgIGFuZDY0
KFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihpbnRWYWx1ZSkpLCBzcmNEZXN0KTsK
QEAgLTQyNiw2ICs0MjYsMTEgQEAgcHVibGljOgogICAgICAgICBhbmQ2NChzY3JhdGNoUmVnaXN0
ZXIoKSwgc3JjRGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBhbmQ2NChUcnVzdGVkSW1tUHRyIGlt
bSwgUmVnaXN0ZXJJRCBzcmNEZXN0KQorICAgIHsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTY0
KGltbS5hc0ludHB0cigpKSwgc3JjRGVzdCk7CisgICAgfQorCiAgICAgdm9pZCBhbmQ2NChSZWdp
c3RlcklEIG9wMSwgUmVnaXN0ZXJJRCBvcDIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIGlmIChvcDEgPT0gb3AyICYmIG9wMSAhPSBkZXN0ICYmIG9wMiAhPSBkZXN0KQpAQCAtNDM3
LDYgKzQ0MiwzNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBhbmQ2NChvcDEsIGRlc3QpOwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIHZvaWQgYW5kNjQoVHJ1c3RlZEltbTMyIGltbSwgUmVn
aXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGlmIChzcmMgIT0g
ZGVzdCkKKyAgICAgICAgICAgIG1vdmUoc3JjLCBkZXN0KTsKKyAgICAgICAgYW5kNjQoaW1tLCBk
ZXN0KTsKKyAgICB9CisKKyAgICB2b2lkIGFuZDY0KFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVy
SUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoc3JjID09IGRlc3Qp
CisgICAgICAgICAgICByZXR1cm4gYW5kNjQoaW1tLCBkZXN0KTsKKworICAgICAgICBpbnQ2NF90
IGludFZhbHVlID0gaW1tLm1fdmFsdWU7CisgICAgICAgIGlmIChpbnRWYWx1ZSA8PSBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKQorICAgICAgICAgICAgJiYgaW50VmFsdWUgPj0g
c3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpIHsKKyAgICAgICAgICAgIG1vdmUo
c3JjLCBkZXN0KTsKKyAgICAgICAgICAgIHJldHVybiBhbmQ2NChUcnVzdGVkSW1tMzIoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4oaW50VmFsdWUpKSwgZGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBt
b3ZlKGltbSwgZGVzdCk7CisgICAgICAgIGFuZDY0KHNyYywgZGVzdCk7CisgICAgfQorICAgIAor
ICAgIHZvaWQgYW5kNjQoVHJ1c3RlZEltbVB0ciBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3Rl
cklEIGRlc3QpCisgICAgeworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tNjQoaW1tLmFzSW50cHRy
KCkpLCBzcmMsIGRlc3QpOworICAgIH0KIAogICAgIHZvaWQgY291bnRMZWFkaW5nWmVyb3M2NChS
ZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewpAQCAtNTYyLDYgKzU5NSwxMSBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBzd2FwKHNyYywgWDg2UmVnaXN0ZXJzOjplY3gpOwogICAg
ICAgICB9CiAgICAgfQorICAgIAorICAgIHZvaWQgbXVsNjQoVHJ1c3RlZEltbTMyIGltbSwgUmVn
aXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbXVsNjQoaW1tLCBkZXN0LCBkZXN0KTsKKyAg
ICB9CiAKICAgICB2b2lkIG11bDY0KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewpAQCAtNTc4LDYgKzYxNiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmlt
dWxxX3JyKHNyYzIsIGRlc3QpOwogICAgIH0KICAgICAKKyAgICB2b2lkIG11bDY0KFRydXN0ZWRJ
bW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAg
ICBtX2Fzc2VtYmxlci5pbXVsbF9pMzJyKHNyYywgaW1tLm1fdmFsdWUsIGRlc3QpOworICAgIH0K
KyAgICAKICAgICB2b2lkIHg4NkNvbnZlcnRUb1F1YWRXb3JkNjQoKQogICAgIHsKICAgICAgICAg
bV9hc3NlbWJsZXIuY3FvKCk7CkBAIC03MDgsNyArNzUxLDIzIEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLnN1YnFfcnIoc3JjLCBkZXN0KTsKICAgICB9Ci0gICAgCisKKyAg
ICB2b2lkIHN1YjY0KFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCwgUmVnaXN0ZXJJ
RCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpCisgICAgICAgICAgICBt
b3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7CisgICAgICAgIGVsc2UgaWYgKGxlZnQgPT0gZGVz
dCkKKyAgICAgICAgICAgIHN1YjY0KHJpZ2h0LCBkZXN0KTsKKyAgICAgICAgZWxzZSBpZiAocmln
aHQgIT0gZGVzdCkgeworICAgICAgICAgICAgbW92ZShsZWZ0LCBkZXN0KTsKKyAgICAgICAgICAg
IHN1YjY0KHJpZ2h0LCBkZXN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1vdmUo
cmlnaHQsIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgICAgIG1vdmUobGVmdCwgZGVzdCk7
CisgICAgICAgICAgICBzdWI2NChzY3JhdGNoUmVnaXN0ZXIoKSwgZGVzdCk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVz
dCkKICAgICB7CiAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA9PSAxKQpAQCAtNzE3LDYgKzc3Niwy
MSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWJxX2lyKGltbS5tX3ZhbHVl
LCBkZXN0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBzdWI2NChUcnVzdGVkSW1tMzIgaW1tLCBS
ZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgYWRkNjQoVHJ1
c3RlZEltbTMyKC1pbW0ubV92YWx1ZSksIHNyYywgZGVzdCk7CisgICAgfQorCisgICAgdm9pZCBz
dWI2NChSZWdpc3RlcklEIHNyYywgVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHsKKyAgICAgICAgaWYgKHNyYyA9PSBkZXN0KQorICAgICAgICAgICAgc3ViNjQoaW1tLCBk
ZXN0KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtb3ZlKHNyYywgZGVzdCk7CisgICAg
ICAgICAgICBzdWI2NChpbW0sIGRlc3QpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBz
dWI2NChUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBp
ZiAoaW1tLm1fdmFsdWUgPT0gMSkKQEAgLTcyNyw2ICs4MDEsMTkgQEAgcHVibGljOgogICAgICAg
ICB9CiAgICAgfQogCisgICAgdm9pZCBzdWI2NChUcnVzdGVkSW1tNjQgaW1tLCBSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2hS
ZWdpc3RlcigpKTsKKyAgICAgICAgc3ViNjQoc3JjLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CisgICAg
ICAgIG1vdmUoc2NyYXRjaFJlZ2lzdGVyKCksIGRlc3QpOworICAgIH0KKworICAgIHZvaWQgc3Vi
NjQoUmVnaXN0ZXJJRCBzcmMsIFRydXN0ZWRJbW02NCBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB7CisgICAgICAgIG1vdmUoc3JjLCBkZXN0KTsKKyAgICAgICAgc3ViNjQoaW1tLCBkZXN0KTsK
KyAgICB9CisKICAgICB2b2lkIHN1YjY0KFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YnFfaW0oaW1tLm1fdmFsdWUsIGFkZHJl
c3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwpAQCAtOTY2LDYgKzEwNTMsMTIgQEAgcHVibGljOgog
ICAgICAgICBtX2Fzc2VtYmxlci5jbXBxX3JyKHJpZ2h0LCBsZWZ0KTsKICAgICAgICAgc2V0MzIo
eDg2Q29uZGl0aW9uKGNvbmQpLCBkZXN0KTsKICAgICB9CisgICAgCisgICAgdm9pZCBjb21wYXJl
NjQoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIEFkZHJlc3Mgcmln
aHQsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmNtcHFfbXIo
cmlnaHQub2Zmc2V0LCByaWdodC5iYXNlLCBsZWZ0KTsKKyAgICAgICAgc2V0MzIoeDg2Q29uZGl0
aW9uKGNvbmQpLCBkZXN0KTsKKyAgICB9CiAKICAgICB2b2lkIGNvbXBhcmVEb3VibGUoRG91Ymxl
Q29uZGl0aW9uIGNvbmQsIEZQUmVnaXN0ZXJJRCBsZWZ0LCBGUFJlZ2lzdGVySUQgcmlnaHQsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC0xMDU3LDkgKzExNTAsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBicmFuY2g2NChjb25kLCBsZWZ0LCBzY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAg
fQogCi0gICAgSnVtcCBicmFuY2g2NChSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIEJhc2VJbmRl
eCBhZGRyZXNzLCBSZWdpc3RlcklEIHJpZ2h0KQorICAgIEp1bXAgYnJhbmNoNjQoUmVsYXRpb25h
bENvbmRpdGlvbiBjb25kLCBCYXNlSW5kZXggaW5kZXgsIFJlZ2lzdGVySUQgcmlnaHQpCiAgICAg
ewotICAgICAgICBtX2Fzc2VtYmxlci5jbXBxX3JtKHJpZ2h0LCBhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICAgICAgbV9hc3Nl
bWJsZXIuY21wcV9ybShyaWdodCwgaW5kZXgub2Zmc2V0LCBpbmRleC5iYXNlLCBpbmRleC5pbmRl
eCwgaW5kZXguc2NhbGUpOwogICAgICAgICByZXR1cm4gSnVtcChtX2Fzc2VtYmxlci5qQ0MoeDg2
Q29uZGl0aW9uKGNvbmQpKSk7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggZTIwYzZhOS4uZDJkNzg4YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0yNDYs
NiArMjQ2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgUFJFX1NTRV82NiAgICAgICAgICAgICAgICAg
ICAgICA9IDB4NjYsCiAgICAgICAgIE9QX1BVU0hfSXogICAgICAgICAgICAgICAgICAgICAgPSAw
eDY4LAogICAgICAgICBPUF9JTVVMX0d2RXZJeiAgICAgICAgICAgICAgICAgID0gMHg2OSwKKyAg
ICAgICAgT1BfSU1VTF9HdkV2SWIgICAgICAgICAgICAgICAgICA9IDB4NkIsCiAgICAgICAgIE9Q
X0dST1VQMV9FYkliICAgICAgICAgICAgICAgICAgPSAweDgwLAogICAgICAgICBPUF9HUk9VUDFf
RXZJeiAgICAgICAgICAgICAgICAgID0gMHg4MSwKICAgICAgICAgT1BfR1JPVVAxX0V2SWIgICAg
ICAgICAgICAgICAgICA9IDB4ODMsCkBAIC0xNzk3LDggKzE3OTgsMTMgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBpbXVsbF9pMzJyKFJlZ2lzdGVySUQgc3JjLCBpbnQzMl90IHZhbHVlLCBSZWdpc3Rl
cklEIGRzdCkKICAgICB7Ci0gICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9JTVVMX0d2
RXZJeiwgZHN0LCBzcmMpOwotICAgICAgICBtX2Zvcm1hdHRlci5pbW1lZGlhdGUzMih2YWx1ZSk7
CisgICAgICAgIGlmIChDQU5fU0lHTl9FWFRFTkRfOF8zMih2YWx1ZSkpIHsKKyAgICAgICAgICAg
IG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9JTVVMX0d2RXZJYiwgZHN0LCBzcmMpOworICAgICAg
ICAgICAgbV9mb3JtYXR0ZXIuaW1tZWRpYXRlOCh2YWx1ZSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfSU1VTF9HdkV2SXosIGRzdCwgc3Jj
KTsKKyAgICAgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTMyKHZhbHVlKTsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIHZvaWQgZGl2bF9yKFJlZ2lzdGVySUQgZHN0KQpAQCAtMzU3NCw2ICsz
NTgwLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChP
UDJfQ1BVSUQpOwogICAgIH0KKyAgICAKKyAgICB2b2lkIHVuY2hlY2tlZDMyKGludCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTMyKHZhbHVlKTsKKyAgICB9CiAK
ICAgICAvLyBBc3NlbWJsZXIgYWRtaW4gbWV0aG9kczoKIApAQCAtNDU4MCw3ICs0NTkxLDcgQEAg
cHJpdmF0ZToKIAogICAgICAgICAvLyBJbW1lZGlhdGVzOgogICAgICAgICAvLwotICAgICAgICAv
LyBBbiBpbW1lZGFpdGUgc2hvdWxkIGJlIGFwcGVuZGVkIHdoZXJlIGFwcHJvcHJpYXRlIGFmdGVy
IGFuIG9wIGhhcyBiZWVuIGVtaXR0ZWQuCisgICAgICAgIC8vIEFuIGltbWVkaWF0ZSBzaG91bGQg
YmUgYXBwZW5kZWQgd2hlcmUgYXBwcm9wcmlhdGUgYWZ0ZXIgYW4gb3AgaGFzIGJlZW4gZW1pdHRl
ZC4KICAgICAgICAgLy8gVGhlIHdyaXRlcyBhcmUgdW5jaGVja2VkIHNpbmNlIHRoZSBvcGNvZGUg
Zm9ybWF0dGVycyBhYm92ZSB3aWxsIGhhdmUgZW5zdXJlZCBzcGFjZS4KIAogICAgICAgICB2b2lk
IGltbWVkaWF0ZTgoaW50IGltbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IGRjMjk0ZjEuLjQ0Mzc3YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcApAQCAtMzM2
LDEwICszMzYsMTEgQEAgSW50ZXJwcmV0ZXI6OkludGVycHJldGVyKFZNJiB2bSkKICAgICBzdGQ6
OmNhbGxfb25jZShhc3NlcnRPbmNlS2V5LCBbXSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBOVU1CRVJfT0ZfQllURUNPREVfSURTOyArK2kpIHsKICAgICAgICAgICAgIE9wY29k
ZUlEIG9wY29kZUlEID0gc3RhdGljX2Nhc3Q8T3Bjb2RlSUQ+KGkpOworICAgICAgICAgICAgZGF0
YUxvZ0xuKCJDaGVja2luZyBvcGNvZGUgIyIsIGksICIgIiwgb3Bjb2RlSUQsICIgZ2V0IGlzICIs
IFJhd1BvaW50ZXIoZ2V0T3Bjb2RlKG9wY29kZUlEKSksICIgLT4gIiwgZ2V0T3Bjb2RlSUQoZ2V0
T3Bjb2RlKG9wY29kZUlEKSkpOyAvLyBGSVhNRSByZW1vdmUgdGhpcyBsb2dnaW5nLgogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoZ2V0T3Bjb2RlSUQoZ2V0T3Bjb2RlKG9wY29kZUlEKSkgPT0g
b3Bjb2RlSUQpOwogICAgICAgICB9CiAgICAgfSk7Ci0jZW5kaWYgLy8gVVNFKExMSU5UX0VNQkVE
REVEX09QQ09ERV9JRCkKKyNlbmRpZiAvLyAhQVNTRVJUX0RJU0FCTEVECiB9CiAKIEludGVycHJl
dGVyOjp+SW50ZXJwcmV0ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDb21t
b24uaAppbmRleCA1ZGE1MTZhLi4xZmI2MzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRDb21tb24uaApAQCAtMzIsNyArMzIsNyBAQAogI2RlZmluZSBMTElOVF9FWEVDVVRJ
T05fVFJBQ0lORyAwCiAKIC8vIFByaW50IHNvbWUgaW5mb3JtYXRpb24gZm9yIHNvbWUgb2YgdGhl
IG1vcmUgc3VidGxlIHNsb3cgcGF0aHMuCi0jZGVmaW5lIExMSU5UX1NMT1dfUEFUSF9UUkFDSU5H
IDAKKyNkZWZpbmUgTExJTlRfU0xPV19QQVRIX1RSQUNJTkcgMQogCiAvLyBEaXNhYmxlIGlubGlu
ZSBhbGxvY2F0aW9uIGluIHRoZSBpbnRlcnByZXRlci4gVGhpcyBpcyBncmVhdCBpZiB5b3UncmUg
Y2hhbmdpbmcKIC8vIGhvdyB0aGUgR0MgYWxsb2NhdGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcAppbmRleCA0Y2Y4YzZkLi40ODdhZjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkpTU2NvcGUuaCIKICNpbmNsdWRlICJMTEludENMb29wLmgiCiAjaW5jbHVkZSAiTExJbnRD
b21tb24uaCIKKyNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiTWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU9mZnNldC5oIgpAQCAtNjMsNyArNjQsOSBAQCB2b2lkIGluaXRpYWxpemUo
KQogICAgIENMb29wOjppbml0aWFsaXplKCk7CiAKICNlbHNlIC8vIEVOQUJMRShKSVQpCi0gICAg
bGxpbnRfZW50cnkoJkRhdGE6OnNfb3Bjb2RlTWFwKTsKKworICAgIGlmICghZ2VuZXJhdGVPbmxp
bmVBc3NlbWJsZXIoRGF0YTo6c19vcGNvZGVNYXApKQorICAgICAgICBsbGludF9lbnRyeSgmRGF0
YTo6c19vcGNvZGVNYXApOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhPcGNvZGVMZW5n
dGggKyAxOyArK2kpCiAgICAgICAgIERhdGE6OnNfZXhjZXB0aW9uSW5zdHJ1Y3Rpb25zW2ldLnUu
cG9pbnRlciA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRP
ZmZsaW5lQXNtQ29uZmlnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZs
aW5lQXNtQ29uZmlnLmgKaW5kZXggZTRmMDIwMy4uMGJlOGU0MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaApAQCAtMTM3LDYg
KzEzNywxMCBAQAogCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAorLy8gVGhlIG9mZnNldCBleHRy
YWN0b3Igd2lsbCB1c2UgdGhlIHNhbWUgb2Zmc2V0IGZvciB0aGUgb25saW5lIGFzc2VtYmxlciBh
cworLy8gd2hpY2hldmVyIG9mZmxpbmUgdmVyc2lvbiBpcyBhbHNvIGJlaW5nIGdlbmVyYXRlZC4K
KyNkZWZpbmUgT0ZGTElORV9BU01fT05MSU5FX0FTU0VNQkxFUiAwCisKICNpZiBVU0UoSlNWQUxV
RTY0KQogI2RlZmluZSBPRkZMSU5FX0FTTV9KU1ZBTFVFNjQgMQogI2Vsc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRQQ1Jhbmdlcy5oCmluZGV4IGEyNGE5YzAuLjRkMDlhMDA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRQQ1Jhbmdlcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMTcg
KzMxLDE3IEBAIG5hbWVzcGFjZSBMTEludCB7CiAKIC8vIFRoZXNlIGFyZSB1c2VkIGp1c3QgdG8g
ZGVub3RlIHdoZXJlIExMSW50IGNvZGUgYmVnaW5zIGFuZCB3aGVyZSBpdCBlbmRzLgogZXh0ZXJu
ICJDIiB7Ci0gICAgdm9pZCBsbGludFBDUmFuZ2VTdGFydCgpOwotICAgIHZvaWQgbGxpbnRQQ1Jh
bmdlRW5kKCk7CisgICAgdm9pZCBsbGludE9mZmxpbmVQQ1JhbmdlU3RhcnQoKTsKKyAgICB2b2lk
IGxsaW50T2ZmbGluZVBDUmFuZ2VFbmQoKTsKIH0KIAotQUxXQVlTX0lOTElORSBib29sIGlzTExJ
bnRQQyh2b2lkKiBwYykKK0FMV0FZU19JTkxJTkUgYm9vbCBpc0xMSW50T2ZmbGluZVBDKHZvaWQq
IHBjKQogewogICAgIHVpbnRwdHJfdCBwY0FzSW50ID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4o
cGMpOwotICAgIHVpbnRwdHJfdCBsbGludFN0YXJ0ID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4o
bGxpbnRQQ1JhbmdlU3RhcnQpOwotICAgIHVpbnRwdHJfdCBsbGludEVuZCA9IGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KGxsaW50UENSYW5nZUVuZCk7Ci0gICAgUkVMRUFTRV9BU1NFUlQobGxpbnRT
dGFydCA8IGxsaW50RW5kKTsKLSAgICByZXR1cm4gbGxpbnRTdGFydCA8PSBwY0FzSW50ICYmIHBj
QXNJbnQgPD0gbGxpbnRFbmQ7CisgICAgdWludHB0cl90IGxsaW50T2ZmbGluZVN0YXJ0ID0gYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4obGxpbnRPZmZsaW5lUENSYW5nZVN0YXJ0KTsKKyAgICB1aW50
cHRyX3QgbGxpbnRPZmZsaW5lRW5kID0gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4obGxpbnRPZmZs
aW5lUENSYW5nZUVuZCk7CisgICAgUkVMRUFTRV9BU1NFUlQobGxpbnRPZmZsaW5lU3RhcnQgPCBs
bGludE9mZmxpbmVFbmQpOworICAgIHJldHVybiBsbGludE9mZmxpbmVTdGFydCA8PSBwY0FzSW50
ICYmIHBjQXNJbnQgPD0gbGxpbnRPZmZsaW5lRW5kOwogfQogCiAjaWYgRU5BQkxFKEpJVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDYz
MmJmZGIuLjJhNDU3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcApAQCAtNDk3LDExICs0OTcsMTQgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wo
c3RhY2tfY2hlY2spCiAgICAgTExJTlRfU0VUX1BDX0ZPUl9TVFVCUygpOwogCiAjaWYgTExJTlRf
U0xPV19QQVRIX1RSQUNJTkcKKyAgICBpbnQgc3RhY2tWYWx1ZTsKKyAgICB2b2xhdGlsZSBpbnQq
IHN0YWNrUG9pbnRlciA9ICZzdGFja1ZhbHVlOwogICAgIGRhdGFMb2dGKCJDaGVja2luZyBzdGFj
ayBoZWlnaHQgd2l0aCBleGVjID0gJXAuXG4iLCBleGVjKTsKICAgICBkYXRhTG9nKCJDb2RlQmxv
Y2sgPSAiLCAqZXhlYy0+Y29kZUJsb2NrKCksICJcbiIpOwogICAgIGRhdGFMb2dGKCJOdW0gY2Fs
bGVlIHJlZ2lzdGVycyA9ICV1LlxuIiwgZXhlYy0+Y29kZUJsb2NrKCktPm1fbnVtQ2FsbGVlTG9j
YWxzKTsKICAgICBkYXRhTG9nRigiTnVtIHZhcnMgPSAldS5cbiIsIGV4ZWMtPmNvZGVCbG9jaygp
LT5tX251bVZhcnMpOwogCisgICAgZGF0YUxvZ0YoIkN1cnJlbnQgc3RhY2sgcG9pbnRlciBpcyBh
dCAlcC5cbiIsIHN0YWNrUG9pbnRlcik7CiAgICAgZGF0YUxvZ0YoIkN1cnJlbnQgT1Mgc3RhY2sg
ZW5kIGlzIGF0ICVwLlxuIiwgdm0uc29mdFN0YWNrTGltaXQoKSk7CiAjaWYgIUVOQUJMRShKSVQp
CiAgICAgZGF0YUxvZ0YoIkN1cnJlbnQgQyBMb29wIHN0YWNrIGVuZCBpcyBhdCAlcC5cbiIsIHZt
LmNsb29wU3RhY2tMaW1pdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5oCmluZGV4IDgzMDA4ZTEuLjEwYjlhNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMSAr
MjYsMTUgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCi0KLSNpZiAhRU5B
QkxFKEpJVCkKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAK
Ky8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgb25saW5lIGFzc2VtYmxlciB3YXMgYXNzZW1ibGVkIHN1
Y2Nlc3NmdWxseS4KK2Jvb2wgZ2VuZXJhdGVPbmxpbmVBc3NlbWJsZXIoT3Bjb2RlKik7CisKKyNp
ZiAhRU5BQkxFKEpJVCkKKwogLy8gVGhlIGZvbGxvd2luZyBpcyBhIHNldCBvZiBhbGlhcyBmb3Ig
dGhlIG9wY29kZSBuYW1lcy4gVGhpcyBpcyBuZWVkZWQKIC8vIGJlY2F1c2UgdGhlcmUgaXMgY29k
ZSAoZS5nLiBpbiBHZXRCeUlkU3RhdHVzLmNwcCBhbmQgUHV0QnlJZFN0YXR1cy5jcHApCiAvLyB3
aGljaCByZWZlcnMgdG8gdGhlIG9wY29kZXMgZXhwZWN0aW5nIHRoZW0gdG8gYmUgcHJlZml4ZWQg
d2l0aCAibGxpbnRfIi4KQEAgLTQyLDYgKzQ2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiBGT1JfRUFD
SF9DT1JFX09QQ09ERV9JRChMTElOVF9PUENPREVfQUxJQVMpCiAjdW5kZWYgTExJTlRfT1BDT0RF
X0FMSUFTCiAKLX0gLy8gbmFtZXNwYWNlIEpTQwotCiAjZW5kaWYgLy8gIUVOQUJMRShKSVQpCisK
K30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXJPbmxpbmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXJPbmxpbmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjI2NzQxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlck9ubGluZS5jcHAKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgorI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJP
cHRpb25zLmgiCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisjaW5jbHVkZSAiUHJvYmVDb250
ZXh0LmgiIC8vLy8vLy8vLy8vLy8vLy8vLy8vLyBGSVhNRSByZW1vdmUKKyNpbmNsdWRlICJNYWNy
b0Fzc2VtYmxlclByaW50ZXIuaCIvLy8vLy8vLy8vLy8vLy8vLy8gRklYTUUgcmVtb3ZlCisKK25h
bWVzcGFjZSBKU0MgeworCitib29sIGdlbmVyYXRlT25saW5lQXNzZW1ibGVyKE9wY29kZSogb3Bj
b2RlTWFwKQoreworICAgIGlmICghT3B0aW9uczo6dXNlSklUKCkgfHwgIU9wdGlvbnM6OnVzZUxM
SW50KCkgfHwgIU9wdGlvbnM6OnVzZU9ubGluZUxMSW50KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworI2lmIEVOQUJMRShMTElOVF9PTkxJTkVfQVNTRU1CTEVSKQorICAgIHN0cnVjdCBOZXZl
ckRlc3Ryb3llZE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB7CisgICAgICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiByZWY7CisgICAgICAgIE5ldmVyRGVzdHJveWVkTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
KE1hY3JvQXNzZW1ibGVyQ29kZVJlZiYmIHJlZikgOiByZWYocmVmKSB7IH0KKyAgICB9OworICAg
IC8vIFRoaXMgaXMgYSBmaWxlIGdlbmVyYXRlZCBieSBvZmZsaW5lYXNtLCB3aGljaCBjb250YWlu
cyBhbGwgb2YgdGhlIG1hY3JvCisgICAgLy8gYXNzZW1ibGVyIGZvciB0aGUgb25saW5lIHZlcnNp
b24gb2YgdGhlIGludGVycHJldGVyLCBhcyBjb21waWxlZCBmcm9tCisgICAgLy8gTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20uCisjaW5jbHVkZSAiTExJbnRPbmxpbmVBc3NlbWJseS5oIgorICAgIHJl
dHVybiB0cnVlOworI2Vsc2UgLy8gRU5BQkxFKExMSU5UX09OTElORV9BU1NFTUJMRVIpCisgICAg
VU5VU0VEX1BBUkFNKG9wY29kZU1hcCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmIC8vIEVO
QUJMRShMTElOVF9PTkxJTkVfQVNTRU1CTEVSKQorfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKaW5kZXggNzA2YTQ1Mi4uYWMy
MzU2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQu
cmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKQEAgLTEs
NCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTQgVW5pdmVyc2l0
eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzM2
LDcgKzMzNiw3IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgICAgICB3aGVuICJsb2FkcCIsICJz
dG9yZXAiLCAibG9hZHEiLCAic3RvcmVxIiwgImxvYWRkIiwgInN0b3JlZCIsICJsc2hpZnRwIiwg
ImxzaGlmdHEiLCAibmVncCIsICJuZWdxIiwgInJzaGlmdHAiLCAicnNoaWZ0cSIsCiAgICAgICAg
ICAgICAgICAgInVyc2hpZnRwIiwgInVyc2hpZnRxIiwgImFkZHAiLCAiYWRkcSIsICJtdWxwIiwg
Im11bHEiLCAiYW5kcCIsICJhbmRxIiwgIm9ycCIsICJvcnEiLCAic3VicCIsICJzdWJxIiwgInhv
cnAiLCAieG9ycSIsICJhZGRkIiwKICAgICAgICAgICAgICAgICAiZGl2ZCIsICJzdWJkIiwgIm11
bGQiLCAic3FydGQiLCAvXmJwLywgL15icS8sIC9eYnRwLywgL15idHEvLCAvXmNwLywgL15jcS8s
IC9edHAvLCAvXnRxLywgL15iZC8sCi0gICAgICAgICAgICAgICAgImptcCIsICJjYWxsIiwgImxl
YXAiLCAibGVhcSIKKyAgICAgICAgICAgICAgICAiam1wIiwgImNhbGwiLCAibGVhcCIKICAgICAg
ICAgICAgICAgICBzaXplID0gOAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJh
aXNlICJCYWQgaW5zdHJ1Y3Rpb24gI3tub2RlLm9wY29kZX0gZm9yIGhlYXAgYWNjZXNzIGF0ICN7
bm9kZS5jb2RlT3JpZ2luU3RyaW5nfSIKQEAgLTkxOCw4ICs5MTgsNiBAQCBjbGFzcyBJbnN0cnVj
dGlvbgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtNjRFbWl0TGVhKG9wZXJhbmRzWzFdLCA6
aW50KQogICAgICAgICB3aGVuICJsZWFwIgogICAgICAgICAgICAgb3BlcmFuZHNbMF0uYXJtNjRF
bWl0TGVhKG9wZXJhbmRzWzFdLCA6cHRyKQotICAgICAgICB3aGVuICJsZWFxIgotICAgICAgICAg
ICAgb3BlcmFuZHNbMF0uYXJtNjRFbWl0TGVhKG9wZXJhbmRzWzFdLCA6cHRyKQogICAgICAgICB3
aGVuICJzbXVsbGkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInNtYWRkbCAje29wZXJhbmRzWzJd
LmFybTY0T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMF0uYXJtNjRPcGVyYW5kKDppbnQpfSwg
I3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOmludCl9LCB4enIiCiAgICAgICAgIHdoZW4gIm1l
bWZlbmNlIgpAQCAtOTUxLDcgKzk0OSw3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAg
ICAkYXNtLnB1dFN0cigiI2Vycm9yIE1pc3NpbmcgZ2xvYmFsYWRkciBpbXBsZW1lbnRhdGlvbiIp
CiAgICAgICAgICAgICAkYXNtLnB1dFN0cigiI2VuZGlmIikKIAotICAgICAgICAgICAgJGFzbS5k
ZWZlckFjdGlvbiB7CisgICAgICAgICAgICAkYXNtLmFzbURlZmVyQWN0aW9uIHsKICAgICAgICAg
ICAgICAgICAjIE9uIERhcndpbiwgYWxzbyBpbmNsdWRlIHRoZSAubG9oIGRpcmVjdGl2ZSB1c2lu
ZyB0aGUgZ2VuZXJhdGVkIGxhYmVscy4KICAgICAgICAgICAgICAgICAkYXNtLnB1dFN0cigiI2lm
IE9TKERBUldJTikiKQogICAgICAgICAgICAgICAgICRhc20ucHV0cyAiLmxvaCBBZHJwTGRyR290
IExfb2ZmbGluZWFzbV9sb2hfYWRycF8je3VpZH0sIExfb2ZmbGluZWFzbV9sb2hfbGRyXyN7dWlk
fSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgppbmRleCAwMjQwNDliLi44
NmVkNTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20u
cmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCkBAIC0xLDYg
KzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcnVieQogCi0jIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMS0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDYsNDcgKzQ2LDYxIEBAIGNsYXNzIEFzc2VtYmxlcgogICAgICAgICBAY29k
ZU9yaWdpbiA9IG5pbAogICAgICAgICBAbnVtTG9jYWxMYWJlbHMgPSAwCiAgICAgICAgIEBudW1H
bG9iYWxMYWJlbHMgPSAwCi0gICAgICAgIEBkZWZlcnJlZEFjdGlvbnMgPSBbXQorICAgICAgICBA
YXNtRGVmZXJyZWRBY3Rpb25zID0gW10KKyAgICAgICAgQHByb2NFYXJseURlZmVycmVkQWN0aW9u
cyA9IFtdCisgICAgICAgIEBwcm9jTGF0ZURlZmVycmVkQWN0aW9ucyA9IFtdCisgICAgICAgIEBs
b2NhbExhYmVscyA9IFtdCiAgICAgICAgIEBjb3VudCA9IDAKIAogICAgICAgICBAbmV3bGluZVNw
YWNlclN0YXRlID0gOm5vbmUKICAgICAgICAgQGxhc3RsYWJlbCA9ICIiCiAgICAgZW5kCiAKKyAg
ICBkZWYgZ2V0TG9jYWxMYWJlbHMKKyAgICAgICAgQGxvY2FsTGFiZWxzCisgICAgZW5kCisKICAg
ICBkZWYgZW50ZXJBc20KLSAgICAgICAgQG91dHAucHV0cyAiT0ZGTElORV9BU01fQkVHSU4iIGlm
ICEkZW1pdFdpbkFzbQorICAgICAgICBAb3V0cC5wdXRzICJPRkZMSU5FX0FTTV9CRUdJTiIgaWYg
ISRlbWl0V2luQXNtICYmICEkZW1pdE9ubGluZUFzbQogCi0gICAgICAgIGlmICEkZW1pdFdpbkFz
bQotICAgICAgICAgICAgQG91dHAucHV0cyAiT0ZGTElORV9BU01fR0xPQkFMX0xBQkVMKGxsaW50
UENSYW5nZVN0YXJ0KSIKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcHV0c1Byb2MoImxsaW50
UENSYW5nZVN0YXJ0IiwgIiIpCi0gICAgICAgICAgICBwdXRzUHJvY0VuZElmTmVlZGVkCisgICAg
ICAgIGlmICEkZW1pdFdpbkFzbSAmJiAhJGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgIEBvdXRw
LnB1dHMgIk9GRkxJTkVfQVNNX0dMT0JBTF9MQUJFTChsbGludE9mZmxpbmVQQ1JhbmdlU3RhcnQp
IgorICAgICAgICBlbHNpZiAhJGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgIHB1dHNQcm9jKCJs
bGludE9mZmxpbmVQQ1JhbmdlU3RhcnQiLCAiIikKICAgICAgICAgZW5kCisgICAgICAgIHB1dHNQ
cm9jRW5kSWZOZWVkZWQgaWYgJGVtaXRXaW5Bc20gfHwgJGVtaXRPbmxpbmVBc20KICAgICAgICAg
QHN0YXRlID0gOmFzbQogICAgICAgICBTb3VyY2VGaWxlLm91dHB1dERvdEZpbGVMaXN0KEBvdXRw
KSBpZiAkZW5hYmxlRGVidWdBbm5vdGF0aW9ucwogICAgIGVuZAogICAgIAogICAgIGRlZiBsZWF2
ZUFzbQotICAgICAgICBwdXRzUHJvY0VuZElmTmVlZGVkIGlmICRlbWl0V2luQXNtCi0gICAgICAg
IGlmICEkZW1pdFdpbkFzbQotICAgICAgICAgICAgQG91dHAucHV0cyAiT0ZGTElORV9BU01fR0xP
QkFMX0xBQkVMKGxsaW50UENSYW5nZUVuZCkiCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHB1
dHNQcm9jKCJsbGludFBDUmFuZ2VFbmQiLCAiIikKLSAgICAgICAgICAgIHB1dHNQcm9jRW5kSWZO
ZWVkZWQKKyAgICAgICAgaWYgISRlbWl0V2luQXNtICYmICEkZW1pdE9ubGluZUFzbQorICAgICAg
ICAgICAgQG91dHAucHV0cyAiT0ZGTElORV9BU01fR0xPQkFMX0xBQkVMKGxsaW50T2ZmbGluZVBD
UmFuZ2VFbmQpIgorICAgICAgICBlbHNpZiAhJGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgIHB1
dHNQcm9jKCJsbGludE9mZmxpbmVQQ1JhbmdlRW5kIiwgIiIpCiAgICAgICAgIGVuZAorICAgICAg
ICBwdXRzUHJvY0VuZElmTmVlZGVkIGlmICRlbWl0V2luQXNtIHx8ICRlbWl0T25saW5lQXNtCiAg
ICAgICAgIHB1dHNMYXN0Q29tbWVudAotICAgICAgICBAZGVmZXJyZWRBY3Rpb25zLmVhY2ggewor
ICAgICAgICBAYXNtRGVmZXJyZWRBY3Rpb25zLmVhY2ggewogICAgICAgICAgICAgfCBhY3Rpb24g
fAogICAgICAgICAgICAgYWN0aW9uLmNhbGwoKQogICAgICAgICB9Ci0gICAgICAgIEBvdXRwLnB1
dHMgIk9GRkxJTkVfQVNNX0VORCIgaWYgISRlbWl0V2luQXNtCisgICAgICAgIEBvdXRwLnB1dHMg
Ik9GRkxJTkVfQVNNX0VORCIgaWYgISRlbWl0V2luQXNtICYmICEkZW1pdE9ubGluZUFzbQogICAg
ICAgICBAc3RhdGUgPSA6Y3BwCiAgICAgZW5kCiAgICAgCi0gICAgZGVmIGRlZmVyQWN0aW9uKCZw
cm9jKQotICAgICAgICBAZGVmZXJyZWRBY3Rpb25zIDw8IHByb2MKKyAgICBkZWYgYXNtRGVmZXJB
Y3Rpb24oJnByb2MpCisgICAgICAgIEBhc21EZWZlcnJlZEFjdGlvbnMgPDwgcHJvYwogICAgIGVu
ZAogICAgIAorICAgIGRlZiBwcm9jRWFybHlEZWZlckFjdGlvbigmcHJvYykKKyAgICAgICAgQHBy
b2NFYXJseURlZmVycmVkQWN0aW9ucyA8PCBwcm9jCisgICAgZW5kCisKKyAgICBkZWYgcHJvY0xh
dGVEZWZlckFjdGlvbigmcHJvYykKKyAgICAgICAgQHByb2NMYXRlRGVmZXJyZWRBY3Rpb25zIDw8
IHByb2MKKyAgICBlbmQKKwogICAgIGRlZiBuZXdVSUQKICAgICAgICAgQGNvdW50ICs9IDEKICAg
ICAgICAgQGNvdW50CkBAIC0xNjksNiArMTgzLDcgQEAgY2xhc3MgQXNzZW1ibGVyCiAgICAgCiAg
ICAgZGVmIHB1dHMoKmxpbmUpCiAgICAgICAgIHJhaXNlIHVubGVzcyBAc3RhdGUgPT0gOmFzbQor
ICAgICAgICByYWlzZSB1bmxlc3MgISRlbWl0T25saW5lQXNtCiAgICAgICAgIGlmICEkZW1pdFdp
bkFzbQogICAgICAgICAgICAgQG91dHAucHV0cyhmb3JtYXREdW1wKCIgICAgXCJcXHQiICsgbGlu
ZS5qb2luKCcnKSArICJcXG5cIiIsIGxhc3RDb21tZW50KSkKICAgICAgICAgZWxzZQpAQCAtMTg5
LDQxICsyMDQsOTMgQEAgY2xhc3MgQXNzZW1ibGVyCiAgICAgZW5kCiAKICAgICBkZWYgcHV0c1By
b2MobGFiZWwsIGNvbW1lbnQpCi0gICAgICAgIHJhaXNlIHVubGVzcyAkZW1pdFdpbkFzbQotICAg
ICAgICBAb3V0cC5wdXRzKGZvcm1hdER1bXAoIiN7bGFiZWx9IFBST0MgUFVCTElDIiwgY29tbWVu
dCkpCisgICAgICAgICAgaWYgJGVtaXRXaW5Bc20KKyAgICAgICAgICAgICAgQG91dHAucHV0cyhm
b3JtYXREdW1wKCIje2xhYmVsfSBQUk9DIFBVQkxJQyIsIGNvbW1lbnQpKQorICAgICAgICAgIGVs
c2lmICRlbWl0T25saW5lQXNtCisgICAgICAgICAgICAgIEBvdXRwLnB1dHMoInN0YXRpYyBOZXZl
ckRlc3Ryb3llZE1hY3JvQXNzZW1ibGVyQ29kZVJlZiAqI3tsYWJlbH0obmV3IE5ldmVyRGVzdHJv
eWVkTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKChbJl0oKSB7ICIpCisgICAgICAgICAgICAgIEBvdXRw
LnB1dHMoIiAgICBDQ2FsbEhlbHBlcnMgaml0OyIpCisgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICAgIGVuZAogICAgICAgICBAbGFzdGxhYmVsID0gbGFiZWwKICAg
ICBlbmQKIAogICAgIGRlZiBwdXRzUHJvY0VuZElmTmVlZGVkCi0gICAgICAgIHJhaXNlIHVubGVz
cyAkZW1pdFdpbkFzbQotICAgICAgICBpZiBAbGFzdGxhYmVsICE9ICIiCi0gICAgICAgICAgICBA
b3V0cC5wdXRzKCIje0BsYXN0bGFiZWx9IEVORFAiKQorICAgICAgICBpZiAkZW1pdFdpbkFzbQor
ICAgICAgICAgICAgaWYgQGxhc3RsYWJlbCAhPSAiIgorICAgICAgICAgICAgICAgIEBvdXRwLnB1
dHMoIiN7QGxhc3RsYWJlbH0gRU5EUCIpCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZWxzaWYg
JGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgIGlmIEBsYXN0bGFiZWwgIT0gIiIKKyAgICAgICAg
ICAgICAgICBAcHJvY0Vhcmx5RGVmZXJyZWRBY3Rpb25zLmVhY2ggeworICAgICAgICAgICAgICAg
ICAgICB8IGFjdGlvbiB8CisgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5jYWxsKCkKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQG91dHAucHV0cygiICAgIExpbmtCdWZmZXIg
bGlua0J1ZmZlcihqaXQsIExMSU5UX09OTElORV9DT0RFX0lELCBKSVRDb21waWxhdGlvbk11c3RT
dWNjZWVkKTsiKTsKKyAgICAgICAgICAgICAgICBAcHJvY0xhdGVEZWZlcnJlZEFjdGlvbnMuZWFj
aCB7CisgICAgICAgICAgICAgICAgICAgIHwgYWN0aW9uIHwKKyAgICAgICAgICAgICAgICAgICAg
YWN0aW9uLmNhbGwoKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBAb3V0cC5w
dXRzKCIgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKFwiTExJTlQgI3tAbGFz
dGxhYmVsfVwiKSk7Iik7CisgICAgICAgICAgICAgICAgQG91dHAucHV0cygifSkoKSkpOyIpOwor
ICAgICAgICAgICAgICAgIEBvdXRwLnB1dHMoIih2b2lkKSN7QGxhc3RsYWJlbH07Iik7CisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZW5k
CisgICAgICAgIEBwcm9jRWFybHlEZWZlcnJlZEFjdGlvbnMgPSBbXQorICAgICAgICBAcHJvY0xh
dGVEZWZlcnJlZEFjdGlvbnMgPSBbXQogICAgICAgICBAbGFzdGxhYmVsID0gIiIKICAgICBlbmQK
IAogICAgIGRlZiBwdXRzTGFiZWwobGFiZWxOYW1lLCBpc0dsb2JhbCkKICAgICAgICAgcmFpc2Ug
dW5sZXNzIEBzdGF0ZSA9PSA6YXNtCiAgICAgICAgIEBudW1HbG9iYWxMYWJlbHMgKz0gMQotICAg
ICAgICBwdXRzUHJvY0VuZElmTmVlZGVkIGlmICRlbWl0V2luQXNtIGFuZCBpc0dsb2JhbAorICAg
ICAgICBwdXRzUHJvY0VuZElmTmVlZGVkIGlmICgkZW1pdFdpbkFzbSB8fCAkZW1pdE9ubGluZUFz
bSkgYW5kIGlzR2xvYmFsCiAgICAgICAgIHB1dHNOZXdsaW5lU3BhY2VySWZBcHByb3ByaWF0ZSg6
Z2xvYmFsKQogICAgICAgICBAaW50ZXJuYWxDb21tZW50ID0gJGVuYWJsZUxhYmVsQ291bnRDb21t
ZW50cyA/ICJHbG9iYWwgTGFiZWwgI3tAbnVtR2xvYmFsTGFiZWxzfSIgOiBuaWwKICAgICAgICAg
aWYgaXNHbG9iYWwKLSAgICAgICAgICAgIGlmICEkZW1pdFdpbkFzbQorICAgICAgICAgICAgaWYg
ISRlbWl0V2luQXNtICYmICEkZW1pdE9ubGluZUFzbQogICAgICAgICAgICAgICAgIEBvdXRwLnB1
dHMoZm9ybWF0RHVtcCgiT0ZGTElORV9BU01fR0xPQkFMX0xBQkVMKCN7bGFiZWxOYW1lfSkiLCBs
YXN0Q29tbWVudCkpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcHV0c1Byb2Mo
bGFiZWxOYW1lLCBsYXN0Q29tbWVudCkKICAgICAgICAgICAgIGVuZCAgICAgICAgICAgIAogICAg
ICAgICBlbHNpZiAvXEFsbGludF9vcF8vLm1hdGNoKGxhYmVsTmFtZSkKLSAgICAgICAgICAgIGlm
ICEkZW1pdFdpbkFzbQotICAgICAgICAgICAgICAgIEBvdXRwLnB1dHMoZm9ybWF0RHVtcCgiT0ZG
TElORV9BU01fT1BDT0RFX0xBQkVMKG9wXyN7JH4ucG9zdF9tYXRjaH0pIiwgbGFzdENvbW1lbnQp
KQorICAgICAgICAgICAgb3BMYWJlbCA9ICJvcF8jeyR+LnBvc3RfbWF0Y2h9IgorICAgICAgICAg
ICAgQGxvY2FsTGFiZWxzIDw8IG9wTGFiZWwKKyAgICAgICAgICAgIGlmICEkZW1pdFdpbkFzbSAm
JiAhJGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgICAgICBAb3V0cC5wdXRzKGZvcm1hdER1bXAo
Ik9GRkxJTkVfQVNNX09QQ09ERV9MQUJFTCgje29wTGFiZWx9KSIsIGxhc3RDb21tZW50KSkKKyAg
ICAgICAgICAgIGVsc2lmICRlbWl0T25saW5lQXNtCisgICAgICAgICAgICAgICAgQG91dHAucHV0
cygiI2lmIFVTRShMTElOVF9FTUJFRERFRF9PUENPREVfSUQpIik7CisgICAgICAgICAgICAgICAg
IyBGSVhNRSBUaGlzIHdpbGwgZGlzYXNzZW1ibGUgdGVycmlibHkgb24geDg2ISBJbnN0ZWFkIG9m
IGp1c3QKKyAgICAgICAgICAgICAgICAjIGR1bXBpbmcgYSBudW1iZXIgd2Ugc2hvdWxkIHVzZSBi
a3B0ICNpbW0gb24gQVJNLCBhbmQgSU5UICNpbW04CisgICAgICAgICAgICAgICAgIyAodHdvIG9m
IHRoZW0pIG9uIHg4NiwgYW5kIHRlYWNoIHRoZSBjb2RlIHRvIG1hc2sgb3V0IHRoZQorICAgICAg
ICAgICAgICAgICMgbm9uLWltbWVkaWF0ZSBiaXRzIHdoZW4gdHJ5aW5nIHRvIGdldE9wY29kZUlE
LiBJdCdsbCBzdGlsbAorICAgICAgICAgICAgICAgICMgbG9hZCA0IGJ5dGVzLCBidXQgdGhlbiBt
YXNrIC8gc2hpZnQgdGhlIHZhbHVlcyB0byBnZXQgdGhlCisgICAgICAgICAgICAgICAgIyBvcGNv
ZGUgSUQuCisgICAgICAgICAgICAgICAgQG91dHAucHV0cygiICAgIGppdC51bmNoZWNrZWQzMihz
dGF0aWNfY2FzdDxpbnQ+KCN7b3BMYWJlbH0pKTsiKTsKKyAgICAgICAgICAgICAgICBAb3V0cC5w
dXRzKCIjZW5kaWYgLy8gVVNFKExMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkiKTsKKyAgICAgICAg
ICAgICAgICBAb3V0cC5wdXRzKGZvcm1hdER1bXAoIiAgICBsYWJlbF8je29wTGFiZWx9ID0gaml0
LmxhYmVsKCk7IiwgbGFzdENvbW1lbnQpKTsKKyAgICAgICAgICAgICAgICBwcm9jTGF0ZURlZmVy
QWN0aW9uIHsKKyAgICAgICAgICAgICAgICAgICAgQG91dHAucHV0cygiICAgIEFTU0VSVCghb3Bj
b2RlTWFwWyN7b3BMYWJlbH1dKTsiKQorICAgICAgICAgICAgICAgICAgICBAb3V0cC5wdXRzKCIg
ICAgb3Bjb2RlTWFwWyN7b3BMYWJlbH1dID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsXyN7
b3BMYWJlbH0pLmV4ZWN1dGFibGVBZGRyZXNzKCk7IikKKyAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbGFiZWwgPSAibGxpbnRfIiArICJvcF8jeyR+
LnBvc3RfbWF0Y2h9IgogICAgICAgICAgICAgICAgIEBvdXRwLnB1dHMoZm9ybWF0RHVtcCgiICBf
I3tsYWJlbH06IiwgbGFzdENvbW1lbnQpKQogICAgICAgICAgICAgZW5kICAgICAgICAgICAgCiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGlmICEkZW1pdFdpbkFzbQorICAgICAgICAgICAgQGxv
Y2FsTGFiZWxzIDw8IGxhYmVsTmFtZQorICAgICAgICAgICAgaWYgISRlbWl0V2luQXNtICYmICEk
ZW1pdE9ubGluZUFzbQogICAgICAgICAgICAgICAgIEBvdXRwLnB1dHMoZm9ybWF0RHVtcCgiT0ZG
TElORV9BU01fR0xVRV9MQUJFTCgje2xhYmVsTmFtZX0pIiwgbGFzdENvbW1lbnQpKQorICAgICAg
ICAgICAgZWxzaWYgJGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgICAgICBpZiBsYWJlbE5hbWUg
IT0gInJlbGF0aXZlUENCYXNlIgorICAgICAgICAgICAgICAgICAgICBAb3V0cC5wdXRzKGZvcm1h
dER1bXAoIiAgICBsYWJlbF8je2xhYmVsTmFtZX0gPSBqaXQubGFiZWwoKTsiLCBsYXN0Q29tbWVu
dCkpOworICAgICAgICAgICAgICAgICAgICBwcm9jTGF0ZURlZmVyQWN0aW9uIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIEBvdXRwLnB1dHMoIiAgICBBU1NFUlQoIW9wY29kZU1hcFsje2xhYmVs
TmFtZX1dKTsiKQorICAgICAgICAgICAgICAgICAgICAgICAgQG91dHAucHV0cygiICAgIG9wY29k
ZU1hcFsje2xhYmVsTmFtZX1dID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsXyN7bGFiZWxO
YW1lfSkuZXhlY3V0YWJsZUFkZHJlc3MoKTsiKQorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgQG91dHAu
cHV0cyhmb3JtYXREdW1wKCIgIF8je2xhYmVsTmFtZX06IiwgbGFzdENvbW1lbnQpKQogICAgICAg
ICAgICAgZW5kCkBAIC0yMzQsMzQgKzMwMSw0NCBAQCBjbGFzcyBBc3NlbWJsZXIKICAgICBkZWYg
cHV0c0xvY2FsTGFiZWwobGFiZWxOYW1lKQogICAgICAgICByYWlzZSB1bmxlc3MgQHN0YXRlID09
IDphc20KICAgICAgICAgQG51bUxvY2FsTGFiZWxzICs9IDEKKyAgICAgICAgQGxvY2FsTGFiZWxz
IDw8IGxhYmVsTmFtZQogICAgICAgICBAb3V0cC5wdXRzKCJcbiIpCiAgICAgICAgIEBpbnRlcm5h
bENvbW1lbnQgPSAkZW5hYmxlTGFiZWxDb3VudENvbW1lbnRzID8gIkxvY2FsIExhYmVsICN7QG51
bUxvY2FsTGFiZWxzfSIgOiBuaWwKLSAgICAgICAgaWYgISRlbWl0V2luQXNtCisgICAgICAgIGlm
ICEkZW1pdFdpbkFzbSAmJiAhJGVtaXRPbmxpbmVBc20KICAgICAgICAgICAgIEBvdXRwLnB1dHMo
Zm9ybWF0RHVtcCgiICBPRkZMSU5FX0FTTV9MT0NBTF9MQUJFTCgje2xhYmVsTmFtZX0pIiwgbGFz
dENvbW1lbnQpKQorICAgICAgICBlbHNpZiAkZW1pdE9ubGluZUFzbQorICAgICAgICAgICAgQG91
dHAucHV0cyhmb3JtYXREdW1wKCIgICAgbGFiZWxfI3tsYWJlbE5hbWV9ID0gaml0LmxhYmVsKCk7
CisiLCBsYXN0Q29tbWVudCkpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIEBvdXRwLnB1dHMo
Zm9ybWF0RHVtcCgiICAje2xhYmVsTmFtZX06IiwgbGFzdENvbW1lbnQpKQogICAgICAgICBlbmQK
ICAgICBlbmQKIAogICAgIGRlZiBzZWxmLmV4dGVybkxhYmVsUmVmZXJlbmNlKGxhYmVsTmFtZSkK
LSAgICAgICAgaWYgISRlbWl0V2luQXNtCisgICAgICAgIGlmICEkZW1pdFdpbkFzbSAmJiAhJGVt
aXRPbmxpbmVBc20KICAgICAgICAgICAgICJcIiBMT0NBTF9SRUZFUkVOQ0UoI3tsYWJlbE5hbWV9
KSBcIiIKKyAgICAgICAgZWxzaWYgJGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgICImI3tsYWJl
bE5hbWV9IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICAiI3tsYWJlbE5hbWV9IgogICAgICAg
ICBlbmQKICAgICBlbmQKIAogICAgIGRlZiBzZWxmLmxhYmVsUmVmZXJlbmNlKGxhYmVsTmFtZSkK
LSAgICAgICAgaWYgISRlbWl0V2luQXNtCisgICAgICAgIGlmICEkZW1pdFdpbkFzbSAmJiAhJGVt
aXRPbmxpbmVBc20KICAgICAgICAgICAgICJcIiBMT0NBTF9MQUJFTF9TVFJJTkcoI3tsYWJlbE5h
bWV9KSBcIiIKKyAgICAgICAgZWxzaWYgJGVtaXRPbmxpbmVBc20KKyAgICAgICAgICAgICIje2xh
YmVsTmFtZX0iCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgICJfI3tsYWJlbE5hbWV9IgogICAg
ICAgICBlbmQKICAgICBlbmQKICAgICAKICAgICBkZWYgc2VsZi5sb2NhbExhYmVsUmVmZXJlbmNl
KGxhYmVsTmFtZSkKLSAgICAgICAgaWYgISRlbWl0V2luQXNtCisgICAgICAgIGlmICEkZW1pdFdp
bkFzbSAmJiAhJGVtaXRPbmxpbmVBc20KICAgICAgICAgICAgICJcIiBMT0NBTF9MQUJFTF9TVFJJ
TkcoI3tsYWJlbE5hbWV9KSBcIiIKKyAgICAgICAgZWxzaWYgJGVtaXRPbmxpbmVBc20KKyAgICAg
ICAgICAgICIje2xhYmVsTmFtZX0iCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgICIje2xhYmVs
TmFtZX0iCiAgICAgICAgIGVuZApAQCAtMzQwLDYgKzQxNywxMiBAQCBlbmQKIAogJGVtaXRXaW5B
c20gPSBpc01TVkMgPyBvdXRwdXRGbG5tLmluZGV4KCIuYXNtIikgIT0gbmlsIDogZmFsc2UKICRj
b21tZW50UHJlZml4ID0gJGVtaXRXaW5Bc20gPyAiOyIgOiAiLy8iCiskZW5hYmxlT25saW5lQXNt
ID0gZmFsc2UKKyRvbmxpbmVBc21CYWNrZW5kRm9yID0gbmlsCiskb25saW5lQXNtTG93TGV2ZWxB
U1QgPSBuaWwKKyRvbmxpbmVBc21Db25jcmV0ZVNldHRpbmdzID0gbmlsCiskb25saW5lQXNtTG9j
YWxMYWJlbHMgPSBuaWwKKyRlbWl0T25saW5lQXNtID0gZmFsc2UKIAogaW5wdXRIYXNoID0KICAg
ICAkY29tbWVudFByZWZpeCArICIgb2ZmbGluZWFzbSBpbnB1dCBoYXNoOiAiICsgcGFyc2VIYXNo
KGFzbUZpbGUpICsKQEAgLTM4MywxMSArNDY2LDQ3IEBAIEZpbGUub3BlbihvdXRwdXRGbG5tLCAi
dyIpIHsKIAogICAgICAgICAgICAgbG93TGV2ZWxBU1QgPSBsb3dMZXZlbEFTVC5yZXNvbHZlKGJ1
aWxkT2Zmc2V0c01hcChsb3dMZXZlbEFTVCwgb2Zmc2V0c0xpc3QpKQogICAgICAgICAgICAgbG93
TGV2ZWxBU1QudmFsaWRhdGUKKworICAgICAgICAgICAgaWYgYmFja2VuZCA9PSAiWDg2XzY0IiB8
fCBiYWNrZW5kID09ICJBUk02NCIKKyAgICAgICAgICAgICAgICAkb25saW5lQXNtQmFja2VuZEZv
ciA9IGJhY2tlbmQKKyAgICAgICAgICAgICAgICAkZW5hYmxlT25saW5lQXNtID0gdHJ1ZQorICAg
ICAgICAgICAgICAgICRvbmxpbmVBc21Mb3dMZXZlbEFTVCA9IGxvd0xldmVsQVNUCisgICAgICAg
ICAgICAgICAgJG9ubGluZUFzbUNvbmNyZXRlU2V0dGluZ3MgPSBjb25jcmV0ZVNldHRpbmdzCisg
ICAgICAgICAgICBlbmQKKwogICAgICAgICAgICAgZW1pdENvZGVJbkNvbmZpZ3VyYXRpb24oY29u
Y3JldGVTZXR0aW5ncywgbG93TGV2ZWxBU1QsIGJhY2tlbmQpIHsKICAgICAgICAgICAgICAgICAk
YXNtLmluQXNtIHsKICAgICAgICAgICAgICAgICAgICAgbG93TGV2ZWxBU1QubG93ZXIoYmFja2Vu
ZCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICRl
bmFibGVPbmxpbmVBc20KKyAgICAgICAgICAgICAgICAkb25saW5lQXNtTG9jYWxMYWJlbHMgPSAk
YXNtLmdldExvY2FsTGFiZWxzCisgICAgICAgICAgICBlbmQKICAgICAgICAgfQogICAgIH0KIH0K
KworaWYgJGVuYWJsZU9ubGluZUFzbQorICAgIEZpbGUub3BlbigiTExJbnRPbmxpbmVBc3NlbWJs
eS5oIiwgInciKSB7CisgICAgICAgIHwgb3V0cCB8CisgICAgICAgIGJhY2tlbmQgPSAiT05MSU5F
X0FTU0VNQkxFUiIKKyAgICAgICAgJGVuYWJsZURlYnVnQW5ub3RhdGlvbnMgPSBmYWxzZQorICAg
ICAgICAkb3V0cHV0ID0gb3V0cAorICAgICAgICAkb3V0cHV0LnB1dHMgaW5wdXRIYXNoCisgICAg
ICAgICRlbWl0T25saW5lQXNtID0gdHJ1ZQorICAgICAgICAkYXNtID0gQXNzZW1ibGVyLm5ldygk
b3V0cHV0KQorICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlvbigkb25saW5lQXNtQ29uY3Jl
dGVTZXR0aW5ncywgJG9ubGluZUFzbUxvd0xldmVsQVNULCBiYWNrZW5kKSB7CisgICAgICAgICAg
ICAkb25saW5lQXNtTG9jYWxMYWJlbHMuZWFjaCB7CisgICAgICAgICAgICAgICAgfCBsYWJlbE5h
bWUgfAorICAgICAgICAgICAgICAgIGlmIGxhYmVsTmFtZSAhPSAicmVsYXRpdmVQQ0Jhc2UiCisg
ICAgICAgICAgICAgICAgICAgICRvdXRwdXQucHV0cyAiICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJl
bCBsYWJlbF8je2xhYmVsTmFtZX07IgorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAkYXNtLmluQXNtIHsKKyAgICAgICAgICAgICAgICAkb25saW5lQXNt
TG93TGV2ZWxBU1QubG93ZXIoYmFja2VuZCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRl
bWl0T25saW5lQXNtID0gZmFsc2UKKyAgICAgICAgfQorICAgIH0KK2VuZApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgppbmRleCBmYWY1ZTUwLi5kZjcxYjFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5y
YgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgpAQCAt
MSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsy
OCw3IEBAIHJlcXVpcmUgImFzdCIKIHJlcXVpcmUgIng4NiIKIHJlcXVpcmUgIm1pcHMiCiByZXF1
aXJlICJjbG9vcCIKK3JlcXVpcmUgIm9ubGluZWFzc2VtYmxlciIKIAogQkFDS0VORFMgPQogICAg
IFsKQEAgLTQwLDcgKzQxLDggQEAgQkFDS0VORFMgPQogICAgICAiQVJNdjdfVFJBRElUSU9OQUwi
LAogICAgICAiQVJNNjQiLAogICAgICAiTUlQUyIsCi0gICAgICJDX0xPT1AiCisgICAgICJDX0xP
T1AiLAorICAgICAiT05MSU5FX0FTU0VNQkxFUiIsCiAgICAgXQogCiAjIEtlZXAgdGhlIHNldCBv
ZiB3b3JraW5nIGJhY2tlbmRzIHNlcGFyYXRlIGZyb20gdGhlIHNldCBvZiBiYWNrZW5kcyB0aGF0
IG1pZ2h0IGJlCkBAIC01OSw3ICs2MSw4IEBAIFdPUktJTkdfQkFDS0VORFMgPQogICAgICAiQVJN
djdfVFJBRElUSU9OQUwiLAogICAgICAiQVJNNjQiLAogICAgICAiTUlQUyIsCi0gICAgICJDX0xP
T1AiCisgICAgICJDX0xPT1AiLAorICAgICAiT05MSU5FX0FTU0VNQkxFUiIsCiAgICAgXQogCiBC
QUNLRU5EX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoJyArIEJBQ0tFTkRTLmpvaW4oJyl8KCcp
ICsgJylcXFonKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
b25saW5lYXNzZW1ibGVyLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vb25s
aW5lYXNzZW1ibGVyLnJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmY2Zi
MzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9v
bmxpbmVhc3NlbWJsZXIucmIKQEAgLTAsMCArMSw4NTcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK3JlcXVpcmUgImNvbmZpZyIKKworJG9ubEFzbUluUmVsYXRpdmVQ
Q0Jhc2UgPSBmYWxzZQorCiskb25sQXNtQnJhbmNoQ291bnQgPSAtMQorZGVmIGJyYW5jaE51bWJl
cgorICAgIGNvdW50ID0gJG9ubEFzbUJyYW5jaENvdW50CisgICAgJG9ubEFzbUJyYW5jaENvdW50
ICs9IDEKK2VuZAorCitkZWYgb25sQXNtUmVsYXRpb25hbENvbmRpdGlvbk5hbWVzcGFjZSgpCisg
ICAgY2FzZSAkb25saW5lQXNtQmFja2VuZEZvcgorICAgIHdoZW4gIlg4Nl82NCIKKyAgICAgICAg
Ik1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIgorICAgIHdoZW4gIkFSTTY0IgorICAgICAgICAiTWFj
cm9Bc3NlbWJsZXJBUk02NCIKKyAgICBlbHNlIHJhaXNlICJjYW5ub3QgaGFuZGxlIG9ubGluZSBh
c3NlbWJsZXIgYmFja2VuZCBmb3IgI3skb25saW5lQXNtQmFja2VuZEZvcn0iCisgICAgZW5kCitl
bmQKKworZGVmIG9ubEFzbVJlZ2lzdGVyKG5hbWUpCisgICAgY2FzZSAkb25saW5lQXNtQmFja2Vu
ZEZvcgorICAgIHdoZW4gIlg4Nl82NCIKKyAgICAgICAgIlg4NlJlZ2lzdGVyczo6IiArIG5hbWUK
KyAgICB3aGVuICJBUk02NCIKKyAgICAgICAgIkFSTTY0UmVnaXN0ZXJzOjoiICsgbmFtZQorICAg
IGVsc2UgcmFpc2UgImNhbm5vdCBoYW5kbGUgb25saW5lIGFzc2VtYmxlciBiYWNrZW5kIGZvciAj
eyRvbmxpbmVBc21CYWNrZW5kRm9yfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBTcGVjaWFsUmVn
aXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIG9ubEFzbU9wZXJhbmQoa2luZCkKKyAgICAgICAg
cmFpc2UgdW5sZXNzIEBuYW1lID1+IC9eci8KKyAgICAgICAgY2FzZSBraW5kCisgICAgICAgIHdo
ZW4gOmkzMiwgOnB0ciwgOmk2NAorICAgICAgICAgICAgb25sQXNtUmVnaXN0ZXIoQG5hbWUpCisg
ICAgICAgIGVsc2UgcmFpc2UgImJhZCBraW5kICN7a2luZH0iCisgICAgICAgIGVuZAorICAgIGVu
ZAorICAgIGRlZiBvbmxBc21DYWxsT3BlcmFuZChraW5kKQorICAgICAgICAiI3tvbmxBc21PcGVy
YW5kKDppNjQpfSIKKyAgICBlbmQKK2VuZAorCitjbGFzcyBOb2RlCisgICAgZGVmIG9ubEFzbUxv
YWRPcGVyYW5kKHR5cGUsIGRzdCkKKyAgICAgICAgb25sQXNtT3BlcmFuZCh0eXBlKQorICAgIGVu
ZAorZW5kCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgb25sQXNtR1BSCisgICAgICAgIGNh
c2UgJG9ubGluZUFzbUJhY2tlbmRGb3IKKyAgICAgICAgd2hlbiAiWDg2XzY0IgorICAgICAgICAg
ICAgY2FzZSBuYW1lCisgICAgICAgICAgICB3aGVuICJ0MCIsICJyMCIKKyAgICAgICAgICAgICAg
ICAiZWF4IgorICAgICAgICAgICAgd2hlbiAicjEiCisgICAgICAgICAgICAgICAgImVkeCIKKyAg
ICAgICAgICAgIHdoZW4gImEwIgorICAgICAgICAgICAgICAgICJlZGkiCisgICAgICAgICAgICB3
aGVuICJ0MSIsICJhMSIKKyAgICAgICAgICAgICAgICAiZXNpIgorICAgICAgICAgICAgd2hlbiAi
dDIiLCAiYTIiCisgICAgICAgICAgICAgICAgImVkeCIKKyAgICAgICAgICAgIHdoZW4gInQzIiwg
ImEzIgorICAgICAgICAgICAgICAgICJlY3giCisgICAgICAgICAgICB3aGVuICJ0NCIKKyAgICAg
ICAgICAgICAgICAicjgiCisgICAgICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgICAgICAgICAi
cjEwIgorICAgICAgICAgICAgd2hlbiAiY3NyMCIKKyAgICAgICAgICAgICAgICAiZWJ4IgorICAg
ICAgICAgICAgd2hlbiAiY3NyMSIKKyAgICAgICAgICAgICAgICAicjEyIgorICAgICAgICAgICAg
d2hlbiAiY3NyMiIKKyAgICAgICAgICAgICAgICAicjEzIgorICAgICAgICAgICAgd2hlbiAiY3Ny
MyIKKyAgICAgICAgICAgICAgICAicjE0IgorICAgICAgICAgICAgd2hlbiAiY3NyNCIKKyAgICAg
ICAgICAgICAgICAicjE1IgorICAgICAgICAgICAgd2hlbiAiY3NyNSIKKyAgICAgICAgICAgICAg
ICAicjE0IgorICAgICAgICAgICAgd2hlbiAiY3NyNiIKKyAgICAgICAgICAgICAgICAicjE1Igor
ICAgICAgICAgICAgd2hlbiAiY2ZyIgorICAgICAgICAgICAgICAgICJlYnAiCisgICAgICAgICAg
ICB3aGVuICJzcCIKKyAgICAgICAgICAgICAgICAiZXNwIgorICAgICAgICAgICAgZWxzZSByYWlz
ZSAiYmFkIHJlZ2lzdGVyIG5hbWUgI3tAbmFtZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJBUk02NCIKKyAgICAgICAgICAgIGNhc2UgbmFt
ZQorICAgICAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiCisgICAgICAgICAgICAgICAgIngw
IgorICAgICAgICAgICAgd2hlbiAidDEiLCAiYTEiLCAicjEiCisgICAgICAgICAgICAgICAgIngx
IgorICAgICAgICAgICAgd2hlbiAidDIiLCAiYTIiCisgICAgICAgICAgICAgICAgIngyIgorICAg
ICAgICAgICAgd2hlbiAidDMiLCAiYTMiCisgICAgICAgICAgICAgICAgIngzIgorICAgICAgICAg
ICAgd2hlbiAidDQiCisgICAgICAgICAgICAgICAgIng0IgorICAgICAgICAgICAgd2hlbiAidDUi
CisgICAgICAgICAgICAgICAgIng1IgorICAgICAgICAgICAgd2hlbiAiY2ZyIgorICAgICAgICAg
ICAgICAgICJ4MjkiCisgICAgICAgICAgICB3aGVuICJjc3IwIgorICAgICAgICAgICAgICAgICJ4
MTkiCisgICAgICAgICAgICB3aGVuICJjc3IxIgorICAgICAgICAgICAgICAgICJ4MjAiCisgICAg
ICAgICAgICB3aGVuICJjc3IyIgorICAgICAgICAgICAgICAgICJ4MjEiCisgICAgICAgICAgICB3
aGVuICJjc3IzIgorICAgICAgICAgICAgICAgICJ4MjIiCisgICAgICAgICAgICB3aGVuICJjc3I0
IgorICAgICAgICAgICAgICAgICJ4MjMiCisgICAgICAgICAgICB3aGVuICJjc3I1IgorICAgICAg
ICAgICAgICAgICJ4MjQiCisgICAgICAgICAgICB3aGVuICJjc3I2IgorICAgICAgICAgICAgICAg
ICJ4MjUiCisgICAgICAgICAgICB3aGVuICJjc3I3IgorICAgICAgICAgICAgICAgICJ4MjYiCisg
ICAgICAgICAgICB3aGVuICJjc3I4IgorICAgICAgICAgICAgICAgICJ4MjciCisgICAgICAgICAg
ICB3aGVuICJjc3I5IgorICAgICAgICAgICAgICAgICJ4MjgiCisgICAgICAgICAgICB3aGVuICJz
cCIKKyAgICAgICAgICAgICAgICAic3AiCisgICAgICAgICAgICB3aGVuICJsciIKKyAgICAgICAg
ICAgICAgICAieDMwIgorICAgICAgICAgICAgZWxzZSByYWlzZSAiYmFkIHJlZ2lzdGVyIG5hbWUg
I3tAbmFtZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgIGVuZAorICAgICAg
ICBlbHNlIHJhaXNlICJjYW5ub3QgaGFuZGxlIG9ubGluZSBhc3NlbWJsZXIgYmFja2VuZCBmb3Ig
I3skb25saW5lQXNtQmFja2VuZEZvcn0iCisgICAgICAgIGVuZAorICAgIGVuZAorCisgICAgZGVm
IG9ubEFzbU9wZXJhbmQoa2luZCkKKyAgICAgICAgb25sQXNtUmVnaXN0ZXIob25sQXNtR1BSKQor
ICAgIGVuZAorCisgICAgZGVmIG9ubEFzbUNhbGxPcGVyYW5kKGtpbmQpCisgICAgICAgICIje29u
bEFzbU9wZXJhbmQoOnB0cil9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQUmVnaXN0ZXJJRAor
ICAgIGRlZiBvbmxBc21GUFIKKyAgICAgICAgY2FzZSAkb25saW5lQXNtQmFja2VuZEZvcgorICAg
ICAgICB3aGVuICJYODZfNjQiCisgICAgICAgICAgICBjYXNlIG5hbWUKKyAgICAgICAgICAgIHdo
ZW4gImZ0MCIsICJmYTAiLCAiZnIiCisgICAgICAgICAgICAgICAgInhtbTAiCisgICAgICAgICAg
ICB3aGVuICJmdDEiLCAiZmExIgorICAgICAgICAgICAgICAgICJ4bW0xIgorICAgICAgICAgICAg
d2hlbiAiZnQyIiwgImZhMiIKKyAgICAgICAgICAgICAgICAieG1tMiIKKyAgICAgICAgICAgIHdo
ZW4gImZ0MyIsICJmYTMiCisgICAgICAgICAgICAgICAgInhtbTMiCisgICAgICAgICAgICB3aGVu
ICJmdDQiCisgICAgICAgICAgICAgICAgInhtbTQiCisgICAgICAgICAgICB3aGVuICJmdDUiCisg
ICAgICAgICAgICAgICAgInhtbTUiCisgICAgICAgICAgICBlbHNlIHJhaXNlICJiYWQgcmVnaXN0
ZXIgI3tuYW1lfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgZW5kCisgICAg
ICAgIHdoZW4gIkFSTTY0IgorICAgICAgICAgICAgY2FzZSBuYW1lCisgICAgICAgICAgICB3aGVu
ICJmdDAiLCAiZnIiLCAiZmEwIgorICAgICAgICAgICAgICAgICJxMCIKKyAgICAgICAgICAgIHdo
ZW4gImZ0MSIsICJmYTEiCisgICAgICAgICAgICAgICAgInExIgorICAgICAgICAgICAgd2hlbiAi
ZnQyIiwgImZhMiIKKyAgICAgICAgICAgICAgICAicTIiCisgICAgICAgICAgICB3aGVuICJmdDMi
LCAiZmEzIgorICAgICAgICAgICAgICAgICJxMyIKKyAgICAgICAgICAgIHdoZW4gImZ0NCIKKyAg
ICAgICAgICAgICAgICAicTQiCisgICAgICAgICAgICB3aGVuICJmdDUiCisgICAgICAgICAgICAg
ICAgInE1IgorICAgICAgICAgICAgd2hlbiAiY3NmcjAiCisgICAgICAgICAgICAgICAgInE4Igor
ICAgICAgICAgICAgd2hlbiAiY3NmcjEiCisgICAgICAgICAgICAgICAgInE5IgorICAgICAgICAg
ICAgd2hlbiAiY3NmcjIiCisgICAgICAgICAgICAgICAgInExMCIKKyAgICAgICAgICAgIHdoZW4g
ImNzZnIzIgorICAgICAgICAgICAgICAgICJxMTEiCisgICAgICAgICAgICB3aGVuICJjc2ZyNCIK
KyAgICAgICAgICAgICAgICAicTEyIgorICAgICAgICAgICAgd2hlbiAiY3NmcjUiCisgICAgICAg
ICAgICAgICAgInExMyIKKyAgICAgICAgICAgIHdoZW4gImNzZnI2IgorICAgICAgICAgICAgICAg
ICJxMTQiCisgICAgICAgICAgICB3aGVuICJjc2ZyNyIKKyAgICAgICAgICAgICAgICAicTE1Igor
ICAgICAgICAgICAgZWxzZSByYWlzZSAiYmFkIHJlZ2lzdGVyICN7bmFtZX0gYXQgI3tjb2RlT3Jp
Z2luU3RyaW5nfSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbHNlIHJhaXNlICJjYW5ub3Qg
aGFuZGxlIG9ubGluZSBhc3NlbWJsZXIgYmFja2VuZCBmb3IgI3skb25saW5lQXNtQmFja2VuZEZv
cn0iCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIGRlZiBvbmxBc21PcGVyYW5kKGtpbmQpCisg
ICAgICAgIHJhaXNlIHVubGVzcyBraW5kID09IDpkb3VibGUKKyAgICAgICAgb25sQXNtUmVnaXN0
ZXIob25sQXNtRlBSKQorICAgIGVuZAorICAgIGRlZiBvbmxBc21DYWxsT3BlcmFuZChraW5kKQor
ICAgICAgICAiI3tvbmxBc21PcGVyYW5kKGtpbmQpfSIKKyAgICBlbmQKK2VuZAorCitkZWYgb25s
QXNtU3VmZml4KGtpbmQpCisgICAgY2FzZSBraW5kCisgICAgd2hlbiA6aTMyCisgICAgICAgICIz
MiIKKyAgICB3aGVuIDpwdHIKKyAgICAgICAgIlB0ciIKKyAgICB3aGVuIDppNjQKKyAgICAgICAg
IjY0IgorICAgIHdoZW4gOmRvdWJsZQorICAgICAgICAiRG91YmxlIgorICAgIGVsc2UgcmFpc2Ug
ImJhZCBraW5kICN7a2luZH0iCisgICAgZW5kCitlbmQKKworY2xhc3MgSW1tZWRpYXRlCisgICAg
ZGVmIG9ubEFzbU9wZXJhbmQoa2luZCkKKyAgICAgICAgaWYgLTB4ODAwMDAwMDAgPD0gdmFsdWUg
JiYgdmFsdWUgPD0gMHg3ZmZmZmZmZgorICAgICAgICAgICAgIk1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoI3t2YWx1ZX0pIgorICAgICAgICBlbHNpZiAwIDw9IHZhbHVlCisgICAgICAgICAg
ICAiTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NCgje3ZhbHVlfVVMTCkiCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICJNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KCN7dmFsdWV9TEwp
IgorICAgICAgICBlbmQKKyAgICBlbmQKKyAgICBkZWYgb25sQXNtQ2FsbE9wZXJhbmQoa2luZCkK
KyAgICAgICAgcmFpc2UgImNhbGwgb3BlcmFuZCBpbW1lZGlhdGUgI3t2YWx1ZX0iCisgICAgZW5k
CitlbmQKKworY2xhc3MgQWRkcmVzcworICAgIGRlZiBvbmxBc21BZGRyZXNzT3BlcmFuZChhZGRy
ZXNzS2luZCkKKyAgICAgICAgIkNDYWxsSGVscGVyczo6QWRkcmVzcygje2Jhc2Uub25sQXNtT3Bl
cmFuZChhZGRyZXNzS2luZCl9LCAje29mZnNldC52YWx1ZX0pIgorICAgIGVuZAorICAgIGRlZiBv
bmxBc21PcGVyYW5kKGtpbmQpCisgICAgICAgICIje29ubEFzbUFkZHJlc3NPcGVyYW5kKDpwdHIp
fSIKKyAgICBlbmQKKyAgICBkZWYgb25sQXNtQ2FsbE9wZXJhbmQoa2luZCkKKyAgICAgICAgIiN7
b25sQXNtT3BlcmFuZChraW5kKX0iCisgICAgZW5kCisgICAgZGVmIG9ubEFzbUVtaXRMZWEoZGVz
dGluYXRpb24sIGtpbmQpCisgICAgICAgICRhc20ucHV0YyAiaml0LmFkZCN7b25sQXNtU3VmZml4
KGtpbmQpfShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKCN7b2Zmc2V0LnZhbHVlfSksICN7
YmFzZS5vbmxBc21PcGVyYW5kKGtpbmQpfSwgI3tkZXN0aW5hdGlvbi5vbmxBc21PcGVyYW5kKGtp
bmQpfSk7IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiBzY2FsZUVu
dW0oKQorICAgICAgICBjYXNlIHNjYWxlCisgICAgICAgIHdoZW4gMQorICAgICAgICAgICAgIk1h
Y3JvQXNzZW1ibGVyOjpUaW1lc09uZSIKKyAgICAgICAgd2hlbiAyCisgICAgICAgICAgICAiTWFj
cm9Bc3NlbWJsZXI6OlRpbWVzVHdvIgorICAgICAgICB3aGVuIDQKKyAgICAgICAgICAgICJNYWNy
b0Fzc2VtYmxlcjo6VGltZXNGb3VyIgorICAgICAgICB3aGVuIDgKKyAgICAgICAgICAgICJNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2Ug
ImludmFsaWQgc2NhbGUgI3tzY2FsZX0iCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIGRlZiBv
bmxBc21BZGRyZXNzT3BlcmFuZChraW5kKQorICAgICAgICAiQ0NhbGxIZWxwZXJzOjpCYXNlSW5k
ZXgoI3tiYXNlLm9ubEFzbU9wZXJhbmQoa2luZCl9LCAje2luZGV4Lm9ubEFzbU9wZXJhbmQoa2lu
ZCl9LCAje3NjYWxlRW51bX0sICN7b2Zmc2V0LnZhbHVlfSkiCisgICAgZW5kICAgIAorICAgIGRl
ZiBvbmxBc21PcGVyYW5kKGtpbmQpCisgICAgICAgIG9ubEFzbUFkZHJlc3NPcGVyYW5kKDpwdHIp
CisgICAgZW5kCisgICAgZGVmIG9ubEFzbUNhbGxPcGVyYW5kKGtpbmQpCisgICAgICAgICIje29u
bEFzbU9wZXJhbmQoa2luZCl9IgorICAgIGVuZAorICAgIGRlZiBvbmxBc21FbWl0TGVhKGRlc3Rp
bmF0aW9uLCBraW5kKQorICAgICAgICAkYXNtLnB1dGMgImppdC5nZXRFZmZlY3RpdmVBZGRyZXNz
KENDYWxsSGVscGVyczo6QmFzZUluZGV4KCN7YmFzZS5vbmxBc21PcGVyYW5kKGtpbmQpfSwgI3tp
bmRleC5vbmxBc21PcGVyYW5kKGtpbmQpfSwgI3tzY2FsZUVudW19LCAje29mZnNldC52YWx1ZX0p
LCAje2Rlc3RpbmF0aW9uLm9ubEFzbU9wZXJhbmQoa2luZCl9KTsiCisgICAgZW5kCitlbmQKKwor
Y2xhc3MgTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgb25sQXNtQ2FsbE9wZXJhbmQoa2luZCkKKyAg
ICAgICAgIiN7YXNtTGFiZWx9IiAjIGNhbGwgYW5kIGp1bXAgdG8gQysrIGNvZGUgb3V0c2lkZSBv
ZiBsbGludC4KKyAgICBlbmQKKyAgICBkZWYgb25sQXNtTG9hZE9wZXJhbmQoa2luZCwgZHN0KQor
ICAgICAgICAkYXNtLnB1dGMgImppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigj
e2FzbUxhYmVsfSksICN7ZHN0Lm9ubEFzbU9wZXJhbmQoOnB0cil9KTsiCisgICAgICAgIGlmIG9m
ZnNldCAhPSAwCisgICAgICAgICAgICAiQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKCN7ZHN0Lm9ubEFz
bU9wZXJhbmQoOnB0cil9LCAje29mZnNldH0pIgorICAgICAgICBlbHNlCisgICAgICAgICAgICAi
I3tkc3Qub25sQXNtT3BlcmFuZCg6cHRyKX0iCisgICAgICAgIGVuZAorICAgIGVuZAorZW5kCisK
K2NsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgb25sQXNtQ2FsbE9wZXJhbmQoa2lu
ZCkKKyAgICAgICAgIiN7YXNtTGFiZWx9IgorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0
aW9uCisgICAgCisgICAgZGVmIG9ubEFzbU9wZXJhbmRzKCpraW5kcykKKyAgICAgICAgcmFpc2Ug
dW5sZXNzIGtpbmRzLnNpemUgPT0gb3BlcmFuZHMuc2l6ZQorICAgICAgICByZXN1bHQgPSBbXQor
ICAgICAgICBraW5kcy5zaXplLnRpbWVzIHsKKyAgICAgICAgICAgIHwgaWR4IHwKKyAgICAgICAg
ICAgIGkgPSBpZHgKKyAgICAgICAgICAgIHJlc3VsdCA8PCBvcGVyYW5kc1tpXS5vbmxBc21PcGVy
YW5kKGtpbmRzW2ldKQorICAgICAgICB9CisgICAgICAgIHJlc3VsdC5qb2luKCIsICIpCisgICAg
ZW5kCisgICAgCisgICAgZGVmIG9ubEFzbUxvYWRPcGVyYW5kcyhzcmNLaW5kLCBkc3RLaW5kKQor
ICAgICAgICAiI3tvcGVyYW5kc1swXS5vbmxBc21Mb2FkT3BlcmFuZChzcmNLaW5kLCBvcGVyYW5k
c1sxXSl9LCAje29wZXJhbmRzWzFdLm9ubEFzbU9wZXJhbmQoZHN0S2luZCl9IgorICAgIGVuZAor
CisgICAgZGVmIGdldEltcGxpY2l0T3BlcmFuZFN0cmluZworICAgICAgICAiIgorICAgIGVuZAor
ICAgIAorICAgIGRlZiBoYW5kbGVPbmxBc21PcChvcGNvZGUsIGtpbmQpCisgICAgICAgIGNhc2Ug
b3BlcmFuZHMuc2l6ZQorICAgICAgICB3aGVuIDEKKyAgICAgICAgICAgICRhc20ucHV0YyAiaml0
LiN7b3Bjb2RlfSN7b25sQXNtU3VmZml4KGtpbmQpfSgje29ubEFzbU9wZXJhbmRzKGtpbmQpfSk7
IgorICAgICAgICB3aGVuIDIKKyAgICAgICAgICAgICMgRklYTUUgd2Ugb2Z0ZW4gZW5kIHVwIGRv
aW5nIG9uZSBvZjoKKyAgICAgICAgICAgICMgICBqaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMCksIHI/Pz8pCisgICAgICAgICAgICAjICAgaml0LnN1YlB0cihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByPz8/KQorICAgICAgICAgICAgIyAgIGppdC5zdWJQ
dHIocj8/PywgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKSwgcj8/PykKKyAgICAgICAg
ICAgICMKKyAgICAgICAgICAgICMgVGhlc2Ugbm9vcHMgc2hvdWxkIGNvZGVnZW4gdG8gbm90aGlu
Zy4gTGV0J3MgZ2V0IHJpZCBvZiBhbGwgc3VjaAorICAgICAgICAgICAgIyBub29wcyBoZXJlIHNv
IHRoZSBtYWNyb2Fzc2VtYmxlciBkb2Vzbid0IGhhdmUgdG8gY2FyZSAoaXQncyBkZWFkCisgICAg
ICAgICAgICAjIGNvZGUsIHdlIGRvbid0IG5lZWQgdG8gZ2VuZXJhdGUgaXQpLgorICAgICAgICAg
ICAgJGFzbS5wdXRjICJqaXQuI3tvcGNvZGV9I3tvbmxBc21TdWZmaXgoa2luZCl9KCN7b25sQXNt
T3BlcmFuZHMoa2luZCwga2luZCl9KTsiCisgICAgICAgIHdoZW4gMworICAgICAgICAgICAgJGFz
bS5wdXRjICJqaXQuI3tvcGNvZGV9I3tvbmxBc21TdWZmaXgoa2luZCl9KCN7b25sQXNtT3BlcmFu
ZHMoa2luZCwga2luZCwga2luZCl9KTsiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNl
ICJleHBlY3RlZCAxLCAyIG9yIDMgb3BlcmFuZHMsIGJ1dCBnb3QgI3tvcGVyYW5kcy5zaXplfSBh
dCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQgICAgICAKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgaGFuZGxlT25sQXNtRG91YmxlQnJhbmNoKGJyYW5jaE9wY29kZSkKKyAgICAgICAg
Y291bnQgPSBicmFuY2hOdW1iZXIKKyAgICAgICAgJGFzbS5wdXRjICIgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAganVtcCN7Y291bnR9ID0gaml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6
I3ticmFuY2hPcGNvZGV9LCAje29wZXJhbmRzWzBdLm9ubEFzbU9wZXJhbmQoOmRvdWJsZSl9LCAj
e29wZXJhbmRzWzFdLm9ubEFzbU9wZXJhbmQoOmRvdWJsZSl9KTsvKiAje29wZXJhbmRzWzJdLmFz
bUxhYmVsfSAqLyIKKyAgICAgICAgJGFzbS5wcm9jRWFybHlEZWZlckFjdGlvbiB7CisgICAgICAg
ICAgICAkYXNtLnB1dGMgImp1bXAje2NvdW50fS5saW5rVG8obGFiZWxfI3tvcGVyYW5kc1syXS5h
c21MYWJlbH0sICZqaXQpOyIKKyAgICAgICAgfQorICAgIGVuZAorICAgIAorICAgIGRlZiBoYW5k
bGVPbmxBc21JbnRCcmFuY2goYnJhbmNoT3Bjb2RlLCBraW5kKQorICAgICAgICBjb3VudCA9IGJy
YW5jaE51bWJlcgorICAgICAgICAkYXNtLnB1dGMgIk1hY3JvQXNzZW1ibGVyOjpKdW1wIGp1bXAj
e2NvdW50fSA9IGppdC5icmFuY2gje29ubEFzbVN1ZmZpeChraW5kKX0oI3tvbmxBc21SZWxhdGlv
bmFsQ29uZGl0aW9uTmFtZXNwYWNlfTo6I3ticmFuY2hPcGNvZGV9LCAje29wZXJhbmRzWzBdLm9u
bEFzbU9wZXJhbmQoa2luZCl9LCAje29wZXJhbmRzWzFdLm9ubEFzbU9wZXJhbmQoa2luZCl9KTsg
LyogI3tvcGVyYW5kc1syXS5hc21MYWJlbH0gKi8iCisgICAgICAgICRhc20ucHJvY0Vhcmx5RGVm
ZXJBY3Rpb24geworICAgICAgICAgICAgJGFzbS5wdXRjICJqdW1wI3tjb3VudH0ubGlua1RvKGxh
YmVsXyN7b3BlcmFuZHNbMl0uYXNtTGFiZWx9LCAmaml0KTsiCisgICAgICAgIH0KKyAgICBlbmQK
KworICAgIGRlZiBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KHNldE9wY29kZSwga2luZCkKKyAg
ICAgICAgJGFzbS5wdXRjICJqaXQuY29tcGFyZSN7b25sQXNtU3VmZml4KGtpbmQpfSgje29ubEFz
bVJlbGF0aW9uYWxDb25kaXRpb25OYW1lc3BhY2V9Ojoje3NldE9wY29kZX0sICN7b3BlcmFuZHNb
MF0ub25sQXNtT3BlcmFuZChraW5kKX0sICN7b3BlcmFuZHNbMV0ub25sQXNtT3BlcmFuZChraW5k
KX0sICN7b3BlcmFuZHNbMl0ub25sQXNtT3BlcmFuZChraW5kKX0pOyIKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgaGFuZGxlT25sQXNtQnJhbmNoVGVzdChicmFuY2hPcGNvZGUsIGtpbmQpCisgICAg
ICAgIGNhc2Ugb3BlcmFuZHMuc2l6ZQorICAgICAgICB3aGVuIDIKKyAgICAgICAgICAgIG1hc2sg
PSBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIC0xKQorICAgICAgICB3aGVuIDMKKyAgICAgICAg
ICAgIG1hc2sgPSBvcGVyYW5kc1sxXQorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZSAi
ZXhwZWN0ZWQgMiBvciAzIG9wZXJhbmRzLCBidXQgZ290ICN7b3BlcmFuZHMuc2l6ZX0gYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCisgICAgICAgIGNvdW50ID0gYnJhbmNoTnVt
YmVyCisgICAgICAgICRhc20ucHV0YyAiTWFjcm9Bc3NlbWJsZXI6Okp1bXAganVtcCN7Y291bnR9
ID0gaml0LmJyYW5jaFRlc3Qje29ubEFzbVN1ZmZpeChraW5kKX0oTWFjcm9Bc3NlbWJsZXI6OiN7
YnJhbmNoT3Bjb2RlfSwgI3tvcGVyYW5kc1swXS5vbmxBc21PcGVyYW5kKGtpbmQpfSwgI3ttYXNr
Lm9ubEFzbU9wZXJhbmQoa2luZCl9KTsgLyogI3tvcGVyYW5kcy5sYXN0LmFzbUxhYmVsfSAqLyIK
KyAgICAgICAgJGFzbS5wcm9jRWFybHlEZWZlckFjdGlvbiB7CisgICAgICAgICAgICAkYXNtLnB1
dGMgImp1bXAje2NvdW50fS5saW5rVG8obGFiZWxfI3tvcGVyYW5kcy5sYXN0LmFzbUxhYmVsfSwg
JmppdCk7IgorICAgICAgICB9CisgICAgZW5kCisgICAgCisgICAgZGVmIGhhbmRsZU9ubEFzbVNl
dFRlc3Qoc2V0T3Bjb2RlLCBraW5kKQorICAgICAgICAkYXNtLnB1dGMgImppdC50ZXN0I3tvbmxB
c21TdWZmaXgoa2luZCl9KE1hY3JvQXNzZW1ibGVyOjoje3NldE9wY29kZX0sICN7b3BlcmFuZHNb
MF0ub25sQXNtT3BlcmFuZChraW5kKX0sICN7b3BlcmFuZHNbMV0ub25sQXNtT3BlcmFuZChraW5k
KX0sICN7b3BlcmFuZHNbMl0ub25sQXNtT3BlcmFuZChraW5kKX0pOyIKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgaGFuZGxlT25sQXNtT3BCcmFuY2gob3Bjb2RlLCBicmFuY2hPcGNvZGUsIGtpbmQp
CisgICAgICAgIHJhaXNlIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDMKKyAgICAgICAgY291bnQg
PSBicmFuY2hOdW1iZXIKKyAgICAgICAgJGFzbS5wdXRjICJNYWNyb0Fzc2VtYmxlcjo6SnVtcCBq
dW1wI3tjb3VudH0gPSBqaXQuYnJhbmNoI3tvcGNvZGV9I3tvbmxBc21TdWZmaXgoa2luZCl9KE1h
Y3JvQXNzZW1ibGVyOjoje2JyYW5jaE9wY29kZX0sICN7b3BlcmFuZHNbMF0ub25sQXNtT3BlcmFu
ZChraW5kKX0sICN7b3BlcmFuZHNbMV0ub25sQXNtT3BlcmFuZChraW5kKX0pOyAvKiAje29wZXJh
bmRzLmxhc3QuYXNtTGFiZWx9ICovIgorICAgICAgICAkYXNtLnByb2NFYXJseURlZmVyQWN0aW9u
IHsKKyAgICAgICAgICAgICRhc20ucHV0YyAianVtcCN7Y291bnR9LmxpbmtUbyhsYWJlbF8je29w
ZXJhbmRzLmxhc3QuYXNtTGFiZWx9LCAmaml0KTsiCisgICAgICAgIH0KKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgbG93ZXJPTkxJTkVfQVNTRU1CTEVSCisgICAgICAgIHJhaXNlIHVubGVzcyAkYWN0
aXZlQmFja2VuZCA9PSAiT05MSU5FX0FTU0VNQkxFUiIKKyAgICAgICAgJGFzbS5jb2RlT3JpZ2lu
IGNvZGVPcmlnaW5TdHJpbmcgaWYgJGVuYWJsZUNvZGVPcmlnaW5Db21tZW50cworICAgICAgICAk
YXNtLmFubm90YXRpb24gYW5ub3RhdGlvbiBpZiAkZW5hYmxlSW5zdHJBbm5vdGF0aW9ucworICAg
ICAgICAkYXNtLmRlYnVnQW5ub3RhdGlvbiBjb2RlT3JpZ2luLmRlYnVnRGlyZWN0aXZlIGlmICRl
bmFibGVEZWJ1Z0Fubm90YXRpb25zCisKKyAgICAgICAgY2FzZSBvcGNvZGUKKyAgICAgICAgd2hl
biAiYWRkaSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wKCJhZGQiLCA6aTMyKQorICAgICAg
ICB3aGVuICJhZGRwIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3AoImFkZCIsIDpwdHIpCisg
ICAgICAgIHdoZW4gImFkZHEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcCgiYWRkIiwgOmk2
NCkKKyAgICAgICAgd2hlbiAiYW5kaSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wKCJhbmQi
LCA6aTMyKQorICAgICAgICB3aGVuICJhbmRwIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3Ao
ImFuZCIsIDpwdHIpCisgICAgICAgIHdoZW4gImFuZHEiCisgICAgICAgICAgICBoYW5kbGVPbmxB
c21PcCgiYW5kIiwgOmk2NCkKKyAgICAgICAgd2hlbiAibHNoaWZ0aSIKKyAgICAgICAgICAgIGhh
bmRsZU9ubEFzbU9wKCJsc2hpZnQiLCA6aTMyKQorICAgICAgICB3aGVuICJsc2hpZnRwIgorICAg
ICAgICAgICAgaGFuZGxlT25sQXNtT3AoImxzaGlmdCIsIDpwdHIpCisgICAgICAgIHdoZW4gImxz
aGlmdHEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcCgibHNoaWZ0IiwgOmk2NCkKKyAgICAg
ICAgd2hlbiAibXVsaSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wKCJtdWwiLCA6aTMyKQor
ICAgICAgICB3aGVuICJtdWxwIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3AoIm11bCIsIDpw
dHIpCisgICAgICAgIHdoZW4gIm11bHEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcCgibXVs
IiwgOmk2NCkKKyAgICAgICAgd2hlbiAibmVnaSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9w
KCJuZWciLCA6aTMyKQorICAgICAgICB3aGVuICJuZWdwIgorICAgICAgICAgICAgaGFuZGxlT25s
QXNtT3AoIm5lZyIsIDpwdHIpCisgICAgICAgIHdoZW4gIm5lZ3EiCisgICAgICAgICAgICBoYW5k
bGVPbmxBc21PcCgibmVnIiwgOmk2NCkKKyAgICAgICAgd2hlbiAibm90aSIKKyAgICAgICAgICAg
IHJhaXNlIHVubGVzcyBvcGVyYW5kcy5zaXplID09IDEKKyAgICAgICAgICAgIG9wZXJhbmRzWzFd
ID0gSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAtMSkKKyAgICAgICAgICAgIGhhbmRsZU9ubEFz
bU9wKCJ4b3IiLCA6aTMyKQorICAgICAgICB3aGVuICJvcmkiCisgICAgICAgICAgICBoYW5kbGVP
bmxBc21PcCgib3IiLCA6aTMyKQorICAgICAgICB3aGVuICJvcnAiCisgICAgICAgICAgICBoYW5k
bGVPbmxBc21PcCgib3IiLCA6cHRyKQorICAgICAgICB3aGVuICJvcnEiCisgICAgICAgICAgICBo
YW5kbGVPbmxBc21PcCgib3IiLCA6aTY0KQorICAgICAgICB3aGVuICJyc2hpZnRpIgorICAgICAg
ICAgICAgaGFuZGxlT25sQXNtT3AoInJzaGlmdCIsIDppMzIpCisgICAgICAgIHdoZW4gInJzaGlm
dHAiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcCgicnNoaWZ0IiwgOnB0cikKKyAgICAgICAg
d2hlbiAicnNoaWZ0cSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wKCJyc2hpZnQiLCA6aTY0
KQorICAgICAgICB3aGVuICJ1cnNoaWZ0aSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wKCJ1
cnNoaWZ0IiwgOmkzMikKKyAgICAgICAgd2hlbiAidXJzaGlmdHAiCisgICAgICAgICAgICBoYW5k
bGVPbmxBc21PcCgidXJzaGlmdCIsIDpwdHIpCisgICAgICAgIHdoZW4gInVyc2hpZnRxIgorICAg
ICAgICAgICAgaGFuZGxlT25sQXNtT3AoInVyc2hpZnQiLCA6aTY0KQorICAgICAgICB3aGVuICJz
dWJpIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3AoInN1YiIsIDppMzIpCisgICAgICAgIHdo
ZW4gInN1YnAiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcCgic3ViIiwgOnB0cikKKyAgICAg
ICAgd2hlbiAic3VicSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wKCJzdWIiLCA6aTY0KQor
ICAgICAgICB3aGVuICJ4b3JpIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3AoInhvciIsIDpp
MzIpCisgICAgICAgIHdoZW4gInhvcnAiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcCgieG9y
IiwgOnB0cikKKyAgICAgICAgd2hlbiAieG9ycSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9w
KCJ4b3IiLCA6aTY0KQorICAgICAgICB3aGVuICJsb2FkaSIKKyAgICAgICAgICAgICRhc20ucHV0
YyAiaml0LmxvYWQje29ubEFzbVN1ZmZpeCg6aTMyKX0oI3tvbmxBc21Mb2FkT3BlcmFuZHMoOmkz
MiwgOmkzMil9KTsiCisgICAgICAgIHdoZW4gInN0b3JlaSIKKyAgICAgICAgICAgICRhc20ucHV0
YyAiaml0LnN0b3JlI3tvbmxBc21TdWZmaXgoOmkzMil9KCN7b25sQXNtT3BlcmFuZHMoOmkzMiwg
OmkzMil9KTsiCisgICAgICAgIHdoZW4gImxvYWRpcyIKKyAgICAgICAgICAgICRhc20ucHV0YyAi
aml0LmxvYWQje29ubEFzbVN1ZmZpeCg6aTMyKX0oI3tvbmxBc21Mb2FkT3BlcmFuZHMoOmkzMiwg
OmkzMil9KTsiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5zaWduRXh0ZW5kMzJUb1B0cigj
e29wZXJhbmRzWzFdLm9ubEFzbU9wZXJhbmQoOmkzMil9LCAje29wZXJhbmRzWzFdLm9ubEFzbU9w
ZXJhbmQoOmk2NCl9KTsiCisgICAgICAgIHdoZW4gImxvYWRwIgorICAgICAgICAgICAgJGFzbS5w
dXRjICJqaXQubG9hZCN7b25sQXNtU3VmZml4KDpwdHIpfSgje29ubEFzbUxvYWRPcGVyYW5kcyg6
cHRyLCA6cHRyKX0pOyIKKyAgICAgICAgd2hlbiAic3RvcmVwIgorICAgICAgICAgICAgJGFzbS5w
dXRjICJqaXQuc3RvcmUje29ubEFzbVN1ZmZpeCg6cHRyKX0oI3tvbmxBc21PcGVyYW5kcyg6cHRy
LCA6cHRyKX0pOyIKKyAgICAgICAgd2hlbiAibG9hZHEiCisgICAgICAgICAgICAkYXNtLnB1dGMg
ImppdC5sb2FkI3tvbmxBc21TdWZmaXgoOmk2NCl9KCN7b25sQXNtTG9hZE9wZXJhbmRzKDppNjQs
IDppNjQpfSk7IgorICAgICAgICB3aGVuICJzdG9yZXEiCisgICAgICAgICAgICAkYXNtLnB1dGMg
ImppdC5zdG9yZSN7b25sQXNtU3VmZml4KDppNjQpfSgje29ubEFzbU9wZXJhbmRzKDppNjQsIDpp
NjQpfSk7IgorICAgICAgICB3aGVuICJsb2FkYiIKKyAgICAgICAgICAgICRhc20ucHV0YyAiaml0
LmxvYWQ4KCN7b25sQXNtTG9hZE9wZXJhbmRzKDpwdHIsIDppMzIpfSk7IgorICAgICAgICB3aGVu
ICJsb2FkYnMiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5sb2FkOCgje29ubEFzbUxvYWRP
cGVyYW5kcyg6cHRyLCA6aTMyKX0pOyIKKyAgICAgICAgICAgICRhc20ucHV0YyAiaml0LnNpZ25F
eHRlbmQ4VG8zMigje29wZXJhbmRzWzFdLm9ubEFzbU9wZXJhbmQoOmkzMil9LCAje29wZXJhbmRz
WzFdLm9ubEFzbU9wZXJhbmQoOmkzMil9KTsiCisgICAgICAgIHdoZW4gImxvYWRoIgorICAgICAg
ICAgICAgJGFzbS5wdXRjICJqaXQubG9hZDE2KCN7b25sQXNtTG9hZE9wZXJhbmRzKDpwdHIsIDpp
MzIpfSk7IgorICAgICAgICB3aGVuICJsb2FkaHMiCisgICAgICAgICAgICAkYXNtLnB1dGMgImpp
dC5sb2FkMTYoI3tvbmxBc21Mb2FkT3BlcmFuZHMoOnB0ciwgOmkzMil9KTsiCisgICAgICAgICAg
ICAkYXNtLnB1dGMgImppdC5zaWduRXh0ZW5kMTZUbzMyKCN7b3BlcmFuZHNbMV0ub25sQXNtT3Bl
cmFuZCg6aTMyKX0sICN7b3BlcmFuZHNbMV0ub25sQXNtT3BlcmFuZCg6aTMyKX0pOyIKKyAgICAg
ICAgd2hlbiAic3RvcmViIgorICAgICAgICAgICAgJGFzbS5wdXRjICJqaXQuc3RvcmU4KCN7b25s
QXNtT3BlcmFuZHMoOmkzMiwgOmkzMil9KTsiCisgICAgICAgIHdoZW4gImxvYWRkIgorICAgICAg
ICAgICAgJGFzbS5wdXRjICJqaXQubG9hZCN7b25sQXNtU3VmZml4KDpkb3VibGUpfSgje29ubEFz
bUxvYWRPcGVyYW5kcyg6ZG91YmxlLCA6ZG91YmxlKX0pOyIKKyAgICAgICAgd2hlbiAibW92ZWQi
CisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5tb3ZlI3tvbmxBc21TdWZmaXgoOmRvdWJsZSl9
KCN7b25sQXNtTG9hZE9wZXJhbmRzKDpkb3VibGUsIDpkb3VibGUpfSk7IgorICAgICAgICB3aGVu
ICJzdG9yZWQiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5zdG9yZSN7b25sQXNtU3VmZml4
KDpkb3VibGUpfSgje29ubEFzbU9wZXJhbmRzKDpkb3VibGUsIDpkb3VibGUpfSk7IgorICAgICAg
ICB3aGVuICJhZGRkIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3AoImFkZCIsIDpkb3VibGUp
CisgICAgICAgIHdoZW4gIm11bGQiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcCgibXVsIiwg
OmRvdWJsZSkKKyAgICAgICAgd2hlbiAic3ViZCIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9w
KCJzdWIiLCA6ZG91YmxlKQorICAgICAgICB3aGVuICJkaXZkIgorICAgICAgICAgICAgaGFuZGxl
T25sQXNtT3AoImRpdiIsIDpkb3VibGUpCisgICAgICAgIHdoZW4gInNxcnRkIgorICAgICAgICAg
ICAgaGFuZGxlT25sQXNtT3AoInNxcnQiLCA6ZG91YmxlKQorICAgICAgICB3aGVuICJjaTJkIgor
ICAgICAgICAgICAgJGFzbS5wdXRjICJqaXQuY29udmVydEludDMyVG9Eb3VibGUoI3tvbmxBc21M
b2FkT3BlcmFuZHMoOmkzMiwgOmRvdWJsZSl9KTsiCisgICAgICAgIHdoZW4gImJkZXEiCisgICAg
ICAgICAgICBoYW5kbGVPbmxBc21Eb3VibGVCcmFuY2goIkRvdWJsZUVxdWFsIikKKyAgICAgICAg
d2hlbiAiYmRuZXEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21Eb3VibGVCcmFuY2goIkRvdWJs
ZU5vdEVxdWFsIikKKyAgICAgICAgd2hlbiAiYmRndCIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFz
bURvdWJsZUJyYW5jaCgiRG91YmxlR3JlYXRlclRoYW4iKQorICAgICAgICB3aGVuICJiZGd0ZXEi
CisgICAgICAgICAgICBoYW5kbGVPbmxBc21Eb3VibGVCcmFuY2goIkRvdWJsZUdyZWF0ZXJUaGFu
T3JFcXVhbCIpCisgICAgICAgIHdoZW4gImJkbHQiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21E
b3VibGVCcmFuY2goIkRvdWJsZUxlc3NUaGFuIikKKyAgICAgICAgd2hlbiAiYmRsdGVxIgorICAg
ICAgICAgICAgaGFuZGxlT25sQXNtRG91YmxlQnJhbmNoKCJEb3VibGVMZXNzVGhhbk9yRXF1YWwi
KQorICAgICAgICB3aGVuICJiZGVxdW4iCisgICAgICAgICAgICBoYW5kbGVPbmxBc21Eb3VibGVC
cmFuY2goIkRvdWJsZUVxdWFsT3JVbm9yZGVyZWQiKQorICAgICAgICB3aGVuICJiZG5lcXVuIgor
ICAgICAgICAgICAgaGFuZGxlT25sQXNtRG91YmxlQnJhbmNoKCJEb3VibGVOb3RFcXVhbE9yVW5v
cmRlcmVkIikKKyAgICAgICAgd2hlbiAiYmRndHVuIgorICAgICAgICAgICAgaGFuZGxlT25sQXNt
RG91YmxlQnJhbmNoKCJEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkIikKKyAgICAgICAgd2hl
biAiYmRndGVxdW4iCisgICAgICAgICAgICBoYW5kbGVPbmxBc21Eb3VibGVCcmFuY2goIkRvdWJs
ZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkIikKKyAgICAgICAgd2hlbiAiYmRsdHVuIgor
ICAgICAgICAgICAgaGFuZGxlT25sQXNtRG91YmxlQnJhbmNoKCJEb3VibGVMZXNzVGhhbk9yVW5v
cmRlcmVkIikKKyAgICAgICAgd2hlbiAiYmRsdGVxdW4iCisgICAgICAgICAgICBoYW5kbGVPbmxB
c21Eb3VibGVCcmFuY2goIkRvdWJsZUxlc3NUaGFuT3JFcXVhbE9yVW5vcmRlcmVkIikKKyAgICAg
ICAgd2hlbiAicG9wIgorICAgICAgICAgICAgb3BlcmFuZHMuZWFjaCB7CisgICAgICAgICAgICAg
ICAgfCBvcCB8CisgICAgICAgICAgICAgICAgJGFzbS5wdXRjICJqaXQucG9wKCN7b3Aub25sQXNt
T3BlcmFuZCg6cHRyKX0pOyIKKyAgICAgICAgICAgIH0KKyAgICAgICAgd2hlbiAicHVzaCIKKyAg
ICAgICAgICAgIG9wZXJhbmRzLmVhY2ggeworICAgICAgICAgICAgICAgIHwgb3AgfAorICAgICAg
ICAgICAgICAgICRhc20ucHV0YyAiaml0LnB1c2goI3tvcC5vbmxBc21PcGVyYW5kKDpwdHIpfSk7
IgorICAgICAgICAgICAgfQorICAgICAgICB3aGVuICJtb3ZlIgorICAgICAgICAgICAgJGFzbS5w
dXRjICJqaXQubW92ZSgje29ubEFzbU9wZXJhbmRzKDppNjQsIDppNjQpfSk7IgorICAgICAgICB3
aGVuICJzeGkycSIKKyAgICAgICAgICAgICRhc20ucHV0YyAiaml0LnNpZ25FeHRlbmQzMlRvUHRy
KCN7b3BlcmFuZHNbMF0ub25sQXNtT3BlcmFuZCg6aTMyKX0sICN7b3BlcmFuZHNbMV0ub25sQXNt
T3BlcmFuZCg6aTY0KX0pOyIKKyAgICAgICAgd2hlbiAienhpMnEiCisgICAgICAgICAgICAkYXNt
LnB1dGMgImppdC56ZXJvRXh0ZW5kMzJUb1B0cigje29wZXJhbmRzWzBdLm9ubEFzbU9wZXJhbmQo
OmkzMil9LCAje29wZXJhbmRzWzFdLm9ubEFzbU9wZXJhbmQoOmk2NCl9KTsiCisgICAgICAgIHdo
ZW4gIm5vcCIKKyAgICAgICAgICAgICRhc20ucHV0YyAiaml0Lm5vcCgpOyIKKyAgICAgICAgd2hl
biAiYmllcSIKKyAgICAgICAgd2hlbiAiYmJlcSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUlu
dEJyYW5jaCgiRXF1YWwiLCA6aTMyKQorICAgICAgICB3aGVuICJicGVxIgorICAgICAgICAgICAg
aGFuZGxlT25sQXNtSW50QnJhbmNoKCJFcXVhbCIsIDpwdHIpCisgICAgICAgIHdoZW4gImJxZXEi
CisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRCcmFuY2goIkVxdWFsIiwgOmk2NCkKKyAgICAg
ICAgd2hlbiAiYmluZXEiCisgICAgICAgIHdoZW4gImJibmVxIgorICAgICAgICAgICAgaGFuZGxl
T25sQXNtSW50QnJhbmNoKCJOb3RFcXVhbCIsIDppMzIpCisgICAgICAgIHdoZW4gImJwbmVxIgor
ICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50QnJhbmNoKCJOb3RFcXVhbCIsIDpwdHIpCisgICAg
ICAgIHdoZW4gImJxbmVxIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50QnJhbmNoKCJOb3RF
cXVhbCIsIDppNjQpCisgICAgICAgIHdoZW4gImJpYSIKKyAgICAgICAgd2hlbiAiYmJhIgorICAg
ICAgICAgICAgaGFuZGxlT25sQXNtSW50QnJhbmNoKCJBYm92ZSIsIDppMzIpCisgICAgICAgIHdo
ZW4gImJwYSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludEJyYW5jaCgiQWJvdmUiLCA6cHRy
KQorICAgICAgICB3aGVuICJicWEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRCcmFuY2go
IkFib3ZlIiwgOmk2NCkKKyAgICAgICAgd2hlbiAiYmlhZXEiCisgICAgICAgIHdoZW4gImJiYWVx
IgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50QnJhbmNoKCJBYm92ZU9yRXF1YWwiLCA6aTMy
KQorICAgICAgICB3aGVuICJicGFlcSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludEJyYW5j
aCgiQWJvdmVPckVxdWFsIiwgOnB0cikKKyAgICAgICAgd2hlbiAiYnFhZXEiCisgICAgICAgICAg
ICBoYW5kbGVPbmxBc21JbnRCcmFuY2goIkFib3ZlT3JFcXVhbCIsIDppNjQpCisgICAgICAgIHdo
ZW4gImJpYiIKKyAgICAgICAgd2hlbiAiYmJiIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50
QnJhbmNoKCJCZWxvdyIsIDppMzIpCisgICAgICAgIHdoZW4gImJwYiIKKyAgICAgICAgICAgIGhh
bmRsZU9ubEFzbUludEJyYW5jaCgiQmVsb3ciLCA6cHRyKQorICAgICAgICB3aGVuICJicWIiCisg
ICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRCcmFuY2goIkJlbG93IiwgOmk2NCkKKyAgICAgICAg
d2hlbiAiYmliZXEiCisgICAgICAgIHdoZW4gImJiYmVxIgorICAgICAgICAgICAgaGFuZGxlT25s
QXNtSW50QnJhbmNoKCJCZWxvd09yRXF1YWwiLCA6aTMyKQorICAgICAgICB3aGVuICJicGJlcSIK
KyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludEJyYW5jaCgiQmVsb3dPckVxdWFsIiwgOnB0cikK
KyAgICAgICAgd2hlbiAiYnFiZXEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRCcmFuY2go
IkJlbG93T3JFcXVhbCIsIDppNjQpCisgICAgICAgIHdoZW4gImJpZ3QiCisgICAgICAgIHdoZW4g
ImJiZ3QiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRCcmFuY2goIkdyZWF0ZXJUaGFuIiwg
OmkzMikKKyAgICAgICAgd2hlbiAiYnBndCIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludEJy
YW5jaCgiR3JlYXRlclRoYW4iLCA6cHRyKQorICAgICAgICB3aGVuICJicWd0IgorICAgICAgICAg
ICAgaGFuZGxlT25sQXNtSW50QnJhbmNoKCJHcmVhdGVyVGhhbiIsIDppNjQpCisgICAgICAgIHdo
ZW4gImJpZ3RlcSIKKyAgICAgICAgd2hlbiAiYmJndGVxIgorICAgICAgICAgICAgaGFuZGxlT25s
QXNtSW50QnJhbmNoKCJHcmVhdGVyVGhhbk9yRXF1YWwiLCA6aTMyKQorICAgICAgICB3aGVuICJi
cGd0ZXEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRCcmFuY2goIkdyZWF0ZXJUaGFuT3JF
cXVhbCIsIDpwdHIpCisgICAgICAgIHdoZW4gImJxZ3RlcSIKKyAgICAgICAgICAgIGhhbmRsZU9u
bEFzbUludEJyYW5jaCgiR3JlYXRlclRoYW5PckVxdWFsIiwgOmk2NCkKKyAgICAgICAgd2hlbiAi
YmlsdCIKKyAgICAgICAgd2hlbiAiYmJsdCIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludEJy
YW5jaCgiTGVzc1RoYW4iLCA6aTMyKQorICAgICAgICB3aGVuICJicGx0IgorICAgICAgICAgICAg
aGFuZGxlT25sQXNtSW50QnJhbmNoKCJMZXNzVGhhbiIsIDpwdHIpCisgICAgICAgIHdoZW4gImJx
bHQiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRCcmFuY2goIkxlc3NUaGFuIiwgOmk2NCkK
KyAgICAgICAgd2hlbiAiYmlsdGVxIgorICAgICAgICB3aGVuICJiYmx0ZXEiCisgICAgICAgICAg
ICBoYW5kbGVPbmxBc21JbnRCcmFuY2goIkxlc3NUaGFuT3JFcXVhbCIsIDppMzIpCisgICAgICAg
IHdoZW4gImJwbHRlcSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludEJyYW5jaCgiTGVzc1Ro
YW5PckVxdWFsIiwgOnB0cikKKyAgICAgICAgd2hlbiAiYnFsdGVxIgorICAgICAgICAgICAgaGFu
ZGxlT25sQXNtSW50QnJhbmNoKCJMZXNzVGhhbk9yRXF1YWwiLCA6aTY0KQorICAgICAgICB3aGVu
ICJidGlzIgorICAgICAgICB3aGVuICJidGJzIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtQnJh
bmNoVGVzdCgiU2lnbmVkIiwgOmkzMikKKyAgICAgICAgd2hlbiAiYnRwcyIKKyAgICAgICAgICAg
IGhhbmRsZU9ubEFzbUJyYW5jaFRlc3QoIlNpZ25lZCIsIDpwdHIpCisgICAgICAgIHdoZW4gImJ0
cXMiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21CcmFuY2hUZXN0KCJTaWduZWQiLCA6aTY0KQor
ICAgICAgICB3aGVuICJidGl6IgorICAgICAgICB3aGVuICJidGJ6IgorICAgICAgICAgICAgaGFu
ZGxlT25sQXNtQnJhbmNoVGVzdCgiWmVybyIsIDppMzIpCisgICAgICAgIHdoZW4gImJ0cHoiCisg
ICAgICAgICAgICBoYW5kbGVPbmxBc21CcmFuY2hUZXN0KCJaZXJvIiwgOnB0cikKKyAgICAgICAg
d2hlbiAiYnRxeiIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUJyYW5jaFRlc3QoIlplcm8iLCA6
aTY0KQorICAgICAgICB3aGVuICJidGlueiIKKyAgICAgICAgd2hlbiAiYnRibnoiCisgICAgICAg
ICAgICBoYW5kbGVPbmxBc21CcmFuY2hUZXN0KCJOb25aZXJvIiwgOmkzMikKKyAgICAgICAgd2hl
biAiYnRwbnoiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21CcmFuY2hUZXN0KCJOb25aZXJvIiwg
OnB0cikKKyAgICAgICAgd2hlbiAiYnRxbnoiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21CcmFu
Y2hUZXN0KCJOb25aZXJvIiwgOmk2NCkKKyAgICAgICAgd2hlbiAiam1wIgorICAgICAgICAgICAg
aWYgKG9wZXJhbmRzWzBdLmlzX2E/IExhYmVsUmVmZXJlbmNlKSB8fCAob3BlcmFuZHNbMF0uaXNf
YT8gTG9jYWxMYWJlbFJlZmVyZW5jZSkKKyAgICAgICAgICAgICAgICBjb3VudCA9IGJyYW5jaE51
bWJlcgorICAgICAgICAgICAgICAgICRhc20ucHV0YyAiTWFjcm9Bc3NlbWJsZXI6Okp1bXAganVt
cCN7Y291bnR9ID0gaml0Lmp1bXAoLyogI3tvcGVyYW5kc1swXS5vbmxBc21DYWxsT3BlcmFuZCg6
cHRyKX0gKi8pOyIKKyAgICAgICAgICAgICAgICAkYXNtLnByb2NFYXJseURlZmVyQWN0aW9uIHsK
KyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRjICJqdW1wI3tjb3VudH0ubGlua1RvKGxhYmVs
XyN7b3BlcmFuZHNbMF0ub25sQXNtQ2FsbE9wZXJhbmQoOnB0cil9LCAmaml0KTsiCisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0YyAi
aml0Lmp1bXAoI3tvcGVyYW5kc1swXS5vbmxBc21DYWxsT3BlcmFuZCg6cHRyKX0pOyIKKyAgICAg
ICAgICAgIGVuZAorICAgICAgICB3aGVuICJiYWRkaW8iCisgICAgICAgICAgICBoYW5kbGVPbmxB
c21PcEJyYW5jaCgiQWRkIiwgIk92ZXJmbG93IiwgOmkzMikKKyAgICAgICAgd2hlbiAiYmFkZHBv
IgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3BCcmFuY2goIkFkZCIsICJPdmVyZmxvdyIsIDpw
dHIpCisgICAgICAgIHdoZW4gImJhZGRxbyIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wQnJh
bmNoKCJBZGQiLCAiT3ZlcmZsb3ciLCA6aTY0KQorICAgICAgICB3aGVuICJiYWRkaXMiCisgICAg
ICAgICAgICBoYW5kbGVPbmxBc21PcEJyYW5jaCgiQWRkIiwgIlNpZ25lZCIsIDppMzIpCisgICAg
ICAgIHdoZW4gImJhZGRwcyIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wQnJhbmNoKCJBZGQi
LCAiU2lnbmVkIiwgOnB0cikKKyAgICAgICAgd2hlbiAiYmFkZHFzIgorICAgICAgICAgICAgaGFu
ZGxlT25sQXNtT3BCcmFuY2goIkFkZCIsICJTaWduZWQiLCA6aTY0KQorICAgICAgICB3aGVuICJi
YWRkaXoiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcEJyYW5jaCgiQWRkIiwgIlplcm8iLCA6
aTMyKQorICAgICAgICB3aGVuICJiYWRkcHoiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcEJy
YW5jaCgiQWRkIiwgIlplcm8iLCA6cHRyKQorICAgICAgICB3aGVuICJiYWRkcXoiCisgICAgICAg
ICAgICBoYW5kbGVPbmxBc21PcEJyYW5jaCgiQWRkIiwgIlplcm8iLCA6aTY0KQorICAgICAgICB3
aGVuICJiYWRkaW56IgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3BCcmFuY2goIkFkZCIsICJO
b25aZXJvIiwgOmkzMikKKyAgICAgICAgd2hlbiAiYmFkZHBueiIKKyAgICAgICAgICAgIGhhbmRs
ZU9ubEFzbU9wQnJhbmNoKCJBZGQiLCAiTm9uWmVybyIsIDpwdHIpCisgICAgICAgIHdoZW4gImJh
ZGRxbnoiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcEJyYW5jaCgiQWRkIiwgIk5vblplcm8i
LCA6aTY0KQorICAgICAgICB3aGVuICJic3ViaW8iCisgICAgICAgICAgICBoYW5kbGVPbmxBc21P
cEJyYW5jaCgiU3ViIiwgIk92ZXJmbG93IiwgOmkzMikKKyAgICAgICAgd2hlbiAiYnN1YmlzIgor
ICAgICAgICAgICAgaGFuZGxlT25sQXNtT3BCcmFuY2goIlN1YiIsICJTaWduZWQiLCA6aTMyKQor
ICAgICAgICB3aGVuICJic3ViaXoiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcEJyYW5jaCgi
U3ViIiwgIlplcm8iLCA6aTMyKQorICAgICAgICB3aGVuICJic3ViaW56IgorICAgICAgICAgICAg
aGFuZGxlT25sQXNtT3BCcmFuY2goIlN1YiIsICJOb25aZXJvIiwgOmkzMikKKyAgICAgICAgd2hl
biAiYm11bGlvIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3BCcmFuY2goIk11bCIsICJPdmVy
ZmxvdyIsIDppMzIpCisgICAgICAgIHdoZW4gImJtdWxpcyIKKyAgICAgICAgICAgIGhhbmRsZU9u
bEFzbU9wQnJhbmNoKCJNdWwiLCAiU2lnbmVkIiwgOmkzMikKKyAgICAgICAgd2hlbiAiYm11bGl6
IgorICAgICAgICAgICAgaGFuZGxlT25sQXNtT3BCcmFuY2goIk11bCIsICJaZXJvIiwgOmkzMikK
KyAgICAgICAgd2hlbiAiYm11bGlueiIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbU9wQnJhbmNo
KCJNdWwiLCAiTm9uWmVybyIsIDppMzIpCisgICAgICAgIHdoZW4gImJvcmlvIgorICAgICAgICAg
ICAgaGFuZGxlT25sQXNtT3BCcmFuY2goIk9yIiwgIk92ZXJmbG93IiwgOmkzMikKKyAgICAgICAg
d2hlbiAiYm9yaXMiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21PcEJyYW5jaCgiT3IiLCAiU2ln
bmVkIiwgOmkzMikKKyAgICAgICAgd2hlbiAiYm9yaXoiCisgICAgICAgICAgICBoYW5kbGVPbmxB
c21PcEJyYW5jaCgiT3IiLCAiWmVybyIsIDppMzIpCisgICAgICAgIHdoZW4gImJvcmlueiIKKyAg
ICAgICAgICAgIGhhbmRsZU9ubEFzbU9wQnJhbmNoKCJPciIsICJOb25aZXJvIiwgOmkzMikKKyAg
ICAgICAgd2hlbiAiYnJlYWsiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5icmVha3BvaW50
KCk7IgorICAgICAgICB3aGVuICJjYWxsIgorICAgICAgICAgICAgb3AgPSBvcGVyYW5kc1swXS5v
bmxBc21DYWxsT3BlcmFuZCg6cHRyKQorICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaXNfYT8g
TGFiZWxSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICBpZiBvcC5zdGFydF93aXRoPygiJmxsaW50
XyIpCisgICAgICAgICAgICAgICAgICAgIG9wID0gIiZMTEludDo6I3tvcFsxLi4tMV19IgorICAg
ICAgICAgICAgICAgIGVsc2lmIG9wLnN0YXJ0X3dpdGg/KCImc2xvd18iKQorICAgICAgICAgICAg
ICAgICAgICBvcCA9ICImSlNDOjoje29wWzEuLi0xXX0iCisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICByYWlzZSAidW5leHBlY3RlZCBsYWJlbCAje29wfSIgdW5sZXNz
IG9wID09ICJyZWxhdGl2ZVBDQmFzZSIKKyAgICAgICAgICAgICAgICAgICAgJG9ubEFzbUluUmVs
YXRpdmVQQ0Jhc2UgPSB0cnVlCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0YyAiaml0LmJy
ZWFrcG9pbnQoKTsiCisgICAgICAgICAgICAgICAgICAgICRhc20ucHV0YyAiI2lmIDAgLyogb25s
aW5lIHJlbGF0aXZlUENCYXNlIGNvZGVnZW4gZG9uZSBkaWZmZXJlbnRseSBmcm9tIG9mZmxpbmUg
dmVyc2lvbiAqLyIKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICBpZiAhJG9u
bEFzbUluUmVsYXRpdmVQQ0Jhc2UKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSBicmFuY2hO
dW1iZXIKKyAgICAgICAgICAgICAgICAgICAgJGFzbS5wdXRjICJNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsI3tjb3VudH0gPSBqaXQuY2FsbCgvKiAje29wfSAqLyk7IgorICAgICAgICAgICAgICAg
ICAgICAkYXNtLnByb2NMYXRlRGVmZXJBY3Rpb24geworICAgICAgICAgICAgICAgICAgICAgICAg
JGFzbS5wdXRjICJsaW5rQnVmZmVyLmxpbmsoY2FsbCN7Y291bnR9LCBGdW5jdGlvblB0cigje29w
fSkpOyIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0YyAiaml0LmNhbGwoI3tvcH0pOyIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJyZXQiCisgICAgICAgICAgICAkYXNtLnB1
dGMgImppdC5yZXQoKTsiCisgICAgICAgICAgICBpZiAkb25sQXNtSW5SZWxhdGl2ZVBDQmFzZQor
ICAgICAgICAgICAgICAgICRvbmxBc21JblJlbGF0aXZlUENCYXNlID0gZmFsc2UKKyAgICAgICAg
ICAgICAgICAkYXNtLnB1dGMgIiNlbmRpZiAvKiBlbmQgcmVsYXRpdmVQQ0Jhc2UgZGlzYWJsZWQg
Y29kZSAqLyIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjaWVxIiwgImNiZXEiCisg
ICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KCJFcXVhbCIsIDppMzIpCisgICAg
ICAgIHdoZW4gImNwZXEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KCJF
cXVhbCIsIDpwdHIpCisgICAgICAgIHdoZW4gImNxZXEiCisgICAgICAgICAgICBoYW5kbGVPbmxB
c21JbnRDb21wYXJlU2V0KCJFcXVhbCIsIDppNjQpCisgICAgICAgIHdoZW4gImNpbmVxIiwgImNi
bmVxIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNldCgiTm90RXF1YWwiLCA6
aTMyKQorICAgICAgICB3aGVuICJjcG5lcSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludENv
bXBhcmVTZXQoIk5vdEVxdWFsIiwgOnB0cikKKyAgICAgICAgd2hlbiAiY3FuZXEiCisgICAgICAg
ICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KCJOb3RFcXVhbCIsIDppNjQpCisgICAgICAg
IHdoZW4gImNpYSIsICJjYmEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0
KCJBYm92ZSIsIDppMzIpCisgICAgICAgIHdoZW4gImNwYSIKKyAgICAgICAgICAgIGhhbmRsZU9u
bEFzbUludENvbXBhcmVTZXQoIkFib3ZlIiwgOnB0cikKKyAgICAgICAgd2hlbiAiY3FhIgorICAg
ICAgICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNldCgiQWJvdmUiLCA6aTY0KQorICAgICAg
ICB3aGVuICJjaWFlcSIsICJjYmFlcSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludENvbXBh
cmVTZXQoIkFib3ZlT3JFcXVhbCIsIDppMzIpCisgICAgICAgIHdoZW4gImNwYWVxIgorICAgICAg
ICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNldCgiQWJvdmVPckVxdWFsIiwgOnB0cikKKyAg
ICAgICAgd2hlbiAiY3FhZXEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0
KCJBYm92ZU9yRXF1YWwiLCA6aTY0KQorICAgICAgICB3aGVuICJjaWIiLCAiY2JiIgorICAgICAg
ICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNldCgiQmVsb3ciLCA6aTMyKQorICAgICAgICB3
aGVuICJjcGIiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KCJCZWxvdyIs
IDpwdHIpCisgICAgICAgIHdoZW4gImNxYiIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludENv
bXBhcmVTZXQoIkJlbG93IiwgOmk2NCkKKyAgICAgICAgd2hlbiAiY2liZXEiLCAiY2JiZXEiCisg
ICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KCJCZWxvd09yRXF1YWwiLCA6aTMy
KQorICAgICAgICB3aGVuICJjcGJlcSIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludENvbXBh
cmVTZXQoIkJlbG93T3JFcXVhbCIsIDpwdHIpCisgICAgICAgIHdoZW4gImNxYmVxIgorICAgICAg
ICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNldCgiQmVsb3dPckVxdWFsIiwgOmk2NCkKKyAg
ICAgICAgd2hlbiAiY2lndCIsICJjYmd0IgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50Q29t
cGFyZVNldCgiR3JlYXRlciIsIDppMzIpCisgICAgICAgIHdoZW4gImNwZ3QiCisgICAgICAgICAg
ICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KCJHcmVhdGVyIiwgOnB0cikKKyAgICAgICAgd2hl
biAiY3FndCIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbUludENvbXBhcmVTZXQoIkdyZWF0ZXIi
LCA6aTY0KQorICAgICAgICB3aGVuICJjaWd0ZXEiLCAiY2JndGVxIgorICAgICAgICAgICAgaGFu
ZGxlT25sQXNtSW50Q29tcGFyZVNldCgiR3JlYXRlck9yRXF1YWwiLCA6aTMyKQorICAgICAgICB3
aGVuICJjcGd0ZXEiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21JbnRDb21wYXJlU2V0KCJHcmVh
dGVyT3JFcXVhbCIsIDpwdHIpCisgICAgICAgIHdoZW4gImNxZ3RlcSIKKyAgICAgICAgICAgIGhh
bmRsZU9ubEFzbUludENvbXBhcmVTZXQoIkdyZWF0ZXJPckVxdWFsIiwgOmk2NCkKKyAgICAgICAg
d2hlbiAiY2lsdCIsICJjYmx0IgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNl
dCgiTG93ZXIiLCA6aTMyKQorICAgICAgICB3aGVuICJjcGx0IgorICAgICAgICAgICAgaGFuZGxl
T25sQXNtSW50Q29tcGFyZVNldCgiTG93ZXIiLCA6cHRyKQorICAgICAgICB3aGVuICJjcWx0Igor
ICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNldCgiTG93ZXIiLCA6aTY0KQorICAg
ICAgICB3aGVuICJjaWx0ZXEiLCAiY2JsdGVxIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50
Q29tcGFyZVNldCgiTG93ZXJPckVxdWFsIiwgOmkzMikKKyAgICAgICAgd2hlbiAiY3BsdGVxIgor
ICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50Q29tcGFyZVNldCgiTG93ZXJPckVxdWFsIiwgOnB0
cikKKyAgICAgICAgd2hlbiAiY3FsdGVxIgorICAgICAgICAgICAgaGFuZGxlT25sQXNtSW50Q29t
cGFyZVNldCgiTG93ZXJPckVxdWFsIiwgOmk2NCkKKyAgICAgICAgd2hlbiAidGlzIiwgInRicyIK
KyAgICAgICAgICAgIGhhbmRsZU9ubEFzbVNldFRlc3QoIlNpZ25lZCIsIDppMzIpCisgICAgICAg
IHdoZW4gInRpeiIsICJ0YnoiCisgICAgICAgICAgICBoYW5kbGVPbmxBc21TZXRUZXN0KCJaZXJv
IiwgOmkzMikKKyAgICAgICAgd2hlbiAidGlueiIsICJ0Ym56IgorICAgICAgICAgICAgaGFuZGxl
T25sQXNtU2V0VGVzdCgiTm9uWmVybyIsIDppMzIpCisgICAgICAgIHdoZW4gInRwcyIKKyAgICAg
ICAgICAgIGhhbmRsZU9ubEFzbVNldFRlc3QoIlNpZ25lZCIsIDpwdHIpCisgICAgICAgIHdoZW4g
InRweiIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbVNldFRlc3QoIlplcm8iLCA6cHRyKQorICAg
ICAgICB3aGVuICJ0cG56IgorICAgICAgICAgICAgaGFuZGxlT25sQXNtU2V0VGVzdCgiTm9uWmVy
byIsIDpwdHIpCisgICAgICAgIHdoZW4gInRxcyIKKyAgICAgICAgICAgIGhhbmRsZU9ubEFzbVNl
dFRlc3QoIlNpZ25lZCIsIDppNjQpCisgICAgICAgIHdoZW4gInRxeiIKKyAgICAgICAgICAgIGhh
bmRsZU9ubEFzbVNldFRlc3QoIlplcm8iLCA6aTY0KQorICAgICAgICB3aGVuICJ0cW56IgorICAg
ICAgICAgICAgaGFuZGxlT25sQXNtU2V0VGVzdCgiTm9uWmVybyIsIDppNjQpCisgICAgICAgIHdo
ZW4gInBlZWsiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5wZWVrKCN7b3BlcmFuZHNbMV0u
b25sQXNtT3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMF0udmFsdWV9KTsiCisgICAgICAgIHdo
ZW4gInBva2UiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5wb2tlKCN7b3BlcmFuZHNbMF0u
b25sQXNtT3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMV0udmFsdWV9KTsiCisgICAgICAgIHdo
ZW4gImNkcWkiCisgICAgICAgICAgICByYWlzZSB1bmxlc3MgJG9ubGluZUFzbUJhY2tlbmRGb3Ig
PT0gIlg4Nl82NCIKKyAgICAgICAgICAgICRhc20ucHV0YyAiaml0Lng4NkNvbnZlcnRUb0RvdWJs
ZVdvcmQzMigpOyIKKyAgICAgICAgd2hlbiAiaWRpdmkiCisgICAgICAgICAgICByYWlzZSB1bmxl
c3MgJG9ubGluZUFzbUJhY2tlbmRGb3IgPT0gIlg4Nl82NCIKKyAgICAgICAgICAgICRhc20ucHV0
YyAiaml0Lng4NkRpdiN7b25sQXNtU3VmZml4KDppMzIpfSgje29wZXJhbmRzWzBdLm9ubEFzbU9w
ZXJhbmQoOmkzMil9KTsiCisgICAgICAgIHdoZW4gImZxMmQiCisgICAgICAgICAgICAkYXNtLnB1
dGMgImppdC5tb3ZlNjRUb0RvdWJsZSgje29wZXJhbmRzWzBdLm9ubEFzbU9wZXJhbmQoOmk2NCl9
LCAje29wZXJhbmRzWzFdLm9ubEFzbU9wZXJhbmQoOmRvdWJsZSl9KTsiCisgICAgICAgIHdoZW4g
ImZkMnEiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5tb3ZlRG91YmxlVG82NCgje29wZXJh
bmRzWzBdLm9ubEFzbU9wZXJhbmQoOmRvdWJsZSl9LCAje29wZXJhbmRzWzFdLm9ubEFzbU9wZXJh
bmQoOmk2NCl9KTsiCisgICAgICAgIHdoZW4gImxlYWkiCisgICAgICAgICAgICBvcGVyYW5kc1sw
XS5vbmxBc21FbWl0TGVhKG9wZXJhbmRzWzFdLCA6aW50KQorICAgICAgICB3aGVuICJsZWFwIgor
ICAgICAgICAgICAgb3BlcmFuZHNbMF0ub25sQXNtRW1pdExlYShvcGVyYW5kc1sxXSwgOnB0cikK
KyAgICAgICAgd2hlbiAibWVtZmVuY2UiCisgICAgICAgICAgICAkYXNtLnB1dGMgImppdC5tZW1v
cnlGZW5jZSgpOyIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG93ZXJEZWZhdWx0CisgICAg
ICAgIGVuZAorICAgIGVuZAorZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9zZXR0aW5ncy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L3NldHRpbmdzLnJiCmluZGV4IGVlYzA5MjUuLmQzZWVlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NldHRpbmdzLnJiCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3NldHRpbmdzLnJiCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDcgKzI4LDcgQEAgcmVxdWlyZSAicGFyc2VyIgogcmVx
dWlyZSAidHJhbnNmb3JtIgogCiAjCi0jIGNvbXB1dGVTZXR0aW5nc0NvbWJpbmF0aW9ucyhhc3Qp
IC0+IHNldHRpbmdzQ29tYmlhdGlvbnMKKyMgY29tcHV0ZVNldHRpbmdzQ29tYmluYXRpb25zKGFz
dCkgLT4gc2V0dGluZ3NDb21iaW5hdGlvbnMKICMKICMgQ29tcHV0ZXMgYW4gYXJyYXkgb2Ygc2V0
dGluZ3MgbWFwcywgd2hlcmUgYSBzZXR0aW5ncyBtYXAgY29uc3RpdHV0ZXMKICMgYSBjb25maWd1
cmF0aW9uIGZvciB0aGUgYXNzZW1ibHkgY29kZSBiZWluZyBnZW5lcmF0ZWQuIFRoZSBtYXAKQEAg
LTc2LDcgKzc2LDcgQEAgZGVmIGNvbXB1dGVTZXR0aW5nc0NvbWJpbmF0aW9ucyhhc3QpCiAgICAg
ICAgIG1hcFtiYWNrZW5kXSA9IHRydWUKICAgICAgICAgc2V0dGluZ3NDb21iaW5hdG9yKHNldHRp
bmdzQ29tYmluYXRpb25zLCBtYXAsIG5vbkJhY2tlbmRTZXR0aW5ncykKICAgICB9Ci0gICAgCisK
ICAgICBzZXR0aW5nc0NvbWJpbmF0aW9ucwogZW5kCiAKQEAgLTE5Myw3ICsxOTMsMTAgQEAgZW5k
CiBkZWYgZW1pdENvZGVJbkNvbmZpZ3VyYXRpb24oY29uY3JldGVTZXR0aW5ncywgYXN0LCBiYWNr
ZW5kKQogICAgIExhYmVsLnJlc2V0UmVmZXJlbmNlZAogCi0gICAgaWYgISRlbWl0V2luQXNtCisg
ICAgaWYgJGVtaXRPbmxpbmVBc20KKyAgICAgICAgJG91dHB1dC5wdXRzICIjaWYgIWRlZmluZWQo
T05MSU5FX0FTU0VNQkxZX0gpIgorICAgICAgICAkb3V0cHV0LnB1dHMgIiNkZWZpbmUgT05MSU5F
X0FTU0VNQkxZX0giCisgICAgZWxzaWYgISRlbWl0V2luQXNtCiAgICAgICAgICRvdXRwdXQucHV0
cyBjcHBTZXR0aW5nc1Rlc3QoY29uY3JldGVTZXR0aW5ncykKICAgICBlbHNlCiAgICAgICAgIGlm
IGJhY2tlbmQgPT0gIlg4Nl9XSU4iCkBAIC0yNDQsNiArMjQ3LDMgQEAgZGVmIGVtaXRDb2RlSW5B
bGxDb25maWd1cmF0aW9ucyhhc3QpCiAgICAgICAgICRvdXRwdXQucHV0cyAiI2VuZGlmIgogICAg
IH0KIGVuZAotCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4
IDRiZTVmNWQuLjcxNzJiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKQEAgLTExOCw2ICsxMTgsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVBc3luY0l0ZXJhdGlv
biA9IGZhbHNlOwogICAgIHYob3B0aW9uU3RyaW5nLCBjb25maWdGaWxlLCBudWxscHRyLCBOb3Jt
YWwsICJmaWxlIHRvIGNvbmZpZ3VyZSBKU0Mgb3B0aW9ucyBhbmQgbG9nZ2luZyBsb2NhdGlvbiIp
IFwKICAgICBcCiAgICAgdihib29sLCB1c2VMTEludCwgIHRydWUsIE5vcm1hbCwgImFsbG93cyB0
aGUgTExJTlQgdG8gYmUgdXNlZCBpZiB0cnVlIikgXAorICAgIHYoYm9vbCwgdXNlT25saW5lTExJ
bnQsICB0cnVlLCBOb3JtYWwsICJhbGxvd3MgdGhlIG9ubGluZSBMTElOVCB0byBiZSB1c2VkIGlm
IHRydWUiKSBcCiAgICAgdihib29sLCB1c2VKSVQsICAgIHRydWUsIE5vcm1hbCwgImFsbG93cyB0
aGUgZXhlY3V0YWJsZSBwYWdlcyB0byBiZSBhbGxvY2F0ZWQgZm9yIEpJVCBhbmQgdGh1bmtzIGlm
IHRydWUiKSBcCiAgICAgdihib29sLCB1c2VCYXNlbGluZUpJVCwgdHJ1ZSwgTm9ybWFsLCAiYWxs
b3dzIHRoZSBiYXNlbGluZSBKSVQgdG8gYmUgdXNlZCBpZiB0cnVlIikgXAogICAgIHYoYm9vbCwg
dXNlREZHSklULCB0cnVlLCBOb3JtYWwsICJhbGxvd3MgdGhlIERGRyBKSVQgdG8gYmUgdXNlZCBp
ZiB0cnVlIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGlu
Z1Byb2ZpbGVyLmNwcAppbmRleCA5NzI3YzE4Li5jNzBhZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIyNyw3ICsy
MjcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChpc0NGcmFt
ZSgpKSB7Ci0gICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIUxMSW50Ojppc0xMSW50UEMo
ZnJhbWUoKS0+Y2FsbGVyRnJhbWUpKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCgh
TExJbnQ6OmlzTExJbnRPZmZsaW5lUEMoZnJhbWUoKS0+Y2FsbGVyRnJhbWUpKTsKICAgICAgICAg
ICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGZyYW1l
KCktPnBjKTsKICAgICAgICAgICAgICAgICBtX2RlcHRoKys7CiAgICAgICAgICAgICB9IGVsc2UK
QEAgLTM2Nyw3ICszNjcsOCBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1wbGUoY29u
c3QgQWJzdHJhY3RMb2NrZXImLCBTZWNvbmRzJiBzdGFja1RyYWNlUHJvYwogICAgICAgICAgICAg
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNzI5
CiAgICAgICAgICAgICAgICAgICAgIGNhbGxGcmFtZSA9IG1fdm0udG9wQ2FsbEZyYW1lOyAvLyBX
ZSBuZWVkIHRvIGRvIHRoaXMgb3IgZWxzZSB3ZSdkIGZhaWwgb3VyIGJhY2t0cmFjZSB2YWxpZGF0
aW9uIGIvYyB0aGlzIGlzbid0IGEgSlMgZnJhbWUuCiAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfSBlbHNlIGlmIChMTEludDo6aXNMTEludFBDKG1hY2hpbmVQQykpIHsKKyAgICAgICAg
ICAgICAgICAvLyBGSVhNRSBkZXRlY3QgTExJbnRPbmxpbmVQQyBpbiBFeGVjdXRhYmxlQWxsb2Nh
dG9yIGFuZCBzZXQgdG9wRnJhbWVJc0xMSW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAoTExJbnQ6OmlzTExJbnRPZmZsaW5lUEMobWFjaGluZVBDKSkgewogICAgICAgICAgICAgICAg
IHRvcEZyYW1lSXNMTEludCA9IHRydWU7CiAgICAgICAgICAgICAgICAgLy8gV2UncmUgb2theSB0
byB0YWtlIGEgbm9ybWFsIHN0YWNrIHRyYWNlIHdoZW4gdGhlIFBDCiAgICAgICAgICAgICAgICAg
Ly8gaXMgaW4gTExJbnQgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFw
cy5jcHAKaW5kZXggOTIxY2Q5NC4uYjAwNmUwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Ny0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgVk1UcmFwczo6dHJ5SW5zdGFs
bFRyYXBCcmVha3BvaW50cyhTaWduYWxDb250ZXh0JiBjb250ZXh0LCBTdGFja0JvdW5kcyBzdGFj
CiAgICAgaWYgKCFjb2RlQmxvY2tTZXRMb2NrZXIpCiAgICAgICAgIHJldHVybjsgLy8gTGV0IHRo
ZSBTaWduYWxTZW5kZXIgdHJ5IGFnYWluIGxhdGVyLgogCi0gICAgaWYgKCFpc0pJVFBDKHRyYXBQ
QykgJiYgIUxMSW50Ojppc0xMSW50UEModHJhcFBDKSkgeworICAgIGlmICghaXNKSVRQQyh0cmFw
UEMpICYmICFMTEludDo6aXNMTEludE9mZmxpbmVQQyh0cmFwUEMpKSB7CiAgICAgICAgIC8vIFdl
IHJlc29ydCB0byB0b3BDYWxsRnJhbWUgdG8gc2VlIGlmIHdlIGNhbiBnZXQgYW55dGhpbmcKICAg
ICAgICAgLy8gdXNlZnVsLiBXZSB1c3VhbGx5IGdldCBoZXJlIHdoZW4gd2UncmUgZXhlY3V0aW5n
IEMgY29kZS4KICAgICAgICAgY2FsbEZyYW1lID0gc2FuaXRpemVkVG9wQ2FsbEZyYW1lKHZtLnRv
cENhbGxGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCA4YjY0YWQxLi45ZWJlMzgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKQEAgLTk2Niw2ICs5NjYsMTcgQEAKICNkZWZpbmUgVVNFX0xMSU5UX0VNQkVEREVEX09QQ09E
RV9JRCAxCiAjZW5kaWYKIAorLyogVGhlIGxsaW50IG9ubGluZSBhc3NlbWJsZXIgZ2VuZXJhdGVz
IGFuIGludGVycHJldGVyIHVzaW5nIHRoZSBtYWNybworICAgYXNzZW1ibGVyLCB3aGljaCBpcyB0
aGVuIHVzZWQgaW5zdGVhZCBvZiB0aGUgb2ZmbGluZS1hc3NlbWJsZWQgb25lLiAqLworI2lmIEVO
QUJMRShKSVQpICYmICFDT01QSUxFUihNU1ZDKSAmJiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0
KSkKKyNpZiAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKKyNlcnJvciBMTEludCBvbmxp
bmUgYXNzZW1ibGVyIHJlcXVpcmVzIGNvbXB1dGVkIGdvdG8gb3Bjb2RlcworI2VuZGlmCisjZGVm
aW5lIEVOQUJMRV9MTElOVF9PTkxJTkVfQVNTRU1CTEVSIDEKKyNlbHNlCisjZGVmaW5lIEVOQUJM
RV9MTElOVF9PTkxJTkVfQVNTRU1CTEVSIDAKKyNlbmRpZgorCiAvKiBSZWd1bGFyIEV4cHJlc3Np
b24gVHJhY2luZyAtIFNldCB0byAxIHRvIHRyYWNlIFJlZ0V4cCdzIGluIGpzYy4gIFJlc3VsdHMg
ZHVtcGVkIGF0IGV4aXQgKi8KICNkZWZpbmUgRU5BQkxFX1JFR0VYUF9UUkFDSU5HIDAKIAotLSAK
Mi45LjMKCg==
</data>
<flag name="commit-queue"
          id="355357"
          type_id="3"
          status="-"
          setter="jfbastien"
    />
          </attachment>
      

    </bug>

</bugzilla>