<?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>71983</bug_id>
          
          <creation_ts>2011-11-09 17:53:52 -0800</creation_ts>
          <short_desc>Add Environment object to Host and fix the GCC smartquotes trouble seen on the commit-queue</short_desc>
          <delta_ts>2017-09-11 18:52:03 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=176761</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>71961</dependson>
    
    <dependson>73062</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>499548</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-09 17:53:52 -0800</bug_when>
    <thetext>Add Environment object to Host and fix the GCC smartquotes trouble seen on the commit-queue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499549</commentid>
    <comment_count>1</comment_count>
      <attachid>114414</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-09 17:54:53 -0800</bug_when>
    <thetext>Created attachment 114414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499554</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-09 18:04:04 -0800</bug_when>
    <thetext>Once this is in, hopefully we can run the test-webkitpy tests on the commit-queue again, and we can get rid of the evironment overrides in start-queue.sh which are breaking the cq for folks with unicode names. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499561</commentid>
    <comment_count>3</comment_count>
      <attachid>114414</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-09 18:09:43 -0800</bug_when>
    <thetext>Comment on attachment 114414
Patch

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

&gt; Tools/Scripts/webkitpy/common/system/environment_mock.py:38
&gt; +    @classmethod
&gt; +    def disable_gcc_smartquotes(self, env):

I think you want the Host to vend your a mutable Environment object that has a getter that returns the env dictionary.  The MockHost can then vend you a legit Environment object with a dictionary initialized to something independent of the actual environment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508450</commentid>
    <comment_count>4</comment_count>
      <attachid>116438</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-23 15:15:41 -0800</bug_when>
    <thetext>Created attachment 116438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508461</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-23 15:23:55 -0800</bug_when>
    <thetext>Committed r101107: &lt;http://trac.webkit.org/changeset/101107&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508482</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-23 16:20:41 -0800</bug_when>
    <thetext>Adam: Would you try removing the envionment hack in the ews/cq servers now that this has landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508505</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-23 16:57:01 -0800</bug_when>
    <thetext>&gt; Adam: Would you try removing the envionment hack in the ews/cq servers now that this has landed?

Sure, although I&apos;ll probably wait until after Thanksgiving so I don&apos;t have to do any crisis management over the holiday weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509867</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-28 09:01:41 -0800</bug_when>
    <thetext>This got rolled out in bug 73062.  Fixing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509965</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-28 11:00:13 -0800</bug_when>
    <thetext>Committed r101266: &lt;http://trac.webkit.org/changeset/101266&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114414</attachid>
            <date>2011-11-09 17:54:53 -0800</date>
            <delta_ts>2011-11-23 15:15:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71983-20111109175452.patch</filename>
            <type>text/plain</type>
            <size>22022</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3OTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NzY3ODNjMzI3YWI2NTdiMmUzNGVlODgzY2FmY2ZjZWVi
