<?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>229841</bug_id>
          
          <creation_ts>2021-09-02 16:45:17 -0700</creation_ts>
          <short_desc>[JSC] Fix WebKitAdditions directory traversal in offlineasm</short_desc>
          <delta_ts>2021-09-02 19:14:56 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789975</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 16:45:17 -0700</bug_when>
    <thetext>[JSC] Fix WebKitAddition directory traversal in offlineasm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789979</commentid>
    <comment_count>1</comment_count>
      <attachid>437219</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 16:47:45 -0700</bug_when>
    <thetext>Created attachment 437219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789986</commentid>
    <comment_count>2</comment_count>
      <attachid>437219</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-09-02 17:00:56 -0700</bug_when>
    <thetext>Comment on attachment 437219
Patch

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

r=me

&gt; Source/JavaScriptCore/offlineasm/asm.rb:338
&gt; +    opts.banner = &quot;Usage: asm.rb asmFile offsetsFile outputFileName [--assembler=&lt;ASM&gt; --use-deployment-location]&quot;

Should this be &quot;[--assembler=&lt;ASM&gt;] [--use-deployment-location]&quot; instead since the 2 options are independent?

&gt; Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb:52
&gt; +    # This option is currently only used to specify the masm assembler

This comment is not relevant.  I think it&apos;s just copied from above.  Please remove.

&gt; Source/JavaScriptCore/offlineasm/generate_settings_extractor.rb:49
&gt; +    # This option is currently only used to specify the masm assembler

Ditto.  Please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789990</commentid>
    <comment_count>3</comment_count>
      <attachid>437219</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 17:16:54 -0700</bug_when>
    <thetext>Comment on attachment 437219
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/offlineasm/asm.rb:338
&gt;&gt; +    opts.banner = &quot;Usage: asm.rb asmFile offsetsFile outputFileName [--assembler=&lt;ASM&gt; --use-deployment-location]&quot;
&gt; 
&gt; Should this be &quot;[--assembler=&lt;ASM&gt;] [--use-deployment-location]&quot; instead since the 2 options are independent?

Changed.

&gt;&gt; Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb:52
&gt;&gt; +    # This option is currently only used to specify the masm assembler
&gt; 
&gt; This comment is not relevant.  I think it&apos;s just copied from above.  Please remove.

Removed.

&gt;&gt; Source/JavaScriptCore/offlineasm/generate_settings_extractor.rb:49
&gt;&gt; +    # This option is currently only used to specify the masm assembler
&gt; 
&gt; Ditto.  Please remove.

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789992</commentid>
    <comment_count>4</comment_count>
      <attachid>437219</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-09-02 17:18:55 -0700</bug_when>
    <thetext>Comment on attachment 437219
Patch

You missed one spot in parser.rb: search for &quot;/usr/local/include/WebKitAdditions/&quot; and you&apos;ll see a seconds place the path is chosen in `def parseIncludes(final, comment)`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789998</commentid>
    <comment_count>5</comment_count>
      <attachid>437225</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 17:32:35 -0700</bug_when>
    <thetext>Created attachment 437225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789999</commentid>
    <comment_count>6</comment_count>
      <attachid>437225</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-09-02 17:34:23 -0700</bug_when>
    <thetext>Comment on attachment 437225
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790003</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-02 18:07:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/82701787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790021</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 19:13:45 -0700</bug_when>
    <thetext>OK, compilation finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790022</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-02 19:14:56 -0700</bug_when>
    <thetext>Committed r281972 (241279@main): &lt;https://commits.webkit.org/241279@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437219</attachid>
            <date>2021-09-02 16:47:45 -0700</date>
            <delta_ts>2021-09-02 17:32:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229841-20210902164744.patch</filename>
            <type>text/plain</type>
            <size>15667</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NTgzMDg1ODJjZmRiOTBmY2VhOTdhMjU0ZTk5MzM3MzVjZmVhYzQzLi41ZDFmNDE3MzQwYTYxM2Ew
