<?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>92562</bug_id>
          
          <creation_ts>2012-07-27 17:02:15 -0700</creation_ts>
          <short_desc>IndexedDB: IDBCursor.continue(key) does not throw for key &quot;behind&quot; cursor</short_desc>
          <delta_ts>2012-08-01 13:21:14 -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>
          
          <blocked>85513</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>681246</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-27 17:02:15 -0700</bug_when>
    <thetext>IndexedDB: IDBCursor.continue(key) does not throw for out of range key</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681250</commentid>
    <comment_count>1</comment_count>
      <attachid>155090</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-27 17:08:54 -0700</bug_when>
    <thetext>Created attachment 155090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681254</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-27 17:11:32 -0700</bug_when>
    <thetext>I found this while looking at our exception coverage for http://webkit.org/b/85513

dgrogan@, alecflett@ - please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681256</commentid>
    <comment_count>3</comment_count>
      <attachid>155090</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-27 17:12:24 -0700</bug_when>
    <thetext>Comment on attachment 155090
Patch

Whoops, forgot expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681259</commentid>
    <comment_count>4</comment_count>
      <attachid>155092</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-27 17:16:28 -0700</bug_when>
    <thetext>Created attachment 155092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681260</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-27 17:16:57 -0700</bug_when>
    <thetext>Updated patch has expectations and removes some LOG_ERROR lines I left in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682489</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-30 16:05:44 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I found this while looking at our exception coverage for http://webkit.org/b/85513
&gt; 
&gt; dgrogan@, alecflett@ - please take a look.

Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682502</commentid>
    <comment_count>7</comment_count>
      <attachid>155092</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-30 16:16:24 -0700</bug_when>
    <thetext>Comment on attachment 155092
Patch

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

LGTM

&gt; Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp:45
&gt; +IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr&lt;IDBBackingStore::Cursor&gt; cursor, IDBCursor::Direction, CursorType cursorType, IDBTransactionBackendImpl* transaction, IDBObjectStoreBackendImpl* objectStore)

I&apos;m guessing IDBCursor::Direction is still used by IDBCursorBackendProxy?

&gt; LayoutTests/storage/indexeddb/resources/cursor-continue-dir.js:55
&gt; +        request.onsuccess = null;

What&apos;s going on with the request.onsuccess = null lines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682503</commentid>
    <comment_count>8</comment_count>
      <attachid>155092</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-30 16:24:34 -0700</bug_when>
    <thetext>Comment on attachment 155092
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp:45
&gt;&gt; +IDBCursorBackendImpl::IDBCursorBackendImpl(PassRefPtr&lt;IDBBackingStore::Cursor&gt; cursor, IDBCursor::Direction, CursorType cursorType, IDBTransactionBackendImpl* transaction, IDBObjectStoreBackendImpl* objectStore)
&gt; 
&gt; I&apos;m guessing IDBCursor::Direction is still used by IDBCursorBackendProxy?

No, it could be removed. (I rushed this patch a bit since it was a regression and I was headed out.) The direction is passed through to the IDBBackingStore::Cursor creation during the openCursor call, and the backend cursor is passed in here. Turns out the IDBCursorBackend* no longer needs to know about the direction at all. I can remove it. (I&apos;ll post an updated patch on Wednesday.)

&gt;&gt; LayoutTests/storage/indexeddb/resources/cursor-continue-dir.js:55
&gt;&gt; +        request.onsuccess = null;
&gt; 
&gt; What&apos;s going on with the request.onsuccess = null lines?

