<?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>70974</bug_id>
          
          <creation_ts>2011-10-26 15:52:44 -0700</creation_ts>
          <short_desc>IndexedDB: Database metadata changes should be tied to transaction</short_desc>
          <delta_ts>2011-10-28 12:22:46 -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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>hans</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491238</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-26 15:52:44 -0700</bug_when>
    <thetext>IndexedDB: Database metadata changes should be tied to transaction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491242</commentid>
    <comment_count>1</comment_count>
      <attachid>112610</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-26 16:01:56 -0700</bug_when>
    <thetext>Created attachment 112610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491286</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-26 17:18:45 -0700</bug_when>
    <thetext>Suggestions for additional tests welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492084</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-27 16:31:15 -0700</bug_when>
    <thetext>Chromium test that verifies the fix added at: http://codereview.chromium.org/8341092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492473</commentid>
    <comment_count>4</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-10-28 08:48:30 -0700</bug_when>
    <thetext>Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492508</commentid>
    <comment_count>5</comment_count>
      <attachid>112610</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-28 10:21:18 -0700</bug_when>
    <thetext>Comment on attachment 112610
Patch

tony@, can you r/cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492529</commentid>
    <comment_count>6</comment_count>
      <attachid>112610</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-10-28 10:56:02 -0700</bug_when>
    <thetext>Comment on attachment 112610
Patch

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

&gt; LayoutTests/storage/indexeddb/open-during-transaction.html:92
&gt; +var successfullyParsed = true;

Nit: You don&apos;t need to add this anymore.

&gt; LayoutTests/storage/indexeddb/version-change-abort.html:96
&gt; +var successfullyParsed = true;

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492548</commentid>
    <comment_count>7</comment_count>
      <attachid>112883</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-28 11:26:41 -0700</bug_when>
    <thetext>Created attachment 112883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492553</commentid>
    <comment_count>8</comment_count>
      <attachid>112883</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-28 11:28:12 -0700</bug_when>
    <thetext>Comment on attachment 112883
Patch

thanks tony@ - it required slightly non-trivial tweak due to exception handling. One more try?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492591</commentid>
    <comment_count>9</comment_count>
      <attachid>112883</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 12:22:42 -0700</bug_when>
    <thetext>Comment on attachment 112883
Patch

Clearing flags on attachment: 112883

Committed r98749: &lt;http://trac.webkit.org/changeset/98749&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492592</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 12:22:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112610</attachid>
            <date>2011-10-26 16:01:56 -0700</date>
            <delta_ts>2011-10-28 11:26:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70974-20111026160155.patch</filename>
            <type>text/plain</type>
            <size>18772</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YjU5N2M0NjQ2NjJkNWQ0