MjAzNGY4YzkzYmI1ZDQ2MTQyMDBkZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMS0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEZpeCBXZWJLaXRBZGRpdGlvbnMgZGlyZWN0b3J5IHRyYXZlcnNh
bCBpbiBvZmZsaW5lYXNtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk4NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIERFUExPWU1FTlRfTE9DQVRJT04gaXMgWUVTLCBXZWJLaXRBZGRpdGlvbnMg
ZGlyZWN0b3J5IGJlY29tZXMgL3Vzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy4KKyAg
ICAgICAgVGhpcyBwYXRjaCBhZGRzIC0tdXNlLWRlcGxveW1lbnQtbG9jYXRpb24gb3B0aW9uIHRv
IGdlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmIsIGdlbmVyYXRlX3NldHRpbmdzX2V4dHJhY3Rv
ci5yYiwKKyAgICAgICAgYW5kIGFzbS5yYi4gQW5kIHRoZXkgcGFzcyBpdCB0byBwYXJzZXIgdG8g
Y2hhbmdlIHRoZSBpbmNsdWRlIGRpcmVjdG9yeS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogb2ZmbGluZWFzbS9hc20ucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiOgorICAg
ICAgICAqIG9mZmxpbmVhc20vZ2VuZXJhdGVfc2V0dGluZ3NfZXh0cmFjdG9yLnJiOgorICAgICAg
ICAqIG9mZmxpbmVhc20vcGFyc2VyLnJiOgorCiAyMDIxLTA5LTAyICBSb3NzIEtpcnNsaW5nICA8
cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBTY3JpcHRFeGVjdXRhYmxl
OjpuZXdDb2RlQmxvY2tGb3Igc2hvdWxkIGhhbmRsZSBleGNlcHRpb25zIG1vcmUgcHJlZGljdGFi
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzNlZWE2MzczNGIxMWFjN2E3OTE3
YzNlMjdkNmU1ZmFlMWI0YmRjNi4uZTc4NzdkYzE3Mzc4M2FlOWU2MTcxNjNiMTczODk1NGM2ODdl
NTNhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTcsMTAgKzE0MTcsMTAg
QEAKIAkJQTM4Q0E1OUUyNkREODRERTAwQzhEODRDIC8qIElTTzg2MDEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzOENBNTlDMjZERDg0REUwMEM4RDg0
QyAvKiBJU084NjAxLmggKi87IH07CiAJCUEzOEQyNTBFMjU4MDBENDQwMDQyQkZERCAvKiBKU0Fy
cmF5QnVmZmVyUHJvdG90eXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTM4RDI1MEQyNTgwMEQ0MzAwNDJCRkREIC8qIEpTQXJyYXlCdWZm
ZXJQcm90b3R5cGVJbmxpbmVzLmggKi87IH07CiAJCUEzOEQ1QkZDMjY2NkQzREEwMEExMDlBNiAv
KiBJbkJ5U3RhdHVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMzhENUJGQTI2NjZEM0RBMDBBMTA5QTYgLyogSW5CeVN0YXR1cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUEzRUU4NTQzMjYyNTE0QjAw
MEZDOUI4RCAvKiBJbnRsV29ya2Fyb3VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMzc2MTk0MDI2MjUxMjdDMDBDQkNCQTkgLyogSW50bFdvcmth
cm91bmQuY3BwICovOyB9OwogCQlBM0M3RURCNjI2QjBEQjM4MDA0QzM0QzUgLyogVGVtcG9yYWxE
dXJhdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTNDN0VEQjAyNkIwREIzNjAwNEMzNEM1IC8qIFRlbXBvcmFsRHVyYXRpb25Qcm90
b3R5cGUuaCAqLzsgfTsKIAkJQTNDN0VEQjkyNkIwREIzODAwNEMzNEM1IC8qIFRlbXBvcmFsRHVy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
QzdFREIzMjZCMERCMzcwMDRDMzRDNSAvKiBUZW1wb3JhbER1cmF0aW9uLmggKi87IH07CiAJCUEz
QzdFREJBMjZCMERCMzgwMDRDMzRDNSAvKiBUZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzQzdFREI0MjZC
MERCMzcwMDRDMzRDNSAvKiBUZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IuaCAqLzsgfTsKKwkJ
QTNFRTg1NDMyNjI1MTRCMDAwRkM5QjhEIC8qIEludGxXb3JrYXJvdW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzNzYxOTQwMjYyNTEyN0MwMENC
Q0JBOSAvKiBJbnRsV29ya2Fyb3VuZC5jcHAgKi87IH07CiAJCUEzRkY5QkM3MjIzNDc0OTEwMEIx
QTlBQiAvKiBZYXJyRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEEzRkY5QkM1MjIzNDc0NjYwMEIxQTlBQiAvKiBZYXJyRmxhZ3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTAzRkExQTE4OEUw
RkIwMDAxMTBGMTQgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwM0ZBMTQxODhFMEZBRjAwMTEwRjE0IC8qIEph
dmFTY3JpcHRDYWxsRnJhbWUuaCAqLzsgfTsKIAkJQTUwM0ZBMUUxODhFMEZCMDAwMTEwRjE0IC8q
IEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwM0ZBMTgxODhFMEZCMDAwMTEwRjE0IC8qIEpTSmF2
YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oICovOyB9OwpAQCAtMTAxNjQsNiArMTAxNjQsNyBA
QAogCQkJCTg2RDQ0NkVBMjVCMjEyNTMwMEVDQUU3NSAvKiBKSVRPcGFxdWVCeXByb2R1Y3RzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFM0NBM0E0RTI1MjdBQjJGMDA0ODAyQkYgLyogSklUT3BlcmF0
aW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEQxN0VFMjc0OTAwQUJCMjE3IC8q
IEpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTZCMjM2MENFMjZDNjI1M0QwMDU0
QUVFQyAvKiBKSVRPcGVyYXRpb25WYWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjZC
OTFCNzI2NTgxNjUzMDA4RTZGODIgLyogSklUUGxhbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzIx
MzFCRkEyNjU4N0VGMjAwNzExNENGIC8qIEpJVFBsYW5TdGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkUzQTA2QzAxQzExMDQxQTAwMzkwRkREIC8qIEpJVFJpZ2h0U2hpZnRHZW5lcmF0b3IuaCBp
biBIZWFkZXJzICovLApAQCAtMTAzNDgsNyArMTAzNDksNiBAQAogCQkJCTg2RTNDNjFEMTY3QkFC
RUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTc5NUFDNjE4MjBBMjM1NUUwMDUyQzc2QyAvKiBKU1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDQTNBRTgxN0RBNDFBRTAwNjUzOEFGIC8qIEpTV2Vha01h
cC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkIyMzYwQ0UyNkM2MjUzRDAwNTRBRUVDIC8qIEpJVE9w
ZXJhdGlvblZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRjVCNDI3MjYyOEFCRDkw
MDE2RTc3NiAvKiBKU1dlYWtNYXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQ4MkU5
MzExNkE3Q0FEMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3NDgyQjkzMTE2NzExNDcwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBS
ZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTExMjI5LDcgKzExMjI5LDcgQEAKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0
aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJzZXQgLWVcblxubWtkaXIgLXAgXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vTExJbnRPZmZzZXRzLyR7QVJDSFN9XCJcblxuL3Vzci9iaW4vZW52
IHJ1YnkgXCIke1NSQ1JPT1R9L29mZmxpbmVhc20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5y
YlwiIFwiLUkke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmVcIiBcIiR7U1JDUk9PVH0vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc21cIiAgXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vSlNDTExJbnRTZXR0aW5nc0V4dHJhY3RvclwiIFwiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L0xMSW50T2Zmc2V0cy8ke0FSQ0hTfS9MTEludERlc2lyZWRPZmZzZXRzLmhc
IiBcIiR7QVJDSFN9IENfTE9PUFwiIFwiJHtCVUlMRF9WQVJJQU5UU31cIlxuIjsKKwkJCXNoZWxs
U2NyaXB0ID0gInNldCAtZVxuXG5PRkZMSU5FQVNNX0FSR1M9XCJcIlxuaWYgW1sgXCIke0RFUExP
WU1FTlRfTE9DQVRJT059XCIgPT0gXCJZRVNcIiBdXTsgdGhlblxuICAgIE9GRkxJTkVBU01fQVJH
Uz1cIiR7T0ZGTElORUFTTV9BUkdTfSAtLXVzZS1kZXBsb3ltZW50LWxvY2F0aW9uXCJcbmZpXG5c
bm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0xMSW50T2Zmc2V0cy8ke0FSQ0hTfVwi
XG5cbi91c3IvYmluL2VudiBydWJ5IFwiJHtTUkNST09UfS9vZmZsaW5lYXNtL2dlbmVyYXRlX29m
ZnNldF9leHRyYWN0b3IucmJcIiBcIi1JJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL0phdmFTY3JpcHRDb3JlXCIgXCIke1NSQ1JPT1R9L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtXCIgIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0pTQ0xMSW50U2V0dGluZ3NFeHRyYWN0
b3JcIiBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9MTEludE9mZnNldHMvJHtBUkNIU30vTExJbnRE
ZXNpcmVkT2Zmc2V0cy5oXCIgXCIke0FSQ0hTfSBDX0xPT1BcIiBcIiR7QlVJTERfVkFSSUFOVFN9
XCIgJHtPRkZMSU5FQVNNX0FSR1N9XG4iOwogCQl9OwogCQkxNEJENjg5MjIxNTE5MTQ1MDA1MERB
RkYgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxT
Y3JpcHRCdWlsZFBoYXNlOwpAQCAtMTEyNDMsNyArMTEyNDMsNyBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9z
aDsKLQkJCXNoZWxsU2NyaXB0ID0gInNldCAtZVxuXG5ta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9MTEludE9mZnNldHMvJHtBUkNIU31cIlxuXG4vdXNyL2Jpbi9lbnYgcnVieSBcIiR7
U1JDUk9PVH0vb2ZmbGluZWFzbS9nZW5lcmF0ZV9zZXR0aW5nc19leHRyYWN0b3IucmJcIiBcIi1J
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlXCIgXCIk
e1NSQ1JPT1R9L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtXCIgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vTExJbnRPZmZzZXRzLyR7QVJDSFN9L0xMSW50RGVzaXJlZFNldHRpbmdzLmhcIiBc
IiR7QVJDSFN9IENfTE9PUFwiXG4iOworCQkJc2hlbGxTY3JpcHQgPSAic2V0IC1lXG5cbk9GRkxJ
TkVBU01fQVJHUz1cIlwiXG5pZiBbWyBcIiR7REVQTE9ZTUVOVF9MT0NBVElPTn1cIiA9PSBcIllF
U1wiIF1dOyB0aGVuXG4gICAgT0ZGTElORUFTTV9BUkdTPVwiJHtPRkZMSU5FQVNNX0FSR1N9IC0t
dXNlLWRlcGxveW1lbnQtbG9jYXRpb25cIlxuZmlcblxubWtkaXIgLXAgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vTExJbnRPZmZzZXRzLyR7QVJDSFN9XCJcblxuL3Vzci9iaW4vZW52IHJ1YnkgXCIk
e1NSQ1JPT1R9L29mZmxpbmVhc20vZ2VuZXJhdGVfc2V0dGluZ3NfZXh0cmFjdG9yLnJiXCIgXCIt
SSR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZVwiIFwi
JHtTUkNST09UfS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbVwiIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L0xMSW50T2Zmc2V0cy8ke0FSQ0hTfS9MTEludERlc2lyZWRTZXR0aW5ncy5oXCIg
XCIke0FSQ0hTfSBDX0xPT1BcIiAke09GRkxJTkVBU01fQVJHU31cbiI7CiAJCX07CiAJCTFBMDJE
OUE4MUIzNEE4ODIwMDBEMTUyMiAvKiBBZGQgU3ltbGluayBpbiAvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7
CkBAIC0xMTQ4OSw3ICsxMTQ4OSw3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3Jp
cHQgPSAiaWYgW1sgXCIke0FDVElPTn1cIiA9PSBcImluc3RhbGxoZHJzXCIgXV07IHRoZW5cbiAg
ICBleGl0IDBcbmZpXG5cbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2Vz
L0phdmFTY3JpcHRDb3JlXCJcblxuL3Vzci9iaW4vZW52IHJ1YnkgSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hc20ucmIgXCItSSR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9K
YXZhU2NyaXB0Q29yZVwiIEphdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0pTQ0xMSW50T2Zmc2V0c0V4dHJhY3RvclwiIExM
SW50QXNzZW1ibHkuaCBcIiR7QlVJTERfVkFSSUFOVFN9XCIgfHwgZXhpdCAxXG4iOworCQkJc2hl
bGxTY3JpcHQgPSAiaWYgW1sgXCIke0FDVElPTn1cIiA9PSBcImluc3RhbGxoZHJzXCIgXV07IHRo
ZW5cbiAgICBleGl0IDBcbmZpXG5cbk9GRkxJTkVBU01fQVJHUz1cIlwiXG5pZiBbWyBcIiR7REVQ
TE9ZTUVOVF9MT0NBVElPTn1cIiA9PSBcIllFU1wiIF1dOyB0aGVuXG4gICAgT0ZGTElORUFTTV9B
UkdTPVwiJHtPRkZMSU5FQVNNX0FSR1N9IC0tdXNlLWRlcGxveW1lbnQtbG9jYXRpb25cIlxuZmlc
blxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmVcIlxuXG4vdXNyL2Jpbi9lbnYgcnVieSBKYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5y
YiBcIi1JJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3Jl
XCIgSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gXCIke0JVSUxU
X1BST0RVQ1RTX0RJUn0vSlNDTExJbnRPZmZzZXRzRXh0cmFjdG9yXCIgTExJbnRBc3NlbWJseS5o
IFwiJHtCVUlMRF9WQVJJQU5UU31cIiAke09GRkxJTkVBU01fQVJHU30gfHwgZXhpdCAxXG4iOwog
CQl9OwogCQk2NUZCM0Y2NTA5RDExRTkxMDBGNDlERUIgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCmluZGV4IDllNWEzZDAzNTI1ZWI3NDIwNzY0ZDE4
MmIwYmQ3MjRiMWE0ZTFmZWIuLmIyNThlNWVhNDA5YTQzMDMxYjI1MmE0OWI5ZjNjZjE4NTRkOTg1
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIKQEAgLTMzNSwxMSAr
MzM1LDE0IEBAIGRlZiBkZWJ1Z0Fubm90YXRpb24odGV4dCkKIAogJG9wdGlvbnMgPSB7fQogT3B0
aW9uUGFyc2VyLm5ldyBkbyB8b3B0c3wKLSAgICBvcHRzLmJhbm5lciA9ICJVc2FnZTogYXNtLnJi
IGFzbUZpbGUgb2Zmc2V0c0ZpbGUgb3V0cHV0RmlsZU5hbWUgWy0tYXNzZW1ibGVyPTxBU00+XSIK
KyAgICBvcHRzLmJhbm5lciA9ICJVc2FnZTogYXNtLnJiIGFzbUZpbGUgb2Zmc2V0c0ZpbGUgb3V0
cHV0RmlsZU5hbWUgWy0tYXNzZW1ibGVyPTxBU00+IC0tdXNlLWRlcGxveW1lbnQtbG9jYXRpb25d
IgogICAgICMgVGhpcyBvcHRpb24gaXMgY3VycmVudGx5IG9ubHkgdXNlZCB0byBzcGVjaWZ5IHRo
ZSBtYXNtIGFzc2VtYmxlcgogICAgIG9wdHMub24oIi0tYXNzZW1ibGVyPVtBU01dIiwgIlNwZWNp
ZnkgYW4gYXNzZW1ibGVyIHRvIHVzZS4iKSBkbyB8YXNzZW1ibGVyfAogICAgICAgICAkb3B0aW9u
c1s6YXNzZW1ibGVyXSA9IGFzc2VtYmxlcgogICAgIGVuZAorICAgIG9wdHMub24oIi0tdXNlLWRl
cGxveW1lbnQtbG9jYXRpb24iLCAiRmxhZyB0byB1c2UgZGVwbG95bWVudCBsb2NhdGlvbi4iKSBk
byB8ZmxhZ3wKKyAgICAgICAgJG9wdGlvbnNbOnVzZV9kZXBsb3ltZW50X2xvY2F0aW9uXSA9IGZs
YWcKKyAgICBlbmQKIGVuZC5wYXJzZSEKIAogYmVnaW4KQEAgLTM1OCw3ICszNjEsNyBAQCBkZWYg
ZGVidWdBbm5vdGF0aW9uKHRleHQpCiAkY29tbWVudFByZWZpeCA9ICRlbWl0V2luQXNtID8gIjsi
IDogIi8vIgogCiBpbnB1dEhhc2ggPQotICAgICRjb21tZW50UHJlZml4ICsgIiBvZmZsaW5lYXNt
IGlucHV0IGhhc2g6ICIgKyBwYXJzZUhhc2goYXNtRmlsZSkgKworICAgICRjb21tZW50UHJlZml4
ICsgIiBvZmZsaW5lYXNtIGlucHV0IGhhc2g6ICIgKyBwYXJzZUhhc2goYXNtRmlsZSwgJG9wdGlv
bnMpICsKICAgICAiICIgKyBEaWdlc3Q6OlNIQTEuaGV4ZGlnZXN0KGNvbmZpZ3VyYXRpb25MaXN0
Lm1hcHt8dnwgKHZbMF0gKyBbdlsxXV0pLmpvaW4oJyAnKX0uam9pbignICcpKSArCiAgICAgIiAi
ICsgc2VsZkhhc2ggKwogICAgICIgIiArIERpZ2VzdDo6U0hBMS5oZXhkaWdlc3QoJG9wdGlvbnMu
aGFzX2tleT8oOmFzc2VtYmxlcikgPyAkb3B0aW9uc1s6YXNzZW1ibGVyXSA6ICIiKQpAQCAtMzg3
LDcgKzM5MCw3IEBAIGRlZiBkZWJ1Z0Fubm90YXRpb24odGV4dCkKIAogICAgICRhc20gPSBBc3Nl
bWJsZXIubmV3KCRvdXRwdXQpCiAgICAgCi0gICAgYXN0ID0gcGFyc2UoYXNtRmlsZSkKKyAgICBh
c3QgPSBwYXJzZShhc21GaWxlLCAkb3B0aW9ucykKICAgICBzZXR0aW5nc0NvbWJpbmF0aW9ucyA9
IGNvbXB1dGVTZXR0aW5nc0NvbWJpbmF0aW9ucyhhc3QpCiAKICAgICBjb25maWd1cmF0aW9uTGlz
dC5lYWNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dl
bmVyYXRlX29mZnNldF9leHRyYWN0b3IucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiCmluZGV4IGYxYTA4NzJhNjIyZDE3YmZk
ZDExZDY4YWZiNTYzYmQ4MDQ5ZTY1M2YuLjAwOTNmMTU1NDM5ZGY4YWYwZGIwYzAyYTI5NmZkMWQ3
ZmZhOGY4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dl
bmVyYXRlX29mZnNldF9leHRyYWN0b3IucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYgpAQCAtMjksNiArMjksNyBAQAog
cmVxdWlyZSAiYmFja2VuZHMiCiByZXF1aXJlICJkaWdlc3Qvc2hhMSIKIHJlcXVpcmUgIm9mZnNl
dHMiCityZXF1aXJlICdvcHRwYXJzZScKIHJlcXVpcmUgInBhcnNlciIKIHJlcXVpcmUgInNlbGZf
aGFzaCIKIHJlcXVpcmUgInNldHRpbmdzIgpAQCAtNDUsNiArNDYsMTUgQEAKIAogdmFyaWFudHMg
PSBBUkdWLnNoaWZ0LnNwbGl0KC9bLFxzXSsvKQogCiskb3B0aW9ucyA9IHt9CitPcHRpb25QYXJz
ZXIubmV3IGRvIHxvcHRzfAorICAgIG9wdHMuYmFubmVyID0gIlVzYWdlOiBnZW5lcmF0ZV9vZmZz
ZXRfZXh0cmFjdG9yLnJiIGFzbUZpbGUgc2V0dGluZ0ZpbGUgb3V0cHV0RmlsZU5hbWUgYmFja2Vu
ZHMgdmFyaWFudHMgWy0tdXNlLWRlcGxveW1lbnQtbG9jYXRpb25dIgorICAgICMgVGhpcyBvcHRp
b24gaXMgY3VycmVudGx5IG9ubHkgdXNlZCB0byBzcGVjaWZ5IHRoZSBtYXNtIGFzc2VtYmxlcgor
ICAgIG9wdHMub24oIi0tdXNlLWRlcGxveW1lbnQtbG9jYXRpb24iLCAiRmxhZyB0byB1c2UgZGVw
bG95bWVudCBsb2NhdGlvbi4iKSBkbyB8ZmxhZ3wKKyAgICAgICAgJG9wdGlvbnNbOnVzZV9kZXBs
b3ltZW50X2xvY2F0aW9uXSA9IGZsYWcKKyAgICBlbmQKK2VuZC5wYXJzZSEKKwogYmVnaW4KICAg
ICBjb25maWd1cmF0aW9uTGlzdCA9IGNvbmZpZ3VyYXRpb25JbmRpY2VzRm9yVmFyaWFudHMoc2V0
dGluZ3NGbG5tLCB2YXJpYW50cykKIHJlc2N1ZSBNaXNzaW5nTWFnaWNWYWx1ZXNFeGNlcHRpb24K
QEAgLTYwLDcgKzcwLDcgQEAgZGVmIGVtaXRNYWdpY051bWJlcgogZW5kCiAKIGNvbmZpZ3VyYXRp
b25IYXNoID0gRGlnZXN0OjpTSEExLmhleGRpZ2VzdChjb25maWd1cmF0aW9uTGlzdC5qb2luKCcg
JykpCi1pbnB1dEhhc2ggPSAiLy8gT2Zmc2V0RXh0cmFjdG9yIGlucHV0IGhhc2g6ICN7cGFyc2VI
YXNoKGlucHV0RmxubSl9ICN7Y29uZmlndXJhdGlvbkhhc2h9ICN7c2VsZkhhc2h9IgoraW5wdXRI
YXNoID0gIi8vIE9mZnNldEV4dHJhY3RvciBpbnB1dCBoYXNoOiAje3BhcnNlSGFzaChpbnB1dEZs
bm0sICRvcHRpb25zKX0gI3tjb25maWd1cmF0aW9uSGFzaH0gI3tzZWxmSGFzaH0iCiAKIGlmIEZp
bGVUZXN0LmV4aXN0PyBvdXRwdXRGbG5tCiAgICAgRmlsZS5vcGVuKG91dHB1dEZsbm0sICJyIikg
ewpAQCAtNzMsNyArODMsNyBAQCBkZWYgZW1pdE1hZ2ljTnVtYmVyCiAgICAgfQogZW5kCiAKLWFz
dCA9IHBhcnNlKGlucHV0RmxubSkKK2FzdCA9IHBhcnNlKGlucHV0RmxubSwgJG9wdGlvbnMpCiBz
ZXR0aW5nc0NvbWJpbmF0aW9ucyA9IGNvbXB1dGVTZXR0aW5nc0NvbWJpbmF0aW9ucyhhc3QpCiAK
IEZpbGUub3BlbihvdXRwdXRGbG5tLCAidyIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVyYXRlX3NldHRpbmdzX2V4dHJhY3Rvci5yYiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVyYXRlX3NldHRpbmdzX2V4dHJhY3Rvci5y
YgppbmRleCA0NDhiNDZlOTU1MTU5NTRkZDExNGNiNWJmNGQ0ZmI5ODI2NzAwNWM5Li5jOWI1NWM2
YzRiOTAzZWYyY2YyMDIxNzAyOTZiMWFjYzllZmQ4NDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9zZXR0aW5nc19leHRyYWN0b3IucmIKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vZ2VuZXJhdGVfc2V0dGluZ3NfZXh0
cmFjdG9yLnJiCkBAIC0yOSw2ICsyOSw3IEBACiByZXF1aXJlICJiYWNrZW5kcyIKIHJlcXVpcmUg
ImRpZ2VzdC9zaGExIgogcmVxdWlyZSAib2Zmc2V0cyIKK3JlcXVpcmUgJ29wdHBhcnNlJwogcmVx
dWlyZSAicGFyc2VyIgogcmVxdWlyZSAic2VsZl9oYXNoIgogcmVxdWlyZSAic2V0dGluZ3MiCkBA
IC00Miw3ICs0MywxNiBAQAogdmFsaWRCYWNrZW5kcyA9IGNhbm9uaWNhbGl6ZUJhY2tlbmROYW1l
cyhBUkdWLnNoaWZ0LnNwbGl0KC9bLFxzXSsvKSkKIGluY2x1ZGVPbmx5QmFja2VuZHModmFsaWRC
YWNrZW5kcykKIAotaW5wdXRIYXNoID0gIi8vIFNldHRpbmdzRXh0cmFjdG9yIGlucHV0IGhhc2g6
ICN7cGFyc2VIYXNoKGlucHV0RmxubSl9ICN7c2VsZkhhc2h9IgorJG9wdGlvbnMgPSB7fQorT3B0
aW9uUGFyc2VyLm5ldyBkbyB8b3B0c3wKKyAgICBvcHRzLmJhbm5lciA9ICJVc2FnZTogZ2VuZXJh
dGVfc2V0dGluZ3NfZXh0cmFjdG9yLnJiIGFzbUZpbGUgc2V0dGluZ0ZpbGUgWy0tdXNlLWRlcGxv
eW1lbnQtbG9jYXRpb25dIgorICAgICMgVGhpcyBvcHRpb24gaXMgY3VycmVudGx5IG9ubHkgdXNl
ZCB0byBzcGVjaWZ5IHRoZSBtYXNtIGFzc2VtYmxlcgorICAgIG9wdHMub24oIi0tdXNlLWRlcGxv
eW1lbnQtbG9jYXRpb24iLCAiRmxhZyB0byB1c2UgZGVwbG95bWVudCBsb2NhdGlvbi4iKSBkbyB8
ZmxhZ3wKKyAgICAgICAgJG9wdGlvbnNbOnVzZV9kZXBsb3ltZW50X2xvY2F0aW9uXSA9IGZsYWcK
KyAgICBlbmQKK2VuZC5wYXJzZSEKKworaW5wdXRIYXNoID0gIi8vIFNldHRpbmdzRXh0cmFjdG9y
IGlucHV0IGhhc2g6ICN7cGFyc2VIYXNoKGlucHV0RmxubSwgJG9wdGlvbnMpfSAje3NlbGZIYXNo
fSIKIAogaWYgRmlsZVRlc3QuZXhpc3Q/IG91dHB1dEZsbm0KICAgICBGaWxlLm9wZW4ob3V0cHV0
RmxubSwgInIiKSB7CkBAIC01NSw3ICs2NSw3IEBACiAgICAgfQogZW5kCiAKLW9yaWdpbmFsQVNU
ID0gcGFyc2UoaW5wdXRGbG5tKQorb3JpZ2luYWxBU1QgPSBwYXJzZShpbnB1dEZsbm0sICRvcHRp
b25zKQogcHJ1bmVkQVNUID0gU2VxdWVuY2UubmV3KG9yaWdpbmFsQVNULmNvZGVPcmlnaW4sIG9y
aWdpbmFsQVNULmZpbHRlcihTZXR0aW5nKSkKIAogRmlsZS5vcGVuKG91dHB1dEZsbm0sICJ3Iikg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJi
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCmluZGV4IDJjZTRi
MWM1Y2MwMzA4MGFjMzYxNjMwNTNmOGViODI5MTc4OTllNmQuLjE4OGFjOGMzZGQxZmY3YjM3ZTMz
NjQyYWM3Y2ZiZGJhOGEyZWUzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3BhcnNlci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9wYXJzZXIucmIKQEAgLTI1OSwxMyArMjU5LDE0IEBAIGRlZiBpc1N0cmluZyh0b2tlbikKICMK
IAogY2xhc3MgUGFyc2VyCi0gICAgZGVmIGluaXRpYWxpemUoZGF0YSwgZmlsZU5hbWUpCisgICAg
ZGVmIGluaXRpYWxpemUoZGF0YSwgZmlsZU5hbWUsIG9wdGlvbnMpCiAgICAgICAgIEB0b2tlbnMg
PSBsZXgoZGF0YSwgZmlsZU5hbWUpCiAgICAgICAgIEBpZHggPSAwCiAgICAgICAgIEBhbm5vdGF0
aW9uID0gbmlsCiAgICAgICAgICMgRklYTUU6IENNYWtlIGRvZXMgbm90IGN1cnJlbnRseSBzZXQg
QlVJTFRfUFJPRFVDVFNfRElSLgogICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjkzNDAKICAgICAgICAgQGJ1aWxkUHJvZHVjdHNEaXJlY3RvcnkgPSBF
TlZbJ0JVSUxUX1BST0RVQ1RTX0RJUiddOworICAgICAgICBAb3B0aW9ucyA9IG9wdGlvbnMKICAg
ICBlbmQKICAgICAKICAgICBkZWYgcGFyc2VFcnJvcigqY29tbWVudCkKQEAgLTgzMCwxNCArODMx
LDE4IEBAIGRlZiBwYXJzZVNlcXVlbmNlKGZpbmFsLCBjb21tZW50KQogICAgICAgICAgICAgICAg
IHBhcnNlRXJyb3IgdW5sZXNzIGlzSWRlbnRpZmllcihAdG9rZW5zW0BpZHhdKQogICAgICAgICAg
ICAgICAgIG1vZHVsZU5hbWUgPSBAdG9rZW5zW0BpZHhdLnN0cmluZwogICAgICAgICAgICAgICAg
IEBpZHggKz0gMQotICAgICAgICAgICAgICAgIGFkZGl0aW9uc0RpcmVjdG9yeU5hbWUgPSAiI3tA
YnVpbGRQcm9kdWN0c0RpcmVjdG9yeX0vdXNyL2xvY2FsL2luY2x1ZGUvV2ViS2l0QWRkaXRpb25z
LyIKKyAgICAgICAgICAgICAgICBpZiBAb3B0aW9uc1s6dXNlX2RlcGxveW1lbnRfbG9jYXRpb25d
CisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uc0RpcmVjdG9yeU5hbWUgPSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy8iCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBhZGRpdGlvbnNEaXJlY3RvcnlOYW1lID0gIiN7QGJ1aWxkUHJvZHVjdHNE
aXJlY3Rvcnl9L3Vzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy8iCisgICAgICAgICAg
ICAgICAgZW5kCiAgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBJbmNsdWRlRmlsZS5uZXcobW9k
dWxlTmFtZSwgYWRkaXRpb25zRGlyZWN0b3J5TmFtZSkuZmlsZU5hbWUKICAgICAgICAgICAgICAg
ICBpZiBub3QgRmlsZS5leGlzdHM/KGZpbGVOYW1lKQogICAgICAgICAgICAgICAgICAgICBmaWxl
TmFtZSA9IEluY2x1ZGVGaWxlLm5ldyhtb2R1bGVOYW1lLCBAdG9rZW5zW0BpZHhdLmNvZGVPcmln
aW4uZmlsZU5hbWUuZGlybmFtZSkuZmlsZU5hbWUKICAgICAgICAgICAgICAgICBlbmQKICAgICAg
ICAgICAgICAgICBmaWxlRXhpc3RzID0gRmlsZS5leGlzdHM/KGZpbGVOYW1lKQogICAgICAgICAg
ICAgICAgIHJhaXNlICJGaWxlIG5vdCBmb3VuZDogI3tmaWxlTmFtZX0iIGlmIG5vdCBmaWxlRXhp
c3RzIGFuZCBub3QgaXNPcHRpb25hbAotICAgICAgICAgICAgICAgIGxpc3QgPDwgcGFyc2UoZmls
ZU5hbWUpIGlmIGZpbGVFeGlzdHMKKyAgICAgICAgICAgICAgICBsaXN0IDw8IHBhcnNlKGZpbGVO
YW1lLCBAb3B0aW9ucykgaWYgZmlsZUV4aXN0cwogICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgIHBhcnNlRXJyb3IgIkV4cGVjdGluZyB0ZXJtaW5hbCAje2ZpbmFsfSAje2NvbW1lbnR9
IgogICAgICAgICAgICAgZW5kCkBAIC04OTAsMTcgKzg5NSwxNyBAQCBkZWYgcmVhZFRleHRGaWxl
KGZpbGVOYW1lKQogICAgIHJldHVybiBkYXRhCiBlbmQKIAotZGVmIHBhcnNlRGF0YShkYXRhLCBm
aWxlTmFtZSkKLSAgICBwYXJzZXIgPSBQYXJzZXIubmV3KGRhdGEsIFNvdXJjZUZpbGUubmV3KGZp
bGVOYW1lKSkKK2RlZiBwYXJzZURhdGEoZGF0YSwgZmlsZU5hbWUsIG9wdGlvbnMpCisgICAgcGFy
c2VyID0gUGFyc2VyLm5ldyhkYXRhLCBTb3VyY2VGaWxlLm5ldyhmaWxlTmFtZSksIG9wdGlvbnMp
CiAgICAgcGFyc2VyLnBhcnNlU2VxdWVuY2UobmlsLCAiIikKIGVuZAogCi1kZWYgcGFyc2UoZmls
ZU5hbWUpCi0gICAgcGFyc2VEYXRhKHJlYWRUZXh0RmlsZShmaWxlTmFtZSksIGZpbGVOYW1lKQor
ZGVmIHBhcnNlKGZpbGVOYW1lLCBvcHRpb25zKQorICAgIHBhcnNlRGF0YShyZWFkVGV4dEZpbGUo
ZmlsZU5hbWUpLCBmaWxlTmFtZSwgb3B0aW9ucykKIGVuZAogCi1kZWYgcGFyc2VIYXNoKGZpbGVO
YW1lKQotICAgIHBhcnNlciA9IFBhcnNlci5uZXcocmVhZFRleHRGaWxlKGZpbGVOYW1lKSwgU291
cmNlRmlsZS5uZXcoZmlsZU5hbWUpKQorZGVmIHBhcnNlSGFzaChmaWxlTmFtZSwgb3B0aW9ucykK
KyAgICBwYXJzZXIgPSBQYXJzZXIubmV3KHJlYWRUZXh0RmlsZShmaWxlTmFtZSksIFNvdXJjZUZp
bGUubmV3KGZpbGVOYW1lKSwgb3B0aW9ucykKICAgICBmaWxlTGlzdCA9IHBhcnNlci5wYXJzZUlu
Y2x1ZGVzKG5pbCwgIiIpCiAgICAgZmlsZUxpc3RIYXNoKGZpbGVMaXN0KQogZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437225</attachid>
            <date>2021-09-02 17:32:35 -0700</date>
            <delta_ts>2021-09-02 17:34:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229841-20210902173235.patch</filename>
            <type>text/plain</type>
            <size>16367</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NTgzMDg1ODJjZmRiOTBmY2VhOTdhMjU0ZTk5MzM3MzVjZmVhYzQzLi41ZDFmNDE3MzQwYTYxM2Ew
