<?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>65286</bug_id>
          
          <creation_ts>2011-07-27 14:43:10 -0700</creation_ts>
          <short_desc>V8 should correctly serialize Boolean, Number and String objects</short_desc>
          <delta_ts>2012-10-25 12:11:08 -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>65292</blocked>
    
    <blocked>100404</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Luke Zarko">lukezarko+bugzilla</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443160</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-27 14:43:10 -0700</bug_when>
    <thetext>New APIs were exposed to allow V8 to correctly serialize Boolean, Number and String objects, as well as detect certain native errors as required by the HTML5 Structured Clone algorithm (http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#safe-passing-of-structured-data). SerializedScriptValue should make use of these APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443165</commentid>
    <comment_count>1</comment_count>
      <attachid>102188</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-27 14:50:26 -0700</bug_when>
    <thetext>Created attachment 102188
Changes to SerializedScriptValue + window-postmessage-clone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443196</commentid>
    <comment_count>2</comment_count>
      <attachid>102188</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-27 15:29:53 -0700</bug_when>
    <thetext>Comment on attachment 102188
Changes to SerializedScriptValue + window-postmessage-clone.

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

Just a few minor things to clean up.

Thanks!

&gt; LayoutTests/ChangeLog:14
&gt; +        ():

Either fix this by adding a function name or remove it.

&gt; LayoutTests/fast/dom/Window/script-tests/postmessage-clone.js:224
&gt; +        &apos;return [t1,t1,t2,f1,f1,f2]&apos;

put spaces after commas

&gt; LayoutTests/fast/dom/Window/window-postmessage-clone-expected.txt:6
&gt; +FAIL: &apos;postMessage(var x = 0; try { eval(&quot;badref&quot;); } catch(e) { x = e; } x)&apos; should throw but didn&apos;t

We should file a bug for these failures for SquirellFish.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443202</commentid>
    <comment_count>3</comment_count>
      <attachid>102198</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-27 15:38:09 -0700</bug_when>
    <thetext>Created attachment 102198
Address comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443207</commentid>
    <comment_count>4</comment_count>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-27 15:49:43 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=102198) [details]
&gt; Address comments.

Filed a bug for the JSC bindings at https://bugs.webkit.org/show_bug.cgi?id=65292 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443312</commentid>
    <comment_count>5</comment_count>
      <attachid>102198</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-27 21:10:14 -0700</bug_when>
    <thetext>Comment on attachment 102198
Address comments.

Attachment 102198 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9265064

New failing tests:
fast/loader/stateobjects/pushstate-object-types.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443573</commentid>
    <comment_count>6</comment_count>
      <attachid>102271</attachid>
    <who name="Luke Zarko">lukezarko+bugzilla</who>
    <bug_when>2011-07-28 11:25:08 -0700</bug_when>
    <thetext>Created attachment 102271
Fix a broken expectation

The test failure above came from an expectation that Error objects could be serialized. In the new revision of the standard this is no longer the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443714</commentid>
    <comment_count>7</comment_count>
      <attachid>102271</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-28 16:56:41 -0700</bug_when>
    <thetext>Comment on attachment 102271
Fix a broken expectation

Clearing flags on attachment: 102271

Committed r91959: &lt;http://trac.webkit.org/changeset/91959&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443715</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-28 16:56:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102188</attachid>
            <date>2011-07-27 14:50:26 -0700</date>
            <delta_ts>2011-07-27 15:38:09 -0700</delta_ts>
            <desc>Changes to SerializedScriptValue + window-postmessage-clone.</desc>
            <filename>stringsnthings247.patch</filename>
            <type>text/plain</type>
            <size>21390</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMTFiZjc1Li4zYzU0YTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDct
MjcgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFY4IHNob3Vs
ZCBjb3JyZWN0bHkgc2VyaWFsaXplIEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1Mjg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBDaGVj
ayB0aGF0IEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMgYXJlIGNvcnJlY3RseSBz
ZXJpYWxpemVkLgorICAgICAgICAtIENoZWNrIHRoYXQgYSBuYXRpdmUgZXJyb3IgaXMgbm90IHNl
cmlhbGl6ZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3Rt
ZXNzYWdlLWNsb25lLmpzOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMv
cG9zdG1lc3NhZ2UtdGVzdC5qczoKKyAgICAgICAgKCk6CisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1l
eHBlY3RlZC50eHQ6CisKIDIwMTEtMDctMjcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ2hyb21pdW0gcmViYXNlbGluZXMgZm9yIHI4OTYyNyBhbmQgcjkxNDk3
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9w
b3N0bWVzc2FnZS1jbG9uZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQt
dGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMKaW5kZXggOGRiNWJhNC4uMzRkNjVhMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2Fn
ZS1jbG9uZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3Rz
L3Bvc3RtZXNzYWdlLWNsb25lLmpzCkBAIC0yMCw4ICsyMCwxMyBAQCB0cnlQb3N0TWVzc2FnZSgn
WyJhIiwgImEiLCAiYiIsIHthOiJiIiwgYjoiYSJ9XScpOwogdHJ5UG9zdE1lc3NhZ2UoJ1sxLDIs
M10nKTsKIHRyeVBvc3RNZXNzYWdlKCdbLCwxXScpOwogdHJ5UG9zdE1lc3NhZ2UoJyhmdW5jdGlv
bigpe30pJywgdHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKTsKK3RyeVBv
c3RNZXNzYWdlKCd2YXIgeCA9IDA7IHRyeSB7IGV2YWwoImJhZHJlZiIpOyB9IGNhdGNoKGUpIHsg
eCA9IGU7IH0geCcsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUik7CiB0
cnlQb3N0TWVzc2FnZSgnbmV3IERhdGUoMTIzNDU2Nzg5MDAwMCknKTsKIHRyeVBvc3RNZXNzYWdl
KCduZXcgQ29uc3RydWN0b3JXaXRoUHJvdG90eXBlKCJmb28iKScsIGZhbHNlLCAnKHtmaWVsZDoi
Zm9vIn0pJyk7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IEJvb2xlYW4odHJ1ZSknKTsKK3RyeVBvc3RN
ZXNzYWdlKCduZXcgQm9vbGVhbihmYWxzZSknKTsKK3RyeVBvc3RNZXNzYWdlKCduZXcgU3RyaW5n
KCJnbmlydHMiKScpOwordHJ5UG9zdE1lc3NhZ2UoJ25ldyBOdW1iZXIoNDIuMCknKTsKIGN5Y2xp
Y09iamVjdD17fTsKIGN5Y2xpY09iamVjdC5zZWxmID0gY3ljbGljT2JqZWN0OwogdHJ5UG9zdE1l
c3NhZ2UoJ2N5Y2xpY09iamVjdCcsIGZhbHNlLCAiY3ljbGljT2JqZWN0Iik7CkBAIC0yMTAsNiAr
MjE1LDYxIEBAIHRyeVBvc3RNZXNzYWdlKHRodW5rKAogICAgICAgICBkb1Bhc3NGYWlsKHdpbmRv
dy5iY2FsbGVkID09PSB1bmRlZmluZWQsICJ3aW5kb3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkIik7
CiAgICAgfSk7CiAKKy8vIFJlZmVyZW5jZSBlcXVhbGl0eSBiZXR3ZWVuIEJvb2xlYW4gb2JqZWN0
cyBtdXN0IGJlIG1haW50YWluZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3Zh
ciB0MSA9IG5ldyBCb29sZWFuKHRydWUpOyAnICsKKyAgICAgICAgJ3ZhciB0MiA9IG5ldyBCb29s
ZWFuKHRydWUpOyAnICsKKyAgICAgICAgJ3ZhciBmMSA9IG5ldyBCb29sZWFuKGZhbHNlKTsgJyAr
CisgICAgICAgICd2YXIgZjIgPSBuZXcgQm9vbGVhbihmYWxzZSk7ICcgKworICAgICAgICAncmV0
dXJuIFt0MSx0MSx0MixmMSxmMSxmMl0nCisgICAgKSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5j
dGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXSwgbmV3IEJvb2xlYW4odHJ1
ZSkpLCAiQm9vbGVhbiB2YWx1ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbChl
cXVhbCh2WzNdLCBuZXcgQm9vbGVhbihmYWxzZSkpLCAiQm9vbGVhbiB2YWx1ZXMgY29ycmVjdCAo
MykiKTsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzFdLCB2WzJdKSwgIkJvb2xlYW4gdmFs
dWVzIGNvcnJlY3QgKDEsMikiKTsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzRdLCB2WzVd
KSwgIkJvb2xlYW4gdmFsdWVzIGNvcnJlY3QgKDQsNSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2
WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgwLDEpIik7Cisg
ICAgICAgIGRvUGFzc0ZhaWwodlszXSA9PT0gdls0XSwgIlJlZmVyZW5jZXMgdG8gQm9vbGVhbnMg
Y29ycmVjdCAoMyw0KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZl
cmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDAsMikiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2
WzNdICE9PSB2WzVdLCAiUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgzLDUpIik7Cisg
ICAgfSk7CisKKy8vIFJlZmVyZW5jZSBlcXVhbGl0eSBiZXR3ZWVuIE51bWJlciBvYmplY3RzIG11
c3QgYmUgbWFpbnRhaW5lZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIG4x
ID0gbmV3IE51bWJlcig0Mi4wKTsgJyArCisgICAgICAgICd2YXIgbjIgPSBuZXcgTnVtYmVyKDQy
LjApOyAnICsKKyAgICAgICAgJ3JldHVybiBbbjEsbjEsbjJdOycKKyAgICApLCBmYWxzZSwgImV2
YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCBu
ZXcgTnVtYmVyKDQyLjApKSwgIk51bWJlciB2YWx1ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbChlcXVhbCh2WzBdLCB2WzJdKSwgIk51bWJlciB2YWx1ZXMgY29ycmVjdCAoMCwy
KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09IHZbMV0sICJSZWZlcmVuY2VzIHRvIG51
bWJlcnMgY29ycmVjdCAoMCwxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0s
ICJSZWZlcmVuY2VzIHRvIG51bWJlcnMgY29ycmVjdCAoMCwyKSIpOworICAgIH0pOworCisvLyBS
ZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiBTdHJpbmcgb2JqZWN0cyBtdXN0IGJlIG1haW50YWlu
ZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBzMSA9IG5ldyBTdHJpbmco
ImduaXJ0cyIpOyAnICsKKyAgICAgICAgJ3ZhciBzMiA9IG5ldyBTdHJpbmcoImduaXJ0cyIpOyAn
ICsKKyAgICAgICAgJ3JldHVybiBbczEsczEsczJdOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVu
ayIsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCBuZXcgU3Ry
aW5nKCJnbmlydHMiKSksICJTdHJpbmcgdmFsdWVzIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRv
UGFzc0ZhaWwoZXF1YWwodlswXSwgdlsyXSksICJTdHJpbmcgdmFsdWVzIGNvcnJlY3QgKDAsMiki
KTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBzdHJp
bmdzIGNvcnJlY3QgKDAsMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAi
UmVmZXJlbmNlcyB0byBzdHJpbmdzIGNvcnJlY3QgKDAsMikiKTsKKyAgICB9KTsKKworLy8gUHJv
cGVydGllcyBhZGRlZCB0byBTdHJpbmcsIEJvb2xlYW4gYW5kIE51bWJlciBvYmplY3RzIHNob3Vs
ZCBub3QgYmUgc2VyaWFsaXplZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFy
IHMgPSBuZXcgU3RyaW5nKCJnbmlydHMiKTsgJyArCisgICAgICAgICd2YXIgbiA9IG5ldyBOdW1i
ZXIoNDIuMCk7ICcgKworICAgICAgICAndmFyIGIgPSBuZXcgQm9vbGVhbih0cnVlKTsgJyArCisg
ICAgICAgICdzLmZvbyA9IDE7IG4uZm9vID0gMjsgYi5mb28gPSAzOyAnICsKKyAgICAgICAgJ3Jl
dHVybiBbcyxuLGJdOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsK
KyAgICAgICAgZG9QYXNzRmFpbCh2WzBdLmZvbyA9PSB1bmRlZmluZWQsICJTdHJpbmcgb2JqZWN0
IHByb3BlcnRpZXMgbm90IHNlcmlhbGl6ZWQiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzFdLmZv
byA9PSB1bmRlZmluZWQsICJOdW1iZXIgb2JqZWN0IHByb3BlcnRpZXMgbm90IHNlcmlhbGl6ZWQi
KTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzJdLmZvbyA9PSB1bmRlZmluZWQsICJCb29sZWFuIG9i
amVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkIik7CisgICAgfSk7CisKIC8vIFJlZmVyZW5j
ZSBlcXVhbGl0eSBiZXR3ZWVuIGRhdGVzIG11c3QgYmUgbWFpbnRhaW5lZC4KIHRyeVBvc3RNZXNz
YWdlKHRodW5rKAogICAgICAgICAndmFyIGQxID0gbmV3IERhdGUoMSwyLDMpOyAnICsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3Nh
Z2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9z
dG1lc3NhZ2UtdGVzdC5qcwppbmRleCAwNzUwYTg5Li40YWNiNGVlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2Fn
ZS10ZXN0LmpzCkBAIC0xOSw2ICsxOSwxOCBAQCBmdW5jdGlvbiBlcXVhbChhY3R1YWwsIGV4cGVj
dGVkKQogICAgICAgICAgICAgcmV0dXJuIChleHBlY3RlZCBpbnN0YW5jZW9mIERhdGUpICYmIGFj
dHVhbC5nZXRUaW1lKCkgPT0gZXhwZWN0ZWQuZ2V0VGltZSgpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQorICAgIGlmICgoYWN0dWFsIGluc3RhbmNlb2YgTnVtYmVyKSB8fCAoZXhwZWN0
ZWQgaW5zdGFuY2VvZiBOdW1iZXIpKSB7CisgICAgICAgIHJldHVybiAoYWN0dWFsIGluc3RhbmNl
b2YgTnVtYmVyKSAmJiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBOdW1iZXIpICYmCisgICAgICAgICAg
ICAoZXhwZWN0ZWQudmFsdWVPZigpID09IGFjdHVhbC52YWx1ZU9mKCkpOworICAgIH0KKyAgICBp
ZiAoKGFjdHVhbCBpbnN0YW5jZW9mIEJvb2xlYW4pIHx8IChleHBlY3RlZCBpbnN0YW5jZW9mIEJv
b2xlYW4pKSB7CisgICAgICAgIHJldHVybiAoYWN0dWFsIGluc3RhbmNlb2YgQm9vbGVhbikgJiYg
KGV4cGVjdGVkIGluc3RhbmNlb2YgQm9vbGVhbikgJiYKKyAgICAgICAgICAgIChleHBlY3RlZC52
YWx1ZU9mKCkgPT0gYWN0dWFsLnZhbHVlT2YoKSk7CisgICAgfQorICAgIGlmICgoYWN0dWFsIGlu
c3RhbmNlb2YgU3RyaW5nKSB8fCAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBTdHJpbmcpKSB7CisgICAg
ICAgIHJldHVybiAoYWN0dWFsIGluc3RhbmNlb2YgU3RyaW5nKSAmJiAoZXhwZWN0ZWQgaW5zdGFu
Y2VvZiBTdHJpbmcpICYmCisgICAgICAgICAgICAoZXhwZWN0ZWQudmFsdWVPZigpID09IGFjdHVh
bC52YWx1ZU9mKCkpOworICAgIH0KICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3R1YWwpIHx8IEFy
cmF5LmlzQXJyYXkoZXhwZWN0ZWQpKSB7CiAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhY3R1
YWwpIHx8ICFBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1l
c3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKaW5kZXggMTQ4NDU0MS4uNGFhZDdj
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVz
c2FnZS1jbG9uZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw5IEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNzQ6IFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDc0OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA4NjogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgODY6IFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQogVGVzdHMgdGhh
dCB3ZSBjbG9uZSBvYmplY3QgaGllcmFyY2hpZXMKIAogRkFJTDogJ3Bvc3RNZXNzYWdlKChmdW5j
dGlvbigpe30pKScgc2hvdWxkIHRocm93IGJ1dCBkaWRuJ3QKK0ZBSUw6ICdwb3N0TWVzc2FnZSh2
YXIgeCA9IDA7IHRyeSB7IGV2YWwoImJhZHJlZiIpOyB9IGNhdGNoKGUpIHsgeCA9IGU7IH0geCkn
IHNob3VsZCB0aHJvdyBidXQgZGlkbid0CiBQQVNTOiAncG9zdE1lc3NhZ2Uod2luZG93KScgdGhy
ZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCiBQQVNTOiAncG9zdE1lc3NhZ2UoKHtnZXQgYSgpIHsg
dGhyb3cgIngiIH19KSknIHRocmV3IHgKIEZBSUw6ICdwb3N0TWVzc2FnZShpbWFnZURhdGEuZGF0
YSknIHNob3VsZCB0aHJvdyBidXQgZGlkbid0CkBAIC0zMSw4ICszMiwxMyBAQCBQQVNTOiBldmVu
dERhdGEgaXMgYSxhLGIsW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVu
dERhdGEgaXMgMSwyLDMgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAsLDEgb2Yg
dHlwZSBvYmplY3QKIEZBSUw6IGV2ZW50RGF0YSBpcyBudWxsIHNob3VsZCBiZSBmdW5jdGlvbiAo
KSB7fSBvZiB0eXBlIGZ1bmN0aW9uCitGQUlMOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3Rd
IHNob3VsZCBiZSBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogYmFkcmVmIG9m
IHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgMjAwOS0wMi0xM1QyMzozMTozMC4wMDBa
IG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3RdIG9mIHR5
cGUgb2JqZWN0CitGQUlMOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3RdIHNob3VsZCBiZSB0
cnVlIG9mIHR5cGUgb2JqZWN0CitGQUlMOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3RdIHNo
b3VsZCBiZSBmYWxzZSBvZiB0eXBlIG9iamVjdAorRkFJTDogZXZlbnREYXRhIGlzIFtvYmplY3Qg
T2JqZWN0XSBzaG91bGQgYmUgZ25pcnRzIG9mIHR5cGUgb2JqZWN0CitGQUlMOiBldmVudERhdGEg
aXMgW29iamVjdCBPYmplY3RdIHNob3VsZCBiZSA0MiBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZl
bnREYXRhIGlzID09PSB0byBldmVudERhdGEuc2VsZgogUEFTUzogZXZlbnREYXRhIGlzID09PSB0
byBldmVudERhdGFbMF0KIFBBU1M6IGV2ZW50RGF0YS5ncmFwaDEgaXMgPT09IHRvIGV2ZW50RGF0
YS5ncmFwaDIKQEAgLTg2LDYgKzkyLDI1IEBAIEZBSUw6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxs
aWZpZWQKIFBBU1M6IHdpbmRvdy5wY2FsbGVkID09PSB0cnVlCiBQQVNTOiB3aW5kb3cuYWNhbGxl
ZCA9PT0gdHJ1ZQogRkFJTDogd2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZAorRkFJTDogQm9v
bGVhbiB2YWx1ZXMgY29ycmVjdCAoMCkKK0ZBSUw6IEJvb2xlYW4gdmFsdWVzIGNvcnJlY3QgKDMp
CitQQVNTOiBCb29sZWFuIHZhbHVlcyBjb3JyZWN0ICgxLDIpCitQQVNTOiBCb29sZWFuIHZhbHVl
cyBjb3JyZWN0ICg0LDUpCitQQVNTOiBSZWZlcmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDAs
MSkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gQm9vbGVhbnMgY29ycmVjdCAoMyw0KQorUEFTUzogUmVm
ZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgwLDIpCitQQVNTOiBSZWZlcmVuY2VzIHRvIEJv
b2xlYW5zIGNvcnJlY3QgKDMsNSkKK0ZBSUw6IE51bWJlciB2YWx1ZXMgY29ycmVjdCAoMCkKK1BB
U1M6IE51bWJlciB2YWx1ZXMgY29ycmVjdCAoMCwyKQorUEFTUzogUmVmZXJlbmNlcyB0byBudW1i
ZXJzIGNvcnJlY3QgKDAsMSkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gbnVtYmVycyBjb3JyZWN0ICgw
LDIpCitGQUlMOiBTdHJpbmcgdmFsdWVzIGNvcnJlY3QgKDApCitQQVNTOiBTdHJpbmcgdmFsdWVz
IGNvcnJlY3QgKDAsMikKK1BBU1M6IFJlZmVyZW5jZXMgdG8gc3RyaW5ncyBjb3JyZWN0ICgwLDEp
CitQQVNTOiBSZWZlcmVuY2VzIHRvIHN0cmluZ3MgY29ycmVjdCAoMCwyKQorRkFJTDogU3RyaW5n
IG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkCitGQUlMOiBOdW1iZXIgb2JqZWN0IHBy
b3BlcnRpZXMgbm90IHNlcmlhbGl6ZWQKK0ZBSUw6IEJvb2xlYW4gb2JqZWN0IHByb3BlcnRpZXMg
bm90IHNlcmlhbGl6ZWQKIFBBU1M6IERhdGUgdmFsdWVzIGNvcnJlY3QgKDApCiBQQVNTOiBEYXRl
IHZhbHVlcyBjb3JyZWN0ICgxKQogRkFJTDogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgw
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25l
LWV4cGVjdGVkLnR4dAppbmRleCBmZGM0YTFiLi43MTZkZDZkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dApAQCAt
MSw2ICsxLDcgQEAKIFRlc3RzIHRoYXQgd2UgY2xvbmUgb2JqZWN0IGhpZXJhcmNoaWVzCiAKIFBB
U1M6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKXt9KSknIHRocmV3IEVycm9yOiBEQVRBX0NMT05F
X0VSUjogRE9NIEV4Y2VwdGlvbiAyNQorUEFTUzogJ3Bvc3RNZXNzYWdlKHZhciB4ID0gMDsgdHJ5
IHsgZXZhbCgiYmFkcmVmIik7IH0gY2F0Y2goZSkgeyB4ID0gZTsgfSB4KScgdGhyZXcgRXJyb3I6
IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CiBQQVNTOiAncG9zdE1lc3NhZ2Uod2lu
ZG93KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1CiBQQVNT
OiAncG9zdE1lc3NhZ2UoKHtnZXQgYSgpIHsgdGhyb3cgIngiIH19KSknIHRocmV3IHgKIFBBU1M6
ICdwb3N0TWVzc2FnZShpbWFnZURhdGEuZGF0YSknIHRocmV3IEVycm9yOiBEQVRBX0NMT05FX0VS
UjogRE9NIEV4Y2VwdGlvbiAyNQpAQCAtMzAsNiArMzEsMTAgQEAgUEFTUzogZXZlbnREYXRhIGlz
IDEsMiwzIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgLCwxIG9mIHR5cGUgb2Jq
ZWN0CiBQQVNTOiBldmVudERhdGEgaXMgMjAwOS0wMi0xM1QyMzozMTozMC4wMDBaIG9mIHR5cGUg
b2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVjdCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0
CitQQVNTOiBldmVudERhdGEgaXMgdHJ1ZSBvZiB0eXBlIG9iamVjdAorUEFTUzogZXZlbnREYXRh
IGlzIGZhbHNlIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgZ25pcnRzIG9mIHR5
cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgNDIgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2
ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0g
dG8gZXZlbnREYXRhWzBdCiBQQVNTOiBldmVudERhdGEuZ3JhcGgxIGlzID09PSB0byBldmVudERh
dGEuZ3JhcGgyCkBAIC04Myw2ICs4OCwyNSBAQCBQQVNTOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVs
bGlmaWVkCiBQQVNTOiB3aW5kb3cucGNhbGxlZCA9PT0gdHJ1ZQogUEFTUzogd2luZG93LmFjYWxs
ZWQgPT09IHRydWUKIFBBU1M6IHdpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQKK1BBU1M6IEJv
b2xlYW4gdmFsdWVzIGNvcnJlY3QgKDApCitQQVNTOiBCb29sZWFuIHZhbHVlcyBjb3JyZWN0ICgz
KQorUEFTUzogQm9vbGVhbiB2YWx1ZXMgY29ycmVjdCAoMSwyKQorUEFTUzogQm9vbGVhbiB2YWx1
ZXMgY29ycmVjdCAoNCw1KQorUEFTUzogUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgw
LDEpCitQQVNTOiBSZWZlcmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDMsNCkKK1BBU1M6IFJl
ZmVyZW5jZXMgdG8gQm9vbGVhbnMgY29ycmVjdCAoMCwyKQorUEFTUzogUmVmZXJlbmNlcyB0byBC
b29sZWFucyBjb3JyZWN0ICgzLDUpCitQQVNTOiBOdW1iZXIgdmFsdWVzIGNvcnJlY3QgKDApCitQ
QVNTOiBOdW1iZXIgdmFsdWVzIGNvcnJlY3QgKDAsMikKK1BBU1M6IFJlZmVyZW5jZXMgdG8gbnVt
YmVycyBjb3JyZWN0ICgwLDEpCitQQVNTOiBSZWZlcmVuY2VzIHRvIG51bWJlcnMgY29ycmVjdCAo
MCwyKQorUEFTUzogU3RyaW5nIHZhbHVlcyBjb3JyZWN0ICgwKQorUEFTUzogU3RyaW5nIHZhbHVl
cyBjb3JyZWN0ICgwLDIpCitQQVNTOiBSZWZlcmVuY2VzIHRvIHN0cmluZ3MgY29ycmVjdCAoMCwx
KQorUEFTUzogUmVmZXJlbmNlcyB0byBzdHJpbmdzIGNvcnJlY3QgKDAsMikKK1BBU1M6IFN0cmlu
ZyBvYmplY3QgcHJvcGVydGllcyBub3Qgc2VyaWFsaXplZAorUEFTUzogTnVtYmVyIG9iamVjdCBw
cm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkCitQQVNTOiBCb29sZWFuIG9iamVjdCBwcm9wZXJ0aWVz
IG5vdCBzZXJpYWxpemVkCiBQQVNTOiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKQogUEFTUzogRGF0
ZSB2YWx1ZXMgY29ycmVjdCAoMSkKIFBBU1M6IFJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAo
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAxOTYyNGY3Li4yZTIxMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzQgQEAKKzIwMTEtMDctMjcgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisg
ICAgICAgIFY4IHNob3VsZCBjb3JyZWN0bHkgc2VyaWFsaXplIEJvb2xlYW4sIE51bWJlciBhbmQg
U3RyaW5nIG9iamVjdHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1Mjg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBOZXcgQVBJcyB3ZXJlIGV4cG9zZWQgdG8gYWxsb3cgVjggdG8gY29y
cmVjdGx5IHNlcmlhbGl6ZSBCb29sZWFuLCBOdW1iZXIgYW5kIFN0cmluZyBvYmplY3RzLCBhcyB3
ZWxsIGFzIGRldGVjdCBjZXJ0YWluIG5hdGl2ZSBlcnJvcnMgYXMgcmVxdWlyZWQgYnkgdGhlIEhU
TUw1IFN0cnVjdHVyZWQgQ2xvbmUgYWxnb3JpdGhtIChodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS91cmxzLmh0bWwjc2FmZS1wYXNzaW5n
LW9mLXN0cnVjdHVyZWQtZGF0YSkuIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzaG91bGQgbWFrZSB1
c2Ugb2YgdGhlc2UgQVBJcy4KKworICAgICAgICAtIENoZWNrcyBmb3IgYW5kIHNlcmlhbGl6ZXMg
Qm9vbGVhbiwgTnVtYmVyIGFuZCBTdHJpbmcgb2JqZWN0cy4KKyAgICAgICAgLSBDaGVja3MgZm9y
IG5hdGl2ZSBlcnJvcnMgYW5kIGFib3J0cyBzaG91bGQgYSBzY3JpcHQgYXR0ZW1wdCB0byBzZXJp
YWxpemUgdGhlbS4KKyAgICAgICAgLSBTbWFsbCBuYW1lIGNoYW5nZSB0byBjbGVhciB1cCB0aGUg
Y29kZTogbV9vYmplY3RSZWZlcmVuY2VTdGFjayA9PiBtX29wZW5Db21wb3NpdGVSZWZlcmVuY2VT
dGFjaworCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0ZUJvb2xl
YW5PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVT
dHJpbmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3Jp
dGVOdW1iZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6
ZXI6OndyaXRlU3RyaW5nT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpT
ZXJpYWxpemVyOjp3cml0ZU51bWJlck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVj
dE1hcDo6U2VyaWFsaXplcjo6d3JpdGVCb29sZWFuT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpWOE9iamVjdE1hcDo6UmVhZGVyOjpyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpSZWFkZXI6OnJlYWRTdHJpbmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmpl
Y3RNYXA6OlJlYWRlcjo6cmVhZE51bWJlck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9i
amVjdE1hcDo6RGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpW
OE9iamVjdE1hcDo6RGVzZXJpYWxpemVyOjpvcGVuQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmNsb3NlQ29tcG9zaXRlKToKKwogMjAxMS0w
Ny0yNSAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Q2hyb21pdW1dIEFkZCBiZXR0ZXIgV2ViS2l0IEFQSSBmb3IgY2hyb21lLnRhYnMuaW5zZXJ0Q1NT
IGV4dGVuc2lvbiBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGEwYmI5NDguLjJkOWQwY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApA
QCAtMTk5LDYgKzE5OSwxMCBAQCBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogICAgIEdlbmVyYXRl
RnJlc2hPYmplY3RUYWcgPSAnbycsIC8vIC0+IGVtcHR5IG9iamVjdCBhbGxvY2F0ZWQgYW4gb2Jq
ZWN0IElEIGFuZCBwdXNoZWQgb250byB0aGUgb3BlbiBzdGFjayAocmVmKQogICAgIEdlbmVyYXRl
RnJlc2hBcnJheVRhZyA9ICdhJywgLy8gbGVuZ3RoOnVpbnQzMl90IC0+IGVtcHR5IGFycmF5W2xl
bmd0aF0gYWxsb2NhdGVkIGFuIG9iamVjdCBJRCBhbmQgcHVzaGVkIG9udG8gdGhlIG9wZW4gc3Rh
Y2sgKHJlZikKICAgICBSZWZlcmVuY2VDb3VudFRhZyA9ICc/JywgLy8gcmVmVGFibGVTaXplOnVp
bnQzMl90IC0+IElmIHRoZSByZWZlcmVuY2UgdGFibGUgaXMgbm90IHJlZlRhYmxlU2l6ZSBiaWcs
IGZhaWxzLgorICAgIFN0cmluZ09iamVjdFRhZyA9ICdzJywgLy8gIHN0cmluZzpSYXdTdHJpbmcg
LT4gbmV3IFN0cmluZyhzdHJpbmcpIChyZWYpCisgICAgTnVtYmVyT2JqZWN0VGFnID0gJ24nLCAv
LyB2YWx1ZTpkb3VibGUgLT4gbmV3IE51bWJlcih2YWx1ZSkgKHJlZikKKyAgICBUcnVlT2JqZWN0
VGFnID0gJ3knLCAvLyBuZXcgQm9vbGVhbih0cnVlKSAocmVmKQorICAgIEZhbHNlT2JqZWN0VGFn
ID0gJ3gnLCAvLyBuZXcgQm9vbGVhbihmYWxzZSkgKHJlZikKICAgICBWZXJzaW9uVGFnID0gMHhG
RiAvLyB2ZXJzaW9uOnVpbnQzMl90IC0+IFVzZXMgdGhpcyBhcyB0aGUgZmlsZSB2ZXJzaW9uLgog
fTsKIApAQCAtMjc4LDYgKzI4MiwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHdyaXRlRmFsc2Uo
KSB7IGFwcGVuZChGYWxzZVRhZyk7IH0KIAorICAgIHZvaWQgd3JpdGVCb29sZWFuT2JqZWN0KGJv
b2wgdmFsdWUpCisgICAgeworICAgICAgICBhcHBlbmQodmFsdWUgPyBUcnVlT2JqZWN0VGFnIDog
RmFsc2VPYmplY3RUYWcpOworICAgIH0KKwogICAgIHZvaWQgd3JpdGVTdHJpbmcoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCkKICAgICB7CiAgICAgICAgIEFTU0VSVChsZW5ndGggPj0gMCk7
CkBAIC0yODUsNiArMjk0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgZG9Xcml0ZVN0cmluZyhkYXRh
LCBsZW5ndGgpOwogICAgIH0KIAorICAgIHZvaWQgd3JpdGVTdHJpbmdPYmplY3QoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCkKKyAgICB7CisgICAgICAgIEFTU0VSVChsZW5ndGggPj0gMCk7
CisgICAgICAgIGFwcGVuZChTdHJpbmdPYmplY3RUYWcpOworICAgICAgICBkb1dyaXRlU3RyaW5n
KGRhdGEsIGxlbmd0aCk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZVdlYkNvcmVTdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewogICAgICAgICAvLyBVc2VzIFVURjggZW5jb2Rpbmcg
c28gd2UgY2FuIHJlYWQgaXQgYmFjayBhcyBlaXRoZXIgVjggb3IKQEAgLTMyMyw2ICszMzksMTIg
QEAgcHVibGljOgogICAgICAgICBkb1dyaXRlTnVtYmVyKG51bWJlcik7CiAgICAgfQogCisgICAg
dm9pZCB3cml0ZU51bWJlck9iamVjdChkb3VibGUgbnVtYmVyKQorICAgIHsKKyAgICAgICAgYXBw
ZW5kKE51bWJlck9iamVjdFRhZyk7CisgICAgICAgIGRvV3JpdGVOdW1iZXIobnVtYmVyKTsKKyAg
ICB9CisKICAgICB2b2lkIHdyaXRlQmxvYihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiB0eXBlLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAgICB7CiAgICAgICAgIGFwcGVuZChC
bG9iVGFnKTsKQEAgLTg2OCw2ICs4OTAsMjUgQEAgcHJpdmF0ZToKICAgICAgICAgbV93cml0ZXIu
d3JpdGVTdHJpbmcoKnN0cmluZ1ZhbHVlLCBzdHJpbmdWYWx1ZS5sZW5ndGgoKSk7CiAgICAgfQog
CisgICAgdm9pZCB3cml0ZVN0cmluZ09iamVjdCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUp
CisgICAgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmdPYmplY3Q+IHN0cmluZ09iamVj
dCA9IHZhbHVlLkFzPHY4OjpTdHJpbmdPYmplY3Q+KCk7CisgICAgICAgIHY4OjpTdHJpbmc6OlV0
ZjhWYWx1ZSBzdHJpbmdWYWx1ZShzdHJpbmdPYmplY3QtPlN0cmluZ1ZhbHVlKCkpOworICAgICAg
ICBtX3dyaXRlci53cml0ZVN0cmluZ09iamVjdCgqc3RyaW5nVmFsdWUsIHN0cmluZ1ZhbHVlLmxl
bmd0aCgpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlTnVtYmVyT2JqZWN0KHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok51bWJlck9i
amVjdD4gbnVtYmVyT2JqZWN0ID0gdmFsdWUuQXM8djg6Ok51bWJlck9iamVjdD4oKTsKKyAgICAg
ICAgbV93cml0ZXIud3JpdGVOdW1iZXJPYmplY3QobnVtYmVyT2JqZWN0LT5OdW1iZXJWYWx1ZSgp
KTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlQm9vbGVhbk9iamVjdCh2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpCb29sZWFuT2JqZWN0
PiBib29sZWFuT2JqZWN0ID0gdmFsdWUuQXM8djg6OkJvb2xlYW5PYmplY3Q+KCk7CisgICAgICAg
IG1fd3JpdGVyLndyaXRlQm9vbGVhbk9iamVjdChib29sZWFuT2JqZWN0LT5Cb29sZWFuVmFsdWUo
KSk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZUJsb2Iodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZh
bHVlKQogICAgIHsKICAgICAgICAgQmxvYiogYmxvYiA9IFY4QmxvYjo6dG9OYXRpdmUodmFsdWUu
QXM8djg6Ok9iamVjdD4oKSk7CkBAIC0xMDEzLDYgKzEwNTQsMTIgQEAgU2VyaWFsaXplcjo6U3Rh
dGVCYXNlKiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUsIFN0YXQKICAgICAgICAgZ3JleU9iamVjdChqc09iamVjdCk7CiAgICAgICAgIGlmICh2YWx1
ZS0+SXNEYXRlKCkpCiAgICAgICAgICAgICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJl
clZhbHVlKCkpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNTdHJpbmdPYmplY3QoKSkKKyAg
ICAgICAgICAgIHdyaXRlU3RyaW5nT2JqZWN0KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAodmFs
dWUtPklzTnVtYmVyT2JqZWN0KCkpCisgICAgICAgICAgICB3cml0ZU51bWJlck9iamVjdCh2YWx1
ZSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0Jvb2xlYW5PYmplY3QoKSkKKyAgICAgICAg
ICAgIHdyaXRlQm9vbGVhbk9iamVjdCh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5J
c0FycmF5KCkpIHsKICAgICAgICAgICAgIG1fd3JpdGVyLndyaXRlR2VuZXJhdGVGcmVzaEFycmF5
KHZhbHVlLkFzPHY4OjpBcnJheT4oKS0+TGVuZ3RoKCkpOwogICAgICAgICAgICAgcmV0dXJuIHB1
c2gobmV3QXJyYXlTdGF0ZSh2YWx1ZS5Bczx2ODo6QXJyYXk+KCksIG5leHQpKTsKQEAgLTEwMjks
OCArMTA3Niw3IEBAIFNlcmlhbGl6ZXI6OlN0YXRlQmFzZSogU2VyaWFsaXplcjo6ZG9TZXJpYWxp
emUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBTdGF0CiAgICAgICAgIGVsc2UgaWYgKFY4
QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKHZhbHVlKSkKICAgICAgICAgICAgIHdyaXRlQXJyYXlC
dWZmZXIodmFsdWUpOwogICAgICAgICBlbHNlIGlmICh2YWx1ZS0+SXNPYmplY3QoKSkgewotICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY2hlY2sgaWYganNPYmplY3QgaXMgYSAnbmF0
aXZlIEVycm9yJyBhbmQgaWYgc28gdGhyb3cgYSBEYXRhQ2xvbmVFcnJvci4KLSAgICAgICAgICAg
IGlmIChpc0hvc3RPYmplY3QoanNPYmplY3QpIHx8IGpzT2JqZWN0LT5Jc0NhbGxhYmxlKCkpCisg
ICAgICAgICAgICBpZiAoaXNIb3N0T2JqZWN0KGpzT2JqZWN0KSB8fCBqc09iamVjdC0+SXNDYWxs
YWJsZSgpIHx8IHZhbHVlLT5Jc05hdGl2ZUVycm9yKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGhhbmRsZUVycm9yKERhdGFDbG9uZUVycm9yLCBuZXh0KTsKICAgICAgICAgICAgIG1fd3JpdGVy
LndyaXRlR2VuZXJhdGVGcmVzaE9iamVjdCgpOwogICAgICAgICAgICAgcmV0dXJuIHB1c2gobmV3
T2JqZWN0U3RhdGUoanNPYmplY3QsIG5leHQpKTsKQEAgLTExMDYsMTAgKzExNTIsMjMgQEAgcHVi
bGljOgogICAgICAgICBjYXNlIEZhbHNlVGFnOgogICAgICAgICAgICAgKnZhbHVlID0gdjg6OkZh
bHNlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUcnVlT2JqZWN0VGFnOgor
ICAgICAgICAgICAgKnZhbHVlID0gdjg6OkJvb2xlYW5PYmplY3Q6Ok5ldyh0cnVlKTsKKyAgICAg
ICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRmFsc2VPYmplY3RUYWc6CisgICAgICAgICAgICAqdmFsdWUg
PSB2ODo6Qm9vbGVhbk9iamVjdDo6TmV3KGZhbHNlKTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVz
aE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgU3RyaW5nVGFnOgogICAgICAgICAgICAgaWYgKCFyZWFkU3RyaW5nKHZhbHVlKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBTdHJpbmdPYmplY3RUYWc6CisgICAgICAgICAgICBpZiAoIXJlYWRTdHJpbmdPYmplY3QodmFs
dWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3Iu
cHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgSW50MzJUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRJbnQzMih2YWx1ZSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEyNyw2ICsxMTg2LDExIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIGlmICghcmVhZE51bWJlcih2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTnVtYmVyT2JqZWN0
VGFnOgorICAgICAgICAgICAgaWYgKCFyZWFkTnVtYmVyT2JqZWN0KHZhbHVlKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZl
cmVuY2UoKnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEJsb2JUYWc6
CiAgICAgICAgICAgICBpZiAoIXJlYWRCbG9iKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xMjg3LDYgKzEzNTEsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCisgICAgYm9vbCByZWFkU3RyaW5nT2JqZWN0KHY4OjpIYW5kbGU8djg6
OlZhbHVlPiogdmFsdWUpCisgICAgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3Ry
aW5nVmFsdWU7CisgICAgICAgIGlmICghcmVhZFN0cmluZygmc3RyaW5nVmFsdWUpIHx8ICFzdHJp
bmdWYWx1ZS0+SXNTdHJpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
KnZhbHVlID0gdjg6OlN0cmluZ09iamVjdDo6TmV3KHN0cmluZ1ZhbHVlLkFzPHY4OjpTdHJpbmc+
KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBib29sIHJlYWRXZWJDb3Jl
U3RyaW5nKFN0cmluZyogc3RyaW5nKQogICAgIHsKICAgICAgICAgdWludDMyX3QgbGVuZ3RoOwpA
QCAtMTMzNCw2ICsxNDA3LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICp2YWx1ZSA9IHY4OjpOdW1i
ZXI6Ok5ldyhudW1iZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgIAorICAgIGJv
b2wgcmVhZE51bWJlck9iamVjdCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHsK
KyAgICAgICAgZG91YmxlIG51bWJlcjsKKyAgICAgICAgaWYgKCFkb1JlYWROdW1iZXIoJm51bWJl
cikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICp2YWx1ZSA9IHY4OjpOdW1i
ZXJPYmplY3Q6Ok5ldyhudW1iZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAg
ICBib29sIHJlYWRJbWFnZURhdGEodjg6OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7
CkBAIC0xNTg1LDcgKzE2NjcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoIWRvRGVzZXJp
YWxpemUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKICAgICAgICAgfQot
ICAgICAgICBpZiAoc3RhY2tEZXB0aCgpICE9IDEgfHwgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5z
aXplKCkpCisgICAgICAgIGlmIChzdGFja0RlcHRoKCkgIT0gMSB8fCBtX29wZW5Db21wb3NpdGVS
ZWZlcmVuY2VTdGFjay5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKICAg
ICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlc3VsdCA9IHNjb3BlLkNsb3NlKGVsZW1lbnQo
MCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTczNCwxNiArMTgxNiwxNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgb3BlbkNvbXBvc2l0ZShjb25zdCB2ODo6TG9jYWw8djg6OlZhbHVlPiYg
b2JqZWN0KQogICAgIHsKICAgICAgICAgdWludDMyX3QgbmV3T2JqZWN0UmVmZXJlbmNlID0gbV9v
YmplY3RQb29sLnNpemUoKTsKLSAgICAgICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5hcHBlbmQo
bmV3T2JqZWN0UmVmZXJlbmNlKTsKKyAgICAgICAgbV9vcGVuQ29tcG9zaXRlUmVmZXJlbmNlU3Rh
Y2suYXBwZW5kKG5ld09iamVjdFJlZmVyZW5jZSk7CiAgICAgICAgIG1fb2JqZWN0UG9vbC5hcHBl
bmQob2JqZWN0KTsKICAgICB9CiAKICAgICBib29sIGNsb3NlQ29tcG9zaXRlKHY4OjpIYW5kbGU8
djg6OlZhbHVlPiogb2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYgKCFtX29iamVjdFJlZmVyZW5j
ZVN0YWNrLnNpemUoKSkKKyAgICAgICAgaWYgKCFtX29wZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFj
ay5zaXplKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHVpbnQzMl90IG9i
amVjdFJlZmVyZW5jZSA9IG1fb2JqZWN0UmVmZXJlbmNlU3RhY2tbbV9vYmplY3RSZWZlcmVuY2VT
dGFjay5zaXplKCkgLSAxXTsKLSAgICAgICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaHJpbmso
bV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkgLSAxKTsKKyAgICAgICAgdWludDMyX3Qgb2Jq
ZWN0UmVmZXJlbmNlID0gbV9vcGVuQ29tcG9zaXRlUmVmZXJlbmNlU3RhY2tbbV9vcGVuQ29tcG9z
aXRlUmVmZXJlbmNlU3RhY2suc2l6ZSgpIC0gMV07CisgICAgICAgIG1fb3BlbkNvbXBvc2l0ZVJl
ZmVyZW5jZVN0YWNrLnNocmluayhtX29wZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFjay5zaXplKCkg
LSAxKTsKICAgICAgICAgaWYgKG9iamVjdFJlZmVyZW5jZSA+PSBtX29iamVjdFBvb2wuc2l6ZSgp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAqb2JqZWN0ID0gbV9vYmplY3RQ
b29sW29iamVjdFJlZmVyZW5jZV07CkBAIC0xNzUzLDcgKzE4MzUsNyBAQCBwcml2YXRlOgogICAg
IFJlYWRlciYgbV9yZWFkZXI7CiAgICAgVmVjdG9yPHY4OjpMb2NhbDx2ODo6VmFsdWU+ID4gbV9z
dGFjazsKICAgICBWZWN0b3I8djg6OkhhbmRsZTx2ODo6VmFsdWU+ID4gbV9vYmplY3RQb29sOwot
ICAgIFZlY3Rvcjx1aW50MzJfdD4gbV9vYmplY3RSZWZlcmVuY2VTdGFjazsKKyAgICBWZWN0b3I8
dWludDMyX3Q+IG1fb3BlbkNvbXBvc2l0ZVJlZmVyZW5jZVN0YWNrOwogICAgIHVpbnQzMl90IG1f
dmVyc2lvbjsKIH07CiAK
</data>
<flag name="review"
          id="97364"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102198</attachid>
            <date>2011-07-27 15:38:09 -0700</date>
            <delta_ts>2011-07-28 11:25:08 -0700</delta_ts>
            <desc>Address comments.</desc>
            <filename>stringsnthings336.patch</filename>
            <type>text/plain</type>
            <size>21389</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMTFiZjc1Li4wYmM4MGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDct
MjcgIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFY4IHNob3Vs
ZCBjb3JyZWN0bHkgc2VyaWFsaXplIEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1Mjg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBDaGVj
ayB0aGF0IEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMgYXJlIGNvcnJlY3RseSBz
ZXJpYWxpemVkLgorICAgICAgICAtIENoZWNrIHRoYXQgYSBuYXRpdmUgZXJyb3IgaXMgbm90IHNl
cmlhbGl6ZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3Rt
ZXNzYWdlLWNsb25lLmpzOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMv
cG9zdG1lc3NhZ2UtdGVzdC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBv
c3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dDoK
KwogMjAxMS0wNy0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBDaHJvbWl1bSByZWJhc2VsaW5lcyBmb3Igcjg5NjI3IGFuZCByOTE0OTcuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNs
b25lLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVz
c2FnZS1jbG9uZS5qcwppbmRleCA4ZGI1YmE0Li40ODBmMWVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2Ut
Y2xvbmUuanMKQEAgLTIwLDggKzIwLDEzIEBAIHRyeVBvc3RNZXNzYWdlKCdbImEiLCAiYSIsICJi
Iiwge2E6ImIiLCBiOiJhIn1dJyk7CiB0cnlQb3N0TWVzc2FnZSgnWzEsMiwzXScpOwogdHJ5UG9z
dE1lc3NhZ2UoJ1ssLDFdJyk7CiB0cnlQb3N0TWVzc2FnZSgnKGZ1bmN0aW9uKCl7fSknLCB0cnVl
LCBudWxsLCBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIpOwordHJ5UG9zdE1lc3NhZ2UoJ3Zh
ciB4ID0gMDsgdHJ5IHsgZXZhbCgiYmFkcmVmIik7IH0gY2F0Y2goZSkgeyB4ID0gZTsgfSB4Jywg
dHJ1ZSwgbnVsbCwgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSKTsKIHRyeVBvc3RNZXNzYWdl
KCduZXcgRGF0ZSgxMjM0NTY3ODkwMDAwKScpOwogdHJ5UG9zdE1lc3NhZ2UoJ25ldyBDb25zdHJ1
Y3RvcldpdGhQcm90b3R5cGUoImZvbyIpJywgZmFsc2UsICcoe2ZpZWxkOiJmb28ifSknKTsKK3Ry
eVBvc3RNZXNzYWdlKCduZXcgQm9vbGVhbih0cnVlKScpOwordHJ5UG9zdE1lc3NhZ2UoJ25ldyBC
b29sZWFuKGZhbHNlKScpOwordHJ5UG9zdE1lc3NhZ2UoJ25ldyBTdHJpbmcoImduaXJ0cyIpJyk7
Cit0cnlQb3N0TWVzc2FnZSgnbmV3IE51bWJlcig0Mi4wKScpOwogY3ljbGljT2JqZWN0PXt9Owog
Y3ljbGljT2JqZWN0LnNlbGYgPSBjeWNsaWNPYmplY3Q7CiB0cnlQb3N0TWVzc2FnZSgnY3ljbGlj
T2JqZWN0JywgZmFsc2UsICJjeWNsaWNPYmplY3QiKTsKQEAgLTIxMCw2ICsyMTUsNjEgQEAgdHJ5
UG9zdE1lc3NhZ2UodGh1bmsoCiAgICAgICAgIGRvUGFzc0ZhaWwod2luZG93LmJjYWxsZWQgPT09
IHVuZGVmaW5lZCwgIndpbmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQiKTsKICAgICB9KTsKIAor
Ly8gUmVmZXJlbmNlIGVxdWFsaXR5IGJldHdlZW4gQm9vbGVhbiBvYmplY3RzIG11c3QgYmUgbWFp
bnRhaW5lZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIHQxID0gbmV3IEJv
b2xlYW4odHJ1ZSk7ICcgKworICAgICAgICAndmFyIHQyID0gbmV3IEJvb2xlYW4odHJ1ZSk7ICcg
KworICAgICAgICAndmFyIGYxID0gbmV3IEJvb2xlYW4oZmFsc2UpOyAnICsKKyAgICAgICAgJ3Zh
ciBmMiA9IG5ldyBCb29sZWFuKGZhbHNlKTsgJyArCisgICAgICAgICdyZXR1cm4gW3QxLCB0MSwg
dDIsIGYxLCBmMSwgZjJdOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYp
IHsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCBuZXcgQm9vbGVhbih0cnVlKSksICJC
b29sZWFuIHZhbHVlcyBjb3JyZWN0ICgwKSIpOworICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZb
M10sIG5ldyBCb29sZWFuKGZhbHNlKSksICJCb29sZWFuIHZhbHVlcyBjb3JyZWN0ICgzKSIpOwor
ICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMV0sIHZbMl0pLCAiQm9vbGVhbiB2YWx1ZXMgY29y
cmVjdCAoMSwyKSIpOworICAgICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbNF0sIHZbNV0pLCAiQm9v
bGVhbiB2YWx1ZXMgY29ycmVjdCAoNCw1KSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gPT09
IHZbMV0sICJSZWZlcmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDAsMSkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzNdID09PSB2WzRdLCAiUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0
ICgzLDQpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSAhPT0gdlsyXSwgIlJlZmVyZW5jZXMg
dG8gQm9vbGVhbnMgY29ycmVjdCAoMCwyKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10gIT09
IHZbNV0sICJSZWZlcmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDMsNSkiKTsKKyAgICB9KTsK
KworLy8gUmVmZXJlbmNlIGVxdWFsaXR5IGJldHdlZW4gTnVtYmVyIG9iamVjdHMgbXVzdCBiZSBt
YWludGFpbmVkLgordHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgbjEgPSBuZXcg
TnVtYmVyKDQyLjApOyAnICsKKyAgICAgICAgJ3ZhciBuMiA9IG5ldyBOdW1iZXIoNDIuMCk7ICcg
KworICAgICAgICAncmV0dXJuIFtuMSwgbjEsIG4yXTsnCisgICAgKSwgZmFsc2UsICJldmFsVGh1
bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlswXSwgbmV3IE51
bWJlcig0Mi4wKSksICJOdW1iZXIgdmFsdWVzIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFz
c0ZhaWwoZXF1YWwodlswXSwgdlsyXSksICJOdW1iZXIgdmFsdWVzIGNvcnJlY3QgKDAsMikiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBudW1iZXJz
IGNvcnJlY3QgKDAsMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVm
ZXJlbmNlcyB0byBudW1iZXJzIGNvcnJlY3QgKDAsMikiKTsKKyAgICB9KTsKKworLy8gUmVmZXJl
bmNlIGVxdWFsaXR5IGJldHdlZW4gU3RyaW5nIG9iamVjdHMgbXVzdCBiZSBtYWludGFpbmVkLgor
dHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgczEgPSBuZXcgU3RyaW5nKCJnbmly
dHMiKTsgJyArCisgICAgICAgICd2YXIgczIgPSBuZXcgU3RyaW5nKCJnbmlydHMiKTsgJyArCisg
ICAgICAgICdyZXR1cm4gW3MxLCBzMSwgczJdOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIs
IGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCBuZXcgU3RyaW5n
KCJnbmlydHMiKSksICJTdHJpbmcgdmFsdWVzIGNvcnJlY3QgKDApIik7CisgICAgICAgIGRvUGFz
c0ZhaWwoZXF1YWwodlswXSwgdlsyXSksICJTdHJpbmcgdmFsdWVzIGNvcnJlY3QgKDAsMikiKTsK
KyAgICAgICAgZG9QYXNzRmFpbCh2WzBdID09PSB2WzFdLCAiUmVmZXJlbmNlcyB0byBzdHJpbmdz
IGNvcnJlY3QgKDAsMSkiKTsKKyAgICAgICAgZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVm
ZXJlbmNlcyB0byBzdHJpbmdzIGNvcnJlY3QgKDAsMikiKTsKKyAgICB9KTsKKworLy8gUHJvcGVy
dGllcyBhZGRlZCB0byBTdHJpbmcsIEJvb2xlYW4gYW5kIE51bWJlciBvYmplY3RzIHNob3VsZCBu
b3QgYmUgc2VyaWFsaXplZC4KK3RyeVBvc3RNZXNzYWdlKHRodW5rKAorICAgICAgICAndmFyIHMg
PSBuZXcgU3RyaW5nKCJnbmlydHMiKTsgJyArCisgICAgICAgICd2YXIgbiA9IG5ldyBOdW1iZXIo
NDIuMCk7ICcgKworICAgICAgICAndmFyIGIgPSBuZXcgQm9vbGVhbih0cnVlKTsgJyArCisgICAg
ICAgICdzLmZvbyA9IDE7IG4uZm9vID0gMjsgYi5mb28gPSAzOyAnICsKKyAgICAgICAgJ3JldHVy
biBbcywgbiwgYl07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgewor
ICAgICAgICBkb1Bhc3NGYWlsKHZbMF0uZm9vID09IHVuZGVmaW5lZCwgIlN0cmluZyBvYmplY3Qg
cHJvcGVydGllcyBub3Qgc2VyaWFsaXplZCIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbMV0uZm9v
ID09IHVuZGVmaW5lZCwgIk51bWJlciBvYmplY3QgcHJvcGVydGllcyBub3Qgc2VyaWFsaXplZCIp
OworICAgICAgICBkb1Bhc3NGYWlsKHZbMl0uZm9vID09IHVuZGVmaW5lZCwgIkJvb2xlYW4gb2Jq
ZWN0IHByb3BlcnRpZXMgbm90IHNlcmlhbGl6ZWQiKTsKKyAgICB9KTsKKwogLy8gUmVmZXJlbmNl
IGVxdWFsaXR5IGJldHdlZW4gZGF0ZXMgbXVzdCBiZSBtYWludGFpbmVkLgogdHJ5UG9zdE1lc3Nh
Z2UodGh1bmsoCiAgICAgICAgICd2YXIgZDEgPSBuZXcgRGF0ZSgxLDIsMyk7ICcgKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2Fn
ZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0
bWVzc2FnZS10ZXN0LmpzCmluZGV4IDA3NTBhODkuLjRhY2I0ZWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcwor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdl
LXRlc3QuanMKQEAgLTE5LDYgKzE5LDE4IEBAIGZ1bmN0aW9uIGVxdWFsKGFjdHVhbCwgZXhwZWN0
ZWQpCiAgICAgICAgICAgICByZXR1cm4gKGV4cGVjdGVkIGluc3RhbmNlb2YgRGF0ZSkgJiYgYWN0
dWFsLmdldFRpbWUoKSA9PSBleHBlY3RlZC5nZXRUaW1lKCk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CisgICAgaWYgKChhY3R1YWwgaW5zdGFuY2VvZiBOdW1iZXIpIHx8IChleHBlY3Rl
ZCBpbnN0YW5jZW9mIE51bWJlcikpIHsKKyAgICAgICAgcmV0dXJuIChhY3R1YWwgaW5zdGFuY2Vv
ZiBOdW1iZXIpICYmIChleHBlY3RlZCBpbnN0YW5jZW9mIE51bWJlcikgJiYKKyAgICAgICAgICAg
IChleHBlY3RlZC52YWx1ZU9mKCkgPT0gYWN0dWFsLnZhbHVlT2YoKSk7CisgICAgfQorICAgIGlm
ICgoYWN0dWFsIGluc3RhbmNlb2YgQm9vbGVhbikgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2YgQm9v
bGVhbikpIHsKKyAgICAgICAgcmV0dXJuIChhY3R1YWwgaW5zdGFuY2VvZiBCb29sZWFuKSAmJiAo
ZXhwZWN0ZWQgaW5zdGFuY2VvZiBCb29sZWFuKSAmJgorICAgICAgICAgICAgKGV4cGVjdGVkLnZh
bHVlT2YoKSA9PSBhY3R1YWwudmFsdWVPZigpKTsKKyAgICB9CisgICAgaWYgKChhY3R1YWwgaW5z
dGFuY2VvZiBTdHJpbmcpIHx8IChleHBlY3RlZCBpbnN0YW5jZW9mIFN0cmluZykpIHsKKyAgICAg
ICAgcmV0dXJuIChhY3R1YWwgaW5zdGFuY2VvZiBTdHJpbmcpICYmIChleHBlY3RlZCBpbnN0YW5j
ZW9mIFN0cmluZykgJiYKKyAgICAgICAgICAgIChleHBlY3RlZC52YWx1ZU9mKCkgPT0gYWN0dWFs
LnZhbHVlT2YoKSk7CisgICAgfQogICAgIGlmIChBcnJheS5pc0FycmF5KGFjdHVhbCkgfHwgQXJy
YXkuaXNBcnJheShleHBlY3RlZCkpIHsKICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFjdHVh
bCkgfHwgIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVz
c2FnZS1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAppbmRleCAxNDg0NTQxLi40YWFkN2Nm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNz
YWdlLWNsb25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDkgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA3NDogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNzQ6IFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDg2OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA4NjogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCiBUZXN0cyB0aGF0
IHdlIGNsb25lIG9iamVjdCBoaWVyYXJjaGllcwogCiBGQUlMOiAncG9zdE1lc3NhZ2UoKGZ1bmN0
aW9uKCl7fSkpJyBzaG91bGQgdGhyb3cgYnV0IGRpZG4ndAorRkFJTDogJ3Bvc3RNZXNzYWdlKHZh
ciB4ID0gMDsgdHJ5IHsgZXZhbCgiYmFkcmVmIik7IH0gY2F0Y2goZSkgeyB4ID0gZTsgfSB4KScg
c2hvdWxkIHRocm93IGJ1dCBkaWRuJ3QKIFBBU1M6ICdwb3N0TWVzc2FnZSh3aW5kb3cpJyB0aHJl
dyBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIFBBU1M6ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0
aHJvdyAieCIgfX0pKScgdGhyZXcgeAogRkFJTDogJ3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRh
KScgc2hvdWxkIHRocm93IGJ1dCBkaWRuJ3QKQEAgLTMxLDggKzMyLDEzIEBAIFBBU1M6IGV2ZW50
RGF0YSBpcyBhLGEsYixbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50
RGF0YSBpcyAxLDIsMyBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzICwsMSBvZiB0
eXBlIG9iamVjdAogRkFJTDogZXZlbnREYXRhIGlzIG51bGwgc2hvdWxkIGJlIGZ1bmN0aW9uICgp
IHt9IG9mIHR5cGUgZnVuY3Rpb24KK0ZBSUw6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0g
c2hvdWxkIGJlIFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBiYWRyZWYgb2Yg
dHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFog
b2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlw
ZSBvYmplY3QKK0ZBSUw6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gc2hvdWxkIGJlIHRy
dWUgb2YgdHlwZSBvYmplY3QKK0ZBSUw6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gc2hv
dWxkIGJlIGZhbHNlIG9mIHR5cGUgb2JqZWN0CitGQUlMOiBldmVudERhdGEgaXMgW29iamVjdCBP
YmplY3RdIHNob3VsZCBiZSBnbmlydHMgb2YgdHlwZSBvYmplY3QKK0ZBSUw6IGV2ZW50RGF0YSBp
cyBbb2JqZWN0IE9iamVjdF0gc2hvdWxkIGJlIDQyIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVu
dERhdGEgaXMgPT09IHRvIGV2ZW50RGF0YS5zZWxmCiBQQVNTOiBldmVudERhdGEgaXMgPT09IHRv
IGV2ZW50RGF0YVswXQogUEFTUzogZXZlbnREYXRhLmdyYXBoMSBpcyA9PT0gdG8gZXZlbnREYXRh
LmdyYXBoMgpAQCAtODYsNiArOTIsMjUgQEAgRkFJTDogYWNjZXNzb3IgdmFsdWUgd2FzIG51bGxp
ZmllZAogUEFTUzogd2luZG93LnBjYWxsZWQgPT09IHRydWUKIFBBU1M6IHdpbmRvdy5hY2FsbGVk
ID09PSB0cnVlCiBGQUlMOiB3aW5kb3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkCitGQUlMOiBCb29s
ZWFuIHZhbHVlcyBjb3JyZWN0ICgwKQorRkFJTDogQm9vbGVhbiB2YWx1ZXMgY29ycmVjdCAoMykK
K1BBU1M6IEJvb2xlYW4gdmFsdWVzIGNvcnJlY3QgKDEsMikKK1BBU1M6IEJvb2xlYW4gdmFsdWVz
IGNvcnJlY3QgKDQsNSkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gQm9vbGVhbnMgY29ycmVjdCAoMCwx
KQorUEFTUzogUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgzLDQpCitQQVNTOiBSZWZl
cmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDAsMikKK1BBU1M6IFJlZmVyZW5jZXMgdG8gQm9v
bGVhbnMgY29ycmVjdCAoMyw1KQorRkFJTDogTnVtYmVyIHZhbHVlcyBjb3JyZWN0ICgwKQorUEFT
UzogTnVtYmVyIHZhbHVlcyBjb3JyZWN0ICgwLDIpCitQQVNTOiBSZWZlcmVuY2VzIHRvIG51bWJl
cnMgY29ycmVjdCAoMCwxKQorUEFTUzogUmVmZXJlbmNlcyB0byBudW1iZXJzIGNvcnJlY3QgKDAs
MikKK0ZBSUw6IFN0cmluZyB2YWx1ZXMgY29ycmVjdCAoMCkKK1BBU1M6IFN0cmluZyB2YWx1ZXMg
Y29ycmVjdCAoMCwyKQorUEFTUzogUmVmZXJlbmNlcyB0byBzdHJpbmdzIGNvcnJlY3QgKDAsMSkK
K1BBU1M6IFJlZmVyZW5jZXMgdG8gc3RyaW5ncyBjb3JyZWN0ICgwLDIpCitGQUlMOiBTdHJpbmcg
b2JqZWN0IHByb3BlcnRpZXMgbm90IHNlcmlhbGl6ZWQKK0ZBSUw6IE51bWJlciBvYmplY3QgcHJv
cGVydGllcyBub3Qgc2VyaWFsaXplZAorRkFJTDogQm9vbGVhbiBvYmplY3QgcHJvcGVydGllcyBu
b3Qgc2VyaWFsaXplZAogUEFTUzogRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMCkKIFBBU1M6IERhdGUg
dmFsdWVzIGNvcnJlY3QgKDEpCiBGQUlMOiBSZWZlcmVuY2VzIHRvIGRhdGVzIGNvcnJlY3QgKDAp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUt
ZXhwZWN0ZWQudHh0CmluZGV4IGZkYzRhMWIuLjcxNmRkNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0ZWQudHh0CkBAIC0x
LDYgKzEsNyBAQAogVGVzdHMgdGhhdCB3ZSBjbG9uZSBvYmplY3QgaGllcmFyY2hpZXMKIAogUEFT
UzogJ3Bvc3RNZXNzYWdlKChmdW5jdGlvbigpe30pKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVf
RVJSOiBET00gRXhjZXB0aW9uIDI1CitQQVNTOiAncG9zdE1lc3NhZ2UodmFyIHggPSAwOyB0cnkg
eyBldmFsKCJiYWRyZWYiKTsgfSBjYXRjaChlKSB7IHggPSBlOyB9IHgpJyB0aHJldyBFcnJvcjog
REFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKIFBBU1M6ICdwb3N0TWVzc2FnZSh3aW5k
b3cpJyB0aHJldyBFcnJvcjogREFUQV9DTE9ORV9FUlI6IERPTSBFeGNlcHRpb24gMjUKIFBBU1M6
ICdwb3N0TWVzc2FnZSgoe2dldCBhKCkgeyB0aHJvdyAieCIgfX0pKScgdGhyZXcgeAogUEFTUzog
J3Bvc3RNZXNzYWdlKGltYWdlRGF0YS5kYXRhKScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJS
OiBET00gRXhjZXB0aW9uIDI1CkBAIC0zMCw2ICszMSwxMCBAQCBQQVNTOiBldmVudERhdGEgaXMg
MSwyLDMgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAsLDEgb2YgdHlwZSBvYmpl
Y3QKIFBBU1M6IGV2ZW50RGF0YSBpcyAyMDA5LTAyLTEzVDIzOjMxOjMwLjAwMFogb2YgdHlwZSBv
YmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gb2YgdHlwZSBvYmplY3QK
K1BBU1M6IGV2ZW50RGF0YSBpcyB0cnVlIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEg
aXMgZmFsc2Ugb2YgdHlwZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyBnbmlydHMgb2YgdHlw
ZSBvYmplY3QKK1BBU1M6IGV2ZW50RGF0YSBpcyA0MiBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZl
bnREYXRhIGlzID09PSB0byBldmVudERhdGEuc2VsZgogUEFTUzogZXZlbnREYXRhIGlzID09PSB0
byBldmVudERhdGFbMF0KIFBBU1M6IGV2ZW50RGF0YS5ncmFwaDEgaXMgPT09IHRvIGV2ZW50RGF0
YS5ncmFwaDIKQEAgLTgzLDYgKzg4LDI1IEBAIFBBU1M6IGFjY2Vzc29yIHZhbHVlIHdhcyBudWxs
aWZpZWQKIFBBU1M6IHdpbmRvdy5wY2FsbGVkID09PSB0cnVlCiBQQVNTOiB3aW5kb3cuYWNhbGxl
ZCA9PT0gdHJ1ZQogUEFTUzogd2luZG93LmJjYWxsZWQgPT09IHVuZGVmaW5lZAorUEFTUzogQm9v
bGVhbiB2YWx1ZXMgY29ycmVjdCAoMCkKK1BBU1M6IEJvb2xlYW4gdmFsdWVzIGNvcnJlY3QgKDMp
CitQQVNTOiBCb29sZWFuIHZhbHVlcyBjb3JyZWN0ICgxLDIpCitQQVNTOiBCb29sZWFuIHZhbHVl
cyBjb3JyZWN0ICg0LDUpCitQQVNTOiBSZWZlcmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDAs
MSkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gQm9vbGVhbnMgY29ycmVjdCAoMyw0KQorUEFTUzogUmVm
ZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgwLDIpCitQQVNTOiBSZWZlcmVuY2VzIHRvIEJv
b2xlYW5zIGNvcnJlY3QgKDMsNSkKK1BBU1M6IE51bWJlciB2YWx1ZXMgY29ycmVjdCAoMCkKK1BB
U1M6IE51bWJlciB2YWx1ZXMgY29ycmVjdCAoMCwyKQorUEFTUzogUmVmZXJlbmNlcyB0byBudW1i
ZXJzIGNvcnJlY3QgKDAsMSkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gbnVtYmVycyBjb3JyZWN0ICgw
LDIpCitQQVNTOiBTdHJpbmcgdmFsdWVzIGNvcnJlY3QgKDApCitQQVNTOiBTdHJpbmcgdmFsdWVz
IGNvcnJlY3QgKDAsMikKK1BBU1M6IFJlZmVyZW5jZXMgdG8gc3RyaW5ncyBjb3JyZWN0ICgwLDEp
CitQQVNTOiBSZWZlcmVuY2VzIHRvIHN0cmluZ3MgY29ycmVjdCAoMCwyKQorUEFTUzogU3RyaW5n
IG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkCitQQVNTOiBOdW1iZXIgb2JqZWN0IHBy
b3BlcnRpZXMgbm90IHNlcmlhbGl6ZWQKK1BBU1M6IEJvb2xlYW4gb2JqZWN0IHByb3BlcnRpZXMg
bm90IHNlcmlhbGl6ZWQKIFBBU1M6IERhdGUgdmFsdWVzIGNvcnJlY3QgKDApCiBQQVNTOiBEYXRl
IHZhbHVlcyBjb3JyZWN0ICgxKQogUEFTUzogUmVmZXJlbmNlcyB0byBkYXRlcyBjb3JyZWN0ICgw
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDE5NjI0ZjcuLjJlMjEwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NCBAQAorMjAxMS0wNy0yNyAgTHVrZSBaYXJrbyAgPGx1a2V6YXJrb0BnbWFpbC5jb20+CisKKyAg
ICAgICAgVjggc2hvdWxkIGNvcnJlY3RseSBzZXJpYWxpemUgQm9vbGVhbiwgTnVtYmVyIGFuZCBT
dHJpbmcgb2JqZWN0cy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUyODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIE5ldyBBUElzIHdlcmUgZXhwb3NlZCB0byBhbGxvdyBWOCB0byBjb3Jy
ZWN0bHkgc2VyaWFsaXplIEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMsIGFzIHdl
bGwgYXMgZGV0ZWN0IGNlcnRhaW4gbmF0aXZlIGVycm9ycyBhcyByZXF1aXJlZCBieSB0aGUgSFRN
TDUgU3RydWN0dXJlZCBDbG9uZSBhbGdvcml0aG0gKGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3VybHMuaHRtbCNzYWZlLXBhc3Npbmct
b2Ytc3RydWN0dXJlZC1kYXRhKS4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNob3VsZCBtYWtlIHVz
ZSBvZiB0aGVzZSBBUElzLgorCisgICAgICAgIC0gQ2hlY2tzIGZvciBhbmQgc2VyaWFsaXplcyBC
b29sZWFuLCBOdW1iZXIgYW5kIFN0cmluZyBvYmplY3RzLgorICAgICAgICAtIENoZWNrcyBmb3Ig
bmF0aXZlIGVycm9ycyBhbmQgYWJvcnRzIHNob3VsZCBhIHNjcmlwdCBhdHRlbXB0IHRvIHNlcmlh
bGl6ZSB0aGVtLgorICAgICAgICAtIFNtYWxsIG5hbWUgY2hhbmdlIHRvIGNsZWFyIHVwIHRoZSBj
b2RlOiBtX29iamVjdFJlZmVyZW5jZVN0YWNrID0+IG1fb3BlbkNvbXBvc2l0ZVJlZmVyZW5jZVN0
YWNrCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpXcml0ZXI6OndyaXRlQm9vbGVh
bk9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0ZVN0
cmluZ09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0
ZU51bWJlck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXpl
cjo6d3JpdGVTdHJpbmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNl
cmlhbGl6ZXI6OndyaXRlTnVtYmVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0
TWFwOjpTZXJpYWxpemVyOjp3cml0ZUJvb2xlYW5PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RN
YXA6OlJlYWRlcjo6cmVhZFN0cmluZ09iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVj
dE1hcDo6UmVhZGVyOjpyZWFkTnVtYmVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2Jq
ZWN0TWFwOjpEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
T2JqZWN0TWFwOjpEZXNlcmlhbGl6ZXI6Om9wZW5Db21wb3NpdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6VjhPYmplY3RNYXA6OkRlc2VyaWFsaXplcjo6Y2xvc2VDb21wb3NpdGUpOgorCiAyMDExLTA3
LTI1ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gQWRkIGJldHRlciBXZWJLaXQgQVBJIGZvciBjaHJvbWUudGFicy5pbnNlcnRDU1Mg
ZXh0ZW5zaW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggYTBiYjk0OC4uMmQ5ZDBjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBA
IC0xOTksNiArMTk5LDEwIEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgR2VuZXJhdGVG
cmVzaE9iamVjdFRhZyA9ICdvJywgLy8gLT4gZW1wdHkgb2JqZWN0IGFsbG9jYXRlZCBhbiBvYmpl
Y3QgSUQgYW5kIHB1c2hlZCBvbnRvIHRoZSBvcGVuIHN0YWNrIChyZWYpCiAgICAgR2VuZXJhdGVG
cmVzaEFycmF5VGFnID0gJ2EnLCAvLyBsZW5ndGg6dWludDMyX3QgLT4gZW1wdHkgYXJyYXlbbGVu
Z3RoXSBhbGxvY2F0ZWQgYW4gb2JqZWN0IElEIGFuZCBwdXNoZWQgb250byB0aGUgb3BlbiBzdGFj
ayAocmVmKQogICAgIFJlZmVyZW5jZUNvdW50VGFnID0gJz8nLCAvLyByZWZUYWJsZVNpemU6dWlu
dDMyX3QgLT4gSWYgdGhlIHJlZmVyZW5jZSB0YWJsZSBpcyBub3QgcmVmVGFibGVTaXplIGJpZywg
ZmFpbHMuCisgICAgU3RyaW5nT2JqZWN0VGFnID0gJ3MnLCAvLyAgc3RyaW5nOlJhd1N0cmluZyAt
PiBuZXcgU3RyaW5nKHN0cmluZykgKHJlZikKKyAgICBOdW1iZXJPYmplY3RUYWcgPSAnbicsIC8v
IHZhbHVlOmRvdWJsZSAtPiBuZXcgTnVtYmVyKHZhbHVlKSAocmVmKQorICAgIFRydWVPYmplY3RU
YWcgPSAneScsIC8vIG5ldyBCb29sZWFuKHRydWUpIChyZWYpCisgICAgRmFsc2VPYmplY3RUYWcg
PSAneCcsIC8vIG5ldyBCb29sZWFuKGZhbHNlKSAocmVmKQogICAgIFZlcnNpb25UYWcgPSAweEZG
IC8vIHZlcnNpb246dWludDMyX3QgLT4gVXNlcyB0aGlzIGFzIHRoZSBmaWxlIHZlcnNpb24uCiB9
OwogCkBAIC0yNzgsNiArMjgyLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd3JpdGVGYWxzZSgp
IHsgYXBwZW5kKEZhbHNlVGFnKTsgfQogCisgICAgdm9pZCB3cml0ZUJvb2xlYW5PYmplY3QoYm9v
bCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGFwcGVuZCh2YWx1ZSA/IFRydWVPYmplY3RUYWcgOiBG
YWxzZU9iamVjdFRhZyk7CisgICAgfQorCiAgICAgdm9pZCB3cml0ZVN0cmluZyhjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgQVNTRVJUKGxlbmd0aCA+PSAwKTsK
QEAgLTI4NSw2ICsyOTQsMTMgQEAgcHVibGljOgogICAgICAgICBkb1dyaXRlU3RyaW5nKGRhdGEs
IGxlbmd0aCk7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZVN0cmluZ09iamVjdChjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGxlbmd0aCA+PSAwKTsK
KyAgICAgICAgYXBwZW5kKFN0cmluZ09iamVjdFRhZyk7CisgICAgICAgIGRvV3JpdGVTdHJpbmco
ZGF0YSwgbGVuZ3RoKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlV2ViQ29yZVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKICAgICB7CiAgICAgICAgIC8vIFVzZXMgVVRGOCBlbmNvZGluZyBz
byB3ZSBjYW4gcmVhZCBpdCBiYWNrIGFzIGVpdGhlciBWOCBvcgpAQCAtMzIzLDYgKzMzOSwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIGRvV3JpdGVOdW1iZXIobnVtYmVyKTsKICAgICB9CiAKKyAgICB2
b2lkIHdyaXRlTnVtYmVyT2JqZWN0KGRvdWJsZSBudW1iZXIpCisgICAgeworICAgICAgICBhcHBl
bmQoTnVtYmVyT2JqZWN0VGFnKTsKKyAgICAgICAgZG9Xcml0ZU51bWJlcihudW1iZXIpOworICAg
IH0KKwogICAgIHZvaWQgd3JpdGVCbG9iKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IHR5cGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAgIHsKICAgICAgICAgYXBwZW5kKEJs
b2JUYWcpOwpAQCAtODY4LDYgKzg5MCwyNSBAQCBwcml2YXRlOgogICAgICAgICBtX3dyaXRlci53
cml0ZVN0cmluZygqc3RyaW5nVmFsdWUsIHN0cmluZ1ZhbHVlLmxlbmd0aCgpKTsKICAgICB9CiAK
KyAgICB2b2lkIHdyaXRlU3RyaW5nT2JqZWN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZ09iamVjdD4gc3RyaW5nT2JqZWN0
ID0gdmFsdWUuQXM8djg6OlN0cmluZ09iamVjdD4oKTsKKyAgICAgICAgdjg6OlN0cmluZzo6VXRm
OFZhbHVlIHN0cmluZ1ZhbHVlKHN0cmluZ09iamVjdC0+U3RyaW5nVmFsdWUoKSk7CisgICAgICAg
IG1fd3JpdGVyLndyaXRlU3RyaW5nT2JqZWN0KCpzdHJpbmdWYWx1ZSwgc3RyaW5nVmFsdWUubGVu
Z3RoKCkpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVOdW1iZXJPYmplY3Qodjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6TnVtYmVyT2Jq
ZWN0PiBudW1iZXJPYmplY3QgPSB2YWx1ZS5Bczx2ODo6TnVtYmVyT2JqZWN0PigpOworICAgICAg
ICBtX3dyaXRlci53cml0ZU51bWJlck9iamVjdChudW1iZXJPYmplY3QtPk51bWJlclZhbHVlKCkp
OworICAgIH0KKworICAgIHZvaWQgd3JpdGVCb29sZWFuT2JqZWN0KHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OkJvb2xlYW5PYmplY3Q+
IGJvb2xlYW5PYmplY3QgPSB2YWx1ZS5Bczx2ODo6Qm9vbGVhbk9iamVjdD4oKTsKKyAgICAgICAg
bV93cml0ZXIud3JpdGVCb29sZWFuT2JqZWN0KGJvb2xlYW5PYmplY3QtPkJvb2xlYW5WYWx1ZSgp
KTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlQmxvYih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUpCiAgICAgewogICAgICAgICBCbG9iKiBibG9iID0gVjhCbG9iOjp0b05hdGl2ZSh2YWx1ZS5B
czx2ODo6T2JqZWN0PigpKTsKQEAgLTEwMTMsNiArMTA1NCwxMiBAQCBTZXJpYWxpemVyOjpTdGF0
ZUJhc2UqIFNlcmlhbGl6ZXI6OmRvU2VyaWFsaXplKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1
ZSwgU3RhdAogICAgICAgICBncmV5T2JqZWN0KGpzT2JqZWN0KTsKICAgICAgICAgaWYgKHZhbHVl
LT5Jc0RhdGUoKSkKICAgICAgICAgICAgIG1fd3JpdGVyLndyaXRlRGF0ZSh2YWx1ZS0+TnVtYmVy
VmFsdWUoKSk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5Jc1N0cmluZ09iamVjdCgpKQorICAg
ICAgICAgICAgd3JpdGVTdHJpbmdPYmplY3QodmFsdWUpOworICAgICAgICBlbHNlIGlmICh2YWx1
ZS0+SXNOdW1iZXJPYmplY3QoKSkKKyAgICAgICAgICAgIHdyaXRlTnVtYmVyT2JqZWN0KHZhbHVl
KTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPklzQm9vbGVhbk9iamVjdCgpKQorICAgICAgICAg
ICAgd3JpdGVCb29sZWFuT2JqZWN0KHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPklz
QXJyYXkoKSkgewogICAgICAgICAgICAgbV93cml0ZXIud3JpdGVHZW5lcmF0ZUZyZXNoQXJyYXko
dmFsdWUuQXM8djg6OkFycmF5PigpLT5MZW5ndGgoKSk7CiAgICAgICAgICAgICByZXR1cm4gcHVz
aChuZXdBcnJheVN0YXRlKHZhbHVlLkFzPHY4OjpBcnJheT4oKSwgbmV4dCkpOwpAQCAtMTAyOSw4
ICsxMDc2LDcgQEAgU2VyaWFsaXplcjo6U3RhdGVCYXNlKiBTZXJpYWxpemVyOjpkb1NlcmlhbGl6
ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXQKICAgICAgICAgZWxzZSBpZiAoVjhB
cnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UodmFsdWUpKQogICAgICAgICAgICAgd3JpdGVBcnJheUJ1
ZmZlcih2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5Jc09iamVjdCgpKSB7Ci0gICAg
ICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBjaGVjayBpZiBqc09iamVjdCBpcyBhICduYXRp
dmUgRXJyb3InIGFuZCBpZiBzbyB0aHJvdyBhIERhdGFDbG9uZUVycm9yLgotICAgICAgICAgICAg
aWYgKGlzSG9zdE9iamVjdChqc09iamVjdCkgfHwganNPYmplY3QtPklzQ2FsbGFibGUoKSkKKyAg
ICAgICAgICAgIGlmIChpc0hvc3RPYmplY3QoanNPYmplY3QpIHx8IGpzT2JqZWN0LT5Jc0NhbGxh
YmxlKCkgfHwgdmFsdWUtPklzTmF0aXZlRXJyb3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
aGFuZGxlRXJyb3IoRGF0YUNsb25lRXJyb3IsIG5leHQpOwogICAgICAgICAgICAgbV93cml0ZXIu
d3JpdGVHZW5lcmF0ZUZyZXNoT2JqZWN0KCk7CiAgICAgICAgICAgICByZXR1cm4gcHVzaChuZXdP
YmplY3RTdGF0ZShqc09iamVjdCwgbmV4dCkpOwpAQCAtMTEwNiwxMCArMTE1MiwyMyBAQCBwdWJs
aWM6CiAgICAgICAgIGNhc2UgRmFsc2VUYWc6CiAgICAgICAgICAgICAqdmFsdWUgPSB2ODo6RmFs
c2UoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRydWVPYmplY3RUYWc6Cisg
ICAgICAgICAgICAqdmFsdWUgPSB2ODo6Qm9vbGVhbk9iamVjdDo6TmV3KHRydWUpOworICAgICAg
ICAgICAgY3JlYXRvci5wdXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBGYWxzZU9iamVjdFRhZzoKKyAgICAgICAgICAgICp2YWx1ZSA9
IHY4OjpCb29sZWFuT2JqZWN0OjpOZXcoZmFsc2UpOworICAgICAgICAgICAgY3JlYXRvci5wdXNo
T2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBTdHJpbmdUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRTdHJpbmcodmFsdWUpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFN0cmluZ09iamVjdFRhZzoKKyAgICAgICAgICAgIGlmICghcmVhZFN0cmluZ09iamVjdCh2YWx1
ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY3JlYXRvci5w
dXNoT2JqZWN0UmVmZXJlbmNlKCp2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBJbnQzMlRhZzoKICAgICAgICAgICAgIGlmICghcmVhZEludDMyKHZhbHVlKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTI3LDYgKzExODYsMTEgQEAgcHVibGljOgog
ICAgICAgICAgICAgaWYgKCFyZWFkTnVtYmVyKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOdW1iZXJPYmplY3RU
YWc6CisgICAgICAgICAgICBpZiAoIXJlYWROdW1iZXJPYmplY3QodmFsdWUpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVy
ZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQmxvYlRhZzoK
ICAgICAgICAgICAgIGlmICghcmVhZEJsb2IodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTEyODcsNiArMTM1MSwxNSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKKyAgICBib29sIHJlYWRTdHJpbmdPYmplY3Qodjg6OkhhbmRsZTx2ODo6
VmFsdWU+KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJp
bmdWYWx1ZTsKKyAgICAgICAgaWYgKCFyZWFkU3RyaW5nKCZzdHJpbmdWYWx1ZSkgfHwgIXN0cmlu
Z1ZhbHVlLT5Jc1N0cmluZygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAq
dmFsdWUgPSB2ODo6U3RyaW5nT2JqZWN0OjpOZXcoc3RyaW5nVmFsdWUuQXM8djg6OlN0cmluZz4o
KSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGJvb2wgcmVhZFdlYkNvcmVT
dHJpbmcoU3RyaW5nKiBzdHJpbmcpCiAgICAgewogICAgICAgICB1aW50MzJfdCBsZW5ndGg7CkBA
IC0xMzM0LDYgKzE0MDcsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgKnZhbHVlID0gdjg6Ok51bWJl
cjo6TmV3KG51bWJlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgCisgICAgYm9v
bCByZWFkTnVtYmVyT2JqZWN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgewor
ICAgICAgICBkb3VibGUgbnVtYmVyOworICAgICAgICBpZiAoIWRvUmVhZE51bWJlcigmbnVtYmVy
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgKnZhbHVlID0gdjg6Ok51bWJl
ck9iamVjdDo6TmV3KG51bWJlcik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAg
IGJvb2wgcmVhZEltYWdlRGF0YSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQogICAgIHsK
QEAgLTE1ODUsNyArMTY2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmICghZG9EZXNlcmlh
bGl6ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAgICAgICB9Ci0g
ICAgICAgIGlmIChzdGFja0RlcHRoKCkgIT0gMSB8fCBtX29iamVjdFJlZmVyZW5jZVN0YWNrLnNp
emUoKSkKKyAgICAgICAgaWYgKHN0YWNrRGVwdGgoKSAhPSAxIHx8IG1fb3BlbkNvbXBvc2l0ZVJl
ZmVyZW5jZVN0YWNrLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOwogICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gc2NvcGUuQ2xvc2UoZWxlbWVudCgw
KSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0xNzM0LDE2ICsxODE2LDE2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBvcGVuQ29tcG9zaXRlKGNvbnN0IHY4OjpMb2NhbDx2ODo6VmFsdWU+JiBv
YmplY3QpCiAgICAgewogICAgICAgICB1aW50MzJfdCBuZXdPYmplY3RSZWZlcmVuY2UgPSBtX29i
amVjdFBvb2wuc2l6ZSgpOwotICAgICAgICBtX29iamVjdFJlZmVyZW5jZVN0YWNrLmFwcGVuZChu
ZXdPYmplY3RSZWZlcmVuY2UpOworICAgICAgICBtX29wZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFj
ay5hcHBlbmQobmV3T2JqZWN0UmVmZXJlbmNlKTsKICAgICAgICAgbV9vYmplY3RQb29sLmFwcGVu
ZChvYmplY3QpOwogICAgIH0KIAogICAgIGJvb2wgY2xvc2VDb21wb3NpdGUodjg6OkhhbmRsZTx2
ODo6VmFsdWU+KiBvYmplY3QpCiAgICAgewotICAgICAgICBpZiAoIW1fb2JqZWN0UmVmZXJlbmNl
U3RhY2suc2l6ZSgpKQorICAgICAgICBpZiAoIW1fb3BlbkNvbXBvc2l0ZVJlZmVyZW5jZVN0YWNr
LnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdWludDMyX3Qgb2Jq
ZWN0UmVmZXJlbmNlID0gbV9vYmplY3RSZWZlcmVuY2VTdGFja1ttX29iamVjdFJlZmVyZW5jZVN0
YWNrLnNpemUoKSAtIDFdOwotICAgICAgICBtX29iamVjdFJlZmVyZW5jZVN0YWNrLnNocmluayht
X29iamVjdFJlZmVyZW5jZVN0YWNrLnNpemUoKSAtIDEpOworICAgICAgICB1aW50MzJfdCBvYmpl
Y3RSZWZlcmVuY2UgPSBtX29wZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFja1ttX29wZW5Db21wb3Np
dGVSZWZlcmVuY2VTdGFjay5zaXplKCkgLSAxXTsKKyAgICAgICAgbV9vcGVuQ29tcG9zaXRlUmVm
ZXJlbmNlU3RhY2suc2hyaW5rKG1fb3BlbkNvbXBvc2l0ZVJlZmVyZW5jZVN0YWNrLnNpemUoKSAt
IDEpOwogICAgICAgICBpZiAob2JqZWN0UmVmZXJlbmNlID49IG1fb2JqZWN0UG9vbC5zaXplKCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICpvYmplY3QgPSBtX29iamVjdFBv
b2xbb2JqZWN0UmVmZXJlbmNlXTsKQEAgLTE3NTMsNyArMTgzNSw3IEBAIHByaXZhdGU6CiAgICAg
UmVhZGVyJiBtX3JlYWRlcjsKICAgICBWZWN0b3I8djg6OkxvY2FsPHY4OjpWYWx1ZT4gPiBtX3N0
YWNrOwogICAgIFZlY3Rvcjx2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gPiBtX29iamVjdFBvb2w7Ci0g
ICAgVmVjdG9yPHVpbnQzMl90PiBtX29iamVjdFJlZmVyZW5jZVN0YWNrOworICAgIFZlY3Rvcjx1
aW50MzJfdD4gbV9vcGVuQ29tcG9zaXRlUmVmZXJlbmNlU3RhY2s7CiAgICAgdWludDMyX3QgbV92
ZXJzaW9uOwogfTsKIAo=
</data>
<flag name="review"
          id="97373"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="97376"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102271</attachid>
            <date>2011-07-28 11:25:08 -0700</date>
            <delta_ts>2011-07-28 16:56:40 -0700</delta_ts>
            <desc>Fix a broken expectation</desc>
            <filename>stringsnthings1120.patch</filename>
            <type>text/plain</type>
            <size>23133</size>
            <attacher name="Luke Zarko">lukezarko+bugzilla</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZjQxZWNjLi45ZTNkZTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDct
MjggIEx1a2UgWmFya28gIDxsdWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFY4IHNob3Vs
ZCBjb3JyZWN0bHkgc2VyaWFsaXplIEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1Mjg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBDaGVj
ayB0aGF0IEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMgYXJlIGNvcnJlY3RseSBz
ZXJpYWxpemVkLgorICAgICAgICAtIENoZWNrIHRoYXQgYSBuYXRpdmUgZXJyb3IgaXMgbm90IHNl
cmlhbGl6ZWQuCisgICAgICAgIC0gRml4IGFuIGV4cGVjdGF0aW9uIHRoYXQgYSBuYXRpdmUgZXJy
b3IgY2FuIGJlIHNlcmlhbGl6ZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvc2NyaXB0
LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9z
Y3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2xvYWRlci9zdGF0ZW9iamVjdHMvcHVzaHN0YXRlLW9iamVjdC10eXBlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3B1c2hzdGF0ZS1vYmplY3QtdHlw
ZXMuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0wNy0yOCAgVG9ueSBH
ZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTmV3
IGV4cGVjdGF0aW9ucyBhZnRlciByOTE5MjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLWNsb25lLmpzCmluZGV4
IDhkYjViYTQuLjQ4MGYxZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtY2xvbmUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS1jbG9uZS5qcwpAQCAtMjAsOCAr
MjAsMTMgQEAgdHJ5UG9zdE1lc3NhZ2UoJ1siYSIsICJhIiwgImIiLCB7YToiYiIsIGI6ImEifV0n
KTsKIHRyeVBvc3RNZXNzYWdlKCdbMSwyLDNdJyk7CiB0cnlQb3N0TWVzc2FnZSgnWywsMV0nKTsK
IHRyeVBvc3RNZXNzYWdlKCcoZnVuY3Rpb24oKXt9KScsIHRydWUsIG51bGwsIERPTUV4Y2VwdGlv
bi5EQVRBX0NMT05FX0VSUik7Cit0cnlQb3N0TWVzc2FnZSgndmFyIHggPSAwOyB0cnkgeyBldmFs
KCJiYWRyZWYiKTsgfSBjYXRjaChlKSB7IHggPSBlOyB9IHgnLCB0cnVlLCBudWxsLCBET01FeGNl
cHRpb24uREFUQV9DTE9ORV9FUlIpOwogdHJ5UG9zdE1lc3NhZ2UoJ25ldyBEYXRlKDEyMzQ1Njc4
OTAwMDApJyk7CiB0cnlQb3N0TWVzc2FnZSgnbmV3IENvbnN0cnVjdG9yV2l0aFByb3RvdHlwZSgi
Zm9vIiknLCBmYWxzZSwgJyh7ZmllbGQ6ImZvbyJ9KScpOwordHJ5UG9zdE1lc3NhZ2UoJ25ldyBC
b29sZWFuKHRydWUpJyk7Cit0cnlQb3N0TWVzc2FnZSgnbmV3IEJvb2xlYW4oZmFsc2UpJyk7Cit0
cnlQb3N0TWVzc2FnZSgnbmV3IFN0cmluZygiZ25pcnRzIiknKTsKK3RyeVBvc3RNZXNzYWdlKCdu
ZXcgTnVtYmVyKDQyLjApJyk7CiBjeWNsaWNPYmplY3Q9e307CiBjeWNsaWNPYmplY3Quc2VsZiA9
IGN5Y2xpY09iamVjdDsKIHRyeVBvc3RNZXNzYWdlKCdjeWNsaWNPYmplY3QnLCBmYWxzZSwgImN5
Y2xpY09iamVjdCIpOwpAQCAtMjEwLDYgKzIxNSw2MSBAQCB0cnlQb3N0TWVzc2FnZSh0aHVuaygK
ICAgICAgICAgZG9QYXNzRmFpbCh3aW5kb3cuYmNhbGxlZCA9PT0gdW5kZWZpbmVkLCAid2luZG93
LmJjYWxsZWQgPT09IHVuZGVmaW5lZCIpOwogICAgIH0pOwogCisvLyBSZWZlcmVuY2UgZXF1YWxp
dHkgYmV0d2VlbiBCb29sZWFuIG9iamVjdHMgbXVzdCBiZSBtYWludGFpbmVkLgordHJ5UG9zdE1l
c3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgdDEgPSBuZXcgQm9vbGVhbih0cnVlKTsgJyArCisg
ICAgICAgICd2YXIgdDIgPSBuZXcgQm9vbGVhbih0cnVlKTsgJyArCisgICAgICAgICd2YXIgZjEg
PSBuZXcgQm9vbGVhbihmYWxzZSk7ICcgKworICAgICAgICAndmFyIGYyID0gbmV3IEJvb2xlYW4o
ZmFsc2UpOyAnICsKKyAgICAgICAgJ3JldHVybiBbdDEsIHQxLCB0MiwgZjEsIGYxLCBmMl07Jwor
ICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAgICAgICBkb1Bhc3NG
YWlsKGVxdWFsKHZbMF0sIG5ldyBCb29sZWFuKHRydWUpKSwgIkJvb2xlYW4gdmFsdWVzIGNvcnJl
Y3QgKDApIik7CisgICAgICAgIGRvUGFzc0ZhaWwoZXF1YWwodlszXSwgbmV3IEJvb2xlYW4oZmFs
c2UpKSwgIkJvb2xlYW4gdmFsdWVzIGNvcnJlY3QgKDMpIik7CisgICAgICAgIGRvUGFzc0ZhaWwo
ZXF1YWwodlsxXSwgdlsyXSksICJCb29sZWFuIHZhbHVlcyBjb3JyZWN0ICgxLDIpIik7CisgICAg
ICAgIGRvUGFzc0ZhaWwoZXF1YWwodls0XSwgdls1XSksICJCb29sZWFuIHZhbHVlcyBjb3JyZWN0
ICg0LDUpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlswXSA9PT0gdlsxXSwgIlJlZmVyZW5jZXMg
dG8gQm9vbGVhbnMgY29ycmVjdCAoMCwxKSIpOworICAgICAgICBkb1Bhc3NGYWlsKHZbM10gPT09
IHZbNF0sICJSZWZlcmVuY2VzIHRvIEJvb2xlYW5zIGNvcnJlY3QgKDMsNCkiKTsKKyAgICAgICAg
ZG9QYXNzRmFpbCh2WzBdICE9PSB2WzJdLCAiUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0
ICgwLDIpIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlszXSAhPT0gdls1XSwgIlJlZmVyZW5jZXMg
dG8gQm9vbGVhbnMgY29ycmVjdCAoMyw1KSIpOworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1
YWxpdHkgYmV0d2VlbiBOdW1iZXIgb2JqZWN0cyBtdXN0IGJlIG1haW50YWluZWQuCit0cnlQb3N0
TWVzc2FnZSh0aHVuaygKKyAgICAgICAgJ3ZhciBuMSA9IG5ldyBOdW1iZXIoNDIuMCk7ICcgKwor
ICAgICAgICAndmFyIG4yID0gbmV3IE51bWJlcig0Mi4wKTsgJyArCisgICAgICAgICdyZXR1cm4g
W24xLCBuMSwgbjJdOycKKyAgICApLCBmYWxzZSwgImV2YWxUaHVuayIsIGZ1bmN0aW9uKHYpIHsK
KyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCBuZXcgTnVtYmVyKDQyLjApKSwgIk51bWJl
ciB2YWx1ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCB2
WzJdKSwgIk51bWJlciB2YWx1ZXMgY29ycmVjdCAoMCwyKSIpOworICAgICAgICBkb1Bhc3NGYWls
KHZbMF0gPT09IHZbMV0sICJSZWZlcmVuY2VzIHRvIG51bWJlcnMgY29ycmVjdCAoMCwxKSIpOwor
ICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIG51bWJlcnMg
Y29ycmVjdCAoMCwyKSIpOworICAgIH0pOworCisvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2Vl
biBTdHJpbmcgb2JqZWN0cyBtdXN0IGJlIG1haW50YWluZWQuCit0cnlQb3N0TWVzc2FnZSh0aHVu
aygKKyAgICAgICAgJ3ZhciBzMSA9IG5ldyBTdHJpbmcoImduaXJ0cyIpOyAnICsKKyAgICAgICAg
J3ZhciBzMiA9IG5ldyBTdHJpbmcoImduaXJ0cyIpOyAnICsKKyAgICAgICAgJ3JldHVybiBbczEs
IHMxLCBzMl07JworICAgICksIGZhbHNlLCAiZXZhbFRodW5rIiwgZnVuY3Rpb24odikgeworICAg
ICAgICBkb1Bhc3NGYWlsKGVxdWFsKHZbMF0sIG5ldyBTdHJpbmcoImduaXJ0cyIpKSwgIlN0cmlu
ZyB2YWx1ZXMgY29ycmVjdCAoMCkiKTsKKyAgICAgICAgZG9QYXNzRmFpbChlcXVhbCh2WzBdLCB2
WzJdKSwgIlN0cmluZyB2YWx1ZXMgY29ycmVjdCAoMCwyKSIpOworICAgICAgICBkb1Bhc3NGYWls
KHZbMF0gPT09IHZbMV0sICJSZWZlcmVuY2VzIHRvIHN0cmluZ3MgY29ycmVjdCAoMCwxKSIpOwor
ICAgICAgICBkb1Bhc3NGYWlsKHZbMF0gIT09IHZbMl0sICJSZWZlcmVuY2VzIHRvIHN0cmluZ3Mg
Y29ycmVjdCAoMCwyKSIpOworICAgIH0pOworCisvLyBQcm9wZXJ0aWVzIGFkZGVkIHRvIFN0cmlu
ZywgQm9vbGVhbiBhbmQgTnVtYmVyIG9iamVjdHMgc2hvdWxkIG5vdCBiZSBzZXJpYWxpemVkLgor
dHJ5UG9zdE1lc3NhZ2UodGh1bmsoCisgICAgICAgICd2YXIgcyA9IG5ldyBTdHJpbmcoImduaXJ0
cyIpOyAnICsKKyAgICAgICAgJ3ZhciBuID0gbmV3IE51bWJlcig0Mi4wKTsgJyArCisgICAgICAg
ICd2YXIgYiA9IG5ldyBCb29sZWFuKHRydWUpOyAnICsKKyAgICAgICAgJ3MuZm9vID0gMTsgbi5m
b28gPSAyOyBiLmZvbyA9IDM7ICcgKworICAgICAgICAncmV0dXJuIFtzLCBuLCBiXTsnCisgICAg
KSwgZmFsc2UsICJldmFsVGh1bmsiLCBmdW5jdGlvbih2KSB7CisgICAgICAgIGRvUGFzc0ZhaWwo
dlswXS5mb28gPT0gdW5kZWZpbmVkLCAiU3RyaW5nIG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJp
YWxpemVkIik7CisgICAgICAgIGRvUGFzc0ZhaWwodlsxXS5mb28gPT0gdW5kZWZpbmVkLCAiTnVt
YmVyIG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkIik7CisgICAgICAgIGRvUGFzc0Zh
aWwodlsyXS5mb28gPT0gdW5kZWZpbmVkLCAiQm9vbGVhbiBvYmplY3QgcHJvcGVydGllcyBub3Qg
c2VyaWFsaXplZCIpOworICAgIH0pOworCiAvLyBSZWZlcmVuY2UgZXF1YWxpdHkgYmV0d2VlbiBk
YXRlcyBtdXN0IGJlIG1haW50YWluZWQuCiB0cnlQb3N0TWVzc2FnZSh0aHVuaygKICAgICAgICAg
J3ZhciBkMSA9IG5ldyBEYXRlKDEsMiwzKTsgJyArCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3Bvc3RtZXNzYWdlLXRlc3QuanMKaW5k
ZXggMDc1MGE4OS4uNGFjYjRlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3NjcmlwdC10ZXN0cy9wb3N0bWVzc2FnZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvcG9zdG1lc3NhZ2UtdGVzdC5qcwpAQCAtMTksNiAr
MTksMTggQEAgZnVuY3Rpb24gZXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKICAgICAgICAgICAgIHJl
dHVybiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSAmJiBhY3R1YWwuZ2V0VGltZSgpID09IGV4
cGVjdGVkLmdldFRpbWUoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAgICBpZiAo
KGFjdHVhbCBpbnN0YW5jZW9mIE51bWJlcikgfHwgKGV4cGVjdGVkIGluc3RhbmNlb2YgTnVtYmVy
KSkgeworICAgICAgICByZXR1cm4gKGFjdHVhbCBpbnN0YW5jZW9mIE51bWJlcikgJiYgKGV4cGVj
dGVkIGluc3RhbmNlb2YgTnVtYmVyKSAmJgorICAgICAgICAgICAgKGV4cGVjdGVkLnZhbHVlT2Yo
KSA9PSBhY3R1YWwudmFsdWVPZigpKTsKKyAgICB9CisgICAgaWYgKChhY3R1YWwgaW5zdGFuY2Vv
ZiBCb29sZWFuKSB8fCAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBCb29sZWFuKSkgeworICAgICAgICBy
ZXR1cm4gKGFjdHVhbCBpbnN0YW5jZW9mIEJvb2xlYW4pICYmIChleHBlY3RlZCBpbnN0YW5jZW9m
IEJvb2xlYW4pICYmCisgICAgICAgICAgICAoZXhwZWN0ZWQudmFsdWVPZigpID09IGFjdHVhbC52
YWx1ZU9mKCkpOworICAgIH0KKyAgICBpZiAoKGFjdHVhbCBpbnN0YW5jZW9mIFN0cmluZykgfHwg
KGV4cGVjdGVkIGluc3RhbmNlb2YgU3RyaW5nKSkgeworICAgICAgICByZXR1cm4gKGFjdHVhbCBp
bnN0YW5jZW9mIFN0cmluZykgJiYgKGV4cGVjdGVkIGluc3RhbmNlb2YgU3RyaW5nKSAmJgorICAg
ICAgICAgICAgKGV4cGVjdGVkLnZhbHVlT2YoKSA9PSBhY3R1YWwudmFsdWVPZigpKTsKKyAgICB9
CiAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCBBcnJheS5pc0FycmF5KGV4cGVjdGVk
KSkgewogICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0dWFsKSB8fCAhQXJyYXkuaXNBcnJh
eShleHBlY3RlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xv
bmUtZXhwZWN0ZWQudHh0CmluZGV4IDE0ODQ1NDEuLjRhYWQ3Y2YgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtY2xvbmUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2Ut
Y2xvbmUtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDc0OiBUeXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3
NDogVHlwZUVycm9yOiBObyBkZWZhdWx0IHZhbHVlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODY6
IFR5cGVFcnJvcjogTm8gZGVmYXVsdCB2YWx1ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg2OiBU
eXBlRXJyb3I6IE5vIGRlZmF1bHQgdmFsdWUKIFRlc3RzIHRoYXQgd2UgY2xvbmUgb2JqZWN0IGhp
ZXJhcmNoaWVzCiAKIEZBSUw6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKXt9KSknIHNob3VsZCB0
aHJvdyBidXQgZGlkbid0CitGQUlMOiAncG9zdE1lc3NhZ2UodmFyIHggPSAwOyB0cnkgeyBldmFs
KCJiYWRyZWYiKTsgfSBjYXRjaChlKSB7IHggPSBlOyB9IHgpJyBzaG91bGQgdGhyb3cgYnV0IGRp
ZG4ndAogUEFTUzogJ3Bvc3RNZXNzYWdlKHdpbmRvdyknIHRocmV3IFR5cGVFcnJvcjogVHlwZSBl
cnJvcgogUEFTUzogJ3Bvc3RNZXNzYWdlKCh7Z2V0IGEoKSB7IHRocm93ICJ4IiB9fSkpJyB0aHJl
dyB4CiBGQUlMOiAncG9zdE1lc3NhZ2UoaW1hZ2VEYXRhLmRhdGEpJyBzaG91bGQgdGhyb3cgYnV0
IGRpZG4ndApAQCAtMzEsOCArMzIsMTMgQEAgUEFTUzogZXZlbnREYXRhIGlzIGEsYSxiLFtvYmpl
Y3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAogUEFTUzogZXZlbnREYXRhIGlzIDEsMiwzIG9mIHR5
cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgLCwxIG9mIHR5cGUgb2JqZWN0CiBGQUlMOiBl
dmVudERhdGEgaXMgbnVsbCBzaG91bGQgYmUgZnVuY3Rpb24gKCkge30gb2YgdHlwZSBmdW5jdGlv
bgorRkFJTDogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBzaG91bGQgYmUgUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGJhZHJlZiBvZiB0eXBlIG9iamVjdAogUEFTUzog
ZXZlbnREYXRhIGlzIDIwMDktMDItMTNUMjM6MzE6MzAuMDAwWiBvZiB0eXBlIG9iamVjdAogUEFT
UzogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBvZiB0eXBlIG9iamVjdAorRkFJTDogZXZl
bnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBzaG91bGQgYmUgdHJ1ZSBvZiB0eXBlIG9iamVjdAor
RkFJTDogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBzaG91bGQgYmUgZmFsc2Ugb2YgdHlw
ZSBvYmplY3QKK0ZBSUw6IGV2ZW50RGF0YSBpcyBbb2JqZWN0IE9iamVjdF0gc2hvdWxkIGJlIGdu
aXJ0cyBvZiB0eXBlIG9iamVjdAorRkFJTDogZXZlbnREYXRhIGlzIFtvYmplY3QgT2JqZWN0XSBz
aG91bGQgYmUgNDIgb2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZl
bnREYXRhLnNlbGYKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNT
OiBldmVudERhdGEuZ3JhcGgxIGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCkBAIC04Niw2ICs5
MiwyNSBAQCBGQUlMOiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCiBQQVNTOiB3aW5kb3cu
cGNhbGxlZCA9PT0gdHJ1ZQogUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUKIEZBSUw6IHdp
bmRvdy5iY2FsbGVkID09PSB1bmRlZmluZWQKK0ZBSUw6IEJvb2xlYW4gdmFsdWVzIGNvcnJlY3Qg
KDApCitGQUlMOiBCb29sZWFuIHZhbHVlcyBjb3JyZWN0ICgzKQorUEFTUzogQm9vbGVhbiB2YWx1
ZXMgY29ycmVjdCAoMSwyKQorUEFTUzogQm9vbGVhbiB2YWx1ZXMgY29ycmVjdCAoNCw1KQorUEFT
UzogUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgwLDEpCitQQVNTOiBSZWZlcmVuY2Vz
IHRvIEJvb2xlYW5zIGNvcnJlY3QgKDMsNCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gQm9vbGVhbnMg
Y29ycmVjdCAoMCwyKQorUEFTUzogUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgzLDUp
CitGQUlMOiBOdW1iZXIgdmFsdWVzIGNvcnJlY3QgKDApCitQQVNTOiBOdW1iZXIgdmFsdWVzIGNv
cnJlY3QgKDAsMikKK1BBU1M6IFJlZmVyZW5jZXMgdG8gbnVtYmVycyBjb3JyZWN0ICgwLDEpCitQ
QVNTOiBSZWZlcmVuY2VzIHRvIG51bWJlcnMgY29ycmVjdCAoMCwyKQorRkFJTDogU3RyaW5nIHZh
bHVlcyBjb3JyZWN0ICgwKQorUEFTUzogU3RyaW5nIHZhbHVlcyBjb3JyZWN0ICgwLDIpCitQQVNT
OiBSZWZlcmVuY2VzIHRvIHN0cmluZ3MgY29ycmVjdCAoMCwxKQorUEFTUzogUmVmZXJlbmNlcyB0
byBzdHJpbmdzIGNvcnJlY3QgKDAsMikKK0ZBSUw6IFN0cmluZyBvYmplY3QgcHJvcGVydGllcyBu
b3Qgc2VyaWFsaXplZAorRkFJTDogTnVtYmVyIG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxp
emVkCitGQUlMOiBCb29sZWFuIG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkCiBQQVNT
OiBEYXRlIHZhbHVlcyBjb3JyZWN0ICgwKQogUEFTUzogRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkK
IEZBSUw6IFJlZmVyZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtb2JqZWN0LXR5cGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3Rh
dGUtb2JqZWN0LXR5cGVzLWV4cGVjdGVkLnR4dAppbmRleCBjOTgxM2E3Li4zZmE0MjU2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcHVzaHN0YXRlLW9i
amVjdC10eXBlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3Rh
dGVvYmplY3RzL3B1c2hzdGF0ZS1vYmplY3QtdHlwZXMtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIs
NiBAQCBUaGlzIHRlc3QgY2FsbHMgcHVzaFN0YXRlIHdpdGggc3RhdGUgb2JqZWN0cyBvZiBhbGwg
dGhlIGRpZmZlcmVudCBvYmplY3QgdHlwZXMgcwogCiBTdGF0ZSBwb3BwZWQgLSBbb2JqZWN0IElt
YWdlRGF0YV0gKHR5cGUgb2JqZWN0KQogU3RhdGUgcG9wcGVkIC0gW29iamVjdCBPYmplY3RdICh0
eXBlIG9iamVjdCkKLVN0YXRlIHBvcHBlZCAtIFtvYmplY3QgT2JqZWN0XSAodHlwZSBvYmplY3Qp
CiBTdGF0ZSBwb3BwZWQgLSAgKHR5cGUgb2JqZWN0KQogU3RhdGUgcG9wcGVkIC0gL2Zvby9naSAo
dHlwZSBvYmplY3QpCiBTdGF0ZSBwb3BwZWQgLSAwICh0eXBlIG9iamVjdCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtb2JqZWN0LXR5
cGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcHVzaHN0YXRl
LW9iamVjdC10eXBlcy5odG1sCmluZGV4IDVhMjg0MzkuLjBmOWY1NTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtb2JqZWN0LXR5cGVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3B1c2hzdGF0
ZS1vYmplY3QtdHlwZXMuaHRtbApAQCAtMjcsNyArMjcsNiBAQCBmdW5jdGlvbiBydW5UZXN0KCkK
ICAgICBoaXN0b3J5LnB1c2hTdGF0ZShuZXcgUmVnRXhwKCJmb28iLCAiZ2kiKSwgIlJlZ0V4cCBl
bnRyeSIpOwogICAgIGhpc3RvcnkucHVzaFN0YXRlKG5ldyBBcnJheSwgIkFycmF5IGVudHJ5Iik7
CiAgICAgaGlzdG9yeS5wdXNoU3RhdGUobmV3IE9iamVjdCwgIk9iamVjdCBlbnRyeSIpOwotICAg
IGhpc3RvcnkucHVzaFN0YXRlKG5ldyBFcnJvciwgIkVycm9yIGVudHJ5Iik7CiAgICAgaGlzdG9y
eS5wdXNoU3RhdGUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCgi
MmQiKS5jcmVhdGVJbWFnZURhdGEoMTAsMTApLCAiSW1hZ2VEYXRhIGVudHJ5Iik7CiAKIC8qIFRo
ZSBmb2xsb3dpbmcgYXJlIG5vdCB5ZXQgd2VsbCBlbm91Z2ggc3VwcG9ydGVkIGluIFdlYktpdCB0
byBtZWFuaW5nZnVsbHkgdGVzdCBoZXJlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9uZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAppbmRleCBmZGM0YTFiLi43MTZk
ZDZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdl
LWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDcgQEAKIFRlc3RzIHRoYXQgd2UgY2xvbmUg
b2JqZWN0IGhpZXJhcmNoaWVzCiAKIFBBU1M6ICdwb3N0TWVzc2FnZSgoZnVuY3Rpb24oKXt9KSkn
IHRocmV3IEVycm9yOiBEQVRBX0NMT05FX0VSUjogRE9NIEV4Y2VwdGlvbiAyNQorUEFTUzogJ3Bv
c3RNZXNzYWdlKHZhciB4ID0gMDsgdHJ5IHsgZXZhbCgiYmFkcmVmIik7IH0gY2F0Y2goZSkgeyB4
ID0gZTsgfSB4KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJSOiBET00gRXhjZXB0aW9uIDI1
CiBQQVNTOiAncG9zdE1lc3NhZ2Uod2luZG93KScgdGhyZXcgRXJyb3I6IERBVEFfQ0xPTkVfRVJS
OiBET00gRXhjZXB0aW9uIDI1CiBQQVNTOiAncG9zdE1lc3NhZ2UoKHtnZXQgYSgpIHsgdGhyb3cg
IngiIH19KSknIHRocmV3IHgKIFBBU1M6ICdwb3N0TWVzc2FnZShpbWFnZURhdGEuZGF0YSknIHRo
cmV3IEVycm9yOiBEQVRBX0NMT05FX0VSUjogRE9NIEV4Y2VwdGlvbiAyNQpAQCAtMzAsNiArMzEs
MTAgQEAgUEFTUzogZXZlbnREYXRhIGlzIDEsMiwzIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVu
dERhdGEgaXMgLCwxIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgMjAwOS0wMi0x
M1QyMzozMTozMC4wMDBaIG9mIHR5cGUgb2JqZWN0CiBQQVNTOiBldmVudERhdGEgaXMgW29iamVj
dCBPYmplY3RdIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgdHJ1ZSBvZiB0eXBl
IG9iamVjdAorUEFTUzogZXZlbnREYXRhIGlzIGZhbHNlIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBl
dmVudERhdGEgaXMgZ25pcnRzIG9mIHR5cGUgb2JqZWN0CitQQVNTOiBldmVudERhdGEgaXMgNDIg
b2YgdHlwZSBvYmplY3QKIFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhLnNlbGYK
IFBBU1M6IGV2ZW50RGF0YSBpcyA9PT0gdG8gZXZlbnREYXRhWzBdCiBQQVNTOiBldmVudERhdGEu
Z3JhcGgxIGlzID09PSB0byBldmVudERhdGEuZ3JhcGgyCkBAIC04Myw2ICs4OCwyNSBAQCBQQVNT
OiBhY2Nlc3NvciB2YWx1ZSB3YXMgbnVsbGlmaWVkCiBQQVNTOiB3aW5kb3cucGNhbGxlZCA9PT0g
dHJ1ZQogUEFTUzogd2luZG93LmFjYWxsZWQgPT09IHRydWUKIFBBU1M6IHdpbmRvdy5iY2FsbGVk
ID09PSB1bmRlZmluZWQKK1BBU1M6IEJvb2xlYW4gdmFsdWVzIGNvcnJlY3QgKDApCitQQVNTOiBC
b29sZWFuIHZhbHVlcyBjb3JyZWN0ICgzKQorUEFTUzogQm9vbGVhbiB2YWx1ZXMgY29ycmVjdCAo
MSwyKQorUEFTUzogQm9vbGVhbiB2YWx1ZXMgY29ycmVjdCAoNCw1KQorUEFTUzogUmVmZXJlbmNl
cyB0byBCb29sZWFucyBjb3JyZWN0ICgwLDEpCitQQVNTOiBSZWZlcmVuY2VzIHRvIEJvb2xlYW5z
IGNvcnJlY3QgKDMsNCkKK1BBU1M6IFJlZmVyZW5jZXMgdG8gQm9vbGVhbnMgY29ycmVjdCAoMCwy
KQorUEFTUzogUmVmZXJlbmNlcyB0byBCb29sZWFucyBjb3JyZWN0ICgzLDUpCitQQVNTOiBOdW1i
ZXIgdmFsdWVzIGNvcnJlY3QgKDApCitQQVNTOiBOdW1iZXIgdmFsdWVzIGNvcnJlY3QgKDAsMikK
K1BBU1M6IFJlZmVyZW5jZXMgdG8gbnVtYmVycyBjb3JyZWN0ICgwLDEpCitQQVNTOiBSZWZlcmVu
Y2VzIHRvIG51bWJlcnMgY29ycmVjdCAoMCwyKQorUEFTUzogU3RyaW5nIHZhbHVlcyBjb3JyZWN0
ICgwKQorUEFTUzogU3RyaW5nIHZhbHVlcyBjb3JyZWN0ICgwLDIpCitQQVNTOiBSZWZlcmVuY2Vz
IHRvIHN0cmluZ3MgY29ycmVjdCAoMCwxKQorUEFTUzogUmVmZXJlbmNlcyB0byBzdHJpbmdzIGNv
cnJlY3QgKDAsMikKK1BBU1M6IFN0cmluZyBvYmplY3QgcHJvcGVydGllcyBub3Qgc2VyaWFsaXpl
ZAorUEFTUzogTnVtYmVyIG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkCitQQVNTOiBC
b29sZWFuIG9iamVjdCBwcm9wZXJ0aWVzIG5vdCBzZXJpYWxpemVkCiBQQVNTOiBEYXRlIHZhbHVl
cyBjb3JyZWN0ICgwKQogUEFTUzogRGF0ZSB2YWx1ZXMgY29ycmVjdCAoMSkKIFBBU1M6IFJlZmVy
ZW5jZXMgdG8gZGF0ZXMgY29ycmVjdCAoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMjM0MGY3Li41MmY3YTcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDctMjggIEx1a2UgWmFya28gIDxs
dWtlemFya29AZ21haWwuY29tPgorCisgICAgICAgIFY4IHNob3VsZCBjb3JyZWN0bHkgc2VyaWFs
aXplIEJvb2xlYW4sIE51bWJlciBhbmQgU3RyaW5nIG9iamVjdHMuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1Mjg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBOZXcgQVBJcyB3ZXJlIGV4
cG9zZWQgdG8gYWxsb3cgVjggdG8gY29ycmVjdGx5IHNlcmlhbGl6ZSBCb29sZWFuLCBOdW1iZXIg
YW5kIFN0cmluZyBvYmplY3RzLCBhcyB3ZWxsIGFzIGRldGVjdCBjZXJ0YWluIG5hdGl2ZSBlcnJv
cnMgYXMgcmVxdWlyZWQgYnkgdGhlIEhUTUw1IFN0cnVjdHVyZWQgQ2xvbmUgYWxnb3JpdGhtICho
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFn
ZS91cmxzLmh0bWwjc2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0YSkuIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBzaG91bGQgbWFrZSB1c2Ugb2YgdGhlc2UgQVBJcy4KKworICAgICAgICAtIENo
ZWNrcyBmb3IgYW5kIHNlcmlhbGl6ZXMgQm9vbGVhbiwgTnVtYmVyIGFuZCBTdHJpbmcgb2JqZWN0
cy4KKyAgICAgICAgLSBDaGVja3MgZm9yIG5hdGl2ZSBlcnJvcnMgYW5kIGFib3J0cyBzaG91bGQg
YSBzY3JpcHQgYXR0ZW1wdCB0byBzZXJpYWxpemUgdGhlbS4KKyAgICAgICAgLSBTbWFsbCBuYW1l
IGNoYW5nZSB0byBjbGVhciB1cCB0aGUgY29kZTogbV9vYmplY3RSZWZlcmVuY2VTdGFjayA9PiBt
X29wZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFjaworCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
bG9hZGVyL3N0YXRlb2JqZWN0cy9wdXNoc3RhdGUtb2JqZWN0LXR5cGVzLmh0bWwKKworICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOE9iamVjdE1hcDo6V3JpdGVyOjp3cml0ZUJvb2xlYW5PYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVTdHJpbmdPYmplY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OldyaXRlcjo6d3JpdGVOdW1iZXJPYmplY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlNlcmlhbGl6ZXI6OndyaXRlU3RyaW5nT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxpemVyOjp3cml0ZU51bWJl
ck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6U2VyaWFsaXplcjo6d3Jp
dGVCb29sZWFuT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpTZXJpYWxp
emVyOjpkb1NlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6UmVhZGVy
OjpyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpSZWFkZXI6OnJlYWRTdHJp
bmdPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6VjhPYmplY3RNYXA6OlJlYWRlcjo6cmVhZE51
bWJlck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxpemVy
OjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOE9iamVjdE1hcDo6RGVzZXJpYWxp
emVyOjpvcGVuQ29tcG9zaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4T2JqZWN0TWFwOjpEZXNl
cmlhbGl6ZXI6OmNsb3NlQ29tcG9zaXRlKToKKwogMjAxMS0wNy0yOCAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk3MTQzMzc+IGFu
ZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUzMDYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmlu
ZGV4IGEwYmI5NDguLjJkOWQwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTk5LDYgKzE5OSwxMCBAQCBlbnVt
IFNlcmlhbGl6YXRpb25UYWcgewogICAgIEdlbmVyYXRlRnJlc2hPYmplY3RUYWcgPSAnbycsIC8v
IC0+IGVtcHR5IG9iamVjdCBhbGxvY2F0ZWQgYW4gb2JqZWN0IElEIGFuZCBwdXNoZWQgb250byB0
aGUgb3BlbiBzdGFjayAocmVmKQogICAgIEdlbmVyYXRlRnJlc2hBcnJheVRhZyA9ICdhJywgLy8g
bGVuZ3RoOnVpbnQzMl90IC0+IGVtcHR5IGFycmF5W2xlbmd0aF0gYWxsb2NhdGVkIGFuIG9iamVj
dCBJRCBhbmQgcHVzaGVkIG9udG8gdGhlIG9wZW4gc3RhY2sgKHJlZikKICAgICBSZWZlcmVuY2VD
b3VudFRhZyA9ICc/JywgLy8gcmVmVGFibGVTaXplOnVpbnQzMl90IC0+IElmIHRoZSByZWZlcmVu
Y2UgdGFibGUgaXMgbm90IHJlZlRhYmxlU2l6ZSBiaWcsIGZhaWxzLgorICAgIFN0cmluZ09iamVj
dFRhZyA9ICdzJywgLy8gIHN0cmluZzpSYXdTdHJpbmcgLT4gbmV3IFN0cmluZyhzdHJpbmcpIChy
ZWYpCisgICAgTnVtYmVyT2JqZWN0VGFnID0gJ24nLCAvLyB2YWx1ZTpkb3VibGUgLT4gbmV3IE51
bWJlcih2YWx1ZSkgKHJlZikKKyAgICBUcnVlT2JqZWN0VGFnID0gJ3knLCAvLyBuZXcgQm9vbGVh
bih0cnVlKSAocmVmKQorICAgIEZhbHNlT2JqZWN0VGFnID0gJ3gnLCAvLyBuZXcgQm9vbGVhbihm
YWxzZSkgKHJlZikKICAgICBWZXJzaW9uVGFnID0gMHhGRiAvLyB2ZXJzaW9uOnVpbnQzMl90IC0+
IFVzZXMgdGhpcyBhcyB0aGUgZmlsZSB2ZXJzaW9uLgogfTsKIApAQCAtMjc4LDYgKzI4MiwxMSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHdyaXRlRmFsc2UoKSB7IGFwcGVuZChGYWxzZVRhZyk7IH0K
IAorICAgIHZvaWQgd3JpdGVCb29sZWFuT2JqZWN0KGJvb2wgdmFsdWUpCisgICAgeworICAgICAg
ICBhcHBlbmQodmFsdWUgPyBUcnVlT2JqZWN0VGFnIDogRmFsc2VPYmplY3RUYWcpOworICAgIH0K
KwogICAgIHZvaWQgd3JpdGVTdHJpbmcoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChsZW5ndGggPj0gMCk7CkBAIC0yODUsNiArMjk0LDEzIEBAIHB1
YmxpYzoKICAgICAgICAgZG9Xcml0ZVN0cmluZyhkYXRhLCBsZW5ndGgpOwogICAgIH0KIAorICAg
IHZvaWQgd3JpdGVTdHJpbmdPYmplY3QoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChsZW5ndGggPj0gMCk7CisgICAgICAgIGFwcGVuZChTdHJpbmdP
YmplY3RUYWcpOworICAgICAgICBkb1dyaXRlU3RyaW5nKGRhdGEsIGxlbmd0aCk7CisgICAgfQor
CiAgICAgdm9pZCB3cml0ZVdlYkNvcmVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAg
ewogICAgICAgICAvLyBVc2VzIFVURjggZW5jb2Rpbmcgc28gd2UgY2FuIHJlYWQgaXQgYmFjayBh
cyBlaXRoZXIgVjggb3IKQEAgLTMyMyw2ICszMzksMTIgQEAgcHVibGljOgogICAgICAgICBkb1dy
aXRlTnVtYmVyKG51bWJlcik7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZU51bWJlck9iamVjdChk
b3VibGUgbnVtYmVyKQorICAgIHsKKyAgICAgICAgYXBwZW5kKE51bWJlck9iamVjdFRhZyk7Cisg
ICAgICAgIGRvV3JpdGVOdW1iZXIobnVtYmVyKTsKKyAgICB9CisKICAgICB2b2lkIHdyaXRlQmxv
Yihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB0eXBlLCB1bnNpZ25lZCBsb25nIGxv
bmcgc2l6ZSkKICAgICB7CiAgICAgICAgIGFwcGVuZChCbG9iVGFnKTsKQEAgLTg2OCw2ICs4OTAs
MjUgQEAgcHJpdmF0ZToKICAgICAgICAgbV93cml0ZXIud3JpdGVTdHJpbmcoKnN0cmluZ1ZhbHVl
LCBzdHJpbmdWYWx1ZS5sZW5ndGgoKSk7CiAgICAgfQogCisgICAgdm9pZCB3cml0ZVN0cmluZ09i
amVjdCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICB2ODo6SGFu
ZGxlPHY4OjpTdHJpbmdPYmplY3Q+IHN0cmluZ09iamVjdCA9IHZhbHVlLkFzPHY4OjpTdHJpbmdP
YmplY3Q+KCk7CisgICAgICAgIHY4OjpTdHJpbmc6OlV0ZjhWYWx1ZSBzdHJpbmdWYWx1ZShzdHJp
bmdPYmplY3QtPlN0cmluZ1ZhbHVlKCkpOworICAgICAgICBtX3dyaXRlci53cml0ZVN0cmluZ09i
amVjdCgqc3RyaW5nVmFsdWUsIHN0cmluZ1ZhbHVlLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICB2
b2lkIHdyaXRlTnVtYmVyT2JqZWN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok51bWJlck9iamVjdD4gbnVtYmVyT2JqZWN0ID0gdmFs
dWUuQXM8djg6Ok51bWJlck9iamVjdD4oKTsKKyAgICAgICAgbV93cml0ZXIud3JpdGVOdW1iZXJP
YmplY3QobnVtYmVyT2JqZWN0LT5OdW1iZXJWYWx1ZSgpKTsKKyAgICB9CisKKyAgICB2b2lkIHdy
aXRlQm9vbGVhbk9iamVjdCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpCb29sZWFuT2JqZWN0PiBib29sZWFuT2JqZWN0ID0gdmFsdWUu
QXM8djg6OkJvb2xlYW5PYmplY3Q+KCk7CisgICAgICAgIG1fd3JpdGVyLndyaXRlQm9vbGVhbk9i
amVjdChib29sZWFuT2JqZWN0LT5Cb29sZWFuVmFsdWUoKSk7CisgICAgfQorCiAgICAgdm9pZCB3
cml0ZUJsb2Iodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHsKICAgICAgICAgQmxv
YiogYmxvYiA9IFY4QmxvYjo6dG9OYXRpdmUodmFsdWUuQXM8djg6Ok9iamVjdD4oKSk7CkBAIC0x
MDEzLDYgKzEwNTQsMTIgQEAgU2VyaWFsaXplcjo6U3RhdGVCYXNlKiBTZXJpYWxpemVyOjpkb1Nl
cmlhbGl6ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUsIFN0YXQKICAgICAgICAgZ3JleU9i
amVjdChqc09iamVjdCk7CiAgICAgICAgIGlmICh2YWx1ZS0+SXNEYXRlKCkpCiAgICAgICAgICAg
ICBtX3dyaXRlci53cml0ZURhdGUodmFsdWUtPk51bWJlclZhbHVlKCkpOworICAgICAgICBlbHNl
IGlmICh2YWx1ZS0+SXNTdHJpbmdPYmplY3QoKSkKKyAgICAgICAgICAgIHdyaXRlU3RyaW5nT2Jq
ZWN0KHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPklzTnVtYmVyT2JqZWN0KCkpCisg
ICAgICAgICAgICB3cml0ZU51bWJlck9iamVjdCh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKHZh
bHVlLT5Jc0Jvb2xlYW5PYmplY3QoKSkKKyAgICAgICAgICAgIHdyaXRlQm9vbGVhbk9iamVjdCh2
YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT5Jc0FycmF5KCkpIHsKICAgICAgICAgICAg
IG1fd3JpdGVyLndyaXRlR2VuZXJhdGVGcmVzaEFycmF5KHZhbHVlLkFzPHY4OjpBcnJheT4oKS0+
TGVuZ3RoKCkpOwogICAgICAgICAgICAgcmV0dXJuIHB1c2gobmV3QXJyYXlTdGF0ZSh2YWx1ZS5B
czx2ODo6QXJyYXk+KCksIG5leHQpKTsKQEAgLTEwMjksOCArMTA3Niw3IEBAIFNlcmlhbGl6ZXI6
OlN0YXRlQmFzZSogU2VyaWFsaXplcjo6ZG9TZXJpYWxpemUodjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHZhbHVlLCBTdGF0CiAgICAgICAgIGVsc2UgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNl
KHZhbHVlKSkKICAgICAgICAgICAgIHdyaXRlQXJyYXlCdWZmZXIodmFsdWUpOwogICAgICAgICBl
bHNlIGlmICh2YWx1ZS0+SXNPYmplY3QoKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFdlIG5l
ZWQgdG8gY2hlY2sgaWYganNPYmplY3QgaXMgYSAnbmF0aXZlIEVycm9yJyBhbmQgaWYgc28gdGhy
b3cgYSBEYXRhQ2xvbmVFcnJvci4KLSAgICAgICAgICAgIGlmIChpc0hvc3RPYmplY3QoanNPYmpl
Y3QpIHx8IGpzT2JqZWN0LT5Jc0NhbGxhYmxlKCkpCisgICAgICAgICAgICBpZiAoaXNIb3N0T2Jq
ZWN0KGpzT2JqZWN0KSB8fCBqc09iamVjdC0+SXNDYWxsYWJsZSgpIHx8IHZhbHVlLT5Jc05hdGl2
ZUVycm9yKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKERhdGFDbG9uZUVy
cm9yLCBuZXh0KTsKICAgICAgICAgICAgIG1fd3JpdGVyLndyaXRlR2VuZXJhdGVGcmVzaE9iamVj
dCgpOwogICAgICAgICAgICAgcmV0dXJuIHB1c2gobmV3T2JqZWN0U3RhdGUoanNPYmplY3QsIG5l
eHQpKTsKQEAgLTExMDYsMTAgKzExNTIsMjMgQEAgcHVibGljOgogICAgICAgICBjYXNlIEZhbHNl
VGFnOgogICAgICAgICAgICAgKnZhbHVlID0gdjg6OkZhbHNlKCk7CiAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBUcnVlT2JqZWN0VGFnOgorICAgICAgICAgICAgKnZhbHVlID0gdjg6
OkJvb2xlYW5PYmplY3Q6Ok5ldyh0cnVlKTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVj
dFJlZmVyZW5jZSgqdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRmFs
c2VPYmplY3RUYWc6CisgICAgICAgICAgICAqdmFsdWUgPSB2ODo6Qm9vbGVhbk9iamVjdDo6TmV3
KGZhbHNlKTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFsdWUp
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RyaW5nVGFnOgogICAgICAgICAg
ICAgaWYgKCFyZWFkU3RyaW5nKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RUYWc6CisgICAg
ICAgICAgICBpZiAoIXJlYWRTdHJpbmdPYmplY3QodmFsdWUpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNyZWF0b3IucHVzaE9iamVjdFJlZmVyZW5jZSgqdmFs
dWUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW50MzJUYWc6CiAgICAgICAg
ICAgICBpZiAoIXJlYWRJbnQzMih2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTEyNyw2ICsxMTg2LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmICghcmVhZE51
bWJlcih2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTnVtYmVyT2JqZWN0VGFnOgorICAgICAgICAgICAgaWYgKCFy
ZWFkTnVtYmVyT2JqZWN0KHZhbHVlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBjcmVhdG9yLnB1c2hPYmplY3RSZWZlcmVuY2UoKnZhbHVlKTsKKyAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEJsb2JUYWc6CiAgICAgICAgICAgICBpZiAoIXJlYWRC
bG9iKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjg3LDYgKzEz
NTEsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgYm9v
bCByZWFkU3RyaW5nT2JqZWN0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiogdmFsdWUpCisgICAgewor
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RyaW5nVmFsdWU7CisgICAgICAgIGlmICgh
cmVhZFN0cmluZygmc3RyaW5nVmFsdWUpIHx8ICFzdHJpbmdWYWx1ZS0+SXNTdHJpbmcoKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgKnZhbHVlID0gdjg6OlN0cmluZ09iamVj
dDo6TmV3KHN0cmluZ1ZhbHVlLkFzPHY4OjpTdHJpbmc+KCkpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKICAgICBib29sIHJlYWRXZWJDb3JlU3RyaW5nKFN0cmluZyogc3RyaW5nKQog
ICAgIHsKICAgICAgICAgdWludDMyX3QgbGVuZ3RoOwpAQCAtMTMzNCw2ICsxNDA3LDE1IEBAIHBy
aXZhdGU6CiAgICAgICAgICp2YWx1ZSA9IHY4OjpOdW1iZXI6Ok5ldyhudW1iZXIpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CisgIAorICAgIGJvb2wgcmVhZE51bWJlck9iamVjdCh2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4qIHZhbHVlKQorICAgIHsKKyAgICAgICAgZG91YmxlIG51bWJlcjsK
KyAgICAgICAgaWYgKCFkb1JlYWROdW1iZXIoJm51bWJlcikpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICp2YWx1ZSA9IHY4OjpOdW1iZXJPYmplY3Q6Ok5ldyhudW1iZXIpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICBib29sIHJlYWRJbWFnZURhdGEodjg6
OkhhbmRsZTx2ODo6VmFsdWU+KiB2YWx1ZSkKICAgICB7CkBAIC0xNTg1LDcgKzE2NjcsNyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBpZiAoIWRvRGVzZXJpYWxpemUoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gdjg6Ok51bGwoKTsKICAgICAgICAgfQotICAgICAgICBpZiAoc3RhY2tEZXB0aCgp
ICE9IDEgfHwgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkpCisgICAgICAgIGlmIChzdGFj
a0RlcHRoKCkgIT0gMSB8fCBtX29wZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFjay5zaXplKCkpCiAg
ICAgICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHJlc3VsdCA9IHNjb3BlLkNsb3NlKGVsZW1lbnQoMCkpOwogICAgICAgICByZXR1cm4gcmVz
dWx0OwpAQCAtMTczNCwxNiArMTgxNiwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlbkNvbXBv
c2l0ZShjb25zdCB2ODo6TG9jYWw8djg6OlZhbHVlPiYgb2JqZWN0KQogICAgIHsKICAgICAgICAg
dWludDMyX3QgbmV3T2JqZWN0UmVmZXJlbmNlID0gbV9vYmplY3RQb29sLnNpemUoKTsKLSAgICAg
ICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5hcHBlbmQobmV3T2JqZWN0UmVmZXJlbmNlKTsKKyAg
ICAgICAgbV9vcGVuQ29tcG9zaXRlUmVmZXJlbmNlU3RhY2suYXBwZW5kKG5ld09iamVjdFJlZmVy
ZW5jZSk7CiAgICAgICAgIG1fb2JqZWN0UG9vbC5hcHBlbmQob2JqZWN0KTsKICAgICB9CiAKICAg
ICBib29sIGNsb3NlQ29tcG9zaXRlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiogb2JqZWN0KQogICAg
IHsKLSAgICAgICAgaWYgKCFtX29iamVjdFJlZmVyZW5jZVN0YWNrLnNpemUoKSkKKyAgICAgICAg
aWYgKCFtX29wZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFjay5zaXplKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIHVpbnQzMl90IG9iamVjdFJlZmVyZW5jZSA9IG1fb2JqZWN0
UmVmZXJlbmNlU3RhY2tbbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaXplKCkgLSAxXTsKLSAgICAg
ICAgbV9vYmplY3RSZWZlcmVuY2VTdGFjay5zaHJpbmsobV9vYmplY3RSZWZlcmVuY2VTdGFjay5z
aXplKCkgLSAxKTsKKyAgICAgICAgdWludDMyX3Qgb2JqZWN0UmVmZXJlbmNlID0gbV9vcGVuQ29t
cG9zaXRlUmVmZXJlbmNlU3RhY2tbbV9vcGVuQ29tcG9zaXRlUmVmZXJlbmNlU3RhY2suc2l6ZSgp
IC0gMV07CisgICAgICAgIG1fb3BlbkNvbXBvc2l0ZVJlZmVyZW5jZVN0YWNrLnNocmluayhtX29w
ZW5Db21wb3NpdGVSZWZlcmVuY2VTdGFjay5zaXplKCkgLSAxKTsKICAgICAgICAgaWYgKG9iamVj
dFJlZmVyZW5jZSA+PSBtX29iamVjdFBvb2wuc2l6ZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAqb2JqZWN0ID0gbV9vYmplY3RQb29sW29iamVjdFJlZmVyZW5jZV07CkBA
IC0xNzUzLDcgKzE4MzUsNyBAQCBwcml2YXRlOgogICAgIFJlYWRlciYgbV9yZWFkZXI7CiAgICAg
VmVjdG9yPHY4OjpMb2NhbDx2ODo6VmFsdWU+ID4gbV9zdGFjazsKICAgICBWZWN0b3I8djg6Okhh
bmRsZTx2ODo6VmFsdWU+ID4gbV9vYmplY3RQb29sOwotICAgIFZlY3Rvcjx1aW50MzJfdD4gbV9v
YmplY3RSZWZlcmVuY2VTdGFjazsKKyAgICBWZWN0b3I8dWludDMyX3Q+IG1fb3BlbkNvbXBvc2l0
ZVJlZmVyZW5jZVN0YWNrOwogICAgIHVpbnQzMl90IG1fdmVyc2lvbjsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>