MmMxYTdkLi4zZjdkMWNhZmZlNTgzMjEyNWE5Zjg0ZmY0OWZjNTIzYmIyYzdiZmM3IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjgg
QEAKIDIwMTEtMTEtMDkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAg
IEFkZCBFbnZpcm9ubWVudCBvYmplY3QgdG8gSG9zdCBhbmQgZml4IHRoZSBHQ0Mgc21hcnRxdW90
ZXMgdHJvdWJsZSBzZWVuIG9uIHRoZSBjb21taXQtcXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UnbGwgYWRkIG1vcmUgY29kZSB0byBFbnZpcm9u
bWVudCBvdmVydGltZSwKKyAgICAgICAgYWxsb3dpbmcgdXMgdG8gbW9jayBvdXQgbW9yZSBvZiBv
dXIgZGlyZWN0IGludGVyYWN0aW9ucyB3aXRoIG9zLmVudmlyb24uCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhbHNvIG1ha2VzIHJ1bl9jb21tYW5kIHByaW50IHRoZSBwYXNzZWQgaW4gZW52aXJvbm1l
bnQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50LnB5OiBD
b3BpZWQgZnJvbSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50X21vY2su
cHk6IENvcGllZCBmcm9tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5w
eS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZW52aXJvbm1lbnRf
dW5pdHRlc3QucHk6IENvcGllZCBmcm9tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9idWlsZC5weS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhl
Y3V0aXZlLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVj
dXRpdmVfbW9jay5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dlYmtpdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dlYmtpdF91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL2J1aWxkLnB5OgorCisyMDExLTExLTA5ICBFcmljIFNlaWRlbCAgPGVyaWNA
d2Via2l0Lm9yZz4KKwogICAgICAgICBSZW1vdmUgdGhlIGNvbmNlcHQgb2YgcGxhdGZvcm0tZGVw
ZW5kZW50IHVuaXR0ZXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzE5NjMKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vaG9zdF9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdF9tb2Nr
LnB5CmluZGV4IGQzNTQ1Y2JjYmUzMzE1ZGI4Zjk5YmRhM2Q5NzRiZDk5MDIyNTg1OTYuLjc0YjI2
YTJhODI0NmYxNTY0MGNmNWZiMTA3YTUzOGI1N2QyOTRjZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3RfbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHkKQEAgLTMxLDYgKzMxLDcgQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uY2hlY2tvdXQuc2NtLnNjbV9tb2NrIGltcG9ydCBNb2NrU0NNCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuYnVnemlsbGEuYnVnemlsbGFfbW9jayBpbXBvcnQgTW9ja0J1Z3ppbGxh
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVpbGRib3QuYnVpbGRib3RfbW9jayBpbXBvcnQg
TW9ja0J1aWxkQm90CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQud2ViX21vY2sgaW1wb3J0IE1v
Y2tXZWIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5lbnZpcm9ubWVudF9tb2NrIGltcG9y
dCBNb2NrRW52aXJvbm1lbnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVf
bW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZp
bGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5wbGF0Zm9ybWluZm9fbW9jayBpbXBvcnQgTW9ja1BsYXRmb3JtSW5mbwpAQCAtNDQs
NiArNDUsNyBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1wb3J0
IFBvcnRGYWN0b3J5CiAKIGNsYXNzIE1vY2tIb3N0KG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ19leGVjdXRpdmU9RmFsc2UsIGV4ZWN1dGl2ZV90aHJvd3Nfd2hlbl9ydW49Tm9u
ZSk6CisgICAgICAgIHNlbGYuZW52aXJvbm1lbnQgPSBNb2NrRW52aXJvbm1lbnQoKQogICAgICAg
ICBzZWxmLmV4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1sb2dfZXhlY3V0aXZl
LCBzaG91bGRfdGhyb3dfd2hlbl9ydW49ZXhlY3V0aXZlX3Rocm93c193aGVuX3J1bikKICAgICAg
ICAgc2VsZi51c2VyID0gTW9ja1VzZXIoKQogICAgICAgICBzZWxmLnBsYXRmb3JtID0gTW9ja1Bs
YXRmb3JtSW5mbygpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vZW52aXJvbm1lbnQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZW52aXJvbm1lbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRiNTgyMGI2ZTg1MTkzZWEyMTlkY2NmZmVk
YWVhMDRjZjhkZTYxMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9lbnZpcm9ubWVudC5weQpAQCAtMCwwICsxLDQ2IEBACisjIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworaW1wb3J0IG9zCisKKworIyBGSVhNRTogRXZlbnR1YWxseSB3ZSBwbGFuIHRvIGFi
c3RyYWN0IGFsbCBkZWFsaW5ncyB3aXRoIG9zLmVudmlyb24KKyMgdGhyb3VnaCB0aGlzIGNsYXNz
IGZvciBlYXN5IG1vY2tpbmcvdGVzdGluZy4gIEZvciBub3cgaXQncyBqdXN0CisjIGEgY29sbGVj
dGlvbiBvZiBoZWxwZXIgZnVuY3Rpb25zLgorY2xhc3MgRW52aXJvbm1lbnQob2JqZWN0KToKKyAg
ICBAY2xhc3NtZXRob2QKKyAgICBkZWYgY29weV9jdXJyZW50X2Vudmlyb24oc2VsZik6CisgICAg
ICAgIHJldHVybiBvcy5lbnZpcm9uLmNvcHkoKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm
IGRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKHNlbGYsIGVudik6CisgICAgICAgICMgVGVjaG5pY2Fs
bHkgd2Ugb25seSBuZWVkIHRvIHNldCBMQ19DVFlQRSB0byBkaXNhYmxlIGN1cnJlbnQKKyAgICAg
ICAgIyBzbWFydHF1b3RlIGJlaGF2aW9yOiBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hv
d19idWcuY2dpP2lkPTM4MzYzCisgICAgICAgICMgQXBwbGUncyBYQ29kZSBzZXRzIExDX0FMTCBp
bnN0ZWFkLCBwcm9iYWJseSB0byBiZSBmdXR1cmUtcHJvb2YuCisgICAgICAgIGVudlsnTENfQUxM
J10gPSAnQycKKyAgICAgICAgcmV0dXJuIGVudgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50X21vY2sucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZW52aXJvbm1lbnRfbW9jay5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZjhhZjA4MmNiYjRiMzhkYzY2NzFjNmFlMDY4NDVkNDk4Yzg0ZDYyCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50X21vY2su
cHkKQEAgLTAsMCArMSw0MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0
OgorIworIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorIyBkaXN0cmlidXRpb24uCisjICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gLmVudmlyb25tZW50IGlt
cG9ydCBFbnZpcm9ubWVudAorCisKK2NsYXNzIE1vY2tFbnZpcm9ubWVudChvYmplY3QpOgorICAg
IEBjbGFzc21ldGhvZAorICAgIGRlZiBjb3B5X2N1cnJlbnRfZW52aXJvbihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHsiTU9DS19FTlZJUk9OX0NPUFkiOiAnMSd9CisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoc2VsZiwgZW52KToKKyAgICAgICAgIyBG
SVhNRTogVGhpcyBmZWVscyB3cm9uZywgYnV0IGl0J3MgdW5jbGVhciBob3cgdG8gdGVzdAorICAg
ICAgICAjIHRoaXMgZnVuY3Rpb24gd2hpbGUgYWxzbyBtb2NraW5nIG91dCBjb3B5X2N1cnJlbnRf
ZW52aXJvbi4KKyAgICAgICAgcmV0dXJuIEVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVv
dGVzKGVudikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3Rl
bS9lbnZpcm9ubWVudF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9lbnZpcm9ubWVudF91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGU2MDljZjdkMDIw
YTE5Mzc4NDc2YjhmOTBlZjI4ZWQ3ZGQzZmE0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50X3VuaXR0ZXN0LnB5CkBAIC0w
LDAgKzEsMzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlz
dHJpYnV0aW9uLgorIyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSAuZW52
aXJvbm1lbnQgaW1wb3J0IEVudmlyb25tZW50CisKKworY2xhc3MgRW52aXJvbm1lbnRUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9kaXNhYmxlX2djY19zbWFydHF1b3Rlcyhz
ZWxmKToKKyAgICAgICAgZW52ID0gRW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMo
e30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW52WydMQ19BTEwnXSwgJ0MnKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKaW5kZXgg
ZmJiN2VmMDY3YjNkNTAzNWQ2ZTY1MmNlMjJmMjgzYTE1OTIwZTExYi4uNTYxZDhjYTgwOWE5NWZl
M2Y2MDJmZDM5YjU2ZGE1ZGQ2YTVlNmY4YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CkBAIC0xMDgsNyArMTA4LDcgQEAgY2xhc3Mg
RXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICMgc2hvd3MgdXAgb24gTWFjIGFuZCBMaW51eC4K
ICAgICAgICAgcmV0dXJuIHN5cy5wbGF0Zm9ybSBub3QgaW4gKCd3aW4zMicsICdjeWd3aW4nKQog
Ci0gICAgZGVmIF9ydW5fY29tbWFuZF93aXRoX3RlZWRfb3V0cHV0KHNlbGYsIGFyZ3MsIHRlZWRf
b3V0cHV0LCBjd2Q9Tm9uZSk6CisgICAgZGVmIF9ydW5fY29tbWFuZF93aXRoX3RlZWRfb3V0cHV0
KHNlbGYsIGFyZ3MsIHRlZWRfb3V0cHV0LCAqKmt3YXJncyk6CiAgICAgICAgIGFyZ3MgPSBtYXAo
dW5pY29kZSwgYXJncykgICMgUG9wZW4gd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYXJncyBh
cmUgbm9uLXN0cmluZ3MgKGxpa2UgaW50KCkpCiAgICAgICAgIGFyZ3MgPSBtYXAoc2VsZi5fZW5j
b2RlX2FyZ3VtZW50X2lmX25lZWRlZCwgYXJncykKIApAQCAtMTE2LDcgKzExNiw3IEBAIGNsYXNz
IEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGRvdXQ9c2VsZi5QSVBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRl
cnI9c2VsZi5TVERPVVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3Nl
X2Zkcz1zZWxmLl9zaG91bGRfY2xvc2VfZmRzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGN3ZD1jd2QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQogCiAgICAgICAgICMgVXNlIG91ciBvd24gY3VzdG9tIHdhaXQgbG9vcCBiZWNhdXNl
IFBvcGVuIGlnbm9yZXMgYSB0ZWUnZAogICAgICAgICAjIHN0ZGVyci9zdGRvdXQuCkBAIC0xMzYs
NyArMTM2LDcgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgIyBjYXB0dXJlIHRoZWly
IG91dHB1dCBhbmQgcHJpbnQgb3V0IHRvIHN0ZGluLiAgVXNlZnVsIGZvciB0aGluZ3MKICAgICAj
IGxpa2UgImJ1aWxkLXdlYmtpdCIgd2hlcmUgd2Ugd2FudCB0byBkaXNwbGF5IHRvIHRoZSB1c2Vy
IHRoYXQgd2UncmUgYnVpbGRpbmcKICAgICAjIGJ1dCBzdGlsbCBoYXZlIHRoZSBvdXRwdXQgdG8g
c3R1ZmYgaW50byBhIGxvZyBmaWxlLgotICAgIGRlZiBydW5fYW5kX3Rocm93X2lmX2ZhaWwoc2Vs
ZiwgYXJncywgcXVpZXQ9RmFsc2UsIGRlY29kZV9vdXRwdXQ9VHJ1ZSwgY3dkPU5vbmUpOgorICAg
IGRlZiBydW5fYW5kX3Rocm93X2lmX2ZhaWwoc2VsZiwgYXJncywgcXVpZXQ9RmFsc2UsIGRlY29k
ZV9vdXRwdXQ9VHJ1ZSwgKiprd2FyZ3MpOgogICAgICAgICAjIENhY2hlIHRoZSBjaGlsZCdzIG91
dHB1dCBsb2NhbGx5IHNvIGl0IGNhbiBiZSB1c2VkIGZvciBlcnJvciByZXBvcnRzLgogICAgICAg
ICBjaGlsZF9vdXRfZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKICAgICAgICAgdGVlX3N0ZG91
dCA9IHN5cy5zdGRvdXQKQEAgLTE0NCw3ICsxNDQsNyBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0
KToKICAgICAgICAgICAgIGRldl9udWxsID0gb3Blbihvcy5kZXZudWxsLCAidyIpICAjIEZJWE1F
OiBEb2VzIHRoaXMgbmVlZCBhbiBlbmNvZGluZz8KICAgICAgICAgICAgIHRlZV9zdGRvdXQgPSBk
ZXZfbnVsbAogICAgICAgICBjaGlsZF9zdGRvdXQgPSB0ZWUoY2hpbGRfb3V0X2ZpbGUsIHRlZV9z
dGRvdXQpCi0gICAgICAgIGV4aXRfY29kZSA9IHNlbGYuX3J1bl9jb21tYW5kX3dpdGhfdGVlZF9v
dXRwdXQoYXJncywgY2hpbGRfc3Rkb3V0LCBjd2Q9Y3dkKQorICAgICAgICBleGl0X2NvZGUgPSBz
ZWxmLl9ydW5fY29tbWFuZF93aXRoX3RlZWRfb3V0cHV0KGFyZ3MsIGNoaWxkX3N0ZG91dCwgKipr
d2FyZ3MpCiAgICAgICAgIGlmIHF1aWV0OgogICAgICAgICAgICAgZGV2X251bGwuY2xvc2UoKQog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0
aXZlX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0
aXZlX21vY2sucHkKaW5kZXggMDRjMDEyZWExZTkxOWJjNmM5ODZiMzA1ZGE1YzU0YzQ0MmYyOTYz
ZS4uOGIzOTY2OGM5NTczN2Q2MzMyYjU3M2EyYjQ4MGM5NDAwNzdhNmZlMyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5w
eQpAQCAtNDQsOSArNDQsMTIgQEAgY2xhc3MgTW9ja0V4ZWN1dGl2ZShvYmplY3QpOgogICAgIGRl
ZiBjaGVja19ydW5uaW5nX3BpZChzZWxmLCBwaWQpOgogICAgICAgICByZXR1cm4gcGlkIGluIHNl
bGYuX3J1bm5pbmdfcGlkcwogCi0gICAgZGVmIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbChzZWxmLCBh
cmdzLCBxdWlldD1GYWxzZSwgY3dkPU5vbmUpOgorICAgIGRlZiBydW5fYW5kX3Rocm93X2lmX2Zh
aWwoc2VsZiwgYXJncywgcXVpZXQ9RmFsc2UsIGN3ZD1Ob25lLCBlbnY9Tm9uZSk6CiAgICAgICAg
IGlmIHNlbGYuX3Nob3VsZF9sb2c6Ci0gICAgICAgICAgICBsb2coIk1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiAlcywgY3dkPSVzIiAlIChhcmdzLCBjd2QpKQorICAgICAgICAgICAgZW52X3N0
cmluZyA9ICIiCisgICAgICAgICAgICBpZiBlbnY6CisgICAgICAgICAgICAgICAgZW52X3N0cmlu
ZyA9ICIsIGVudj0lcyIgJSBlbnYKKyAgICAgICAgICAgIGxvZygiTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6ICVzLCBjd2Q9JXMlcyIgJSAoYXJncywgY3dkLCBlbnZfc3RyaW5nKSkKICAgICAg
ICAgaWYgc2VsZi5fc2hvdWxkX3Rocm93X3doZW5fcnVuLmludGVyc2VjdGlvbihhcmdzKToKICAg
ICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKCJFeGNlcHRpb24gZm9yICVzIiAlIGFyZ3MpCiAg
ICAgICAgIHJldHVybiAiTU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJvY2VzcyIKQEAgLTU4LDEwICs2
MSwxNCBAQCBjbGFzcyBNb2NrRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
IGVycm9yX2hhbmRsZXI9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX2V4aXRfY29k
ZT1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3N0ZGVycj1UcnVlLAotICAgICAg
ICAgICAgICAgICAgICBkZWNvZGVfb3V0cHV0PUZhbHNlKToKKyAgICAgICAgICAgICAgICAgICAg
ZGVjb2RlX291dHB1dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgZW52PU5vbmUpOgogICAg
ICAgICBhc3NlcnQoaXNpbnN0YW5jZShhcmdzLCBsaXN0KSBvciBpc2luc3RhbmNlKGFyZ3MsIHR1
cGxlKSkKICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2xvZzoKLSAgICAgICAgICAgIGxvZygiTU9D
SyBydW5fY29tbWFuZDogJXMsIGN3ZD0lcyIgJSAoYXJncywgY3dkKSkKKyAgICAgICAgICAgIGVu
dl9zdHJpbmcgPSAiIgorICAgICAgICAgICAgaWYgZW52OgorICAgICAgICAgICAgICAgIGVudl9z
dHJpbmcgPSAiLCBlbnY9JXMiICUgZW52CisgICAgICAgICAgICBsb2coIk1PQ0sgcnVuX2NvbW1h
bmQ6ICVzLCBjd2Q9JXMlcyIgJSAoYXJncywgY3dkLCBlbnZfc3RyaW5nKSkKICAgICAgICAgaWYg
c2VsZi5fc2hvdWxkX3Rocm93OgogICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IoIk1PQ0sg
U2NyaXB0RXJyb3IiKQogICAgICAgICByZXR1cm4gIk1PQ0sgb3V0cHV0IG9mIGNoaWxkIHByb2Nl
c3MiCkBAIC05Miw3ICs5OSw4IEBAIGNsYXNzIE1vY2tFeGVjdXRpdmUyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIGVycm9yX2hhbmRsZXI9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuX2V4aXRfY29kZT1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3N0ZGVy
cj1UcnVlLAotICAgICAgICAgICAgICAgICAgICBkZWNvZGVfb3V0cHV0PUZhbHNlKToKKyAgICAg
ICAgICAgICAgICAgICAgZGVjb2RlX291dHB1dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg
ZW52PU5vbmUpOgogICAgICAgICBhc3NlcnQoaXNpbnN0YW5jZShhcmdzLCBsaXN0KSBvciBpc2lu
c3RhbmNlKGFyZ3MsIHR1cGxlKSkKICAgICAgICAgaWYgc2VsZi5fZXhjZXB0aW9uOgogICAgICAg
ICAgICAgcmFpc2Ugc2VsZi5fZXhjZXB0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0LnB5CmluZGV4IDRkMjUxOTU1MTFmNjNjNzJmNDY1
NGY5MWU1NmUwMmIwNThhZDgzZmYuLjE4ZDRkNDZjMjRhNjc2MzI5OGNlMzc1N2MwNGQ1NGFmMDUw
MTYwZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2Via2l0LnB5CkBAIC00MSw2ICs0MSw3IEBAIGltcG9ydCB0aW1lCiAKIGZyb20gd2Via2l0
cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAogZnJvbSB3ZWJraXRweS5jb21tb24u
bmV0LmJ1aWxkYm90IGltcG9ydCBCdWlsZEJvdAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmVudmlyb25tZW50IGltcG9ydCBFbnZpcm9ubWVudAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgYnVpbGRlcnMsIHNlcnZlcl9wcm9jZXNzLCBQb3J0
LCBEcml2ZXIsIERyaXZlck91dHB1dAogCkBAIC04MCwxMSArODEsNiBAQCBjbGFzcyBXZWJLaXRQ
b3J0KFBvcnQpOgogICAgICAgICBleHBlY3RhdGlvbnNfZGlyZWN0b3J5ID0gc2VsZi5fd2syX3Bv
cnRfbmFtZSgpIGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVyJykgZWxzZSBz
ZWxmLnBvcnRfbmFtZQogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
X3dlYmtpdF9iYXNlbGluZV9wYXRoKGV4cGVjdGF0aW9uc19kaXJlY3RvcnkpLCAndGVzdF9leHBl
Y3RhdGlvbnMudHh0JykKIAotICAgIGRlZiBfZHJpdmVyX2J1aWxkX3NjcmlwdF9uYW1lKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpOgotICAg
ICAgICAgICAgcmV0dXJuICJidWlsZC13ZWJraXR0ZXN0cnVubmVyIgotICAgICAgICByZXR1cm4g
ImJ1aWxkLWR1bXByZW5kZXJ0cmVlIgotCiAgICAgZGVmIF9wb3J0X2ZsYWdfZm9yX3NjcmlwdHMo
c2VsZik6CiAgICAgICAgICMgVGhpcyBpcyBvdmVycnJpZGVuIGJ5IHBvcnRzIHdoaWNoIG5lZWQg
YSBmbGFnIHBhc3NlZCB0byBzY3JpcHRzIHRvIGRpc3Rpbmd1aXNoIHRoZSB1c2Ugb2YgdGhhdCBw
b3J0LgogICAgICAgICAjIEZvciBleGFtcGxlIC0tcXQgb24gbGludXgsIHNpbmNlIGEgdXNlciBt
aWdodCBoYXZlIGJvdGggR3RrIGFuZCBRdCBsaWJyYXJpZXMgaW5zdGFsbGVkLgpAQCAtMTAxLDI0
ICs5NywyNyBAQCBjbGFzcyBXZWJLaXRQb3J0KFBvcnQpOgogICAgICAgICAgICAgY29uZmlnX2Fy
Z3MuYXBwZW5kKHBvcnRfZmxhZykKICAgICAgICAgcmV0dXJuIGNvbmZpZ19hcmdzCiAKLSAgICBk
ZWYgX3J1bl9zY3JpcHQoc2VsZiwgc2NyaXB0X25hbWUsIGFyZ3M9Tm9uZSwgaW5jbHVkZV9jb25m
aWd1cmF0aW9uX2FyZ3VtZW50cz1UcnVlLCBkZWNvZGVfb3V0cHV0PVRydWUpOgorICAgIGRlZiBf
cnVuX3NjcmlwdChzZWxmLCBzY3JpcHRfbmFtZSwgYXJncz1Ob25lLCBpbmNsdWRlX2NvbmZpZ3Vy
YXRpb25fYXJndW1lbnRzPVRydWUsIGRlY29kZV9vdXRwdXQ9VHJ1ZSwgZW52PU5vbmUpOgogICAg
ICAgICBydW5fc2NyaXB0X2NvbW1hbmQgPSBbc2VsZi5fY29uZmlnLnNjcmlwdF9wYXRoKHNjcmlw
dF9uYW1lKV0KICAgICAgICAgaWYgaW5jbHVkZV9jb25maWd1cmF0aW9uX2FyZ3VtZW50czoKICAg
ICAgICAgICAgIHJ1bl9zY3JpcHRfY29tbWFuZC5leHRlbmQoc2VsZi5fYXJndW1lbnRzX2Zvcl9j
b25maWd1cmF0aW9uKCkpCiAgICAgICAgIGlmIGFyZ3M6CiAgICAgICAgICAgICBydW5fc2NyaXB0
X2NvbW1hbmQuZXh0ZW5kKGFyZ3MpCi0gICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRpdmUucnVu
X2NvbW1hbmQocnVuX3NjcmlwdF9jb21tYW5kLCBjd2Q9c2VsZi5fY29uZmlnLndlYmtpdF9iYXNl
X2RpcigpLCBkZWNvZGVfb3V0cHV0PWRlY29kZV9vdXRwdXQpCisgICAgICAgIHJldHVybiBzZWxm
Ll9leGVjdXRpdmUucnVuX2NvbW1hbmQocnVuX3NjcmlwdF9jb21tYW5kLCBjd2Q9c2VsZi5fY29u
ZmlnLndlYmtpdF9iYXNlX2RpcigpLCBkZWNvZGVfb3V0cHV0PWRlY29kZV9vdXRwdXQsIGVudj1l
bnYpCiAKICAgICBkZWYgX2J1aWxkX2RyaXZlcihzZWxmKToKKyAgICAgICAgZW52ID0gc2VsZi5o
b3N0LmVudmlyb25tZW50LmNvcHlfY3VycmVudF9lbnZpcm9uKCkKKyAgICAgICAgZW52ID0gc2Vs
Zi5ob3N0LmVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKGVudikKKwogICAgICAg
ICAjIEZJWE1FOiBXZSBidWlsZCBib3RoIER1bXBSZW5kZXJUcmVlIGFuZCBXZWJLaXRUZXN0UnVu
bmVyIGZvcgogICAgICAgICAjIFdlYktpdFRlc3RSdW5uZXIgcnVucyBiZWNhdXNlIER1bXBSZW5k
ZXJUcmVlIHN0aWxsIGluY2x1ZGVzCiAgICAgICAgICMgdGhlIER1bXBSZW5kZXJUcmVlU3VwcG9y
dCBtb2R1bGUgYW5kIHRoZSBUZXN0TmV0c2NhcGVQbHVnaW4uCiAgICAgICAgICMgVGhlc2UgdHdv
IHByb2plY3RzIHNob3VsZCBiZSBmYWN0b3JlZCBvdXQgaW50byB0aGVpciBvd24KICAgICAgICAg
IyBwcm9qZWN0cy4KICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcnVuX3NjcmlwdCgi
YnVpbGQtZHVtcHJlbmRlcnRyZWUiKQorICAgICAgICAgICAgc2VsZi5fcnVuX3NjcmlwdCgiYnVp
bGQtZHVtcHJlbmRlcnRyZWUiLCBlbnY9ZW52KQogICAgICAgICAgICAgaWYgc2VsZi5nZXRfb3B0
aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKLSAgICAgICAgICAgICAgICBzZWxmLl9ydW5fc2Ny
aXB0KCJidWlsZC13ZWJraXR0ZXN0cnVubmVyIikKKyAgICAgICAgICAgICAgICBzZWxmLl9ydW5f
c2NyaXB0KCJidWlsZC13ZWJraXR0ZXN0cnVubmVyIiwgZW52PWVudikKICAgICAgICAgZXhjZXB0
IFNjcmlwdEVycm9yOgogICAgICAgICAgICAgX2xvZy5lcnJvcigiRmFpbGVkIHRvIGJ1aWxkICVz
IiAlIHNlbGYuZHJpdmVyX25hbWUoKSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtp
dF91bml0dGVzdC5weQppbmRleCBmYWRkNzRjNGQ2ZTljMTQzYjZlOWQ3OTcxZWE0MTQ0MGFkZTIw
NjA4Li41YWM4MWI2NjQ1ZTVkMWVlM2Q2NGZmOWQwNjYyMTc1ZDQwOWZmNGU5IDEwMDc1NQotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtp
dF91bml0dGVzdC5weQpAQCAtMTc3LDE4ICsxNzcsMTggQEAgQlVHX1NLSVBQRUQgU0tJUCA6IG1l
ZGlhID0gRkFJTCIiIikKICAgICAgICAgIyBEZWxheSBzZXR0aW5nIF9leGVjdXRpdmUgdG8gYXZv
aWQgbG9nZ2luZyBkdXJpbmcgY29uc3RydWN0aW9uCiAgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9
IE1vY2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1UcnVlKQogICAgICAgICBwb3J0Ll9vcHRpb25zID0g
TW9ja09wdGlvbnMoY29uZmlndXJhdGlvbj0iUmVsZWFzZSIpICAjIFRoaXMgc2hvdWxkIG5vdCBi
ZSBuZWNlc3NhcnksIGJ1dCBJIHRoaW5rIFRlc3RXZWJLaXRQb3J0IGlzIGFjdHVhbGx5IHJlYWRp
bmcgZnJvbSBkaXNrIChhbmQgdGh1cyBkZXRlY3RzIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24p
LgotICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydUb29scy9T
Y3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlJywgJy0tcmVsZWFzZSddLCBjd2Q9L21vY2stY2hl
Y2tvdXRcbiIKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsn
VG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZScsICctLXJlbGVhc2UnXSwgY3dkPS9t
b2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycsICdNT0NLX0VOVklST05fQ09QWSc6ICcx
J31cbiIKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dHB1dC5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBwb3J0Ll9idWlsZF9kcml2ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpKQog
CiAgICAgICAgICMgTWFrZSBzdXJlIHdoZW4gcGFzc2VkIC0td2Via2l0LXRlc3QtcnVubmVyIHdl
YiBidWlsZCB0aGUgcmlnaHQgdG9vbC4KICAgICAgICAgcG9ydC5fb3B0aW9ucyA9IE1vY2tPcHRp
b25zKHdlYmtpdF90ZXN0X3J1bm5lcj1UcnVlLCBjb25maWd1cmF0aW9uPSJSZWxlYXNlIikKLSAg
ICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsnVG9vbHMvU2NyaXB0
cy9idWlsZC1kdW1wcmVuZGVydHJlZScsICctLXJlbGVhc2UnXSwgY3dkPS9tb2NrLWNoZWNrb3V0
XG5NT0NLIHJ1bl9jb21tYW5kOiBbJ1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5l
cicsICctLXJlbGVhc2UnXSwgY3dkPS9tb2NrLWNoZWNrb3V0XG4iCisgICAgICAgIGV4cGVjdGVk
X3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJl
bmRlcnRyZWUnLCAnLS1yZWxlYXNlJ10sIGN3ZD0vbW9jay1jaGVja291dCwgZW52PXsnTENfQUxM
JzogJ0MnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9XG5NT0NLIHJ1bl9jb21tYW5kOiBbJ1Rv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcicsICctLXJlbGVhc2UnXSwgY3dkPS9t
b2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycsICdNT0NLX0VOVklST05fQ09QWSc6ICcx
J31cbiIKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dHB1dC5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBwb3J0Ll9idWlsZF9kcml2ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpKQog
CiAgICAgICAgICMgTWFrZSBzdXJlIHRoYXQgZmFpbHVyZSB0byBidWlsZCByZXR1cm5zIEZhbHNl
LgogICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlKHNob3VsZF9sb2c9VHJ1
ZSwgc2hvdWxkX3Rocm93PVRydWUpCiAgICAgICAgICMgQmVjYXVzZSBXSzIgY3VycmVudGx5IGhh
cyB0byBidWlsZCBib3RoIHdlYmtpdHRlc3RydW5uZXIgYW5kIERSVCwgaWYgRFJUIGZhaWxzLCB0
aGF0J3MgdGhlIG9ubHkgb25lIGl0IHRyaWVzLgotICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAi
TU9DSyBydW5fY29tbWFuZDogWydUb29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlJywg
Jy0tcmVsZWFzZSddLCBjd2Q9L21vY2stY2hlY2tvdXRcbiIKKyAgICAgICAgZXhwZWN0ZWRfc3Rk
ZXJyID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVy
dHJlZScsICctLXJlbGVhc2UnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAn
QycsICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ31cbiIKICAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShvdXRwdXQuYXNzZXJ0X291dHB1dHMoc2VsZiwgcG9ydC5fYnVpbGRfZHJpdmVyLCBleHBlY3Rl
ZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKSkKIAogICAgIGRlZiBfYXNzZXJ0X2NvbmZpZ19maWxl
X2Zvcl9wbGF0Zm9ybShzZWxmLCBwb3J0LCBwbGF0Zm9ybSwgY29uZmlnX2ZpbGUpOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3Vu
aXR0ZXN0LnB5CmluZGV4IDI0ZTY5ODFlYzZkNDMzODNkZTQ2MTAyNzNmMjZmN2JjOGQ3M2I0YWMu
LmNiNTNmODhkNTBjMmY1ZTk2YzlkODI1YjU5ZDdjYzQyYjk4ZjQ1YzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRl
c3QucHkKQEAgLTEzMiw3ICsxMzIsNyBAQCBNT0NLIHJ1bl9jb21tYW5kOiBbJ3J1YnknLCAnLUkn
LCAnL21vY2stY2hlY2tvdXQvV2Vic2l0ZXMvYnVncy53ZWJraXQub3JnL1ByZXR0eQogTU9DSzog
dXNlci5vcGVuX3VybDogZmlsZTovLy4uLgogV2FzIHRoYXQgZGlmZiBjb3JyZWN0PwogQnVpbGRp
bmcgV2ViS2l0Ci1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLWJ1aWxkLXdlYmtp
dCddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21v
Y2stYnVpbGQtd2Via2l0J10sIGN3ZD0vbW9jay1jaGVja291dCwgZW52PXsnTENfQUxMJzogJ0Mn
LCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CiBSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzCiBN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydtb2NrLXRlc3Qtd2Via2l0cHknXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CmluZGV4IGY2N2RiMjFiOGRkNDM0Y2JkOTdiNjliMTRh
OTMzMGE5NDI1OTA2ODEuLjI0NTk1YTYzMjdmMmI1MDgyYjUxOGQxYmM0YTU3OGQxOTI1OTJlMjMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKQEAgLTQxLDcg
KzQxLDEyIEBAIGNsYXNzIEJ1aWxkKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIF0KIAogICAgIGRl
ZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSk6Ci0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZl
LnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChzZWxmLl90b29sLnBvcnQoKS5idWlsZF93ZWJraXRfY29t
bWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSksIHNlbGYuX29wdGlvbnMucXVpZXQsIGN3ZD1z
ZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisgICAgICAgIGVudiA9IHNlbGYuX3Rvb2wu
ZW52aXJvbm1lbnQuY29weV9jdXJyZW50X2Vudmlyb24oKQorICAgICAgICBlbnYgPSBzZWxmLl90
b29sLmVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKGVudikKKworICAgICAgICBi
dWlsZF93ZWJraXRfY29tbWFuZCA9IHNlbGYuX3Rvb2wucG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21t
YW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2
ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfd2Via2l0X2NvbW1hbmQsIHNlbGYuX29wdGlv
bnMucXVpZXQsCisgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290
LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9vcHRpb25zLmJ1aWxkOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116438</attachid>
            <date>2011-11-23 15:15:41 -0800</date>
            <delta_ts>2011-11-23 15:21:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71983-20111123151607.patch</filename>
            <type>text/plain</type>
            <size>20271</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjk5NmIzZjM5ZWQ0ZTg2ODRlZmI4YzZiMWMzMGE5MGM4