MjAzNGY4YzkzYmI1ZDQ2MTQyMDBkZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMS0wOS0wMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEZpeCBXZWJLaXRBZGRpdGlvbnMgZGlyZWN0b3J5IHRyYXZlcnNh
bCBpbiBvZmZsaW5lYXNtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk4NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIERFUExPWU1FTlRfTE9DQVRJT04gaXMgWUVTLCBXZWJLaXRBZGRpdGlvbnMg
ZGlyZWN0b3J5IGJlY29tZXMgL3Vzci9sb2NhbC9pbmNsdWRlL1dlYktpdEFkZGl0aW9ucy4KKyAg
ICAgICAgVGhpcyBwYXRjaCBhZGRzIC0tdXNlLWRlcGxveW1lbnQtbG9jYXRpb24gb3B0aW9uIHRv
IGdlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmIsIGdlbmVyYXRlX3NldHRpbmdzX2V4dHJhY3Rv
ci5yYiwKKyAgICAgICAgYW5kIGFzbS5yYi4gQW5kIHRoZXkgcGFzcyBpdCB0byBwYXJzZXIgdG8g
Y2hhbmdlIHRoZSBpbmNsdWRlIGRpcmVjdG9yeS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogb2ZmbGluZWFzbS9hc20ucmI6
CisgICAgICAgICogb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiOgorICAg
ICAgICAqIG9mZmxpbmVhc20vZ2VuZXJhdGVfc2V0dGluZ3NfZXh0cmFjdG9yLnJiOgorICAgICAg
ICAqIG9mZmxpbmVhc20vcGFyc2VyLnJiOgorCiAyMDIxLTA5LTAyICBSb3NzIEtpcnNsaW5nICA8
cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBTY3JpcHRFeGVjdXRhYmxl
OjpuZXdDb2RlQmxvY2tGb3Igc2hvdWxkIGhhbmRsZSBleGNlcHRpb25zIG1vcmUgcHJlZGljdGFi
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzNlZWE2MzczNGIxMWFjN2E3OTE3
YzNlMjdkNmU1ZmFlMWI0YmRjNi4uZTc4NzdkYzE3Mzc4M2FlOWU2MTcxNjNiMTczODk1NGM2ODdl
NTNhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTcsMTAgKzE0MTcsMTAg
QEAKIAkJQTM4Q0E1OUUyNkREODRERTAwQzhEODRDIC8qIElTTzg2MDEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzOENBNTlDMjZERDg0REUwMEM4RDg0
QyAvKiBJU084NjAxLmggKi87IH07CiAJCUEzOEQyNTBFMjU4MDBENDQwMDQyQkZERCAvKiBKU0Fy
cmF5QnVmZmVyUHJvdG90eXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTM4RDI1MEQyNTgwMEQ0MzAwNDJCRkREIC8qIEpTQXJyYXlCdWZm
ZXJQcm90b3R5cGVJbmxpbmVzLmggKi87IH07CiAJCUEzOEQ1QkZDMjY2NkQzREEwMEExMDlBNiAv
KiBJbkJ5U3RhdHVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMzhENUJGQTI2NjZEM0RBMDBBMTA5QTYgLyogSW5CeVN0YXR1cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUEzRUU4NTQzMjYyNTE0QjAw
MEZDOUI4RCAvKiBJbnRsV29ya2Fyb3VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMzc2MTk0MDI2MjUxMjdDMDBDQkNCQTkgLyogSW50bFdvcmth
cm91bmQuY3BwICovOyB9OwogCQlBM0M3RURCNjI2QjBEQjM4MDA0QzM0QzUgLyogVGVtcG9yYWxE
dXJhdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTNDN0VEQjAyNkIwREIzNjAwNEMzNEM1IC8qIFRlbXBvcmFsRHVyYXRpb25Qcm90
b3R5cGUuaCAqLzsgfTsKIAkJQTNDN0VEQjkyNkIwREIzODAwNEMzNEM1IC8qIFRlbXBvcmFsRHVy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
QzdFREIzMjZCMERCMzcwMDRDMzRDNSAvKiBUZW1wb3JhbER1cmF0aW9uLmggKi87IH07CiAJCUEz
QzdFREJBMjZCMERCMzgwMDRDMzRDNSAvKiBUZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzQzdFREI0MjZC
MERCMzcwMDRDMzRDNSAvKiBUZW1wb3JhbER1cmF0aW9uQ29uc3RydWN0b3IuaCAqLzsgfTsKKwkJ
QTNFRTg1NDMyNjI1MTRCMDAwRkM5QjhEIC8qIEludGxXb3JrYXJvdW5kLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzNzYxOTQwMjYyNTEyN0MwMENC
Q0JBOSAvKiBJbnRsV29ya2Fyb3VuZC5jcHAgKi87IH07CiAJCUEzRkY5QkM3MjIzNDc0OTEwMEIx
QTlBQiAvKiBZYXJyRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEEzRkY5QkM1MjIzNDc0NjYwMEIxQTlBQiAvKiBZYXJyRmxhZ3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTAzRkExQTE4OEUw
RkIwMDAxMTBGMTQgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwM0ZBMTQxODhFMEZBRjAwMTEwRjE0IC8qIEph
dmFTY3JpcHRDYWxsRnJhbWUuaCAqLzsgfTsKIAkJQTUwM0ZBMUUxODhFMEZCMDAwMTEwRjE0IC8q
IEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwM0ZBMTgxODhFMEZCMDAwMTEwRjE0IC8qIEpTSmF2
YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oICovOyB9OwpAQCAtMTAxNjQsNiArMTAxNjQsNyBA
QAogCQkJCTg2RDQ0NkVBMjVCMjEyNTMwMEVDQUU3NSAvKiBKSVRPcGFxdWVCeXByb2R1Y3RzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFM0NBM0E0RTI1MjdBQjJGMDA0ODAyQkYgLyogSklUT3BlcmF0
aW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEQxN0VFMjc0OTAwQUJCMjE3IC8q
IEpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTZCMjM2MENFMjZDNjI1M0QwMDU0
QUVFQyAvKiBKSVRPcGVyYXRpb25WYWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjZC
OTFCNzI2NTgxNjUzMDA4RTZGODIgLyogSklUUGxhbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzIx
MzFCRkEyNjU4N0VGMjAwNzExNENGIC8qIEpJVFBsYW5TdGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkUzQTA2QzAxQzExMDQxQTAwMzkwRkREIC8qIEpJVFJpZ2h0U2hpZnRHZW5lcmF0b3IuaCBp
biBIZWFkZXJzICovLApAQCAtMTAzNDgsNyArMTAzNDksNiBAQAogCQkJCTg2RTNDNjFEMTY3QkFC
RUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTc5NUFDNjE4MjBBMjM1NUUwMDUyQzc2QyAvKiBKU1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDQTNBRTgxN0RBNDFBRTAwNjUzOEFGIC8qIEpTV2Vha01h
cC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkIyMzYwQ0UyNkM2MjUzRDAwNTRBRUVDIC8qIEpJVE9w
ZXJhdGlvblZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRjVCNDI3MjYyOEFCRDkw
MDE2RTc3NiAvKiBKU1dlYWtNYXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQ4MkU5
MzExNkE3Q0FEMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3NDgyQjkzMTE2NzExNDcwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBS
ZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTExMjI5LDcgKzExMjI5LDcgQEAKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0
aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJzZXQgLWVcblxubWtkaXIgLXAgXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vTExJbnRPZmZzZXRzLyR7QVJDSFN9XCJcblxuL3Vzci9iaW4vZW52
IHJ1YnkgXCIke1NSQ1JPT1R9L29mZmxpbmVhc20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5y
YlwiIFwiLUkke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmVcIiBcIiR7U1JDUk9PVH0vbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc21cIiAgXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vSlNDTExJbnRTZXR0aW5nc0V4dHJhY3RvclwiIFwiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L0xMSW50T2Zmc2V0cy8ke0FSQ0hTfS9MTEludERlc2lyZWRPZmZzZXRzLmhc
IiBcIiR7QVJDSFN9IENfTE9PUFwiIFwiJHtCVUlMRF9WQVJJQU5UU31cIlxuIjsKKwkJCXNoZWxs
U2NyaXB0ID0gInNldCAtZVxuXG5PRkZMSU5FQVNNX0FSR1M9XCJcIlxuaWYgW1sgXCIke0RFUExP
WU1FTlRfTE9DQVRJT059XCIgPT0gXCJZRVNcIiBdXTsgdGhlblxuICAgIE9GRkxJTkVBU01fQVJH
Uz1cIiR7T0ZGTElORUFTTV9BUkdTfSAtLXVzZS1kZXBsb3ltZW50LWxvY2F0aW9uXCJcbmZpXG5c
bm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0xMSW50T2Zmc2V0cy8ke0FSQ0hTfVwi
XG5cbi91c3IvYmluL2VudiBydWJ5IFwiJHtTUkNST09UfS9vZmZsaW5lYXNtL2dlbmVyYXRlX29m
ZnNldF9leHRyYWN0b3IucmJcIiBcIi1JJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL0phdmFTY3JpcHRDb3JlXCIgXCIke1NSQ1JPT1R9L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtXCIgIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0pTQ0xMSW50U2V0dGluZ3NFeHRyYWN0
b3JcIiBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9MTEludE9mZnNldHMvJHtBUkNIU30vTExJbnRE
ZXNpcmVkT2Zmc2V0cy5oXCIgXCIke0FSQ0hTfSBDX0xPT1BcIiBcIiR7QlVJTERfVkFSSUFOVFN9
XCIgJHtPRkZMSU5FQVNNX0FSR1N9XG4iOwogCQl9OwogCQkxNEJENjg5MjIxNTE5MTQ1MDA1MERB
RkYgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxT
Y3JpcHRCdWlsZFBoYXNlOwpAQCAtMTEyNDMsNyArMTEyNDMsNyBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9z
aDsKLQkJCXNoZWxsU2NyaXB0ID0gInNldCAtZVxuXG5ta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9MTEludE9mZnNldHMvJHtBUkNIU31cIlxuXG4vdXNyL2Jpbi9lbnYgcnVieSBcIiR7
U1JDUk9PVH0vb2ZmbGluZWFzbS9nZW5lcmF0ZV9zZXR0aW5nc19leHRyYWN0b3IucmJcIiBcIi1J
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlXCIgXCIk
e1NSQ1JPT1R9L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtXCIgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vTExJbnRPZmZzZXRzLyR7QVJDSFN9L0xMSW50RGVzaXJlZFNldHRpbmdzLmhcIiBc
IiR7QVJDSFN9IENfTE9PUFwiXG4iOworCQkJc2hlbGxTY3JpcHQgPSAic2V0IC1lXG5cbk9GRkxJ
TkVBU01fQVJHUz1cIlwiXG5pZiBbWyBcIiR7REVQTE9ZTUVOVF9MT0NBVElPTn1cIiA9PSBcIllF
U1wiIF1dOyB0aGVuXG4gICAgT0ZGTElORUFTTV9BUkdTPVwiJHtPRkZMSU5FQVNNX0FSR1N9IC0t
dXNlLWRlcGxveW1lbnQtbG9jYXRpb25cIlxuZmlcblxubWtkaXIgLXAgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vTExJbnRPZmZzZXRzLyR7QVJDSFN9XCJcblxuL3Vzci9iaW4vZW52IHJ1YnkgXCIk
e1NSQ1JPT1R9L29mZmxpbmVhc20vZ2VuZXJhdGVfc2V0dGluZ3NfZXh0cmFjdG9yLnJiXCIgXCIt
SSR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZVwiIFwi
JHtTUkNST09UfS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbVwiIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L0xMSW50T2Zmc2V0cy8ke0FSQ0hTfS9MTEludERlc2lyZWRTZXR0aW5ncy5oXCIg
XCIke0FSQ0hTfSBDX0xPT1BcIiAke09GRkxJTkVBU01fQVJHU31cbiI7CiAJCX07CiAJCTFBMDJE
OUE4MUIzNEE4ODIwMDBEMTUyMiAvKiBBZGQgU3ltbGluayBpbiAvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7
CkBAIC0xMTQ4OSw3ICsxMTQ4OSw3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3Jp
cHQgPSAiaWYgW1sgXCIke0FDVElPTn1cIiA9PSBcImluc3RhbGxoZHJzXCIgXV07IHRoZW5cbiAg
ICBleGl0IDBcbmZpXG5cbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2Vz
L0phdmFTY3JpcHRDb3JlXCJcblxuL3Vzci9iaW4vZW52IHJ1YnkgSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hc20ucmIgXCItSSR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9K
YXZhU2NyaXB0Q29yZVwiIEphdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0pTQ0xMSW50T2Zmc2V0c0V4dHJhY3RvclwiIExM
SW50QXNzZW1ibHkuaCBcIiR7QlVJTERfVkFSSUFOVFN9XCIgfHwgZXhpdCAxXG4iOworCQkJc2hl
bGxTY3JpcHQgPSAiaWYgW1sgXCIke0FDVElPTn1cIiA9PSBcImluc3RhbGxoZHJzXCIgXV07IHRo
ZW5cbiAgICBleGl0IDBcbmZpXG5cbk9GRkxJTkVBU01fQVJHUz1cIlwiXG5pZiBbWyBcIiR7REVQ
TE9ZTUVOVF9MT0NBVElPTn1cIiA9PSBcIllFU1wiIF1dOyB0aGVuXG4gICAgT0ZGTElORUFTTV9B
UkdTPVwiJHtPRkZMSU5FQVNNX0FSR1N9IC0tdXNlLWRlcGxveW1lbnQtbG9jYXRpb25cIlxuZmlc
blxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmVcIlxuXG4vdXNyL2Jpbi9lbnYgcnVieSBKYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5y
YiBcIi1JJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3Jl
XCIgSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gXCIke0JVSUxU
X1BST0RVQ1RTX0RJUn0vSlNDTExJbnRPZmZzZXRzRXh0cmFjdG9yXCIgTExJbnRBc3NlbWJseS5o
IFwiJHtCVUlMRF9WQVJJQU5UU31cIiAke09GRkxJTkVBU01fQVJHU30gfHwgZXhpdCAxXG4iOwog
CQl9OwogCQk2NUZCM0Y2NTA5RDExRTkxMDBGNDlERUIgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCmluZGV4IDllNWEzZDAzNTI1ZWI3NDIwNzY0ZDE4
MmIwYmQ3MjRiMWE0ZTFmZWIuLjlkMDE4MmE5ZWJlZjdiNGMyMWFkYzcyNTI2YjAxMDEyM2ZlYmM2
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIKQEAgLTMzNSwxMSAr
MzM1LDE0IEBAIGRlZiBkZWJ1Z0Fubm90YXRpb24odGV4dCkKIAogJG9wdGlvbnMgPSB7fQogT3B0
aW9uUGFyc2VyLm5ldyBkbyB8b3B0c3wKLSAgICBvcHRzLmJhbm5lciA9ICJVc2FnZTogYXNtLnJi
IGFzbUZpbGUgb2Zmc2V0c0ZpbGUgb3V0cHV0RmlsZU5hbWUgWy0tYXNzZW1ibGVyPTxBU00+XSIK
KyAgICBvcHRzLmJhbm5lciA9ICJVc2FnZTogYXNtLnJiIGFzbUZpbGUgb2Zmc2V0c0ZpbGUgb3V0
cHV0RmlsZU5hbWUgWy0tYXNzZW1ibGVyPTxBU00+XSBbLS11c2UtZGVwbG95bWVudC1sb2NhdGlv
bl0iCiAgICAgIyBUaGlzIG9wdGlvbiBpcyBjdXJyZW50bHkgb25seSB1c2VkIHRvIHNwZWNpZnkg
dGhlIG1hc20gYXNzZW1ibGVyCiAgICAgb3B0cy5vbigiLS1hc3NlbWJsZXI9W0FTTV0iLCAiU3Bl
Y2lmeSBhbiBhc3NlbWJsZXIgdG8gdXNlLiIpIGRvIHxhc3NlbWJsZXJ8CiAgICAgICAgICRvcHRp
b25zWzphc3NlbWJsZXJdID0gYXNzZW1ibGVyCiAgICAgZW5kCisgICAgb3B0cy5vbigiLS11c2Ut
ZGVwbG95bWVudC1sb2NhdGlvbiIsICJGbGFnIHRvIHVzZSBkZXBsb3ltZW50IGxvY2F0aW9uLiIp
IGRvIHxmbGFnfAorICAgICAgICAkb3B0aW9uc1s6dXNlX2RlcGxveW1lbnRfbG9jYXRpb25dID0g
ZmxhZworICAgIGVuZAogZW5kLnBhcnNlIQogCiBiZWdpbgpAQCAtMzU4LDcgKzM2MSw3IEBAIGRl
ZiBkZWJ1Z0Fubm90YXRpb24odGV4dCkKICRjb21tZW50UHJlZml4ID0gJGVtaXRXaW5Bc20gPyAi
OyIgOiAiLy8iCiAKIGlucHV0SGFzaCA9Ci0gICAgJGNvbW1lbnRQcmVmaXggKyAiIG9mZmxpbmVh
c20gaW5wdXQgaGFzaDogIiArIHBhcnNlSGFzaChhc21GaWxlKSArCisgICAgJGNvbW1lbnRQcmVm
aXggKyAiIG9mZmxpbmVhc20gaW5wdXQgaGFzaDogIiArIHBhcnNlSGFzaChhc21GaWxlLCAkb3B0
aW9ucykgKwogICAgICIgIiArIERpZ2VzdDo6U0hBMS5oZXhkaWdlc3QoY29uZmlndXJhdGlvbkxp
c3QubWFwe3x2fCAodlswXSArIFt2WzFdXSkuam9pbignICcpfS5qb2luKCcgJykpICsKICAgICAi
ICIgKyBzZWxmSGFzaCArCiAgICAgIiAiICsgRGlnZXN0OjpTSEExLmhleGRpZ2VzdCgkb3B0aW9u
cy5oYXNfa2V5Pyg6YXNzZW1ibGVyKSA/ICRvcHRpb25zWzphc3NlbWJsZXJdIDogIiIpCkBAIC0z
ODcsNyArMzkwLDcgQEAgZGVmIGRlYnVnQW5ub3RhdGlvbih0ZXh0KQogCiAgICAgJGFzbSA9IEFz
c2VtYmxlci5uZXcoJG91dHB1dCkKICAgICAKLSAgICBhc3QgPSBwYXJzZShhc21GaWxlKQorICAg
IGFzdCA9IHBhcnNlKGFzbUZpbGUsICRvcHRpb25zKQogICAgIHNldHRpbmdzQ29tYmluYXRpb25z
ID0gY29tcHV0ZVNldHRpbmdzQ29tYmluYXRpb25zKGFzdCkKIAogICAgIGNvbmZpZ3VyYXRpb25M
aXN0LmVhY2ggewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
Z2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmIKaW5kZXggZjFhMDg3MmE2MjJkMTdi
ZmRkMTFkNjhhZmI1NjNiZDgwNDllNjUzZi4uOTJlMDQ0NTkxZDNiMzhjZjllY2M5MDUwZDJhOTQ5
NWQ2NGNmMmI2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
Z2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiCkBAIC0yOSw2ICsyOSw3IEBA
CiByZXF1aXJlICJiYWNrZW5kcyIKIHJlcXVpcmUgImRpZ2VzdC9zaGExIgogcmVxdWlyZSAib2Zm
c2V0cyIKK3JlcXVpcmUgJ29wdHBhcnNlJwogcmVxdWlyZSAicGFyc2VyIgogcmVxdWlyZSAic2Vs
Zl9oYXNoIgogcmVxdWlyZSAic2V0dGluZ3MiCkBAIC00NSw2ICs0NiwxNCBAQAogCiB2YXJpYW50
cyA9IEFSR1Yuc2hpZnQuc3BsaXQoL1ssXHNdKy8pCiAKKyRvcHRpb25zID0ge30KK09wdGlvblBh
cnNlci5uZXcgZG8gfG9wdHN8CisgICAgb3B0cy5iYW5uZXIgPSAiVXNhZ2U6IGdlbmVyYXRlX29m
ZnNldF9leHRyYWN0b3IucmIgYXNtRmlsZSBzZXR0aW5nRmlsZSBvdXRwdXRGaWxlTmFtZSBiYWNr
ZW5kcyB2YXJpYW50cyBbLS11c2UtZGVwbG95bWVudC1sb2NhdGlvbl0iCisgICAgb3B0cy5vbigi
LS11c2UtZGVwbG95bWVudC1sb2NhdGlvbiIsICJGbGFnIHRvIHVzZSBkZXBsb3ltZW50IGxvY2F0
aW9uLiIpIGRvIHxmbGFnfAorICAgICAgICAkb3B0aW9uc1s6dXNlX2RlcGxveW1lbnRfbG9jYXRp
b25dID0gZmxhZworICAgIGVuZAorZW5kLnBhcnNlIQorCiBiZWdpbgogICAgIGNvbmZpZ3VyYXRp
b25MaXN0ID0gY29uZmlndXJhdGlvbkluZGljZXNGb3JWYXJpYW50cyhzZXR0aW5nc0Zsbm0sIHZh
cmlhbnRzKQogcmVzY3VlIE1pc3NpbmdNYWdpY1ZhbHVlc0V4Y2VwdGlvbgpAQCAtNjAsNyArNjks
NyBAQCBkZWYgZW1pdE1hZ2ljTnVtYmVyCiBlbmQKIAogY29uZmlndXJhdGlvbkhhc2ggPSBEaWdl
c3Q6OlNIQTEuaGV4ZGlnZXN0KGNvbmZpZ3VyYXRpb25MaXN0LmpvaW4oJyAnKSkKLWlucHV0SGFz
aCA9ICIvLyBPZmZzZXRFeHRyYWN0b3IgaW5wdXQgaGFzaDogI3twYXJzZUhhc2goaW5wdXRGbG5t
KX0gI3tjb25maWd1cmF0aW9uSGFzaH0gI3tzZWxmSGFzaH0iCitpbnB1dEhhc2ggPSAiLy8gT2Zm
c2V0RXh0cmFjdG9yIGlucHV0IGhhc2g6ICN7cGFyc2VIYXNoKGlucHV0RmxubSwgJG9wdGlvbnMp
fSAje2NvbmZpZ3VyYXRpb25IYXNofSAje3NlbGZIYXNofSIKIAogaWYgRmlsZVRlc3QuZXhpc3Q/
IG91dHB1dEZsbm0KICAgICBGaWxlLm9wZW4ob3V0cHV0RmxubSwgInIiKSB7CkBAIC03Myw3ICs4
Miw3IEBAIGRlZiBlbWl0TWFnaWNOdW1iZXIKICAgICB9CiBlbmQKIAotYXN0ID0gcGFyc2UoaW5w
dXRGbG5tKQorYXN0ID0gcGFyc2UoaW5wdXRGbG5tLCAkb3B0aW9ucykKIHNldHRpbmdzQ29tYmlu
YXRpb25zID0gY29tcHV0ZVNldHRpbmdzQ29tYmluYXRpb25zKGFzdCkKIAogRmlsZS5vcGVuKG91
dHB1dEZsbm0sICJ3IikgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vZ2VuZXJhdGVfc2V0dGluZ3NfZXh0cmFjdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vZ2VuZXJhdGVfc2V0dGluZ3NfZXh0cmFjdG9yLnJiCmluZGV4IDQ0OGI0
NmU5NTUxNTk1NGRkMTE0Y2I1YmY0ZDRmYjk4MjY3MDA1YzkuLjIzNDViYzA1OTA5ZjQwNDQzNWFi
MTEwZGJlNjJmNjIyYzRhMDViYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2dlbmVyYXRlX3NldHRpbmdzX2V4dHJhY3Rvci5yYgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9zZXR0aW5nc19leHRyYWN0b3IucmIKQEAg
LTI5LDYgKzI5LDcgQEAKIHJlcXVpcmUgImJhY2tlbmRzIgogcmVxdWlyZSAiZGlnZXN0L3NoYTEi
CiByZXF1aXJlICJvZmZzZXRzIgorcmVxdWlyZSAnb3B0cGFyc2UnCiByZXF1aXJlICJwYXJzZXIi
CiByZXF1aXJlICJzZWxmX2hhc2giCiByZXF1aXJlICJzZXR0aW5ncyIKQEAgLTQyLDcgKzQzLDE1
IEBACiB2YWxpZEJhY2tlbmRzID0gY2Fub25pY2FsaXplQmFja2VuZE5hbWVzKEFSR1Yuc2hpZnQu
c3BsaXQoL1ssXHNdKy8pKQogaW5jbHVkZU9ubHlCYWNrZW5kcyh2YWxpZEJhY2tlbmRzKQogCi1p
bnB1dEhhc2ggPSAiLy8gU2V0dGluZ3NFeHRyYWN0b3IgaW5wdXQgaGFzaDogI3twYXJzZUhhc2go
aW5wdXRGbG5tKX0gI3tzZWxmSGFzaH0iCiskb3B0aW9ucyA9IHt9CitPcHRpb25QYXJzZXIubmV3
IGRvIHxvcHRzfAorICAgIG9wdHMuYmFubmVyID0gIlVzYWdlOiBnZW5lcmF0ZV9zZXR0aW5nc19l
eHRyYWN0b3IucmIgYXNtRmlsZSBzZXR0aW5nRmlsZSBbLS11c2UtZGVwbG95bWVudC1sb2NhdGlv
bl0iCisgICAgb3B0cy5vbigiLS11c2UtZGVwbG95bWVudC1sb2NhdGlvbiIsICJGbGFnIHRvIHVz
ZSBkZXBsb3ltZW50IGxvY2F0aW9uLiIpIGRvIHxmbGFnfAorICAgICAgICAkb3B0aW9uc1s6dXNl
X2RlcGxveW1lbnRfbG9jYXRpb25dID0gZmxhZworICAgIGVuZAorZW5kLnBhcnNlIQorCitpbnB1
dEhhc2ggPSAiLy8gU2V0dGluZ3NFeHRyYWN0b3IgaW5wdXQgaGFzaDogI3twYXJzZUhhc2goaW5w
dXRGbG5tLCAkb3B0aW9ucyl9ICN7c2VsZkhhc2h9IgogCiBpZiBGaWxlVGVzdC5leGlzdD8gb3V0
cHV0RmxubQogICAgIEZpbGUub3BlbihvdXRwdXRGbG5tLCAiciIpIHsKQEAgLTU1LDcgKzY0LDcg
QEAKICAgICB9CiBlbmQKIAotb3JpZ2luYWxBU1QgPSBwYXJzZShpbnB1dEZsbm0pCitvcmlnaW5h
bEFTVCA9IHBhcnNlKGlucHV0RmxubSwgJG9wdGlvbnMpCiBwcnVuZWRBU1QgPSBTZXF1ZW5jZS5u
ZXcob3JpZ2luYWxBU1QuY29kZU9yaWdpbiwgb3JpZ2luYWxBU1QuZmlsdGVyKFNldHRpbmcpKQog
CiBGaWxlLm9wZW4ob3V0cHV0RmxubSwgInciKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9wYXJzZXIucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9wYXJzZXIucmIKaW5kZXggMmNlNGIxYzVjYzAzMDgwYWMzNjE2MzA1M2Y4ZWI4Mjkx
Nzg5OWU2ZC4uZmZkMzA4ZmYzYjQ0NmIyOWU1ZjFlMWVkZTA2N2RmMGM5YjI2YjM4NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgpAQCAtMjU5LDEzICsyNTks
MTQgQEAgZGVmIGlzU3RyaW5nKHRva2VuKQogIwogCiBjbGFzcyBQYXJzZXIKLSAgICBkZWYgaW5p
dGlhbGl6ZShkYXRhLCBmaWxlTmFtZSkKKyAgICBkZWYgaW5pdGlhbGl6ZShkYXRhLCBmaWxlTmFt
ZSwgb3B0aW9ucykKICAgICAgICAgQHRva2VucyA9IGxleChkYXRhLCBmaWxlTmFtZSkKICAgICAg
ICAgQGlkeCA9IDAKICAgICAgICAgQGFubm90YXRpb24gPSBuaWwKICAgICAgICAgIyBGSVhNRTog
Q01ha2UgZG9lcyBub3QgY3VycmVudGx5IHNldCBCVUlMVF9QUk9EVUNUU19ESVIuCiAgICAgICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTM0MAogICAgICAg
ICBAYnVpbGRQcm9kdWN0c0RpcmVjdG9yeSA9IEVOVlsnQlVJTFRfUFJPRFVDVFNfRElSJ107Cisg
ICAgICAgIEBvcHRpb25zID0gb3B0aW9ucwogICAgIGVuZAogICAgIAogICAgIGRlZiBwYXJzZUVy
cm9yKCpjb21tZW50KQpAQCAtODMwLDE0ICs4MzEsMTggQEAgZGVmIHBhcnNlU2VxdWVuY2UoZmlu
YWwsIGNvbW1lbnQpCiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvciB1bmxlc3MgaXNJZGVudGlm
aWVyKEB0b2tlbnNbQGlkeF0pCiAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSA9IEB0b2tlbnNb
QGlkeF0uc3RyaW5nCiAgICAgICAgICAgICAgICAgQGlkeCArPSAxCi0gICAgICAgICAgICAgICAg
YWRkaXRpb25zRGlyZWN0b3J5TmFtZSA9ICIje0BidWlsZFByb2R1Y3RzRGlyZWN0b3J5fS91c3Iv
bG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMvIgorICAgICAgICAgICAgICAgIGlmIEBvcHRp
b25zWzp1c2VfZGVwbG95bWVudF9sb2NhdGlvbl0KKyAgICAgICAgICAgICAgICAgICAgYWRkaXRp
b25zRGlyZWN0b3J5TmFtZSA9ICIvdXNyL2xvY2FsL2luY2x1ZGUvV2ViS2l0QWRkaXRpb25zLyIK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uc0RpcmVj
dG9yeU5hbWUgPSAiI3tAYnVpbGRQcm9kdWN0c0RpcmVjdG9yeX0vdXNyL2xvY2FsL2luY2x1ZGUv
V2ViS2l0QWRkaXRpb25zLyIKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBm
aWxlTmFtZSA9IEluY2x1ZGVGaWxlLm5ldyhtb2R1bGVOYW1lLCBhZGRpdGlvbnNEaXJlY3RvcnlO
YW1lKS5maWxlTmFtZQogICAgICAgICAgICAgICAgIGlmIG5vdCBGaWxlLmV4aXN0cz8oZmlsZU5h
bWUpCiAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gSW5jbHVkZUZpbGUubmV3KG1vZHVs
ZU5hbWUsIEB0b2tlbnNbQGlkeF0uY29kZU9yaWdpbi5maWxlTmFtZS5kaXJuYW1lKS5maWxlTmFt
ZQogICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgIGZpbGVFeGlzdHMgPSBGaWxl
LmV4aXN0cz8oZmlsZU5hbWUpCiAgICAgICAgICAgICAgICAgcmFpc2UgIkZpbGUgbm90IGZvdW5k
OiAje2ZpbGVOYW1lfSIgaWYgbm90IGZpbGVFeGlzdHMgYW5kIG5vdCBpc09wdGlvbmFsCi0gICAg
ICAgICAgICAgICAgbGlzdCA8PCBwYXJzZShmaWxlTmFtZSkgaWYgZmlsZUV4aXN0cworICAgICAg
ICAgICAgICAgIGxpc3QgPDwgcGFyc2UoZmlsZU5hbWUsIEBvcHRpb25zKSBpZiBmaWxlRXhpc3Rz
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcGFyc2VFcnJvciAiRXhwZWN0aW5n
IHRlcm1pbmFsICN7ZmluYWx9ICN7Y29tbWVudH0iCiAgICAgICAgICAgICBlbmQKQEAgLTg2Miw3
ICs4NjcsMTEgQEAgZGVmIHBhcnNlSW5jbHVkZXMoZmluYWwsIGNvbW1lbnQpCiAgICAgICAgICAg
ICAgICAgcGFyc2VFcnJvciB1bmxlc3MgaXNJZGVudGlmaWVyKEB0b2tlbnNbQGlkeF0pCiAgICAg
ICAgICAgICAgICAgbW9kdWxlTmFtZSA9IEB0b2tlbnNbQGlkeF0uc3RyaW5nCiAgICAgICAgICAg
ICAgICAgQGlkeCArPSAxCi0gICAgICAgICAgICAgICAgYWRkaXRpb25zRGlyZWN0b3J5TmFtZSA9
ICIje0BidWlsZFByb2R1Y3RzRGlyZWN0b3J5fS91c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRp
dGlvbnMvIgorICAgICAgICAgICAgICAgIGlmIEBvcHRpb25zWzp1c2VfZGVwbG95bWVudF9sb2Nh
dGlvbl0KKyAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25zRGlyZWN0b3J5TmFtZSA9ICIvdXNy
L2xvY2FsL2luY2x1ZGUvV2ViS2l0QWRkaXRpb25zLyIKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uc0RpcmVjdG9yeU5hbWUgPSAiI3tAYnVpbGRQcm9k
dWN0c0RpcmVjdG9yeX0vdXNyL2xvY2FsL2luY2x1ZGUvV2ViS2l0QWRkaXRpb25zLyIKKyAgICAg
ICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IEluY2x1ZGVGaWxlLm5l
dyhtb2R1bGVOYW1lLCBhZGRpdGlvbnNEaXJlY3RvcnlOYW1lKS5maWxlTmFtZQogICAgICAgICAg
ICAgICAgIGlmIG5vdCBGaWxlLmV4aXN0cz8oZmlsZU5hbWUpCiAgICAgICAgICAgICAgICAgICAg
IGZpbGVOYW1lID0gSW5jbHVkZUZpbGUubmV3KG1vZHVsZU5hbWUsIEB0b2tlbnNbQGlkeF0uY29k
ZU9yaWdpbi5maWxlTmFtZS5kaXJuYW1lKS5maWxlTmFtZQpAQCAtODkwLDE3ICs4OTksMTcgQEAg
ZGVmIHJlYWRUZXh0RmlsZShmaWxlTmFtZSkKICAgICByZXR1cm4gZGF0YQogZW5kCiAKLWRlZiBw
YXJzZURhdGEoZGF0YSwgZmlsZU5hbWUpCi0gICAgcGFyc2VyID0gUGFyc2VyLm5ldyhkYXRhLCBT
b3VyY2VGaWxlLm5ldyhmaWxlTmFtZSkpCitkZWYgcGFyc2VEYXRhKGRhdGEsIGZpbGVOYW1lLCBv
cHRpb25zKQorICAgIHBhcnNlciA9IFBhcnNlci5uZXcoZGF0YSwgU291cmNlRmlsZS5uZXcoZmls
ZU5hbWUpLCBvcHRpb25zKQogICAgIHBhcnNlci5wYXJzZVNlcXVlbmNlKG5pbCwgIiIpCiBlbmQK
IAotZGVmIHBhcnNlKGZpbGVOYW1lKQotICAgIHBhcnNlRGF0YShyZWFkVGV4dEZpbGUoZmlsZU5h
bWUpLCBmaWxlTmFtZSkKK2RlZiBwYXJzZShmaWxlTmFtZSwgb3B0aW9ucykKKyAgICBwYXJzZURh
dGEocmVhZFRleHRGaWxlKGZpbGVOYW1lKSwgZmlsZU5hbWUsIG9wdGlvbnMpCiBlbmQKIAotZGVm
IHBhcnNlSGFzaChmaWxlTmFtZSkKLSAgICBwYXJzZXIgPSBQYXJzZXIubmV3KHJlYWRUZXh0Rmls
ZShmaWxlTmFtZSksIFNvdXJjZUZpbGUubmV3KGZpbGVOYW1lKSkKK2RlZiBwYXJzZUhhc2goZmls
ZU5hbWUsIG9wdGlvbnMpCisgICAgcGFyc2VyID0gUGFyc2VyLm5ldyhyZWFkVGV4dEZpbGUoZmls
ZU5hbWUpLCBTb3VyY2VGaWxlLm5ldyhmaWxlTmFtZSksIG9wdGlvbnMpCiAgICAgZmlsZUxpc3Qg
PSBwYXJzZXIucGFyc2VJbmNsdWRlcyhuaWwsICIiKQogICAgIGZpbGVMaXN0SGFzaChmaWxlTGlz
dCkKIGVuZAo=
</data>
<flag name="review"
          id="460359"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>