<?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>153189</bug_id>
          
          <creation_ts>2016-01-16 18:51:54 -0800</creation_ts>
          <short_desc>[CMake] Unclear distinction between WebKitHelpers and WebKitMacros</short_desc>
          <delta_ts>2017-07-14 13:29:47 -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>WebKit Misc.</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>lforschler</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1156248</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-16 18:51:54 -0800</bug_when>
    <thetext>What is the difference between WebKitHelpers.cmake and WebKitMacros.cmake?

If nobody knows, I am thinking we should merge the contents of WebKitHelpers.cmake into WebKitMacros.cmake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156998</commentid>
    <comment_count>1</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-20 11:38:07 -0800</bug_when>
    <thetext>I think the two could be merged.  I also think that many of the macros are only used in  WebCore, and those macros should be defined in WebCore/CMakeLists.txt.  cmake/WebKitMacros.cmake should be for macros that are shared by multiple projects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328851</commentid>
    <comment_count>2</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-07-14 10:45:24 -0700</bug_when>
    <thetext>+1 for merge. There are even duplications between two files, e.g. ADD_SOURCE_DEPENDENCIES</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328853</commentid>
    <comment_count>3</comment_count>
      <attachid>315445</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-07-14 10:47:16 -0700</bug_when>
    <thetext>Created attachment 315445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328859</commentid>
    <comment_count>4</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-07-14 10:54:39 -0700</bug_when>
    <thetext>I don&apos;t like that macros (especially large ones) are thrown into thick of WebCore/CMakeLists.txt

I usually try to group macros at the top of the file, though here it may be a better idea to introduce separate WebCoreMacros.cmake file

Rationale is that &quot;regular&quot; cmake code is usually more readable (maybe almost declarative in good cases) than macro code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328881</commentid>
    <comment_count>5</comment_count>
      <attachid>315459</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-07-14 11:16:23 -0700</bug_when>
    <thetext>Created attachment 315459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328887</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-07-14 11:19:41 -0700</bug_when>
    <thetext>OK, I added WebCoreMacros.cmake. Please check to see if you approve of the hack I used to include it in WebCore/CMakeLists.txt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328900</commentid>
    <comment_count>7</comment_count>
      <attachid>315459</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-07-14 11:29:12 -0700</bug_when>
    <thetext>Comment on attachment 315459
Patch

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

&gt; Source/WebCore/CMakeLists.txt:7
&gt; +include(WebCoreMacros)

Just include(WebCoreMacros.cmake), no need to change module path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328939</commentid>
    <comment_count>8</comment_count>
      <attachid>315471</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-07-14 12:27:14 -0700</bug_when>
    <thetext>Created attachment 315471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328940</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-07-14 12:27:40 -0700</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #7)
&gt; Just include(WebCoreMacros.cmake), no need to change module path

OK, good tip!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328970</commentid>
    <comment_count>10</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2017-07-14 13:24:56 -0700</bug_when>
    <thetext>&gt; OK, I added WebCoreMacros.cmake. Please check to see if you approve of the
&gt; hack I used to include it in WebCore/CMakeLists.txt.