ZmMyYzcwZS4uOGE1YmYxYzAzNjkxZGY3ODJiZTg2MTRhZWZlOGUwNTVjMGY0ZDczMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDExLTExLTIzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgRW52aXJvbm1lbnQgb2JqZWN0IHRvIEhvc3QgYW5kIGZpeCB0aGUgR0NDIHNtYXJ0cXVv
dGVzIHRyb3VibGUgc2VlbiBvbiB0aGUgY29tbWl0LXF1ZXVlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlJ2xsIGFkZCBtb3JlIGNvZGUgdG8gRW52aXJv
bm1lbnQgb3ZlcnRpbWUsCisgICAgICAgIGFsbG93aW5nIHVzIHRvIG1vY2sgb3V0IG1vcmUgb2Yg
b3VyIGRpcmVjdCBpbnRlcmFjdGlvbnMgd2l0aCBvcy5lbnZpcm9uLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWxzbyBtYWtlcyBydW5fY29tbWFuZCBwcmludCB0aGUgcGFzc2VkIGluIGVudmlyb25t
ZW50LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdF9tb2NrLnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9lbnZpcm9ubWVudC5weTog
Q29waWVkIGZyb20gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5Lgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9lbnZpcm9ubWVudF9tb2Nr
LnB5OiBDb3BpZWQgZnJvbSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQu
cHkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50
X3VuaXR0ZXN0LnB5OiBDb3BpZWQgZnJvbSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvYnVpbGQucHkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhl
Y3V0aXZlX21vY2sucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXQucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXRfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9idWlsZC5weToKKwogMjAxMS0xMS0yMyAgVG9yIEFybmUgVmVzdGLDuCAg
PHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBSZS1nZW5lcmF0ZSBR
dFdlYktpdCBBUEkgZm9yd2FyZGluZyBoZWFkZXJzIHdoZW4gQVBJIGNoYW5nZXMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9ob3N0LnB5CmluZGV4IDRkZTk1YjMxMWQ3ZDllYzZkMWNlZGYxNGRj
NmViNzcwOTFlZjdjODguLmRmYWZkMzhjYWIxYzc0MDFjMjQ0NWJlMjIyYjkwZDdhZjQ1ODU1Y2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weQpAQCAtMjgsNiArMjgsNyBAQAog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0IGltcG9ydCBDaGVja291dApAQCAtOTQsNiAr
OTUsOSBAQCBjbGFzcyBIb3N0KG9iamVjdCk6CiAgICAgICAgICAgICBleGNlcHQgT1NFcnJvciwg
ZToKICAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCdGYWlsZWQgdG8gZW5nYWdlIHN2bi5iYXQg
V2luZG93cyBoYWNrLicpCiAKKyAgICBkZWYgY29weV9jdXJyZW50X2Vudmlyb25tZW50KHNlbGYp
OgorICAgICAgICByZXR1cm4gRW52aXJvbm1lbnQob3MuZW52aXJvbi5jb3B5KCkpCisKICAgICBk
ZWYgX2luaXRpYWxpemVfc2NtKHNlbGYsIHBhdGNoX2RpcmVjdG9yaWVzPU5vbmUpOgogICAgICAg
ICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKICAgICAgICAgICAgIHNlbGYuX2VuZ2FnZV9h
d2Vzb21lX3dpbmRvd3NfaGFja3MoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vaG9zdF9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9z
dF9tb2NrLnB5CmluZGV4IGMyMjk5OWYyMzM5ZTgxNGYxNGZkYzY3YzdjYWM4NmFjZjhjMTE0YWMu
LmRmMmRhNGYzYThhMzc5YWQ3YTdmYmYzZTZiYmE1NWM4MWMzOTVkODEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3RfbW9jay5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9ob3N0X21vY2sucHkKQEAgLTMxLDYgKzMxLDcgQEAgZnJvbSB3
ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLnNjbV9tb2NrIGltcG9ydCBNb2NrU0NNCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEuYnVnemlsbGFfbW9jayBpbXBvcnQgTW9ja0J1
Z3ppbGxhCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVpbGRib3QuYnVpbGRib3RfbW9jayBp
bXBvcnQgTW9ja0J1aWxkQm90CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQud2ViX21vY2sgaW1w
b3J0IE1vY2tXZWIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5lbnZpcm9ubWVudCBpbXBv
cnQgRW52aXJvbm1lbnQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9j
ayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVz
eXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5wbGF0Zm9ybWluZm9fbW9jayBpbXBvcnQgTW9ja1BsYXRmb3JtSW5mbwpAQCAtNjYsNiAr
NjcsOSBAQCBjbGFzcyBNb2NrSG9zdChvYmplY3QpOgogCiAgICAgICAgIHNlbGYuX3dhdGNoX2xp
c3QgPSBNb2NrV2F0Y2hMaXN0KCkKIAorICAgIGRlZiBjb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQo
c2VsZik6CisgICAgICAgIHJldHVybiBFbnZpcm9ubWVudCh7Ik1PQ0tfRU5WSVJPTl9DT1BZIjog
JzEnfSkKKwogICAgIGRlZiBfaW5pdGlhbGl6ZV9zY20oc2VsZiwgcGF0Y2hfZGlyZWN0b3JpZXM9
Tm9uZSk6CiAgICAgICAgIHBhc3MKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2Vudmlyb25tZW50LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkMzQwNDg5ZWE5NjA2OTdm
YWQ3MGRhYjAyNmQ4YjU0NGUxNTQ0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZW52aXJvbm1lbnQucHkKQEAgLTAsMCArMSw0MSBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4K
KyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKworY2xhc3MgRW52aXJvbm1lbnQob2JqZWN0KToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgZW52PU5vbmUpOgorICAgICAgICBzZWxmLmVudiA9IGVudiBvciB7fQor
CisgICAgZGVmIHRvX2RpY3Rpb25hcnkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmVudgor
CisgICAgZGVmIGRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKHNlbGYpOgorICAgICAgICAjIFRlY2hu
aWNhbGx5IHdlIG9ubHkgbmVlZCB0byBzZXQgTENfQ1RZUEUgdG8gZGlzYWJsZSBjdXJyZW50Cisg
ICAgICAgICMgc21hcnRxdW90ZSBiZWhhdmlvcjogaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxh
L3Nob3dfYnVnLmNnaT9pZD0zODM2MworICAgICAgICAjIEFwcGxlJ3MgWENvZGUgc2V0cyBMQ19B
TEwgaW5zdGVhZCwgcHJvYmFibHkgdG8gYmUgZnV0dXJlLXByb29mLgorICAgICAgICBzZWxmLmVu
dlsnTENfQUxMJ10gPSAnQycKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9lbnZpcm9ubWVudF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9lbnZpcm9ubWVudF91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTU4
YjUxZGZiOGEyYmU4MjMyOWJhYTIyNTQ3NjZlMGUxMTNmNGZjCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Vudmlyb25tZW50X3VuaXR0ZXN0
LnB5CkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1l
dDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKwor
ZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IEVudmlyb25tZW50CisKKworY2xhc3MgRW52aXJvbm1l
bnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9kaXNhYmxlX2djY19zbWFy
dHF1b3RlcyhzZWxmKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBFbnZpcm9ubWVudCh7fSkKKyAg
ICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQorICAgICAgICBlbnYg
PSBlbnZpcm9ubWVudC50b19kaWN0aW9uYXJ5KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
bnZbJ0xDX0FMTCddLCAnQycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL2V4ZWN1dGl2ZS5weQppbmRleCBmYmI3ZWYwNjdiM2Q1MDM1ZDZlNjUyY2UyMmYyODNh
MTU5MjBlMTFiLi41NjFkOGNhODA5YTk1ZmUzZjYwMmZkMzliNTZkYTVkZDZhNWU2ZjhhIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkK
QEAgLTEwOCw3ICsxMDgsNyBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgIyBz
aG93cyB1cCBvbiBNYWMgYW5kIExpbnV4LgogICAgICAgICByZXR1cm4gc3lzLnBsYXRmb3JtIG5v
dCBpbiAoJ3dpbjMyJywgJ2N5Z3dpbicpCiAKLSAgICBkZWYgX3J1bl9jb21tYW5kX3dpdGhfdGVl
ZF9vdXRwdXQoc2VsZiwgYXJncywgdGVlZF9vdXRwdXQsIGN3ZD1Ob25lKToKKyAgICBkZWYgX3J1
bl9jb21tYW5kX3dpdGhfdGVlZF9vdXRwdXQoc2VsZiwgYXJncywgdGVlZF9vdXRwdXQsICoqa3dh
cmdzKToKICAgICAgICAgYXJncyA9IG1hcCh1bmljb2RlLCBhcmdzKSAgIyBQb3BlbiB3aWxsIHRo
cm93IGFuIGV4Y2VwdGlvbiBpZiBhcmdzIGFyZSBub24tc3RyaW5ncyAobGlrZSBpbnQoKSkKICAg
ICAgICAgYXJncyA9IG1hcChzZWxmLl9lbmNvZGVfYXJndW1lbnRfaWZfbmVlZGVkLCBhcmdzKQog
CkBAIC0xMTYsNyArMTE2LDcgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zZWxmLlBJUEUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zZWxmLlNURE9VVCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzPXNlbGYuX3Nob3VsZF9jbG9zZV9mZHMoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dkPWN3ZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAKICAgICAgICAgIyBVc2Ugb3VyIG93
biBjdXN0b20gd2FpdCBsb29wIGJlY2F1c2UgUG9wZW4gaWdub3JlcyBhIHRlZSdkCiAgICAgICAg
ICMgc3RkZXJyL3N0ZG91dC4KQEAgLTEzNiw3ICsxMzYsNyBAQCBjbGFzcyBFeGVjdXRpdmUob2Jq
ZWN0KToKICAgICAjIGNhcHR1cmUgdGhlaXIgb3V0cHV0IGFuZCBwcmludCBvdXQgdG8gc3RkaW4u
ICBVc2VmdWwgZm9yIHRoaW5ncwogICAgICMgbGlrZSAiYnVpbGQtd2Via2l0IiB3aGVyZSB3ZSB3
YW50IHRvIGRpc3BsYXkgdG8gdGhlIHVzZXIgdGhhdCB3ZSdyZSBidWlsZGluZwogICAgICMgYnV0
IHN0aWxsIGhhdmUgdGhlIG91dHB1dCB0byBzdHVmZiBpbnRvIGEgbG9nIGZpbGUuCi0gICAgZGVm
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbChzZWxmLCBhcmdzLCBxdWlldD1GYWxzZSwgZGVjb2RlX291
dHB1dD1UcnVlLCBjd2Q9Tm9uZSk6CisgICAgZGVmIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbChzZWxm
LCBhcmdzLCBxdWlldD1GYWxzZSwgZGVjb2RlX291dHB1dD1UcnVlLCAqKmt3YXJncyk6CiAgICAg
ICAgICMgQ2FjaGUgdGhlIGNoaWxkJ3Mgb3V0cHV0IGxvY2FsbHkgc28gaXQgY2FuIGJlIHVzZWQg
Zm9yIGVycm9yIHJlcG9ydHMuCiAgICAgICAgIGNoaWxkX291dF9maWxlID0gU3RyaW5nSU8uU3Ry
aW5nSU8oKQogICAgICAgICB0ZWVfc3Rkb3V0ID0gc3lzLnN0ZG91dApAQCAtMTQ0LDcgKzE0NCw3
IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAgICAgZGV2X251bGwgPSBvcGVu
KG9zLmRldm51bGwsICJ3IikgICMgRklYTUU6IERvZXMgdGhpcyBuZWVkIGFuIGVuY29kaW5nPwog
ICAgICAgICAgICAgdGVlX3N0ZG91dCA9IGRldl9udWxsCiAgICAgICAgIGNoaWxkX3N0ZG91dCA9
IHRlZShjaGlsZF9vdXRfZmlsZSwgdGVlX3N0ZG91dCkKLSAgICAgICAgZXhpdF9jb2RlID0gc2Vs
Zi5fcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dChhcmdzLCBjaGlsZF9zdGRvdXQsIGN3ZD1j
d2QpCisgICAgICAgIGV4aXRfY29kZSA9IHNlbGYuX3J1bl9jb21tYW5kX3dpdGhfdGVlZF9vdXRw
dXQoYXJncywgY2hpbGRfc3Rkb3V0LCAqKmt3YXJncykKICAgICAgICAgaWYgcXVpZXQ6CiAgICAg
ICAgICAgICBkZXZfbnVsbC5jbG9zZSgpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQppbmRleCAwNGMwMTJlYTFlOTE5
YmM2Yzk4NmIzMDVkYTVjNTRjNDQyZjI5NjNlLi44YjM5NjY4Yzk1NzM3ZDYzMzJiNTczYTJiNDgw
Yzk0MDA3N2E2ZmUzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vZXhlY3V0aXZlX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5CkBAIC00NCw5ICs0NCwxMiBAQCBjbGFzcyBNb2Nr
RXhlY3V0aXZlKG9iamVjdCk6CiAgICAgZGVmIGNoZWNrX3J1bm5pbmdfcGlkKHNlbGYsIHBpZCk6
CiAgICAgICAgIHJldHVybiBwaWQgaW4gc2VsZi5fcnVubmluZ19waWRzCiAKLSAgICBkZWYgcnVu
X2FuZF90aHJvd19pZl9mYWlsKHNlbGYsIGFyZ3MsIHF1aWV0PUZhbHNlLCBjd2Q9Tm9uZSk6Cisg
ICAgZGVmIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbChzZWxmLCBhcmdzLCBxdWlldD1GYWxzZSwgY3dk
PU5vbmUsIGVudj1Ob25lKToKICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2xvZzoKLSAgICAgICAg
ICAgIGxvZygiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6ICVzLCBjd2Q9JXMiICUgKGFyZ3Ms
IGN3ZCkpCisgICAgICAgICAgICBlbnZfc3RyaW5nID0gIiIKKyAgICAgICAgICAgIGlmIGVudjoK
KyAgICAgICAgICAgICAgICBlbnZfc3RyaW5nID0gIiwgZW52PSVzIiAlIGVudgorICAgICAgICAg
ICAgbG9nKCJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogJXMsIGN3ZD0lcyVzIiAlIChhcmdz
LCBjd2QsIGVudl9zdHJpbmcpKQogICAgICAgICBpZiBzZWxmLl9zaG91bGRfdGhyb3dfd2hlbl9y
dW4uaW50ZXJzZWN0aW9uKGFyZ3MpOgogICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IoIkV4
Y2VwdGlvbiBmb3IgJXMiICUgYXJncykKICAgICAgICAgcmV0dXJuICJNT0NLIG91dHB1dCBvZiBj
aGlsZCBwcm9jZXNzIgpAQCAtNTgsMTAgKzYxLDE0IEBAIGNsYXNzIE1vY2tFeGVjdXRpdmUob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFuZGxlcj1Ob25lLAogICAgICAgICAg
ICAgICAgICAgICByZXR1cm5fZXhpdF9jb2RlPUZhbHNlLAogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm5fc3RkZXJyPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGRlY29kZV9vdXRwdXQ9RmFs
c2UpOgorICAgICAgICAgICAgICAgICAgICBkZWNvZGVfb3V0cHV0PUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICBlbnY9Tm9uZSk6CiAgICAgICAgIGFzc2VydChpc2luc3RhbmNlKGFyZ3MsIGxp
c3QpIG9yIGlzaW5zdGFuY2UoYXJncywgdHVwbGUpKQogICAgICAgICBpZiBzZWxmLl9zaG91bGRf
bG9nOgotICAgICAgICAgICAgbG9nKCJNT0NLIHJ1bl9jb21tYW5kOiAlcywgY3dkPSVzIiAlIChh
cmdzLCBjd2QpKQorICAgICAgICAgICAgZW52X3N0cmluZyA9ICIiCisgICAgICAgICAgICBpZiBl
bnY6CisgICAgICAgICAgICAgICAgZW52X3N0cmluZyA9ICIsIGVudj0lcyIgJSBlbnYKKyAgICAg
ICAgICAgIGxvZygiTU9DSyBydW5fY29tbWFuZDogJXMsIGN3ZD0lcyVzIiAlIChhcmdzLCBjd2Qs
IGVudl9zdHJpbmcpKQogICAgICAgICBpZiBzZWxmLl9zaG91bGRfdGhyb3c6CiAgICAgICAgICAg
ICByYWlzZSBTY3JpcHRFcnJvcigiTU9DSyBTY3JpcHRFcnJvciIpCiAgICAgICAgIHJldHVybiAi
TU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJvY2VzcyIKQEAgLTkyLDcgKzk5LDggQEAgY2xhc3MgTW9j
a0V4ZWN1dGl2ZTIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgZXJyb3JfaGFuZGxlcj1O
b25lLAogICAgICAgICAgICAgICAgICAgICByZXR1cm5fZXhpdF9jb2RlPUZhbHNlLAogICAgICAg
ICAgICAgICAgICAgICByZXR1cm5fc3RkZXJyPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGRl
Y29kZV9vdXRwdXQ9RmFsc2UpOgorICAgICAgICAgICAgICAgICAgICBkZWNvZGVfb3V0cHV0PUZh
bHNlLAorICAgICAgICAgICAgICAgICAgICBlbnY9Tm9uZSk6CiAgICAgICAgIGFzc2VydChpc2lu
c3RhbmNlKGFyZ3MsIGxpc3QpIG9yIGlzaW5zdGFuY2UoYXJncywgdHVwbGUpKQogICAgICAgICBp
ZiBzZWxmLl9leGNlcHRpb246CiAgICAgICAgICAgICByYWlzZSBzZWxmLl9leGNlcHRpb24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkK
aW5kZXggMDFkZjhhNDlkMjIzZjllNTJhMWIyMjkwY2U1NGE0MDgyZTZmZTFkNy4uZGUzZTg5MzFk
MWNmYzRiNjI3ODFmM2JiNjJmYWU2M2QxMDZhYjVkYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkKQEAgLTQxLDYgKzQxLDcgQEAg
aW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9p
emVkCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVpbGRib3QgaW1wb3J0IEJ1aWxkQm90Citm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZW52aXJvbm1lbnQgaW1wb3J0IEVudmlyb25tZW50
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUs
IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBidWls
ZGVycywgc2VydmVyX3Byb2Nlc3MsIFBvcnQsIERyaXZlciwgRHJpdmVyT3V0cHV0CiAKQEAgLTgw
LDExICs4MSw2IEBAIGNsYXNzIFdlYktpdFBvcnQoUG9ydCk6CiAgICAgICAgIGV4cGVjdGF0aW9u
c19kaXJlY3RvcnkgPSBzZWxmLl93azJfcG9ydF9uYW1lKCkgaWYgc2VsZi5nZXRfb3B0aW9uKCd3
ZWJraXRfdGVzdF9ydW5uZXInKSBlbHNlIHNlbGYucG9ydF9uYW1lCiAgICAgICAgIHJldHVybiBz
ZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoZXhwZWN0YXRp
b25zX2RpcmVjdG9yeSksICd0ZXN0X2V4cGVjdGF0aW9ucy50eHQnKQogCi0gICAgZGVmIF9kcml2
ZXJfYnVpbGRfc2NyaXB0X25hbWUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbign
d2Via2l0X3Rlc3RfcnVubmVyJyk6Ci0gICAgICAgICAgICByZXR1cm4gImJ1aWxkLXdlYmtpdHRl
c3RydW5uZXIiCi0gICAgICAgIHJldHVybiAiYnVpbGQtZHVtcHJlbmRlcnRyZWUiCi0KICAgICBk
ZWYgX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKICAgICAgICAgIyBUaGlzIGlzIG92ZXJy
cmlkZW4gYnkgcG9ydHMgd2hpY2ggbmVlZCBhIGZsYWcgcGFzc2VkIHRvIHNjcmlwdHMgdG8gZGlz
dGluZ3Vpc2ggdGhlIHVzZSBvZiB0aGF0IHBvcnQuCiAgICAgICAgICMgRm9yIGV4YW1wbGUgLS1x
dCBvbiBsaW51eCwgc2luY2UgYSB1c2VyIG1pZ2h0IGhhdmUgYm90aCBHdGsgYW5kIFF0IGxpYnJh
cmllcyBpbnN0YWxsZWQuCkBAIC0xMDEsMjQgKzk3LDI4IEBAIGNsYXNzIFdlYktpdFBvcnQoUG9y
dCk6CiAgICAgICAgICAgICBjb25maWdfYXJncy5hcHBlbmQocG9ydF9mbGFnKQogICAgICAgICBy
ZXR1cm4gY29uZmlnX2FyZ3MKIAotICAgIGRlZiBfcnVuX3NjcmlwdChzZWxmLCBzY3JpcHRfbmFt
ZSwgYXJncz1Ob25lLCBpbmNsdWRlX2NvbmZpZ3VyYXRpb25fYXJndW1lbnRzPVRydWUsIGRlY29k
ZV9vdXRwdXQ9VHJ1ZSk6CisgICAgZGVmIF9ydW5fc2NyaXB0KHNlbGYsIHNjcmlwdF9uYW1lLCBh
cmdzPU5vbmUsIGluY2x1ZGVfY29uZmlndXJhdGlvbl9hcmd1bWVudHM9VHJ1ZSwgZGVjb2RlX291
dHB1dD1UcnVlLCBlbnY9Tm9uZSk6CiAgICAgICAgIHJ1bl9zY3JpcHRfY29tbWFuZCA9IFtzZWxm
Ll9jb25maWcuc2NyaXB0X3BhdGgoc2NyaXB0X25hbWUpXQogICAgICAgICBpZiBpbmNsdWRlX2Nv
bmZpZ3VyYXRpb25fYXJndW1lbnRzOgogICAgICAgICAgICAgcnVuX3NjcmlwdF9jb21tYW5kLmV4
dGVuZChzZWxmLl9hcmd1bWVudHNfZm9yX2NvbmZpZ3VyYXRpb24oKSkKICAgICAgICAgaWYgYXJn
czoKICAgICAgICAgICAgIHJ1bl9zY3JpcHRfY29tbWFuZC5leHRlbmQoYXJncykKLSAgICAgICAg
cmV0dXJuIHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChydW5fc2NyaXB0X2NvbW1hbmQsIGN3
ZD1zZWxmLl9jb25maWcud2Via2l0X2Jhc2VfZGlyKCksIGRlY29kZV9vdXRwdXQ9ZGVjb2RlX291
dHB1dCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChydW5fc2Ny
aXB0X2NvbW1hbmQsIGN3ZD1zZWxmLl9jb25maWcud2Via2l0X2Jhc2VfZGlyKCksIGRlY29kZV9v
dXRwdXQ9ZGVjb2RlX291dHB1dCwgZW52PWVudikKIAogICAgIGRlZiBfYnVpbGRfZHJpdmVyKHNl
bGYpOgorICAgICAgICBlbnZpcm9ubWVudCA9IHNlbGYuaG9zdC5jb3B5X2N1cnJlbnRfZW52aXJv
bm1lbnQoKQorICAgICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2djY19zbWFydHF1b3RlcygpCisg
ICAgICAgIGVudiA9IGVudmlyb25tZW50LnRvX2RpY3Rpb25hcnkoKQorCiAgICAgICAgICMgRklY
TUU6IFdlIGJ1aWxkIGJvdGggRHVtcFJlbmRlclRyZWUgYW5kIFdlYktpdFRlc3RSdW5uZXIgZm9y
CiAgICAgICAgICMgV2ViS2l0VGVzdFJ1bm5lciBydW5zIGJlY2F1c2UgRHVtcFJlbmRlclRyZWUg
c3RpbGwgaW5jbHVkZXMKICAgICAgICAgIyB0aGUgRHVtcFJlbmRlclRyZWVTdXBwb3J0IG1vZHVs
ZSBhbmQgdGhlIFRlc3ROZXRzY2FwZVBsdWdpbi4KICAgICAgICAgIyBUaGVzZSB0d28gcHJvamVj
dHMgc2hvdWxkIGJlIGZhY3RvcmVkIG91dCBpbnRvIHRoZWlyIG93bgogICAgICAgICAjIHByb2pl
Y3RzLgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCJidWlsZC1k
dW1wcmVuZGVydHJlZSIpCisgICAgICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCJidWlsZC1kdW1w
cmVuZGVydHJlZSIsIGVudj1lbnYpCiAgICAgICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dl
YmtpdF90ZXN0X3J1bm5lcicpOgotICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9zY3JpcHQoImJ1
aWxkLXdlYmtpdHRlc3RydW5uZXIiKQorICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9zY3JpcHQo
ImJ1aWxkLXdlYmtpdHRlc3RydW5uZXIiLCBlbnY9ZW52KQogICAgICAgICBleGNlcHQgU2NyaXB0
RXJyb3I6CiAgICAgICAgICAgICBfbG9nLmVycm9yKCJGYWlsZWQgdG8gYnVpbGQgJXMiICUgc2Vs
Zi5kcml2ZXJfbmFtZSgpKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0
ZXN0LnB5CmluZGV4IDllMzc4Y2UwZWExYTA3ZDU4NzYyOTUyNGMxOTE1NDk0ZDA1MDlhYjguLjc2
OGM2NmY1OTk3MzQxYzQwODBkMWE3MjE4ZDQ0ZDM1NTExM2M2OGEgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Via2l0X3VuaXR0
ZXN0LnB5CkBAIC0xNzcsMTggKzE3NywxOCBAQCBCVUdfU0tJUFBFRCBTS0lQIDogbWVkaWEgPSBG
QUlMIiIiKQogICAgICAgICAjIERlbGF5IHNldHRpbmcgX2V4ZWN1dGl2ZSB0byBhdm9pZCBsb2dn
aW5nIGR1cmluZyBjb25zdHJ1Y3Rpb24KICAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gTW9ja0V4
ZWN1dGl2ZShzaG91bGRfbG9nPVRydWUpCiAgICAgICAgIHBvcnQuX29wdGlvbnMgPSBNb2NrT3B0
aW9ucyhjb25maWd1cmF0aW9uPSJSZWxlYXNlIikgICMgVGhpcyBzaG91bGQgbm90IGJlIG5lY2Vz
c2FyeSwgYnV0IEkgdGhpbmsgVGVzdFdlYktpdFBvcnQgaXMgYWN0dWFsbHkgcmVhZGluZyBmcm9t
IGRpc2sgKGFuZCB0aHVzIGRldGVjdHMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbikuCi0gICAg
ICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5kOiBbJ1Rvb2xzL1NjcmlwdHMv
YnVpbGQtZHVtcHJlbmRlcnRyZWUnLCAnLS1yZWxlYXNlJ10sIGN3ZD0vbW9jay1jaGVja291dFxu
IgorICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydUb29scy9T
Y3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlJywgJy0tcmVsZWFzZSddLCBjd2Q9L21vY2stY2hl
Y2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ01PQ0tfRU5WSVJPTl9DT1BZJzogJzEnfVxuIgog
ICAgICAgICBzZWxmLmFzc2VydFRydWUob3V0cHV0LmFzc2VydF9vdXRwdXRzKHNlbGYsIHBvcnQu
X2J1aWxkX2RyaXZlciwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikpCiAKICAgICAg
ICAgIyBNYWtlIHN1cmUgd2hlbiBwYXNzZWQgLS13ZWJraXQtdGVzdC1ydW5uZXIgd2ViIGJ1aWxk
IHRoZSByaWdodCB0b29sLgogICAgICAgICBwb3J0Ll9vcHRpb25zID0gTW9ja09wdGlvbnMod2Vi
a2l0X3Rlc3RfcnVubmVyPVRydWUsIGNvbmZpZ3VyYXRpb249IlJlbGVhc2UiKQotICAgICAgICBl
eHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5fY29tbWFuZDogWydUb29scy9TY3JpcHRzL2J1aWxk
LWR1bXByZW5kZXJ0cmVlJywgJy0tcmVsZWFzZSddLCBjd2Q9L21vY2stY2hlY2tvdXRcbk1PQ0sg
cnVuX2NvbW1hbmQ6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyJywgJy0t
cmVsZWFzZSddLCBjd2Q9L21vY2stY2hlY2tvdXRcbiIKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJy
ID0gIk1PQ0sgcnVuX2NvbW1hbmQ6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJl
ZScsICctLXJlbGVhc2UnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycs
ICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ31cbk1PQ0sgcnVuX2NvbW1hbmQ6IFsnVG9vbHMvU2Ny
aXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyJywgJy0tcmVsZWFzZSddLCBjd2Q9L21vY2stY2hl
Y2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ01PQ0tfRU5WSVJPTl9DT1BZJzogJzEnfVxuIgog
ICAgICAgICBzZWxmLmFzc2VydFRydWUob3V0cHV0LmFzc2VydF9vdXRwdXRzKHNlbGYsIHBvcnQu
X2J1aWxkX2RyaXZlciwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikpCiAKICAgICAg
ICAgIyBNYWtlIHN1cmUgdGhhdCBmYWlsdXJlIHRvIGJ1aWxkIHJldHVybnMgRmFsc2UuCiAgICAg
ICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1UcnVlLCBzaG91
bGRfdGhyb3c9VHJ1ZSkKICAgICAgICAgIyBCZWNhdXNlIFdLMiBjdXJyZW50bHkgaGFzIHRvIGJ1
aWxkIGJvdGggd2Via2l0dGVzdHJ1bm5lciBhbmQgRFJULCBpZiBEUlQgZmFpbHMsIHRoYXQncyB0
aGUgb25seSBvbmUgaXQgdHJpZXMuCi0gICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1
bl9jb21tYW5kOiBbJ1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUnLCAnLS1yZWxl
YXNlJ10sIGN3ZD0vbW9jay1jaGVja291dFxuIgorICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAi
TU9DSyBydW5fY29tbWFuZDogWydUb29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlJywg
Jy0tcmVsZWFzZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ01P
Q0tfRU5WSVJPTl9DT1BZJzogJzEnfVxuIgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG91dHB1
dC5hc3NlcnRfb3V0cHV0cyhzZWxmLCBwb3J0Ll9idWlsZF9kcml2ZXIsIGV4cGVjdGVkX3N0ZGVy
cj1leHBlY3RlZF9zdGRlcnIpKQogCiAgICAgZGVmIF9hc3NlcnRfY29uZmlnX2ZpbGVfZm9yX3Bs
YXRmb3JtKHNlbGYsIHBvcnQsIHBsYXRmb3JtLCBjb25maWdfZmlsZSk6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3Qu
cHkKaW5kZXggMjRlNjk4MWVjNmQ0MzM4M2RlNDYxMDI3M2YyNmY3YmM4ZDczYjRhYy4uY2I1M2Y4
OGQ1MGMyZjVlOTZjOWQ4MjViNTlkN2NjNDJiOThmNDVjNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQpA
QCAtMTMyLDcgKzEzMiw3IEBAIE1PQ0sgcnVuX2NvbW1hbmQ6IFsncnVieScsICctSScsICcvbW9j
ay1jaGVja291dC9XZWJzaXRlcy9idWdzLndlYmtpdC5vcmcvUHJldHR5CiBNT0NLOiB1c2VyLm9w
ZW5fdXJsOiBmaWxlOi8vLi4uCiBXYXMgdGhhdCBkaWZmIGNvcnJlY3Q/CiBCdWlsZGluZyBXZWJL
aXQKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ21vY2stYnVpbGQtd2Via2l0J10sIGN3
ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnbW9jay1idWls
ZC13ZWJraXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycsICdNT0NL
X0VOVklST05fQ09QWSc6ICcxJ30KIFJ1bm5pbmcgUHl0aG9uIHVuaXQgdGVzdHMKIE1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ21vY2stdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hl
Y2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvYnVpbGQucHkKaW5kZXggZjY3ZGIyMWI4ZGQ0MzRjYmQ5N2I2OWIxNGE5MzMwYTk0
MjU5MDY4MS4uN2Y3ZGQ5ZjM2ZTU4ZTIyOTdjYTQwOWQ5MTEwYjFlNzliOWEwMzkwYSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQpAQCAtNDEsNyArNDEsMTMg
QEAgY2xhc3MgQnVpbGQoQWJzdHJhY3RTdGVwKToKICAgICAgICAgXQogCiAgICAgZGVmIGJ1aWxk
KHNlbGYsIGJ1aWxkX3N0eWxlKToKLSAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2Fu
ZF90aHJvd19pZl9mYWlsKHNlbGYuX3Rvb2wucG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1
aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKSwgc2VsZi5fb3B0aW9ucy5xdWlldCwgY3dkPXNlbGYuX3Rv
b2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl90b29s
LmNvcHlfY3VycmVudF9lbnZpcm9ubWVudCgpCisgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVf
Z2NjX3NtYXJ0cXVvdGVzKCkKKyAgICAgICAgZW52ID0gZW52aXJvbm1lbnQudG9fZGljdGlvbmFy
eSgpCisKKyAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgPSBzZWxmLl90b29sLnBvcnQoKS5i
dWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgc2Vs
Zi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX3dlYmtpdF9jb21t
YW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAorICAgICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2Nt
KCkuY2hlY2tvdXRfcm9vdCwgZW52PWVudikKIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgog
ICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5idWlsZDoK
</data>
<flag name="review"
          id="115600"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="115601"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>