MTBmNzEwNTcyMDdkYzcxOTAzOWM1ZDg3Li5lMzBhN2YxZjlmNDU1MjMyMDI0NjQ3ZjkwMjUzYWM4
OTJlMTJiMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMTAtMjYgIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IERhdGFi
YXNlIG1ldGFkYXRhIGNoYW5nZXMgc2hvdWxkIGJlIHRpZWQgdG8gdHJhbnNhY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTc0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGF0YWJhc2UgbWV0YWRh
dGEgKHRoYXQgaXMsIHRoZSB2ZXJzaW9uIHN0cmluZykgd2FzIHJvbGxlZCBiYWNrCisgICAgICAg
IG9uIGFib3J0IGJ5IGFuIGFib3J0IHRhc2suIElmIHRoZSBhYm9ydCB0YXNrIGRpZG4ndCBydW4g
ZS5nLgorICAgICAgICBkdWUgdG8gYSBjcmFzaCwgdGhlIG1ldGFkYXRhIHdvdWxkIG5vdCBiZSBy
ZXZlcnRlZC4gQWxsIG9mIHRoZQorICAgICAgICBvdGhlciBzdG9yZS9pbmRleC9kYXRhIGNoYW5n
ZXMgd2VyZSB3cml0dGVuIGludG8gdGhlIHRyYW5zYWN0aW9uCisgICAgICAgIGl0c2VsZiwgc28g
dGhlIG1ldGFkYXRhIG5vdyBpcyB0b28uIFJlZmFjdG9yZWQgdGhlIG1ldGFkYXRhCisgICAgICAg
IGdldC9jcmVhdGUvdXBkYXRlIG1ldGhvZHMgZm9yIGNsYXJpdHkgYXMgd2VsbC4KKworICAgICAg
ICBOb3RlIHRoYXQgdGhlIG5ldyB0ZXN0cyBkb24ndCBhY3R1YWxseSB2ZXJpZnkgdGhhdCB0aGUg
Y29kZSBoYW5kbGVzCisgICAgICAgIHRoaXMgY2FzZTsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgZG9u
ZSB3aXRoIHBlcnNpc3RlbmNlIHRlc3RzCisgICAgICAgIHRoYXQgc3BhbiBtdWx0aXBsZSBydW5z
IG9mIHRoZSBicm93c2VyIGFuZCBpbmR1Y2UgY3Jhc2hlcy4KKyAgICAgICAgVGhlIG5ldyB0ZXN0
cyBkbyB2ZXJpZnkgdGhhdCB0aGVzZSBjaGFuZ2VzIGRvbid0IGNhdXNlIHJlZ3Jlc3Npb25zCisg
ICAgICAgIG5vdCBjYXVnaHQgYnkgb3RoZXIgdGVzdHMuCisKKyAgICAgICAgVGVzdHM6IHN0b3Jh
Z2UvaW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAg
IHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwKKworICAgICAgICAq
IHN0b3JhZ2UvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZElt
cGw6OklEQkRhdGFiYXNlQmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbkludGVybmFsKToKKyAgICAgICAgKiBzdG9yYWdlL0lE
QkxldmVsREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJh
Y2tpbmdTdG9yZTo6Z2V0SURCRGF0YWJhc2VNZXRhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkxldmVsREJCYWNraW5nU3RvcmU6OnVwZGF0ZUlEQkRhdGFiYXNlTWV0
YURhdGEpOgorICAgICAgICAqIHN0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oOgorCiAy
MDExLTEwLTI2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIE5vdCByZXZpZXdlZDogZml4aW5nIGluc3BlY3RvciBleHRlbnNpb25zIHRlc3RzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCQmFja2luZ1N0b3JlLmgKaW5kZXggNmUxM2Y0ZmE2MWM0YTIx
ZDQyYzNmZmRlNWJkYzczZDkxZGRiM2M0MS4uNmQ4ODFhNThiMzc1MGFlMmQ4M2U0OTljYzk3MWE4
YjQwMDAwZmIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJCYWNraW5n
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkJhY2tpbmdTdG9yZS5oCkBA
IC00Nyw4ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJCYWNraW5nU3RvcmUoKSB7
fTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFZlY3RvcjxTdHJpbmc+JiBm
b3VuZE5hbWVzKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGV4dHJhY3RJREJEYXRhYmFzZU1ldGFE
YXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5nJiBmb3VuZFZlcnNpb24sIGludDY0X3QmIGZv
dW5kSWQpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc2V0SURCRGF0YWJhc2VNZXRhRGF0YShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50NjRfdCYgcm93SWQsIGJv
b2wgaW52YWxpZFJvd0lkKSA9IDA7CisgICAgdmlydHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0
YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJpbmcmIGZvdW5kVmVyc2lvbiwgaW50NjRfdCYg
Zm91bmRJZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRh
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBpbnQ2NF90JiByb3dJ
ZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGludDY0
X3Qgcm93SWQsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGdldE9iamVjdFN0b3JlcyhpbnQ2NF90IGRhdGFiYXNlSWQsIFZlY3RvcjxpbnQ2NF90PiYgZm91
bmRJZHMsIFZlY3RvcjxTdHJpbmc+JiBmb3VuZE5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgZm91bmRL
ZXlQYXRocywgVmVjdG9yPGJvb2w+JiBmb3VuZEF1dG9JbmNyZW1lbnRGbGFncykgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQs
IGludDY0X3QmIGFzc2lnbmVkT2JqZWN0U3RvcmVJZCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggNTgxYWE4YzAxNTNk
OTZlMDk5MDg0MWM0ODY3ZjU0ZmE1YWZhYmYxNy4uOWFmMjJlNDRiYzExYzFjNjdhYTJlYjRjNTM1
YzZlNTY0ZmQ1M2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuY3BwCkBAIC04OCw5ICs4OCw5IEBAIElEQkRhdGFiYXNlQmFja2VuZElt
cGw6OklEQkRhdGFiYXNlQmFja2VuZEltcGwoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5n
U3RvCiB7CiAgICAgQVNTRVJUKCFtX25hbWUuaXNOdWxsKCkpOwogCi0gICAgYm9vbCBzdWNjZXNz
ID0gbV9iYWNraW5nU3RvcmUtPmV4dHJhY3RJREJEYXRhYmFzZU1ldGFEYXRhKG1fbmFtZSwgbV92
ZXJzaW9uLCBtX2lkKTsKLSAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MgPT0gKG1f
aWQgIT0gSW52YWxpZElkKSk7Ci0gICAgaWYgKCFtX2JhY2tpbmdTdG9yZS0+c2V0SURCRGF0YWJh
c2VNZXRhRGF0YShtX25hbWUsIG1fdmVyc2lvbiwgbV9pZCwgbV9pZCA9PSBJbnZhbGlkSWQpKQor
ICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0b3JlLT5nZXRJREJEYXRhYmFzZU1ldGFEYXRh
KG1fbmFtZSwgbV92ZXJzaW9uLCBtX2lkKTsKKyAgICBBU1NFUlQoc3VjY2VzcyA9PSAobV9pZCAh
PSBJbnZhbGlkSWQpKTsKKyAgICBpZiAoIXN1Y2Nlc3MgJiYgIW1fYmFja2luZ1N0b3JlLT5jcmVh
dGVJREJEYXRhYmFzZU1ldGFEYXRhKG1fbmFtZSwgbV92ZXJzaW9uLCBtX2lkKSkKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEZJWE1FOiBOZWVkIGJldHRlciBlcnJvciBoYW5kbGlu
Zy4KICAgICBsb2FkT2JqZWN0U3RvcmVzKCk7CiB9CkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJzaW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWYKIHsKICAgICBpbnQ2NF90IGRhdGFiYXNlSWQgPSBkYXRhYmFzZS0+
aWQoKTsKICAgICBkYXRhYmFzZS0+bV92ZXJzaW9uID0gdmVyc2lvbjsKLSAgICBpZiAoIWRhdGFi
YXNlLT5tX2JhY2tpbmdTdG9yZS0+c2V0SURCRGF0YWJhc2VNZXRhRGF0YShkYXRhYmFzZS0+bV9u
YW1lLCBkYXRhYmFzZS0+bV92ZXJzaW9uLCBkYXRhYmFzZUlkLCBkYXRhYmFzZUlkID09IEludmFs
aWRJZCkpIHsKKyAgICBpZiAoIWRhdGFiYXNlLT5tX2JhY2tpbmdTdG9yZS0+dXBkYXRlSURCRGF0
YWJhc2VNZXRhRGF0YShkYXRhYmFzZUlkLCBkYXRhYmFzZS0+bV92ZXJzaW9uKSkgewogICAgICAg
ICAvLyBGSVhNRTogVGhlIEluZGV4ZWQgRGF0YWJhc2Ugc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBo
YXZlIGFuIGVycm9yIGNvZGUgZGVkaWNhdGVkIHRvIEkvTyBlcnJvcnMuCiAgICAgICAgIGNhbGxi
YWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRp
b246OlVOS05PV05fRVJSLCAiRXJyb3Igd3JpdGluZyBkYXRhIHRvIHN0YWJsZSBzdG9yYWdlLiIp
KTsKICAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAppbmRleCBmYTRlNWIzNDgyNmIxZDk1
OWQ1NjkyNWRiZjg0NmU1YTQyMDAxZTY4Li5jNWQ2ZmI0ZWI3MzE1MWY0OWMyOTU5OWQ4Njg3NDJl
ODYyNzYxYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJC
YWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkJh
Y2tpbmdTdG9yZS5jcHAKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIElEQkxldmVsREJCYWNraW5n
U3RvcmU6OmdldERhdGFiYXNlTmFtZXMoVmVjdG9yPFN0cmluZz4mIGZvdW5kTmFtZXMpCiAgICAg
fQogfQogCi1ib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmV4dHJhY3RJREJEYXRhYmFzZU1l
dGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5nJiBmb3VuZFZlcnNpb24sIGludDY0X3Qm
IGZvdW5kSWQpCitib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmdldElEQkRhdGFiYXNlTWV0
YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJpbmcmIGZvdW5kVmVyc2lvbiwgaW50NjRfdCYg
Zm91bmRJZCkKIHsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4ga2V5ID0gRGF0YWJhc2VOYW1lS2V5
OjplbmNvZGUobV9pZGVudGlmaWVyLCBuYW1lKTsKIApAQCAtMjE2LDIwICsyMTYsMjUgQEAgc3Rh
dGljIGludDY0X3QgZ2V0TmV3RGF0YWJhc2VJZChMZXZlbERCRGF0YWJhc2UqIGRiKQogICAgIHJl
dHVybiBkYXRhYmFzZUlkOwogfQogCi1ib29sIElEQkxldmVsREJCYWNraW5nU3RvcmU6OnNldElE
QkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNp
b24sIGludDY0X3QmIHJvd0lkLCBib29sIGludmFsaWRSb3dJZCkKK2Jvb2wgSURCTGV2ZWxEQkJh
Y2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50NjRfdCYgcm93SWQpCiB7Ci0gICAgaWYgKGludmFs
aWRSb3dJZCkgewotICAgICAgICByb3dJZCA9IGdldE5ld0RhdGFiYXNlSWQobV9kYi5nZXQoKSk7
Ci0gICAgICAgIGlmIChyb3dJZCA8IDApCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICAgICAgY29uc3QgVmVjdG9yPGNoYXI+IGtleSA9IERhdGFiYXNlTmFtZUtleTo6ZW5jb2RlKG1f
aWRlbnRpZmllciwgbmFtZSk7Ci0gICAgICAgIGlmICghcHV0SW50KG1fZGIuZ2V0KCksIGtleSwg
cm93SWQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICByb3dJZCA9IGdl
dE5ld0RhdGFiYXNlSWQobV9kYi5nZXQoKSk7CisgICAgaWYgKHJvd0lkIDwgMCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgY29uc3QgVmVjdG9yPGNoYXI+IGtleSA9IERhdGFiYXNlTmFt
ZUtleTo6ZW5jb2RlKG1faWRlbnRpZmllciwgbmFtZSk7CisgICAgaWYgKCFwdXRJbnQobV9kYi5n
ZXQoKSwga2V5LCByb3dJZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIXB1dFN0
cmluZyhtX2RiLmdldCgpLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUocm93SWQsIERhdGFi
YXNlTWV0YURhdGFLZXk6OmtVc2VyVmVyc2lvbiksIHZlcnNpb24pKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9y
ZTo6dXBkYXRlSURCRGF0YWJhc2VNZXRhRGF0YShpbnQ2NF90IHJvd0lkLCBjb25zdCBTdHJpbmcm
IHZlcnNpb24pCit7CisgICAgQVNTRVJUKG1fY3VycmVudFRyYW5zYWN0aW9uKTsKKyAgICBpZiAo
IXB1dFN0cmluZyhtX2N1cnJlbnRUcmFuc2FjdGlvbi5nZXQoKSwgRGF0YWJhc2VNZXRhRGF0YUtl
eTo6ZW5jb2RlKHJvd0lkLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjprVXNlclZlcnNpb24pLCB2ZXJz
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oCmluZGV4IGMx
ZDNhYzRkYmY5OGZiZmVkNTQ4OTI0ODU3OGVjOGQyZjNiODRlMWUuLjlhMzdjMGQ3MDg2MzMxMWNi
NmQyMTJiNjViY2JhZjc3NTg0YjZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oCkBAIC00NSw4ICs0NSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JREJMZXZlbERCQmFja2luZ1N0b3JlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
RGF0YWJhc2VOYW1lcyhWZWN0b3I8U3RyaW5nPiYgZm91bmROYW1lcyk7Ci0gICAgdmlydHVhbCBi
b29sIGV4dHJhY3RJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5n
JiBmb3VuZFZlcnNpb24sIGludDY0X3QmIGZvdW5kSWQpOwotICAgIHZpcnR1YWwgYm9vbCBzZXRJ
REJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJz
aW9uLCBpbnQ2NF90JiByb3dJZCwgYm9vbCBpbnZhbGlkUm93SWQpOworICAgIHZpcnR1YWwgYm9v
bCBnZXRJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5nJiBmb3Vu
ZFZlcnNpb24sIGludDY0X3QmIGZvdW5kSWQpOworICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJREJE
YXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9u
LCBpbnQ2NF90JiByb3dJZCk7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlTWV0
YURhdGEoaW50NjRfdCByb3dJZCwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBnZXRPYmplY3RTdG9yZXMoaW50NjRfdCBkYXRhYmFzZUlkLCBWZWN0b3I8aW50NjRf
dD4mIGZvdW5kSWRzLCBWZWN0b3I8U3RyaW5nPiYgZm91bmROYW1lcywgVmVjdG9yPFN0cmluZz4m
IGZvdW5kS2V5UGF0aHMsIFZlY3Rvcjxib29sPiYgZm91bmRBdXRvSW5jcmVtZW50RmxhZ3MpOwog
ICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1l
bnQsIGludDY0X3QmIGFzc2lnbmVkT2JqZWN0U3RvcmVJZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODY2YTZiYzBmNjAx
YmEwMWEyMjE0OTQyNjg0OWJjNzNiMzg1MGZkMC4uNjc4NDJlOTg1MzZkZjZiYjY5ZDU3YWU3ODcz
ZjVjMWFkM2ZhMjZmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTI2ICBKb3NodWEg
QmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBEYXRhYmFz
ZSBtZXRhZGF0YSBjaGFuZ2VzIHNob3VsZCBiZSB0aWVkIHRvIHRyYW5zYWN0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk3NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdl
LWFib3J0Lmh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTI2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5z
YWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
ZHVyaW5nLXRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjZmZTRjYmM3NDUy
ZTBkYjY4MTE5YjlmM2YyNjY3NzZjMGUyNzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDIgQEAKK1Rlc3QgSW5kZXhlZERCIG9wZW5pbmcgZGF0YWJhc2UgY29ubmVj
dGlvbnMgZHVyaW5nIHRyYW5zYWN0aW9ucworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERC
IHx8IHdpbmRvdy5tb3pJbmRleGVkREI7CitQQVNTIGluZGV4ZWREQiA9PSBudWxsIGlzIGZhbHNl
CitJREJUcmFuc2FjdGlvbiA9IHdpbmRvdy5JREJUcmFuc2FjdGlvbiB8fCB3aW5kb3cud2Via2l0
SURCVHJhbnNhY3Rpb247CitQQVNTIElEQlRyYW5zYWN0aW9uID09IG51bGwgaXMgZmFsc2UKKwor
cHJlcGFyZSBkYXRhYmFzZQorb3BlbnJlcTEgPSBpbmRleGVkREIub3BlbignZGIxJykKK2RiYzEg
PSBvcGVucmVxMS5yZXN1bHQKK3NldHZlcnJlcSA9IGRiYzEuc2V0VmVyc2lvbignMS4wJykKK2Ri
YzEuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCitkYXRhYmFzZSBwcmVwYXJhdGlvbiBj
b21wbGV0ZQorCitzdGFydGluZyB0cmFuc2FjdGlvbgorc3RhdGUgPSAnc3RhcnRpbmcnCit0cmFu
cyA9IGRiYzEudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCit0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykucHV0KCd2YWx1ZScsICdrZXknKQor
Cit0cnlpbmcgdG8gb3BlbiB0aGUgc2FtZSBkYXRhYmFzZQorb3BlbnJlcTIgPSBpbmRleGVkREIu
b3BlbignZGIxJykKKwordHJ5aW5nIHRvIG9wZW4gYSBkaWZmZXJlbnQgZGF0YWJhc2UKK29wZW5y
ZXEzID0gaW5kZXhlZERCLm9wZW4oJ2RiMicpCisKK29wZW5yZXEyLm9uc3VjY2VzcworUEFTUyBz
dGF0ZSBpcyAic3RhcnRpbmciCitzdGF0ZSA9ICdvcGVuMmNvbXBsZXRlJworCitvcGVucmVxMy5v
bnN1Y2Nlc3MKK1BBU1Mgc3RhdGUgaXMgIm9wZW4yY29tcGxldGUiCitzdGF0ZSA9ICdvcGVuM2Nv
bXBsZXRlJworCit0cmFuc2FjdGlvbiBjb21wbGV0ZQorUEFTUyBzdGF0ZSBpcyAib3BlbjNjb21w
bGV0ZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10
cmFuc2FjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJp
bmctdHJhbnNhY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTgwMDIxZTZmZjMwZTNlYTAzN2VkNDQy
MjhlYTE3YjI3NTY0NzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24uaHRtbApAQCAtMCwwICsxLDk4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBv
cGVuaW5nIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGR1cmluZyB0cmFuc2FjdGlvbnMiKTsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBldmFsQW5kTG9nKCJpbmRl
eGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2lu
ZG93Lm1vekluZGV4ZWREQjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbmRleGVkREIgPT0gbnVs
bCIpOworICAgIGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0
aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbjsiKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJJREJUcmFuc2FjdGlvbiA9PSBudWxsIik7CisgICAgZGVidWcoIiIpOworICAgIHByZXBhcmVE
YXRhYmFzZSgpOworfQorCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQoreworICAgIGRlYnVn
KCJwcmVwYXJlIGRhdGFiYXNlIik7CisgICAgZXZhbEFuZExvZygib3BlbnJlcTEgPSBpbmRleGVk
REIub3BlbignZGIxJykiKTsKKyAgICBvcGVucmVxMS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgb3BlbnJlcTEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsKKyAgICAg
ICAgZXZhbEFuZExvZygiZGJjMSA9IG9wZW5yZXExLnJlc3VsdCIpOworICAgICAgICBldmFsQW5k
TG9nKCJzZXR2ZXJyZXEgPSBkYmMxLnNldFZlcnNpb24oJzEuMCcpIik7CisgICAgICAgIHNldHZl
cnJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHNldHZlcnJl
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAgICAgICAgZXZhbEFuZExvZygiZGJj
MS5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICAgICAgICAgIHNldHZlcnJl
cS5yZXN1bHQub25jb21wbGV0ZSA9IGZ1bmN0aW9uIChlKSB7CisgICAgICAgICAgICAgICAgZGVi
dWcoImRhdGFiYXNlIHByZXBhcmF0aW9uIGNvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgZGVi
dWcoIiIpOworICAgICAgICAgICAgICAgIHN0YXJ0VHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAg
IH07CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gc3RhcnRUcmFuc2FjdGlvbigp
Cit7CisgICAgZGVidWcoInN0YXJ0aW5nIHRyYW5zYWN0aW9uIik7CisgICAgZXZhbEFuZExvZygi
c3RhdGUgPSAnc3RhcnRpbmcnIik7CisgICAgZXZhbEFuZExvZygidHJhbnMgPSBkYmMxLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIGV2
YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKS5wdXQoJ3ZhbHVlJywgJ2tl
eScpIik7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAg
IHRyYW5zLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0cmFucy5vbmNv
bXBsZXRlID0gZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgZGVidWcoInRyYW5zYWN0aW9uIGNvbXBs
ZXRlIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RhdGUiLCAib3BlbjNjb21w
bGV0ZSIpOworICAgICAgICBkb25lKCk7CisgICAgfTsKKworICAgIGRlYnVnKCIiKTsKKyAgICB0
cnlPcGVucygpOworfQorCisKK2Z1bmN0aW9uIHRyeU9wZW5zKCkKK3sKKyAgICBkZWJ1ZygidHJ5
aW5nIHRvIG9wZW4gdGhlIHNhbWUgZGF0YWJhc2UiKTsKKyAgICBldmFsQW5kTG9nKCJvcGVucmVx
MiA9IGluZGV4ZWREQi5vcGVuKCdkYjEnKSIpOworICAgIG9wZW5yZXEyLm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBvcGVucmVxMi5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAo
ZSkgeworICAgICAgICBkZWJ1Zygib3BlbnJlcTIub25zdWNjZXNzIik7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygic3RhdGUiLCAic3RhcnRpbmciKTsKKyAgICAgICAgZXZhbEFuZExv
Zygic3RhdGUgPSAnb3BlbjJjb21wbGV0ZSciKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgIH0K
KyAgICBkZWJ1ZygiIik7CisKKyAgICBkZWJ1ZygidHJ5aW5nIHRvIG9wZW4gYSBkaWZmZXJlbnQg
ZGF0YWJhc2UiKTsKKyAgICBldmFsQW5kTG9nKCJvcGVucmVxMyA9IGluZGV4ZWREQi5vcGVuKCdk
YjInKSIpOworICAgIG9wZW5yZXEzLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICBvcGVucmVxMy5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAgICBkZWJ1Zygi
b3BlbnJlcTMub25zdWNjZXNzIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3Rh
dGUiLCAib3BlbjJjb21wbGV0ZSIpOworICAgICAgICBldmFsQW5kTG9nKCJzdGF0ZSA9ICdvcGVu
M2NvbXBsZXRlJyIpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgfQorICAgIGRlYnVnKCIiKTsK
K30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3Rlc3QoKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTI1MzU5MDZjNTEyZmU1NzQ1MjJiOTZiYWYwMjMxYWY2N2E0ZjlhNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFi
b3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
ODI6IFVuY2F1Z2h0IEVycm9yOiBUaGlzIHNob3VsZCAqTk9UKiBiZSBjYXVnaHQhCitFbnN1cmUg
dGhhdCBhYm9ydGVkIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9ucyBhcmUgY29tcGxldGVseSBy
b2xsZWQgYmFjaworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0g
d2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJ
bmRleGVkREI7CitJREJUcmFuc2FjdGlvbiA9IHdpbmRvdy5JREJUcmFuc2FjdGlvbiB8fCB3aW5k
b3cud2Via2l0SURCVHJhbnNhY3Rpb247CitQQVNTIGluZGV4ZWREQiA9PSBudWxsIGlzIGZhbHNl
CitQQVNTIElEQlRyYW5zYWN0aW9uID09IG51bGwgaXMgZmFsc2UKKworaW5kZXhlZERCLm9wZW4o
J3ZlcnNpb24tY2hhbmdlLWFib3J0JykKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorCit2Y3Jl
cSA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpCitzZXRWZXJzaW9uMSgpIGNhbGxiYWNrCitQ
QVNTIHZjcmVxLnJlc3VsdCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uIGlzIHRydWUKK3N0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlMScpCitzZXRWZXJzaW9uMSBjb21wbGV0ZQor
UEFTUyBkYi52ZXJzaW9uIGlzICJ2ZXJzaW9uIDEiCisKK3ZjcmVxID0gZGIuc2V0VmVyc2lvbign
dmVyc2lvbiAyJykKK3NldFZlcnNpb24yKCkgY2FsbGJhY2sKK1BBU1MgZGIudmVyc2lvbiBpcyAi
dmVyc2lvbiAyIgorUEFTUyB2Y3JlcS5yZXN1bHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiBp
cyB0cnVlCitzdG9yZSA9IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCdzdG9yZTEnKQorc3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUyJykKK3JhaXNpbmcgZXhjZXB0aW9uCisKK3NldFZl
cnNpb24yQWJvcnQoKSBjYWxsYmFjaworUEFTUyBkYi52ZXJzaW9uIGlzICJ2ZXJzaW9uIDEiCitQ
QVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3N0b3JlMScpIGlzIHRydWUKK1BBU1Mg
ZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUyJykgaXMgZmFsc2UKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMjkzMTk0ODhjMWNkZmY0OTkyYjgxYzdmN2U5MmI3ZGJiZjA1YmI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFu
Z2UtYWJvcnQuaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
PgorCitkZXNjcmlwdGlvbigiRW5zdXJlIHRoYXQgYWJvcnRlZCBWRVJTSU9OX0NIQU5HRSB0cmFu
c2FjdGlvbnMgYXJlIGNvbXBsZXRlbHkgcm9sbGVkIGJhY2siKTsKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworCisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2lu
ZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRl
eGVkREI7Iik7CisgICAgZXZhbEFuZExvZygiSURCVHJhbnNhY3Rpb24gPSB3aW5kb3cuSURCVHJh
bnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uOyIpOworICAgIHNob3VsZEJl
RmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7CisgICAgc2hvdWxkQmVGYWxzZSgiSURCVHJhbnNh
Y3Rpb24gPT0gbnVsbCIpOworICAgIGRlYnVnKCIiKTsKKyAgICBvcGVuREJDb25uZWN0aW9uKCk7
Cit9CisKK2Z1bmN0aW9uIG9wZW5EQkNvbm5lY3Rpb24oKQoreworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbigndmVyc2lvbi1jaGFuZ2UtYWJvcnQnKSIpOworICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIG9wZW5TdWNjZXNzKCkKK3sKKyAg
ICB3aW5kb3cuZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAg
ICBkZWJ1ZygiIik7CisKKyAgICBldmFsQW5kTG9nKCJ2Y3JlcSA9IGRiLnNldFZlcnNpb24oJ3Zl
cnNpb24gMScpIik7CisgICAgdmNyZXEub25zdWNjZXNzID0gaW5TZXRWZXJzaW9uMTsKKyAgICB2
Y3JlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0aW9uIGlu
U2V0VmVyc2lvbjEoKQoreworICAgIGRlYnVnKCJzZXRWZXJzaW9uMSgpIGNhbGxiYWNrIik7Cisg
ICAgc2hvdWxkQmVUcnVlKCJ2Y3JlcS5yZXN1bHQgaW5zdGFuY2VvZiBJREJUcmFuc2FjdGlvbiIp
OworICAgIHRyYW5zID0gdmNyZXEucmVzdWx0OworICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVj
dGVkQWJvcnRDYWxsYmFjazsKKyAgICB0cmFucy5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IHNldFZlcnNpb24xQ29tcGxldGU7CisKKyAg
ICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZTEnKSIpOwor
fQorCitmdW5jdGlvbiBzZXRWZXJzaW9uMUNvbXBsZXRlKCkKK3sKKyAgICBkZWJ1Zygic2V0VmVy
c2lvbjEgY29tcGxldGUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24i
LCAidmVyc2lvbiAxIik7CisgICAgZGVidWcoIiIpOworCisgICAgZXZhbEFuZExvZygidmNyZXEg
PSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDInKSIpOworICAgIHZjcmVxLm9uc3VjY2VzcyA9IGlu
U2V0VmVyc2lvbjI7CisgICAgdmNyZXEub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworfQorCitmdW5jdGlvbiBpblNldFZlcnNpb24yKCkKK3sKKyAgICBkZWJ1Zygic2V0VmVyc2lv
bjIoKSBjYWxsYmFjayIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIs
ICJ2ZXJzaW9uIDIiKTsKKyAgICBzaG91bGRCZVRydWUoInZjcmVxLnJlc3VsdCBpbnN0YW5jZW9m
IElEQlRyYW5zYWN0aW9uIik7CisgICAgdHJhbnMgPSB2Y3JlcS5yZXN1bHQ7CisgICAgdHJhbnMu
b25hYm9ydCA9IHNldFZlcnNpb24yQWJvcnQ7CisgICAgdHJhbnMub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIHRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxl
dGVDYWxsYmFjazsKKworICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuZGVsZXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlMScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmUyJykiKTsKKworICAgIGRlYnVnKCJyYWlzaW5nIGV4Y2VwdGlvbiIpOworICAg
IHRocm93IG5ldyBFcnJvcigiVGhpcyBzaG91bGQgKk5PVCogYmUgY2F1Z2h0ISIpOworfQorCitm
dW5jdGlvbiBzZXRWZXJzaW9uMkFib3J0KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
InNldFZlcnNpb24yQWJvcnQoKSBjYWxsYmFjayIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIDEiKTsKKyAgICBzaG91bGRCZVRydWUoImRiLm9iamVj
dFN0b3JlTmFtZXMuY29udGFpbnMoJ3N0b3JlMScpIik7CisgICAgc2hvdWxkQmVGYWxzZSgiZGIu
b2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUyJykiKTsKKworICAgIGRvbmUoKTsKK30K
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKK3Rlc3QoKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112883</attachid>
            <date>2011-10-28 11:26:41 -0700</date>
            <delta_ts>2011-10-28 12:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70974-20111028112640.patch</filename>
            <type>text/plain</type>
            <size>18969</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NjMxYWZiMWIzNzVjMWFk