(In reply to Michael Catanzaro from comment #6)

+1 for WebCoreMacros.cmake!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328976</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-07-14 13:29:47 -0700</bug_when>
    <thetext>Committed r219522: &lt;http://trac.webkit.org/changeset/219522&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315445</attachid>
            <date>2017-07-14 10:47:16 -0700</date>
            <delta_ts>2017-07-14 11:16:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153189-20170714124714.patch</filename>
            <type>text/plain</type>
            <size>42459</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk4Y2NhZmM4OWQ3MTZk
NzhhMmZkOWI1Y2VhNTI3MjA4ZWVlM2UxMC4uM2FiYzA2NmUwOWFjMmE5Y2NiNjVjZDI4MDkzNzMy
Nzg2ZGUyZDAxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTA3LTE0ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2Vd
IFVuY2xlYXIgZGlzdGluY3Rpb24gYmV0d2VlbiBXZWJLaXRIZWxwZXJzIGFuZCBXZWJLaXRNYWNy
b3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzE4
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBs
b2NhdGlvbiBmb3IgbWFjcm9zIHRoYXQgYXJlIGV4Y2x1c2l2ZWx5IG5lZWRlZCBoZXJlLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisKIDIwMTctMDctMTMgIE1pY2hhZWwgQ2F0YW56YXJv
ICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBjb21waWxlciB3YXJuaW5n
cyB3aGVuIGJ1aWxkaW5nIHdpdGggR0NDIDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzI2MWRlOGFlNjRmNDhkMTJm
ZWQ3MzdkYTAyMWY4OGY1MWY1YjlhMC4uNjZmMTI0ZTE5YzhhZDc2ODI5MDBiNmU3ZDNiN2I0NmEy
MjBlM2U1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNy0xNCAgTWljaGFlbCBD
YXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtlXSBVbmNs
ZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gV2ViS2l0SGVscGVycyBhbmQgV2ViS2l0TWFjcm9zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMxODkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgbG9jYXRp
b24gZm9yIG1hY3JvcyB0aGF0IGFyZSBleGNsdXNpdmVseSBuZWVkZWQgaGVyZS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDE3LTA3LTEzICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBlbXB0eSBwcm9qZWN0IGRpcmVjdG9yaWVzIGxl
ZnQgYmVoaW5kIGFmdGVyIHRoZSByZW5hbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmRjMTdj
ODY5MmRjM2I3NjJhNGFjY2ZkNzRmYTUxOGE3MjkzMGJlYi4uMGUzZDJhNTQzYjA4ZTY1NjJkOThh
OWY5NTBlZGRlOGM2MzBlZTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMwMjYsNiArMzAy
NiwzNiBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMKICAgICAke1dlYkNvcmVfU1ZHX0lETF9GSUxF
U30KICkKIAorIyBIZWxwZXIgbWFjcm8gZm9yIHVzaW5nIGFsbC1pbi1vbmUgYnVpbGRzCisjIFRo
aXMgbWFjcm8gcmVtb3ZlcyB0aGUgc291cmNlcyBpbmNsdWRlZCBpbiB0aGUgX2FsbF9pbl9vbmVf
ZmlsZSBmcm9tIHRoZSBpbnB1dCBfZmlsZV9saXN0LgorIyBfZmlsZV9saXN0IGlzIGEgbGlzdCBv
ZiBzb3VyY2UgZmlsZXMKKyMgX2FsbF9pbl9vbmVfZmlsZSBpcyBhbiBhbGwtaW4tb25lIGNwcCBm
aWxlIGluY2x1ZGVzIG90aGVyIGNwcCBmaWxlcworIyBfcmVzdWx0X2ZpbGVfbGlzdCBpcyB0aGUg
b3V0cHV0IGZpbGUgbGlzdAorbWFjcm8oUFJPQ0VTU19BTExJTk9ORV9GSUxFIF9maWxlX2xpc3Qg
X2FsbF9pbl9vbmVfZmlsZSBfcmVzdWx0X2ZpbGVfbGlzdCBfbm9fY29tcGlsZSkKKyAgICBmaWxl
KFNUUklOR1MgJHtfYWxsX2luX29uZV9maWxlfSBfYWxsX2luX29uZV9maWxlX2NvbnRlbnQpCisg
ICAgc2V0KCR7X3Jlc3VsdF9maWxlX2xpc3R9ICR7X2ZpbGVfbGlzdH0pCisgICAgc2V0KF9hbGxp
bnMgIiIpCisgICAgZm9yZWFjaCAoX2xpbmUgJHtfYWxsX2luX29uZV9maWxlX2NvbnRlbnR9KQor
ICAgICAgICBzdHJpbmcoUkVHRVggTUFUQ0ggIl4jaW5jbHVkZSBbXCI8XSguKilbXCI+XSIgX2Zv
dW5kICR7X2xpbmV9KQorICAgICAgICBpZiAoX2ZvdW5kKQorICAgICAgICAgICAgbGlzdChBUFBF
TkQgX2FsbGlucyAke0NNQUtFX01BVENIXzF9KQorICAgICAgICBlbmRpZiAoKQorICAgIGVuZGZv
cmVhY2ggKCkKKworICAgIGZvcmVhY2ggKF9hbGxpbiAke19hbGxpbnN9KQorICAgICAgICBpZiAo
JHtfbm9fY29tcGlsZX0pCisgICAgICAgICAgICAjIEZvciBEZXJpdmVkU291cmNlcy5jcHAsIHdl
IHN0aWxsIG5lZWQgdGhlIGRlcml2ZWQgc291cmNlcyB0byBiZSBnZW5lcmF0ZWQsIGJ1dCB3ZSBk
byBub3Qgd2FudCB0aGVtIHRvIGJlIGNvbXBpbGVkCisgICAgICAgICAgICAjIGluZGl2aWR1YWxs
eS4gV2UgYWRkIHRoZSBoZWFkZXIgdG8gdGhlIHJlc3VsdCBmaWxlIGxpc3Qgc28gdGhhdCBDTWFr
ZSBrbm93cyB0byBrZWVwIGdlbmVyYXRpbmcgdGhlIGZpbGVzLgorICAgICAgICAgICAgc3RyaW5n
KFJFR0VYIFJFUExBQ0UgIiguKilcXC5jcHAiICJcXDEiIF9hbGxpbl9ub19leHQgJHtfYWxsaW59
KQorICAgICAgICAgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIjsoW147XSovKSR7X2FsbGluX25v
X2V4dH1cXC5jcHA7IiAiO1xcMSR7X2FsbGluX25vX2V4dH0uaDsiIF9uZXdfcmVzdWx0ICIkeyR7
X3Jlc3VsdF9maWxlX2xpc3R9fTsiKQorICAgICAgICBlbHNlICgpCisgICAgICAgICAgICBzdHJp
bmcoUkVHRVggUkVQTEFDRSAiO1teO10qLyR7X2FsbGlufTsiICI7IiBfbmV3X3Jlc3VsdCAiJHsk
e19yZXN1bHRfZmlsZV9saXN0fX07IikKKyAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgc2V0KCR7
X3Jlc3VsdF9maWxlX2xpc3R9ICR7X25ld19yZXN1bHR9KQorICAgIGVuZGZvcmVhY2ggKCkKKwor
ZW5kbWFjcm8oKQorCiBpZiAoRU5BQkxFX0FMTElOT05FX0JVSUxEKQogICAgIG1lc3NhZ2UoU1RB
VFVTICJBbGwtaW4tT25lIGJ1aWxkIGlzIGVuYWJsZWQuIikKICAgICBzZXQoYWxsSW5PbmVzCkBA
IC0zNjA5LDYgKzM2MzksMjUgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogbGlzdChBUFBFTkQgV2Vi
Q29yZV9ERVJJVkVEX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbW1h
bmRMaW5lQVBJTW9kdWxlU291cmNlLmgpCiAKIAorbWFjcm8oTUFLRV9IQVNIX1RPT0xTIF9zb3Vy
Y2UpCisgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19zb3VyY2V9IE5BTUVfV0Up
CisKKyAgICBpZiAoJHtfc291cmNlfSBTVFJFUVVBTCAiRG9jVHlwZVN0cmluZ3MiKQorICAgICAg
ICBzZXQoX2hhc2hfdG9vbHNfaCAiJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0hhc2hU
b29scy5oIikKKyAgICBlbHNlICgpCisgICAgICAgIHNldChfaGFzaF90b29sc19oICIiKQorICAg
IGVuZGlmICgpCisKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX0uY3BwICR7X2hhc2hfdG9vbHNfaH0K
KyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X3NvdXJjZX0uZ3BlcmYKKyAgICAgICAgQ09NTUFO
RCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vbWFrZS1oYXNoLXRvb2xzLnBsICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAke19zb3VyY2V9LmdwZXJmICR7R1BFUkZfRVhF
Q1VUQUJMRX0KKyAgICAgICAgVkVSQkFUSU0pCisKKyAgICB1bnNldChfbmFtZSkKKyAgICB1bnNl
dChfaGFzaF90b29sc19oKQorZW5kbWFjcm8oKQorCiBNQUtFX0hBU0hfVE9PTFMoJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhKQogbGlzdChBUFBFTkQgV2ViQ29yZV9ERVJJVkVEX1NP
VVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0NvbG9yRGF0YS5jcHApCiAKQEAg
LTM2NjEsNiArMzcxMCwxOSBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgVkVSQkFUSU0pCiBs
aXN0KEFQUEVORCBXZWJDb3JlX0RFUklWRURfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vSFRUUEhlYWRlck5hbWVzLmNwcCkKIAorIyBBcHBlbmQgdGhlIGdpdmVuIGRlcGVu
ZGVuY2llcyB0byB0aGUgc291cmNlIGZpbGUKKyMgVGhpcyBvbmUgY29uc2lkZXIgdGhlIGdpdmVu
IGRlcGVuZGVuY2llcyBhcmUgaW4gJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CisjIGFu
ZCBwcmVwZW5kcyB0aGlzIHRvIGV2ZXJ5IG1lbWJlciBvZiBkZXBlbmRlbmNpZXMgbGlzdAorbWFj
cm8oQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5ERU5DSUVTIF9zb3VyY2UgX2RlcHMp
CisgICAgc2V0KF90bXAgIiIpCisgICAgZm9yZWFjaCAoZiAke19kZXBzfSkKKyAgICAgICAgbGlz
dChBUFBFTkQgX3RtcCAiJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7Zn0iKQorICAg
IGVuZGZvcmVhY2ggKCkKKworICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X3NvdXJjZX0g
JHtfdG1wfSkKKyAgICB1bnNldChfdG1wKQorZW5kbWFjcm8oKQorCiAjIEdlbmVyYXRlIENTUyBw
cm9wZXJ0eSBuYW1lcwogYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIE9VVFBVVCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vQ1NTUHJvcGVydGllcy5qc29uICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09S
RV9ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9DU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9T
dHlsZUJ1aWxkZXIuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TdHlsZVByb3Bl
cnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1N0
eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwCkBAIC0zNzE0LDYgKzM3NzYsMTUgQEAg
YWRkX2N1c3RvbV9jb21tYW5kKAogbGlzdChBUFBFTkQgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMg
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5j
cHApCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJ
Un0vY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgVXNl
ckFnZW50U3R5bGVTaGVldHMuaCkKIAorbWFjcm8oTUFLRV9KU19GSUxFX0FSUkFZUyBfb3V0cHV0
X2NwcCBfb3V0cHV0X2ggX25hbWVzcGFjZSBfc2NyaXB0cyBfc2NyaXB0c19kZXBlbmRlbmNpZXMp
CisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0X2h9ICR7
X291dHB1dF9jcHB9CisgICAgICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJ
Un0vbWFrZS1qcy1maWxlLWFycmF5cy5weSAkeyR7X3NjcmlwdHN9fQorICAgICAgICBDT01NQU5E
ICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L21ha2Ut
anMtZmlsZS1hcnJheXMucHkgLW4gJHtfbmFtZXNwYWNlfSAke19vdXRwdXRfaH0gJHtfb3V0cHV0
X2NwcH0gJHske19zY3JpcHRzfX0KKyAgICAgICAgVkVSQkFUSU0pCisgICAgQUREX1NPVVJDRV9E
RVBFTkRFTkNJRVMoJHske19zY3JpcHRzX2RlcGVuZGVuY2llc319ICR7X291dHB1dF9ofSAke19v
dXRwdXRfY3BwfSkKK2VuZG1hY3JvKCkKKwogaWYgKFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRT
KQogICAgICMgTmVjZXNzYXJ5IHZhcmlhYmxlczoKICAgICAjIFdlYkNvcmVfVVNFUl9BR0VOVF9T
Q1JJUFRTIGNvbnRhaW5pbmcgdGhlIEphdmFTY3JpcHQgc291cmNlcyBsaXN0CkBAIC0zNzYxLDYg
KzM4MzIsMTExIEBAIEFERF9TT1VSQ0VfV0VCQ09SRV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke1dF
QkNPUkVfRElSfS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgUGx1CiBzZXQoRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgIkxBTkdVQUdFX0pBVkFTQ1JJUFQgJHtGRUFUVVJFX0RFRklORVNfV0lUSF9T
UEFDRV9TRVBBUkFUT1J9IikKIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9JRExfRklM
RVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuaWRsKQogCitvcHRpb24oU0hPV19CSU5ESU5HU19HRU5FUkFUSU9OX1BST0dSRVNTICJTaG93
IHByb2dyZXNzIG9mIGdlbmVyYXRpbmcgYmluZGluZ3MiIE9GRikKKworIyBIZWxwZXIgbWFjcm8g
d2hpY2ggd3JhcHMgZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsIHNjcmlwdC4KKyMgICB0YXJnZXQg
aXMgYSBuZXcgdGFyZ2V0IG5hbWUgdG8gYmUgYWRkZWQKKyMgICBPVVRQVVRfU09VUkNFIGlzIGEg
bGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5lcmF0ZWQgc291cmNlcy4oZWcuIFdlYkNv
cmVfU09VUkNFUykKKyMgICBJTlBVVF9GSUxFUyBhcmUgSURMIGZpbGVzIHRvIGdlbmVyYXRlLgor
IyAgIEJBU0VfRElSIGlzIGJhc2UgZGlyZWN0b3J5IHdoZXJlIHNjcmlwdCBpcyBjYWxsZWQuCisj
ICAgSURMX0lOQ0xVREVTIGlzIHZhbHVlIG9mIC0taW5jbHVkZSBhcmd1bWVudC4gKGVnLiAke1dF
QkNPUkVfRElSfS9iaW5kaW5ncy9qcykKKyMgICBGRUFUVVJFUyBpcyBhIHZhbHVlIG9mIC0tZGVm
aW5lcyBhcmd1bWVudC4KKyMgICBERVNUSU5BVElPTiBpcyBhIHZhbHVlIG9mIC0tb3V0cHV0RGly
IGFyZ3VtZW50LgorIyAgIEdFTkVSQVRPUiBpcyBhIHZhbHVlIG9mIC0tZ2VuZXJhdG9yIGFyZ3Vt
ZW50LgorIyAgIFNVUFBMRU1FTlRBTF9ERVBGSUxFIGlzIGEgdmFsdWUgb2YgLS1zdXBwbGVtZW50
YWxEZXBlbmRlbmN5RmlsZS4gKG9wdGlvbmFsKQorIyAgIFBQX0VYVFJBX09VVFBVVCBpcyBleHRy
YSBvdXRwdXRzIG9mIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQorIyAgIFBQX0VYVFJB
X0FSR1MgaXMgZXh0cmEgYXJndW1lbnRzIGZvciBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25h
bCkKK2Z1bmN0aW9uKEdFTkVSQVRFX0JJTkRJTkdTIHRhcmdldCkKKyAgICBzZXQob3B0aW9ucykK
KyAgICBzZXQob25lVmFsdWVBcmdzIE9VVFBVVF9TT1VSQ0UgQkFTRV9ESVIgRkVBVFVSRVMgREVT
VElOQVRJT04gR0VORVJBVE9SIFNVUFBMRU1FTlRBTF9ERVBGSUxFKQorICAgIHNldChtdWx0aVZh
bHVlQXJncyBJTlBVVF9GSUxFUyBJRExfSU5DTFVERVMgUFBfRVhUUkFfT1VUUFVUIFBQX0VYVFJB
X0FSR1MpCisgICAgY21ha2VfcGFyc2VfYXJndW1lbnRzKGFyZyAiJHtvcHRpb25zfSIgIiR7b25l
VmFsdWVBcmdzfSIgIiR7bXVsdGlWYWx1ZUFyZ3N9IiAke0FSR059KQorICAgIHNldChiaW5kaW5n
X2dlbmVyYXRvciAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRp
bmdzLWFsbC5wbCkKKyAgICBzZXQoaWRsX2F0dHJpYnV0ZXNfZmlsZSAke1dFQkNPUkVfRElSfS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbikKKyAgICBzZXQoaWRsX2ZpbGVzX2xp
c3QgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2lkbF9maWxlc18ke3RhcmdldH0udG1wKQor
ICAgIHNldChfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kpCisKKyAgICBzZXQoY29udGVudCkKKyAg
ICBmb3JlYWNoIChmICR7YXJnX0lOUFVUX0ZJTEVTfSkKKyAgICAgICAgaWYgKE5PVCBJU19BQlNP
TFVURSAke2Z9KQorICAgICAgICAgICAgc2V0KGYgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
LyR7Zn0pCisgICAgICAgIGVuZGlmICgpCisgICAgICAgIHNldChjb250ZW50ICIke2NvbnRlbnR9
JHtmfVxuIikKKyAgICBlbmRmb3JlYWNoICgpCisgICAgZmlsZShXUklURSAke2lkbF9maWxlc19s
aXN0fSAke2NvbnRlbnR9KQorCisgICAgc2V0KGFyZ3MKKyAgICAgICAgLS1kZWZpbmVzICR7YXJn
X0ZFQVRVUkVTfQorICAgICAgICAtLWdlbmVyYXRvciAke2FyZ19HRU5FUkFUT1J9CisgICAgICAg
IC0tb3V0cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfQorICAgICAgICAtLWlkbEZpbGVzTGlzdCAk
e2lkbF9maWxlc19saXN0fQorICAgICAgICAtLXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVSQVRP
Ul9QUkVQUk9DRVNTT1J9IgorICAgICAgICAtLWlkbEF0dHJpYnV0ZXNGaWxlICR7aWRsX2F0dHJp
YnV0ZXNfZmlsZX0KKyAgICApCisgICAgaWYgKGFyZ19TVVBQTEVNRU5UQUxfREVQRklMRSkKKyAg
ICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICR7YXJn
X1NVUFBMRU1FTlRBTF9ERVBGSUxFfSkKKyAgICBlbmRpZiAoKQorICAgIGlmIChQUk9DRVNTT1Jf
Q09VTlQpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1udW1PZkpvYnMgJHtQUk9DRVNTT1Jf
Q09VTlR9KQorICAgIGVuZGlmICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfSURMX0lO
Q0xVREVTKQorICAgICAgICBpZiAoSVNfQUJTT0xVVEUgJHtpfSkKKyAgICAgICAgICAgIGxpc3Qo
QVBQRU5EIGFyZ3MgLS1pbmNsdWRlICR7aX0pCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAg
IGxpc3QoQVBQRU5EIGFyZ3MgLS1pbmNsdWRlICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8k
e2l9KQorICAgICAgICBlbmRpZiAoKQorICAgIGVuZGZvcmVhY2ggKCkKKyAgICBmb3JlYWNoIChp
IElOIExJU1RTIGFyZ19QUF9FWFRSQV9PVVRQVVQpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3Mg
LS1wcEV4dHJhT3V0cHV0ICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQorICAgIGZvcmVhY2ggKGkg
SU4gTElTVFMgYXJnX1BQX0VYVFJBX0FSR1MpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1w
cEV4dHJhQXJncyAke2l9KQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgIHNldChjb21tb25fZ2Vu
ZXJhdG9yX2RlcGVuZGVuY2llcworICAgICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3Jp
cHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisgICAgICAgICR7U0NSSVBUU19CSU5ESU5HU30KKyAg
ICAgICAgIyBDaGFuZ2luZyBlbmFibGVkIGZlYXR1cmVzIHNob3VsZCB0cmlnZ2VyIHJlY29tcGls
aW5nIGFsbCBJREwgZmlsZXMKKyAgICAgICAgIyBiZWNhdXNlIHNvbWUgb2YgdGhlbSB1c2UgI2lm
LgorICAgICAgICAke0NNQUtFX0JJTkFSWV9ESVJ9L2NtYWtlY29uZmlnLmgKKyAgICApCisgICAg
aWYgKEVYSVNUUyAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Ik
e2FyZ19HRU5FUkFUT1J9LnBtKQorICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9y
X2RlcGVuZGVuY2llcyAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQorICAgIGVuZGlmICgpCisgICAgaWYgKEVYSVNUUyAke2Fy
Z19CQVNFX0RJUn0vQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCisgICAgICAgIGxp
c3QoQVBQRU5EIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzICR7YXJnX0JBU0VfRElSfS9D
b2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKKyAgICBlbmRpZiAoKQorICAgIGZvcmVh
Y2ggKGkgSU4gTElTVFMgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMpCisgICAgICAgIGxp
c3QoQVBQRU5EIGFyZ3MgLS1nZW5lcmF0b3JEZXBlbmRlbmN5ICR7aX0pCisgICAgZW5kZm9yZWFj
aCAoKQorCisgICAgc2V0KGdlbl9zb3VyY2VzKQorICAgIHNldChnZW5faGVhZGVycykKKyAgICBm
b3JlYWNoIChfZmlsZSAke2FyZ19JTlBVVF9GSUxFU30pCisgICAgICAgIGdldF9maWxlbmFtZV9j
b21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICAgICAgbGlzdChBUFBFTkQgZ2Vu
X3NvdXJjZXMgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uY3BwKQorICAgICAgICBsaXN0
KEFQUEVORCBnZW5faGVhZGVycyAke2FyZ19ERVNUSU5BVElPTn0vSlMke19uYW1lfS5oKQorICAg
IGVuZGZvcmVhY2ggKCkKKyAgICBzZXQoJHthcmdfT1VUUFVUX1NPVVJDRX0gJHske2FyZ19PVVRQ
VVRfU09VUkNFfX0gJHtnZW5fc291cmNlc30gUEFSRU5UX1NDT1BFKQorICAgIHNldChhY3RfYXJn
cykKKyAgICBpZiAoU0hPV19CSU5ESU5HU19HRU5FUkFUSU9OX1BST0dSRVNTKQorICAgICAgICBs
aXN0KEFQUEVORCBhcmdzIC0tc2hvd1Byb2dyZXNzKQorICAgIGVuZGlmICgpCisgICAgaWYgKCR7
Q01BS0VfVkVSU0lPTn0gVkVSU0lPTl9MRVNTIDMuMikKKyAgICAgICAgc2V0X3NvdXJjZV9maWxl
c19wcm9wZXJ0aWVzKCR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9IFBST1BFUlRJRVMgR0VO
RVJBVEVEIDEpCisgICAgZWxzZSAoKQorICAgICAgICBsaXN0KEFQUEVORCBhY3RfYXJncyBCWVBS
T0RVQ1RTICR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9KQorICAgICAgICBpZiAoU0hPV19C
SU5ESU5HU19HRU5FUkFUSU9OX1BST0dSRVNTKQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYWN0
X2FyZ3MgVVNFU19URVJNSU5BTCkKKyAgICAgICAgZW5kaWYgKCkKKyAgICBlbmRpZiAoKQorICAg
IGFkZF9jdXN0b21fdGFyZ2V0KCR7dGFyZ2V0fQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVD
VVRBQkxFfSAke2JpbmRpbmdfZ2VuZXJhdG9yfSAke2FyZ3N9CisgICAgICAgIFdPUktJTkdfRElS
RUNUT1JZICR7YXJnX0JBU0VfRElSfQorICAgICAgICBDT01NRU5UICJHZW5lcmF0ZSBiaW5kaW5n
cyAoJHt0YXJnZXR9KSIKKyAgICAgICAgVkVSQkFUSU0gJHthY3RfYXJnc30pCitlbmRmdW5jdGlv
bigpCisKIEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VS
Q0UgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMKICAgICBJTlBVVF9GSUxFUyAke1dlYkNvcmVfSURM
X0ZJTEVTfQpAQCAtMzg2NCw2ICs0MDQwLDk3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJDb3JlSlNCdWlsCiBB
RERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vaHRt
bC9IVE1MVHJlZUJ1aWxkZXIuY3BwIE1hdGhNTE5hbWVzLmNwcCkKIAogCittYWNybyhHRU5FUkFU
RV9GT05UX05BTUVTIF9pbmZpbGUpCisgICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVf
RElSfS9kb20vbWFrZV9uYW1lcy5wbCkKKyAgICBzZXQoX2FyZ3VtZW50cyAgLS1mb250cyAke19p
bmZpbGV9KQorICAgIHNldChfb3V0cHV0ZmlsZXMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L1dlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L1dlYktpdEZvbnRGYW1pbHlOYW1lcy5oKQorCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAor
ICAgICAgICBPVVRQVVQgICR7X291dHB1dGZpbGVzfQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kg
JHtfaW5maWxlfQorICAgICAgICBERVBFTkRTICR7TUFLRV9OQU1FU19ERVBFTkRFTkNJRVN9ICR7
TkFNRVNfR0VORVJBVE9SfSAke1NDUklQVFNfQklORElOR1N9CisgICAgICAgIENPTU1BTkQgJHtQ
RVJMX0VYRUNVVEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLW91dHB1dERpciAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0gJHtfYXJndW1lbnRzfQorICAgICAgICBWRVJCQVRJTSkKK2Vu
ZG1hY3JvKCkKKworbWFjcm8oR0VORVJBVEVfRVZFTlRfRkFDVE9SWSBfaW5maWxlIF9vdXRmaWxl
KQorICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9tL21ha2VfZXZlbnRf
ZmFjdG9yeS5wbCkKKworICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KKyAgICAgICAgTUFJTl9E
RVBFTkRFTkNZICR7X2luZmlsZX0KKyAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0g
JHtTQ1JJUFRTX0JJTkRJTkdTfQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAk
e05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0cHV0RGlyICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfQorICAgICAgICBWRVJCQVRJTSkKK2VuZG1hY3JvKCkKKwor
bWFjcm8oR0VORVJBVEVfRVhDRVBUSU9OX0NPREVfREVTQ1JJUFRJT04gX2luZmlsZSBfb3V0Zmls
ZSkKKyAgICBzZXQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L2RvbS9tYWtlX2RvbV9l
eGNlcHRpb25zLnBsKQorCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQg
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19vdXRmaWxlfQorICAgICAgICBNQUlO
X0RFUEVOREVOQ1kgJHtfaW5maWxlfQorICAgICAgICBERVBFTkRTICR7TkFNRVNfR0VORVJBVE9S
fSAke1NDUklQVFNfQklORElOR1N9CisgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9
ICR7TkFNRVNfR0VORVJBVE9SfSAtLWlucHV0ICR7X2luZmlsZX0gLS1vdXRwdXREaXIgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CisgICAgICAgIFZFUkJBVElNKQorZW5kbWFjcm8oKQor
CittYWNybyhHRU5FUkFURV9TRVRUSU5HU19NQUNST1MgX2luZmlsZSBfb3V0ZmlsZSkKKyAgICBz
ZXQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCkK
KworICAgICMgRG8gbm90IGxpc3QgdGhlIG91dHB1dCBpbiBtb3JlIHRoYW4gb25lIGluZGVwZW5k
ZW50IHRhcmdldCB0aGF0IG1heQorICAgICMgYnVpbGQgaW4gcGFyYWxsZWwgb3IgdGhlIHR3byBp
bnN0YW5jZXMgb2YgdGhlIHJ1bGUgbWF5IGNvbmZsaWN0LgorICAgICMgPGh0dHBzOi8vY21ha2Uu
b3JnL2NtYWtlL2hlbHAvdjMuMC9jb21tYW5kL2FkZF9jdXN0b21fY29tbWFuZC5odG1sPgorICAg
IHNldChfZXh0cmFfb3V0cHV0CisgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgKKyAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuY3BwCisgICAgICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbAor
ICAgICkKKyAgICBzZXQoX2FyZ3MgQllQUk9EVUNUUyAke19leHRyYV9vdXRwdXR9KQorICAgIGlm
ICgke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAzLjIpCisgICAgICAgIHNldF9zb3VyY2Vf
ZmlsZXNfcHJvcGVydGllcygke19leHRyYV9vdXRwdXR9IFBST1BFUlRJRVMgR0VORVJBVEVEIDEp
CisgICAgICAgIHNldChfYXJncykKKyAgICBlbmRpZiAoKQorICAgIGFkZF9jdXN0b21fY29tbWFu
ZCgKKyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19vdXRm
aWxlfQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfaW5maWxlfQorICAgICAgICBERVBFTkRT
ICR7TkFNRVNfR0VORVJBVE9SfSAke1NDUklQVFNfQklORElOR1N9CisgICAgICAgIENPTU1BTkQg
JHtQRVJMX0VYRUNVVEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLWlucHV0ICR7X2luZmlsZX0g
LS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CisgICAgICAgIFZFUkJB
VElNICR7X2FyZ3N9KQorZW5kbWFjcm8oKQorCittYWNybyhHRU5FUkFURV9ET01fTkFNRVMgX25h
bWVzcGFjZSBfYXR0cnMpCisgICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9k
b20vbWFrZV9uYW1lcy5wbCkKKyAgICBzZXQoX2FyZ3VtZW50cyAgLS1hdHRycyAke19hdHRyc30p
CisgICAgc2V0KF9vdXRwdXRmaWxlcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtf
bmFtZXNwYWNlfU5hbWVzLmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFt
ZXNwYWNlfU5hbWVzLmgpCisgICAgc2V0KF9leHRyYWRlZikKKyAgICBzZXQoX3RhZ3MpCisKKyAg
ICBmb3JlYWNoIChmICR7QVJHTn0pCisgICAgICAgIGlmIChfdGFncykKKyAgICAgICAgICAgIHNl
dChfZXh0cmFkZWYgIiR7X2V4dHJhZGVmfSAke2Z9IikKKyAgICAgICAgZWxzZSAoKQorICAgICAg
ICAgICAgc2V0KF90YWdzICR7Zn0pCisgICAgICAgIGVuZGlmICgpCisgICAgZW5kZm9yZWFjaCAo
KQorCisgICAgaWYgKF90YWdzKQorICAgICAgICBzZXQoX2FyZ3VtZW50cyAiJHtfYXJndW1lbnRz
fSIgLS10YWdzICR7X3RhZ3N9IC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5KQorICAgICAgICBz
ZXQoX291dHB1dGZpbGVzICIke19vdXRwdXRmaWxlc30iICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS8ke19uYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkuY3BwICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19uYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkuaCAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVudFdy
YXBwZXJGYWN0b3J5LmgpCisgICAgZW5kaWYgKCkKKworICAgIGlmIChfZXh0cmFkZWYpCisgICAg
ICAgIHNldChfYWRkaXRpb25Bcmd1bWVudHMgIiR7X2FkZGl0aW9uQXJndW1lbnRzfSIgLS1leHRy
YURlZmluZXM9JHtfZXh0cmFkZWZ9KQorICAgIGVuZGlmICgpCisKKyAgICBhZGRfY3VzdG9tX2Nv
bW1hbmQoCisgICAgICAgIE9VVFBVVCAgJHtfb3V0cHV0ZmlsZXN9CisgICAgICAgIERFUEVORFMg
JHtNQUtFX05BTUVTX0RFUEVOREVOQ0lFU30gJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBUU19C
SU5ESU5HU30gJHtfYXR0cnN9ICR7X3RhZ3N9CisgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNV
VEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVSQVRP
Ul9QUkVQUk9DRVNTT1JfV0lUSF9MSU5FTUFSS0VSU30iIC0tb3V0cHV0RGlyICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfSAke19hcmd1bWVudHN9ICR7X2FkZGl0aW9uQXJndW1lbnRzfQor
ICAgICAgICBWRVJCQVRJTSkKK2VuZG1hY3JvKCkKKworCiBHRU5FUkFURV9ET01fTkFNRVMoSFRN
TCAke1dFQkNPUkVfRElSfS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAke1dFQkNPUkVfRElS
fS9odG1sL0hUTUxUYWdOYW1lcy5pbiAiIikKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9IVE1MTmFtZXMuY3BwICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9IVE1MRWxlbWVudEZhY3RvcnkuY3BwICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCBiODdjOTEzZmQwOWFjMDAxYmRjMGMwOTdlMDJmNmEwMjY3
NDdiNTc5Li5mYjE5ZmU0NTEyNWM5MjI2MzE3YTQ3NDg3MTlmNTk4YjIyMzM5YzM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTc2MSw3ICs3NjEsMjggQEAgc2V0KFdlYktpdDJfQVVUT01BVElPTl9Q
Uk9UT0NPTF9HRU5FUkFUT1JfRVhUUkFfRkxBR1MKIAogV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJ
TEVTX0lGX0VYSVNUUygpCiAKLUdFTkVSQVRFX1dFQktJVDJfTUVTU0FHRV9TT1VSQ0VTKFdlYktp
dDJfREVSSVZFRF9TT1VSQ0VTICIke1dlYktpdDJfTUVTU0FHRVNfSU5fRklMRVN9IikKKyMgSGVs
cGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYW5kIGdl
bmVyYXRlLW1lc3NhZ2UtaGVhZGVyLnB5IHNjcmlwdHMKKyMgICBfb3V0cHV0X3NvdXJjZSBpcyBh
IGxpc3QgbmFtZSB3aGljaCB3aWxsIGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBXZWJL
aXQyX1NPVVJDRVMpCisjICAgX2lucHV0X2ZpbGVzIGFyZSBtZXNzYWdlcy5pbiBmaWxlcyB0byBn
ZW5lcmF0ZS4KK21hY3JvKEdFTkVSQVRFX01FU1NBR0VfU09VUkNFUyBfb3V0cHV0X3NvdXJjZSBf
aW5wdXRfZmlsZXMpCisgICAgZm9yZWFjaCAoX2ZpbGUgJHtfaW5wdXRfZmlsZXN9KQorICAgICAg
ICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNF
U19XRUJLSVQyX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2ZXIuY3BwICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS8ke19uYW1lfU1lc3NhZ2VzLmgKKyAgICAgICAgICAgIE1BSU5fREVQ
RU5ERU5DWSAke19maWxlfQorICAgICAgICAgICAgREVQRU5EUyAke1dFQktJVDJfRElSfS9TY3Jp
cHRzL3dlYmtpdC9fX2luaXRfXy5weQorICAgICAgICAgICAgICAgICAgICAke1dFQktJVDJfRElS
fS9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorICAgICAgICAgICAgICAgICAgICAke1dFQktJ
VDJfRElSfS9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQorICAgICAgICAgICAgICAgICAgICAke1dF
QktJVDJfRElSfS9TY3JpcHRzL3dlYmtpdC9wYXJzZXIucHkKKyAgICAgICAgICAgIENPTU1BTkQg
JHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1tZXNz
YWdlLXJlY2VpdmVyLnB5ICR7X2ZpbGV9ID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9
LyR7X25hbWV9TWVzc2FnZVJlY2VpdmVyLmNwcAorICAgICAgICAgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2VzLWhl
YWRlci5weSAke19maWxlfSA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS8ke19uYW1l
fU1lc3NhZ2VzLmgKKyAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7V0VCS0lUMl9ESVJ9
CisgICAgICAgICAgICBWRVJCQVRJTSkKKworICAgICAgICBsaXN0KEFQUEVORCAke19vdXRwdXRf
c291cmNlfSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVj
ZWl2ZXIuY3BwKQorICAgIGVuZGZvcmVhY2ggKCkKK2VuZG1hY3JvKCkKK0dFTkVSQVRFX01FU1NB
R0VfU09VUkNFUyhXZWJLaXQyX0RFUklWRURfU09VUkNFUyAiJHtXZWJLaXQyX01FU1NBR0VTX0lO
X0ZJTEVTfSIpCiAKIHNldChXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfR0VORVJBVE9SX1ND
UklQVFMKICAgICAke1BST1RPQ09MX0dFTkVSQVRPUl9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUtaW5z
cGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0NvbW1vbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCmluZGV4
IDI2ZmMwYWY2NDlhZTZiNmVkNTQ3NGMxZGJlNmM5ODdhMGUzZGIyZDkuLjYyZTE4NWI3ODM4MThl
ZDg1Yzk2ZDY5NGI4MjExNmRmMTIyODEzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRp
b25zQ29tbW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCkBA
IC00NCw3ICs0NCw3IEBAIGlmIChDTUFLRV9HRU5FUkFUT1IgU1RSRVFVQUwgIk5pbmphIikKICAg
ICBlbmRpZiAoKQogZW5kaWYgKCkKIAotIyBGSVhNRTogU29tZSB3YXJuaW5nIGZsYWdzIHNob3Vs
ZCBwcm9iYWJseSBiZSBzZXQgaW4gV2ViS2l0SGVscGVycy5jbWFrZSBpbnN0ZWFkLgorIyBGSVhN
RTogU29tZSB3YXJuaW5nIGZsYWdzIHNob3VsZCBwcm9iYWJseSBiZSBzZXQgaW4gV0VCS0lUX1NF
VF9FWFRSQV9DT01QSUxFUl9GTEFHUyBpbnN0ZWFkLgogIyBCdXQgbGFuZ3VhZ2Utc3BlY2lmaWMg
d2FybmluZ3MgcHJvYmFibHkgY2Fubm90IGJlIG1vdmVkIHRoZXJlLgogaWYgKENPTVBJTEVSX0lT
X0dDQ19PUl9DTEFORykKICAgICBzZXQoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAt
Zm5vLXN0cmljdC1hbGlhc2luZyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDYxZTRjYjkzODFk
ZDU0Y2M4MTczNzZlNWI2NzA1YzVhMTg2MjQ1ZWIuLmQwZTM2ODI3M2RiNjU1NTY0YmZiYWNkZjA4
NDg3NWZmN2U2MDBjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC04LDYgKzgsMTIgQEAgc2V0
KFdFQktJVEdUS19BUElfVkVSU0lPTiA0LjApCiAKICMgTGlidG9vbCBsaWJyYXJ5IHZlcnNpb24s
IG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIEFQSSB2ZXJzaW9uLgogIyBTZWUgaHR0cDovL3d3dy5n
bnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvbWFudWFsL2h0bWxfbm9kZS9MaWJ0b29sLXZlcnNpb25p
bmcuaHRtbAorbWFjcm8oQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09MX1RS
SVBMRSBsaWJyYXJ5X25hbWUgY3VycmVudCByZXZpc2lvbiBhZ2UpCisgICAgbWF0aChFWFBSICR7
bGlicmFyeV9uYW1lfV9WRVJTSU9OX01BSk9SICIke2N1cnJlbnR9IC0gJHthZ2V9IikKKyAgICBz
ZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlOT1IgJHthZ2V9KQorICAgIHNldCgke2xpYnJh
cnlfbmFtZX1fVkVSU0lPTl9NSUNSTyAke3JldmlzaW9ufSkKKyAgICBzZXQoJHtsaWJyYXJ5X25h
bWV9X1ZFUlNJT04gJHske2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NQUpPUn0uJHthZ2V9LiR7cmV2
aXNpb259KQorZW5kbWFjcm8oKQogQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJU
T09MX1RSSVBMRShXRUJLSVQgNjAgMCAyMykKIENBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05TX0ZS
T01fTElCVE9PTF9UUklQTEUoSkFWQVNDUklQVENPUkUgMjQgNCA2KQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvV2ViS2l0Q29tbW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdENvbW1v
bi5jbWFrZQppbmRleCBiMGFlNTE0MGY4YTkwYmM3MjI2YzdjMzMwYWZmYzE3ZjdmZmZjZmIwLi5m
MmFkYzRjMWI1MmY1ZGRlMGZkMGVhN2IxYWViMGIyOGZiYmJmMjk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvV2ViS2l0Q29tbW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21t
b24uY21ha2UKQEAgLTM4LDcgKzM4LDYgQEAgaWYgKE5PVCBIQVNfUlVOX1dFQktJVF9DT01NT04p
CiAKICAgICBpbmNsdWRlKFdlYktpdE1hY3JvcykKICAgICBpbmNsdWRlKFdlYktpdEZTKQotICAg
IGluY2x1ZGUoV2ViS2l0SGVscGVycykKICAgICBpbmNsdWRlKFdlYktpdEZlYXR1cmVzKQogCiAg
ICAgaW5jbHVkZShPcHRpb25zQ29tbW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktp
dEhlbHBlcnMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU0NjM4M2YzOGMwY2Q1NjM1NmViNmY3ZDE2ZWViYWYx
ZWU3ZDgwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDEwOSAr
MCwwIEBACi1pbmNsdWRlKENNYWtlUGFyc2VBcmd1bWVudHMpCi0jIFNldHMgZXh0cmEgY29tcGls
ZSBmbGFncyBmb3IgYSB0YXJnZXQsIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcgdXNl
ZC4KLSMgQ3VycmVudGx5LCBvbmx5IEdDQyBpcyBzdXBwb3J0ZWQuCi1tYWNybyhXRUJLSVRfU0VU
X0VYVFJBX0NPTVBJTEVSX0ZMQUdTIF90YXJnZXQpCi0gICAgc2V0KG9wdGlvbnMgRU5BQkxFX1dF
UlJPUiBJR05PUkVDWFhfV0FSTklOR1MpCi0gICAgQ01BS0VfUEFSU0VfQVJHVU1FTlRTKCJPUFRJ
T04iICIke29wdGlvbnN9IiAiIiAiIiAke0FSR059KQotICAgIGlmIChDT01QSUxFUl9JU19HQ0Nf
T1JfQ0xBTkcpCi0gICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoT0xEX0NPTVBJTEVfRkxBR1Mg
JHtfdGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQotICAgICAgICBpZiAoJHtPTERfQ09NUElMRV9GTEFH
U30gU1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZPVU5EIikKLSAgICAgICAgICAgIHNl
dChPTERfQ09NUElMRV9GTEFHUyAiIikKLSAgICAgICAgZW5kaWYgKCkKLQotICAgICAgICBpZiAo
Tk9UIFdJTjMyKQotICAgICAgICAgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShUQVJHRVRfVFlQRSAk
e190YXJnZXR9IFRZUEUpCi0gICAgICAgICAgICBpZiAoJHtUQVJHRVRfVFlQRX0gU1RSRVFVQUwg
IlNUQVRJQ19MSUJSQVJZIikgIyAtZlBJQyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHNoYXJl
ZCBsaWJyYXJpZXMKLSAgICAgICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1mUElD
ICR7T0xEX0NPTVBJTEVfRkxBR1N9IikKLSAgICAgICAgICAgIGVuZGlmICgpCi0gICAgICAgIGVu
ZGlmICgpCi0KLSAgICAgICAgIyBTdXBwcmVzcyAtV3BhcmVudGhlc2VzLWVxdWFsaXR5IHdhcm5p
bmcgb2YgQ2xhbmcKLSAgICAgICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HKQotICAgICAgICAgICAg
c2V0KE9MRF9DT01QSUxFX0ZMQUdTICItV25vLXBhcmVudGhlc2VzLWVxdWFsaXR5ICR7T0xEX0NP
TVBJTEVfRkxBR1N9IikKLSAgICAgICAgZW5kaWYgKCkKLQotICAgICAgICAjIEVuYWJsZSB3YXJu
aW5ncyBieSBkZWZhdWx0Ci0gICAgICAgIGlmIChOT1QgJHtPUFRJT05fSUdOT1JFQ1hYX1dBUk5J
TkdTfSkKLSAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLVdhbGwgLVdleHRyYSAt
V2Nhc3QtYWxpZ24gLVdmb3JtYXQtc2VjdXJpdHkgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUg
LVdwb2ludGVyLWFyaXRoIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzICR7T0xEX0NPTVBJTEVfRkxB
R1N9IikKLSAgICAgICAgZW5kaWYgKCkKLQotICAgICAgICAjIEVuYWJsZSBlcnJvcnMgb24gd2Fy
bmluZwotICAgICAgICBpZiAoT1BUSU9OX0VOQUJMRV9XRVJST1IpCi0gICAgICAgICAgICBzZXQo
T0xEX0NPTVBJTEVfRkxBR1MgIi1XZXJyb3IgJHtPTERfQ09NUElMRV9GTEFHU30iKQotICAgICAg
ICBlbmRpZiAoKQotCi0gICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9IFBS
T1BFUlRJRVMKLSAgICAgICAgICAgIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJTEVfRkxBR1N9
IikKLQotICAgICAgICB1bnNldChPTERfQ09NUElMRV9GTEFHUykKLSAgICBlbmRpZiAoKQotZW5k
bWFjcm8oKQotCi0KLSMgQXBwZW5kIHRoZSBnaXZlbiBmbGFnIHRvIHRoZSB0YXJnZXQgcHJvcGVy
dHkuCi0jIEJ1aWxkcyBvbiB0b3Agb2YgZ2V0X3RhcmdldF9wcm9wZXJ0eSgpIGFuZCBzZXRfdGFy
Z2V0X3Byb3BlcnRpZXMoKQotbWFjcm8oQUREX1RBUkdFVF9QUk9QRVJUSUVTIF90YXJnZXQgX3By
b3BlcnR5IF9mbGFncykKLSAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KF90bXAgJHtfdGFyZ2V0fSAk
e19wcm9wZXJ0eX0pCi0gICAgaWYgKE5PVCBfdG1wKQotICAgICAgICBzZXQoX3RtcCAiIikKLSAg
ICBlbmRpZiAoTk9UIF90bXApCi0KLSAgICBmb3JlYWNoIChmICR7X2ZsYWdzfSkKLSAgICAgICAg
c2V0KF90bXAgIiR7X3RtcH0gJHtmfSIpCi0gICAgZW5kZm9yZWFjaCAoZiAke19mbGFnc30pCi0K
LSAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSBQUk9QRVJUSUVTICR7X3Byb3Bl
cnR5fSAke190bXB9KQotICAgIHVuc2V0KF90bXApCi1lbmRtYWNybyhBRERfVEFSR0VUX1BST1BF
UlRJRVMgX3RhcmdldCBfcHJvcGVydHkgX2ZsYWdzKQotCi0KLSMgQXBwZW5kIHRoZSBnaXZlbiBk
ZXBlbmRlbmNpZXMgdG8gdGhlIHNvdXJjZSBmaWxlCi1tYWNybyhBRERfU09VUkNFX0RFUEVOREVO
Q0lFUyBfc291cmNlIF9kZXBzKQotICAgIGdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfdG1wICR7
X3NvdXJjZX0gT0JKRUNUX0RFUEVORFMpCi0gICAgaWYgKE5PVCBfdG1wKQotICAgICAgICBzZXQo
X3RtcCAiIikKLSAgICBlbmRpZiAoKQotCi0gICAgZm9yZWFjaCAoZiAke19kZXBzfSkKLSAgICAg
ICAgbGlzdChBUFBFTkQgX3RtcCAiJHtmfSIpCi0gICAgZW5kZm9yZWFjaCAoKQotCi0gICAgc2V0
X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X3NvdXJjZX0gUFJPUEVSVElFUyBPQkpFQ1RfREVQ
RU5EUyAiJHtfdG1wfSIpCi0gICAgdW5zZXQoX3RtcCkKLWVuZG1hY3JvKCkKLQotCi0jIEFwcGVu
ZCB0aGUgZ2l2ZW4gZGVwZW5kZW5jaWVzIHRvIHRoZSBzb3VyY2UgZmlsZQotIyBUaGlzIG9uZSBj
b25zaWRlciB0aGUgZ2l2ZW4gZGVwZW5kZW5jaWVzIGFyZSBpbiAke0RFUklWRURfU09VUkNFU19X
RUJDT1JFX0RJUn0KLSMgYW5kIHByZXBlbmRzIHRoaXMgdG8gZXZlcnkgbWVtYmVyIG9mIGRlcGVu
ZGVuY2llcyBsaXN0Ci1tYWNybyhBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJ
RVMgX3NvdXJjZSBfZGVwcykKLSAgICBzZXQoX3RtcCAiIikKLSAgICBmb3JlYWNoIChmICR7X2Rl
cHN9KQotICAgICAgICBsaXN0KEFQUEVORCBfdG1wICIke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vJHtmfSIpCi0gICAgZW5kZm9yZWFjaCAoKQotCi0gICAgQUREX1NPVVJDRV9ERVBFTkRF
TkNJRVMoJHtfc291cmNlfSAke190bXB9KQotICAgIHVuc2V0KF90bXApCi1lbmRtYWNybygpCi0K
LW1hY3JvKENBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05TX0ZST01fTElCVE9PTF9UUklQTEUgbGli
cmFyeV9uYW1lIGN1cnJlbnQgcmV2aXNpb24gYWdlKQotICAgIG1hdGgoRVhQUiAke2xpYnJhcnlf
bmFtZX1fVkVSU0lPTl9NQUpPUiAiJHtjdXJyZW50fSAtICR7YWdlfSIpCi0gICAgc2V0KCR7bGli
cmFyeV9uYW1lfV9WRVJTSU9OX01JTk9SICR7YWdlfSkKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9
X1ZFUlNJT05fTUlDUk8gJHtyZXZpc2lvbn0pCi0gICAgc2V0KCR7bGlicmFyeV9uYW1lfV9WRVJT
SU9OICR7JHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUFKT1J9LiR7YWdlfS4ke3JldmlzaW9ufSkK
LWVuZG1hY3JvKCkKLQotbWFjcm8oUE9QVUxBVEVfTElCUkFSWV9WRVJTSU9OIGxpYnJhcnlfbmFt
ZSkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NQUpPUikKLSAgICBz
ZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUFKT1IgJHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9
KQotZW5kaWYgKCkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSU5P
UikKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlOT1IgJHtQUk9KRUNUX1ZFUlNJ
T05fTUlOT1J9KQotZW5kaWYgKCkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVS
U0lPTl9NSUNSTykKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlDUk8gJHtQUk9K
RUNUX1ZFUlNJT05fTUlDUk99KQotZW5kaWYgKCkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlf
bmFtZX1fVkVSU0lPTikKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT04gJHtQUk9KRUNU
X1ZFUlNJT059KQotZW5kaWYgKCkKLWVuZG1hY3JvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCmlu
ZGV4IGYyZmMzMTJmMDk5Zjc1ZjY5ZGQ0ZWMyM2Y1N2RhYWVhMDUzYmQyZTUuLjY0OTM3NTU5OTJk
MTBiZTMxNGZlNDAxMmRjYTEwOTJhZDRjNjBkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9X
ZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpA
QCAtMSwzICsxLDcgQEAKKyMgVGhpcyBmaWxlIGlzIGZvciBtYWNyb3MgdGhhdCBhcmUgdXNlZCBi
eSBtdWx0aXBsZSBwcm9qZWN0cy4gSWYgeW91ciBtYWNybyBpcworIyBleGNsdXNpdmVseSBuZWVk
ZWQgaW4gb25seSBvbmUgc3ViZGlyZWN0b3J5IG9mIFNvdXJjZSAoZS5nLiBvbmx5IG5lZWRlZCBi
eQorIyBXZWJDb3JlKSwgdGhlbiBwdXQgaXQgdGhlcmUgaW5zdGVhZC4KKwogaW5jbHVkZShDTWFr
ZVBhcnNlQXJndW1lbnRzKQogaW5jbHVkZShQcm9jZXNzb3JDb3VudCkKIFByb2Nlc3NvckNvdW50
KFBST0NFU1NPUl9DT1VOVCkKQEAgLTI1LDYgKzI5LDcgQEAgbWFjcm8oQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMgX3NvdXJjZSBfZGVwcykKICAgICBlbmRmb3JlYWNoICgpCiAKICAgICBzZXRfc291
cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfc291cmNlfSBQUk9QRVJUSUVTIE9CSkVDVF9ERVBFTkRT
ICIke190bXB9IikKKyAgICB1bnNldChfdG1wKQogZW5kbWFjcm8oKQogCiBtYWNybyhBRERfUFJF
Q09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQpAQCAtNTYsMjIzICs2MSw2IEBA
IG1hY3JvKEFERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCiAgICAg
I0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCiBlbmRtYWNybygpCiAKLW9wdGlvbihTSE9X
X0JJTkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1MgIlNob3cgcHJvZ3Jlc3Mgb2YgZ2VuZXJhdGlu
ZyBiaW5kaW5ncyIgT0ZGKQotCi0jIEhlbHBlciBtYWNybyB3aGljaCB3cmFwcyBnZW5lcmF0ZS1i
aW5kaW5ncy1hbGwucGwgc2NyaXB0LgotIyAgIHRhcmdldCBpcyBhIG5ldyB0YXJnZXQgbmFtZSB0
byBiZSBhZGRlZAotIyAgIE9VVFBVVF9TT1VSQ0UgaXMgYSBsaXN0IG5hbWUgd2hpY2ggd2lsbCBj
b250YWluIGdlbmVyYXRlZCBzb3VyY2VzLihlZy4gV2ViQ29yZV9TT1VSQ0VTKQotIyAgIElOUFVU
X0ZJTEVTIGFyZSBJREwgZmlsZXMgdG8gZ2VuZXJhdGUuCi0jICAgQkFTRV9ESVIgaXMgYmFzZSBk
aXJlY3Rvcnkgd2hlcmUgc2NyaXB0IGlzIGNhbGxlZC4KLSMgICBJRExfSU5DTFVERVMgaXMgdmFs
dWUgb2YgLS1pbmNsdWRlIGFyZ3VtZW50LiAoZWcuICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2pz
KQotIyAgIEZFQVRVUkVTIGlzIGEgdmFsdWUgb2YgLS1kZWZpbmVzIGFyZ3VtZW50LgotIyAgIERF
U1RJTkFUSU9OIGlzIGEgdmFsdWUgb2YgLS1vdXRwdXREaXIgYXJndW1lbnQuCi0jICAgR0VORVJB
VE9SIGlzIGEgdmFsdWUgb2YgLS1nZW5lcmF0b3IgYXJndW1lbnQuCi0jICAgU1VQUExFTUVOVEFM
X0RFUEZJTEUgaXMgYSB2YWx1ZSBvZiAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLiAob3B0
aW9uYWwpCi0jICAgUFBfRVhUUkFfT1VUUFVUIGlzIGV4dHJhIG91dHB1dHMgb2YgcHJlcHJvY2Vz
cy1pZGxzLnBsLiAob3B0aW9uYWwpCi0jICAgUFBfRVhUUkFfQVJHUyBpcyBleHRyYSBhcmd1bWVu
dHMgZm9yIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQotZnVuY3Rpb24oR0VORVJBVEVf
QklORElOR1MgdGFyZ2V0KQotICAgIHNldChvcHRpb25zKQotICAgIHNldChvbmVWYWx1ZUFyZ3Mg
T1VUUFVUX1NPVVJDRSBCQVNFX0RJUiBGRUFUVVJFUyBERVNUSU5BVElPTiBHRU5FUkFUT1IgU1VQ
UExFTUVOVEFMX0RFUEZJTEUpCi0gICAgc2V0KG11bHRpVmFsdWVBcmdzIElOUFVUX0ZJTEVTIElE
TF9JTkNMVURFUyBQUF9FWFRSQV9PVVRQVVQgUFBfRVhUUkFfQVJHUykKLSAgICBjbWFrZV9wYXJz
ZV9hcmd1bWVudHMoYXJnICIke29wdGlvbnN9IiAiJHtvbmVWYWx1ZUFyZ3N9IiAiJHttdWx0aVZh
bHVlQXJnc30iICR7QVJHTn0pCi0gICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7V0VCQ09SRV9E
SVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsKQotICAgIHNldChp
ZGxfYXR0cmlidXRlc19maWxlICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0
cmlidXRlcy5qc29uKQotICAgIHNldChpZGxfZmlsZXNfbGlzdCAke0NNQUtFX0NVUlJFTlRfQklO
QVJZX0RJUn0vaWRsX2ZpbGVzXyR7dGFyZ2V0fS50bXApCi0gICAgc2V0KF9zdXBwbGVtZW50YWxf
ZGVwZW5kZW5jeSkKLQotICAgIHNldChjb250ZW50KQotICAgIGZvcmVhY2ggKGYgJHthcmdfSU5Q
VVRfRklMRVN9KQotICAgICAgICBpZiAoTk9UIElTX0FCU09MVVRFICR7Zn0pCi0gICAgICAgICAg
ICBzZXQoZiAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtmfSkKLSAgICAgICAgZW5kaWYg
KCkKLSAgICAgICAgc2V0KGNvbnRlbnQgIiR7Y29udGVudH0ke2Z9XG4iKQotICAgIGVuZGZvcmVh
Y2ggKCkKLSAgICBmaWxlKFdSSVRFICR7aWRsX2ZpbGVzX2xpc3R9ICR7Y29udGVudH0pCi0KLSAg
ICBzZXQoYXJncwotICAgICAgICAtLWRlZmluZXMgJHthcmdfRkVBVFVSRVN9Ci0gICAgICAgIC0t
Z2VuZXJhdG9yICR7YXJnX0dFTkVSQVRPUn0KLSAgICAgICAgLS1vdXRwdXREaXIgJHthcmdfREVT
VElOQVRJT059Ci0gICAgICAgIC0taWRsRmlsZXNMaXN0ICR7aWRsX2ZpbGVzX2xpc3R9Ci0gICAg
ICAgIC0tcHJlcHJvY2Vzc29yICIke0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0iCi0gICAg
ICAgIC0taWRsQXR0cmlidXRlc0ZpbGUgJHtpZGxfYXR0cmlidXRlc19maWxlfSkKLSAgICBpZiAo
YXJnX1NVUFBMRU1FTlRBTF9ERVBGSUxFKQotICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQotICAg
IGVuZGlmICgpCi0gICAgaWYgKFBST0NFU1NPUl9DT1VOVCkKLSAgICAgICAgbGlzdChBUFBFTkQg
YXJncyAtLW51bU9mSm9icyAke1BST0NFU1NPUl9DT1VOVH0pCi0gICAgZW5kaWYgKCkKLSAgICBm
b3JlYWNoIChpIElOIExJU1RTIGFyZ19JRExfSU5DTFVERVMpCi0gICAgICAgIGlmIChJU19BQlNP
TFVURSAke2l9KQotICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtpfSkK
LSAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUg
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7aX0pCi0gICAgICAgIGVuZGlmICgpCi0gICAg
ZW5kZm9yZWFjaCAoKQotICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX1BQX0VYVFJBX09VVFBV
VCkKLSAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFPdXRwdXQgJHtpfSkKLSAgICBl
bmRmb3JlYWNoICgpCi0gICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfQVJHUykK
LSAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFBcmdzICR7aX0pCi0gICAgZW5kZm9y
ZWFjaCAoKQotCi0gICAgc2V0KGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzCi0gICAgICAg
ICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKLSAg
ICAgICAgJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAgICAgICAjIENoYW5naW5nIGVuYWJsZWQgZmVh
dHVyZXMgc2hvdWxkIHRyaWdnZXIgcmVjb21waWxpbmcgYWxsIElETCBmaWxlcwotICAgICAgICAj
IGJlY2F1c2Ugc29tZSBvZiB0aGVtIHVzZSAjaWYuCi0gICAgICAgICR7Q01BS0VfQklOQVJZX0RJ
Un0vY21ha2Vjb25maWcuaAotICAgICkKLSAgICBpZiAoRVhJU1RTICR7V0VCQ09SRV9ESVJ9L2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCi0gICAgICAg
IGxpc3QoQVBQRU5EIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzICR7V0VCQ09SRV9ESVJ9
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCi0gICAg
ZW5kaWYgKCkKLSAgICBpZiAoRVhJU1RTICR7YXJnX0JBU0VfRElSfS9Db2RlR2VuZXJhdG9yJHth
cmdfR0VORVJBVE9SfS5wbSkKLSAgICAgICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9k
ZXBlbmRlbmNpZXMgJHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9
LnBtKQotICAgIGVuZGlmICgpCi0gICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBjb21tb25fZ2VuZXJh
dG9yX2RlcGVuZGVuY2llcykKLSAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWdlbmVyYXRvckRl
cGVuZGVuY3kgJHtpfSkKLSAgICBlbmRmb3JlYWNoICgpCi0KLSAgICBzZXQoZ2VuX3NvdXJjZXMp
Ci0gICAgc2V0KGdlbl9oZWFkZXJzKQotICAgIGZvcmVhY2ggKF9maWxlICR7YXJnX0lOUFVUX0ZJ
TEVTfSkKLSAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1F
X1dFKQotICAgICAgICBsaXN0KEFQUEVORCBnZW5fc291cmNlcyAke2FyZ19ERVNUSU5BVElPTn0v
SlMke19uYW1lfS5jcHApCi0gICAgICAgIGxpc3QoQVBQRU5EIGdlbl9oZWFkZXJzICR7YXJnX0RF
U1RJTkFUSU9OfS9KUyR7X25hbWV9LmgpCi0gICAgZW5kZm9yZWFjaCAoKQotICAgIHNldCgke2Fy
Z19PVVRQVVRfU09VUkNFfSAkeyR7YXJnX09VVFBVVF9TT1VSQ0V9fSAke2dlbl9zb3VyY2VzfSBQ
QVJFTlRfU0NPUEUpCi0gICAgc2V0KGFjdF9hcmdzKQotICAgIGlmIChTSE9XX0JJTkRJTkdTX0dF
TkVSQVRJT05fUFJPR1JFU1MpCi0gICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1zaG93UHJvZ3Jl
c3MpCi0gICAgZW5kaWYgKCkKLSAgICBpZiAoJHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xFU1Mg
My4yKQotICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtnZW5fc291cmNlc30g
JHtnZW5faGVhZGVyc30gUFJPUEVSVElFUyBHRU5FUkFURUQgMSkKLSAgICBlbHNlICgpCi0gICAg
ICAgIGxpc3QoQVBQRU5EIGFjdF9hcmdzIEJZUFJPRFVDVFMgJHtnZW5fc291cmNlc30gJHtnZW5f
aGVhZGVyc30pCi0gICAgICAgIGlmIChTSE9XX0JJTkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1Mp
Ci0gICAgICAgICAgICBsaXN0KEFQUEVORCBhY3RfYXJncyBVU0VTX1RFUk1JTkFMKQotICAgICAg
ICBlbmRpZiAoKQotICAgIGVuZGlmICgpCi0gICAgYWRkX2N1c3RvbV90YXJnZXQoJHt0YXJnZXR9
Ci0gICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7YmluZGluZ19nZW5lcmF0b3J9
ICR7YXJnc30KLSAgICAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHthcmdfQkFTRV9ESVJ9Ci0gICAg
ICAgIENPTU1FTlQgIkdlbmVyYXRlIGJpbmRpbmdzICgke3RhcmdldH0pIgotICAgICAgICBWRVJC
QVRJTSAke2FjdF9hcmdzfSkKLWVuZGZ1bmN0aW9uKCkKLQotbWFjcm8oR0VORVJBVEVfRk9OVF9O
QU1FUyBfaW5maWxlKQotICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9t
L21ha2VfbmFtZXMucGwpCi0gICAgc2V0KF9hcmd1bWVudHMgIC0tZm9udHMgJHtfaW5maWxlfSkK
LSAgICBzZXQoX291dHB1dGZpbGVzICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJL
aXRGb250RmFtaWx5TmFtZXMuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJL
aXRGb250RmFtaWx5TmFtZXMuaCkKLQotICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAg
T1VUUFVUICAke19vdXRwdXRmaWxlc30KLSAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2luZmls
ZX0KLSAgICAgICAgREVQRU5EUyAke01BS0VfTkFNRVNfREVQRU5ERU5DSUVTfSAke05BTUVTX0dF
TkVSQVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVD
VVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9ICR7X2FyZ3VtZW50c30KLSAgICAgICAgVkVSQkFUSU0pCi1lbmRtYWNybygp
Ci0KLQotbWFjcm8oR0VORVJBVEVfRVZFTlRfRkFDVE9SWSBfaW5maWxlIF9vdXRmaWxlKQotICAg
IHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9tL21ha2VfZXZlbnRfZmFjdG9y
eS5wbCkKLQotICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgT1VUUFVUICAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KLSAgICAgICAgTUFJTl9ERVBFTkRF
TkNZICR7X2luZmlsZX0KLSAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJ
UFRTX0JJTkRJTkdTfQotICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke05BTUVT
X0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0cHV0RGlyICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfQotICAgICAgICBWRVJCQVRJTSkKLWVuZG1hY3JvKCkKLQotCi1tYWNy
byhHRU5FUkFURV9FWENFUFRJT05fQ09ERV9ERVNDUklQVElPTiBfaW5maWxlIF9vdXRmaWxlKQot
ICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9tL21ha2VfZG9tX2V4Y2Vw
dGlvbnMucGwpCi0KLSAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgIE9VVFBVVCAgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X291dGZpbGV9Ci0gICAgICAgIE1BSU5fREVQ
RU5ERU5DWSAke19pbmZpbGV9Ci0gICAgICAgIERFUEVORFMgJHtOQU1FU19HRU5FUkFUT1J9ICR7
U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtO
QU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtfaW5maWxlfSAtLW91dHB1dERpciAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0KLSAgICAgICAgVkVSQkFUSU0pCi1lbmRtYWNybygpCi0KLQot
bWFjcm8oR0VORVJBVEVfU0VUVElOR1NfTUFDUk9TIF9pbmZpbGUgX291dGZpbGUpCi0gICAgc2V0
KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9wYWdlL21ha2Vfc2V0dGluZ3MucGwpCi0K
LSAgICAjIERvIG5vdCBsaXN0IHRoZSBvdXRwdXQgaW4gbW9yZSB0aGFuIG9uZSBpbmRlcGVuZGVu
dCB0YXJnZXQgdGhhdCBtYXkKLSAgICAjIGJ1aWxkIGluIHBhcmFsbGVsIG9yIHRoZSB0d28gaW5z
dGFuY2VzIG9mIHRoZSBydWxlIG1heSBjb25mbGljdC4KLSAgICAjIDxodHRwczovL2NtYWtlLm9y
Zy9jbWFrZS9oZWxwL3YzLjAvY29tbWFuZC9hZGRfY3VzdG9tX2NvbW1hbmQuaHRtbD4KLSAgICBz
ZXQoX2V4dHJhX291dHB1dAotICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0v
SW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oCi0gICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcAotICAgICAgICAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwKLSAg
ICApCi0gICAgc2V0KF9hcmdzIEJZUFJPRFVDVFMgJHtfZXh0cmFfb3V0cHV0fSkKLSAgICBpZiAo
JHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xFU1MgMy4yKQotICAgICAgICBzZXRfc291cmNlX2Zp
bGVzX3Byb3BlcnRpZXMoJHtfZXh0cmFfb3V0cHV0fSBQUk9QRVJUSUVTIEdFTkVSQVRFRCAxKQot
ICAgICAgICBzZXQoX2FyZ3MpCi0gICAgZW5kaWYgKCkKLSAgICBhZGRfY3VzdG9tX2NvbW1hbmQo
Ci0gICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0Zmls
ZX0KLSAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2luZmlsZX0KLSAgICAgICAgREVQRU5EUyAk
e05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAgICAgICBDT01NQU5EICR7
UEVSTF9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0t
b3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQotICAgICAgICBWRVJCQVRJ
TSAke19hcmdzfSkKLWVuZG1hY3JvKCkKLQotCi1tYWNybyhHRU5FUkFURV9ET01fTkFNRVMgX25h
bWVzcGFjZSBfYXR0cnMpCi0gICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9k
b20vbWFrZV9uYW1lcy5wbCkKLSAgICBzZXQoX2FyZ3VtZW50cyAgLS1hdHRycyAke19hdHRyc30p
Ci0gICAgc2V0KF9vdXRwdXRmaWxlcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtf
bmFtZXNwYWNlfU5hbWVzLmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFt
ZXNwYWNlfU5hbWVzLmgpCi0gICAgc2V0KF9leHRyYWRlZikKLSAgICBzZXQoX3RhZ3MpCi0KLSAg
ICBmb3JlYWNoIChmICR7QVJHTn0pCi0gICAgICAgIGlmIChfdGFncykKLSAgICAgICAgICAgIHNl
dChfZXh0cmFkZWYgIiR7X2V4dHJhZGVmfSAke2Z9IikKLSAgICAgICAgZWxzZSAoKQotICAgICAg
ICAgICAgc2V0KF90YWdzICR7Zn0pCi0gICAgICAgIGVuZGlmICgpCi0gICAgZW5kZm9yZWFjaCAo
KQotCi0gICAgaWYgKF90YWdzKQotICAgICAgICBzZXQoX2FyZ3VtZW50cyAiJHtfYXJndW1lbnRz
fSIgLS10YWdzICR7X3RhZ3N9IC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5KQotICAgICAgICBz
ZXQoX291dHB1dGZpbGVzICIke19vdXRwdXRmaWxlc30iICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS8ke19uYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkuY3BwICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19uYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkuaCAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVudFdy
YXBwZXJGYWN0b3J5LmgpCi0gICAgZW5kaWYgKCkKLQotICAgIGlmIChfZXh0cmFkZWYpCi0gICAg
ICAgIHNldChfYWRkaXRpb25Bcmd1bWVudHMgIiR7X2FkZGl0aW9uQXJndW1lbnRzfSIgLS1leHRy
YURlZmluZXM9JHtfZXh0cmFkZWZ9KQotICAgIGVuZGlmICgpCi0KLSAgICBhZGRfY3VzdG9tX2Nv
bW1hbmQoCi0gICAgICAgIE9VVFBVVCAgJHtfb3V0cHV0ZmlsZXN9Ci0gICAgICAgIERFUEVORFMg
JHtNQUtFX05BTUVTX0RFUEVOREVOQ0lFU30gJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBUU19C
SU5ESU5HU30gJHtfYXR0cnN9ICR7X3RhZ3N9Ci0gICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNV
VEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVSQVRP
Ul9QUkVQUk9DRVNTT1JfV0lUSF9MSU5FTUFSS0VSU30iIC0tb3V0cHV0RGlyICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfSAke19hcmd1bWVudHN9ICR7X2FkZGl0aW9uQXJndW1lbnRzfQot
ICAgICAgICBWRVJCQVRJTSkKLWVuZG1hY3JvKCkKLQotbWFjcm8oTUFLRV9IQVNIX1RPT0xTIF9z
b3VyY2UpCi0gICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19zb3VyY2V9IE5BTUVf
V0UpCi0KLSAgICBpZiAoJHtfc291cmNlfSBTVFJFUVVBTCAiRG9jVHlwZVN0cmluZ3MiKQotICAg
ICAgICBzZXQoX2hhc2hfdG9vbHNfaCAiJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0hh
c2hUb29scy5oIikKLSAgICBlbHNlICgpCi0gICAgICAgIHNldChfaGFzaF90b29sc19oICIiKQot
ICAgIGVuZGlmICgpCi0KLSAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgIE9VVFBVVCAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX0uY3BwICR7X2hhc2hfdG9vbHNf
aH0KLSAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X3NvdXJjZX0uZ3BlcmYKLSAgICAgICAgQ09N
TUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vbWFrZS1oYXNoLXRvb2xzLnBs
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAke19zb3VyY2V9LmdwZXJmICR7R1BFUkZf
RVhFQ1VUQUJMRX0KLSAgICAgICAgVkVSQkFUSU0pCi0KLSAgICB1bnNldChfbmFtZSkKLSAgICB1
bnNldChfaGFzaF90b29sc19oKQotZW5kbWFjcm8oKQotCiBtYWNybyhXRUJLSVRfV1JBUF9TT1VS
Q0VMSVNUKQogICAgIGZvcmVhY2ggKF9maWxlICR7QVJHTn0pCiAgICAgICAgIGdldF9maWxlbmFt
ZV9jb21wb25lbnQoX2Jhc2VuYW1lICR7X2ZpbGV9IE5BTUVfV0UpCkBAIC0zNzQsNzUgKzE2Miw4
NSBAQCBtYWNybyhXRUJLSVRfQ1JFQVRFX0ZPUldBUkRJTkdfSEVBREVSUyBfZnJhbWV3b3JrKQog
ICAgIGVuZGlmICgpCiBlbmRtYWNybygpCiAKLSMgSGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdl
bmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYW5kIGdlbmVyYXRlLW1lc3NhZ2UtaGVhZGVyLnB5
IHNjcmlwdHMKLSMgICBfb3V0cHV0X3NvdXJjZSBpcyBhIGxpc3QgbmFtZSB3aGljaCB3aWxsIGNv
bnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBXZWJLaXQyX1NPVVJDRVMpCi0jICAgX2lucHV0
X2ZpbGVzIGFyZSBtZXNzYWdlcy5pbiBmaWxlcyB0byBnZW5lcmF0ZS4KLW1hY3JvKEdFTkVSQVRF
X1dFQktJVDJfTUVTU0FHRV9TT1VSQ0VTIF9vdXRwdXRfc291cmNlIF9pbnB1dF9maWxlcykKLSAg
ICBmb3JlYWNoIChfZmlsZSAke19pbnB1dF9maWxlc30pCi0gICAgICAgIGdldF9maWxlbmFtZV9j
b21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKLSAgICAgICAgYWRkX2N1c3RvbV9jb21t
YW5kKAotICAgICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS8k
e19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9
LyR7X25hbWV9TWVzc2FnZXMuaAotICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2ZpbGV9
Ci0gICAgICAgICAgICBERVBFTkRTICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvd2Via2l0L19faW5p
dF9fLnB5Ci0gICAgICAgICAgICAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5Ci0gICAgICAgICAgICAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMv
d2Via2l0L21vZGVsLnB5Ci0gICAgICAgICAgICAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1Njcmlw
dHMvd2Via2l0L3BhcnNlci5weQotICAgICAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRB
QkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkg
JHtfZmlsZX0gPiAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vJHtfbmFtZX1NZXNzYWdl
UmVjZWl2ZXIuY3BwCi0gICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7
V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5ICR7X2ZpbGV9
ID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9LyR7X25hbWV9TWVzc2FnZXMuaAotICAg
ICAgICAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtXRUJLSVQyX0RJUn0KLSAgICAgICAgICAgIFZF
UkJBVElNKQotCi0gICAgICAgIGxpc3QoQVBQRU5EICR7X291dHB1dF9zb3VyY2V9ICR7REVSSVZF
RF9TT1VSQ0VTX1dFQktJVDJfRElSfS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHApCi0gICAg
ZW5kZm9yZWFjaCAoKQorIyBIZWxwZXIgbWFjcm9zIGZvciBkZWJ1Z2dpbmcgQ01ha2UgcHJvYmxl
bXMuCittYWNybyhXRUJLSVRfREVCVUdfRFVNUF9DT01NQU5EUykKKyAgICBzZXQoQ01BS0VfVkVS
Qk9TRV9NQUtFRklMRSBPTikKIGVuZG1hY3JvKCkKIAotbWFjcm8oTUFLRV9KU19GSUxFX0FSUkFZ
UyBfb3V0cHV0X2NwcCBfb3V0cHV0X2ggX25hbWVzcGFjZSBfc2NyaXB0cyBfc2NyaXB0c19kZXBl
bmRlbmNpZXMpCi0gICAgYWRkX2N1c3RvbV9jb21tYW5kKAotICAgICAgICBPVVRQVVQgJHtfb3V0
cHV0X2h9ICR7X291dHB1dF9jcHB9Ci0gICAgICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9T
Q1JJUFRTX0RJUn0vbWFrZS1qcy1maWxlLWFycmF5cy5weSAkeyR7X3NjcmlwdHN9fQotICAgICAg
ICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19E
SVJ9L21ha2UtanMtZmlsZS1hcnJheXMucHkgLW4gJHtfbmFtZXNwYWNlfSAke19vdXRwdXRfaH0g
JHtfb3V0cHV0X2NwcH0gJHske19zY3JpcHRzfX0KLSAgICAgICAgVkVSQkFUSU0pCi0gICAgQURE
X1NPVVJDRV9ERVBFTkRFTkNJRVMoJHske19zY3JpcHRzX2RlcGVuZGVuY2llc319ICR7X291dHB1
dF9ofSAke19vdXRwdXRfY3BwfSkKK21hY3JvKFdFQktJVF9ERUJVR19EVU1QX1ZBUklBQkxFUykK
KyAgICBzZXRfY21ha2VfcHJvcGVydHkoX3ZhcmlhYmxlTmFtZXMgVkFSSUFCTEVTKQorICAgIGZv
cmVhY2ggKF92YXJpYWJsZU5hbWUgJHtfdmFyaWFibGVOYW1lc30pCisgICAgICAgbWVzc2FnZShT
VEFUVVMgIiR7X3ZhcmlhYmxlTmFtZX09JHske192YXJpYWJsZU5hbWV9fSIpCisgICAgZW5kZm9y
ZWFjaCAoKQogZW5kbWFjcm8oKQogCi0jIEhlbHBlciBtYWNybyBmb3IgdXNpbmcgYWxsLWluLW9u
ZSBidWlsZHMKLSMgVGhpcyBtYWNybyByZW1vdmVzIHRoZSBzb3VyY2VzIGluY2x1ZGVkIGluIHRo
ZSBfYWxsX2luX29uZV9maWxlIGZyb20gdGhlIGlucHV0IF9maWxlX2xpc3QuCi0jIF9maWxlX2xp
c3QgaXMgYSBsaXN0IG9mIHNvdXJjZSBmaWxlcwotIyBfYWxsX2luX29uZV9maWxlIGlzIGFuIGFs
bC1pbi1vbmUgY3BwIGZpbGUgaW5jbHVkZXMgb3RoZXIgY3BwIGZpbGVzCi0jIF9yZXN1bHRfZmls
ZV9saXN0IGlzIHRoZSBvdXRwdXQgZmlsZSBsaXN0Ci1tYWNybyhQUk9DRVNTX0FMTElOT05FX0ZJ
TEUgX2ZpbGVfbGlzdCBfYWxsX2luX29uZV9maWxlIF9yZXN1bHRfZmlsZV9saXN0IF9ub19jb21w
aWxlKQotICAgIGZpbGUoU1RSSU5HUyAke19hbGxfaW5fb25lX2ZpbGV9IF9hbGxfaW5fb25lX2Zp
bGVfY29udGVudCkKLSAgICBzZXQoJHtfcmVzdWx0X2ZpbGVfbGlzdH0gJHtfZmlsZV9saXN0fSkK
LSAgICBzZXQoX2FsbGlucyAiIikKLSAgICBmb3JlYWNoIChfbGluZSAke19hbGxfaW5fb25lX2Zp
bGVfY29udGVudH0pCi0gICAgICAgIHN0cmluZyhSRUdFWCBNQVRDSCAiXiNpbmNsdWRlIFtcIjxd
KC4qKVtcIj5dIiBfZm91bmQgJHtfbGluZX0pCi0gICAgICAgIGlmIChfZm91bmQpCi0gICAgICAg
ICAgICBsaXN0KEFQUEVORCBfYWxsaW5zICR7Q01BS0VfTUFUQ0hfMX0pCisjIFNldHMgZXh0cmEg
Y29tcGlsZSBmbGFncyBmb3IgYSB0YXJnZXQsIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVp
bmcgdXNlZC4KKyMgQ3VycmVudGx5LCBvbmx5IEdDQyBpcyBzdXBwb3J0ZWQuCittYWNybyhXRUJL
SVRfU0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTIF90YXJnZXQpCisgICAgc2V0KG9wdGlvbnMgRU5B
QkxFX1dFUlJPUiBJR05PUkVDWFhfV0FSTklOR1MpCisgICAgQ01BS0VfUEFSU0VfQVJHVU1FTlRT
KCJPUFRJT04iICIke29wdGlvbnN9IiAiIiAiIiAke0FSR059KQorICAgIGlmIChDT01QSUxFUl9J
U19HQ0NfT1JfQ0xBTkcpCisgICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoT0xEX0NPTVBJTEVf
RkxBR1MgJHtfdGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQorICAgICAgICBpZiAoJHtPTERfQ09NUElM
RV9GTEFHU30gU1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZPVU5EIikKKyAgICAgICAg
ICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiIikKICAgICAgICAgZW5kaWYgKCkKLSAgICBlbmRm
b3JlYWNoICgpCiAKLSAgICBmb3JlYWNoIChfYWxsaW4gJHtfYWxsaW5zfSkKLSAgICAgICAgaWYg
KCR7X25vX2NvbXBpbGV9KQotICAgICAgICAgICAgIyBGb3IgRGVyaXZlZFNvdXJjZXMuY3BwLCB3
ZSBzdGlsbCBuZWVkIHRoZSBkZXJpdmVkIHNvdXJjZXMgdG8gYmUgZ2VuZXJhdGVkLCBidXQgd2Ug
ZG8gbm90IHdhbnQgdGhlbSB0byBiZSBjb21waWxlZAotICAgICAgICAgICAgIyBpbmRpdmlkdWFs
bHkuIFdlIGFkZCB0aGUgaGVhZGVyIHRvIHRoZSByZXN1bHQgZmlsZSBsaXN0IHNvIHRoYXQgQ01h
a2Uga25vd3MgdG8ga2VlcCBnZW5lcmF0aW5nIHRoZSBmaWxlcy4KLSAgICAgICAgICAgIHN0cmlu
ZyhSRUdFWCBSRVBMQUNFICIoLiopXFwuY3BwIiAiXFwxIiBfYWxsaW5fbm9fZXh0ICR7X2FsbGlu
fSkKLSAgICAgICAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICI7KFteO10qLykke19hbGxpbl9u
b19leHR9XFwuY3BwOyIgIjtcXDEke19hbGxpbl9ub19leHR9Lmg7IiBfbmV3X3Jlc3VsdCAiJHsk
e19yZXN1bHRfZmlsZV9saXN0fX07IikKLSAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgc3Ry
aW5nKFJFR0VYIFJFUExBQ0UgIjtbXjtdKi8ke19hbGxpbn07IiAiOyIgX25ld19yZXN1bHQgIiR7
JHtfcmVzdWx0X2ZpbGVfbGlzdH19OyIpCisgICAgICAgIGlmIChOT1QgV0lOMzIpCisgICAgICAg
ICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KFRBUkdFVF9UWVBFICR7X3RhcmdldH0gVFlQRSkKKyAg
ICAgICAgICAgIGlmICgke1RBUkdFVF9UWVBFfSBTVFJFUVVBTCAiU1RBVElDX0xJQlJBUlkiKSAj
IC1mUElDIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gc2hhcmVkIGxpYnJhcmllcworICAgICAg
ICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLWZQSUMgJHtPTERfQ09NUElMRV9GTEFH
U30iKQorICAgICAgICAgICAgZW5kaWYgKCkKICAgICAgICAgZW5kaWYgKCkKLSAgICAgICAgc2V0
KCR7X3Jlc3VsdF9maWxlX2xpc3R9ICR7X25ld19yZXN1bHR9KQotICAgIGVuZGZvcmVhY2ggKCkK
IAotZW5kbWFjcm8oKQorICAgICAgICAjIFN1cHByZXNzIC1XcGFyZW50aGVzZXMtZXF1YWxpdHkg
d2FybmluZyBvZiBDbGFuZworICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xBTkcpCisgICAgICAg
ICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1Xbm8tcGFyZW50aGVzZXMtZXF1YWxpdHkgJHtP
TERfQ09NUElMRV9GTEFHU30iKQorICAgICAgICBlbmRpZiAoKQogCi0jIEhlbHBlciBtYWNyb3Mg
Zm9yIGRlYnVnZ2luZyBDTWFrZSBwcm9ibGVtcy4KLW1hY3JvKFdFQktJVF9ERUJVR19EVU1QX0NP
TU1BTkRTKQotICAgIHNldChDTUFLRV9WRVJCT1NFX01BS0VGSUxFIE9OKQorICAgICAgICAjIEVu
YWJsZSB3YXJuaW5ncyBieSBkZWZhdWx0CisgICAgICAgIGlmIChOT1QgJHtPUFRJT05fSUdOT1JF
Q1hYX1dBUk5JTkdTfSkKKyAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLVdhbGwg
LVdleHRyYSAtV2Nhc3QtYWxpZ24gLVdmb3JtYXQtc2VjdXJpdHkgLVdtaXNzaW5nLWZvcm1hdC1h
dHRyaWJ1dGUgLVdwb2ludGVyLWFyaXRoIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzICR7T0xEX0NP
TVBJTEVfRkxBR1N9IikKKyAgICAgICAgZW5kaWYgKCkKKworICAgICAgICAjIEVuYWJsZSBlcnJv
cnMgb24gd2FybmluZworICAgICAgICBpZiAoT1BUSU9OX0VOQUJMRV9XRVJST1IpCisgICAgICAg
ICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1XZXJyb3IgJHtPTERfQ09NUElMRV9GTEFHU30i
KQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190
YXJnZXR9IFBST1BFUlRJRVMKKyAgICAgICAgICAgIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJ
TEVfRkxBR1N9IikKKworICAgICAgICB1bnNldChPTERfQ09NUElMRV9GTEFHUykKKyAgICBlbmRp
ZiAoKQogZW5kbWFjcm8oKQogCi1tYWNybyhXRUJLSVRfREVCVUdfRFVNUF9WQVJJQUJMRVMpCi0g
ICAgc2V0X2NtYWtlX3Byb3BlcnR5KF92YXJpYWJsZU5hbWVzIFZBUklBQkxFUykKLSAgICBmb3Jl
YWNoIChfdmFyaWFibGVOYW1lICR7X3ZhcmlhYmxlTmFtZXN9KQotICAgICAgIG1lc3NhZ2UoU1RB
VFVTICIke192YXJpYWJsZU5hbWV9PSR7JHtfdmFyaWFibGVOYW1lfX0iKQotICAgIGVuZGZvcmVh
Y2ggKCkKKyMgQXBwZW5kIHRoZSBnaXZlbiBmbGFnIHRvIHRoZSB0YXJnZXQgcHJvcGVydHkuCisj
IEJ1aWxkcyBvbiB0b3Agb2YgZ2V0X3RhcmdldF9wcm9wZXJ0eSgpIGFuZCBzZXRfdGFyZ2V0X3By
b3BlcnRpZXMoKQorbWFjcm8oQUREX1RBUkdFVF9QUk9QRVJUSUVTIF90YXJnZXQgX3Byb3BlcnR5
IF9mbGFncykKKyAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KF90bXAgJHtfdGFyZ2V0fSAke19wcm9w
ZXJ0eX0pCisgICAgaWYgKE5PVCBfdG1wKQorICAgICAgICBzZXQoX3RtcCAiIikKKyAgICBlbmRp
ZiAoTk9UIF90bXApCisKKyAgICBmb3JlYWNoIChmICR7X2ZsYWdzfSkKKyAgICAgICAgc2V0KF90
bXAgIiR7X3RtcH0gJHtmfSIpCisgICAgZW5kZm9yZWFjaCAoZiAke19mbGFnc30pCisKKyAgICBz
ZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSBQUk9QRVJUSUVTICR7X3Byb3BlcnR5fSAk
e190bXB9KQorICAgIHVuc2V0KF90bXApCitlbmRtYWNybyhBRERfVEFSR0VUX1BST1BFUlRJRVMg
X3RhcmdldCBfcHJvcGVydHkgX2ZsYWdzKQorCittYWNybyhQT1BVTEFURV9MSUJSQVJZX1ZFUlNJ
T04gbGlicmFyeV9uYW1lKQorICAgIGlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVS
U0lPTl9NQUpPUikKKyAgICAgICAgc2V0KCR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01BSk9SICR7
UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKKyAgICBlbmRpZiAoKQorICAgIGlmIChOT1QgREVGSU5F
RCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSU5PUikKKyAgICAgICAgc2V0KCR7bGlicmFyeV9u
YW1lfV9WRVJTSU9OX01JTk9SICR7UFJPSkVDVF9WRVJTSU9OX01JTk9SfSkKKyAgICBlbmRpZiAo
KQorICAgIGlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSUNSTykKKyAg
ICAgICAgc2V0KCR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01JQ1JPICR7UFJPSkVDVF9WRVJTSU9O
X01JQ1JPfSkKKyAgICBlbmRpZiAoKQorICAgIGlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFt
ZX1fVkVSU0lPTikKKyAgICAgICAgc2V0KCR7bGlicmFyeV9uYW1lfV9WRVJTSU9OICR7UFJPSkVD
VF9WRVJTSU9OfSkKKyAgICBlbmRpZiAoKQogZW5kbWFjcm8oKQpkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDk2ODg5M2JmYmY0NmFmYjJlYzQ2ODY3MDIwNTQ4ZGViNDlh
ZjI4NDMuLjYwM2M3MTU1NTBmNDgzNjA2YjQzZWEyMGQ2YTQxYTZiNWM3MjY1OGEgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNy0x
NCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0NNYWtlXSBVbmNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gV2ViS2l0SGVscGVycyBhbmQgV2Vi
S2l0TWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTMxODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNZXJnZSBXZWJLaXRIZWxwZXJzLmNtYWtlIGludG8gV2ViS2l0TWFjcm9zLmNtYWtlLCBzaW5j
ZSB0aGVyZSBpcyBubyBtZWFuaW5nZnVsIGRpc3RpbmN0aW9uCisgICAgICAgIGJldHdlZW4gdGhl
IG1hY3JvcyB0aGF0IGJlbG9uZyBpbiBlYWNoIGZpbGUuIFRoZW4sIG1vdmUgdGhlIG1hY3JvcyB0
aGF0IGFyZSBvbmx5IG5lZWRlZCBieQorICAgICAgICBvbmUgcHJvamVjdCBpbnRvIHByb2plY3Qt
c3BlY2lmaWMgQ01ha2UgZmlsZXMuIFJldGFpbiBoZXJlIG9ubHkgdGhlIG1hY3JvcyB0aGF0IGFy
ZSBuZWVkZWQKKyAgICAgICAgaW4gbXVsdGlwbGUgcGxhY2VzLgorCisgICAgICAgICogU291cmNl
L2NtYWtlL09wdGlvbnNDb21tb24uY21ha2U6IFVwZGF0ZSBhIGNvbW1lbnQuCisgICAgICAgICog
U291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6IE5ldyBsb2NhdGlvbiBmb3IgbGlidG9vbCBt
YWNybywgZXhjbHVzaXZlbHkgbmVlZGVkIGhlcmUuCisgICAgICAgICogU291cmNlL2NtYWtlL1dl
YktpdENvbW1vbi5jbWFrZTogRG8gbm90IGluY2x1ZGUgV2ViS2l0SGVscGVycy5jbWFrZS4KKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlOgorCiAyMDE3LTA3LTEzICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtX
UEVdIEF2b2lkIHNldHRpbmcgc2V0dGluZ3MgdGhhdCBhcmUgc2V0IGJ5IGRlZmF1bHQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315459</attachid>
            <date>2017-07-14 11:16:23 -0700</date>
            <delta_ts>2017-07-14 12:27:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153189-20170714131622.patch</filename>
            <type>text/plain</type>
            <size>40695</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJmOGYzODQxMjA1ODEy
YzcwMmQyNTQwZjA1MGFlYTY2MTIxMzgwYi4uYTVmMjBlNzRkYTEyMzU0OThlYWZhMmQ1NDVkNjA5
YmE5MTZkYjY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA3LTE0ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2Vd
IFVuY2xlYXIgZGlzdGluY3Rpb24gYmV0d2VlbiBXZWJLaXRIZWxwZXJzIGFuZCBXZWJLaXRNYWNy
b3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzE4
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6IEluY2x1ZGUgV2ViQ29yZU1hY3Jvcy5jbWFrZS4KKyAgICAgICAgKiBXZWJD
b3JlTWFjcm9zLmNtYWtlOiBBZGRlZC4KKwogMjAxNy0wNy0xNCAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwb3J0IENvcmVBdWRpb0NhcHR1cmVTb3VyY2Ug
ZmFpbHVyZSBpbiBjYXNlIHNoYXJlZCB1bml0IHN0b3BzIHdvcmtpbmcgcHJvcGVybHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOGFkODEwZjJhOWYwZGNkZjU2ODdiOTU3MjhlZTM4NzA4Y2IzMGU4Mi4uYTVlYWU1Nzkz
NDhhMzRlMjg5Njk1ZDM2ZTJmMzc4NzM4MmExNDNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxNy0wNy0xNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0NNYWtlXSBVbmNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gV2ViS2l0SGVs
cGVycyBhbmQgV2ViS2l0TWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTMxODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOZXcgbG9jYXRpb24gZm9yIG1hY3JvcyB0aGF0IGFyZSBleGNsdXNpdmVs
eSBuZWVkZWQgaGVyZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDE3LTA3LTE0
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBvcnQgQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZSBmYWlsdXJlIGluIGNhc2Ugc2hhcmVkIHVuaXQgc3RvcHMgd29y
a2luZyBwcm9wZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiZGMxN2M4NjkyZGMzYjc2MmE0
YWNjZmQ3NGZhNTE4YTcyOTMwYmViLi5jNmRlNTc2ODhhMDY5NDI0MjJkZTZhZDZkZGRmODdiYTFl
YjhiYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMSw2ICsxLDExIEBACiBjbWFrZV9taW5p
bXVtX3JlcXVpcmVkKFZFUlNJT04gMi44LjEyKQotaW5jbHVkZShXZWJLaXRDb21tb24pCiBzZXRf
cHJvcGVydHkoRElSRUNUT1JZIC4gUFJPUEVSVFkgRk9MREVSICJXZWJDb3JlIikKKworaW5jbHVk
ZShXZWJLaXRDb21tb24pCisKK2xpc3QoQVBQRU5EIENNQUtFX01PRFVMRV9QQVRIICIke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0iKQoraW5jbHVkZShXZWJDb3JlTWFjcm9zKQorCiBhZGRfc3Vi
ZGlyZWN0b3J5KFBBTC9wYWwpCiAKIGlmIChQQUxfTElCUkFSWV9UWVBFIE1BVENIRVMgU1RBVElD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZU1hY3Jvcy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmVNYWNyb3MuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE3NWJlYmI1YjNiZDIy
MjUzMDk5YmFhOWVlZmM1NGE1MjQ0ZmM5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmVNYWNyb3MuY21ha2UKQEAgLTAsMCArMSwyNzQgQEAKKyMgSGVscGVyIG1hY3Jv
IGZvciB1c2luZyBhbGwtaW4tb25lIGJ1aWxkcworIyBUaGlzIG1hY3JvIHJlbW92ZXMgdGhlIHNv
dXJjZXMgaW5jbHVkZWQgaW4gdGhlIF9hbGxfaW5fb25lX2ZpbGUgZnJvbSB0aGUgaW5wdXQgX2Zp
bGVfbGlzdC4KKyMgX2ZpbGVfbGlzdCBpcyBhIGxpc3Qgb2Ygc291cmNlIGZpbGVzCisjIF9hbGxf
aW5fb25lX2ZpbGUgaXMgYW4gYWxsLWluLW9uZSBjcHAgZmlsZSBpbmNsdWRlcyBvdGhlciBjcHAg
ZmlsZXMKKyMgX3Jlc3VsdF9maWxlX2xpc3QgaXMgdGhlIG91dHB1dCBmaWxlIGxpc3QKK21hY3Jv
KFBST0NFU1NfQUxMSU5PTkVfRklMRSBfZmlsZV9saXN0IF9hbGxfaW5fb25lX2ZpbGUgX3Jlc3Vs
dF9maWxlX2xpc3QgX25vX2NvbXBpbGUpCisgICAgZmlsZShTVFJJTkdTICR7X2FsbF9pbl9vbmVf
ZmlsZX0gX2FsbF9pbl9vbmVfZmlsZV9jb250ZW50KQorICAgIHNldCgke19yZXN1bHRfZmlsZV9s
aXN0fSAke19maWxlX2xpc3R9KQorICAgIHNldChfYWxsaW5zICIiKQorICAgIGZvcmVhY2ggKF9s
aW5lICR7X2FsbF9pbl9vbmVfZmlsZV9jb250ZW50fSkKKyAgICAgICAgc3RyaW5nKFJFR0VYIE1B
VENIICJeI2luY2x1ZGUgW1wiPF0oLiopW1wiPl0iIF9mb3VuZCAke19saW5lfSkKKyAgICAgICAg
aWYgKF9mb3VuZCkKKyAgICAgICAgICAgIGxpc3QoQVBQRU5EIF9hbGxpbnMgJHtDTUFLRV9NQVRD
SF8xfSkKKyAgICAgICAgZW5kaWYgKCkKKyAgICBlbmRmb3JlYWNoICgpCisKKyAgICBmb3JlYWNo
IChfYWxsaW4gJHtfYWxsaW5zfSkKKyAgICAgICAgaWYgKCR7X25vX2NvbXBpbGV9KQorICAgICAg
ICAgICAgIyBGb3IgRGVyaXZlZFNvdXJjZXMuY3BwLCB3ZSBzdGlsbCBuZWVkIHRoZSBkZXJpdmVk
IHNvdXJjZXMgdG8gYmUgZ2VuZXJhdGVkLCBidXQgd2UgZG8gbm90IHdhbnQgdGhlbSB0byBiZSBj
b21waWxlZAorICAgICAgICAgICAgIyBpbmRpdmlkdWFsbHkuIFdlIGFkZCB0aGUgaGVhZGVyIHRv
IHRoZSByZXN1bHQgZmlsZSBsaXN0IHNvIHRoYXQgQ01ha2Uga25vd3MgdG8ga2VlcCBnZW5lcmF0
aW5nIHRoZSBmaWxlcy4KKyAgICAgICAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICIoLiopXFwu
Y3BwIiAiXFwxIiBfYWxsaW5fbm9fZXh0ICR7X2FsbGlufSkKKyAgICAgICAgICAgIHN0cmluZyhS
RUdFWCBSRVBMQUNFICI7KFteO10qLykke19hbGxpbl9ub19leHR9XFwuY3BwOyIgIjtcXDEke19h
bGxpbl9ub19leHR9Lmg7IiBfbmV3X3Jlc3VsdCAiJHske19yZXN1bHRfZmlsZV9saXN0fX07IikK
KyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIjtbXjtd
Ki8ke19hbGxpbn07IiAiOyIgX25ld19yZXN1bHQgIiR7JHtfcmVzdWx0X2ZpbGVfbGlzdH19OyIp
CisgICAgICAgIGVuZGlmICgpCisgICAgICAgIHNldCgke19yZXN1bHRfZmlsZV9saXN0fSAke19u
ZXdfcmVzdWx0fSkKKyAgICBlbmRmb3JlYWNoICgpCisKK2VuZG1hY3JvKCkKKworCittYWNybyhN
QUtFX0hBU0hfVE9PTFMgX3NvdXJjZSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1l
ICR7X3NvdXJjZX0gTkFNRV9XRSkKKworICAgIGlmICgke19zb3VyY2V9IFNUUkVRVUFMICJEb2NU
eXBlU3RyaW5ncyIpCisgICAgICAgIHNldChfaGFzaF90b29sc19oICIke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vSGFzaFRvb2xzLmgiKQorICAgIGVsc2UgKCkKKyAgICAgICAgc2V0KF9o
YXNoX3Rvb2xzX2ggIiIpCisgICAgZW5kaWYgKCkKKworICAgIGFkZF9jdXN0b21fY29tbWFuZCgK
KyAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfS5j
cHAgJHtfaGFzaF90b29sc19ofQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfc291cmNlfS5n
cGVyZgorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9t
YWtlLWhhc2gtdG9vbHMucGwgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9ICR7X3NvdXJj
ZX0uZ3BlcmYgJHtHUEVSRl9FWEVDVVRBQkxFfQorICAgICAgICBWRVJCQVRJTSkKKworICAgIHVu
c2V0KF9uYW1lKQorICAgIHVuc2V0KF9oYXNoX3Rvb2xzX2gpCitlbmRtYWNybygpCisKKworIyBB
cHBlbmQgdGhlIGdpdmVuIGRlcGVuZGVuY2llcyB0byB0aGUgc291cmNlIGZpbGUKKyMgVGhpcyBv
bmUgY29uc2lkZXIgdGhlIGdpdmVuIGRlcGVuZGVuY2llcyBhcmUgaW4gJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9CisjIGFuZCBwcmVwZW5kcyB0aGlzIHRvIGV2ZXJ5IG1lbWJlciBvZiBk
ZXBlbmRlbmNpZXMgbGlzdAorbWFjcm8oQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5E
RU5DSUVTIF9zb3VyY2UgX2RlcHMpCisgICAgc2V0KF90bXAgIiIpCisgICAgZm9yZWFjaCAoZiAk
e19kZXBzfSkKKyAgICAgICAgbGlzdChBUFBFTkQgX3RtcCAiJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9LyR7Zn0iKQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgIEFERF9TT1VSQ0VfREVQ
RU5ERU5DSUVTKCR7X3NvdXJjZX0gJHtfdG1wfSkKKyAgICB1bnNldChfdG1wKQorZW5kbWFjcm8o
KQorCisKK21hY3JvKE1BS0VfSlNfRklMRV9BUlJBWVMgX291dHB1dF9jcHAgX291dHB1dF9oIF9u
YW1lc3BhY2UgX3NjcmlwdHMgX3NjcmlwdHNfZGVwZW5kZW5jaWVzKQorICAgIGFkZF9jdXN0b21f
Y29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7X291dHB1dF9ofSAke19vdXRwdXRfY3BwfQorICAg
ICAgICBERVBFTkRTICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L21ha2UtanMtZmlsZS1h
cnJheXMucHkgJHske19zY3JpcHRzfX0KKyAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRB
QkxFfSAke0phdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSfS9tYWtlLWpzLWZpbGUtYXJyYXlzLnB5
IC1uICR7X25hbWVzcGFjZX0gJHtfb3V0cHV0X2h9ICR7X291dHB1dF9jcHB9ICR7JHtfc2NyaXB0
c319CisgICAgICAgIFZFUkJBVElNKQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7JHtf
c2NyaXB0c19kZXBlbmRlbmNpZXN9fSAke19vdXRwdXRfaH0gJHtfb3V0cHV0X2NwcH0pCitlbmRt
YWNybygpCisKKworb3B0aW9uKFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUyAiU2hv
dyBwcm9ncmVzcyBvZiBnZW5lcmF0aW5nIGJpbmRpbmdzIiBPRkYpCisKKyMgSGVscGVyIG1hY3Jv
IHdoaWNoIHdyYXBzIGdlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbCBzY3JpcHQuCisjICAgdGFyZ2V0
IGlzIGEgbmV3IHRhcmdldCBuYW1lIHRvIGJlIGFkZGVkCisjICAgT1VUUFVUX1NPVVJDRSBpcyBh
IGxpc3QgbmFtZSB3aGljaCB3aWxsIGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBXZWJD
b3JlX1NPVVJDRVMpCisjICAgSU5QVVRfRklMRVMgYXJlIElETCBmaWxlcyB0byBnZW5lcmF0ZS4K
KyMgICBCQVNFX0RJUiBpcyBiYXNlIGRpcmVjdG9yeSB3aGVyZSBzY3JpcHQgaXMgY2FsbGVkLgor
IyAgIElETF9JTkNMVURFUyBpcyB2YWx1ZSBvZiAtLWluY2x1ZGUgYXJndW1lbnQuIChlZy4gJHtX
RUJDT1JFX0RJUn0vYmluZGluZ3MvanMpCisjICAgRkVBVFVSRVMgaXMgYSB2YWx1ZSBvZiAtLWRl
ZmluZXMgYXJndW1lbnQuCisjICAgREVTVElOQVRJT04gaXMgYSB2YWx1ZSBvZiAtLW91dHB1dERp
ciBhcmd1bWVudC4KKyMgICBHRU5FUkFUT1IgaXMgYSB2YWx1ZSBvZiAtLWdlbmVyYXRvciBhcmd1
bWVudC4KKyMgICBTVVBQTEVNRU5UQUxfREVQRklMRSBpcyBhIHZhbHVlIG9mIC0tc3VwcGxlbWVu
dGFsRGVwZW5kZW5jeUZpbGUuIChvcHRpb25hbCkKKyMgICBQUF9FWFRSQV9PVVRQVVQgaXMgZXh0
cmEgb3V0cHV0cyBvZiBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25hbCkKKyMgICBQUF9FWFRS
QV9BUkdTIGlzIGV4dHJhIGFyZ3VtZW50cyBmb3IgcHJlcHJvY2Vzcy1pZGxzLnBsLiAob3B0aW9u
YWwpCitmdW5jdGlvbihHRU5FUkFURV9CSU5ESU5HUyB0YXJnZXQpCisgICAgc2V0KG9wdGlvbnMp
CisgICAgc2V0KG9uZVZhbHVlQXJncyBPVVRQVVRfU09VUkNFIEJBU0VfRElSIEZFQVRVUkVTIERF
U1RJTkFUSU9OIEdFTkVSQVRPUiBTVVBQTEVNRU5UQUxfREVQRklMRSkKKyAgICBzZXQobXVsdGlW
YWx1ZUFyZ3MgSU5QVVRfRklMRVMgSURMX0lOQ0xVREVTIFBQX0VYVFJBX09VVFBVVCBQUF9FWFRS
QV9BUkdTKQorICAgIGNtYWtlX3BhcnNlX2FyZ3VtZW50cyhhcmcgIiR7b3B0aW9uc30iICIke29u
ZVZhbHVlQXJnc30iICIke211bHRpVmFsdWVBcmdzfSIgJHtBUkdOfSkKKyAgICBzZXQoYmluZGlu
Z19nZW5lcmF0b3IgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5k
aW5ncy1hbGwucGwpCisgICAgc2V0KGlkbF9hdHRyaWJ1dGVzX2ZpbGUgJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24pCisgICAgc2V0KGlkbF9maWxlc19s
aXN0ICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9pZGxfZmlsZXNfJHt0YXJnZXR9LnRtcCkK
KyAgICBzZXQoX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KQorCisgICAgc2V0KGNvbnRlbnQpCisg
ICAgZm9yZWFjaCAoZiAke2FyZ19JTlBVVF9GSUxFU30pCisgICAgICAgIGlmIChOT1QgSVNfQUJT
T0xVVEUgJHtmfSkKKyAgICAgICAgICAgIHNldChmICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS8ke2Z9KQorICAgICAgICBlbmRpZiAoKQorICAgICAgICBzZXQoY29udGVudCAiJHtjb250ZW50
fSR7Zn1cbiIpCisgICAgZW5kZm9yZWFjaCAoKQorICAgIGZpbGUoV1JJVEUgJHtpZGxfZmlsZXNf
bGlzdH0gJHtjb250ZW50fSkKKworICAgIHNldChhcmdzCisgICAgICAgIC0tZGVmaW5lcyAke2Fy
Z19GRUFUVVJFU30KKyAgICAgICAgLS1nZW5lcmF0b3IgJHthcmdfR0VORVJBVE9SfQorICAgICAg
ICAtLW91dHB1dERpciAke2FyZ19ERVNUSU5BVElPTn0KKyAgICAgICAgLS1pZGxGaWxlc0xpc3Qg
JHtpZGxfZmlsZXNfbGlzdH0KKyAgICAgICAgLS1wcmVwcm9jZXNzb3IgIiR7Q09ERV9HRU5FUkFU
T1JfUFJFUFJPQ0VTU09SfSIKKyAgICAgICAgLS1pZGxBdHRyaWJ1dGVzRmlsZSAke2lkbF9hdHRy
aWJ1dGVzX2ZpbGV9CisgICAgKQorICAgIGlmIChhcmdfU1VQUExFTUVOVEFMX0RFUEZJTEUpCisg
ICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2Fy
Z19TVVBQTEVNRU5UQUxfREVQRklMRX0pCisgICAgZW5kaWYgKCkKKyAgICBpZiAoUFJPQ0VTU09S
X0NPVU5UKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tbnVtT2ZKb2JzICR7UFJPQ0VTU09S
X0NPVU5UfSkKKyAgICBlbmRpZiAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX0lETF9J
TkNMVURFUykKKyAgICAgICAgaWYgKElTX0FCU09MVVRFICR7aX0pCisgICAgICAgICAgICBsaXN0
KEFQUEVORCBhcmdzIC0taW5jbHVkZSAke2l9KQorICAgICAgICBlbHNlICgpCisgICAgICAgICAg
ICBsaXN0KEFQUEVORCBhcmdzIC0taW5jbHVkZSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
JHtpfSkKKyAgICAgICAgZW5kaWYgKCkKKyAgICBlbmRmb3JlYWNoICgpCisgICAgZm9yZWFjaCAo
aSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfT1VUUFVUKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdz
IC0tcHBFeHRyYU91dHB1dCAke2l9KQorICAgIGVuZGZvcmVhY2ggKCkKKyAgICBmb3JlYWNoIChp
IElOIExJU1RTIGFyZ19QUF9FWFRSQV9BUkdTKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0t
cHBFeHRyYUFyZ3MgJHtpfSkKKyAgICBlbmRmb3JlYWNoICgpCisKKyAgICBzZXQoY29tbW9uX2dl
bmVyYXRvcl9kZXBlbmRlbmNpZXMKKyAgICAgICAgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2Ny
aXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAorICAgICAgICAke1NDUklQVFNfQklORElOR1N9Cisg
ICAgICAgICMgQ2hhbmdpbmcgZW5hYmxlZCBmZWF0dXJlcyBzaG91bGQgdHJpZ2dlciByZWNvbXBp
bGluZyBhbGwgSURMIGZpbGVzCisgICAgICAgICMgYmVjYXVzZSBzb21lIG9mIHRoZW0gdXNlICNp
Zi4KKyAgICAgICAgJHtDTUFLRV9CSU5BUllfRElSfS9jbWFrZWNvbmZpZy5oCisgICAgKQorICAg
IGlmIChFWElTVFMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
JHthcmdfR0VORVJBVE9SfS5wbSkKKyAgICAgICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRv
cl9kZXBlbmRlbmNpZXMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yJHthcmdfR0VORVJBVE9SfS5wbSkKKyAgICBlbmRpZiAoKQorICAgIGlmIChFWElTVFMgJHth
cmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQorICAgICAgICBs
aXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llcyAke2FyZ19CQVNFX0RJUn0v
Q29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCisgICAgZW5kaWYgKCkKKyAgICBmb3Jl
YWNoIChpIElOIExJU1RTIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzKQorICAgICAgICBs
aXN0KEFQUEVORCBhcmdzIC0tZ2VuZXJhdG9yRGVwZW5kZW5jeSAke2l9KQorICAgIGVuZGZvcmVh
Y2ggKCkKKworICAgIHNldChnZW5fc291cmNlcykKKyAgICBzZXQoZ2VuX2hlYWRlcnMpCisgICAg
Zm9yZWFjaCAoX2ZpbGUgJHthcmdfSU5QVVRfRklMRVN9KQorICAgICAgICBnZXRfZmlsZW5hbWVf
Y29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgICAgIGxpc3QoQVBQRU5EIGdl
bl9zb3VyY2VzICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9LmNwcCkKKyAgICAgICAgbGlz
dChBUFBFTkQgZ2VuX2hlYWRlcnMgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uaCkKKyAg
ICBlbmRmb3JlYWNoICgpCisgICAgc2V0KCR7YXJnX09VVFBVVF9TT1VSQ0V9ICR7JHthcmdfT1VU
UFVUX1NPVVJDRX19ICR7Z2VuX3NvdXJjZXN9IFBBUkVOVF9TQ09QRSkKKyAgICBzZXQoYWN0X2Fy
Z3MpCisgICAgaWYgKFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUykKKyAgICAgICAg
bGlzdChBUFBFTkQgYXJncyAtLXNob3dQcm9ncmVzcykKKyAgICBlbmRpZiAoKQorICAgIGlmICgk
e0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAzLjIpCisgICAgICAgIHNldF9zb3VyY2VfZmls
ZXNfcHJvcGVydGllcygke2dlbl9zb3VyY2VzfSAke2dlbl9oZWFkZXJzfSBQUk9QRVJUSUVTIEdF
TkVSQVRFRCAxKQorICAgIGVsc2UgKCkKKyAgICAgICAgbGlzdChBUFBFTkQgYWN0X2FyZ3MgQllQ
Uk9EVUNUUyAke2dlbl9zb3VyY2VzfSAke2dlbl9oZWFkZXJzfSkKKyAgICAgICAgaWYgKFNIT1df
QklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUykKKyAgICAgICAgICAgIGxpc3QoQVBQRU5EIGFj
dF9hcmdzIFVTRVNfVEVSTUlOQUwpCisgICAgICAgIGVuZGlmICgpCisgICAgZW5kaWYgKCkKKyAg
ICBhZGRfY3VzdG9tX3RhcmdldCgke3RhcmdldH0KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhF
Q1VUQUJMRX0gJHtiaW5kaW5nX2dlbmVyYXRvcn0gJHthcmdzfQorICAgICAgICBXT1JLSU5HX0RJ
UkVDVE9SWSAke2FyZ19CQVNFX0RJUn0KKyAgICAgICAgQ09NTUVOVCAiR2VuZXJhdGUgYmluZGlu
Z3MgKCR7dGFyZ2V0fSkiCisgICAgICAgIFZFUkJBVElNICR7YWN0X2FyZ3N9KQorZW5kZnVuY3Rp
b24oKQorCisKK21hY3JvKEdFTkVSQVRFX0ZPTlRfTkFNRVMgX2luZmlsZSkKKyAgICBzZXQoTkFN
RVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L2RvbS9tYWtlX25hbWVzLnBsKQorICAgIHNldChf
YXJndW1lbnRzICAtLWZvbnRzICR7X2luZmlsZX0pCisgICAgc2V0KF9vdXRwdXRmaWxlcyAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcCAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vV2ViS2l0Rm9udEZhbWlseU5hbWVzLmgpCisKKyAg
ICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAgJHtfb3V0cHV0ZmlsZXN9Cisg
ICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19pbmZpbGV9CisgICAgICAgIERFUEVORFMgJHtNQUtF
X05BTUVTX0RFUEVOREVOQ0lFU30gJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBUU19CSU5ESU5H
U30KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtOQU1FU19HRU5FUkFUT1J9
IC0tb3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAke19hcmd1bWVudHN9
CisgICAgICAgIFZFUkJBVElNKQorZW5kbWFjcm8oKQorCisKK21hY3JvKEdFTkVSQVRFX0VWRU5U
X0ZBQ1RPUlkgX2luZmlsZSBfb3V0ZmlsZSkKKyAgICBzZXQoTkFNRVNfR0VORVJBVE9SICR7V0VC
Q09SRV9ESVJ9L2RvbS9tYWtlX2V2ZW50X2ZhY3RvcnkucGwpCisKKyAgICBhZGRfY3VzdG9tX2Nv
bW1hbmQoCisgICAgICAgIE9VVFBVVCAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7
X291dGZpbGV9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19pbmZpbGV9CisgICAgICAgIERF
UEVORFMgJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBUU19CSU5ESU5HU30KKyAgICAgICAgQ09N
TUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtOQU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtfaW5m
aWxlfSAtLW91dHB1dERpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KKyAgICAgICAg
VkVSQkFUSU0pCitlbmRtYWNybygpCisKKworbWFjcm8oR0VORVJBVEVfRVhDRVBUSU9OX0NPREVf
REVTQ1JJUFRJT04gX2luZmlsZSBfb3V0ZmlsZSkKKyAgICBzZXQoTkFNRVNfR0VORVJBVE9SICR7
V0VCQ09SRV9ESVJ9L2RvbS9tYWtlX2RvbV9leGNlcHRpb25zLnBsKQorCisgICAgYWRkX2N1c3Rv
bV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS8ke19vdXRmaWxlfQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfaW5maWxlfQorICAgICAg
ICBERVBFTkRTICR7TkFNRVNfR0VORVJBVE9SfSAke1NDUklQVFNfQklORElOR1N9CisgICAgICAg
IENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLWlucHV0ICR7
X2luZmlsZX0gLS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CisgICAg
ICAgIFZFUkJBVElNKQorZW5kbWFjcm8oKQorCisKK21hY3JvKEdFTkVSQVRFX1NFVFRJTkdTX01B
Q1JPUyBfaW5maWxlIF9vdXRmaWxlKQorICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JF
X0RJUn0vcGFnZS9tYWtlX3NldHRpbmdzLnBsKQorCisgICAgIyBEbyBub3QgbGlzdCB0aGUgb3V0
cHV0IGluIG1vcmUgdGhhbiBvbmUgaW5kZXBlbmRlbnQgdGFyZ2V0IHRoYXQgbWF5CisgICAgIyBi
dWlsZCBpbiBwYXJhbGxlbCBvciB0aGUgdHdvIGluc3RhbmNlcyBvZiB0aGUgcnVsZSBtYXkgY29u
ZmxpY3QuCisgICAgIyA8aHR0cHM6Ly9jbWFrZS5vcmcvY21ha2UvaGVscC92My4wL2NvbW1hbmQv
YWRkX2N1c3RvbV9jb21tYW5kLmh0bWw+CisgICAgc2V0KF9leHRyYV9vdXRwdXQKKyAgICAgICAg
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aAorICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW50ZXJuYWxTZXR0aW5n
c0dlbmVyYXRlZC5jcHAKKyAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0lu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsCisgICAgKQorICAgIHNldChfYXJncyBCWVBST0RV
Q1RTICR7X2V4dHJhX291dHB1dH0pCisgICAgaWYgKCR7Q01BS0VfVkVSU0lPTn0gVkVSU0lPTl9M
RVNTIDMuMikKKyAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X2V4dHJhX291
dHB1dH0gUFJPUEVSVElFUyBHRU5FUkFURUQgMSkKKyAgICAgICAgc2V0KF9hcmdzKQorICAgIGVu
ZGlmICgpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X291dGZpbGV9CisgICAgICAgIE1BSU5fREVQRU5ERU5D
WSAke19pbmZpbGV9CisgICAgICAgIERFUEVORFMgJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBU
U19CSU5ESU5HU30KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtOQU1FU19H
RU5FUkFUT1J9IC0taW5wdXQgJHtfaW5maWxlfSAtLW91dHB1dERpciAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0KKyAgICAgICAgVkVSQkFUSU0gJHtfYXJnc30pCitlbmRtYWNybygpCisK
KworbWFjcm8oR0VORVJBVEVfRE9NX05BTUVTIF9uYW1lc3BhY2UgX2F0dHJzKQorICAgIHNldChO
QU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9tL21ha2VfbmFtZXMucGwpCisgICAgc2V0
KF9hcmd1bWVudHMgIC0tYXR0cnMgJHtfYXR0cnN9KQorICAgIHNldChfb3V0cHV0ZmlsZXMgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWVzcGFjZX1OYW1lcy5jcHAgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWVzcGFjZX1OYW1lcy5oKQorICAgIHNldChf
ZXh0cmFkZWYpCisgICAgc2V0KF90YWdzKQorCisgICAgZm9yZWFjaCAoZiAke0FSR059KQorICAg
ICAgICBpZiAoX3RhZ3MpCisgICAgICAgICAgICBzZXQoX2V4dHJhZGVmICIke19leHRyYWRlZn0g
JHtmfSIpCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAgIHNldChfdGFncyAke2Z9KQorICAg
ICAgICBlbmRpZiAoKQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgIGlmIChfdGFncykKKyAgICAg
ICAgc2V0KF9hcmd1bWVudHMgIiR7X2FyZ3VtZW50c30iIC0tdGFncyAke190YWdzfSAtLWZhY3Rv
cnkgLS13cmFwcGVyRmFjdG9yeSkKKyAgICAgICAgc2V0KF9vdXRwdXRmaWxlcyAiJHtfb3V0cHV0
ZmlsZXN9IiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZXNwYWNlfUVsZW1l
bnRGYWN0b3J5LmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZXNwYWNl
fUVsZW1lbnRGYWN0b3J5LmggJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0pTJHtfbmFt
ZXNwYWNlfUVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09S
RV9ESVJ9L0pTJHtfbmFtZXNwYWNlfUVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oKQorICAgIGVuZGlm
ICgpCisKKyAgICBpZiAoX2V4dHJhZGVmKQorICAgICAgICBzZXQoX2FkZGl0aW9uQXJndW1lbnRz
ICIke19hZGRpdGlvbkFyZ3VtZW50c30iIC0tZXh0cmFEZWZpbmVzPSR7X2V4dHJhZGVmfSkKKyAg
ICBlbmRpZiAoKQorCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgICR7
X291dHB1dGZpbGVzfQorICAgICAgICBERVBFTkRTICR7TUFLRV9OQU1FU19ERVBFTkRFTkNJRVN9
ICR7TkFNRVNfR0VORVJBVE9SfSAke1NDUklQVFNfQklORElOR1N9ICR7X2F0dHJzfSAke190YWdz
fQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0g
LS1wcmVwcm9jZXNzb3IgIiR7Q09ERV9HRU5FUkFUT1JfUFJFUFJPQ0VTU09SX1dJVEhfTElORU1B
UktFUlN9IiAtLW91dHB1dERpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0gJHtfYXJn
dW1lbnRzfSAke19hZGRpdGlvbkFyZ3VtZW50c30KKyAgICAgICAgVkVSQkFUSU0pCitlbmRtYWNy
bygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBiODdjOTEzZmQwOWFjMDAxYmRjMGMwOTdlMDJmNmEw
MjY3NDdiNTc5Li5mYjE5ZmU0NTEyNWM5MjI2MzE3YTQ3NDg3MTlmNTk4YjIyMzM5YzM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKQEAgLTc2MSw3ICs3NjEsMjggQEAgc2V0KFdlYktpdDJfQVVUT01BVElP
Tl9QUk9UT0NPTF9HRU5FUkFUT1JfRVhUUkFfRkxBR1MKIAogV0VCS0lUX0lOQ0xVREVfQ09ORklH
X0ZJTEVTX0lGX0VYSVNUUygpCiAKLUdFTkVSQVRFX1dFQktJVDJfTUVTU0FHRV9TT1VSQ0VTKFdl
YktpdDJfREVSSVZFRF9TT1VSQ0VTICIke1dlYktpdDJfTUVTU0FHRVNfSU5fRklMRVN9IikKKyMg
SGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYW5k
IGdlbmVyYXRlLW1lc3NhZ2UtaGVhZGVyLnB5IHNjcmlwdHMKKyMgICBfb3V0cHV0X3NvdXJjZSBp
cyBhIGxpc3QgbmFtZSB3aGljaCB3aWxsIGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBX
ZWJLaXQyX1NPVVJDRVMpCisjICAgX2lucHV0X2ZpbGVzIGFyZSBtZXNzYWdlcy5pbiBmaWxlcyB0
byBnZW5lcmF0ZS4KK21hY3JvKEdFTkVSQVRFX01FU1NBR0VfU09VUkNFUyBfb3V0cHV0X3NvdXJj
ZSBfaW5wdXRfZmlsZXMpCisgICAgZm9yZWFjaCAoX2ZpbGUgJHtfaW5wdXRfZmlsZXN9KQorICAg
ICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAg
ICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgICAgIE9VVFBVVCAke0RFUklWRURfU09V
UkNFU19XRUJLSVQyX0RJUn0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2ZXIuY3BwICR7REVSSVZFRF9T
T1VSQ0VTX1dFQktJVDJfRElSfS8ke19uYW1lfU1lc3NhZ2VzLmgKKyAgICAgICAgICAgIE1BSU5f
REVQRU5ERU5DWSAke19maWxlfQorICAgICAgICAgICAgREVQRU5EUyAke1dFQktJVDJfRElSfS9T
Y3JpcHRzL3dlYmtpdC9fX2luaXRfXy5weQorICAgICAgICAgICAgICAgICAgICAke1dFQktJVDJf
RElSfS9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorICAgICAgICAgICAgICAgICAgICAke1dF
QktJVDJfRElSfS9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQorICAgICAgICAgICAgICAgICAgICAk
e1dFQktJVDJfRElSfS9TY3JpcHRzL3dlYmtpdC9wYXJzZXIucHkKKyAgICAgICAgICAgIENPTU1B
TkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1t
ZXNzYWdlLXJlY2VpdmVyLnB5ICR7X2ZpbGV9ID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9E
SVJ9LyR7X25hbWV9TWVzc2FnZVJlY2VpdmVyLmNwcAorICAgICAgICAgICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2Vz
LWhlYWRlci5weSAke19maWxlfSA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS8ke19u
YW1lfU1lc3NhZ2VzLmgKKyAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7V0VCS0lUMl9E
SVJ9CisgICAgICAgICAgICBWRVJCQVRJTSkKKworICAgICAgICBsaXN0KEFQUEVORCAke19vdXRw
dXRfc291cmNlfSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vJHtfbmFtZX1NZXNzYWdl
UmVjZWl2ZXIuY3BwKQorICAgIGVuZGZvcmVhY2ggKCkKK2VuZG1hY3JvKCkKK0dFTkVSQVRFX01F
U1NBR0VfU09VUkNFUyhXZWJLaXQyX0RFUklWRURfU09VUkNFUyAiJHtXZWJLaXQyX01FU1NBR0VT
X0lOX0ZJTEVTfSIpCiAKIHNldChXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfR0VORVJBVE9S
X1NDUklQVFMKICAgICAke1BST1RPQ09MX0dFTkVSQVRPUl9TQ1JJUFRTX0RJUn0vZ2VuZXJhdGUt
aW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0NvbW1vbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCmlu
ZGV4IDI2ZmMwYWY2NDlhZTZiNmVkNTQ3NGMxZGJlNmM5ODdhMGUzZGIyZDkuLjYyZTE4NWI3ODM4
MThlZDg1Yzk2ZDY5NGI4MjExNmRmMTIyODEzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zQ29tbW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtl
CkBAIC00NCw3ICs0NCw3IEBAIGlmIChDTUFLRV9HRU5FUkFUT1IgU1RSRVFVQUwgIk5pbmphIikK
ICAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAotIyBGSVhNRTogU29tZSB3YXJuaW5nIGZsYWdzIHNo
b3VsZCBwcm9iYWJseSBiZSBzZXQgaW4gV2ViS2l0SGVscGVycy5jbWFrZSBpbnN0ZWFkLgorIyBG
SVhNRTogU29tZSB3YXJuaW5nIGZsYWdzIHNob3VsZCBwcm9iYWJseSBiZSBzZXQgaW4gV0VCS0lU
X1NFVF9FWFRSQV9DT01QSUxFUl9GTEFHUyBpbnN0ZWFkLgogIyBCdXQgbGFuZ3VhZ2Utc3BlY2lm
aWMgd2FybmluZ3MgcHJvYmFibHkgY2Fubm90IGJlIG1vdmVkIHRoZXJlLgogaWYgKENPTVBJTEVS
X0lTX0dDQ19PUl9DTEFORykKICAgICBzZXQoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdT
fSAtZm5vLXN0cmljdC1hbGlhc2luZyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9u
c0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDYxZTRjYjkz
ODFkZDU0Y2M4MTczNzZlNWI2NzA1YzVhMTg2MjQ1ZWIuLmQwZTM2ODI3M2RiNjU1NTY0YmZiYWNk
ZjA4NDg3NWZmN2U2MDBjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC04LDYgKzgsMTIgQEAg
c2V0KFdFQktJVEdUS19BUElfVkVSU0lPTiA0LjApCiAKICMgTGlidG9vbCBsaWJyYXJ5IHZlcnNp
b24sIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIEFQSSB2ZXJzaW9uLgogIyBTZWUgaHR0cDovL3d3
dy5nbnUub3JnL3NvZnR3YXJlL2xpYnRvb2wvbWFudWFsL2h0bWxfbm9kZS9MaWJ0b29sLXZlcnNp
b25pbmcuaHRtbAorbWFjcm8oQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09M
X1RSSVBMRSBsaWJyYXJ5X25hbWUgY3VycmVudCByZXZpc2lvbiBhZ2UpCisgICAgbWF0aChFWFBS
ICR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01BSk9SICIke2N1cnJlbnR9IC0gJHthZ2V9IikKKyAg
ICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlOT1IgJHthZ2V9KQorICAgIHNldCgke2xp
YnJhcnlfbmFtZX1fVkVSU0lPTl9NSUNSTyAke3JldmlzaW9ufSkKKyAgICBzZXQoJHtsaWJyYXJ5
X25hbWV9X1ZFUlNJT04gJHske2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NQUpPUn0uJHthZ2V9LiR7
cmV2aXNpb259KQorZW5kbWFjcm8oKQogQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9M
SUJUT09MX1RSSVBMRShXRUJLSVQgNjAgMCAyMykKIENBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05T
X0ZST01fTElCVE9PTF9UUklQTEUoSkFWQVNDUklQVENPUkUgMjQgNCA2KQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvV2ViS2l0Q29tbW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdENv
bW1vbi5jbWFrZQppbmRleCBiMGFlNTE0MGY4YTkwYmM3MjI2YzdjMzMwYWZmYzE3ZjdmZmZjZmIw
Li5mMmFkYzRjMWI1MmY1ZGRlMGZkMGVhN2IxYWViMGIyOGZiYmJmMjk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvY21ha2UvV2ViS2l0Q29tbW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRD
b21tb24uY21ha2UKQEAgLTM4LDcgKzM4LDYgQEAgaWYgKE5PVCBIQVNfUlVOX1dFQktJVF9DT01N
T04pCiAKICAgICBpbmNsdWRlKFdlYktpdE1hY3JvcykKICAgICBpbmNsdWRlKFdlYktpdEZTKQot
ICAgIGluY2x1ZGUoV2ViS2l0SGVscGVycykKICAgICBpbmNsdWRlKFdlYktpdEZlYXR1cmVzKQog
CiAgICAgaW5jbHVkZShPcHRpb25zQ29tbW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dl
YktpdEhlbHBlcnMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU0NjM4M2YzOGMwY2Q1NjM1NmViNmY3ZDE2ZWVi
YWYxZWU3ZDgwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDEw
OSArMCwwIEBACi1pbmNsdWRlKENNYWtlUGFyc2VBcmd1bWVudHMpCi0jIFNldHMgZXh0cmEgY29t
cGlsZSBmbGFncyBmb3IgYSB0YXJnZXQsIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcg
dXNlZC4KLSMgQ3VycmVudGx5LCBvbmx5IEdDQyBpcyBzdXBwb3J0ZWQuCi1tYWNybyhXRUJLSVRf
U0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTIF90YXJnZXQpCi0gICAgc2V0KG9wdGlvbnMgRU5BQkxF
X1dFUlJPUiBJR05PUkVDWFhfV0FSTklOR1MpCi0gICAgQ01BS0VfUEFSU0VfQVJHVU1FTlRTKCJP
UFRJT04iICIke29wdGlvbnN9IiAiIiAiIiAke0FSR059KQotICAgIGlmIChDT01QSUxFUl9JU19H
Q0NfT1JfQ0xBTkcpCi0gICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoT0xEX0NPTVBJTEVfRkxB
R1MgJHtfdGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQotICAgICAgICBpZiAoJHtPTERfQ09NUElMRV9G
TEFHU30gU1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZPVU5EIikKLSAgICAgICAgICAg
IHNldChPTERfQ09NUElMRV9GTEFHUyAiIikKLSAgICAgICAgZW5kaWYgKCkKLQotICAgICAgICBp
ZiAoTk9UIFdJTjMyKQotICAgICAgICAgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShUQVJHRVRfVFlQ
RSAke190YXJnZXR9IFRZUEUpCi0gICAgICAgICAgICBpZiAoJHtUQVJHRVRfVFlQRX0gU1RSRVFV
QUwgIlNUQVRJQ19MSUJSQVJZIikgIyAtZlBJQyBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHNo
YXJlZCBsaWJyYXJpZXMKLSAgICAgICAgICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1m
UElDICR7T0xEX0NPTVBJTEVfRkxBR1N9IikKLSAgICAgICAgICAgIGVuZGlmICgpCi0gICAgICAg
IGVuZGlmICgpCi0KLSAgICAgICAgIyBTdXBwcmVzcyAtV3BhcmVudGhlc2VzLWVxdWFsaXR5IHdh
cm5pbmcgb2YgQ2xhbmcKLSAgICAgICAgaWYgKENPTVBJTEVSX0lTX0NMQU5HKQotICAgICAgICAg
ICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICItV25vLXBhcmVudGhlc2VzLWVxdWFsaXR5ICR7T0xE
X0NPTVBJTEVfRkxBR1N9IikKLSAgICAgICAgZW5kaWYgKCkKLQotICAgICAgICAjIEVuYWJsZSB3
YXJuaW5ncyBieSBkZWZhdWx0Ci0gICAgICAgIGlmIChOT1QgJHtPUFRJT05fSUdOT1JFQ1hYX1dB
Uk5JTkdTfSkKLSAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLVdhbGwgLVdleHRy
YSAtV2Nhc3QtYWxpZ24gLVdmb3JtYXQtc2VjdXJpdHkgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1
dGUgLVdwb2ludGVyLWFyaXRoIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzICR7T0xEX0NPTVBJTEVf
RkxBR1N9IikKLSAgICAgICAgZW5kaWYgKCkKLQotICAgICAgICAjIEVuYWJsZSBlcnJvcnMgb24g
d2FybmluZwotICAgICAgICBpZiAoT1BUSU9OX0VOQUJMRV9XRVJST1IpCi0gICAgICAgICAgICBz
ZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1XZXJyb3IgJHtPTERfQ09NUElMRV9GTEFHU30iKQotICAg
ICAgICBlbmRpZiAoKQotCi0gICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9
IFBST1BFUlRJRVMKLSAgICAgICAgICAgIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NPTVBJTEVfRkxB
R1N9IikKLQotICAgICAgICB1bnNldChPTERfQ09NUElMRV9GTEFHUykKLSAgICBlbmRpZiAoKQot
ZW5kbWFjcm8oKQotCi0KLSMgQXBwZW5kIHRoZSBnaXZlbiBmbGFnIHRvIHRoZSB0YXJnZXQgcHJv
cGVydHkuCi0jIEJ1aWxkcyBvbiB0b3Agb2YgZ2V0X3RhcmdldF9wcm9wZXJ0eSgpIGFuZCBzZXRf
dGFyZ2V0X3Byb3BlcnRpZXMoKQotbWFjcm8oQUREX1RBUkdFVF9QUk9QRVJUSUVTIF90YXJnZXQg
X3Byb3BlcnR5IF9mbGFncykKLSAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KF90bXAgJHtfdGFyZ2V0
fSAke19wcm9wZXJ0eX0pCi0gICAgaWYgKE5PVCBfdG1wKQotICAgICAgICBzZXQoX3RtcCAiIikK
LSAgICBlbmRpZiAoTk9UIF90bXApCi0KLSAgICBmb3JlYWNoIChmICR7X2ZsYWdzfSkKLSAgICAg
ICAgc2V0KF90bXAgIiR7X3RtcH0gJHtmfSIpCi0gICAgZW5kZm9yZWFjaCAoZiAke19mbGFnc30p
Ci0KLSAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSBQUk9QRVJUSUVTICR7X3By
b3BlcnR5fSAke190bXB9KQotICAgIHVuc2V0KF90bXApCi1lbmRtYWNybyhBRERfVEFSR0VUX1BS
T1BFUlRJRVMgX3RhcmdldCBfcHJvcGVydHkgX2ZsYWdzKQotCi0KLSMgQXBwZW5kIHRoZSBnaXZl
biBkZXBlbmRlbmNpZXMgdG8gdGhlIHNvdXJjZSBmaWxlCi1tYWNybyhBRERfU09VUkNFX0RFUEVO
REVOQ0lFUyBfc291cmNlIF9kZXBzKQotICAgIGdldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eShfdG1w
ICR7X3NvdXJjZX0gT0JKRUNUX0RFUEVORFMpCi0gICAgaWYgKE5PVCBfdG1wKQotICAgICAgICBz
ZXQoX3RtcCAiIikKLSAgICBlbmRpZiAoKQotCi0gICAgZm9yZWFjaCAoZiAke19kZXBzfSkKLSAg
ICAgICAgbGlzdChBUFBFTkQgX3RtcCAiJHtmfSIpCi0gICAgZW5kZm9yZWFjaCAoKQotCi0gICAg
c2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7X3NvdXJjZX0gUFJPUEVSVElFUyBPQkpFQ1Rf
REVQRU5EUyAiJHtfdG1wfSIpCi0gICAgdW5zZXQoX3RtcCkKLWVuZG1hY3JvKCkKLQotCi0jIEFw
cGVuZCB0aGUgZ2l2ZW4gZGVwZW5kZW5jaWVzIHRvIHRoZSBzb3VyY2UgZmlsZQotIyBUaGlzIG9u
ZSBjb25zaWRlciB0aGUgZ2l2ZW4gZGVwZW5kZW5jaWVzIGFyZSBpbiAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0KLSMgYW5kIHByZXBlbmRzIHRoaXMgdG8gZXZlcnkgbWVtYmVyIG9mIGRl
cGVuZGVuY2llcyBsaXN0Ci1tYWNybyhBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRF
TkNJRVMgX3NvdXJjZSBfZGVwcykKLSAgICBzZXQoX3RtcCAiIikKLSAgICBmb3JlYWNoIChmICR7
X2RlcHN9KQotICAgICAgICBsaXN0KEFQUEVORCBfdG1wICIke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vJHtmfSIpCi0gICAgZW5kZm9yZWFjaCAoKQotCi0gICAgQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMoJHtfc291cmNlfSAke190bXB9KQotICAgIHVuc2V0KF90bXApCi1lbmRtYWNybygp
Ci0KLW1hY3JvKENBTENVTEFURV9MSUJSQVJZX1ZFUlNJT05TX0ZST01fTElCVE9PTF9UUklQTEUg
bGlicmFyeV9uYW1lIGN1cnJlbnQgcmV2aXNpb24gYWdlKQotICAgIG1hdGgoRVhQUiAke2xpYnJh
cnlfbmFtZX1fVkVSU0lPTl9NQUpPUiAiJHtjdXJyZW50fSAtICR7YWdlfSIpCi0gICAgc2V0KCR7
bGlicmFyeV9uYW1lfV9WRVJTSU9OX01JTk9SICR7YWdlfSkKLSAgICBzZXQoJHtsaWJyYXJ5X25h
bWV9X1ZFUlNJT05fTUlDUk8gJHtyZXZpc2lvbn0pCi0gICAgc2V0KCR7bGlicmFyeV9uYW1lfV9W
RVJTSU9OICR7JHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUFKT1J9LiR7YWdlfS4ke3JldmlzaW9u
fSkKLWVuZG1hY3JvKCkKLQotbWFjcm8oUE9QVUxBVEVfTElCUkFSWV9WRVJTSU9OIGxpYnJhcnlf
bmFtZSkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NQUpPUikKLSAg
ICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUFKT1IgJHtQUk9KRUNUX1ZFUlNJT05fTUFK
T1J9KQotZW5kaWYgKCkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9N
SU5PUikKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlOT1IgJHtQUk9KRUNUX1ZF
UlNJT05fTUlOT1J9KQotZW5kaWYgKCkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1f
VkVSU0lPTl9NSUNSTykKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlDUk8gJHtQ
Uk9KRUNUX1ZFUlNJT05fTUlDUk99KQotZW5kaWYgKCkKLWlmIChOT1QgREVGSU5FRCAke2xpYnJh
cnlfbmFtZX1fVkVSU0lPTikKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT04gJHtQUk9K
RUNUX1ZFUlNJT059KQotZW5kaWYgKCkKLWVuZG1hY3JvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
CmluZGV4IGYyZmMzMTJmMDk5Zjc1ZjY5ZGQ0ZWMyM2Y1N2RhYWVhMDUzYmQyZTUuLjY0OTM3NTU5
OTJkMTBiZTMxNGZlNDAxMmRjYTEwOTJhZDRjNjBkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFr
ZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFr
ZQpAQCAtMSwzICsxLDcgQEAKKyMgVGhpcyBmaWxlIGlzIGZvciBtYWNyb3MgdGhhdCBhcmUgdXNl
ZCBieSBtdWx0aXBsZSBwcm9qZWN0cy4gSWYgeW91ciBtYWNybyBpcworIyBleGNsdXNpdmVseSBu
ZWVkZWQgaW4gb25seSBvbmUgc3ViZGlyZWN0b3J5IG9mIFNvdXJjZSAoZS5nLiBvbmx5IG5lZWRl
ZCBieQorIyBXZWJDb3JlKSwgdGhlbiBwdXQgaXQgdGhlcmUgaW5zdGVhZC4KKwogaW5jbHVkZShD
TWFrZVBhcnNlQXJndW1lbnRzKQogaW5jbHVkZShQcm9jZXNzb3JDb3VudCkKIFByb2Nlc3NvckNv
dW50KFBST0NFU1NPUl9DT1VOVCkKQEAgLTI1LDYgKzI5LDcgQEAgbWFjcm8oQUREX1NPVVJDRV9E
RVBFTkRFTkNJRVMgX3NvdXJjZSBfZGVwcykKICAgICBlbmRmb3JlYWNoICgpCiAKICAgICBzZXRf
c291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfc291cmNlfSBQUk9QRVJUSUVTIE9CSkVDVF9ERVBF
TkRTICIke190bXB9IikKKyAgICB1bnNldChfdG1wKQogZW5kbWFjcm8oKQogCiBtYWNybyhBRERf
UFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQpAQCAtNTYsMjIzICs2MSw2
IEBAIG1hY3JvKEFERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCiAg
ICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCiBlbmRtYWNybygpCiAKLW9wdGlvbihT
SE9XX0JJTkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1MgIlNob3cgcHJvZ3Jlc3Mgb2YgZ2VuZXJh
dGluZyBiaW5kaW5ncyIgT0ZGKQotCi0jIEhlbHBlciBtYWNybyB3aGljaCB3cmFwcyBnZW5lcmF0
ZS1iaW5kaW5ncy1hbGwucGwgc2NyaXB0LgotIyAgIHRhcmdldCBpcyBhIG5ldyB0YXJnZXQgbmFt
ZSB0byBiZSBhZGRlZAotIyAgIE9VVFBVVF9TT1VSQ0UgaXMgYSBsaXN0IG5hbWUgd2hpY2ggd2ls
bCBjb250YWluIGdlbmVyYXRlZCBzb3VyY2VzLihlZy4gV2ViQ29yZV9TT1VSQ0VTKQotIyAgIElO
UFVUX0ZJTEVTIGFyZSBJREwgZmlsZXMgdG8gZ2VuZXJhdGUuCi0jICAgQkFTRV9ESVIgaXMgYmFz
ZSBkaXJlY3Rvcnkgd2hlcmUgc2NyaXB0IGlzIGNhbGxlZC4KLSMgICBJRExfSU5DTFVERVMgaXMg
dmFsdWUgb2YgLS1pbmNsdWRlIGFyZ3VtZW50LiAoZWcuICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdz
L2pzKQotIyAgIEZFQVRVUkVTIGlzIGEgdmFsdWUgb2YgLS1kZWZpbmVzIGFyZ3VtZW50LgotIyAg
IERFU1RJTkFUSU9OIGlzIGEgdmFsdWUgb2YgLS1vdXRwdXREaXIgYXJndW1lbnQuCi0jICAgR0VO
RVJBVE9SIGlzIGEgdmFsdWUgb2YgLS1nZW5lcmF0b3IgYXJndW1lbnQuCi0jICAgU1VQUExFTUVO
VEFMX0RFUEZJTEUgaXMgYSB2YWx1ZSBvZiAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLiAo
b3B0aW9uYWwpCi0jICAgUFBfRVhUUkFfT1VUUFVUIGlzIGV4dHJhIG91dHB1dHMgb2YgcHJlcHJv
Y2Vzcy1pZGxzLnBsLiAob3B0aW9uYWwpCi0jICAgUFBfRVhUUkFfQVJHUyBpcyBleHRyYSBhcmd1
bWVudHMgZm9yIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQotZnVuY3Rpb24oR0VORVJB
VEVfQklORElOR1MgdGFyZ2V0KQotICAgIHNldChvcHRpb25zKQotICAgIHNldChvbmVWYWx1ZUFy
Z3MgT1VUUFVUX1NPVVJDRSBCQVNFX0RJUiBGRUFUVVJFUyBERVNUSU5BVElPTiBHRU5FUkFUT1Ig
U1VQUExFTUVOVEFMX0RFUEZJTEUpCi0gICAgc2V0KG11bHRpVmFsdWVBcmdzIElOUFVUX0ZJTEVT
IElETF9JTkNMVURFUyBQUF9FWFRSQV9PVVRQVVQgUFBfRVhUUkFfQVJHUykKLSAgICBjbWFrZV9w
YXJzZV9hcmd1bWVudHMoYXJnICIke29wdGlvbnN9IiAiJHtvbmVWYWx1ZUFyZ3N9IiAiJHttdWx0
aVZhbHVlQXJnc30iICR7QVJHTn0pCi0gICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsKQotICAgIHNl
dChpZGxfYXR0cmlidXRlc19maWxlICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy5qc29uKQotICAgIHNldChpZGxfZmlsZXNfbGlzdCAke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0vaWRsX2ZpbGVzXyR7dGFyZ2V0fS50bXApCi0gICAgc2V0KF9zdXBwbGVtZW50
YWxfZGVwZW5kZW5jeSkKLQotICAgIHNldChjb250ZW50KQotICAgIGZvcmVhY2ggKGYgJHthcmdf
SU5QVVRfRklMRVN9KQotICAgICAgICBpZiAoTk9UIElTX0FCU09MVVRFICR7Zn0pCi0gICAgICAg
ICAgICBzZXQoZiAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtmfSkKLSAgICAgICAgZW5k
aWYgKCkKLSAgICAgICAgc2V0KGNvbnRlbnQgIiR7Y29udGVudH0ke2Z9XG4iKQotICAgIGVuZGZv
cmVhY2ggKCkKLSAgICBmaWxlKFdSSVRFICR7aWRsX2ZpbGVzX2xpc3R9ICR7Y29udGVudH0pCi0K
LSAgICBzZXQoYXJncwotICAgICAgICAtLWRlZmluZXMgJHthcmdfRkVBVFVSRVN9Ci0gICAgICAg
IC0tZ2VuZXJhdG9yICR7YXJnX0dFTkVSQVRPUn0KLSAgICAgICAgLS1vdXRwdXREaXIgJHthcmdf
REVTVElOQVRJT059Ci0gICAgICAgIC0taWRsRmlsZXNMaXN0ICR7aWRsX2ZpbGVzX2xpc3R9Ci0g
ICAgICAgIC0tcHJlcHJvY2Vzc29yICIke0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0iCi0g
ICAgICAgIC0taWRsQXR0cmlidXRlc0ZpbGUgJHtpZGxfYXR0cmlidXRlc19maWxlfSkKLSAgICBp
ZiAoYXJnX1NVUFBMRU1FTlRBTF9ERVBGSUxFKQotICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0t
c3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQot
ICAgIGVuZGlmICgpCi0gICAgaWYgKFBST0NFU1NPUl9DT1VOVCkKLSAgICAgICAgbGlzdChBUFBF
TkQgYXJncyAtLW51bU9mSm9icyAke1BST0NFU1NPUl9DT1VOVH0pCi0gICAgZW5kaWYgKCkKLSAg
ICBmb3JlYWNoIChpIElOIExJU1RTIGFyZ19JRExfSU5DTFVERVMpCi0gICAgICAgIGlmIChJU19B
QlNPTFVURSAke2l9KQotICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtp
fSkKLSAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1
ZGUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7aX0pCi0gICAgICAgIGVuZGlmICgpCi0g
ICAgZW5kZm9yZWFjaCAoKQotICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX1BQX0VYVFJBX09V
VFBVVCkKLSAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFPdXRwdXQgJHtpfSkKLSAg
ICBlbmRmb3JlYWNoICgpCi0gICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfQVJH
UykKLSAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFBcmdzICR7aX0pCi0gICAgZW5k
Zm9yZWFjaCAoKQotCi0gICAgc2V0KGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzCi0gICAg
ICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwK
LSAgICAgICAgJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAgICAgICAjIENoYW5naW5nIGVuYWJsZWQg
ZmVhdHVyZXMgc2hvdWxkIHRyaWdnZXIgcmVjb21waWxpbmcgYWxsIElETCBmaWxlcwotICAgICAg
ICAjIGJlY2F1c2Ugc29tZSBvZiB0aGVtIHVzZSAjaWYuCi0gICAgICAgICR7Q01BS0VfQklOQVJZ
X0RJUn0vY21ha2Vjb25maWcuaAotICAgICkKLSAgICBpZiAoRVhJU1RTICR7V0VCQ09SRV9ESVJ9
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCi0gICAg
ICAgIGxpc3QoQVBQRU5EIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzICR7V0VCQ09SRV9E
SVJ9L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCi0g
ICAgZW5kaWYgKCkKLSAgICBpZiAoRVhJU1RTICR7YXJnX0JBU0VfRElSfS9Db2RlR2VuZXJhdG9y
JHthcmdfR0VORVJBVE9SfS5wbSkKLSAgICAgICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRv
cl9kZXBlbmRlbmNpZXMgJHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFU
T1J9LnBtKQotICAgIGVuZGlmICgpCi0gICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBjb21tb25fZ2Vu
ZXJhdG9yX2RlcGVuZGVuY2llcykKLSAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWdlbmVyYXRv
ckRlcGVuZGVuY3kgJHtpfSkKLSAgICBlbmRmb3JlYWNoICgpCi0KLSAgICBzZXQoZ2VuX3NvdXJj
ZXMpCi0gICAgc2V0KGdlbl9oZWFkZXJzKQotICAgIGZvcmVhY2ggKF9maWxlICR7YXJnX0lOUFVU
X0ZJTEVTfSkKLSAgICAgICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBO
QU1FX1dFKQotICAgICAgICBsaXN0KEFQUEVORCBnZW5fc291cmNlcyAke2FyZ19ERVNUSU5BVElP
Tn0vSlMke19uYW1lfS5jcHApCi0gICAgICAgIGxpc3QoQVBQRU5EIGdlbl9oZWFkZXJzICR7YXJn
X0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9LmgpCi0gICAgZW5kZm9yZWFjaCAoKQotICAgIHNldCgk
e2FyZ19PVVRQVVRfU09VUkNFfSAkeyR7YXJnX09VVFBVVF9TT1VSQ0V9fSAke2dlbl9zb3VyY2Vz
fSBQQVJFTlRfU0NPUEUpCi0gICAgc2V0KGFjdF9hcmdzKQotICAgIGlmIChTSE9XX0JJTkRJTkdT
X0dFTkVSQVRJT05fUFJPR1JFU1MpCi0gICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1zaG93UHJv
Z3Jlc3MpCi0gICAgZW5kaWYgKCkKLSAgICBpZiAoJHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xF
U1MgMy4yKQotICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtnZW5fc291cmNl
c30gJHtnZW5faGVhZGVyc30gUFJPUEVSVElFUyBHRU5FUkFURUQgMSkKLSAgICBlbHNlICgpCi0g
ICAgICAgIGxpc3QoQVBQRU5EIGFjdF9hcmdzIEJZUFJPRFVDVFMgJHtnZW5fc291cmNlc30gJHtn
ZW5faGVhZGVyc30pCi0gICAgICAgIGlmIChTSE9XX0JJTkRJTkdTX0dFTkVSQVRJT05fUFJPR1JF
U1MpCi0gICAgICAgICAgICBsaXN0KEFQUEVORCBhY3RfYXJncyBVU0VTX1RFUk1JTkFMKQotICAg
ICAgICBlbmRpZiAoKQotICAgIGVuZGlmICgpCi0gICAgYWRkX2N1c3RvbV90YXJnZXQoJHt0YXJn
ZXR9Ci0gICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7YmluZGluZ19nZW5lcmF0
b3J9ICR7YXJnc30KLSAgICAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHthcmdfQkFTRV9ESVJ9Ci0g
ICAgICAgIENPTU1FTlQgIkdlbmVyYXRlIGJpbmRpbmdzICgke3RhcmdldH0pIgotICAgICAgICBW
RVJCQVRJTSAke2FjdF9hcmdzfSkKLWVuZGZ1bmN0aW9uKCkKLQotbWFjcm8oR0VORVJBVEVfRk9O
VF9OQU1FUyBfaW5maWxlKQotICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0v
ZG9tL21ha2VfbmFtZXMucGwpCi0gICAgc2V0KF9hcmd1bWVudHMgIC0tZm9udHMgJHtfaW5maWxl
fSkKLSAgICBzZXQoX291dHB1dGZpbGVzICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9X
ZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9X
ZWJLaXRGb250RmFtaWx5TmFtZXMuaCkKLQotICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAg
ICAgT1VUUFVUICAke19vdXRwdXRmaWxlc30KLSAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2lu
ZmlsZX0KLSAgICAgICAgREVQRU5EUyAke01BS0VfTkFNRVNfREVQRU5ERU5DSUVTfSAke05BTUVT
X0dFTkVSQVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAgICAgICBDT01NQU5EICR7UEVSTF9F
WEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9ICR7X2FyZ3VtZW50c30KLSAgICAgICAgVkVSQkFUSU0pCi1lbmRtYWNy
bygpCi0KLQotbWFjcm8oR0VORVJBVEVfRVZFTlRfRkFDVE9SWSBfaW5maWxlIF9vdXRmaWxlKQot
ICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9tL21ha2VfZXZlbnRfZmFj
dG9yeS5wbCkKLQotICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgT1VUUFVUICAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KLSAgICAgICAgTUFJTl9ERVBF
TkRFTkNZICR7X2luZmlsZX0KLSAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0gJHtT
Q1JJUFRTX0JJTkRJTkdTfQotICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke05B
TUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0cHV0RGlyICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfQotICAgICAgICBWRVJCQVRJTSkKLWVuZG1hY3JvKCkKLQotCi1t
YWNybyhHRU5FUkFURV9FWENFUFRJT05fQ09ERV9ERVNDUklQVElPTiBfaW5maWxlIF9vdXRmaWxl
KQotICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9tL21ha2VfZG9tX2V4
Y2VwdGlvbnMucGwpCi0KLSAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgIE9VVFBVVCAg
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X291dGZpbGV9Ci0gICAgICAgIE1BSU5f
REVQRU5ERU5DWSAke19pbmZpbGV9Ci0gICAgICAgIERFUEVORFMgJHtOQU1FU19HRU5FUkFUT1J9
ICR7U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0g
JHtOQU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtfaW5maWxlfSAtLW91dHB1dERpciAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0KLSAgICAgICAgVkVSQkFUSU0pCi1lbmRtYWNybygpCi0K
LQotbWFjcm8oR0VORVJBVEVfU0VUVElOR1NfTUFDUk9TIF9pbmZpbGUgX291dGZpbGUpCi0gICAg
c2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9wYWdlL21ha2Vfc2V0dGluZ3MucGwp
Ci0KLSAgICAjIERvIG5vdCBsaXN0IHRoZSBvdXRwdXQgaW4gbW9yZSB0aGFuIG9uZSBpbmRlcGVu
ZGVudCB0YXJnZXQgdGhhdCBtYXkKLSAgICAjIGJ1aWxkIGluIHBhcmFsbGVsIG9yIHRoZSB0d28g
aW5zdGFuY2VzIG9mIHRoZSBydWxlIG1heSBjb25mbGljdC4KLSAgICAjIDxodHRwczovL2NtYWtl
Lm9yZy9jbWFrZS9oZWxwL3YzLjAvY29tbWFuZC9hZGRfY3VzdG9tX2NvbW1hbmQuaHRtbD4KLSAg
ICBzZXQoX2V4dHJhX291dHB1dAotICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oCi0gICAgICAgICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcAotICAgICAgICAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwK
LSAgICApCi0gICAgc2V0KF9hcmdzIEJZUFJPRFVDVFMgJHtfZXh0cmFfb3V0cHV0fSkKLSAgICBp
ZiAoJHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xFU1MgMy4yKQotICAgICAgICBzZXRfc291cmNl
X2ZpbGVzX3Byb3BlcnRpZXMoJHtfZXh0cmFfb3V0cHV0fSBQUk9QRVJUSUVTIEdFTkVSQVRFRCAx
KQotICAgICAgICBzZXQoX2FyZ3MpCi0gICAgZW5kaWYgKCkKLSAgICBhZGRfY3VzdG9tX2NvbW1h
bmQoCi0gICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0
ZmlsZX0KLSAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2luZmlsZX0KLSAgICAgICAgREVQRU5E
UyAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAgICAgICBDT01NQU5E
ICR7UEVSTF9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9
IC0tb3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQotICAgICAgICBWRVJC
QVRJTSAke19hcmdzfSkKLWVuZG1hY3JvKCkKLQotCi1tYWNybyhHRU5FUkFURV9ET01fTkFNRVMg
X25hbWVzcGFjZSBfYXR0cnMpCi0gICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElS
fS9kb20vbWFrZV9uYW1lcy5wbCkKLSAgICBzZXQoX2FyZ3VtZW50cyAgLS1hdHRycyAke19hdHRy
c30pCi0gICAgc2V0KF9vdXRwdXRmaWxlcyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0v
JHtfbmFtZXNwYWNlfU5hbWVzLmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtf
bmFtZXNwYWNlfU5hbWVzLmgpCi0gICAgc2V0KF9leHRyYWRlZikKLSAgICBzZXQoX3RhZ3MpCi0K
LSAgICBmb3JlYWNoIChmICR7QVJHTn0pCi0gICAgICAgIGlmIChfdGFncykKLSAgICAgICAgICAg
IHNldChfZXh0cmFkZWYgIiR7X2V4dHJhZGVmfSAke2Z9IikKLSAgICAgICAgZWxzZSAoKQotICAg
ICAgICAgICAgc2V0KF90YWdzICR7Zn0pCi0gICAgICAgIGVuZGlmICgpCi0gICAgZW5kZm9yZWFj
aCAoKQotCi0gICAgaWYgKF90YWdzKQotICAgICAgICBzZXQoX2FyZ3VtZW50cyAiJHtfYXJndW1l
bnRzfSIgLS10YWdzICR7X3RhZ3N9IC0tZmFjdG9yeSAtLXdyYXBwZXJGYWN0b3J5KQotICAgICAg
ICBzZXQoX291dHB1dGZpbGVzICIke19vdXRwdXRmaWxlc30iICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS8ke19uYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkuY3BwICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS8ke19uYW1lc3BhY2V9RWxlbWVudEZhY3RvcnkuaCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmgpCi0gICAgZW5kaWYgKCkKLQotICAgIGlmIChfZXh0cmFkZWYpCi0g
ICAgICAgIHNldChfYWRkaXRpb25Bcmd1bWVudHMgIiR7X2FkZGl0aW9uQXJndW1lbnRzfSIgLS1l
eHRyYURlZmluZXM9JHtfZXh0cmFkZWZ9KQotICAgIGVuZGlmICgpCi0KLSAgICBhZGRfY3VzdG9t
X2NvbW1hbmQoCi0gICAgICAgIE9VVFBVVCAgJHtfb3V0cHV0ZmlsZXN9Ci0gICAgICAgIERFUEVO
RFMgJHtNQUtFX05BTUVTX0RFUEVOREVOQ0lFU30gJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBU
U19CSU5ESU5HU30gJHtfYXR0cnN9ICR7X3RhZ3N9Ci0gICAgICAgIENPTU1BTkQgJHtQRVJMX0VY
RUNVVEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVS
QVRPUl9QUkVQUk9DRVNTT1JfV0lUSF9MSU5FTUFSS0VSU30iIC0tb3V0cHV0RGlyICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAke19hcmd1bWVudHN9ICR7X2FkZGl0aW9uQXJndW1lbnRz
fQotICAgICAgICBWRVJCQVRJTSkKLWVuZG1hY3JvKCkKLQotbWFjcm8oTUFLRV9IQVNIX1RPT0xT
IF9zb3VyY2UpCi0gICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19zb3VyY2V9IE5B
TUVfV0UpCi0KLSAgICBpZiAoJHtfc291cmNlfSBTVFJFUVVBTCAiRG9jVHlwZVN0cmluZ3MiKQot
ICAgICAgICBzZXQoX2hhc2hfdG9vbHNfaCAiJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
L0hhc2hUb29scy5oIikKLSAgICBlbHNlICgpCi0gICAgICAgIHNldChfaGFzaF90b29sc19oICIi
KQotICAgIGVuZGlmICgpCi0KLSAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgIE9VVFBV
VCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZX0uY3BwICR7X2hhc2hfdG9v
bHNfaH0KLSAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X3NvdXJjZX0uZ3BlcmYKLSAgICAgICAg
Q09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vbWFrZS1oYXNoLXRvb2xz
LnBsICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAke19zb3VyY2V9LmdwZXJmICR7R1BF
UkZfRVhFQ1VUQUJMRX0KLSAgICAgICAgVkVSQkFUSU0pCi0KLSAgICB1bnNldChfbmFtZSkKLSAg
ICB1bnNldChfaGFzaF90b29sc19oKQotZW5kbWFjcm8oKQotCiBtYWNybyhXRUJLSVRfV1JBUF9T
T1VSQ0VMSVNUKQogICAgIGZvcmVhY2ggKF9maWxlICR7QVJHTn0pCiAgICAgICAgIGdldF9maWxl
bmFtZV9jb21wb25lbnQoX2Jhc2VuYW1lICR7X2ZpbGV9IE5BTUVfV0UpCkBAIC0zNzQsNzUgKzE2
Miw4NSBAQCBtYWNybyhXRUJLSVRfQ1JFQVRFX0ZPUldBUkRJTkdfSEVBREVSUyBfZnJhbWV3b3Jr
KQogICAgIGVuZGlmICgpCiBlbmRtYWNybygpCiAKLSMgSGVscGVyIG1hY3JvIHdoaWNoIHdyYXBz
IGdlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIucHkgYW5kIGdlbmVyYXRlLW1lc3NhZ2UtaGVhZGVy
LnB5IHNjcmlwdHMKLSMgICBfb3V0cHV0X3NvdXJjZSBpcyBhIGxpc3QgbmFtZSB3aGljaCB3aWxs
IGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBXZWJLaXQyX1NPVVJDRVMpCi0jICAgX2lu
cHV0X2ZpbGVzIGFyZSBtZXNzYWdlcy5pbiBmaWxlcyB0byBnZW5lcmF0ZS4KLW1hY3JvKEdFTkVS
QVRFX1dFQktJVDJfTUVTU0FHRV9TT1VSQ0VTIF9vdXRwdXRfc291cmNlIF9pbnB1dF9maWxlcykK
LSAgICBmb3JlYWNoIChfZmlsZSAke19pbnB1dF9maWxlc30pCi0gICAgICAgIGdldF9maWxlbmFt
ZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKLSAgICAgICAgYWRkX2N1c3RvbV9j
b21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElS
fS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9E
SVJ9LyR7X25hbWV9TWVzc2FnZXMuaAotICAgICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2Zp
bGV9Ci0gICAgICAgICAgICBERVBFTkRTICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvd2Via2l0L19f
aW5pdF9fLnB5Ci0gICAgICAgICAgICAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5Ci0gICAgICAgICAgICAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1Njcmlw
dHMvd2Via2l0L21vZGVsLnB5Ci0gICAgICAgICAgICAgICAgICAgICR7V0VCS0lUMl9ESVJ9L1Nj
cmlwdHMvd2Via2l0L3BhcnNlci5weQotICAgICAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVD
VVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2ZXIu
cHkgJHtfZmlsZX0gPiAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vJHtfbmFtZX1NZXNz
YWdlUmVjZWl2ZXIuY3BwCi0gICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9
ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMtaGVhZGVyLnB5ICR7X2Zp
bGV9ID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9LyR7X25hbWV9TWVzc2FnZXMuaAot
ICAgICAgICAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtXRUJLSVQyX0RJUn0KLSAgICAgICAgICAg
IFZFUkJBVElNKQotCi0gICAgICAgIGxpc3QoQVBQRU5EICR7X291dHB1dF9zb3VyY2V9ICR7REVS
SVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHApCi0g
ICAgZW5kZm9yZWFjaCAoKQorIyBIZWxwZXIgbWFjcm9zIGZvciBkZWJ1Z2dpbmcgQ01ha2UgcHJv
YmxlbXMuCittYWNybyhXRUJLSVRfREVCVUdfRFVNUF9DT01NQU5EUykKKyAgICBzZXQoQ01BS0Vf
VkVSQk9TRV9NQUtFRklMRSBPTikKIGVuZG1hY3JvKCkKIAotbWFjcm8oTUFLRV9KU19GSUxFX0FS
UkFZUyBfb3V0cHV0X2NwcCBfb3V0cHV0X2ggX25hbWVzcGFjZSBfc2NyaXB0cyBfc2NyaXB0c19k
ZXBlbmRlbmNpZXMpCi0gICAgYWRkX2N1c3RvbV9jb21tYW5kKAotICAgICAgICBPVVRQVVQgJHtf
b3V0cHV0X2h9ICR7X291dHB1dF9jcHB9Ci0gICAgICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29y
ZV9TQ1JJUFRTX0RJUn0vbWFrZS1qcy1maWxlLWFycmF5cy5weSAkeyR7X3NjcmlwdHN9fQotICAg
ICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBU
U19ESVJ9L21ha2UtanMtZmlsZS1hcnJheXMucHkgLW4gJHtfbmFtZXNwYWNlfSAke19vdXRwdXRf
aH0gJHtfb3V0cHV0X2NwcH0gJHske19zY3JpcHRzfX0KLSAgICAgICAgVkVSQkFUSU0pCi0gICAg
QUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHske19zY3JpcHRzX2RlcGVuZGVuY2llc319ICR7X291
dHB1dF9ofSAke19vdXRwdXRfY3BwfSkKK21hY3JvKFdFQktJVF9ERUJVR19EVU1QX1ZBUklBQkxF
UykKKyAgICBzZXRfY21ha2VfcHJvcGVydHkoX3ZhcmlhYmxlTmFtZXMgVkFSSUFCTEVTKQorICAg
IGZvcmVhY2ggKF92YXJpYWJsZU5hbWUgJHtfdmFyaWFibGVOYW1lc30pCisgICAgICAgbWVzc2Fn
ZShTVEFUVVMgIiR7X3ZhcmlhYmxlTmFtZX09JHske192YXJpYWJsZU5hbWV9fSIpCisgICAgZW5k
Zm9yZWFjaCAoKQogZW5kbWFjcm8oKQogCi0jIEhlbHBlciBtYWNybyBmb3IgdXNpbmcgYWxsLWlu
LW9uZSBidWlsZHMKLSMgVGhpcyBtYWNybyByZW1vdmVzIHRoZSBzb3VyY2VzIGluY2x1ZGVkIGlu
IHRoZSBfYWxsX2luX29uZV9maWxlIGZyb20gdGhlIGlucHV0IF9maWxlX2xpc3QuCi0jIF9maWxl
X2xpc3QgaXMgYSBsaXN0IG9mIHNvdXJjZSBmaWxlcwotIyBfYWxsX2luX29uZV9maWxlIGlzIGFu
IGFsbC1pbi1vbmUgY3BwIGZpbGUgaW5jbHVkZXMgb3RoZXIgY3BwIGZpbGVzCi0jIF9yZXN1bHRf
ZmlsZV9saXN0IGlzIHRoZSBvdXRwdXQgZmlsZSBsaXN0Ci1tYWNybyhQUk9DRVNTX0FMTElOT05F
X0ZJTEUgX2ZpbGVfbGlzdCBfYWxsX2luX29uZV9maWxlIF9yZXN1bHRfZmlsZV9saXN0IF9ub19j
b21waWxlKQotICAgIGZpbGUoU1RSSU5HUyAke19hbGxfaW5fb25lX2ZpbGV9IF9hbGxfaW5fb25l
X2ZpbGVfY29udGVudCkKLSAgICBzZXQoJHtfcmVzdWx0X2ZpbGVfbGlzdH0gJHtfZmlsZV9saXN0
fSkKLSAgICBzZXQoX2FsbGlucyAiIikKLSAgICBmb3JlYWNoIChfbGluZSAke19hbGxfaW5fb25l
X2ZpbGVfY29udGVudH0pCi0gICAgICAgIHN0cmluZyhSRUdFWCBNQVRDSCAiXiNpbmNsdWRlIFtc
IjxdKC4qKVtcIj5dIiBfZm91bmQgJHtfbGluZX0pCi0gICAgICAgIGlmIChfZm91bmQpCi0gICAg
ICAgICAgICBsaXN0KEFQUEVORCBfYWxsaW5zICR7Q01BS0VfTUFUQ0hfMX0pCisjIFNldHMgZXh0
cmEgY29tcGlsZSBmbGFncyBmb3IgYSB0YXJnZXQsIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIg
YmVpbmcgdXNlZC4KKyMgQ3VycmVudGx5LCBvbmx5IEdDQyBpcyBzdXBwb3J0ZWQuCittYWNybyhX
RUJLSVRfU0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTIF90YXJnZXQpCisgICAgc2V0KG9wdGlvbnMg
RU5BQkxFX1dFUlJPUiBJR05PUkVDWFhfV0FSTklOR1MpCisgICAgQ01BS0VfUEFSU0VfQVJHVU1F
TlRTKCJPUFRJT04iICIke29wdGlvbnN9IiAiIiAiIiAke0FSR059KQorICAgIGlmIChDT01QSUxF
Ul9JU19HQ0NfT1JfQ0xBTkcpCisgICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoT0xEX0NPTVBJ
TEVfRkxBR1MgJHtfdGFyZ2V0fSBDT01QSUxFX0ZMQUdTKQorICAgICAgICBpZiAoJHtPTERfQ09N
UElMRV9GTEFHU30gU1RSRVFVQUwgIk9MRF9DT01QSUxFX0ZMQUdTLU5PVEZPVU5EIikKKyAgICAg
ICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiIikKICAgICAgICAgZW5kaWYgKCkKLSAgICBl
bmRmb3JlYWNoICgpCiAKLSAgICBmb3JlYWNoIChfYWxsaW4gJHtfYWxsaW5zfSkKLSAgICAgICAg
aWYgKCR7X25vX2NvbXBpbGV9KQotICAgICAgICAgICAgIyBGb3IgRGVyaXZlZFNvdXJjZXMuY3Bw
LCB3ZSBzdGlsbCBuZWVkIHRoZSBkZXJpdmVkIHNvdXJjZXMgdG8gYmUgZ2VuZXJhdGVkLCBidXQg
d2UgZG8gbm90IHdhbnQgdGhlbSB0byBiZSBjb21waWxlZAotICAgICAgICAgICAgIyBpbmRpdmlk
dWFsbHkuIFdlIGFkZCB0aGUgaGVhZGVyIHRvIHRoZSByZXN1bHQgZmlsZSBsaXN0IHNvIHRoYXQg
Q01ha2Uga25vd3MgdG8ga2VlcCBnZW5lcmF0aW5nIHRoZSBmaWxlcy4KLSAgICAgICAgICAgIHN0
cmluZyhSRUdFWCBSRVBMQUNFICIoLiopXFwuY3BwIiAiXFwxIiBfYWxsaW5fbm9fZXh0ICR7X2Fs
bGlufSkKLSAgICAgICAgICAgIHN0cmluZyhSRUdFWCBSRVBMQUNFICI7KFteO10qLykke19hbGxp
bl9ub19leHR9XFwuY3BwOyIgIjtcXDEke19hbGxpbl9ub19leHR9Lmg7IiBfbmV3X3Jlc3VsdCAi
JHske19yZXN1bHRfZmlsZV9saXN0fX07IikKLSAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAg
c3RyaW5nKFJFR0VYIFJFUExBQ0UgIjtbXjtdKi8ke19hbGxpbn07IiAiOyIgX25ld19yZXN1bHQg
IiR7JHtfcmVzdWx0X2ZpbGVfbGlzdH19OyIpCisgICAgICAgIGlmIChOT1QgV0lOMzIpCisgICAg
ICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KFRBUkdFVF9UWVBFICR7X3RhcmdldH0gVFlQRSkK
KyAgICAgICAgICAgIGlmICgke1RBUkdFVF9UWVBFfSBTVFJFUVVBTCAiU1RBVElDX0xJQlJBUlki
KSAjIC1mUElDIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gc2hhcmVkIGxpYnJhcmllcworICAg
ICAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLWZQSUMgJHtPTERfQ09NUElMRV9G
TEFHU30iKQorICAgICAgICAgICAgZW5kaWYgKCkKICAgICAgICAgZW5kaWYgKCkKLSAgICAgICAg
c2V0KCR7X3Jlc3VsdF9maWxlX2xpc3R9ICR7X25ld19yZXN1bHR9KQotICAgIGVuZGZvcmVhY2gg
KCkKIAotZW5kbWFjcm8oKQorICAgICAgICAjIFN1cHByZXNzIC1XcGFyZW50aGVzZXMtZXF1YWxp
dHkgd2FybmluZyBvZiBDbGFuZworICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xBTkcpCisgICAg
ICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1Xbm8tcGFyZW50aGVzZXMtZXF1YWxpdHkg
JHtPTERfQ09NUElMRV9GTEFHU30iKQorICAgICAgICBlbmRpZiAoKQogCi0jIEhlbHBlciBtYWNy
b3MgZm9yIGRlYnVnZ2luZyBDTWFrZSBwcm9ibGVtcy4KLW1hY3JvKFdFQktJVF9ERUJVR19EVU1Q
X0NPTU1BTkRTKQotICAgIHNldChDTUFLRV9WRVJCT1NFX01BS0VGSUxFIE9OKQorICAgICAgICAj
IEVuYWJsZSB3YXJuaW5ncyBieSBkZWZhdWx0CisgICAgICAgIGlmIChOT1QgJHtPUFRJT05fSUdO
T1JFQ1hYX1dBUk5JTkdTfSkKKyAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLVdh
bGwgLVdleHRyYSAtV2Nhc3QtYWxpZ24gLVdmb3JtYXQtc2VjdXJpdHkgLVdtaXNzaW5nLWZvcm1h
dC1hdHRyaWJ1dGUgLVdwb2ludGVyLWFyaXRoIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzICR7T0xE
X0NPTVBJTEVfRkxBR1N9IikKKyAgICAgICAgZW5kaWYgKCkKKworICAgICAgICAjIEVuYWJsZSBl
cnJvcnMgb24gd2FybmluZworICAgICAgICBpZiAoT1BUSU9OX0VOQUJMRV9XRVJST1IpCisgICAg
ICAgICAgICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1XZXJyb3IgJHtPTERfQ09NUElMRV9GTEFH
U30iKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgIHNldF90YXJnZXRfcHJvcGVydGllcygk
e190YXJnZXR9IFBST1BFUlRJRVMKKyAgICAgICAgICAgIENPTVBJTEVfRkxBR1MgIiR7T0xEX0NP
TVBJTEVfRkxBR1N9IikKKworICAgICAgICB1bnNldChPTERfQ09NUElMRV9GTEFHUykKKyAgICBl
bmRpZiAoKQogZW5kbWFjcm8oKQogCi1tYWNybyhXRUJLSVRfREVCVUdfRFVNUF9WQVJJQUJMRVMp
Ci0gICAgc2V0X2NtYWtlX3Byb3BlcnR5KF92YXJpYWJsZU5hbWVzIFZBUklBQkxFUykKLSAgICBm
b3JlYWNoIChfdmFyaWFibGVOYW1lICR7X3ZhcmlhYmxlTmFtZXN9KQotICAgICAgIG1lc3NhZ2Uo
U1RBVFVTICIke192YXJpYWJsZU5hbWV9PSR7JHtfdmFyaWFibGVOYW1lfX0iKQotICAgIGVuZGZv
cmVhY2ggKCkKKyMgQXBwZW5kIHRoZSBnaXZlbiBmbGFnIHRvIHRoZSB0YXJnZXQgcHJvcGVydHku
CisjIEJ1aWxkcyBvbiB0b3Agb2YgZ2V0X3RhcmdldF9wcm9wZXJ0eSgpIGFuZCBzZXRfdGFyZ2V0
X3Byb3BlcnRpZXMoKQorbWFjcm8oQUREX1RBUkdFVF9QUk9QRVJUSUVTIF90YXJnZXQgX3Byb3Bl
cnR5IF9mbGFncykKKyAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KF90bXAgJHtfdGFyZ2V0fSAke19w
cm9wZXJ0eX0pCisgICAgaWYgKE5PVCBfdG1wKQorICAgICAgICBzZXQoX3RtcCAiIikKKyAgICBl
bmRpZiAoTk9UIF90bXApCisKKyAgICBmb3JlYWNoIChmICR7X2ZsYWdzfSkKKyAgICAgICAgc2V0
KF90bXAgIiR7X3RtcH0gJHtmfSIpCisgICAgZW5kZm9yZWFjaCAoZiAke19mbGFnc30pCisKKyAg
ICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoJHtfdGFyZ2V0fSBQUk9QRVJUSUVTICR7X3Byb3BlcnR5
fSAke190bXB9KQorICAgIHVuc2V0KF90bXApCitlbmRtYWNybyhBRERfVEFSR0VUX1BST1BFUlRJ
RVMgX3RhcmdldCBfcHJvcGVydHkgX2ZsYWdzKQorCittYWNybyhQT1BVTEFURV9MSUJSQVJZX1ZF
UlNJT04gbGlicmFyeV9uYW1lKQorICAgIGlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1f
VkVSU0lPTl9NQUpPUikKKyAgICAgICAgc2V0KCR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01BSk9S
ICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfSkKKyAgICBlbmRpZiAoKQorICAgIGlmIChOT1QgREVG
SU5FRCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSU5PUikKKyAgICAgICAgc2V0KCR7bGlicmFy
eV9uYW1lfV9WRVJTSU9OX01JTk9SICR7UFJPSkVDVF9WRVJTSU9OX01JTk9SfSkKKyAgICBlbmRp
ZiAoKQorICAgIGlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSUNSTykK
KyAgICAgICAgc2V0KCR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01JQ1JPICR7UFJPSkVDVF9WRVJT
SU9OX01JQ1JPfSkKKyAgICBlbmRpZiAoKQorICAgIGlmIChOT1QgREVGSU5FRCAke2xpYnJhcnlf
bmFtZX1fVkVSU0lPTikKKyAgICAgICAgc2V0KCR7bGlicmFyeV9uYW1lfV9WRVJTSU9OICR7UFJP
SkVDVF9WRVJTSU9OfSkKKyAgICBlbmRpZiAoKQogZW5kbWFjcm8oKQpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDk2ODg5M2JmYmY0NmFmYjJlYzQ2ODY3MDIwNTQ4ZGVi
NDlhZjI4NDMuLjYwM2M3MTU1NTBmNDgzNjA2YjQzZWEyMGQ2YTQxYTZiNWM3MjY1OGEgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0w
Ny0xNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0NNYWtlXSBVbmNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gV2ViS2l0SGVscGVycyBhbmQg
V2ViS2l0TWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTMxODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNZXJnZSBXZWJLaXRIZWxwZXJzLmNtYWtlIGludG8gV2ViS2l0TWFjcm9zLmNtYWtlLCBz
aW5jZSB0aGVyZSBpcyBubyBtZWFuaW5nZnVsIGRpc3RpbmN0aW9uCisgICAgICAgIGJldHdlZW4g
dGhlIG1hY3JvcyB0aGF0IGJlbG9uZyBpbiBlYWNoIGZpbGUuIFRoZW4sIG1vdmUgdGhlIG1hY3Jv
cyB0aGF0IGFyZSBvbmx5IG5lZWRlZCBieQorICAgICAgICBvbmUgcHJvamVjdCBpbnRvIHByb2pl
Y3Qtc3BlY2lmaWMgQ01ha2UgZmlsZXMuIFJldGFpbiBoZXJlIG9ubHkgdGhlIG1hY3JvcyB0aGF0
IGFyZSBuZWVkZWQKKyAgICAgICAgaW4gbXVsdGlwbGUgcGxhY2VzLgorCisgICAgICAgICogU291
cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2U6IFVwZGF0ZSBhIGNvbW1lbnQuCisgICAgICAg
ICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6IE5ldyBsb2NhdGlvbiBmb3IgbGlidG9v
bCBtYWNybywgZXhjbHVzaXZlbHkgbmVlZGVkIGhlcmUuCisgICAgICAgICogU291cmNlL2NtYWtl
L1dlYktpdENvbW1vbi5jbWFrZTogRG8gbm90IGluY2x1ZGUgV2ViS2l0SGVscGVycy5jbWFrZS4K
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0SGVscGVycy5jbWFrZTogUmVtb3ZlZC4KKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlOgorCiAyMDE3LTA3LTEzICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XVtXUEVdIEF2b2lkIHNldHRpbmcgc2V0dGluZ3MgdGhhdCBhcmUgc2V0IGJ5IGRlZmF1bHQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315471</attachid>
            <date>2017-07-14 12:27:14 -0700</date>
            <delta_ts>2017-07-14 13:24:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153189-20170714142713.patch</filename>
            <type>text/plain</type>
            <size>40580</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUyYzFmM2VmMDNjMjU5
M2IxMjliMjdlYmU3NzgxZTIwMDNiYzg4YS4uYzc0MDBhZjFlMGEyMjZiMmRjMzA1OGMzOTJhNjg3
MDhlYjEwMDEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA3LTE0ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ01ha2Vd
IFVuY2xlYXIgZGlzdGluY3Rpb24gYmV0d2VlbiBXZWJLaXRIZWxwZXJzIGFuZCBXZWJLaXRNYWNy
b3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzE4
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6IEluY2x1ZGUgV2ViQ29yZU1hY3Jvcy5jbWFrZS4KKyAgICAgICAgKiBXZWJD
b3JlTWFjcm9zLmNtYWtlOiBBZGRlZC4KKwogMjAxNy0wNy0xNCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIGFsbCBDRkhUVFBDb29raWVTdG9y
YWdlUmVmcyB3ZSBjcmVhdGUgYXJlIHNjaGVkdWxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTJkMDhiMjBjMTky
N2Y4YjBiOWRlMTQ0NTk1MjEwODcwZmE1ODU5Mi4uOWMxMDIzMjcyODFjOTU3MDM3OWI5Yzc2YjYy
ZmM0OGQ5NDZkMGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wNy0xNCAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NNYWtl
XSBVbmNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4gV2ViS2l0SGVscGVycyBhbmQgV2ViS2l0TWFj
cm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMx
ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcg
bG9jYXRpb24gZm9yIG1hY3JvcyB0aGF0IGFyZSBleGNsdXNpdmVseSBuZWVkZWQgaGVyZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDE3LTA3LTE0ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgYWxsIENGSFRUUENvb2tpZVN0
b3JhZ2VSZWZzIHdlIGNyZWF0ZSBhcmUgc2NoZWR1bGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBiZGMxN2M4NjkyZGMzYjc2MmE0YWNjZmQ3NGZhNTE4YTcyOTMwYmViLi40YTE2NTA1NDQ1Mjg2
N2QwMjU1MTczYWQyNzA0ODNhMTQ2NDNjMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMSw2
ICsxLDEwIEBACiBjbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMi44LjEyKQorCiBpbmNs
dWRlKFdlYktpdENvbW1vbikKK2luY2x1ZGUoV2ViQ29yZU1hY3Jvcy5jbWFrZSkKKwogc2V0X3By
b3BlcnR5KERJUkVDVE9SWSAuIFBST1BFUlRZIEZPTERFUiAiV2ViQ29yZSIpCisKIGFkZF9zdWJk
aXJlY3RvcnkoUEFML3BhbCkKIAogaWYgKFBBTF9MSUJSQVJZX1RZUEUgTUFUQ0hFUyBTVEFUSUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlTWFjcm9zLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZU1hY3Jvcy5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTc1YmViYjViM2JkMjIy
NTMwOTliYWE5ZWVmYzU0YTUyNDRmYzliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZU1hY3Jvcy5jbWFrZQpAQCAtMCwwICsxLDI3NCBAQAorIyBIZWxwZXIgbWFjcm8g
Zm9yIHVzaW5nIGFsbC1pbi1vbmUgYnVpbGRzCisjIFRoaXMgbWFjcm8gcmVtb3ZlcyB0aGUgc291
cmNlcyBpbmNsdWRlZCBpbiB0aGUgX2FsbF9pbl9vbmVfZmlsZSBmcm9tIHRoZSBpbnB1dCBfZmls
ZV9saXN0LgorIyBfZmlsZV9saXN0IGlzIGEgbGlzdCBvZiBzb3VyY2UgZmlsZXMKKyMgX2FsbF9p
bl9vbmVfZmlsZSBpcyBhbiBhbGwtaW4tb25lIGNwcCBmaWxlIGluY2x1ZGVzIG90aGVyIGNwcCBm
aWxlcworIyBfcmVzdWx0X2ZpbGVfbGlzdCBpcyB0aGUgb3V0cHV0IGZpbGUgbGlzdAorbWFjcm8o
UFJPQ0VTU19BTExJTk9ORV9GSUxFIF9maWxlX2xpc3QgX2FsbF9pbl9vbmVfZmlsZSBfcmVzdWx0
X2ZpbGVfbGlzdCBfbm9fY29tcGlsZSkKKyAgICBmaWxlKFNUUklOR1MgJHtfYWxsX2luX29uZV9m
aWxlfSBfYWxsX2luX29uZV9maWxlX2NvbnRlbnQpCisgICAgc2V0KCR7X3Jlc3VsdF9maWxlX2xp
c3R9ICR7X2ZpbGVfbGlzdH0pCisgICAgc2V0KF9hbGxpbnMgIiIpCisgICAgZm9yZWFjaCAoX2xp
bmUgJHtfYWxsX2luX29uZV9maWxlX2NvbnRlbnR9KQorICAgICAgICBzdHJpbmcoUkVHRVggTUFU
Q0ggIl4jaW5jbHVkZSBbXCI8XSguKilbXCI+XSIgX2ZvdW5kICR7X2xpbmV9KQorICAgICAgICBp
ZiAoX2ZvdW5kKQorICAgICAgICAgICAgbGlzdChBUFBFTkQgX2FsbGlucyAke0NNQUtFX01BVENI
XzF9KQorICAgICAgICBlbmRpZiAoKQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgIGZvcmVhY2gg
KF9hbGxpbiAke19hbGxpbnN9KQorICAgICAgICBpZiAoJHtfbm9fY29tcGlsZX0pCisgICAgICAg
ICAgICAjIEZvciBEZXJpdmVkU291cmNlcy5jcHAsIHdlIHN0aWxsIG5lZWQgdGhlIGRlcml2ZWQg
c291cmNlcyB0byBiZSBnZW5lcmF0ZWQsIGJ1dCB3ZSBkbyBub3Qgd2FudCB0aGVtIHRvIGJlIGNv
bXBpbGVkCisgICAgICAgICAgICAjIGluZGl2aWR1YWxseS4gV2UgYWRkIHRoZSBoZWFkZXIgdG8g
dGhlIHJlc3VsdCBmaWxlIGxpc3Qgc28gdGhhdCBDTWFrZSBrbm93cyB0byBrZWVwIGdlbmVyYXRp
bmcgdGhlIGZpbGVzLgorICAgICAgICAgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIiguKilcXC5j
cHAiICJcXDEiIF9hbGxpbl9ub19leHQgJHtfYWxsaW59KQorICAgICAgICAgICAgc3RyaW5nKFJF
R0VYIFJFUExBQ0UgIjsoW147XSovKSR7X2FsbGluX25vX2V4dH1cXC5jcHA7IiAiO1xcMSR7X2Fs
bGluX25vX2V4dH0uaDsiIF9uZXdfcmVzdWx0ICIkeyR7X3Jlc3VsdF9maWxlX2xpc3R9fTsiKQor
ICAgICAgICBlbHNlICgpCisgICAgICAgICAgICBzdHJpbmcoUkVHRVggUkVQTEFDRSAiO1teO10q
LyR7X2FsbGlufTsiICI7IiBfbmV3X3Jlc3VsdCAiJHske19yZXN1bHRfZmlsZV9saXN0fX07IikK
KyAgICAgICAgZW5kaWYgKCkKKyAgICAgICAgc2V0KCR7X3Jlc3VsdF9maWxlX2xpc3R9ICR7X25l
d19yZXN1bHR9KQorICAgIGVuZGZvcmVhY2ggKCkKKworZW5kbWFjcm8oKQorCisKK21hY3JvKE1B
S0VfSEFTSF9UT09MUyBfc291cmNlKQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUg
JHtfc291cmNlfSBOQU1FX1dFKQorCisgICAgaWYgKCR7X3NvdXJjZX0gU1RSRVFVQUwgIkRvY1R5
cGVTdHJpbmdzIikKKyAgICAgICAgc2V0KF9oYXNoX3Rvb2xzX2ggIiR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9IYXNoVG9vbHMuaCIpCisgICAgZWxzZSAoKQorICAgICAgICBzZXQoX2hh
c2hfdG9vbHNfaCAiIikKKyAgICBlbmRpZiAoKQorCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAor
ICAgICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9LyR7X25hbWV9LmNw
cCAke19oYXNoX3Rvb2xzX2h9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19zb3VyY2V9Lmdw
ZXJmCisgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L21h
a2UtaGFzaC10b29scy5wbCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0gJHtfc291cmNl
fS5ncGVyZiAke0dQRVJGX0VYRUNVVEFCTEV9CisgICAgICAgIFZFUkJBVElNKQorCisgICAgdW5z
ZXQoX25hbWUpCisgICAgdW5zZXQoX2hhc2hfdG9vbHNfaCkKK2VuZG1hY3JvKCkKKworCisjIEFw
cGVuZCB0aGUgZ2l2ZW4gZGVwZW5kZW5jaWVzIHRvIHRoZSBzb3VyY2UgZmlsZQorIyBUaGlzIG9u
ZSBjb25zaWRlciB0aGUgZ2l2ZW4gZGVwZW5kZW5jaWVzIGFyZSBpbiAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0KKyMgYW5kIHByZXBlbmRzIHRoaXMgdG8gZXZlcnkgbWVtYmVyIG9mIGRl
cGVuZGVuY2llcyBsaXN0CittYWNybyhBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRF
TkNJRVMgX3NvdXJjZSBfZGVwcykKKyAgICBzZXQoX3RtcCAiIikKKyAgICBmb3JlYWNoIChmICR7
X2RlcHN9KQorICAgICAgICBsaXN0KEFQUEVORCBfdG1wICIke0RFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUn0vJHtmfSIpCisgICAgZW5kZm9yZWFjaCAoKQorCisgICAgQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMoJHtfc291cmNlfSAke190bXB9KQorICAgIHVuc2V0KF90bXApCitlbmRtYWNybygp
CisKKworbWFjcm8oTUFLRV9KU19GSUxFX0FSUkFZUyBfb3V0cHV0X2NwcCBfb3V0cHV0X2ggX25h
bWVzcGFjZSBfc2NyaXB0cyBfc2NyaXB0c19kZXBlbmRlbmNpZXMpCisgICAgYWRkX2N1c3RvbV9j
b21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0X2h9ICR7X291dHB1dF9jcHB9CisgICAg
ICAgIERFUEVORFMgJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUn0vbWFrZS1qcy1maWxlLWFy
cmF5cy5weSAkeyR7X3NjcmlwdHN9fQorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFC
TEV9ICR7SmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVJ9L21ha2UtanMtZmlsZS1hcnJheXMucHkg
LW4gJHtfbmFtZXNwYWNlfSAke19vdXRwdXRfaH0gJHtfb3V0cHV0X2NwcH0gJHske19zY3JpcHRz
fX0KKyAgICAgICAgVkVSQkFUSU0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHske19z
Y3JpcHRzX2RlcGVuZGVuY2llc319ICR7X291dHB1dF9ofSAke19vdXRwdXRfY3BwfSkKK2VuZG1h
Y3JvKCkKKworCitvcHRpb24oU0hPV19CSU5ESU5HU19HRU5FUkFUSU9OX1BST0dSRVNTICJTaG93
IHByb2dyZXNzIG9mIGdlbmVyYXRpbmcgYmluZGluZ3MiIE9GRikKKworIyBIZWxwZXIgbWFjcm8g
d2hpY2ggd3JhcHMgZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsIHNjcmlwdC4KKyMgICB0YXJnZXQg
aXMgYSBuZXcgdGFyZ2V0IG5hbWUgdG8gYmUgYWRkZWQKKyMgICBPVVRQVVRfU09VUkNFIGlzIGEg
bGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5lcmF0ZWQgc291cmNlcy4oZWcuIFdlYkNv
cmVfU09VUkNFUykKKyMgICBJTlBVVF9GSUxFUyBhcmUgSURMIGZpbGVzIHRvIGdlbmVyYXRlLgor
IyAgIEJBU0VfRElSIGlzIGJhc2UgZGlyZWN0b3J5IHdoZXJlIHNjcmlwdCBpcyBjYWxsZWQuCisj
ICAgSURMX0lOQ0xVREVTIGlzIHZhbHVlIG9mIC0taW5jbHVkZSBhcmd1bWVudC4gKGVnLiAke1dF
QkNPUkVfRElSfS9iaW5kaW5ncy9qcykKKyMgICBGRUFUVVJFUyBpcyBhIHZhbHVlIG9mIC0tZGVm
aW5lcyBhcmd1bWVudC4KKyMgICBERVNUSU5BVElPTiBpcyBhIHZhbHVlIG9mIC0tb3V0cHV0RGly
IGFyZ3VtZW50LgorIyAgIEdFTkVSQVRPUiBpcyBhIHZhbHVlIG9mIC0tZ2VuZXJhdG9yIGFyZ3Vt
ZW50LgorIyAgIFNVUFBMRU1FTlRBTF9ERVBGSUxFIGlzIGEgdmFsdWUgb2YgLS1zdXBwbGVtZW50
YWxEZXBlbmRlbmN5RmlsZS4gKG9wdGlvbmFsKQorIyAgIFBQX0VYVFJBX09VVFBVVCBpcyBleHRy
YSBvdXRwdXRzIG9mIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQorIyAgIFBQX0VYVFJB
X0FSR1MgaXMgZXh0cmEgYXJndW1lbnRzIGZvciBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25h
bCkKK2Z1bmN0aW9uKEdFTkVSQVRFX0JJTkRJTkdTIHRhcmdldCkKKyAgICBzZXQob3B0aW9ucykK
KyAgICBzZXQob25lVmFsdWVBcmdzIE9VVFBVVF9TT1VSQ0UgQkFTRV9ESVIgRkVBVFVSRVMgREVT
VElOQVRJT04gR0VORVJBVE9SIFNVUFBMRU1FTlRBTF9ERVBGSUxFKQorICAgIHNldChtdWx0aVZh
bHVlQXJncyBJTlBVVF9GSUxFUyBJRExfSU5DTFVERVMgUFBfRVhUUkFfT1VUUFVUIFBQX0VYVFJB
X0FSR1MpCisgICAgY21ha2VfcGFyc2VfYXJndW1lbnRzKGFyZyAiJHtvcHRpb25zfSIgIiR7b25l
VmFsdWVBcmdzfSIgIiR7bXVsdGlWYWx1ZUFyZ3N9IiAke0FSR059KQorICAgIHNldChiaW5kaW5n
X2dlbmVyYXRvciAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRp
bmdzLWFsbC5wbCkKKyAgICBzZXQoaWRsX2F0dHJpYnV0ZXNfZmlsZSAke1dFQkNPUkVfRElSfS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbikKKyAgICBzZXQoaWRsX2ZpbGVzX2xp
c3QgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2lkbF9maWxlc18ke3RhcmdldH0udG1wKQor
ICAgIHNldChfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kpCisKKyAgICBzZXQoY29udGVudCkKKyAg
ICBmb3JlYWNoIChmICR7YXJnX0lOUFVUX0ZJTEVTfSkKKyAgICAgICAgaWYgKE5PVCBJU19BQlNP
TFVURSAke2Z9KQorICAgICAgICAgICAgc2V0KGYgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
LyR7Zn0pCisgICAgICAgIGVuZGlmICgpCisgICAgICAgIHNldChjb250ZW50ICIke2NvbnRlbnR9
JHtmfVxuIikKKyAgICBlbmRmb3JlYWNoICgpCisgICAgZmlsZShXUklURSAke2lkbF9maWxlc19s
aXN0fSAke2NvbnRlbnR9KQorCisgICAgc2V0KGFyZ3MKKyAgICAgICAgLS1kZWZpbmVzICR7YXJn
X0ZFQVRVUkVTfQorICAgICAgICAtLWdlbmVyYXRvciAke2FyZ19HRU5FUkFUT1J9CisgICAgICAg
IC0tb3V0cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfQorICAgICAgICAtLWlkbEZpbGVzTGlzdCAk
e2lkbF9maWxlc19saXN0fQorICAgICAgICAtLXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVSQVRP
Ul9QUkVQUk9DRVNTT1J9IgorICAgICAgICAtLWlkbEF0dHJpYnV0ZXNGaWxlICR7aWRsX2F0dHJp
YnV0ZXNfZmlsZX0KKyAgICApCisgICAgaWYgKGFyZ19TVVBQTEVNRU5UQUxfREVQRklMRSkKKyAg
ICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICR7YXJn
X1NVUFBMRU1FTlRBTF9ERVBGSUxFfSkKKyAgICBlbmRpZiAoKQorICAgIGlmIChQUk9DRVNTT1Jf
Q09VTlQpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1udW1PZkpvYnMgJHtQUk9DRVNTT1Jf
Q09VTlR9KQorICAgIGVuZGlmICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfSURMX0lO
Q0xVREVTKQorICAgICAgICBpZiAoSVNfQUJTT0xVVEUgJHtpfSkKKyAgICAgICAgICAgIGxpc3Qo
QVBQRU5EIGFyZ3MgLS1pbmNsdWRlICR7aX0pCisgICAgICAgIGVsc2UgKCkKKyAgICAgICAgICAg
IGxpc3QoQVBQRU5EIGFyZ3MgLS1pbmNsdWRlICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8k
e2l9KQorICAgICAgICBlbmRpZiAoKQorICAgIGVuZGZvcmVhY2ggKCkKKyAgICBmb3JlYWNoIChp
IElOIExJU1RTIGFyZ19QUF9FWFRSQV9PVVRQVVQpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3Mg
LS1wcEV4dHJhT3V0cHV0ICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQorICAgIGZvcmVhY2ggKGkg
SU4gTElTVFMgYXJnX1BQX0VYVFJBX0FSR1MpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1w
cEV4dHJhQXJncyAke2l9KQorICAgIGVuZGZvcmVhY2ggKCkKKworICAgIHNldChjb21tb25fZ2Vu
ZXJhdG9yX2RlcGVuZGVuY2llcworICAgICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3Jp
cHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCisgICAgICAgICR7U0NSSVBUU19CSU5ESU5HU30KKyAg
ICAgICAgIyBDaGFuZ2luZyBlbmFibGVkIGZlYXR1cmVzIHNob3VsZCB0cmlnZ2VyIHJlY29tcGls
aW5nIGFsbCBJREwgZmlsZXMKKyAgICAgICAgIyBiZWNhdXNlIHNvbWUgb2YgdGhlbSB1c2UgI2lm
LgorICAgICAgICAke0NNQUtFX0JJTkFSWV9ESVJ9L2NtYWtlY29uZmlnLmgKKyAgICApCisgICAg
aWYgKEVYSVNUUyAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Ik
e2FyZ19HRU5FUkFUT1J9LnBtKQorICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9y
X2RlcGVuZGVuY2llcyAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQorICAgIGVuZGlmICgpCisgICAgaWYgKEVYSVNUUyAke2Fy
Z19CQVNFX0RJUn0vQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCisgICAgICAgIGxp
c3QoQVBQRU5EIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzICR7YXJnX0JBU0VfRElSfS9D
b2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKKyAgICBlbmRpZiAoKQorICAgIGZvcmVh
Y2ggKGkgSU4gTElTVFMgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMpCisgICAgICAgIGxp
c3QoQVBQRU5EIGFyZ3MgLS1nZW5lcmF0b3JEZXBlbmRlbmN5ICR7aX0pCisgICAgZW5kZm9yZWFj
aCAoKQorCisgICAgc2V0KGdlbl9zb3VyY2VzKQorICAgIHNldChnZW5faGVhZGVycykKKyAgICBm
b3JlYWNoIChfZmlsZSAke2FyZ19JTlBVVF9GSUxFU30pCisgICAgICAgIGdldF9maWxlbmFtZV9j
b21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICAgICAgbGlzdChBUFBFTkQgZ2Vu
X3NvdXJjZXMgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uY3BwKQorICAgICAgICBsaXN0
KEFQUEVORCBnZW5faGVhZGVycyAke2FyZ19ERVNUSU5BVElPTn0vSlMke19uYW1lfS5oKQorICAg
IGVuZGZvcmVhY2ggKCkKKyAgICBzZXQoJHthcmdfT1VUUFVUX1NPVVJDRX0gJHske2FyZ19PVVRQ
VVRfU09VUkNFfX0gJHtnZW5fc291cmNlc30gUEFSRU5UX1NDT1BFKQorICAgIHNldChhY3RfYXJn
cykKKyAgICBpZiAoU0hPV19CSU5ESU5HU19HRU5FUkFUSU9OX1BST0dSRVNTKQorICAgICAgICBs
aXN0KEFQUEVORCBhcmdzIC0tc2hvd1Byb2dyZXNzKQorICAgIGVuZGlmICgpCisgICAgaWYgKCR7
Q01BS0VfVkVSU0lPTn0gVkVSU0lPTl9MRVNTIDMuMikKKyAgICAgICAgc2V0X3NvdXJjZV9maWxl
c19wcm9wZXJ0aWVzKCR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9IFBST1BFUlRJRVMgR0VO
RVJBVEVEIDEpCisgICAgZWxzZSAoKQorICAgICAgICBsaXN0KEFQUEVORCBhY3RfYXJncyBCWVBS
T0RVQ1RTICR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9KQorICAgICAgICBpZiAoU0hPV19C
SU5ESU5HU19HRU5FUkFUSU9OX1BST0dSRVNTKQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYWN0
X2FyZ3MgVVNFU19URVJNSU5BTCkKKyAgICAgICAgZW5kaWYgKCkKKyAgICBlbmRpZiAoKQorICAg
IGFkZF9jdXN0b21fdGFyZ2V0KCR7dGFyZ2V0fQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVD
VVRBQkxFfSAke2JpbmRpbmdfZ2VuZXJhdG9yfSAke2FyZ3N9CisgICAgICAgIFdPUktJTkdfRElS
RUNUT1JZICR7YXJnX0JBU0VfRElSfQorICAgICAgICBDT01NRU5UICJHZW5lcmF0ZSBiaW5kaW5n
cyAoJHt0YXJnZXR9KSIKKyAgICAgICAgVkVSQkFUSU0gJHthY3RfYXJnc30pCitlbmRmdW5jdGlv
bigpCisKKworbWFjcm8oR0VORVJBVEVfRk9OVF9OQU1FUyBfaW5maWxlKQorICAgIHNldChOQU1F
U19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vZG9tL21ha2VfbmFtZXMucGwpCisgICAgc2V0KF9h
cmd1bWVudHMgIC0tZm9udHMgJHtfaW5maWxlfSkKKyAgICBzZXQoX291dHB1dGZpbGVzICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJLaXRGb250RmFtaWx5TmFtZXMuaCkKKworICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICAke19vdXRwdXRmaWxlc30KKyAg
ICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2luZmlsZX0KKyAgICAgICAgREVQRU5EUyAke01BS0Vf
TkFNRVNfREVQRU5ERU5DSUVTfSAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdT
fQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0g
LS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9ICR7X2FyZ3VtZW50c30K
KyAgICAgICAgVkVSQkFUSU0pCitlbmRtYWNybygpCisKKworbWFjcm8oR0VORVJBVEVfRVZFTlRf
RkFDVE9SWSBfaW5maWxlIF9vdXRmaWxlKQorICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJD
T1JFX0RJUn0vZG9tL21ha2VfZXZlbnRfZmFjdG9yeS5wbCkKKworICAgIGFkZF9jdXN0b21fY29t
bWFuZCgKKyAgICAgICAgT1VUUFVUICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtf
b3V0ZmlsZX0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2luZmlsZX0KKyAgICAgICAgREVQ
RU5EUyAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJUFRTX0JJTkRJTkdTfQorICAgICAgICBDT01N
QU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZp
bGV9IC0tb3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQorICAgICAgICBW
RVJCQVRJTSkKK2VuZG1hY3JvKCkKKworCittYWNybyhHRU5FUkFURV9FWENFUFRJT05fQ09ERV9E
RVNDUklQVElPTiBfaW5maWxlIF9vdXRmaWxlKQorICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtX
RUJDT1JFX0RJUn0vZG9tL21ha2VfZG9tX2V4Y2VwdGlvbnMucGwpCisKKyAgICBhZGRfY3VzdG9t
X2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
LyR7X291dGZpbGV9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19pbmZpbGV9CisgICAgICAg
IERFUEVORFMgJHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBUU19CSU5ESU5HU30KKyAgICAgICAg
Q09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtOQU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtf
aW5maWxlfSAtLW91dHB1dERpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KKyAgICAg
ICAgVkVSQkFUSU0pCitlbmRtYWNybygpCisKKworbWFjcm8oR0VORVJBVEVfU0VUVElOR1NfTUFD
Uk9TIF9pbmZpbGUgX291dGZpbGUpCisgICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVf
RElSfS9wYWdlL21ha2Vfc2V0dGluZ3MucGwpCisKKyAgICAjIERvIG5vdCBsaXN0IHRoZSBvdXRw
dXQgaW4gbW9yZSB0aGFuIG9uZSBpbmRlcGVuZGVudCB0YXJnZXQgdGhhdCBtYXkKKyAgICAjIGJ1
aWxkIGluIHBhcmFsbGVsIG9yIHRoZSB0d28gaW5zdGFuY2VzIG9mIHRoZSBydWxlIG1heSBjb25m
bGljdC4KKyAgICAjIDxodHRwczovL2NtYWtlLm9yZy9jbWFrZS9oZWxwL3YzLjAvY29tbWFuZC9h
ZGRfY3VzdG9tX2NvbW1hbmQuaHRtbD4KKyAgICBzZXQoX2V4dHJhX291dHB1dAorICAgICAgICAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5o
CisgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdz
R2VuZXJhdGVkLmNwcAorICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwKKyAgICApCisgICAgc2V0KF9hcmdzIEJZUFJPRFVD
VFMgJHtfZXh0cmFfb3V0cHV0fSkKKyAgICBpZiAoJHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xF
U1MgMy4yKQorICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfZXh0cmFfb3V0
cHV0fSBQUk9QRVJUSUVTIEdFTkVSQVRFRCAxKQorICAgICAgICBzZXQoX2FyZ3MpCisgICAgZW5k
aWYgKCkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZ
ICR7X2luZmlsZX0KKyAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJUFRT
X0JJTkRJTkdTfQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke05BTUVTX0dF
TkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfQorICAgICAgICBWRVJCQVRJTSAke19hcmdzfSkKK2VuZG1hY3JvKCkKKwor
CittYWNybyhHRU5FUkFURV9ET01fTkFNRVMgX25hbWVzcGFjZSBfYXR0cnMpCisgICAgc2V0KE5B
TUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9kb20vbWFrZV9uYW1lcy5wbCkKKyAgICBzZXQo
X2FyZ3VtZW50cyAgLS1hdHRycyAke19hdHRyc30pCisgICAgc2V0KF9vdXRwdXRmaWxlcyAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZXNwYWNlfU5hbWVzLmNwcCAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfbmFtZXNwYWNlfU5hbWVzLmgpCisgICAgc2V0KF9l
eHRyYWRlZikKKyAgICBzZXQoX3RhZ3MpCisKKyAgICBmb3JlYWNoIChmICR7QVJHTn0pCisgICAg
ICAgIGlmIChfdGFncykKKyAgICAgICAgICAgIHNldChfZXh0cmFkZWYgIiR7X2V4dHJhZGVmfSAk
e2Z9IikKKyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgc2V0KF90YWdzICR7Zn0pCisgICAg
ICAgIGVuZGlmICgpCisgICAgZW5kZm9yZWFjaCAoKQorCisgICAgaWYgKF90YWdzKQorICAgICAg
ICBzZXQoX2FyZ3VtZW50cyAiJHtfYXJndW1lbnRzfSIgLS10YWdzICR7X3RhZ3N9IC0tZmFjdG9y
eSAtLXdyYXBwZXJGYWN0b3J5KQorICAgICAgICBzZXQoX291dHB1dGZpbGVzICIke19vdXRwdXRm
aWxlc30iICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lc3BhY2V9RWxlbWVu
dEZhY3RvcnkuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lc3BhY2V9
RWxlbWVudEZhY3RvcnkuaCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSlMke19uYW1l
c3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vSlMke19uYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGYWN0b3J5LmgpCisgICAgZW5kaWYg
KCkKKworICAgIGlmIChfZXh0cmFkZWYpCisgICAgICAgIHNldChfYWRkaXRpb25Bcmd1bWVudHMg
IiR7X2FkZGl0aW9uQXJndW1lbnRzfSIgLS1leHRyYURlZmluZXM9JHtfZXh0cmFkZWZ9KQorICAg
IGVuZGlmICgpCisKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAgJHtf
b3V0cHV0ZmlsZXN9CisgICAgICAgIERFUEVORFMgJHtNQUtFX05BTUVTX0RFUEVOREVOQ0lFU30g
JHtOQU1FU19HRU5FUkFUT1J9ICR7U0NSSVBUU19CSU5ESU5HU30gJHtfYXR0cnN9ICR7X3RhZ3N9
CisgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAt
LXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1JfV0lUSF9MSU5FTUFS
S0VSU30iIC0tb3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfSAke19hcmd1
bWVudHN9ICR7X2FkZGl0aW9uQXJndW1lbnRzfQorICAgICAgICBWRVJCQVRJTSkKK2VuZG1hY3Jv
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGI4N2M5MTNmZDA5YWMwMDFiZGMwYzA5N2UwMmY2YTAy
Njc0N2I1NzkuLmZiMTlmZTQ1MTI1YzkyMjYzMTdhNDc0ODcxOWY1OThiMjIzMzljMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dApAQCAtNzYxLDcgKzc2MSwyOCBAQCBzZXQoV2ViS2l0Ml9BVVRPTUFUSU9O
X1BST1RPQ09MX0dFTkVSQVRPUl9FWFRSQV9GTEFHUwogCiBXRUJLSVRfSU5DTFVERV9DT05GSUdf
RklMRVNfSUZfRVhJU1RTKCkKIAotR0VORVJBVEVfV0VCS0lUMl9NRVNTQUdFX1NPVVJDRVMoV2Vi
S2l0Ml9ERVJJVkVEX1NPVVJDRVMgIiR7V2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFU30iKQorIyBI
ZWxwZXIgbWFjcm8gd2hpY2ggd3JhcHMgZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSBhbmQg
Z2VuZXJhdGUtbWVzc2FnZS1oZWFkZXIucHkgc2NyaXB0cworIyAgIF9vdXRwdXRfc291cmNlIGlz
IGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5lcmF0ZWQgc291cmNlcy4oZWcuIFdl
YktpdDJfU09VUkNFUykKKyMgICBfaW5wdXRfZmlsZXMgYXJlIG1lc3NhZ2VzLmluIGZpbGVzIHRv
IGdlbmVyYXRlLgorbWFjcm8oR0VORVJBVEVfTUVTU0FHRV9TT1VSQ0VTIF9vdXRwdXRfc291cmNl
IF9pbnB1dF9maWxlcykKKyAgICBmb3JlYWNoIChfZmlsZSAke19pbnB1dF9maWxlc30pCisgICAg
ICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICAg
ICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS8ke19uYW1lfU1lc3NhZ2VSZWNlaXZlci5jcHAgJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMl9ESVJ9LyR7X25hbWV9TWVzc2FnZXMuaAorICAgICAgICAgICAgTUFJTl9E
RVBFTkRFTkNZICR7X2ZpbGV9CisgICAgICAgICAgICBERVBFTkRTICR7V0VCS0lUMl9ESVJ9L1Nj
cmlwdHMvd2Via2l0L19faW5pdF9fLnB5CisgICAgICAgICAgICAgICAgICAgICR7V0VCS0lUMl9E
SVJ9L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisgICAgICAgICAgICAgICAgICAgICR7V0VC
S0lUMl9ESVJ9L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CisgICAgICAgICAgICAgICAgICAgICR7
V0VCS0lUMl9ESVJ9L1NjcmlwdHMvd2Via2l0L3BhcnNlci5weQorICAgICAgICAgICAgQ09NTUFO
RCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLW1l
c3NhZ2UtcmVjZWl2ZXIucHkgJHtfZmlsZX0gPiAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJ
Un0vJHtfbmFtZX1NZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgICAgICAgICBDT01NQU5EICR7UFlU
SE9OX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZXMt
aGVhZGVyLnB5ICR7X2ZpbGV9ID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9LyR7X25h
bWV9TWVzc2FnZXMuaAorICAgICAgICAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtXRUJLSVQyX0RJ
Un0KKyAgICAgICAgICAgIFZFUkJBVElNKQorCisgICAgICAgIGxpc3QoQVBQRU5EICR7X291dHB1
dF9zb3VyY2V9ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS8ke19uYW1lfU1lc3NhZ2VS
ZWNlaXZlci5jcHApCisgICAgZW5kZm9yZWFjaCAoKQorZW5kbWFjcm8oKQorR0VORVJBVEVfTUVT
U0FHRV9TT1VSQ0VTKFdlYktpdDJfREVSSVZFRF9TT1VSQ0VTICIke1dlYktpdDJfTUVTU0FHRVNf
SU5fRklMRVN9IikKIAogc2V0KFdlYktpdDJfQVVUT01BVElPTl9QUk9UT0NPTF9HRU5FUkFUT1Jf
U0NSSVBUUwogICAgICR7UFJPVE9DT0xfR0VORVJBVE9SX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1p
bnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zQ29tbW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2UKaW5k
ZXggMjZmYzBhZjY0OWFlNmI2ZWQ1NDc0YzFkYmU2Yzk4N2EwZTNkYjJkOS4uNjJlMTg1Yjc4Mzgx
OGVkODVjOTZkNjk0YjgyMTE2ZGYxMjI4MTM0OCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09w
dGlvbnNDb21tb24uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNDb21tb24uY21ha2UK
QEAgLTQ0LDcgKzQ0LDcgQEAgaWYgKENNQUtFX0dFTkVSQVRPUiBTVFJFUVVBTCAiTmluamEiKQog
ICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCi0jIEZJWE1FOiBTb21lIHdhcm5pbmcgZmxhZ3Mgc2hv
dWxkIHByb2JhYmx5IGJlIHNldCBpbiBXZWJLaXRIZWxwZXJzLmNtYWtlIGluc3RlYWQuCisjIEZJ
WE1FOiBTb21lIHdhcm5pbmcgZmxhZ3Mgc2hvdWxkIHByb2JhYmx5IGJlIHNldCBpbiBXRUJLSVRf
U0VUX0VYVFJBX0NPTVBJTEVSX0ZMQUdTIGluc3RlYWQuCiAjIEJ1dCBsYW5ndWFnZS1zcGVjaWZp
YyB3YXJuaW5ncyBwcm9iYWJseSBjYW5ub3QgYmUgbW92ZWQgdGhlcmUuCiBpZiAoQ09NUElMRVJf
SVNfR0NDX09SX0NMQU5HKQogICAgIHNldChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9
IC1mbm8tc3RyaWN0LWFsaWFzaW5nIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
R1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggNjFlNGNiOTM4
MWRkNTRjYzgxNzM3NmU1YjY3MDVjNWExODYyNDVlYi4uZDBlMzY4MjczZGI2NTU1NjRiZmJhY2Rm
MDg0ODc1ZmY3ZTYwMGNjZSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21h
a2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTgsNiArOCwxMiBAQCBz
ZXQoV0VCS0lUR1RLX0FQSV9WRVJTSU9OIDQuMCkKIAogIyBMaWJ0b29sIGxpYnJhcnkgdmVyc2lv
biwgbm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggQVBJIHZlcnNpb24uCiAjIFNlZSBodHRwOi8vd3d3
LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC9tYW51YWwvaHRtbF9ub2RlL0xpYnRvb2wtdmVyc2lv
bmluZy5odG1sCittYWNybyhDQUxDVUxBVEVfTElCUkFSWV9WRVJTSU9OU19GUk9NX0xJQlRPT0xf
VFJJUExFIGxpYnJhcnlfbmFtZSBjdXJyZW50IHJldmlzaW9uIGFnZSkKKyAgICBtYXRoKEVYUFIg
JHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUFKT1IgIiR7Y3VycmVudH0gLSAke2FnZX0iKQorICAg
IHNldCgke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSU5PUiAke2FnZX0pCisgICAgc2V0KCR7bGli
cmFyeV9uYW1lfV9WRVJTSU9OX01JQ1JPICR7cmV2aXNpb259KQorICAgIHNldCgke2xpYnJhcnlf
bmFtZX1fVkVSU0lPTiAkeyR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01BSk9SfS4ke2FnZX0uJHty
ZXZpc2lvbn0pCitlbmRtYWNybygpCiBDQUxDVUxBVEVfTElCUkFSWV9WRVJTSU9OU19GUk9NX0xJ
QlRPT0xfVFJJUExFKFdFQktJVCA2MCAwIDIzKQogQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNf
RlJPTV9MSUJUT09MX1RSSVBMRShKQVZBU0NSSVBUQ09SRSAyNCA0IDYpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZS9XZWJLaXRDb21tb24uY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0Q29t
bW9uLmNtYWtlCmluZGV4IGIwYWU1MTQwZjhhOTBiYzcyMjZjN2MzMzBhZmZjMTdmN2ZmZmNmYjAu
LmYyYWRjNGMxYjUyZjVkZGUwZmQwZWE3YjFhZWIwYjI4ZmJiYmYyOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9jbWFrZS9XZWJLaXRDb21tb24uY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdENv
bW1vbi5jbWFrZQpAQCAtMzgsNyArMzgsNiBAQCBpZiAoTk9UIEhBU19SVU5fV0VCS0lUX0NPTU1P
TikKIAogICAgIGluY2x1ZGUoV2ViS2l0TWFjcm9zKQogICAgIGluY2x1ZGUoV2ViS2l0RlMpCi0g
ICAgaW5jbHVkZShXZWJLaXRIZWxwZXJzKQogICAgIGluY2x1ZGUoV2ViS2l0RmVhdHVyZXMpCiAK
ICAgICBpbmNsdWRlKE9wdGlvbnNDb21tb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0SGVscGVycy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRIZWxwZXJzLmNtYWtlCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTQ2MzgzZjM4YzBjZDU2MzU2ZWI2ZjdkMTZlZWJh
ZjFlZTdkODA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9jbWFrZS9XZWJLaXRIZWxwZXJzLmNtYWtlCisrKyAvZGV2L251bGwKQEAgLTEsMTA5
ICswLDAgQEAKLWluY2x1ZGUoQ01ha2VQYXJzZUFyZ3VtZW50cykKLSMgU2V0cyBleHRyYSBjb21w
aWxlIGZsYWdzIGZvciBhIHRhcmdldCwgZGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciBiZWluZyB1
c2VkLgotIyBDdXJyZW50bHksIG9ubHkgR0NDIGlzIHN1cHBvcnRlZC4KLW1hY3JvKFdFQktJVF9T
RVRfRVhUUkFfQ09NUElMRVJfRkxBR1MgX3RhcmdldCkKLSAgICBzZXQob3B0aW9ucyBFTkFCTEVf
V0VSUk9SIElHTk9SRUNYWF9XQVJOSU5HUykKLSAgICBDTUFLRV9QQVJTRV9BUkdVTUVOVFMoIk9Q
VElPTiIgIiR7b3B0aW9uc30iICIiICIiICR7QVJHTn0pCi0gICAgaWYgKENPTVBJTEVSX0lTX0dD
Q19PUl9DTEFORykKLSAgICAgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShPTERfQ09NUElMRV9GTEFH
UyAke190YXJnZXR9IENPTVBJTEVfRkxBR1MpCi0gICAgICAgIGlmICgke09MRF9DT01QSUxFX0ZM
QUdTfSBTVFJFUVVBTCAiT0xEX0NPTVBJTEVfRkxBR1MtTk9URk9VTkQiKQotICAgICAgICAgICAg
c2V0KE9MRF9DT01QSUxFX0ZMQUdTICIiKQotICAgICAgICBlbmRpZiAoKQotCi0gICAgICAgIGlm
IChOT1QgV0lOMzIpCi0gICAgICAgICAgICBnZXRfdGFyZ2V0X3Byb3BlcnR5KFRBUkdFVF9UWVBF
ICR7X3RhcmdldH0gVFlQRSkKLSAgICAgICAgICAgIGlmICgke1RBUkdFVF9UWVBFfSBTVFJFUVVB
TCAiU1RBVElDX0xJQlJBUlkiKSAjIC1mUElDIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gc2hh
cmVkIGxpYnJhcmllcwotICAgICAgICAgICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLWZQ
SUMgJHtPTERfQ09NUElMRV9GTEFHU30iKQotICAgICAgICAgICAgZW5kaWYgKCkKLSAgICAgICAg
ZW5kaWYgKCkKLQotICAgICAgICAjIFN1cHByZXNzIC1XcGFyZW50aGVzZXMtZXF1YWxpdHkgd2Fy
bmluZyBvZiBDbGFuZwotICAgICAgICBpZiAoQ09NUElMRVJfSVNfQ0xBTkcpCi0gICAgICAgICAg
ICBzZXQoT0xEX0NPTVBJTEVfRkxBR1MgIi1Xbm8tcGFyZW50aGVzZXMtZXF1YWxpdHkgJHtPTERf
Q09NUElMRV9GTEFHU30iKQotICAgICAgICBlbmRpZiAoKQotCi0gICAgICAgICMgRW5hYmxlIHdh
cm5pbmdzIGJ5IGRlZmF1bHQKLSAgICAgICAgaWYgKE5PVCAke09QVElPTl9JR05PUkVDWFhfV0FS
TklOR1N9KQotICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICItV2FsbCAtV2V4dHJh
IC1XY2FzdC1hbGlnbiAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0
ZSAtV3BvaW50ZXItYXJpdGggLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgJHtPTERfQ09NUElMRV9G
TEFHU30iKQotICAgICAgICBlbmRpZiAoKQotCi0gICAgICAgICMgRW5hYmxlIGVycm9ycyBvbiB3
YXJuaW5nCi0gICAgICAgIGlmIChPUFRJT05fRU5BQkxFX1dFUlJPUikKLSAgICAgICAgICAgIHNl
dChPTERfQ09NUElMRV9GTEFHUyAiLVdlcnJvciAke09MRF9DT01QSUxFX0ZMQUdTfSIpCi0gICAg
ICAgIGVuZGlmICgpCi0KLSAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7X3RhcmdldH0g
UFJPUEVSVElFUwotICAgICAgICAgICAgQ09NUElMRV9GTEFHUyAiJHtPTERfQ09NUElMRV9GTEFH
U30iKQotCi0gICAgICAgIHVuc2V0KE9MRF9DT01QSUxFX0ZMQUdTKQotICAgIGVuZGlmICgpCi1l
bmRtYWNybygpCi0KLQotIyBBcHBlbmQgdGhlIGdpdmVuIGZsYWcgdG8gdGhlIHRhcmdldCBwcm9w
ZXJ0eS4KLSMgQnVpbGRzIG9uIHRvcCBvZiBnZXRfdGFyZ2V0X3Byb3BlcnR5KCkgYW5kIHNldF90
YXJnZXRfcHJvcGVydGllcygpCi1tYWNybyhBRERfVEFSR0VUX1BST1BFUlRJRVMgX3RhcmdldCBf
cHJvcGVydHkgX2ZsYWdzKQotICAgIGdldF90YXJnZXRfcHJvcGVydHkoX3RtcCAke190YXJnZXR9
ICR7X3Byb3BlcnR5fSkKLSAgICBpZiAoTk9UIF90bXApCi0gICAgICAgIHNldChfdG1wICIiKQot
ICAgIGVuZGlmIChOT1QgX3RtcCkKLQotICAgIGZvcmVhY2ggKGYgJHtfZmxhZ3N9KQotICAgICAg
ICBzZXQoX3RtcCAiJHtfdG1wfSAke2Z9IikKLSAgICBlbmRmb3JlYWNoIChmICR7X2ZsYWdzfSkK
LQotICAgIHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9IFBST1BFUlRJRVMgJHtfcHJv
cGVydHl9ICR7X3RtcH0pCi0gICAgdW5zZXQoX3RtcCkKLWVuZG1hY3JvKEFERF9UQVJHRVRfUFJP
UEVSVElFUyBfdGFyZ2V0IF9wcm9wZXJ0eSBfZmxhZ3MpCi0KLQotIyBBcHBlbmQgdGhlIGdpdmVu
IGRlcGVuZGVuY2llcyB0byB0aGUgc291cmNlIGZpbGUKLW1hY3JvKEFERF9TT1VSQ0VfREVQRU5E
RU5DSUVTIF9zb3VyY2UgX2RlcHMpCi0gICAgZ2V0X3NvdXJjZV9maWxlX3Byb3BlcnR5KF90bXAg
JHtfc291cmNlfSBPQkpFQ1RfREVQRU5EUykKLSAgICBpZiAoTk9UIF90bXApCi0gICAgICAgIHNl
dChfdG1wICIiKQotICAgIGVuZGlmICgpCi0KLSAgICBmb3JlYWNoIChmICR7X2RlcHN9KQotICAg
ICAgICBsaXN0KEFQUEVORCBfdG1wICIke2Z9IikKLSAgICBlbmRmb3JlYWNoICgpCi0KLSAgICBz
ZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtfc291cmNlfSBQUk9QRVJUSUVTIE9CSkVDVF9E
RVBFTkRTICIke190bXB9IikKLSAgICB1bnNldChfdG1wKQotZW5kbWFjcm8oKQotCi0KLSMgQXBw
ZW5kIHRoZSBnaXZlbiBkZXBlbmRlbmNpZXMgdG8gdGhlIHNvdXJjZSBmaWxlCi0jIFRoaXMgb25l
IGNvbnNpZGVyIHRoZSBnaXZlbiBkZXBlbmRlbmNpZXMgYXJlIGluICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfQotIyBhbmQgcHJlcGVuZHMgdGhpcyB0byBldmVyeSBtZW1iZXIgb2YgZGVw
ZW5kZW5jaWVzIGxpc3QKLW1hY3JvKEFERF9TT1VSQ0VfV0VCQ09SRV9ERVJJVkVEX0RFUEVOREVO
Q0lFUyBfc291cmNlIF9kZXBzKQotICAgIHNldChfdG1wICIiKQotICAgIGZvcmVhY2ggKGYgJHtf
ZGVwc30pCi0gICAgICAgIGxpc3QoQVBQRU5EIF90bXAgIiR7REVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSfS8ke2Z9IikKLSAgICBlbmRmb3JlYWNoICgpCi0KLSAgICBBRERfU09VUkNFX0RFUEVO
REVOQ0lFUygke19zb3VyY2V9ICR7X3RtcH0pCi0gICAgdW5zZXQoX3RtcCkKLWVuZG1hY3JvKCkK
LQotbWFjcm8oQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09MX1RSSVBMRSBs
aWJyYXJ5X25hbWUgY3VycmVudCByZXZpc2lvbiBhZ2UpCi0gICAgbWF0aChFWFBSICR7bGlicmFy
eV9uYW1lfV9WRVJTSU9OX01BSk9SICIke2N1cnJlbnR9IC0gJHthZ2V9IikKLSAgICBzZXQoJHts
aWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlOT1IgJHthZ2V9KQotICAgIHNldCgke2xpYnJhcnlfbmFt
ZX1fVkVSU0lPTl9NSUNSTyAke3JldmlzaW9ufSkKLSAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZF
UlNJT04gJHske2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NQUpPUn0uJHthZ2V9LiR7cmV2aXNpb259
KQotZW5kbWFjcm8oKQotCi1tYWNybyhQT1BVTEFURV9MSUJSQVJZX1ZFUlNJT04gbGlicmFyeV9u
YW1lKQotaWYgKE5PVCBERUZJTkVEICR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01BSk9SKQotICAg
IHNldCgke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NQUpPUiAke1BST0pFQ1RfVkVSU0lPTl9NQUpP
Un0pCi1lbmRpZiAoKQotaWYgKE5PVCBERUZJTkVEICR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01J
Tk9SKQotICAgIHNldCgke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSU5PUiAke1BST0pFQ1RfVkVS
U0lPTl9NSU5PUn0pCi1lbmRpZiAoKQotaWYgKE5PVCBERUZJTkVEICR7bGlicmFyeV9uYW1lfV9W
RVJTSU9OX01JQ1JPKQotICAgIHNldCgke2xpYnJhcnlfbmFtZX1fVkVSU0lPTl9NSUNSTyAke1BS
T0pFQ1RfVkVSU0lPTl9NSUNST30pCi1lbmRpZiAoKQotaWYgKE5PVCBERUZJTkVEICR7bGlicmFy
eV9uYW1lfV9WRVJTSU9OKQotICAgIHNldCgke2xpYnJhcnlfbmFtZX1fVkVSU0lPTiAke1BST0pF
Q1RfVkVSU0lPTn0pCi1lbmRpZiAoKQotZW5kbWFjcm8oKQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UK
aW5kZXggZjJmYzMxMmYwOTlmNzVmNjlkZDRlYzIzZjU3ZGFhZWEwNTNiZDJlNS4uNjQ5Mzc1NTk5
MmQxMGJlMzE0ZmU0MDEyZGNhMTA5MmFkNGM2MGQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L1dlYktpdE1hY3Jvcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
CkBAIC0xLDMgKzEsNyBAQAorIyBUaGlzIGZpbGUgaXMgZm9yIG1hY3JvcyB0aGF0IGFyZSB1c2Vk
IGJ5IG11bHRpcGxlIHByb2plY3RzLiBJZiB5b3VyIG1hY3JvIGlzCisjIGV4Y2x1c2l2ZWx5IG5l
ZWRlZCBpbiBvbmx5IG9uZSBzdWJkaXJlY3Rvcnkgb2YgU291cmNlIChlLmcuIG9ubHkgbmVlZGVk
IGJ5CisjIFdlYkNvcmUpLCB0aGVuIHB1dCBpdCB0aGVyZSBpbnN0ZWFkLgorCiBpbmNsdWRlKENN
YWtlUGFyc2VBcmd1bWVudHMpCiBpbmNsdWRlKFByb2Nlc3NvckNvdW50KQogUHJvY2Vzc29yQ291
bnQoUFJPQ0VTU09SX0NPVU5UKQpAQCAtMjUsNiArMjksNyBAQCBtYWNybyhBRERfU09VUkNFX0RF
UEVOREVOQ0lFUyBfc291cmNlIF9kZXBzKQogICAgIGVuZGZvcmVhY2ggKCkKIAogICAgIHNldF9z
b3VyY2VfZmlsZXNfcHJvcGVydGllcygke19zb3VyY2V9IFBST1BFUlRJRVMgT0JKRUNUX0RFUEVO
RFMgIiR7X3RtcH0iKQorICAgIHVuc2V0KF90bXApCiBlbmRtYWNybygpCiAKIG1hY3JvKEFERF9Q
UkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCkBAIC01NiwyMjMgKzYxLDYg
QEAgbWFjcm8oQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKICAg
ICAjRklYTUU6IEFkZCBzdXBwb3J0IGZvciBYY29kZS4KIGVuZG1hY3JvKCkKIAotb3B0aW9uKFNI
T1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUyAiU2hvdyBwcm9ncmVzcyBvZiBnZW5lcmF0
aW5nIGJpbmRpbmdzIiBPRkYpCi0KLSMgSGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRl
LWJpbmRpbmdzLWFsbC5wbCBzY3JpcHQuCi0jICAgdGFyZ2V0IGlzIGEgbmV3IHRhcmdldCBuYW1l
IHRvIGJlIGFkZGVkCi0jICAgT1VUUFVUX1NPVVJDRSBpcyBhIGxpc3QgbmFtZSB3aGljaCB3aWxs
IGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBXZWJDb3JlX1NPVVJDRVMpCi0jICAgSU5Q
VVRfRklMRVMgYXJlIElETCBmaWxlcyB0byBnZW5lcmF0ZS4KLSMgICBCQVNFX0RJUiBpcyBiYXNl
IGRpcmVjdG9yeSB3aGVyZSBzY3JpcHQgaXMgY2FsbGVkLgotIyAgIElETF9JTkNMVURFUyBpcyB2
YWx1ZSBvZiAtLWluY2x1ZGUgYXJndW1lbnQuIChlZy4gJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mv
anMpCi0jICAgRkVBVFVSRVMgaXMgYSB2YWx1ZSBvZiAtLWRlZmluZXMgYXJndW1lbnQuCi0jICAg
REVTVElOQVRJT04gaXMgYSB2YWx1ZSBvZiAtLW91dHB1dERpciBhcmd1bWVudC4KLSMgICBHRU5F
UkFUT1IgaXMgYSB2YWx1ZSBvZiAtLWdlbmVyYXRvciBhcmd1bWVudC4KLSMgICBTVVBQTEVNRU5U
QUxfREVQRklMRSBpcyBhIHZhbHVlIG9mIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUuIChv
cHRpb25hbCkKLSMgICBQUF9FWFRSQV9PVVRQVVQgaXMgZXh0cmEgb3V0cHV0cyBvZiBwcmVwcm9j
ZXNzLWlkbHMucGwuIChvcHRpb25hbCkKLSMgICBQUF9FWFRSQV9BUkdTIGlzIGV4dHJhIGFyZ3Vt
ZW50cyBmb3IgcHJlcHJvY2Vzcy1pZGxzLnBsLiAob3B0aW9uYWwpCi1mdW5jdGlvbihHRU5FUkFU
RV9CSU5ESU5HUyB0YXJnZXQpCi0gICAgc2V0KG9wdGlvbnMpCi0gICAgc2V0KG9uZVZhbHVlQXJn
cyBPVVRQVVRfU09VUkNFIEJBU0VfRElSIEZFQVRVUkVTIERFU1RJTkFUSU9OIEdFTkVSQVRPUiBT
VVBQTEVNRU5UQUxfREVQRklMRSkKLSAgICBzZXQobXVsdGlWYWx1ZUFyZ3MgSU5QVVRfRklMRVMg
SURMX0lOQ0xVREVTIFBQX0VYVFJBX09VVFBVVCBQUF9FWFRSQV9BUkdTKQotICAgIGNtYWtlX3Bh
cnNlX2FyZ3VtZW50cyhhcmcgIiR7b3B0aW9uc30iICIke29uZVZhbHVlQXJnc30iICIke211bHRp
VmFsdWVBcmdzfSIgJHtBUkdOfSkKLSAgICBzZXQoYmluZGluZ19nZW5lcmF0b3IgJHtXRUJDT1JF
X0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwpCi0gICAgc2V0
KGlkbF9hdHRyaWJ1dGVzX2ZpbGUgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLmpzb24pCi0gICAgc2V0KGlkbF9maWxlc19saXN0ICR7Q01BS0VfQ1VSUkVOVF9C
SU5BUllfRElSfS9pZGxfZmlsZXNfJHt0YXJnZXR9LnRtcCkKLSAgICBzZXQoX3N1cHBsZW1lbnRh
bF9kZXBlbmRlbmN5KQotCi0gICAgc2V0KGNvbnRlbnQpCi0gICAgZm9yZWFjaCAoZiAke2FyZ19J
TlBVVF9GSUxFU30pCi0gICAgICAgIGlmIChOT1QgSVNfQUJTT0xVVEUgJHtmfSkKLSAgICAgICAg
ICAgIHNldChmICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke2Z9KQotICAgICAgICBlbmRp
ZiAoKQotICAgICAgICBzZXQoY29udGVudCAiJHtjb250ZW50fSR7Zn1cbiIpCi0gICAgZW5kZm9y
ZWFjaCAoKQotICAgIGZpbGUoV1JJVEUgJHtpZGxfZmlsZXNfbGlzdH0gJHtjb250ZW50fSkKLQot
ICAgIHNldChhcmdzCi0gICAgICAgIC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30KLSAgICAgICAg
LS1nZW5lcmF0b3IgJHthcmdfR0VORVJBVE9SfQotICAgICAgICAtLW91dHB1dERpciAke2FyZ19E
RVNUSU5BVElPTn0KLSAgICAgICAgLS1pZGxGaWxlc0xpc3QgJHtpZGxfZmlsZXNfbGlzdH0KLSAg
ICAgICAgLS1wcmVwcm9jZXNzb3IgIiR7Q09ERV9HRU5FUkFUT1JfUFJFUFJPQ0VTU09SfSIKLSAg
ICAgICAgLS1pZGxBdHRyaWJ1dGVzRmlsZSAke2lkbF9hdHRyaWJ1dGVzX2ZpbGV9KQotICAgIGlm
IChhcmdfU1VQUExFTUVOVEFMX0RFUEZJTEUpCi0gICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1z
dXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0pCi0g
ICAgZW5kaWYgKCkKLSAgICBpZiAoUFJPQ0VTU09SX0NPVU5UKQotICAgICAgICBsaXN0KEFQUEVO
RCBhcmdzIC0tbnVtT2ZKb2JzICR7UFJPQ0VTU09SX0NPVU5UfSkKLSAgICBlbmRpZiAoKQotICAg
IGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX0lETF9JTkNMVURFUykKLSAgICAgICAgaWYgKElTX0FC
U09MVVRFICR7aX0pCi0gICAgICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0taW5jbHVkZSAke2l9
KQotICAgICAgICBlbHNlICgpCi0gICAgICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0taW5jbHVk
ZSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtpfSkKLSAgICAgICAgZW5kaWYgKCkKLSAg
ICBlbmRmb3JlYWNoICgpCi0gICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfT1VU
UFVUKQotICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tcHBFeHRyYU91dHB1dCAke2l9KQotICAg
IGVuZGZvcmVhY2ggKCkKLSAgICBmb3JlYWNoIChpIElOIExJU1RTIGFyZ19QUF9FWFRSQV9BUkdT
KQotICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tcHBFeHRyYUFyZ3MgJHtpfSkKLSAgICBlbmRm
b3JlYWNoICgpCi0KLSAgICBzZXQoY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMKLSAgICAg
ICAgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbAot
ICAgICAgICAke1NDUklQVFNfQklORElOR1N9Ci0gICAgICAgICMgQ2hhbmdpbmcgZW5hYmxlZCBm
ZWF0dXJlcyBzaG91bGQgdHJpZ2dlciByZWNvbXBpbGluZyBhbGwgSURMIGZpbGVzCi0gICAgICAg
ICMgYmVjYXVzZSBzb21lIG9mIHRoZW0gdXNlICNpZi4KLSAgICAgICAgJHtDTUFLRV9CSU5BUllf
RElSfS9jbWFrZWNvbmZpZy5oCi0gICAgKQotICAgIGlmIChFWElTVFMgJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKLSAgICAg
ICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHtXRUJDT1JFX0RJ
Un0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKLSAg
ICBlbmRpZiAoKQotICAgIGlmIChFWElTVFMgJHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ik
e2FyZ19HRU5FUkFUT1J9LnBtKQotICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9y
X2RlcGVuZGVuY2llcyAke2FyZ19CQVNFX0RJUn0vQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRP
Un0ucG0pCi0gICAgZW5kaWYgKCkKLSAgICBmb3JlYWNoIChpIElOIExJU1RTIGNvbW1vbl9nZW5l
cmF0b3JfZGVwZW5kZW5jaWVzKQotICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tZ2VuZXJhdG9y
RGVwZW5kZW5jeSAke2l9KQotICAgIGVuZGZvcmVhY2ggKCkKLQotICAgIHNldChnZW5fc291cmNl
cykKLSAgICBzZXQoZ2VuX2hlYWRlcnMpCi0gICAgZm9yZWFjaCAoX2ZpbGUgJHthcmdfSU5QVVRf
RklMRVN9KQotICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5B
TUVfV0UpCi0gICAgICAgIGxpc3QoQVBQRU5EIGdlbl9zb3VyY2VzICR7YXJnX0RFU1RJTkFUSU9O
fS9KUyR7X25hbWV9LmNwcCkKLSAgICAgICAgbGlzdChBUFBFTkQgZ2VuX2hlYWRlcnMgJHthcmdf
REVTVElOQVRJT059L0pTJHtfbmFtZX0uaCkKLSAgICBlbmRmb3JlYWNoICgpCi0gICAgc2V0KCR7
YXJnX09VVFBVVF9TT1VSQ0V9ICR7JHthcmdfT1VUUFVUX1NPVVJDRX19ICR7Z2VuX3NvdXJjZXN9
IFBBUkVOVF9TQ09QRSkKLSAgICBzZXQoYWN0X2FyZ3MpCi0gICAgaWYgKFNIT1dfQklORElOR1Nf
R0VORVJBVElPTl9QUk9HUkVTUykKLSAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXNob3dQcm9n
cmVzcykKLSAgICBlbmRpZiAoKQotICAgIGlmICgke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVT
UyAzLjIpCi0gICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke2dlbl9zb3VyY2Vz
fSAke2dlbl9oZWFkZXJzfSBQUk9QRVJUSUVTIEdFTkVSQVRFRCAxKQotICAgIGVsc2UgKCkKLSAg
ICAgICAgbGlzdChBUFBFTkQgYWN0X2FyZ3MgQllQUk9EVUNUUyAke2dlbl9zb3VyY2VzfSAke2dl
bl9oZWFkZXJzfSkKLSAgICAgICAgaWYgKFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVT
UykKLSAgICAgICAgICAgIGxpc3QoQVBQRU5EIGFjdF9hcmdzIFVTRVNfVEVSTUlOQUwpCi0gICAg
ICAgIGVuZGlmICgpCi0gICAgZW5kaWYgKCkKLSAgICBhZGRfY3VzdG9tX3RhcmdldCgke3Rhcmdl
dH0KLSAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtiaW5kaW5nX2dlbmVyYXRv
cn0gJHthcmdzfQotICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke2FyZ19CQVNFX0RJUn0KLSAg
ICAgICAgQ09NTUVOVCAiR2VuZXJhdGUgYmluZGluZ3MgKCR7dGFyZ2V0fSkiCi0gICAgICAgIFZF
UkJBVElNICR7YWN0X2FyZ3N9KQotZW5kZnVuY3Rpb24oKQotCi1tYWNybyhHRU5FUkFURV9GT05U
X05BTUVTIF9pbmZpbGUpCi0gICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9k
b20vbWFrZV9uYW1lcy5wbCkKLSAgICBzZXQoX2FyZ3VtZW50cyAgLS1mb250cyAke19pbmZpbGV9
KQotICAgIHNldChfb3V0cHV0ZmlsZXMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dl
YktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dl
YktpdEZvbnRGYW1pbHlOYW1lcy5oKQotCi0gICAgYWRkX2N1c3RvbV9jb21tYW5kKAotICAgICAg
ICBPVVRQVVQgICR7X291dHB1dGZpbGVzfQotICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfaW5m
aWxlfQotICAgICAgICBERVBFTkRTICR7TUFLRV9OQU1FU19ERVBFTkRFTkNJRVN9ICR7TkFNRVNf
R0VORVJBVE9SfSAke1NDUklQVFNfQklORElOR1N9Ci0gICAgICAgIENPTU1BTkQgJHtQRVJMX0VY
RUNVVEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLW91dHB1dERpciAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0gJHtfYXJndW1lbnRzfQotICAgICAgICBWRVJCQVRJTSkKLWVuZG1hY3Jv
KCkKLQotCi1tYWNybyhHRU5FUkFURV9FVkVOVF9GQUNUT1JZIF9pbmZpbGUgX291dGZpbGUpCi0g
ICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9kb20vbWFrZV9ldmVudF9mYWN0
b3J5LnBsKQotCi0gICAgYWRkX2N1c3RvbV9jb21tYW5kKAotICAgICAgICBPVVRQVVQgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19vdXRmaWxlfQotICAgICAgICBNQUlOX0RFUEVO
REVOQ1kgJHtfaW5maWxlfQotICAgICAgICBERVBFTkRTICR7TkFNRVNfR0VORVJBVE9SfSAke1ND
UklQVFNfQklORElOR1N9Ci0gICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7TkFN
RVNfR0VORVJBVE9SfSAtLWlucHV0ICR7X2luZmlsZX0gLS1vdXRwdXREaXIgJHtERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVJ9Ci0gICAgICAgIFZFUkJBVElNKQotZW5kbWFjcm8oKQotCi0KLW1h
Y3JvKEdFTkVSQVRFX0VYQ0VQVElPTl9DT0RFX0RFU0NSSVBUSU9OIF9pbmZpbGUgX291dGZpbGUp
Ci0gICAgc2V0KE5BTUVTX0dFTkVSQVRPUiAke1dFQkNPUkVfRElSfS9kb20vbWFrZV9kb21fZXhj
ZXB0aW9ucy5wbCkKLQotICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgT1VUUFVUICAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KLSAgICAgICAgTUFJTl9E
RVBFTkRFTkNZICR7X2luZmlsZX0KLSAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0g
JHtTQ1JJUFRTX0JJTkRJTkdTfQotICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAk
e05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0cHV0RGlyICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfQotICAgICAgICBWRVJCQVRJTSkKLWVuZG1hY3JvKCkKLQot
Ci1tYWNybyhHRU5FUkFURV9TRVRUSU5HU19NQUNST1MgX2luZmlsZSBfb3V0ZmlsZSkKLSAgICBz
ZXQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L3BhZ2UvbWFrZV9zZXR0aW5ncy5wbCkK
LQotICAgICMgRG8gbm90IGxpc3QgdGhlIG91dHB1dCBpbiBtb3JlIHRoYW4gb25lIGluZGVwZW5k
ZW50IHRhcmdldCB0aGF0IG1heQotICAgICMgYnVpbGQgaW4gcGFyYWxsZWwgb3IgdGhlIHR3byBp
bnN0YW5jZXMgb2YgdGhlIHJ1bGUgbWF5IGNvbmZsaWN0LgotICAgICMgPGh0dHBzOi8vY21ha2Uu
b3JnL2NtYWtlL2hlbHAvdjMuMC9jb21tYW5kL2FkZF9jdXN0b21fY29tbWFuZC5odG1sPgotICAg
IHNldChfZXh0cmFfb3V0cHV0Ci0gICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElS
fS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgKLSAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuY3BwCi0gICAgICAgICR7REVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbAot
ICAgICkKLSAgICBzZXQoX2FyZ3MgQllQUk9EVUNUUyAke19leHRyYV9vdXRwdXR9KQotICAgIGlm
ICgke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAzLjIpCi0gICAgICAgIHNldF9zb3VyY2Vf
ZmlsZXNfcHJvcGVydGllcygke19leHRyYV9vdXRwdXR9IFBST1BFUlRJRVMgR0VORVJBVEVEIDEp
Ci0gICAgICAgIHNldChfYXJncykKLSAgICBlbmRpZiAoKQotICAgIGFkZF9jdXN0b21fY29tbWFu
ZCgKLSAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19vdXRm
aWxlfQotICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfaW5maWxlfQotICAgICAgICBERVBFTkRT
ICR7TkFNRVNfR0VORVJBVE9SfSAke1NDUklQVFNfQklORElOR1N9Ci0gICAgICAgIENPTU1BTkQg
JHtQRVJMX0VYRUNVVEFCTEV9ICR7TkFNRVNfR0VORVJBVE9SfSAtLWlucHV0ICR7X2luZmlsZX0g
LS1vdXRwdXREaXIgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9Ci0gICAgICAgIFZFUkJB
VElNICR7X2FyZ3N9KQotZW5kbWFjcm8oKQotCi0KLW1hY3JvKEdFTkVSQVRFX0RPTV9OQU1FUyBf
bmFtZXNwYWNlIF9hdHRycykKLSAgICBzZXQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9
L2RvbS9tYWtlX25hbWVzLnBsKQotICAgIHNldChfYXJndW1lbnRzICAtLWF0dHJzICR7X2F0dHJz
fSkKLSAgICBzZXQoX291dHB1dGZpbGVzICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8k
e19uYW1lc3BhY2V9TmFtZXMuY3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19u
YW1lc3BhY2V9TmFtZXMuaCkKLSAgICBzZXQoX2V4dHJhZGVmKQotICAgIHNldChfdGFncykKLQot
ICAgIGZvcmVhY2ggKGYgJHtBUkdOfSkKLSAgICAgICAgaWYgKF90YWdzKQotICAgICAgICAgICAg
c2V0KF9leHRyYWRlZiAiJHtfZXh0cmFkZWZ9ICR7Zn0iKQotICAgICAgICBlbHNlICgpCi0gICAg
ICAgICAgICBzZXQoX3RhZ3MgJHtmfSkKLSAgICAgICAgZW5kaWYgKCkKLSAgICBlbmRmb3JlYWNo
ICgpCi0KLSAgICBpZiAoX3RhZ3MpCi0gICAgICAgIHNldChfYXJndW1lbnRzICIke19hcmd1bWVu
dHN9IiAtLXRhZ3MgJHtfdGFnc30gLS1mYWN0b3J5IC0td3JhcHBlckZhY3RvcnkpCi0gICAgICAg
IHNldChfb3V0cHV0ZmlsZXMgIiR7X291dHB1dGZpbGVzfSIgJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9LyR7X25hbWVzcGFjZX1FbGVtZW50RmFjdG9yeS5jcHAgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9LyR7X25hbWVzcGFjZX1FbGVtZW50RmFjdG9yeS5oICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9KUyR7X25hbWVzcGFjZX1FbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9KUyR7X25hbWVzcGFjZX1FbGVtZW50
V3JhcHBlckZhY3RvcnkuaCkKLSAgICBlbmRpZiAoKQotCi0gICAgaWYgKF9leHRyYWRlZikKLSAg
ICAgICAgc2V0KF9hZGRpdGlvbkFyZ3VtZW50cyAiJHtfYWRkaXRpb25Bcmd1bWVudHN9IiAtLWV4
dHJhRGVmaW5lcz0ke19leHRyYWRlZn0pCi0gICAgZW5kaWYgKCkKLQotICAgIGFkZF9jdXN0b21f
Y29tbWFuZCgKLSAgICAgICAgT1VUUFVUICAke19vdXRwdXRmaWxlc30KLSAgICAgICAgREVQRU5E
UyAke01BS0VfTkFNRVNfREVQRU5ERU5DSUVTfSAke05BTUVTX0dFTkVSQVRPUn0gJHtTQ1JJUFRT
X0JJTkRJTkdTfSAke19hdHRyc30gJHtfdGFnc30KLSAgICAgICAgQ09NTUFORCAke1BFUkxfRVhF
Q1VUQUJMRX0gJHtOQU1FU19HRU5FUkFUT1J9IC0tcHJlcHJvY2Vzc29yICIke0NPREVfR0VORVJB
VE9SX1BSRVBST0NFU1NPUl9XSVRIX0xJTkVNQVJLRVJTfSIgLS1vdXRwdXREaXIgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9ICR7X2FyZ3VtZW50c30gJHtfYWRkaXRpb25Bcmd1bWVudHN9
Ci0gICAgICAgIFZFUkJBVElNKQotZW5kbWFjcm8oKQotCi1tYWNybyhNQUtFX0hBU0hfVE9PTFMg
X3NvdXJjZSkKLSAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X3NvdXJjZX0gTkFN
RV9XRSkKLQotICAgIGlmICgke19zb3VyY2V9IFNUUkVRVUFMICJEb2NUeXBlU3RyaW5ncyIpCi0g
ICAgICAgIHNldChfaGFzaF90b29sc19oICIke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0v
SGFzaFRvb2xzLmgiKQotICAgIGVsc2UgKCkKLSAgICAgICAgc2V0KF9oYXNoX3Rvb2xzX2ggIiIp
Ci0gICAgZW5kaWYgKCkKLQotICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgT1VUUFVU
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS8ke19uYW1lfS5jcHAgJHtfaGFzaF90b29s
c19ofQotICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfc291cmNlfS5ncGVyZgotICAgICAgICBD
T01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9tYWtlLWhhc2gtdG9vbHMu
cGwgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9ICR7X3NvdXJjZX0uZ3BlcmYgJHtHUEVS
Rl9FWEVDVVRBQkxFfQotICAgICAgICBWRVJCQVRJTSkKLQotICAgIHVuc2V0KF9uYW1lKQotICAg
IHVuc2V0KF9oYXNoX3Rvb2xzX2gpCi1lbmRtYWNybygpCi0KIG1hY3JvKFdFQktJVF9XUkFQX1NP
VVJDRUxJU1QpCiAgICAgZm9yZWFjaCAoX2ZpbGUgJHtBUkdOfSkKICAgICAgICAgZ2V0X2ZpbGVu
YW1lX2NvbXBvbmVudChfYmFzZW5hbWUgJHtfZmlsZX0gTkFNRV9XRSkKQEAgLTM3NCw3NSArMTYy
LDg1IEBAIG1hY3JvKFdFQktJVF9DUkVBVEVfRk9SV0FSRElOR19IRUFERVJTIF9mcmFtZXdvcmsp
CiAgICAgZW5kaWYgKCkKIGVuZG1hY3JvKCkKIAotIyBIZWxwZXIgbWFjcm8gd2hpY2ggd3JhcHMg
Z2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weSBhbmQgZ2VuZXJhdGUtbWVzc2FnZS1oZWFkZXIu
cHkgc2NyaXB0cwotIyAgIF9vdXRwdXRfc291cmNlIGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwg
Y29udGFpbiBnZW5lcmF0ZWQgc291cmNlcy4oZWcuIFdlYktpdDJfU09VUkNFUykKLSMgICBfaW5w
dXRfZmlsZXMgYXJlIG1lc3NhZ2VzLmluIGZpbGVzIHRvIGdlbmVyYXRlLgotbWFjcm8oR0VORVJB
VEVfV0VCS0lUMl9NRVNTQUdFX1NPVVJDRVMgX291dHB1dF9zb3VyY2UgX2lucHV0X2ZpbGVzKQot
ICAgIGZvcmVhY2ggKF9maWxlICR7X2lucHV0X2ZpbGVzfSkKLSAgICAgICAgZ2V0X2ZpbGVuYW1l
X2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dFKQotICAgICAgICBhZGRfY3VzdG9tX2Nv
bW1hbmQoCi0gICAgICAgICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9
LyR7X25hbWV9TWVzc2FnZVJlY2VpdmVyLmNwcCAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJ
Un0vJHtfbmFtZX1NZXNzYWdlcy5oCi0gICAgICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfZmls
ZX0KLSAgICAgICAgICAgIERFUEVORFMgJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy93ZWJraXQvX19p
bml0X18ucHkKLSAgICAgICAgICAgICAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKLSAgICAgICAgICAgICAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2NyaXB0
cy93ZWJraXQvbW9kZWwucHkKLSAgICAgICAgICAgICAgICAgICAgJHtXRUJLSVQyX0RJUn0vU2Ny
aXB0cy93ZWJraXQvcGFyc2VyLnB5Ci0gICAgICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNV
VEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5w
eSAke19maWxlfSA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS8ke19uYW1lfU1lc3Nh
Z2VSZWNlaXZlci5jcHAKLSAgICAgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0g
JHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlcy1oZWFkZXIucHkgJHtfZmls
ZX0gPiAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vJHtfbmFtZX1NZXNzYWdlcy5oCi0g
ICAgICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dFQktJVDJfRElSfQotICAgICAgICAgICAg
VkVSQkFUSU0pCi0KLSAgICAgICAgbGlzdChBUFBFTkQgJHtfb3V0cHV0X3NvdXJjZX0gJHtERVJJ
VkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9LyR7X25hbWV9TWVzc2FnZVJlY2VpdmVyLmNwcCkKLSAg
ICBlbmRmb3JlYWNoICgpCisjIEhlbHBlciBtYWNyb3MgZm9yIGRlYnVnZ2luZyBDTWFrZSBwcm9i
bGVtcy4KK21hY3JvKFdFQktJVF9ERUJVR19EVU1QX0NPTU1BTkRTKQorICAgIHNldChDTUFLRV9W
RVJCT1NFX01BS0VGSUxFIE9OKQogZW5kbWFjcm8oKQogCi1tYWNybyhNQUtFX0pTX0ZJTEVfQVJS
QVlTIF9vdXRwdXRfY3BwIF9vdXRwdXRfaCBfbmFtZXNwYWNlIF9zY3JpcHRzIF9zY3JpcHRzX2Rl
cGVuZGVuY2llcykKLSAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgIE9VVFBVVCAke19v
dXRwdXRfaH0gJHtfb3V0cHV0X2NwcH0KLSAgICAgICAgREVQRU5EUyAke0phdmFTY3JpcHRDb3Jl
X1NDUklQVFNfRElSfS9tYWtlLWpzLWZpbGUtYXJyYXlzLnB5ICR7JHtfc2NyaXB0c319Ci0gICAg
ICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtKYXZhU2NyaXB0Q29yZV9TQ1JJUFRT
X0RJUn0vbWFrZS1qcy1maWxlLWFycmF5cy5weSAtbiAke19uYW1lc3BhY2V9ICR7X291dHB1dF9o
fSAke19vdXRwdXRfY3BwfSAkeyR7X3NjcmlwdHN9fQotICAgICAgICBWRVJCQVRJTSkKLSAgICBB
RERfU09VUkNFX0RFUEVOREVOQ0lFUygkeyR7X3NjcmlwdHNfZGVwZW5kZW5jaWVzfX0gJHtfb3V0
cHV0X2h9ICR7X291dHB1dF9jcHB9KQorbWFjcm8oV0VCS0lUX0RFQlVHX0RVTVBfVkFSSUFCTEVT
KQorICAgIHNldF9jbWFrZV9wcm9wZXJ0eShfdmFyaWFibGVOYW1lcyBWQVJJQUJMRVMpCisgICAg
Zm9yZWFjaCAoX3ZhcmlhYmxlTmFtZSAke192YXJpYWJsZU5hbWVzfSkKKyAgICAgICBtZXNzYWdl
KFNUQVRVUyAiJHtfdmFyaWFibGVOYW1lfT0keyR7X3ZhcmlhYmxlTmFtZX19IikKKyAgICBlbmRm
b3JlYWNoICgpCiBlbmRtYWNybygpCiAKLSMgSGVscGVyIG1hY3JvIGZvciB1c2luZyBhbGwtaW4t
b25lIGJ1aWxkcwotIyBUaGlzIG1hY3JvIHJlbW92ZXMgdGhlIHNvdXJjZXMgaW5jbHVkZWQgaW4g
dGhlIF9hbGxfaW5fb25lX2ZpbGUgZnJvbSB0aGUgaW5wdXQgX2ZpbGVfbGlzdC4KLSMgX2ZpbGVf
bGlzdCBpcyBhIGxpc3Qgb2Ygc291cmNlIGZpbGVzCi0jIF9hbGxfaW5fb25lX2ZpbGUgaXMgYW4g
YWxsLWluLW9uZSBjcHAgZmlsZSBpbmNsdWRlcyBvdGhlciBjcHAgZmlsZXMKLSMgX3Jlc3VsdF9m
aWxlX2xpc3QgaXMgdGhlIG91dHB1dCBmaWxlIGxpc3QKLW1hY3JvKFBST0NFU1NfQUxMSU5PTkVf
RklMRSBfZmlsZV9saXN0IF9hbGxfaW5fb25lX2ZpbGUgX3Jlc3VsdF9maWxlX2xpc3QgX25vX2Nv
bXBpbGUpCi0gICAgZmlsZShTVFJJTkdTICR7X2FsbF9pbl9vbmVfZmlsZX0gX2FsbF9pbl9vbmVf
ZmlsZV9jb250ZW50KQotICAgIHNldCgke19yZXN1bHRfZmlsZV9saXN0fSAke19maWxlX2xpc3R9
KQotICAgIHNldChfYWxsaW5zICIiKQotICAgIGZvcmVhY2ggKF9saW5lICR7X2FsbF9pbl9vbmVf
ZmlsZV9jb250ZW50fSkKLSAgICAgICAgc3RyaW5nKFJFR0VYIE1BVENIICJeI2luY2x1ZGUgW1wi
PF0oLiopW1wiPl0iIF9mb3VuZCAke19saW5lfSkKLSAgICAgICAgaWYgKF9mb3VuZCkKLSAgICAg
ICAgICAgIGxpc3QoQVBQRU5EIF9hbGxpbnMgJHtDTUFLRV9NQVRDSF8xfSkKKyMgU2V0cyBleHRy
YSBjb21waWxlIGZsYWdzIGZvciBhIHRhcmdldCwgZGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciBi
ZWluZyB1c2VkLgorIyBDdXJyZW50bHksIG9ubHkgR0NDIGlzIHN1cHBvcnRlZC4KK21hY3JvKFdF
QktJVF9TRVRfRVhUUkFfQ09NUElMRVJfRkxBR1MgX3RhcmdldCkKKyAgICBzZXQob3B0aW9ucyBF
TkFCTEVfV0VSUk9SIElHTk9SRUNYWF9XQVJOSU5HUykKKyAgICBDTUFLRV9QQVJTRV9BUkdVTUVO
VFMoIk9QVElPTiIgIiR7b3B0aW9uc30iICIiICIiICR7QVJHTn0pCisgICAgaWYgKENPTVBJTEVS
X0lTX0dDQ19PUl9DTEFORykKKyAgICAgICAgZ2V0X3RhcmdldF9wcm9wZXJ0eShPTERfQ09NUElM
RV9GTEFHUyAke190YXJnZXR9IENPTVBJTEVfRkxBR1MpCisgICAgICAgIGlmICgke09MRF9DT01Q
SUxFX0ZMQUdTfSBTVFJFUVVBTCAiT0xEX0NPTVBJTEVfRkxBR1MtTk9URk9VTkQiKQorICAgICAg
ICAgICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICIiKQogICAgICAgICBlbmRpZiAoKQotICAgIGVu
ZGZvcmVhY2ggKCkKIAotICAgIGZvcmVhY2ggKF9hbGxpbiAke19hbGxpbnN9KQotICAgICAgICBp
ZiAoJHtfbm9fY29tcGlsZX0pCi0gICAgICAgICAgICAjIEZvciBEZXJpdmVkU291cmNlcy5jcHAs
IHdlIHN0aWxsIG5lZWQgdGhlIGRlcml2ZWQgc291cmNlcyB0byBiZSBnZW5lcmF0ZWQsIGJ1dCB3
ZSBkbyBub3Qgd2FudCB0aGVtIHRvIGJlIGNvbXBpbGVkCi0gICAgICAgICAgICAjIGluZGl2aWR1
YWxseS4gV2UgYWRkIHRoZSBoZWFkZXIgdG8gdGhlIHJlc3VsdCBmaWxlIGxpc3Qgc28gdGhhdCBD
TWFrZSBrbm93cyB0byBrZWVwIGdlbmVyYXRpbmcgdGhlIGZpbGVzLgotICAgICAgICAgICAgc3Ry
aW5nKFJFR0VYIFJFUExBQ0UgIiguKilcXC5jcHAiICJcXDEiIF9hbGxpbl9ub19leHQgJHtfYWxs
aW59KQotICAgICAgICAgICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIjsoW147XSovKSR7X2FsbGlu
X25vX2V4dH1cXC5jcHA7IiAiO1xcMSR7X2FsbGluX25vX2V4dH0uaDsiIF9uZXdfcmVzdWx0ICIk
eyR7X3Jlc3VsdF9maWxlX2xpc3R9fTsiKQotICAgICAgICBlbHNlICgpCi0gICAgICAgICAgICBz
dHJpbmcoUkVHRVggUkVQTEFDRSAiO1teO10qLyR7X2FsbGlufTsiICI7IiBfbmV3X3Jlc3VsdCAi
JHske19yZXN1bHRfZmlsZV9saXN0fX07IikKKyAgICAgICAgaWYgKE5PVCBXSU4zMikKKyAgICAg
ICAgICAgIGdldF90YXJnZXRfcHJvcGVydHkoVEFSR0VUX1RZUEUgJHtfdGFyZ2V0fSBUWVBFKQor
ICAgICAgICAgICAgaWYgKCR7VEFSR0VUX1RZUEV9IFNUUkVRVUFMICJTVEFUSUNfTElCUkFSWSIp
ICMgLWZQSUMgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byBzaGFyZWQgbGlicmFyaWVzCisgICAg
ICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICItZlBJQyAke09MRF9DT01QSUxFX0ZM
QUdTfSIpCisgICAgICAgICAgICBlbmRpZiAoKQogICAgICAgICBlbmRpZiAoKQotICAgICAgICBz
ZXQoJHtfcmVzdWx0X2ZpbGVfbGlzdH0gJHtfbmV3X3Jlc3VsdH0pCi0gICAgZW5kZm9yZWFjaCAo
KQogCi1lbmRtYWNybygpCisgICAgICAgICMgU3VwcHJlc3MgLVdwYXJlbnRoZXNlcy1lcXVhbGl0
eSB3YXJuaW5nIG9mIENsYW5nCisgICAgICAgIGlmIChDT01QSUxFUl9JU19DTEFORykKKyAgICAg
ICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLVduby1wYXJlbnRoZXNlcy1lcXVhbGl0eSAk
e09MRF9DT01QSUxFX0ZMQUdTfSIpCisgICAgICAgIGVuZGlmICgpCiAKLSMgSGVscGVyIG1hY3Jv
cyBmb3IgZGVidWdnaW5nIENNYWtlIHByb2JsZW1zLgotbWFjcm8oV0VCS0lUX0RFQlVHX0RVTVBf
Q09NTUFORFMpCi0gICAgc2V0KENNQUtFX1ZFUkJPU0VfTUFLRUZJTEUgT04pCisgICAgICAgICMg
RW5hYmxlIHdhcm5pbmdzIGJ5IGRlZmF1bHQKKyAgICAgICAgaWYgKE5PVCAke09QVElPTl9JR05P
UkVDWFhfV0FSTklOR1N9KQorICAgICAgICAgICAgc2V0KE9MRF9DT01QSUxFX0ZMQUdTICItV2Fs
bCAtV2V4dHJhIC1XY2FzdC1hbGlnbiAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3NpbmctZm9ybWF0
LWF0dHJpYnV0ZSAtV3BvaW50ZXItYXJpdGggLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgJHtPTERf
Q09NUElMRV9GTEFHU30iKQorICAgICAgICBlbmRpZiAoKQorCisgICAgICAgICMgRW5hYmxlIGVy
cm9ycyBvbiB3YXJuaW5nCisgICAgICAgIGlmIChPUFRJT05fRU5BQkxFX1dFUlJPUikKKyAgICAg
ICAgICAgIHNldChPTERfQ09NUElMRV9GTEFHUyAiLVdlcnJvciAke09MRF9DT01QSUxFX0ZMQUdT
fSIpCisgICAgICAgIGVuZGlmICgpCisKKyAgICAgICAgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKCR7
X3RhcmdldH0gUFJPUEVSVElFUworICAgICAgICAgICAgQ09NUElMRV9GTEFHUyAiJHtPTERfQ09N
UElMRV9GTEFHU30iKQorCisgICAgICAgIHVuc2V0KE9MRF9DT01QSUxFX0ZMQUdTKQorICAgIGVu
ZGlmICgpCiBlbmRtYWNybygpCiAKLW1hY3JvKFdFQktJVF9ERUJVR19EVU1QX1ZBUklBQkxFUykK
LSAgICBzZXRfY21ha2VfcHJvcGVydHkoX3ZhcmlhYmxlTmFtZXMgVkFSSUFCTEVTKQotICAgIGZv
cmVhY2ggKF92YXJpYWJsZU5hbWUgJHtfdmFyaWFibGVOYW1lc30pCi0gICAgICAgbWVzc2FnZShT
VEFUVVMgIiR7X3ZhcmlhYmxlTmFtZX09JHske192YXJpYWJsZU5hbWV9fSIpCi0gICAgZW5kZm9y
ZWFjaCAoKQorIyBBcHBlbmQgdGhlIGdpdmVuIGZsYWcgdG8gdGhlIHRhcmdldCBwcm9wZXJ0eS4K
KyMgQnVpbGRzIG9uIHRvcCBvZiBnZXRfdGFyZ2V0X3Byb3BlcnR5KCkgYW5kIHNldF90YXJnZXRf
cHJvcGVydGllcygpCittYWNybyhBRERfVEFSR0VUX1BST1BFUlRJRVMgX3RhcmdldCBfcHJvcGVy
dHkgX2ZsYWdzKQorICAgIGdldF90YXJnZXRfcHJvcGVydHkoX3RtcCAke190YXJnZXR9ICR7X3By
b3BlcnR5fSkKKyAgICBpZiAoTk9UIF90bXApCisgICAgICAgIHNldChfdG1wICIiKQorICAgIGVu
ZGlmIChOT1QgX3RtcCkKKworICAgIGZvcmVhY2ggKGYgJHtfZmxhZ3N9KQorICAgICAgICBzZXQo
X3RtcCAiJHtfdG1wfSAke2Z9IikKKyAgICBlbmRmb3JlYWNoIChmICR7X2ZsYWdzfSkKKworICAg
IHNldF90YXJnZXRfcHJvcGVydGllcygke190YXJnZXR9IFBST1BFUlRJRVMgJHtfcHJvcGVydHl9
ICR7X3RtcH0pCisgICAgdW5zZXQoX3RtcCkKK2VuZG1hY3JvKEFERF9UQVJHRVRfUFJPUEVSVElF
UyBfdGFyZ2V0IF9wcm9wZXJ0eSBfZmxhZ3MpCisKK21hY3JvKFBPUFVMQVRFX0xJQlJBUllfVkVS
U0lPTiBsaWJyYXJ5X25hbWUpCisgICAgaWYgKE5PVCBERUZJTkVEICR7bGlicmFyeV9uYW1lfV9W
RVJTSU9OX01BSk9SKQorICAgICAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUFKT1Ig
JHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9KQorICAgIGVuZGlmICgpCisgICAgaWYgKE5PVCBERUZJ
TkVEICR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01JTk9SKQorICAgICAgICBzZXQoJHtsaWJyYXJ5
X25hbWV9X1ZFUlNJT05fTUlOT1IgJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9KQorICAgIGVuZGlm
ICgpCisgICAgaWYgKE5PVCBERUZJTkVEICR7bGlicmFyeV9uYW1lfV9WRVJTSU9OX01JQ1JPKQor
ICAgICAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT05fTUlDUk8gJHtQUk9KRUNUX1ZFUlNJ
T05fTUlDUk99KQorICAgIGVuZGlmICgpCisgICAgaWYgKE5PVCBERUZJTkVEICR7bGlicmFyeV9u
YW1lfV9WRVJTSU9OKQorICAgICAgICBzZXQoJHtsaWJyYXJ5X25hbWV9X1ZFUlNJT04gJHtQUk9K
RUNUX1ZFUlNJT059KQorICAgIGVuZGlmICgpCiBlbmRtYWNybygpCmRpZmYgLS1naXQgYS9DaGFu
Z2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOTY4ODkzYmZiZjQ2YWZiMmVjNDY4NjcwMjA1NDhkZWI0
OWFmMjg0My4uNjAzYzcxNTU1MGY0ODM2MDZiNDNlYTIwZDZhNDFhNmI1YzcyNjU4YSAxMDA2NDQK
LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA3
LTE0ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbQ01ha2VdIFVuY2xlYXIgZGlzdGluY3Rpb24gYmV0d2VlbiBXZWJLaXRIZWxwZXJzIGFuZCBX
ZWJLaXRNYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MzE4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1lcmdlIFdlYktpdEhlbHBlcnMuY21ha2UgaW50byBXZWJLaXRNYWNyb3MuY21ha2UsIHNp
bmNlIHRoZXJlIGlzIG5vIG1lYW5pbmdmdWwgZGlzdGluY3Rpb24KKyAgICAgICAgYmV0d2VlbiB0
aGUgbWFjcm9zIHRoYXQgYmVsb25nIGluIGVhY2ggZmlsZS4gVGhlbiwgbW92ZSB0aGUgbWFjcm9z
IHRoYXQgYXJlIG9ubHkgbmVlZGVkIGJ5CisgICAgICAgIG9uZSBwcm9qZWN0IGludG8gcHJvamVj
dC1zcGVjaWZpYyBDTWFrZSBmaWxlcy4gUmV0YWluIGhlcmUgb25seSB0aGUgbWFjcm9zIHRoYXQg
YXJlIG5lZWRlZAorICAgICAgICBpbiBtdWx0aXBsZSBwbGFjZXMuCisKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0NvbW1vbi5jbWFrZTogVXBkYXRlIGEgY29tbWVudC4KKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZTogTmV3IGxvY2F0aW9uIGZvciBsaWJ0b29s
IG1hY3JvLCBleGNsdXNpdmVseSBuZWVkZWQgaGVyZS4KKyAgICAgICAgKiBTb3VyY2UvY21ha2Uv
V2ViS2l0Q29tbW9uLmNtYWtlOiBEbyBub3QgaW5jbHVkZSBXZWJLaXRIZWxwZXJzLmNtYWtlLgor
ICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRIZWxwZXJzLmNtYWtlOiBSZW1vdmVkLgorICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2U6CisKIDIwMTctMDctMTMgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
W1dQRV0gQXZvaWQgc2V0dGluZyBzZXR0aW5ncyB0aGF0IGFyZSBzZXQgYnkgZGVmYXVsdAo=
</data>
<flag name="review"
          id="336311"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
          </attachment>
      

    </bug>

</bugzilla>