Debugging residue, I&apos;ll remove them. (Before fixing the bug the cursor.continue() call was not throwing, so the test would infinite-loop if the success handler was still around.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683187</commentid>
    <comment_count>9</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-07-31 09:21:43 -0700</bug_when>
    <thetext>in another patch, I&apos;m making progress towards replacing the &apos;unsigned short&apos; directions with IDBCursor::Direction, so definitely don&apos;t remove it! My intention is that for direction, either you&apos;re using the string (&quot;next&quot;) or the enum, (and the string quickly gets transformed into the enum) but not the unsigned short.

But this LGTM to me as well - makes me wonder what else we can rip out of the cursor backend, since it sounds like the backing store is doing most of the work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684235</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 09:32:57 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; in another patch, I&apos;m making progress towards replacing the &apos;unsigned short&apos; directions with IDBCursor::Direction, so definitely don&apos;t remove it! 

We&apos;re just talking about removing it from the IDBCursorBackendImpl constructor - that&apos;s not a problem, is it?

&gt; But this LGTM to me as well - makes me wonder what else we can rip out of the cursor backend, since it sounds like the backing store is doing most of the work.

It&apos;s pretty slim at this point. Most of the code is boilerplate or prefetching.

I think some of the deleteFunction() checks can turn into ASSERTs but I&apos;ll leave that for later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684263</commentid>
    <comment_count>11</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-08-01 10:05:57 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; in another patch, I&apos;m making progress towards replacing the &apos;unsigned short&apos; directions with IDBCursor::Direction, so definitely don&apos;t remove it! 
&gt; 
&gt; We&apos;re just talking about removing it from the IDBCursorBackendImpl constructor - that&apos;s not a problem, is it?

Nope...I just mean don&apos;t remove the enum itself in the process of cleaning this up..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684280</commentid>
    <comment_count>12</comment_count>
      <attachid>155832</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 10:26:08 -0700</bug_when>
    <thetext>Created attachment 155832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684283</commentid>
    <comment_count>13</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 10:27:28 -0700</bug_when>
    <thetext>Latest patch addresses dgrogan@&apos;s comments - the unused direction argument to the IDBCursorBackendImpl is removed, and the unnecessary event handler clearing is removed.

tony@ (or others) - r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684387</commentid>
    <comment_count>14</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-01 11:40:59 -0700</bug_when>
    <thetext>Oops, tony@ is unavailable.

ojan@, abarth@, eric@ - r? cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684465</commentid>
    <comment_count>15</comment_count>
      <attachid>155832</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-01 12:28:08 -0700</bug_when>
    <thetext>Comment on attachment 155832
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684513</commentid>
    <comment_count>16</comment_count>
      <attachid>155832</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 13:21:09 -0700</bug_when>
    <thetext>Comment on attachment 155832
Patch

Clearing flags on attachment: 155832

Committed r124361: &lt;http://trac.webkit.org/changeset/124361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684514</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 13:21:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155090</attachid>
            <date>2012-07-27 17:08:54 -0700</date>
            <delta_ts>2012-07-27 17:16:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92562-20120727170841.patch</filename>
            <type>text/plain</type>
            <size>10676</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlYmY2NGJmYThmNzU4
MTdjNmEyNjVmMjIxYWIzNWZkZjAyMTczYy4uYTU5MDU5YTllNDYyYjYwMDVlM2U5MTZlODFjMTY0
ZmI3MTA4YWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA3LTI3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJREJD
dXJzb3IuY29udGludWUoa2V5KSBkb2VzIG5vdCB0aHJvdyBmb3Igb3V0IG9mIHJhbmdlIGtleQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI1NjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXIgc3BlYywg
SURCQ3Vyc29yLmNvbnRpbnVlKGtleSkgc2hvdWxkIHRocm93IGZvciBmb3J3YXJkIGN1cnNvcnMK
KyAgICAgICAgaWYga2V5IDwgY3VycmVudCBrZXksIGFuZCBmb3IgcmV2ZXJzZSBjdXJzb3JzIGlm
IGtleSA+IGN1cnJlbnQga2V5LgorICAgICAgICBDb2RlIHdhcyBwcmVzZW50IG9uIHRoZSBiYWNr
IGVuZCBidXQgdGhlIGVycm9yIGNvZGUgd2FzIGlnbm9yZWQsIHBvc3NpYmx5CisgICAgICAgIGJy
b2tlbiBpbiBhIHJlY2VudCByZWZhY3RvciwgYW5kIHRoZXJlIHdlcmUgbm8gdGVzdHMgZm9yIHRo
aXMgY2FzZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGlu
dWUtZGlyLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmFkdmFuY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3JCYWNrZW5kSW1wbDo6SURCQ3Vyc29yQmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJDdXJzb3JC
YWNrZW5kSW1wbCk6CisKIDIwMTItMDctMjYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW50cm9kdWNlIGdlbmVyaWMgTGl2
ZUxvY2F0aW9uLCBtYWtlIFNjcmlwdC5Mb2NhdGlvbiBpbmhlcml0IGl0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggZWYzNGNiOGM3ZmI3
NjM2MTg0MTIyYjNjYjgzNmQyNDhkMjFlYjkzMC4uZGRiYThlMTZhNmJkZWRjOTU4NTc0NDk3OTc5
Mzc4NjAzOGMzYjM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuY3BwCkBAIC0xODksNiArMTg5LDggQEAgdm9pZCBJREJDdXJzb3I6OmFkdmFuY2Uo
dW5zaWduZWQgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgbV9yZXF1ZXN0LT5z
ZXRQZW5kaW5nQ3Vyc29yKHRoaXMpOwogICAgIG1fZ290VmFsdWUgPSBmYWxzZTsKICAgICBtX2Jh
Y2tlbmQtPmFkdmFuY2UoY291bnQsIG1fcmVxdWVzdCwgZWMpOworICAgIGlmIChlYykKKyAgICAg
ICAgbV9yZXF1ZXN0LT5tYXJrRWFybHlEZWF0aCgpOwogfQogCiB2b2lkIElEQkN1cnNvcjo6Y29u
dGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTIwOSwxMSArMjExLDMwIEBAIHZvaWQgSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKFBh
c3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgaWYgKGtleSkgeworICAgICAgICBBU1NFUlQobV9jdXJyZW50S2V5KTsK
KyAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVCB8fCBtX2RpcmVjdGlv
biA9PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFKSB7CisgICAgICAgICAgICBpZiAoIW1f
Y3VycmVudEtleS0+aXNMZXNzVGhhbihrZXkuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFrZXkt
PmlzTGVzc1RoYW4obV9jdXJyZW50S2V5LmdldCgpKSkgeworICAgICAgICAgICAgICAgIExPR19F
UlJPUigiZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6REFUQV9FUlI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgTE9HX0VSUk9SKCJvayIpOworICAgICAgICB9CisgICAgfQorCiAgICAgLy8g
RklYTUU6IFdlJ3JlIG5vdCB1c2luZyB0aGUgY29udGV4dCBmcm9tIHdoZW4gY29udGludWUgd2Fz
IGNhbGxlZCwgd2hpY2ggbWVhbnMgdGhlIGNhbGxiYWNrCiAgICAgLy8gICAgICAgIHdpbGwgYmUg
b24gdGhlIG9yaWdpbmFsIGNvbnRleHQgb3BlbkN1cnNvciB3YXMgY2FsbGVkIG9uLiBJcyB0aGlz
IHJpZ2h0PwogICAgIG1fcmVxdWVzdC0+c2V0UGVuZGluZ0N1cnNvcih0aGlzKTsKICAgICBtX2dv
dFZhbHVlID0gZmFsc2U7CiAgICAgbV9iYWNrZW5kLT5jb250aW51ZUZ1bmN0aW9uKGtleSwgbV9y
ZXF1ZXN0LCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICBtX3JlcXVlc3QtPm1hcmtFYXJseURl
YXRoKCk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjpkZWxldGVGdW5j
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJh
Y2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ckJhY2tlbmRJbXBsLmNwcAppbmRleCBhZTI3YWY4YTMyYzZiYjY5NDkyYmZmMDg2NmUyZDAyODUy
NDQ2NjAzLi4xMmUyM2ZhNDYyYTU4YTdhYjgzYmE5ZTFkNzRhNTdjOGFkYTMwNGZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFj
a2VuZEltcGwuY3BwCkBAIC00Miw5ICs0Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
SURCQ3Vyc29yQmFja2VuZEltcGw6OklEQkN1cnNvckJhY2tlbmRJbXBsKFBhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlOjpDdXJzb3I+IGN1cnNvciwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0
aW9uLCBDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRy
YW5zYWN0aW9uLCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZSkKK0lEQkN1
cnNvckJhY2tlbmRJbXBsOjpJREJDdXJzb3JCYWNrZW5kSW1wbChQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZTo6Q3Vyc29yPiBjdXJzb3IsIElEQkN1cnNvcjo6RGlyZWN0aW9uLCBDdXJzb3JUeXBl
IGN1cnNvclR5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0aW9uLCBJREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZSkKICAgICA6IG1fY3Vyc29yKGN1cnNv
cikKLSAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKICAgICAsIG1fY3Vyc29yVHlwZShjdXJz
b3JUeXBlKQogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAsIG1fb2JqZWN0
U3RvcmUob2JqZWN0U3RvcmUpCkBAIC05OSwyMSArOTgsNiBAQCB2b2lkIElEQkN1cnNvckJhY2tl
bmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIFBhc3NS
ZWZQdAogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlIik7CiAg
ICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwogCi0gICAgaWYgKG1fY3Vyc29yICYmIGtl
eSkgewotICAgICAgICBBU1NFUlQobV9jdXJzb3ItPmtleSgpKTsKLSAgICAgICAgaWYgKG1fZGly
ZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVCB8fCBtX2RpcmVjdGlvbiA9PSBJREJDdXJzb3I6Ok5F
WFRfTk9fRFVQTElDQVRFKSB7Ci0gICAgICAgICAgICBpZiAoIW1fY3Vyc29yLT5rZXkoKS0+aXNM
ZXNzVGhhbihrZXkuZ2V0KCkpKSB7Ci0gICAgICAgICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6REFUQV9FUlI7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKCFrZXktPmlzTGVzc1RoYW4obV9j
dXJzb3ItPmtleSgpLmdldCgpKSkgewotICAgICAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VF
eGNlcHRpb246OkRBVEFfRVJSOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLQogICAgIGlmICghbV90cmFuc2FjdGlvbi0+c2NoZWR1bGVU
YXNrKGNyZWF0ZUNhbGxiYWNrVGFzaygmSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVu
Y3Rpb25JbnRlcm5hbCwgdGhpcywga2V5LCBwcnBDYWxsYmFja3MpKSkKICAgICAgICAgZWMgPSBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZElt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJ
bXBsLmgKaW5kZXggMDQzYzQwMzUyY2RkM2EzZmQ2M2Y5OTcyZDE2NzIxZjA0OGUyYjA5OS4uMGZk
NDI3OGY2NDE5N2MxMzc5ODhhMThhNjNiZGJkMDNlNTc2Mjg2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCkBA
IC03Niw3ICs3Niw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpD
dXJzb3I+IG1fY3Vyc29yOwogICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gbV9z
YXZlZEN1cnNvcjsKLSAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBtX2RpcmVjdGlvbjsKICAgICBD
dXJzb3JUeXBlIG1fY3Vyc29yVHlwZTsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbD4gbV90cmFuc2FjdGlvbjsKICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bD4gbV9vYmplY3RTdG9yZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGNiMWM3MjRiNjhiNjMzYTNmNzIxOGE4MjE4NjFk
ZWYzNTFlNWIzLi5mNGRlYjljNmIxNDhjMTU0NDFhN2RhNzAzMmQzMmRjZTM4NjQ1ZWIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDctMjcgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElEQkN1cnNvci5jb250aW51ZShrZXkpIGRv
ZXMgbm90IHRocm93IGZvciBvdXQgb2YgcmFuZ2Uga2V5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuc3VyZSBjdXJzb3IuY29udGludWUoa2V5KSB0aHJv
d3MgaWYga2V5IGlzICJiZWhpbmQiIHRoZSBjdXJzb3IuCisKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUtZGlyLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5v
bnN1Y2Nlc3MpOgorICAgICAgICAodGVzdC5yZXF1ZXN0Lm9uc3VjY2Vzcy5yZXF1ZXN0Lm9uc3Vj
Y2Vzcyk6CisgICAgICAgICh0ZXN0LnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAodGVzdEN1cnNvcnMpOgorICAgICAgICAodGVzdEZvcndhcmRDdXJzb3IucmVx
dWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdEZvcndhcmRDdXJzb3IpOgorICAgICAgICAo
dGVzdFJldmVyc2VDdXJzb3IucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdFJldmVy
c2VDdXJzb3IpOgorCiAyMDEyLTA3LTI2ICDDgWTDoW0gS2FsbGFpICA8a2FkYW1AaW5mLnUtc3pl
Z2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuIEZpeCBhZnRlciBy
MTIzNzMzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LWNvbnRpbnVlLWRpci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LWNvbnRpbnVlLWRpci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmMTg1ZDM3NDMzYWExZDc2ZDk0MzQ5NTFj
NWJlMzY5Y2IxNGFmNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY3Vyc29yLWNvbnRp
bnVlLWRpci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGlu
dWUtZGlyLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1jb250aW51ZS1kaXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU3MDg1OTUxNDJlYWJmMWNiNGIwODA0Mjc5
NjdhYjc1ZTE3NDYzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUtZGlyLmpzCkBAIC0wLDAgKzEsNzYgQEAK
K2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3No
YXJlZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGNvbnRpbnVlKCkgY2FsbHMg
YWdhaW5zdCBjdXJzb3JzIGFyZSB2YWxpZGF0ZWQgYnkgZGlyZWN0aW9uLiIpOworCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGV2YWxBbmRMb2co
ImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgICAgICAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgICAgICAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgIHJlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICAgICAgICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdHJhbnMgPSByZXF1
ZXN0LnJlc3VsdDsKKyAgICAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7CisKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgICAgICAgICAgICAgZm9yIChpID0gMTsg
aSA8PSAxMDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLnB1
dCgiICsgaSArICIsIiArIGkgKyAiKSIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSB0ZXN0Q3Vyc29yczsKKyAgICAgICAgICAgIH07Cisg
ICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gdGVzdEN1cnNvcnMoKQoreworICAgIGV2
YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykiKTsKKyAgICBldmFsQW5k
TG9nKCJzdG9yZSA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgdGVzdEZvcndh
cmRDdXJzb3IoKTsKK30KKworZnVuY3Rpb24gdGVzdEZvcndhcmRDdXJzb3IoKQoreworICAgIGV2
YWxBbmRMb2coInJlcXVlc3QgPSBzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmJvdW5kKC1J
bmZpbml0eSwgSW5maW5pdHkpLCAnbmV4dCcpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigp
IHsKKyAgICAgICAgZXZhbEFuZExvZygiY3Vyc29yID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICAg
ICAgc2hvdWxkQmVOb25OdWxsKCJjdXJzb3IiKTsKKyAgICAgICAgZGVidWcoIkV4cGVjdCBEYXRh
RXJyb3IgaWY6IFRoZSBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgY3Vy
c29yJ3MgcG9zaXRpb24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzIFwibmV4dFwiIG9y
IFwibmV4dHVuaXF1ZVwiLiIpOworICAgICAgICBzaG91bGRCZSgiY3Vyc29yLmtleSIsICIxIik7
CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvci5jb250aW51ZSgtMSkiLCAi
SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsKKyAgICAgICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBudWxsOworICAgICAgICB0ZXN0UmV2ZXJzZUN1cnNvcigpOwor
ICAgIH07Cit9CisKK2Z1bmN0aW9uIHRlc3RSZXZlcnNlQ3Vyc29yKCkKK3sKKyAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gc3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5ib3VuZCgtSW5maW5p
dHksIEluZmluaXR5KSwgJ3ByZXYnKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGV2YWxBbmRMb2coImN1cnNvciA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgICAgIHNo
b3VsZEJlTm9uTnVsbCgiY3Vyc29yIik7CisgICAgICAgIGRlYnVnKCJFeHBlY3QgRGF0YUVycm9y
IGlmOiBUaGUgcGFyYW1ldGVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGlzIGN1cnNv
cidzIHBvc2l0aW9uIGFuZCB0aGlzIGN1cnNvcidzIGRpcmVjdGlvbiBpcyBcInByZXZcIiBvciBc
InByZXZ1bmlxdWVcIi4iKTsKKyAgICAgICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCAiMTAiKTsK
KyAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29yLmNvbnRpbnVlKDExKSIsICJJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9yJyIpOworICAgICAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG51bGw7CisKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fTsKK30KKwordGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155092</attachid>
            <date>2012-07-27 17:16:28 -0700</date>
            <delta_ts>2012-08-01 10:26:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92562-20120727171616.patch</filename>
            <type>text/plain</type>
            <size>12567</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlYmY2NGJmYThmNzU4
MTdjNmEyNjVmMjIxYWIzNWZkZjAyMTczYy4uYTU5MDU5YTllNDYyYjYwMDVlM2U5MTZlODFjMTY0
ZmI3MTA4YWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA3LTI3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJREJD
dXJzb3IuY29udGludWUoa2V5KSBkb2VzIG5vdCB0aHJvdyBmb3Igb3V0IG9mIHJhbmdlIGtleQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI1NjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXIgc3BlYywg
SURCQ3Vyc29yLmNvbnRpbnVlKGtleSkgc2hvdWxkIHRocm93IGZvciBmb3J3YXJkIGN1cnNvcnMK
KyAgICAgICAgaWYga2V5IDwgY3VycmVudCBrZXksIGFuZCBmb3IgcmV2ZXJzZSBjdXJzb3JzIGlm
IGtleSA+IGN1cnJlbnQga2V5LgorICAgICAgICBDb2RlIHdhcyBwcmVzZW50IG9uIHRoZSBiYWNr
IGVuZCBidXQgdGhlIGVycm9yIGNvZGUgd2FzIGlnbm9yZWQsIHBvc3NpYmx5CisgICAgICAgIGJy
b2tlbiBpbiBhIHJlY2VudCByZWZhY3RvciwgYW5kIHRoZXJlIHdlcmUgbm8gdGVzdHMgZm9yIHRo
aXMgY2FzZS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGlu
dWUtZGlyLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmFkdmFuY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3JCYWNrZW5kSW1wbDo6SURCQ3Vyc29yQmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJDdXJzb3JC
YWNrZW5kSW1wbCk6CisKIDIwMTItMDctMjYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW50cm9kdWNlIGdlbmVyaWMgTGl2
ZUxvY2F0aW9uLCBtYWtlIFNjcmlwdC5Mb2NhdGlvbiBpbmhlcml0IGl0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggZWYzNGNiOGM3ZmI3
NjM2MTg0MTIyYjNjYjgzNmQyNDhkMjFlYjkzMC4uOGI2OGUyM2NlYjg4NWEyNTA2MzdiNTRiZjVl
YWJmMTk3YjU5NmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuY3BwCkBAIC0xODksNiArMTg5LDggQEAgdm9pZCBJREJDdXJzb3I6OmFkdmFuY2Uo
dW5zaWduZWQgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgbV9yZXF1ZXN0LT5z
ZXRQZW5kaW5nQ3Vyc29yKHRoaXMpOwogICAgIG1fZ290VmFsdWUgPSBmYWxzZTsKICAgICBtX2Jh
Y2tlbmQtPmFkdmFuY2UoY291bnQsIG1fcmVxdWVzdCwgZWMpOworICAgIGlmIChlYykKKyAgICAg
ICAgbV9yZXF1ZXN0LT5tYXJrRWFybHlEZWF0aCgpOwogfQogCiB2b2lkIElEQkN1cnNvcjo6Y29u
dGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTIwOSwxMSArMjExLDI4IEBAIHZvaWQgSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKFBh
c3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgaWYgKGtleSkgeworICAgICAgICBBU1NFUlQobV9jdXJyZW50S2V5KTsK
KyAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVCB8fCBtX2RpcmVjdGlv
biA9PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFKSB7CisgICAgICAgICAgICBpZiAoIW1f
Y3VycmVudEtleS0+aXNMZXNzVGhhbihrZXkuZ2V0KCkpKSB7CisgICAgICAgICAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFrZXkt
PmlzTGVzc1RoYW4obV9jdXJyZW50S2V5LmdldCgpKSkgeworICAgICAgICAgICAgICAgIGVjID0g
SURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSdyZSBu
b3QgdXNpbmcgdGhlIGNvbnRleHQgZnJvbSB3aGVuIGNvbnRpbnVlIHdhcyBjYWxsZWQsIHdoaWNo
IG1lYW5zIHRoZSBjYWxsYmFjawogICAgIC8vICAgICAgICB3aWxsIGJlIG9uIHRoZSBvcmlnaW5h
bCBjb250ZXh0IG9wZW5DdXJzb3Igd2FzIGNhbGxlZCBvbi4gSXMgdGhpcyByaWdodD8KICAgICBt
X3JlcXVlc3QtPnNldFBlbmRpbmdDdXJzb3IodGhpcyk7CiAgICAgbV9nb3RWYWx1ZSA9IGZhbHNl
OwogICAgIG1fYmFja2VuZC0+Y29udGludWVGdW5jdGlvbihrZXksIG1fcmVxdWVzdCwgZWMpOwor
ICAgIGlmIChlYykKKyAgICAgICAgbV9yZXF1ZXN0LT5tYXJrRWFybHlEZWF0aCgpOwogfQogCiBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvcjo6ZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5j
cHAKaW5kZXggYWUyN2FmOGEzMmM2YmI2OTQ5MmJmZjA4NjZlMmQwMjg1MjQ0NjYwMy4uMTJlMjNm
YTQ2MmE1OGE3YWI4M2JhOWUxZDc0YTU3YzhhZGEzMDRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcApA
QCAtNDIsOSArNDIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUlEQkN1cnNvckJhY2tl
bmRJbXBsOjpJREJDdXJzb3JCYWNrZW5kSW1wbChQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6
Q3Vyc29yPiBjdXJzb3IsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiwgQ3Vyc29yVHlw
ZSBjdXJzb3JUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbiwgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmUpCitJREJDdXJzb3JCYWNrZW5kSW1w
bDo6SURCQ3Vyc29yQmFja2VuZEltcGwoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNv
cj4gY3Vyc29yLCBJREJDdXJzb3I6OkRpcmVjdGlvbiwgQ3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbiwgSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbCogb2JqZWN0U3RvcmUpCiAgICAgOiBtX2N1cnNvcihjdXJzb3IpCi0gICAgLCBtX2Rp
cmVjdGlvbihkaXJlY3Rpb24pCiAgICAgLCBtX2N1cnNvclR5cGUoY3Vyc29yVHlwZSkKICAgICAs
IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgLCBtX29iamVjdFN0b3JlKG9iamVjdFN0
b3JlKQpAQCAtOTksMjEgKzk4LDYgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGlu
dWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHQKICAgICBJREJf
VFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZSIpOwogICAgIFJlZlB0cjxJREJL
ZXk+IGtleSA9IHBycEtleTsKIAotICAgIGlmIChtX2N1cnNvciAmJiBrZXkpIHsKLSAgICAgICAg
QVNTRVJUKG1fY3Vyc29yLT5rZXkoKSk7Ci0gICAgICAgIGlmIChtX2RpcmVjdGlvbiA9PSBJREJD
dXJzb3I6Ok5FWFQgfHwgbV9kaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUX05PX0RVUExJQ0FU
RSkgewotICAgICAgICAgICAgaWYgKCFtX2N1cnNvci0+a2V5KCktPmlzTGVzc1RoYW4oa2V5Lmdl
dCgpKSkgewotICAgICAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFf
RVJSOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIGlmICgha2V5LT5pc0xlc3NUaGFuKG1fY3Vyc29yLT5rZXkoKS5n
ZXQoKSkpIHsKLSAgICAgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRB
X0VSUjsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICB9Ci0KICAgICBpZiAoIW1fdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhjcmVhdGVDYWxs
YmFja1Rhc2soJklEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uSW50ZXJuYWws
IHRoaXMsIGtleSwgcHJwQ2FsbGJhY2tzKSkpCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNl
cHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCmluZGV4IDA0
M2M0MDM1MmNkZDNhM2ZkNjNmOTk3MmQxNjcyMWYwNDhlMmIwOTkuLjBmZDQyNzhmNjQxOTdjMTM3
OTg4YTE4YTYzYmRiZDAzZTU3NjI4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaApAQCAtNzYsNyArNzYsNiBA
QCBwcml2YXRlOgogCiAgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yPiBtX2N1cnNv
cjsKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IG1fc2F2ZWRDdXJzb3I7Ci0g
ICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gbV9kaXJlY3Rpb247CiAgICAgQ3Vyc29yVHlwZSBtX2N1
cnNvclR5cGU7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IG1fdHJhbnNh
Y3Rpb247CiAgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG1fb2JqZWN0U3Rv
cmU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYjRjYjFjNzI0YjY4YjYzM2EzZjcyMThhODIxODYxZGVmMzUxZTViMy4uZjRk
ZWI5YzZiMTQ4YzE1NDQxYTdkYTcwMzJkMzJkY2UzODY0NWViMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTA3LTI3ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgSW5kZXhlZERCOiBJREJDdXJzb3IuY29udGludWUoa2V5KSBkb2VzIG5vdCB0aHJvdyBm
b3Igb3V0IG9mIHJhbmdlIGtleQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTI1NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFbnN1cmUgY3Vyc29yLmNvbnRpbnVlKGtleSkgdGhyb3dzIGlmIGtleSBpcyAi
YmVoaW5kIiB0aGUgY3Vyc29yLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LWNvbnRpbnVlLWRpci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLWRpci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LnJl
cXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzKToKKyAg
ICAgICAgKHRlc3QucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAg
ICAodGVzdC5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHRl
c3RDdXJzb3JzKToKKyAgICAgICAgKHRlc3RGb3J3YXJkQ3Vyc29yLnJlcXVlc3Qub25zdWNjZXNz
KToKKyAgICAgICAgKHRlc3RGb3J3YXJkQ3Vyc29yKToKKyAgICAgICAgKHRlc3RSZXZlcnNlQ3Vy
c29yLnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHRlc3RSZXZlcnNlQ3Vyc29yKToKKwog
MjAxMi0wNy0yNiAgw4Fkw6FtIEthbGxhaSAgPGthZGFtQGluZi51LXN6ZWdlZC5odT4KIAogICAg
ICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBGaXggYWZ0ZXIgcjEyMzczMy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRp
bnVlLWRpci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q5MDkyMzJlYmRkNWMyZTZmMWFhMGUy
ZmIyMTMwOWQ3NDMwYzNlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcg
QEAKK1Rlc3QgdGhhdCBjb250aW51ZSgpIGNhbGxzIGFnYWluc3QgY3Vyc29ycyBhcmUgdmFsaWRh
dGVkIGJ5IGRpcmVjdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4
ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96
SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5h
bWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiID0gcmVxdWVzdC5yZXN1
bHQKK2RiLnNldFZlcnNpb24oJzEnKQorc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3Rv
cmUnKQorc3RvcmUucHV0KDEsMSkKK3N0b3JlLnB1dCgyLDIpCitzdG9yZS5wdXQoMywzKQorc3Rv
cmUucHV0KDQsNCkKK3N0b3JlLnB1dCg1LDUpCitzdG9yZS5wdXQoNiw2KQorc3RvcmUucHV0KDcs
NykKK3N0b3JlLnB1dCg4LDgpCitzdG9yZS5wdXQoOSw5KQorc3RvcmUucHV0KDEwLDEwKQordHJh
bnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmUnKQorc3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgn
c3RvcmUnKQorcmVxdWVzdCA9IHN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UuYm91bmQoLUlu
ZmluaXR5LCBJbmZpbml0eSksICduZXh0JykKK2N1cnNvciA9IHJlcXVlc3QucmVzdWx0CitQQVNT
IGN1cnNvciBpcyBub24tbnVsbC4KK0V4cGVjdCBEYXRhRXJyb3IgaWY6IFRoZSBwYXJhbWV0ZXIg
aXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgY3Vyc29yJ3MgcG9zaXRpb24gYW5kIHRoaXMg
Y3Vyc29yJ3MgZGlyZWN0aW9uIGlzICJuZXh0IiBvciAibmV4dHVuaXF1ZSIuCitQQVNTIGN1cnNv
ci5rZXkgaXMgMQorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGN1cnNvci5jb250aW51ZSgtMSkK
K1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNl
cHRpb24uREFUQV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0RhdGFFcnJvcicKK3JlcXVlc3QgPSBzdG9y
ZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmJvdW5kKC1JbmZpbml0eSwgSW5maW5pdHkpLCAncHJl
dicpCitjdXJzb3IgPSByZXF1ZXN0LnJlc3VsdAorUEFTUyBjdXJzb3IgaXMgbm9uLW51bGwuCitF
eHBlY3QgRGF0YUVycm9yIGlmOiBUaGUgcGFyYW1ldGVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVh
bCB0byB0aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0aGlzIGN1cnNvcidzIGRpcmVjdGlvbiBp
cyAicHJldiIgb3IgInByZXZ1bmlxdWUiLgorUEFTUyBjdXJzb3Iua2V5IGlzIDEwCitFeHBlY3Rp
bmcgZXhjZXB0aW9uIGZyb20gY3Vyc29yLmNvbnRpbnVlKDExKQorUEFTUyBFeGNlcHRpb24gd2Fz
IHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorUEFT
UyBlbmFtZSBpcyAnRGF0YUVycm9yJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1jb250aW51ZS1kaXIuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1jb250aW51ZS1kaXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjE4NWQzNzQzM2FhMWQ3
NmQ5NDM0OTUxYzViZTM2OWNiMTRhZjRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci5odG1sCkBAIC0wLDAgKzEsMTAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1
cnNvci1jb250aW51ZS1kaXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vy
c29yLWNvbnRpbnVlLWRpci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItY29udGludWUtZGlyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NzA4NTk1MTQyZWFiZjFj
YjRiMDgwNDI3OTY3YWI3NWUxNzQ2MzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLWRpci5qcwpAQCAtMCww
ICsxLDc2IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygn
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKKyAgICBpbXBvcnRT
Y3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBjb250aW51
ZSgpIGNhbGxzIGFnYWluc3QgY3Vyc29ycyBhcmUgdmFsaWRhdGVkIGJ5IGRpcmVjdGlvbi4iKTsK
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKKyAgICBl
dmFsQW5kTG9nKCJkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lIik7CisgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOworICAgICAgICAg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJzEnKSIpOworICAgICAgICAg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgICAg
ICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgICAg
ICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRy
YW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVu
ZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworCisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAgICAgICAgICAgICAgIGZv
ciAoaSA9IDE7IGkgPD0gMTA7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBldmFsQW5kTG9n
KCJzdG9yZS5wdXQoIiArIGkgKyAiLCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gdGVzdEN1cnNvcnM7CisgICAgICAg
ICAgICB9OworICAgICAgICB9OworICAgIH07Cit9CisKK2Z1bmN0aW9uIHRlc3RDdXJzb3JzKCkK
K3sKKyAgICBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpIik7Cisg
ICAgZXZhbEFuZExvZygic3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmUnKSIpOworICAg
IHRlc3RGb3J3YXJkQ3Vyc29yKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGb3J3YXJkQ3Vyc29yKCkK
K3sKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gc3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5n
ZS5ib3VuZCgtSW5maW5pdHksIEluZmluaXR5KSwgJ25leHQnKSIpOworICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIGV2YWxBbmRMb2coImN1cnNvciA9IHJlcXVlc3QucmVzdWx0
Iik7CisgICAgICAgIHNob3VsZEJlTm9uTnVsbCgiY3Vyc29yIik7CisgICAgICAgIGRlYnVnKCJF
eHBlY3QgRGF0YUVycm9yIGlmOiBUaGUgcGFyYW1ldGVyIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0
byB0aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0aGlzIGN1cnNvcidzIGRpcmVjdGlvbiBpcyBc
Im5leHRcIiBvciBcIm5leHR1bmlxdWVcIi4iKTsKKyAgICAgICAgc2hvdWxkQmUoImN1cnNvci5r
ZXkiLCAiMSIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3IuY29udGlu
dWUoLTEpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIidEYXRhRXJyb3InIik7
CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gbnVsbDsKKyAgICAgICAgdGVzdFJldmVyc2VD
dXJzb3IoKTsKKyAgICB9OworfQorCitmdW5jdGlvbiB0ZXN0UmV2ZXJzZUN1cnNvcigpCit7Cisg
ICAgZXZhbEFuZExvZygicmVxdWVzdCA9IHN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UuYm91
bmQoLUluZmluaXR5LCBJbmZpbml0eSksICdwcmV2JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKCkgeworICAgICAgICBldmFsQW5kTG9nKCJjdXJzb3IgPSByZXF1ZXN0LnJlc3VsdCIpOwor
ICAgICAgICBzaG91bGRCZU5vbk51bGwoImN1cnNvciIpOworICAgICAgICBkZWJ1ZygiRXhwZWN0
IERhdGFFcnJvciBpZjogVGhlIHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g
dGhpcyBjdXJzb3IncyBwb3NpdGlvbiBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgXCJw
cmV2XCIgb3IgXCJwcmV2dW5pcXVlXCIuIik7CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5
IiwgIjEwIik7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImN1cnNvci5jb250aW51
ZSgxMSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFFcnJvciciKTsK
KyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBudWxsOworCisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH07Cit9CisKK3Rlc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155832</attachid>
            <date>2012-08-01 10:26:08 -0700</date>
            <delta_ts>2012-08-01 13:21:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92562-20120801112550.patch</filename>
            <type>text/plain</type>
            <size>16292</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTkwZDNiMWMyNjEzMjEw
ZDNkM2RiNTQzNDg4MzZjNjczYWI0NGU5MC4uZTYzN2E1NjU1Njk2YWVlODU4ZTk2YzYxNzEyODVm
MDYwYmZkZTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTAxICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJREJD
dXJzb3IuY29udGludWUoa2V5KSBkb2VzIG5vdCB0aHJvdyBmb3Iga2V5ICJiZWhpbmQiIGN1cnNv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI1NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQZXIgc3Bl
YywgSURCQ3Vyc29yLmNvbnRpbnVlKGtleSkgc2hvdWxkIHRocm93IGZvciBmb3J3YXJkIGN1cnNv
cnMKKyAgICAgICAgaWYga2V5IDw9IGN1cnJlbnQga2V5LCBhbmQgZm9yIHJldmVyc2UgY3Vyc29y
cyBpZiBrZXkgPj0gY3VycmVudCBrZXkuCisgICAgICAgIENvZGUgd2FzIHByZXNlbnQgb24gdGhl
IGJhY2sgZW5kIGJ1dCB0aGUgZXJyb3IgY29kZSB3YXMgaWdub3JlZCwgcG9zc2libHkKKyAgICAg
ICAgYnJva2VuIGluIGEgcmVjZW50IHJlZmFjdG9yLCBhbmQgdGhlcmUgd2VyZSBubyB0ZXN0cyBm
b3IgdGhpcyBjYXNlLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1j
b250aW51ZS1kaXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6YWR2YW5jZSk6IEhhbmRsZSBhc3lu
YyB0cmFuc2FjdGlvbiB0ZXJtaW5hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6
Y29udGludWVGdW5jdGlvbik6IE1vdmUgY2hlY2tzIGhlcmUgZnJvbSBiYWNrZW5kLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjpJREJDdXJzb3JCYWNrZW5kSW1wbCk6IERv
bid0IG5lZWQgZGlyZWN0aW9uIHBhcmFtLgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFj
a2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb24pOiBSZW1vdmUgY2hlY2tzLgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmg6IE9ubHkgSURCQmFja2luZ1N0
b3JlOjpjdXJzb3IgbmVlZHMgZGlyZWN0aW9uIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OklEQkN1
cnNvckJhY2tlbmRJbXBsOjpjcmVhdGUpOgorICAgICAgICAoSURCQ3Vyc29yQmFja2VuZEltcGwp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbkN1cnNvckludGVybmFs
KTogRHJvcCB1bnVzZWQgcGFyYW0uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwpOiBEaXR0by4KKwogMjAxMi0wOC0wMSAg
S2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBBdHRlbXB0IHRv
IGZpeCBmbGFraW5lc3Mgb2YgY29sb3Itc3VnZ2VzdGlvbi1waWNrZXItYXBwZWFyYW5jZS5odG1s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRl
eCAwNWRkYjI1MWU0ZmEyYzE3OTZlYjVlMjNhODg3ZGYyOGU3YTQ3ZGE2Li41OWE1OWFkMzE3Zjdj
YmM2ZWU0ZWRlYzZjMTVjOWRlYTZkNTlhMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTE4Myw2ICsxODMsOCBAQCB2b2lkIElEQkN1
cnNvcjo6YWR2YW5jZSh1bnNpZ25lZCBsb25nIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICBtX3JlcXVlc3QtPnNldFBlbmRpbmdDdXJzb3IodGhpcyk7CiAgICAgbV9nb3RWYWx1ZSA9IGZh
bHNlOwogICAgIG1fYmFja2VuZC0+YWR2YW5jZShjb3VudCwgbV9yZXF1ZXN0LCBlYyk7CisgICAg
aWYgKGVjKQorICAgICAgICBtX3JlcXVlc3QtPm1hcmtFYXJseURlYXRoKCk7CiB9CiAKIHZvaWQg
SURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQpAQCAtMjAzLDExICsyMDUsMjggQEAgdm9pZCBJREJDdXJzb3I6OmNvbnRp
bnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoa2V5KSB7CisgICAgICAgIEFTU0VSVCht
X2N1cnJlbnRLZXkpOworICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhU
IHx8IG1fZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUpIHsKKyAgICAg
ICAgICAgIGlmICghbV9jdXJyZW50S2V5LT5pc0xlc3NUaGFuKGtleS5nZXQoKSkpIHsKKyAgICAg
ICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBpZiAoIWtleS0+aXNMZXNzVGhhbihtX2N1cnJlbnRLZXkuZ2V0KCkpKSB7CisgICAgICAg
ICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgLy8g
RklYTUU6IFdlJ3JlIG5vdCB1c2luZyB0aGUgY29udGV4dCBmcm9tIHdoZW4gY29udGludWUgd2Fz
IGNhbGxlZCwgd2hpY2ggbWVhbnMgdGhlIGNhbGxiYWNrCiAgICAgLy8gICAgICAgIHdpbGwgYmUg
b24gdGhlIG9yaWdpbmFsIGNvbnRleHQgb3BlbkN1cnNvciB3YXMgY2FsbGVkIG9uLiBJcyB0aGlz
IHJpZ2h0PwogICAgIG1fcmVxdWVzdC0+c2V0UGVuZGluZ0N1cnNvcih0aGlzKTsKICAgICBtX2dv
dFZhbHVlID0gZmFsc2U7CiAgICAgbV9iYWNrZW5kLT5jb250aW51ZUZ1bmN0aW9uKGtleSwgbV9y
ZXF1ZXN0LCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICBtX3JlcXVlc3QtPm1hcmtFYXJseURl
YXRoKCk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjpkZWxldGVGdW5j
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJh
Y2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ckJhY2tlbmRJbXBsLmNwcAppbmRleCAwYTM5YThmYmM2OWUwNjczZjczNzI3NjEyYjkxZWNiNTFh
ZDlhMDk3Li45NTY5OTkwY2QzZDY5NWM1OTM3OGUzY2JiZDBiMDE5YmVhNTVjN2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFj
a2VuZEltcGwuY3BwCkBAIC00Miw5ICs0Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
SURCQ3Vyc29yQmFja2VuZEltcGw6OklEQkN1cnNvckJhY2tlbmRJbXBsKFBhc3NSZWZQdHI8SURC
QmFja2luZ1N0b3JlOjpDdXJzb3I+IGN1cnNvciwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0
aW9uLCBDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRy
YW5zYWN0aW9uLCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZSkKK0lEQkN1
cnNvckJhY2tlbmRJbXBsOjpJREJDdXJzb3JCYWNrZW5kSW1wbChQYXNzUmVmUHRyPElEQkJhY2tp
bmdTdG9yZTo6Q3Vyc29yPiBjdXJzb3IsIEN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24sIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwq
IG9iamVjdFN0b3JlKQogICAgIDogbV9jdXJzb3IoY3Vyc29yKQotICAgICwgbV9kaXJlY3Rpb24o
ZGlyZWN0aW9uKQogICAgICwgbV9jdXJzb3JUeXBlKGN1cnNvclR5cGUpCiAgICAgLCBtX3RyYW5z
YWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICwgbV9vYmplY3RTdG9yZShvYmplY3RTdG9yZSkKQEAg
LTg4LDIxICs4Nyw2IEBAIHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rp
b24oUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwgUGFzc1JlZlB0CiAgICAgSURCX1RSQUNFKCJJ
REJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWUiKTsKICAgICBSZWZQdHI8SURCS2V5PiBrZXkg
PSBwcnBLZXk7CiAKLSAgICBpZiAobV9jdXJzb3IgJiYga2V5KSB7Ci0gICAgICAgIEFTU0VSVCht
X2N1cnNvci0+a2V5KCkpOwotICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpO
RVhUIHx8IG1fZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUpIHsKLSAg
ICAgICAgICAgIGlmICghbV9jdXJzb3ItPmtleSgpLT5pc0xlc3NUaGFuKGtleS5nZXQoKSkpIHsK
LSAgICAgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBpZiAoIWtleS0+aXNMZXNzVGhhbihtX2N1cnNvci0+a2V5KCkuZ2V0KCkpKSB7
Ci0gICAgICAgICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFUQV9FUlI7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQot
CiAgICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soY3JlYXRlQ2FsbGJhY2tUYXNr
KCZJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5jdGlvbkludGVybmFsLCB0aGlzLCBr
ZXksIHBycENhbGxiYWNrcykpKQogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpU
UkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaAppbmRleCA1MDk3YzUzODc2
OGYyOWYwOTE5NGIyOTQ5MGIxZDQxMmRlNGUxZjNiLi44YzliMmU2ZWRkYWZmMzVhOWQzNzFiMTQz
OTQ3MTI2YjhhNjBlMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgKQEAgLTQ3LDkgKzQ3LDkgQEAgY2xhc3Mg
U2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCiBjbGFzcyBJREJDdXJzb3JCYWNrZW5kSW1wbCA6IHB1
YmxpYyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW1wbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlOjpDdXJzb3I+IGN1cnNvciwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uLCBD
dXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0
aW9uLCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZSkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW1wbD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlOjpDdXJzb3I+IGN1cnNvciwgQ3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbiwgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bCogb2JqZWN0U3RvcmUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1
cnNvckJhY2tlbmRJbXBsKGN1cnNvciwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0cmFuc2FjdGlv
biwgb2JqZWN0U3RvcmUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JC
YWNrZW5kSW1wbChjdXJzb3IsIGN1cnNvclR5cGUsIHRyYW5zYWN0aW9uLCBvYmplY3RTdG9yZSkp
OwogICAgIH0KICAgICB2aXJ0dWFsIH5JREJDdXJzb3JCYWNrZW5kSW1wbCgpOwogCkBAIC02Nyw3
ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKCk7CiAKIHByaXZhdGU6Ci0gICAgSURC
Q3Vyc29yQmFja2VuZEltcGwoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4sIElE
QkN1cnNvcjo6RGlyZWN0aW9uLCBDdXJzb3JUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
KiwgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCopOworICAgIElEQkN1cnNvckJhY2tlbmRJbXBs
KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+LCBDdXJzb3JUeXBlLCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsKiwgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCopOwogCiAgICAg
c3RhdGljIHZvaWQgYWR2YW5jZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbXBsPiwgdW5zaWduZWQgbG9uZywgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+KTsKICAgICBzdGF0aWMgdm9pZCBjb250aW51ZUZ1bmN0aW9uSW50ZXJuYWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEltcGw+
LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CkBAIC03NSw3
ICs3NSw2IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+
IG1fY3Vyc29yOwogICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNvcj4gbV9zYXZlZEN1
cnNvcjsKLSAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBtX2RpcmVjdGlvbjsKICAgICBDdXJzb3JU
eXBlIG1fY3Vyc29yVHlwZTsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4g
bV90cmFuc2FjdGlvbjsKICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gbV9v
YmplY3RTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKaW5kZXggMTM0MDA4NDkxZjVhNzQzMTk2ZTJmYzlh
Yjg4MmRhZWU2Y2IzOTU5Ni4uNjEyODlhNWI4NDM3YTE1YmFjMWUxNTljMjFjYjgwOGY1MDlkN2E3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhC
YWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
SW5kZXhCYWNrZW5kSW1wbC5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBJREJJbmRleEJhY2tl
bmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tp
bmdTdG9yZUN1cnNvci5nZXQoKSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0cmFuc2FjdGlvbi5n
ZXQoKSwgaW5kZXgtPm1fb2JqZWN0U3RvcmVCYWNrZW5kKTsKKyAgICBSZWZQdHI8SURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZT4gY3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZShi
YWNraW5nU3RvcmVDdXJzb3IuZ2V0KCksIGN1cnNvclR5cGUsIHRyYW5zYWN0aW9uLmdldCgpLCBp
bmRleC0+bV9vYmplY3RTdG9yZUJhY2tlbmQpOwogICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1
cnNvci5yZWxlYXNlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCmluZGV4IDc0
NjkzM2VmMDRkZTY2NDAwNDIzYmFlYzk4Y2Q4NTU2Y2RmYmE4ODAuLmNlMDkxNWEzMDZmMWE3M2Y0
YmM5ZjVlMjljZDcwY2E2ZjNhOWYyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBA
IC01MzksNyArNTM5LDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpvcGVuQ3Vy
c29ySW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3MKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBjdXJzb3Ig
PSBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKGJhY2tpbmdTdG9yZUN1cnNvci5yZWxlYXNl
KCksIGRpcmVjdGlvbiwgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6T2JqZWN0U3RvcmVDdXJz
b3IsIHRyYW5zYWN0aW9uLmdldCgpLCBvYmplY3RTdG9yZS5nZXQoKSk7CisgICAgUmVmUHRyPElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGN1cnNvciA9IElEQkN1cnNvckJhY2tlbmRJbXBsOjpj
cmVhdGUoYmFja2luZ1N0b3JlQ3Vyc29yLnJlbGVhc2UoKSwgSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZTo6T2JqZWN0U3RvcmVDdXJzb3IsIHRyYW5zYWN0aW9uLmdldCgpLCBvYmplY3RTdG9yZS5n
ZXQoKSk7CiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJlbGVhc2UoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NTMxMGY1MTM0OGVmYmJhMzAzYTc0ODcxNzhlMjAyMzNjZjk0ZDc1Li5jNjM2NmY3
NzhlZWUxMjM3YjQ4MWUzNWQ3ODhkOGMwY2VkNWE2ZjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTItMDgtMDEgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBJbmRleGVkREI6IElEQkN1cnNvci5jb250aW51ZShrZXkpIGRvZXMgbm90IHRocm93IGZvciBr
ZXkgImJlaGluZCIgY3Vyc29yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MjU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVuc3VyZSBjdXJzb3IuY29udGludWUoa2V5KSB0aHJvd3MgaWYga2V5IGlzICJi
ZWhpbmQiIHRoZSBjdXJzb3IuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
Y29udGludWUtZGlyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLWNvbnRpbnVlLWRpci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLWRpci5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0LnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25zdWNjZXNzLnJlcXVlc3Qub25z
dWNjZXNzKToKKyAgICAgICAgKHRlc3QucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nl
c3MpOgorICAgICAgICAodGVzdC5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKHRlc3RDdXJzb3JzKToKKyAgICAgICAgKHRlc3RGb3J3YXJkQ3Vyc29yLnJlcXVl
c3Qub25zdWNjZXNzKToKKyAgICAgICAgKHRlc3RGb3J3YXJkQ3Vyc29yKToKKyAgICAgICAgKHRl
c3RSZXZlcnNlQ3Vyc29yLnJlcXVlc3Qub25zdWNjZXNzKToKKyAgICAgICAgKHRlc3RSZXZlcnNl
Q3Vyc29yKToKKwogMjAxMi0wOC0wMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCBmbGFraW5lc3Mgb2YgY29sb3Itc3VnZ2VzdGlv
bi1waWNrZXItYXBwZWFyYW5jZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1kaXItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNkOTA5MjMyZWJkZDVjMmU2ZjFhYTBlMmZiMjEzMDlkNzQzMGMzZTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUt
ZGlyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ3IEBACitUZXN0IHRoYXQgY29udGludWUoKSBj
YWxscyBhZ2FpbnN0IGN1cnNvcnMgYXJlIHZhbGlkYXRlZCBieSBkaXJlY3Rpb24uCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBz
ZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhl
ZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFt
ZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK3JlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpCitkYiA9IHJlcXVlc3QucmVzdWx0CitkYi5zZXRWZXJzaW9uKCcxJykKK3N0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKK3N0b3JlLnB1dCgxLDEpCitzdG9y
ZS5wdXQoMiwyKQorc3RvcmUucHV0KDMsMykKK3N0b3JlLnB1dCg0LDQpCitzdG9yZS5wdXQoNSw1
KQorc3RvcmUucHV0KDYsNikKK3N0b3JlLnB1dCg3LDcpCitzdG9yZS5wdXQoOCw4KQorc3RvcmUu
cHV0KDksOSkKK3N0b3JlLnB1dCgxMCwxMCkKK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3Jl
JykKK3N0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlJykKK3JlcXVlc3QgPSBzdG9yZS5v
cGVuQ3Vyc29yKElEQktleVJhbmdlLmJvdW5kKC1JbmZpbml0eSwgSW5maW5pdHkpLCAnbmV4dCcp
CitjdXJzb3IgPSByZXF1ZXN0LnJlc3VsdAorUEFTUyBjdXJzb3IgaXMgbm9uLW51bGwuCitFeHBl
Y3QgRGF0YUVycm9yIGlmOiBUaGUgcGFyYW1ldGVyIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0
aGlzIGN1cnNvcidzIHBvc2l0aW9uIGFuZCB0aGlzIGN1cnNvcidzIGRpcmVjdGlvbiBpcyAibmV4
dCIgb3IgIm5leHR1bmlxdWUiLgorUEFTUyBjdXJzb3Iua2V5IGlzIDEKK0V4cGVjdGluZyBleGNl
cHRpb24gZnJvbSBjdXJzb3IuY29udGludWUoLTEpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3du
LgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSCitQQVNTIGVuYW1l
IGlzICdEYXRhRXJyb3InCityZXF1ZXN0ID0gc3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5i
b3VuZCgtSW5maW5pdHksIEluZmluaXR5KSwgJ3ByZXYnKQorY3Vyc29yID0gcmVxdWVzdC5yZXN1
bHQKK1BBU1MgY3Vyc29yIGlzIG5vbi1udWxsLgorRXhwZWN0IERhdGFFcnJvciBpZjogVGhlIHBh
cmFtZXRlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBjdXJzb3IncyBwb3NpdGlv
biBhbmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgInByZXYiIG9yICJwcmV2dW5pcXVlIi4K
K1BBU1MgY3Vyc29yLmtleSBpcyAxMAorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGN1cnNvci5j
b250aW51ZSgxMSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURC
RGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIKK1BBU1MgZW5hbWUgaXMgJ0RhdGFFcnJvcicKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZGlyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWYxODVkMzc0MzNhYTFkNzZkOTQzNDk1MWM1YmUzNjljYjE0YWY0Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1j
b250aW51ZS1kaXIuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXJzb3ItY29udGludWUtZGlyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS1kaXIuanMgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLWRpci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iZmVjMGViYzdhZjc0Yzk3YjEyZmFhMDhiYTVhMmQyYTc3NDViNGRiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci1jb250aW51ZS1kaXIuanMKQEAgLTAsMCArMSw3NSBAQAoraWYgKHRoaXMuaW1wb3J0
U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzJyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgY29udGludWUoKSBjYWxscyBhZ2FpbnN0IGN1cnNvcnMg
YXJlIHZhbGlkYXRlZCBieSBkaXJlY3Rpb24uIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgZXZhbEFuZExvZygiZGJuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2Nr
ZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgICAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImRi
ID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJk
Yi5zZXRWZXJzaW9uKCcxJykiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4
cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0OworICAg
ICAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKwor
ICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IDEwOyArK2kpIHsK
KyAgICAgICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUucHV0KCIgKyBpICsgIiwiICsg
aSArICIpIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdHJhbnMub25j
b21wbGV0ZSA9IHRlc3RDdXJzb3JzOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9
OworfQorCitmdW5jdGlvbiB0ZXN0Q3Vyc29ycygpCit7CisgICAgZXZhbEFuZExvZygidHJhbnMg
PSBkYi50cmFuc2FjdGlvbignc3RvcmUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlID0gdHJh
bnMub2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAgICB0ZXN0Rm9yd2FyZEN1cnNvcigpOworfQor
CitmdW5jdGlvbiB0ZXN0Rm9yd2FyZEN1cnNvcigpCit7CisgICAgZXZhbEFuZExvZygicmVxdWVz
dCA9IHN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UuYm91bmQoLUluZmluaXR5LCBJbmZpbml0
eSksICduZXh0JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBldmFs
QW5kTG9nKCJjdXJzb3IgPSByZXF1ZXN0LnJlc3VsdCIpOworICAgICAgICBzaG91bGRCZU5vbk51
bGwoImN1cnNvciIpOworICAgICAgICBkZWJ1ZygiRXhwZWN0IERhdGFFcnJvciBpZjogVGhlIHBh
cmFtZXRlciBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBjdXJzb3IncyBwb3NpdGlvbiBh
bmQgdGhpcyBjdXJzb3IncyBkaXJlY3Rpb24gaXMgXCJuZXh0XCIgb3IgXCJuZXh0dW5pcXVlXCIu
Iik7CisgICAgICAgIHNob3VsZEJlKCJjdXJzb3Iua2V5IiwgIjEiKTsKKyAgICAgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigiY3Vyc29yLmNvbnRpbnVlKC0xKSIsICJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5EQVRBX0VSUiIsICInRGF0YUVycm9yJyIpOworCisgICAgICAgIHRlc3RSZXZlcnNlQ3Vy
c29yKCk7CisgICAgfTsKK30KKworZnVuY3Rpb24gdGVzdFJldmVyc2VDdXJzb3IoKQoreworICAg
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBzdG9yZS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmJvdW5k
KC1JbmZpbml0eSwgSW5maW5pdHkpLCAncHJldicpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgZXZhbEFuZExvZygiY3Vyc29yID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAg
ICAgICAgc2hvdWxkQmVOb25OdWxsKCJjdXJzb3IiKTsKKyAgICAgICAgZGVidWcoIkV4cGVjdCBE
YXRhRXJyb3IgaWY6IFRoZSBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRo
aXMgY3Vyc29yJ3MgcG9zaXRpb24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzIFwicHJl
dlwiIG9yIFwicHJldnVuaXF1ZVwiLiIpOworICAgICAgICBzaG91bGRCZSgiY3Vyc29yLmtleSIs
ICIxMCIpOworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJjdXJzb3IuY29udGludWUo
MTEpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIidEYXRhRXJyb3InIik7CisK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfTsKK30KKwordGVzdCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>