N2M3YjY3OGM4Y2U3MjBjNjc3M2UwM2YzLi5kMTc4MjM4YmUyOWNiNmQzNjY4MTdjOTlhN2I2OTYz
MjE4OTRlZDg5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMTAtMjggIEpvc2h1
YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IERhdGFi
YXNlIG1ldGFkYXRhIGNoYW5nZXMgc2hvdWxkIGJlIHRpZWQgdG8gdHJhbnNhY3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTc0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGF0YWJhc2UgbWV0YWRh
dGEgKHRoYXQgaXMsIHRoZSB2ZXJzaW9uIHN0cmluZykgd2FzIHJvbGxlZCBiYWNrCisgICAgICAg
IG9uIGFib3J0IGJ5IGFuIGFib3J0IHRhc2suIElmIHRoZSBhYm9ydCB0YXNrIGRpZG4ndCBydW4g
ZS5nLgorICAgICAgICBkdWUgdG8gYSBjcmFzaCwgdGhlIG1ldGFkYXRhIHdvdWxkIG5vdCBiZSBy
ZXZlcnRlZC4gQWxsIG9mIHRoZQorICAgICAgICBvdGhlciBzdG9yZS9pbmRleC9kYXRhIGNoYW5n
ZXMgd2VyZSB3cml0dGVuIGludG8gdGhlIHRyYW5zYWN0aW9uCisgICAgICAgIGl0c2VsZiwgc28g
dGhlIG1ldGFkYXRhIG5vdyBpcyB0b28uIFJlZmFjdG9yZWQgdGhlIG1ldGFkYXRhCisgICAgICAg
IGdldC9jcmVhdGUvdXBkYXRlIG1ldGhvZHMgZm9yIGNsYXJpdHkgYXMgd2VsbC4KKworICAgICAg
ICBOb3RlIHRoYXQgdGhlIG5ldyB0ZXN0cyBkb24ndCBhY3R1YWxseSB2ZXJpZnkgdGhhdCB0aGUg
Y29kZSBoYW5kbGVzCisgICAgICAgIHRoaXMgY2FzZTsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgZG9u
ZSB3aXRoIHBlcnNpc3RlbmNlIHRlc3RzCisgICAgICAgIHRoYXQgc3BhbiBtdWx0aXBsZSBydW5z
IG9mIHRoZSBicm93c2VyIGFuZCBpbmR1Y2UgY3Jhc2hlcy4KKyAgICAgICAgVGhlIG5ldyB0ZXN0
cyBkbyB2ZXJpZnkgdGhhdCB0aGVzZSBjaGFuZ2VzIGRvbid0IGNhdXNlIHJlZ3Jlc3Npb25zCisg
ICAgICAgIG5vdCBjYXVnaHQgYnkgb3RoZXIgdGVzdHMuCisKKyAgICAgICAgVGVzdHM6IHN0b3Jh
Z2UvaW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAg
IHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwKKworICAgICAgICAq
IHN0b3JhZ2UvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZElt
cGw6OklEQkRhdGFiYXNlQmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6c2V0VmVyc2lvbkludGVybmFsKToKKyAgICAgICAgKiBzdG9yYWdlL0lE
QkxldmVsREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJh
Y2tpbmdTdG9yZTo6Z2V0SURCRGF0YWJhc2VNZXRhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJMZXZlbERCQmFja2luZ1N0b3JlOjpjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkxldmVsREJCYWNraW5nU3RvcmU6OnVwZGF0ZUlEQkRhdGFiYXNlTWV0
YURhdGEpOgorICAgICAgICAqIHN0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oOgorCiAy
MDExLTEwLTI4ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWMg
YnVpbGQgZml4IGFmdGVyIHI5ODcxMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQmFja2luZ1N0
b3JlLmgKaW5kZXggNmUxM2Y0ZmE2MWM0YTIxZDQyYzNmZmRlNWJkYzczZDkxZGRiM2M0MS4uNmQ4
ODFhNThiMzc1MGFlMmQ4M2U0OTljYzk3MWE4YjQwMDAwZmIzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQkJhY2tpbmdTdG9yZS5oCkBAIC00Nyw4ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JREJCYWNraW5nU3RvcmUoKSB7fTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRh
YmFzZU5hbWVzKFZlY3RvcjxTdHJpbmc+JiBmb3VuZE5hbWVzKSA9IDA7Ci0gICAgdmlydHVhbCBi
b29sIGV4dHJhY3RJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5n
JiBmb3VuZFZlcnNpb24sIGludDY0X3QmIGZvdW5kSWQpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
c2V0SURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dmVyc2lvbiwgaW50NjRfdCYgcm93SWQsIGJvb2wgaW52YWxpZFJvd0lkKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJp
bmcmIGZvdW5kVmVyc2lvbiwgaW50NjRfdCYgZm91bmRJZCkgPSAwOworICAgIHZpcnR1YWwgYm9v
bCBjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uLCBpbnQ2NF90JiByb3dJZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCB1cGRh
dGVJREJEYXRhYmFzZU1ldGFEYXRhKGludDY0X3Qgcm93SWQsIGNvbnN0IFN0cmluZyYgdmVyc2lv
bikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGdldE9iamVjdFN0b3JlcyhpbnQ2NF90IGRhdGFi
YXNlSWQsIFZlY3RvcjxpbnQ2NF90PiYgZm91bmRJZHMsIFZlY3RvcjxTdHJpbmc+JiBmb3VuZE5h
bWVzLCBWZWN0b3I8U3RyaW5nPiYgZm91bmRLZXlQYXRocywgVmVjdG9yPGJvb2w+JiBmb3VuZEF1
dG9JbmNyZW1lbnRGbGFncykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RTdG9y
ZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBr
ZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQsIGludDY0X3QmIGFzc2lnbmVkT2JqZWN0U3RvcmVJ
ZCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKaW5kZXggNTgxYWE4YzAxNTNkOTZlMDk5MDg0MWM0ODY3ZjU0ZmE1YWZhYmYxNy4u
OWFmMjJlNDRiYzExYzFjNjdhYTJlYjRjNTM1YzZlNTY0ZmQ1M2ZhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC04OCw5ICs4
OCw5IEBAIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OklEQkRhdGFiYXNlQmFja2VuZEltcGwoY29u
c3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5nU3RvCiB7CiAgICAgQVNTRVJUKCFtX25hbWUuaXNO
dWxsKCkpOwogCi0gICAgYm9vbCBzdWNjZXNzID0gbV9iYWNraW5nU3RvcmUtPmV4dHJhY3RJREJE
YXRhYmFzZU1ldGFEYXRhKG1fbmFtZSwgbV92ZXJzaW9uLCBtX2lkKTsKLSAgICBBU1NFUlRfVU5V
U0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MgPT0gKG1faWQgIT0gSW52YWxpZElkKSk7Ci0gICAgaWYgKCFt
X2JhY2tpbmdTdG9yZS0+c2V0SURCRGF0YWJhc2VNZXRhRGF0YShtX25hbWUsIG1fdmVyc2lvbiwg
bV9pZCwgbV9pZCA9PSBJbnZhbGlkSWQpKQorICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0
b3JlLT5nZXRJREJEYXRhYmFzZU1ldGFEYXRhKG1fbmFtZSwgbV92ZXJzaW9uLCBtX2lkKTsKKyAg
ICBBU1NFUlQoc3VjY2VzcyA9PSAobV9pZCAhPSBJbnZhbGlkSWQpKTsKKyAgICBpZiAoIXN1Y2Nl
c3MgJiYgIW1fYmFja2luZ1N0b3JlLT5jcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKG1fbmFtZSwg
bV92ZXJzaW9uLCBtX2lkKSkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEZJWE1F
OiBOZWVkIGJldHRlciBlcnJvciBoYW5kbGluZy4KICAgICBsb2FkT2JqZWN0U3RvcmVzKCk7CiB9
CkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpzZXRWZXJz
aW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWYKIHsKICAgICBpbnQ2
NF90IGRhdGFiYXNlSWQgPSBkYXRhYmFzZS0+aWQoKTsKICAgICBkYXRhYmFzZS0+bV92ZXJzaW9u
ID0gdmVyc2lvbjsKLSAgICBpZiAoIWRhdGFiYXNlLT5tX2JhY2tpbmdTdG9yZS0+c2V0SURCRGF0
YWJhc2VNZXRhRGF0YShkYXRhYmFzZS0+bV9uYW1lLCBkYXRhYmFzZS0+bV92ZXJzaW9uLCBkYXRh
YmFzZUlkLCBkYXRhYmFzZUlkID09IEludmFsaWRJZCkpIHsKKyAgICBpZiAoIWRhdGFiYXNlLT5t
X2JhY2tpbmdTdG9yZS0+dXBkYXRlSURCRGF0YWJhc2VNZXRhRGF0YShkYXRhYmFzZUlkLCBkYXRh
YmFzZS0+bV92ZXJzaW9uKSkgewogICAgICAgICAvLyBGSVhNRTogVGhlIEluZGV4ZWQgRGF0YWJh
c2Ugc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGFuIGVycm9yIGNvZGUgZGVkaWNhdGVkIHRv
IEkvTyBlcnJvcnMuCiAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9y
OjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiRXJyb3Igd3JpdGlu
ZyBkYXRhIHRvIHN0YWJsZSBzdG9yYWdlLiIpKTsKICAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5n
U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3Jl
LmNwcAppbmRleCBmYTRlNWIzNDgyNmIxZDk1OWQ1NjkyNWRiZjg0NmU1YTQyMDAxZTY4Li5jNWQ2
ZmI0ZWI3MzE1MWY0OWMyOTU5OWQ4Njg3NDJlODYyNzYxYmY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTE4Niw3ICsxODYs
NyBAQCB2b2lkIElEQkxldmVsREJCYWNraW5nU3RvcmU6OmdldERhdGFiYXNlTmFtZXMoVmVjdG9y
PFN0cmluZz4mIGZvdW5kTmFtZXMpCiAgICAgfQogfQogCi1ib29sIElEQkxldmVsREJCYWNraW5n
U3RvcmU6OmV4dHJhY3RJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgU3Ry
aW5nJiBmb3VuZFZlcnNpb24sIGludDY0X3QmIGZvdW5kSWQpCitib29sIElEQkxldmVsREJCYWNr
aW5nU3RvcmU6OmdldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJp
bmcmIGZvdW5kVmVyc2lvbiwgaW50NjRfdCYgZm91bmRJZCkKIHsKICAgICBjb25zdCBWZWN0b3I8
Y2hhcj4ga2V5ID0gRGF0YWJhc2VOYW1lS2V5OjplbmNvZGUobV9pZGVudGlmaWVyLCBuYW1lKTsK
IApAQCAtMjE2LDIwICsyMTYsMjUgQEAgc3RhdGljIGludDY0X3QgZ2V0TmV3RGF0YWJhc2VJZChM
ZXZlbERCRGF0YWJhc2UqIGRiKQogICAgIHJldHVybiBkYXRhYmFzZUlkOwogfQogCi1ib29sIElE
QkxldmVsREJCYWNraW5nU3RvcmU6OnNldElEQkRhdGFiYXNlTWV0YURhdGEoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24sIGludDY0X3QmIHJvd0lkLCBib29sIGludmFs
aWRSb3dJZCkKK2Jvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlSURCRGF0YWJhc2VN
ZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50NjRf
dCYgcm93SWQpCiB7Ci0gICAgaWYgKGludmFsaWRSb3dJZCkgewotICAgICAgICByb3dJZCA9IGdl
dE5ld0RhdGFiYXNlSWQobV9kYi5nZXQoKSk7Ci0gICAgICAgIGlmIChyb3dJZCA8IDApCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgY29uc3QgVmVjdG9yPGNoYXI+IGtleSA9
IERhdGFiYXNlTmFtZUtleTo6ZW5jb2RlKG1faWRlbnRpZmllciwgbmFtZSk7Ci0gICAgICAgIGlm
ICghcHV0SW50KG1fZGIuZ2V0KCksIGtleSwgcm93SWQpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KKyAgICByb3dJZCA9IGdldE5ld0RhdGFiYXNlSWQobV9kYi5nZXQoKSk7Cisg
ICAgaWYgKHJvd0lkIDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgY29uc3QgVmVj
dG9yPGNoYXI+IGtleSA9IERhdGFiYXNlTmFtZUtleTo6ZW5jb2RlKG1faWRlbnRpZmllciwgbmFt
ZSk7CisgICAgaWYgKCFwdXRJbnQobV9kYi5nZXQoKSwga2V5LCByb3dJZCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIXB1dFN0cmluZyhtX2RiLmdldCgpLCBEYXRhYmFzZU1ldGFE
YXRhS2V5OjplbmNvZGUocm93SWQsIERhdGFiYXNlTWV0YURhdGFLZXk6OmtVc2VyVmVyc2lvbiks
IHZlcnNpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6dXBkYXRlSURCRGF0YWJhc2VNZXRhRGF0YShp
bnQ2NF90IHJvd0lkLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCit7CisgICAgQVNTRVJUKG1fY3Vy
cmVudFRyYW5zYWN0aW9uKTsKKyAgICBpZiAoIXB1dFN0cmluZyhtX2N1cnJlbnRUcmFuc2FjdGlv
bi5nZXQoKSwgRGF0YWJhc2VNZXRhRGF0YUtleTo6ZW5jb2RlKHJvd0lkLCBEYXRhYmFzZU1ldGFE
YXRhS2V5OjprVXNlclZlcnNpb24pLCB2ZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQkxldmVsREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2
ZWxEQkJhY2tpbmdTdG9yZS5oCmluZGV4IGMxZDNhYzRkYmY5OGZiZmVkNTQ4OTI0ODU3OGVjOGQy
ZjNiODRlMWUuLjlhMzdjMGQ3MDg2MzMxMWNiNmQyMTJiNjViY2JhZjc3NTg0YjZiY2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5oCkBAIC00
NSw4ICs0NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJMZXZlbERCQmFja2luZ1N0b3Jl
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhWZWN0b3I8U3RyaW5nPiYg
Zm91bmROYW1lcyk7Ci0gICAgdmlydHVhbCBib29sIGV4dHJhY3RJREJEYXRhYmFzZU1ldGFEYXRh
KGNvbnN0IFN0cmluZyYgbmFtZSwgU3RyaW5nJiBmb3VuZFZlcnNpb24sIGludDY0X3QmIGZvdW5k
SWQpOwotICAgIHZpcnR1YWwgYm9vbCBzZXRJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBpbnQ2NF90JiByb3dJZCwgYm9vbCBpbnZh
bGlkUm93SWQpOworICAgIHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0
IFN0cmluZyYgbmFtZSwgU3RyaW5nJiBmb3VuZFZlcnNpb24sIGludDY0X3QmIGZvdW5kSWQpOwor
ICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBpbnQ2NF90JiByb3dJZCk7CisgICAgdmlydHVh
bCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoaW50NjRfdCByb3dJZCwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRPYmplY3RTdG9yZXMoaW50NjRf
dCBkYXRhYmFzZUlkLCBWZWN0b3I8aW50NjRfdD4mIGZvdW5kSWRzLCBWZWN0b3I8U3RyaW5nPiYg
Zm91bmROYW1lcywgVmVjdG9yPFN0cmluZz4mIGZvdW5kS2V5UGF0aHMsIFZlY3Rvcjxib29sPiYg
Zm91bmRBdXRvSW5jcmVtZW50RmxhZ3MpOwogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RT
dG9yZShpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQsIGludDY0X3QmIGFzc2lnbmVkT2JqZWN0U3Rv
cmVJZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOTU4MzQ4YTUxZjE4ZGUyOTg0YTMwYWFjZTA3NmNlNDFkYmQ1MDU4OS4u
OWY4MzNhMDE1MjhkNDA2YzZmNmQwZGExMzhmMWNlNGJhNTE3ZjFjNSAxMDA3NTUKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDExLTEwLTI4ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgSW5kZXhlZERCOiBEYXRhYmFzZSBtZXRhZGF0YSBjaGFuZ2VzIHNob3VsZCBiZSB0
aWVkIHRvIHRyYW5zYWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MDk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmlu
Zy10cmFuc2FjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92
ZXJzaW9uLWNoYW5nZS1hYm9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWw6IEFkZGVkLgorCiAyMDExLTEw
LTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIFVuc3VwcmVzcyBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcu
aHRtbCBhcyBpdCBzaG91bGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NjZmZTRjYmM3NDUyZTBkYjY4MTE5YjlmM2YyNjY3NzZjMGUyNzRhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJh
bnNhY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDIgQEAKK1Rlc3QgSW5kZXhlZERCIG9w
ZW5pbmcgZGF0YWJhc2UgY29ubmVjdGlvbnMgZHVyaW5nIHRyYW5zYWN0aW9ucworCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3
aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7CitQQVNTIGluZGV4
ZWREQiA9PSBudWxsIGlzIGZhbHNlCitJREJUcmFuc2FjdGlvbiA9IHdpbmRvdy5JREJUcmFuc2Fj
dGlvbiB8fCB3aW5kb3cud2Via2l0SURCVHJhbnNhY3Rpb247CitQQVNTIElEQlRyYW5zYWN0aW9u
ID09IG51bGwgaXMgZmFsc2UKKworcHJlcGFyZSBkYXRhYmFzZQorb3BlbnJlcTEgPSBpbmRleGVk
REIub3BlbignZGIxJykKK2RiYzEgPSBvcGVucmVxMS5yZXN1bHQKK3NldHZlcnJlcSA9IGRiYzEu
c2V0VmVyc2lvbignMS4wJykKK2RiYzEuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCitk
YXRhYmFzZSBwcmVwYXJhdGlvbiBjb21wbGV0ZQorCitzdGFydGluZyB0cmFuc2FjdGlvbgorc3Rh
dGUgPSAnc3RhcnRpbmcnCit0cmFucyA9IGRiYzEudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCit0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJyku
cHV0KCd2YWx1ZScsICdrZXknKQorCit0cnlpbmcgdG8gb3BlbiB0aGUgc2FtZSBkYXRhYmFzZQor
b3BlbnJlcTIgPSBpbmRleGVkREIub3BlbignZGIxJykKKwordHJ5aW5nIHRvIG9wZW4gYSBkaWZm
ZXJlbnQgZGF0YWJhc2UKK29wZW5yZXEzID0gaW5kZXhlZERCLm9wZW4oJ2RiMicpCisKK29wZW5y
ZXEyLm9uc3VjY2VzcworUEFTUyBzdGF0ZSBpcyAic3RhcnRpbmciCitzdGF0ZSA9ICdvcGVuMmNv
bXBsZXRlJworCitvcGVucmVxMy5vbnN1Y2Nlc3MKK1BBU1Mgc3RhdGUgaXMgIm9wZW4yY29tcGxl
dGUiCitzdGF0ZSA9ICdvcGVuM2NvbXBsZXRlJworCit0cmFuc2FjdGlvbiBjb21wbGV0ZQorUEFT
UyBzdGF0ZSBpcyAib3BlbjNjb21wbGV0ZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzRm
MTZkZWZhNTI2NmFmN2NlODUzYTg3NDMyYTljY2MwMGJmZWNiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24uaHRt
bApAQCAtMCwwICsxLDk2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCJUZXN0IEluZGV4ZWREQiBvcGVuaW5nIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGR1cmluZyB0
cmFuc2FjdGlvbnMiKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53
ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsiKTsKKyAgICBzaG91bGRCZUZh
bHNlKCJpbmRleGVkREIgPT0gbnVsbCIpOworICAgIGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9u
ID0gd2luZG93LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbjsi
KTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJUcmFuc2FjdGlvbiA9PSBudWxsIik7CisgICAgZGVi
dWcoIiIpOworICAgIHByZXBhcmVEYXRhYmFzZSgpOworfQorCitmdW5jdGlvbiBwcmVwYXJlRGF0
YWJhc2UoKQoreworICAgIGRlYnVnKCJwcmVwYXJlIGRhdGFiYXNlIik7CisgICAgZXZhbEFuZExv
Zygib3BlbnJlcTEgPSBpbmRleGVkREIub3BlbignZGIxJykiKTsKKyAgICBvcGVucmVxMS5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgb3BlbnJlcTEub25zdWNjZXNzID0g
ZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgZXZhbEFuZExvZygiZGJjMSA9IG9wZW5yZXExLnJlc3Vs
dCIpOworICAgICAgICBldmFsQW5kTG9nKCJzZXR2ZXJyZXEgPSBkYmMxLnNldFZlcnNpb24oJzEu
MCcpIik7CisgICAgICAgIHNldHZlcnJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgICAgIHNldHZlcnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAg
ICAgICAgZXZhbEFuZExvZygiZGJjMS5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsK
KyAgICAgICAgICAgIHNldHZlcnJlcS5yZXN1bHQub25jb21wbGV0ZSA9IGZ1bmN0aW9uIChlKSB7
CisgICAgICAgICAgICAgICAgZGVidWcoImRhdGFiYXNlIHByZXBhcmF0aW9uIGNvbXBsZXRlIik7
CisgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgIHN0YXJ0VHJhbnNh
Y3Rpb24oKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rp
b24gc3RhcnRUcmFuc2FjdGlvbigpCit7CisgICAgZGVidWcoInN0YXJ0aW5nIHRyYW5zYWN0aW9u
Iik7CisgICAgZXZhbEFuZExvZygic3RhdGUgPSAnc3RhcnRpbmcnIik7CisgICAgZXZhbEFuZExv
ZygidHJhbnMgPSBkYmMxLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKSIpOworICAgIGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKS5wdXQoJ3ZhbHVlJywgJ2tleScpIik7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOworICAgIHRyYW5zLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICB0cmFucy5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgZGVi
dWcoInRyYW5zYWN0aW9uIGNvbXBsZXRlIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygic3RhdGUiLCAib3BlbjNjb21wbGV0ZSIpOworICAgICAgICBkb25lKCk7CisgICAgfTsKKwor
ICAgIGRlYnVnKCIiKTsKKyAgICB0cnlPcGVucygpOworfQorCisKK2Z1bmN0aW9uIHRyeU9wZW5z
KCkKK3sKKyAgICBkZWJ1ZygidHJ5aW5nIHRvIG9wZW4gdGhlIHNhbWUgZGF0YWJhc2UiKTsKKyAg
ICBldmFsQW5kTG9nKCJvcGVucmVxMiA9IGluZGV4ZWREQi5vcGVuKCdkYjEnKSIpOworICAgIG9w
ZW5yZXEyLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBvcGVucmVxMi5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkgeworICAgICAgICBkZWJ1Zygib3BlbnJlcTIub25zdWNj
ZXNzIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic3RhdGUiLCAic3RhcnRpbmci
KTsKKyAgICAgICAgZXZhbEFuZExvZygic3RhdGUgPSAnb3BlbjJjb21wbGV0ZSciKTsKKyAgICAg
ICAgZGVidWcoIiIpOworICAgIH0KKyAgICBkZWJ1ZygiIik7CisKKyAgICBkZWJ1ZygidHJ5aW5n
IHRvIG9wZW4gYSBkaWZmZXJlbnQgZGF0YWJhc2UiKTsKKyAgICBldmFsQW5kTG9nKCJvcGVucmVx
MyA9IGluZGV4ZWREQi5vcGVuKCdkYjInKSIpOworICAgIG9wZW5yZXEzLm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICBvcGVucmVxMy5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAo
ZSkgeworICAgICAgICBkZWJ1Zygib3BlbnJlcTMub25zdWNjZXNzIik7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygic3RhdGUiLCAib3BlbjJjb21wbGV0ZSIpOworICAgICAgICBldmFs
QW5kTG9nKCJzdGF0ZSA9ICdvcGVuM2NvbXBsZXRlJyIpOworICAgICAgICBkZWJ1ZygiIik7Cisg
ICAgfQorICAgIGRlYnVnKCIiKTsKK30KKwordGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNp
b24tY2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzg2Y2Fh
OWMxMTZkOTkzYzU2NmEzMThiMjI0NTY1ZGFkODdmODg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4NjogVW5jYXVnaHQg
RXJyb3I6IFRoaXMgc2hvdWxkICpOT1QqIGJlIGNhdWdodCEKK0Vuc3VyZSB0aGF0IGFib3J0ZWQg
VkVSU0lPTl9DSEFOR0UgdHJhbnNhY3Rpb25zIGFyZSBjb21wbGV0ZWx5IHJvbGxlZCBiYWNrCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhl
ZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKK0lE
QlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJU
cmFuc2FjdGlvbjsKK1BBU1MgaW5kZXhlZERCID09IG51bGwgaXMgZmFsc2UKK1BBU1MgSURCVHJh
bnNhY3Rpb24gPT0gbnVsbCBpcyBmYWxzZQorCitpbmRleGVkREIub3BlbigndmVyc2lvbi1jaGFu
Z2UtYWJvcnQnKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CisKK3ZjcmVxID0gZGIuc2V0VmVy
c2lvbigndmVyc2lvbiAxJykKK3NldFZlcnNpb24xKCkgY2FsbGJhY2sKK1BBU1MgdmNyZXEucmVz
dWx0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rpb24gaXMgdHJ1ZQorc3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmUxJykKK3NldFZlcnNpb24xIGNvbXBsZXRlCitQQVNTIGRiLnZlcnNp
b24gaXMgInZlcnNpb24gMSIKKwordmNyZXEgPSBkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDInKQor
c2V0VmVyc2lvbjIoKSBjYWxsYmFjaworUEFTUyBkYi52ZXJzaW9uIGlzICJ2ZXJzaW9uIDIiCitQ
QVNTIHZjcmVxLnJlc3VsdCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uIGlzIHRydWUKK3N0b3Jl
ID0gZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ3N0b3JlMScpCitzdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZTInKQorcmFpc2luZyBleGNlcHRpb24KKworc2V0VmVyc2lvbjJBYm9ydCgp
IGNhbGxiYWNrCitQQVNTIGRiLnZlcnNpb24gaXMgInZlcnNpb24gMSIKK1BBU1MgZGIub2JqZWN0
U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUxJykgaXMgdHJ1ZQorUEFTUyBkYi5vYmplY3RTdG9y
ZU5hbWVzLmNvbnRhaW5zKCdzdG9yZTInKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3
OTcwYzMzZTNmOWJlZjQ2OTIyMDNkNzViNGRkYmMxNjA1NWFlNmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC5odG1s
CkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCJFbnN1cmUgdGhhdCBhYm9ydGVkIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9ucyBhcmUg
Y29tcGxldGVseSByb2xsZWQgYmFjayIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKworZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERC
IHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsiKTsKKyAg
ICBldmFsQW5kTG9nKCJJREJUcmFuc2FjdGlvbiA9IHdpbmRvdy5JREJUcmFuc2FjdGlvbiB8fCB3
aW5kb3cud2Via2l0SURCVHJhbnNhY3Rpb247Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhl
ZERCID09IG51bGwiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJUcmFuc2FjdGlvbiA9PSBudWxs
Iik7CisgICAgZGVidWcoIiIpOworICAgIG9wZW5EQkNvbm5lY3Rpb24oKTsKK30KKworZnVuY3Rp
b24gb3BlbkRCQ29ubmVjdGlvbigpCit7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKCd2ZXJzaW9uLWNoYW5nZS1hYm9ydCcpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBvcGVuU3VjY2VzczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKK30KKworZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQoreworICAgIHdpbmRvdy5kYiA9
IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOworICAgIGRlYnVnKCIiKTsK
KworICAgIGV2YWxBbmRMb2coInZjcmVxID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykiKTsK
KyAgICB2Y3JlcS5vbnN1Y2Nlc3MgPSBpblNldFZlcnNpb24xOworICAgIHZjcmVxLm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24gaW5TZXRWZXJzaW9uMSgp
Cit7CisgICAgZGVidWcoInNldFZlcnNpb24xKCkgY2FsbGJhY2siKTsKKyAgICBzaG91bGRCZVRy
dWUoInZjcmVxLnJlc3VsdCBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uIik7CisgICAgdHJhbnMg
PSB2Y3JlcS5yZXN1bHQ7CisgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOworICAgIHRyYW5zLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0
cmFucy5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbjFDb21wbGV0ZTsKKworICAgIGV2YWxBbmRMb2co
InN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlMScpIik7Cit9CisKK2Z1bmN0aW9u
IHNldFZlcnNpb24xQ29tcGxldGUoKQoreworICAgIGRlYnVnKCJzZXRWZXJzaW9uMSBjb21wbGV0
ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIDEi
KTsKKyAgICBkZWJ1ZygiIik7CisKKyAgICBldmFsQW5kTG9nKCJ2Y3JlcSA9IGRiLnNldFZlcnNp
b24oJ3ZlcnNpb24gMicpIik7CisgICAgdmNyZXEub25zdWNjZXNzID0gaW5TZXRWZXJzaW9uMjsK
KyAgICB2Y3JlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CisKK2Z1bmN0
aW9uIGluU2V0VmVyc2lvbjIoKQoreworICAgIGRlYnVnKCJzZXRWZXJzaW9uMigpIGNhbGxiYWNr
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInZlcnNpb24gMiIp
OworICAgIHNob3VsZEJlVHJ1ZSgidmNyZXEucmVzdWx0IGluc3RhbmNlb2YgSURCVHJhbnNhY3Rp
b24iKTsKKyAgICB0cmFucyA9IHZjcmVxLnJlc3VsdDsKKyAgICB0cmFucy5vbmFib3J0ID0gc2V0
VmVyc2lvbjJBYm9ydDsKKyAgICB0cmFucy5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOwor
CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5kZWxldGVPYmplY3RTdG9yZSgnc3RvcmUxJyki
KTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZTIn
KSIpOworCisgICAgLy8gRW5zdXJlIHRoZSB0ZXN0IGhhcm5lc3MgZXJyb3IgaGFuZGxlciBpcyBu
b3QgaW52b2tlZC4KKyAgICB3aW5kb3cub3JpZ2luYWxXaW5kb3dPbkVycm9yID0gd2luZG93Lm9u
ZXJyb3I7CisgICAgd2luZG93Lm9uZXJyb3IgPSBudWxsOworCisgICAgZGVidWcoInJhaXNpbmcg
ZXhjZXB0aW9uIik7CisgICAgdGhyb3cgbmV3IEVycm9yKCJUaGlzIHNob3VsZCAqTk9UKiBiZSBj
YXVnaHQhIik7Cit9CisKK2Z1bmN0aW9uIHNldFZlcnNpb24yQWJvcnQoKQoreworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1Zygic2V0VmVyc2lvbjJBYm9ydCgpIGNhbGxiYWNrIik7CisKKyAgICAv
LyBSZXN0b3JlIHRlc3QgaGFybmVzcyBlcnJvciBoYW5kbGVyLgorICAgIHdpbmRvdy5vbmVycm9y
ID0gd2luZG93Lm9yaWdpbmFsV2luZG93T25FcnJvcjsKKworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIDEiKTsKKyAgICBzaG91bGRCZVRydWUoImRiLm9i
amVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3N0b3JlMScpIik7CisgICAgc2hvdWxkQmVGYWxzZSgi
ZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUyJykiKTsKKworICAgIGRvbmUoKTsK
K30KKwordGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>