<?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>96344</bug_id>
          
          <creation_ts>2012-09-10 17:56:42 -0700</creation_ts>
          <short_desc>Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more places</short_desc>
          <delta_ts>2012-09-11 17:07:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Jinwoo Song">jinwoo7.song</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>gustavo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>paroga</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>716738</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-10 17:56:42 -0700</bug_when>
    <thetext>Use StringBuilder::appendNumber() instead of String::number(). Patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716796</commentid>
    <comment_count>1</comment_count>
      <attachid>163269</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-10 20:44:44 -0700</bug_when>
    <thetext>Created attachment 163269
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716798</commentid>
    <comment_count>2</comment_count>
      <attachid>163269</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 20:48:32 -0700</bug_when>
    <thetext>Comment on attachment 163269
patch

Attachment 163269 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13811395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716801</commentid>
    <comment_count>3</comment_count>
      <attachid>163269</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-10 20:54:03 -0700</bug_when>
    <thetext>Comment on attachment 163269
patch

Attachment 163269 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13824080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716804</commentid>
    <comment_count>4</comment_count>
      <attachid>163269</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-10 20:57:37 -0700</bug_when>
    <thetext>Comment on attachment 163269
patch

Attachment 163269 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13804808</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716806</commentid>
    <comment_count>5</comment_count>
      <attachid>163271</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-10 21:03:07 -0700</bug_when>
    <thetext>Created attachment 163271
patch. fix build error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716809</commentid>
    <comment_count>6</comment_count>
      <attachid>163271</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-10 21:09:29 -0700</bug_when>
    <thetext>Comment on attachment 163271
patch. fix build error.

Attachment 163271 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13827037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716810</commentid>
    <comment_count>7</comment_count>
      <attachid>163271</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 21:11:51 -0700</bug_when>
    <thetext>Comment on attachment 163271
patch. fix build error.

Attachment 163271 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13824084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716811</commentid>
    <comment_count>8</comment_count>
      <attachid>163271</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-10 21:15:41 -0700</bug_when>
    <thetext>Comment on attachment 163271
patch. fix build error.

Attachment 163271 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13824087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716814</commentid>
    <comment_count>9</comment_count>
      <attachid>163271</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-10 21:18:43 -0700</bug_when>
    <thetext>Comment on attachment 163271
patch. fix build error.

Attachment 163271 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13805758</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716821</commentid>
    <comment_count>10</comment_count>
      <attachid>163271</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-10 21:32:54 -0700</bug_when>
    <thetext>Comment on attachment 163271
patch. fix build error.

Attachment 163271 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13811401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716823</commentid>
    <comment_count>11</comment_count>
      <attachid>163275</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-10 21:36:02 -0700</bug_when>
    <thetext>Created attachment 163275
patch. fix build error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716831</commentid>
    <comment_count>12</comment_count>
      <attachid>163275</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-10 21:50:42 -0700</bug_when>
    <thetext>Comment on attachment 163275
patch. fix build error.

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Deploy StringBuilder::appendNumber() in more place

Update the title to 
Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more place

&gt; Source/WebCore/ChangeLog:9
&gt; +        StringBuilder::appendLiteral() instead of String::appned() in the surrounding code.

typo: String::appned()

&gt; Source/WebCore/css/CSSAspectRatioValue.cpp:43
&gt;      StringBuilder result;
&gt;      result.append(String::number(m_numeratorValue));
&gt; -    result.append(&quot;/&quot;);
&gt; +    result.append(&apos;/&apos;);
&gt;      result.append(String::number(m_denominatorValue));
&gt;      return result.toString();

This whole function should use String Operators.

&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:95
&gt; -        source.append(enableds[i]? &quot;true&quot; : &quot;false&quot;);
&gt; +        source.appendLiteral(enableds[i]? &quot;true&quot; : &quot;false&quot;);

I doubt this compile, StringBuilder::appendLiteral() is resolved at compile time.
It should be:
    if (enableds[i])
        source.appendLiteral(&quot;true&quot;);
    else
        source.appendLiteral(&quot;false&quot;);

&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:113
&gt; -        source.append(selecteds[i]? &quot;true&quot; : &quot;false&quot;);
&gt; +        source.appendLiteral(selecteds[i]? &quot;true&quot; : &quot;false&quot;);

Ditto.

&gt; Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp:-111
&gt; -        builder.append(it-&gt;second + &quot;\r\n&quot;);

Gosh, that&apos;s sad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716855</commentid>
    <comment_count>13</comment_count>
      <attachid>163280</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-10 22:32:15 -0700</bug_when>
    <thetext>Created attachment 163280
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716858</commentid>
    <comment_count>14</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-10 22:34:12 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 163275 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163275&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Deploy StringBuilder::appendNumber() in more place
&gt; 
&gt; Update the title to 
&gt; Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more place
Done!
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        StringBuilder::appendLiteral() instead of String::appned() in the surrounding code.
&gt; 
&gt; typo: String::appned()
Fixed!
&gt; 
&gt; &gt; Source/WebCore/css/CSSAspectRatioValue.cpp:43
&gt; &gt;      StringBuilder result;
&gt; &gt;      result.append(String::number(m_numeratorValue));
&gt; &gt; -    result.append(&quot;/&quot;);
&gt; &gt; +    result.append(&apos;/&apos;);
&gt; &gt;      result.append(String::number(m_denominatorValue));
&gt; &gt;      return result.toString();
&gt; 
&gt; This whole function should use String Operators.
Done!
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:95
&gt; &gt; -        source.append(enableds[i]? &quot;true&quot; : &quot;false&quot;);
&gt; &gt; +        source.appendLiteral(enableds[i]? &quot;true&quot; : &quot;false&quot;);
&gt; 
&gt; I doubt this compile, StringBuilder::appendLiteral() is resolved at compile time.
&gt; It should be:
&gt;     if (enableds[i])
&gt;         source.appendLiteral(&quot;true&quot;);
&gt;     else
&gt;         source.appendLiteral(&quot;false&quot;);
Done!
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:113
&gt; &gt; -        source.append(selecteds[i]? &quot;true&quot; : &quot;false&quot;);
&gt; &gt; +        source.appendLiteral(selecteds[i]? &quot;true&quot; : &quot;false&quot;);
&gt; 
&gt; Ditto.
Done!
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp:-111
&gt; &gt; -        builder.append(it-&gt;second + &quot;\r\n&quot;);
&gt; 
&gt; Gosh, that&apos;s sad.
yes, indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716878</commentid>
    <comment_count>15</comment_count>
      <attachid>163280</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-10 23:46:18 -0700</bug_when>
    <thetext>Comment on attachment 163280
patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more place

Typo: place-&gt;places

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp:62
&gt; +    source.appendLiteral(&quot;&lt;/style&gt;&lt;/head&gt;&lt;body&gt;\n&quot;);
&gt; +    source.appendLiteral(&quot;&lt;script&gt;\n&quot;);
&gt; +    source.appendLiteral(&quot;window.addEventListener(&apos;load&apos;, function () {&quot;);

Hum, this would actually be even better in one append():
    source.appendLiteral(&quot;&lt;/style&gt;&lt;/head&gt;&lt;body&gt;\n&quot;
                         &quot;&lt;script&gt;\n&quot;
                         &quot;window.addEventListener(&apos;load&apos;, function () {&quot;);

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp:98
&gt; +    source.appendLiteral(&quot;&lt;/script&gt;\n&quot;);
&gt; +    source.appendLiteral(&quot;&lt;/body&gt; &lt;/html&gt;\n&quot;);

ditto, one literal would be better.

&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:78
&gt; +    source.appendLiteral(&quot;&lt;/style&gt;&lt;/head&gt;&lt;body&gt;\n&quot;);
&gt; +    source.appendLiteral(&quot;&lt;script&gt;\n&quot;);
&gt; +    source.appendLiteral(&quot;window.addEventListener(&apos;load&apos;, function () {&quot;);

Ditto.

&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:125
&gt; +    source.appendLiteral(&quot;] &quot;);
&gt; +    source.appendLiteral(&quot;, &apos;Cancel&apos;&quot;);

Ditto.

&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:132
&gt; +    source.appendLiteral(&quot;&lt;/script&gt;\n&quot;);
&gt; +    source.appendLiteral(&quot;&lt;/body&gt; &lt;/html&gt;\n&quot;);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716900</commentid>
    <comment_count>16</comment_count>
      <attachid>163293</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-11 00:29:57 -0700</bug_when>
    <thetext>Created attachment 163293
patch.

Applied Benjamin&apos;s comments. Thanks a lot. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716910</commentid>
    <comment_count>17</comment_count>
      <attachid>163280</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-09-11 00:35:59 -0700</bug_when>
    <thetext>Comment on attachment 163280
patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more place
&gt; 
&gt; Typo: place-&gt;places

fixed.

&gt;&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp:62
&gt;&gt; +    source.appendLiteral(&quot;window.addEventListener(&apos;load&apos;, function () {&quot;);
&gt; 
&gt; Hum, this would actually be even better in one append():
&gt;     source.appendLiteral(&quot;&lt;/style&gt;&lt;/head&gt;&lt;body&gt;\n&quot;
&gt;                          &quot;&lt;script&gt;\n&quot;
&gt;                          &quot;window.addEventListener(&apos;load&apos;, function () {&quot;);

Done.

&gt;&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.cpp:98
&gt;&gt; +    source.appendLiteral(&quot;&lt;/body&gt; &lt;/html&gt;\n&quot;);
&gt; 
&gt; ditto, one literal would be better.

Done.

&gt;&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:78
&gt;&gt; +    source.appendLiteral(&quot;window.addEventListener(&apos;load&apos;, function () {&quot;);
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:125
&gt;&gt; +    source.appendLiteral(&quot;, &apos;Cancel&apos;&quot;);
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:132
&gt;&gt; +    source.appendLiteral(&quot;&lt;/body&gt; &lt;/html&gt;\n&quot;);
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717343</commentid>
    <comment_count>18</comment_count>
      <attachid>163293</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-11 10:29:09 -0700</bug_when>
    <thetext>Comment on attachment 163293
patch.

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717348</commentid>
    <comment_count>19</comment_count>
      <attachid>163293</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-09-11 10:34:58 -0700</bug_when>
    <thetext>Comment on attachment 163293
patch.

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

&gt; Source/WebCore/css/CSSAspectRatioValue.cpp:39
&gt; -    StringBuilder result;
&gt; -    result.append(String::number(m_numeratorValue));
&gt; -    result.append(&quot;/&quot;);
&gt; -    result.append(String::number(m_denominatorValue));
&gt; -    return result.toString();
&gt; +    return String::number(m_numeratorValue) + &apos;/&apos; + String::number(m_denominatorValue);

It isn’t so great that this creates three String objects and then destroys two. We should figure out how to make uses like this efficient. It might even have been better to have this continue to use StringBuilder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717359</commentid>
    <comment_count>20</comment_count>
      <attachid>163293</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 10:40:14 -0700</bug_when>
    <thetext>Comment on attachment 163293
patch.

Clearing flags on attachment: 163293

Committed r128204: &lt;http://trac.webkit.org/changeset/128204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717360</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 10:40:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717394</commentid>
    <comment_count>22</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-09-11 11:08:46 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/css/CSSAspectRatioValue.cpp:39
&gt; &gt; -    StringBuilder result;
&gt; &gt; -    result.append(String::number(m_numeratorValue));
&gt; &gt; -    result.append(&quot;/&quot;);
&gt; &gt; -    result.append(String::number(m_denominatorValue));
&gt; &gt; -    return result.toString();
&gt; &gt; +    return String::number(m_numeratorValue) + &apos;/&apos; + String::number(m_denominatorValue);
&gt; 
&gt; It isn’t so great that this creates three String objects and then destroys two. We should figure out how to make uses like this efficient. It might even have been better to have this continue to use StringBuilder.

There is no StringBuilder::number() for floats. At the moment, this is the best solution.

We should have StringBuilder::number() for double and a StringOperator for numbers, but that is not there yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717744</commentid>
    <comment_count>23</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-11 17:07:59 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; &gt; &gt; Source/WebCore/css/CSSAspectRatioValue.cpp:39
&gt; &gt; &gt; -    StringBuilder result;
&gt; &gt; &gt; -    result.append(String::number(m_numeratorValue));
&gt; &gt; &gt; -    result.append(&quot;/&quot;);
&gt; &gt; &gt; -    result.append(String::number(m_denominatorValue));
&gt; &gt; &gt; -    return result.toString();
&gt; &gt; &gt; +    return String::number(m_numeratorValue) + &apos;/&apos; + String::number(m_denominatorValue);
&gt; &gt; 
&gt; &gt; It isn’t so great that this creates three String objects and then destroys two. We should figure out how to make uses like this efficient. It might even have been better to have this continue to use StringBuilder.
&gt; 
&gt; There is no StringBuilder::number() for floats. At the moment, this is the best solution.

I&apos;m working on, but I want to cleanup some parts first. Otherwise I have to duplicate too much code.

&gt; We should have StringBuilder::number() for double and a StringOperator for numbers, but that is not there yet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163269</attachid>
            <date>2012-09-10 20:44:44 -0700</date>
            <delta_ts>2012-09-10 21:03:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>appendNumber.patch</filename>
            <type>text/plain</type>
            <size>17518</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMjljOTgxLi5lODA5MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbiBtb3JlIHBs
YWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBT
dHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbnN0ZWFkIG9mIFN0cmluZzo6bnVtYmVyKCku
IEFsc28gZGVwbG95IAorICAgICAgICBTdHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKCkgaW5z
dGVhZCBvZiBTdHJpbmc6OmFwcG5lZCgpIGluIHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAg
ICAgICogY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
QXNwZWN0UmF0aW9WYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uUGF0aFByb2Nlc3Nvci5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BvaW50TGlzdDo6dmFsdWVBc1N0cmluZyk6CisKIDIwMTItMDktMTAgIE9qYW4g
VmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW5hbWUgYm94LXNpemluZyBh
cHBseWluZyBtZXRob2RzIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQganVzdCBhcHBseWluZyBib3gt
c2l6aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCmluZGV4
IDE1MjkyYmUuLjNhZjljNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQXNwZWN0UmF0aW9W
YWx1ZS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgU3RyaW5nIENTU0FzcGVjdFJhdGlvVmFsdWU6OmN1
c3RvbUNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJl
c3VsdC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobV9udW1lcmF0b3JWYWx1ZSkpOwotICAgIHJlc3Vs
dC5hcHBlbmQoIi8iKTsKKyAgICByZXN1bHQuYXBwZW5kKCcvJyk7CiAgICAgcmVzdWx0LmFwcGVu
ZChTdHJpbmc6Om51bWJlcihtX2Rlbm9taW5hdG9yVmFsdWUpKTsKICAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBjNDBiYTQzLi4xMmY4MGVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
QEAgLTI5MDAsNyArMjkwMCw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBXZWJHCiAgICAgICAgICAg
ICBTdHJpbmcgbmFtZSA9IGluZm8ubmFtZTsKICAgICAgICAgICAgIGlmIChpbmZvLnNpemUgPiAx
ICYmIGluZGV4ID49IDEpIHsKICAgICAgICAgICAgICAgICBuYW1lLmFwcGVuZCgnWycpOwotICAg
ICAgICAgICAgICAgIG5hbWUuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGluZGV4KSk7CisgICAgICAg
ICAgICAgICAgbmFtZS5hcHBlbmROdW1iZXIoaW5kZXgpOwogICAgICAgICAgICAgICAgIG5hbWUu
YXBwZW5kKCddJyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBOb3cgbmVlZCB0byBs
b29rIHRoaXMgdXAgYnkgbmFtZSBhZ2FpbiB0byBmaW5kIGl0cyBsb2NhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublBhdGhQcm9j
ZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlu
blBhdGhQcm9jZXNzb3IuY3BwCmluZGV4IGNiNDMzNmIuLmExZDY2NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5QYXRoUHJvY2Vzc29y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5u
UGF0aFByb2Nlc3Nvci5jcHAKQEAgLTY5LDE1ICs2OSwxNSBAQCBuYW1lc3BhY2UgewogU3RyaW5n
IHZhbHVlVG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiBhcmcpCiB7CiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbRmxvYXRSZWN0IHg9Iik7CisgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJbRmxvYXRSZWN0IHg9Iik7CiAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nOjpudW1iZXIoYXJnLngoKSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCIgeT0iKTsKKyAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiB5PSIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
Zzo6bnVtYmVyKGFyZy55KCkpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiIG1heFg9Iik7CisgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgbWF4WD0iKTsKICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6Om51bWJlcihhcmcubWF4WCgpKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiBtYXhZPSIpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG1heFk9Iik7CiAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nOjpudW1iZXIoYXJnLm1heFkoKSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJdIik7Cisg
ICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCmluZGV4IGJlNDAwOWEuLjJl
MDU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCkBAIC0zNiw3ICszNiw3IEBA
IFN0cmluZyBTVkdQb2ludExpc3Q6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgIHVuc2lnbmVk
IHNpemUgPSB0aGlzLT5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7
ICsraSkgewogICAgICAgICBpZiAoaSA+IDApCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgi
ICIpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CisgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBj
b21tYXMgdG8gc2VwZXJhdGU/CiAKICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQgPSBh
dChpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIocG9pbnQueCgpKSAr
ICcgJyArIFN0cmluZzo6bnVtYmVyKHBvaW50LnkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKaW5kZXggZjkzZTExYS4uZWExY2NhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8amlud29vNy5z
b25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyOjphcHBlbmRO
dW1iZXIoKSBpbiBtb3JlIHBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NjM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbnN0ZWFkIG9m
IFN0cmluZzo6bnVtYmVyKCkuIEFsc28gZGVwbG95IAorICAgICAgICBTdHJpbmdCdWlsZGVyOjph
cHBlbmRMaXRlcmFsKCkgaW5zdGVhZCBvZiBTdHJpbmc6OmFwcG5lZCgpIGluIHRoZSBzdXJyb3Vu
ZGluZyBjb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpnZW5lcmF0ZUhUTUwpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50OjpnZW5lcmF0ZUhUTUwpOgorCiAyMDEyLTA5LTEw
ICBHZW5ldmlldmUgTWFrICA8Z21ha0ByaW0uY29tPgogCiAgICAgICAgIENoYW5nZSAtZGF0YS1i
bGFja2JlcnJ5LXdlYndvcmtzLWNvbnRleHQgdG8gLWRhdGEtd2Vid29ya3MtY29udGV4dApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNr
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Rh
dGVQaWNrZXJDbGllbnQuY3BwCmluZGV4IDkzZjdmZGEuLjIzYzBiZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tl
ckNsaWVudC5jcHAKQEAgLTUwLDI4ICs1MCwyOCBAQCBEYXRlUGlja2VyQ2xpZW50Ojp+RGF0ZVBp
Y2tlckNsaWVudCgpCiB2b2lkIERhdGVQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTChCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlucHV0VHlwZSB0eXBlLCBjb25zdCBCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
U3RyaW5nJiBtaW4sIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBtYXgsIGRv
dWJsZSBzdGVwKQogewogICAgIFN0cmluZ0J1aWxkZXIgc291cmNlOwotICAgIHNvdXJjZS5hcHBl
bmQoIjxzdHlsZT5cbiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCI8c3R5bGU+XG4iKTsK
ICAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgogICAgIHNvdXJjZS5hcHBlbmQocG9wdXBDb250cm9s
QmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVvZihwb3B1cENvbnRyb2xCbGFja0JlcnJ5
Q3NzKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT5cbjxzdHlsZT4iKTsKKyAgICBzb3Vy
Y2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT5cbjxzdHlsZT4iKTsKICAgICBzb3VyY2UuYXBwZW5k
KHRpbWVDb250cm9sQmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVvZih0aW1lQ29udHJv
bEJsYWNrQmVycnlDc3MpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3N0eWxlPjwvaGVhZD48Ym9k
eT5cbiIpOwotICAgIHNvdXJjZS5hcHBlbmQoIjxzY3JpcHQ+XG4iKTsKLSAgICBzb3VyY2UuYXBw
ZW5kKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsiKTsKKyAg
ICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKKyAgICBz
b3VyY2UuYXBwZW5kTGl0ZXJhbCgiPHNjcmlwdD5cbiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRl
cmFsKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsiKTsKICAg
ICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5
cGVEYXRlOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3co
XCJEYXRlXCIsICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LnBvcHVw
Y29udHJvbC5zaG93KFwiRGF0ZVwiLCAiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlVGltZToKLSAgICAgICAgc291cmNlLmFwcGVuZCgi
d2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiVGltZVwiLCAiKTsKKyAgICAgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIlRpbWVcIiwgIik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OklucHV0VHlwZURhdGVU
aW1lOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJE
YXRlVGltZVwiLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndpbmRvdy5wb3B1
cGNvbnRyb2wuc2hvdyhcIkRhdGVUaW1lXCIsICIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsOgotICAgICAgICBz
b3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlVGltZUxvY2FsXCIs
ICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LnBvcHVwY29udHJvbC5z
aG93KFwiRGF0ZVRpbWVMb2NhbFwiLCAiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlTW9udGg6CiAgICAgY2FzZSBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6SW5wdXRUeXBlV2VlazoKQEAgLTgxLDIxICs4MSwyMSBAQCB2b2lkIERhdGVQaWNr
ZXJDbGllbnQ6OmdlbmVyYXRlSFRNTChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlu
cHV0VHlwZSB0eQogICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICBzb3VyY2UuYXBw
ZW5kKCJcIiIgKyBTdHJpbmcodmFsdWUuaW1wbCgpKSArICJcIiwgIik7CiAgICAgZWxzZQotICAg
ICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwo
IjAsICIpOwogCiAgICAgaWYgKCFtaW4uaXNFbXB0eSgpKQogICAgICAgICBzb3VyY2UuYXBwZW5k
KFN0cmluZyhtaW4uaW1wbCgpKSArICIsICIpOwogICAgIGVsc2UKLSAgICAgICAgc291cmNlLmFw
cGVuZCgiMCwgIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIwLCAiKTsKICAgICBp
ZiAoIW1heC5pc0VtcHR5KCkpCiAgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nKG1heC5pbXBs
KCkpICsgIiwgIik7CiAgICAgZWxzZQotICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAg
ICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjAsICIpOwogICAgIHNvdXJjZS5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIoc3RlcCkpOwotICAgIHNvdXJjZS5hcHBlbmQoIik7IFxuIH0pOyBcbiIpOwor
ICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIpOyBcbiB9KTsgXG4iKTsKICAgICBzb3VyY2UuYXBw
ZW5kKHRpbWVDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5
SnMpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3NjcmlwdD5cbiIpOwotICAgIHNvdXJjZS5hcHBl
bmQoIjwvYm9keT4gPC9odG1sPlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvc2Ny
aXB0PlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvYm9keT4gPC9odG1sPlxuIik7
CiAgICAgbV9zb3VyY2UgPSBzb3VyY2UudG9TdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENs
aWVudC5jcHAKaW5kZXggMTM4YTY3MTguLjE5OGIyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50
LmNwcApAQCAtNjYsNjQgKzY2LDY0IEBAIHZvaWQgU2VsZWN0UG9wdXBDbGllbnQ6OmdlbmVyYXRl
SFRNTChib29sIG11bHRpcGxlLCBpbnQgc2l6ZSwgY29uc3QgU2NvcGVBcnJheTxCCiAgICAgY29u
c3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzKQogewogICAgIFN0cmluZ0J1aWxkZXIg
c291cmNlOwotICAgIHNvdXJjZS5hcHBlbmQoIjxzdHlsZT5cbiIpOworICAgIHNvdXJjZS5hcHBl
bmRMaXRlcmFsKCI8c3R5bGU+XG4iKTsKICAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgogICAgIHNv
dXJjZS5hcHBlbmQocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVv
Zihwb3B1cENvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zdHls
ZT5cbjxzdHlsZT4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT5cbjxzdHls
ZT4iKTsKICAgICBzb3VyY2UuYXBwZW5kKHNlbGVjdENvbnRyb2xCbGFja0JlcnJ5Q3NzLAogICAg
ICAgICAgICAgc2l6ZW9mKHNlbGVjdENvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7Ci0gICAgc291cmNl
LmFwcGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8
c2NyaXB0PlxuIik7Ci0gICAgc291cmNlLmFwcGVuZCgid2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvc3R5
bGU+PC9oZWFkPjxib2R5PlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjxzY3JpcHQ+
XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CiAgICAgaWYgKG1fbXVsdGlwbGUpCi0gICAgICAgIHNv
dXJjZS5hcHBlbmQoIndpbmRvdy5zZWxlY3Quc2hvdyh0cnVlLCAiKTsKKyAgICAgICAgc291cmNl
LmFwcGVuZExpdGVyYWwoIndpbmRvdy5zZWxlY3Quc2hvdyh0cnVlLCAiKTsKICAgICBlbHNlCi0g
ICAgICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5zZWxlY3Quc2hvdyhmYWxzZSwgIik7CisgICAg
ICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ3aW5kb3cuc2VsZWN0LnNob3coZmFsc2UsICIpOwog
ICAgIC8vIEFkZCBsYWJlbHMuCi0gICAgc291cmNlLmFwcGVuZCgiWyIpOworICAgIHNvdXJjZS5h
cHBlbmQoJ1snKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAg
ICBzb3VyY2UuYXBwZW5kKCInIiArIFN0cmluZyhsYWJlbHNbaV0uaW1wbCgpKS5yZXBsYWNlKCdc
XCcsICJcXFxcIikucmVwbGFjZSgnXCcnLCAiXFwnIikgKyAiJyIpOwogICAgICAgICAvLyBEb24n
dCBhcHBlbmQgJywnIHRvIGxhc3QgZWxlbWVudC4KICAgICAgICAgaWYgKGkgIT0gc2l6ZSAtIDEp
Ci0gICAgICAgICAgICBzb3VyY2UuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIiwgIik7CiAgICAgfQotICAgIHNvdXJjZS5hcHBlbmQoIl0sICIpOworICAg
IHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJdLCAiKTsKICAgICAvLyBBZGQgZW5hYmxlcy4KLSAgICBz
b3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwogICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5hcHBlbmQoZW5hYmxlZHNb
aV0/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbChlbmFi
bGVkc1tpXT8gInRydWUiIDogImZhbHNlIik7CiAgICAgICAgIC8vIERvbid0IGFwcGVuZCAnLCcg
dG8gbGFzdCBlbGVtZW50LgogICAgICAgICBpZiAoaSAhPSBzaXplIC0gMSkKLSAgICAgICAgICAg
IHNvdXJjZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKICAgICB9Ci0gICAgc291cmNlLmFwcGVuZCgiXSwgIik7CisgICAgc291cmNlLmFwcGVu
ZExpdGVyYWwoIl0sICIpOwogICAgIC8vIEFkZCBpdGVtVHlwZS4KLSAgICBzb3VyY2UuYXBwZW5k
KCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
c2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nOjpudW1iZXIoaXRlbVR5
cGVbaV0pKTsKKyAgICAgICAgc291cmNlLmFwcGVuZE51bWJlcihpdGVtVHlwZVtpXSk7CiAgICAg
ICAgIC8vIERvbid0IGFwcGVuZCAnLCcgdG8gbGFzdCBlbGVtZW50LgogICAgICAgICBpZiAoaSAh
PSBzaXplIC0gMSkKLSAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAg
ICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICB9Ci0gICAgc291cmNlLmFwcGVuZCgi
XSwgIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIl0sICIpOwogICAgIC8vIEFkZCBzZWxl
Y3RlZHMKLSAgICBzb3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5hcHBl
bmQoc2VsZWN0ZWRzW2ldPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICAgICAgc291cmNlLmFwcGVu
ZExpdGVyYWwoc2VsZWN0ZWRzW2ldPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICAgICAgLy8gRG9u
J3QgYXBwZW5kICcsJyB0byBsYXN0IGVsZW1lbnQuCiAgICAgICAgIGlmIChpICE9IHNpemUgLSAx
KQotICAgICAgICAgICAgc291cmNlLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHNvdXJjZS5h
cHBlbmRMaXRlcmFsKCIsICIpOwogICAgIH0KLSAgICBzb3VyY2UuYXBwZW5kKCJdICIpOwotICAg
IHNvdXJjZS5hcHBlbmQoIiwgJ0NhbmNlbCciKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgi
XSAiKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiLCAnQ2FuY2VsJyIpOwogICAgIC8vIElm
IG11bHRpLXNlbGVjdCwgYWRkIE9LIGJ1dHRvbiBmb3IgY29uZmlybS4KICAgICBpZiAobV9tdWx0
aXBsZSkKLSAgICAgICAgc291cmNlLmFwcGVuZCgiLCAnT0snIik7Ci0gICAgc291cmNlLmFwcGVu
ZCgiKTsgXG4gfSk7IFxuIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIsICdPSyci
KTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiKTsgXG4gfSk7IFxuIik7CiAgICAgc291cmNl
LmFwcGVuZChzZWxlY3RDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2Yoc2VsZWN0Q29udHJvbEJs
YWNrQmVycnlKcykpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvc2NyaXB0PlxuIik7Ci0gICAgc291
cmNlLmFwcGVuZCgiPC9ib2R5PiA8L2h0bWw+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJh
bCgiPC9zY3JpcHQ+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9ib2R5PiA8L2h0
bWw+XG4iKTsKICAgICBtX3NvdXJjZSA9IHNvdXJjZS50b1N0cmluZygpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggMjFkMGExMC4uMzE0MmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEy
LTA5LTEwICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAg
ICBEZXBsb3kgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgaW4gbW9yZSBwbGFjZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYzNDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKCkgaW5zdGVhZCBvZiBTdHJpbmc6Om51bWJlcigpLiBBbHNvIGRl
cGxveSAKKyAgICAgICAgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCgpIGluc3RlYWQgb2Yg
U3RyaW5nOjphcHBuZWQoKSBpbiB0aGUgc3Vycm91bmRpbmcgY29kZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2Ft
cGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpzZW5kSFRUUFJlc3BvbnNlSGVh
ZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3F0L1dlYkluc3BlY3Rv
clNlcnZlclF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yU2VydmVyOjppbnNw
ZWN0b3JVcmxGb3JQYWdlSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JTZXJ2ZXI6
OmJ1aWxkUGFnZUxpc3QpOgorCiAyMDEyLTA5LTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7IHJvbGxpbmcgb3V0IHIxMjgwODEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXggNmY3Nzg0My4uODY4
ZTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAt
MTc3LDcgKzE3Nyw3IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9y
eVVzYWdlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgZmlsZSkKICAgICAgICAgc3RhdFN0cmlu
Zy5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZW1v
cnlTdGF0cy52YWx1ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIHN0YXRTdHJpbmcuYXBw
ZW5kKHNlcGFyYXRvcik7Ci0gICAgICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChTdHJpbmc6Om51
bWJlcihtZW1vcnlTdGF0cy52YWx1ZXNbaV0pKTsKKyAgICAgICAgICAgIHN0YXRTdHJpbmcuYXBw
ZW5kTnVtYmVyKG1lbW9yeVN0YXRzLnZhbHVlc1tpXSk7CiAgICAgICAgIH0KICAgICB9CiAgICAg
c3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uLmNwcAppbmRleCA1NzIwNmViLi5hYmM4MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29j
a2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTk5LDE4ICs5OSwxOSBAQCB2b2lkIFdlYlNvY2tl
dFNlcnZlckNvbm5lY3Rpb246OnNlbmRXZWJTb2NrZXRNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6c2VuZEhUVFBSZXNwb25zZUhl
YWRlcihpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3RyaW5nJiBzdGF0dXNUZXh0LCBjb25zdCBIVFRQ
SGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKCJIVFRQLzEuMSAiKTsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6Om51bWJlcihzdGF0dXNDb2RlKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiAiKTsKKyAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIkhUVFAvMS4xICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHN0YXR1c0NvZGUpOworICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5h
cHBlbmQoc3RhdHVzVGV4dCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIlxyXG4iKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBoZWFkZXJGaWVsZHMuZW5kKCk7CiAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckZpZWxkcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXQtPmZpcnN0KTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoIjogIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0LT5zZWNvbmQgKyAiXHJcbiIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGl0LT5zZWNvbmQpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4i
KTsKICAgICB9Ci0gICAgYnVpbGRlci5hcHBlbmQoIlxyXG4iKTsKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxyXG4iKTsKIAogICAgIENTdHJpbmcgaGVhZGVyID0gYnVpbGRlci50b1N0cmlu
ZygpLmxhdGluMSgpOwogICAgIG1fc29ja2V0LT5zZW5kKGhlYWRlci5kYXRhKCksIGhlYWRlci5s
ZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9y
U2VydmVyL3F0L1dlYkluc3BlY3RvclNlcnZlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3BwCmluZGV4IGMx
M2ZhNGMuLjE4ODI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3Bw
CkBAIC02OCwzNCArNjgsMzYgQEAgU3RyaW5nIFdlYkluc3BlY3RvclNlcnZlcjo6aW5zcGVjdG9y
VXJsRm9yUGFnZUlEKGludCBwYWdlSWQpCiAgICAgaWYgKHBhZ2VJZCA8PSAwIHx8IHNlcnZlclN0
YXRlKCkgPT0gQ2xvc2VkKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJodHRwOi8vIik7CisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJodHRwOi8vIik7CiAgICAgYnVpbGRlci5hcHBlbmQoYmluZEFkZHJl
c3MoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIjoiKTsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6Om51bWJlcihwb3J0KCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnOicpOworICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQocmVtb3RlSW5zcGVj
dG9yUGFnZVBhdGgoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIocGFnZUlk
KSk7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocGFnZUlkKTsKICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclNlcnZlcjo6YnVpbGRQYWdlTGlz
dChWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbICIpOworICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiWyAiKTsKICAgICBDbGllbnRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fY2xp
ZW50TWFwLmVuZCgpOwogICAgIGZvciAoQ2xpZW50TWFwOjppdGVyYXRvciBpdCA9IG1fY2xpZW50
TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBXZWJQYWdlUHJveHkqIHdl
YlBhZ2UgPSBpdC0+c2Vjb25kLT5wYWdlKCk7CiAgICAgICAgIGlmIChpdCAhPSBtX2NsaWVudE1h
cC5iZWdpbigpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJ7IFwiaWRcIjogIiArIFN0cmluZzo6bnVtYmVyKGl0LT5maXJzdCkpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCBcInRpdGxlXCI6IFwiIik7CisgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgieyBcImlkXCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+Zmlyc3Qp
OworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0aXRsZVwiOiBcIiIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlVGl0bGUoKSk7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJcIiwgXCJ1cmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJcIiwgXCJ1cmxcIjogXCIiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQod2ViUGFnZS0+
YWN0aXZlVVJMKCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiXCIsIFwiaW5zcGVjdG9yVXJs
XCI6IFwiIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHJlbW90ZUluc3BlY3RvclBhZ2VQYXRo
KCkgKyBTdHJpbmc6Om51bWJlcihpdC0+Zmlyc3QpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
IlwiIH0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJpbnNwZWN0b3JV
cmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocmVtb3RlSW5zcGVjdG9yUGFnZVBh
dGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5maXJzdCk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIpOwogICAgIH0KLSAgICBidWlsZGVyLmFwcGVu
ZCgiIF0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBdIik7CiAgICAgQ1N0cmluZyBj
c3RyID0gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKICAgICBkYXRhLmFwcGVuZChjc3RyLmRh
dGEoKSwgY3N0ci5sZW5ndGgoKSk7CiAgICAgY29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNv
bjsgY2hhcnNldD11dGYtOCI7Cg==
</data>
<flag name="commit-queue"
          id="174651"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163271</attachid>
            <date>2012-09-10 21:03:07 -0700</date>
            <delta_ts>2012-09-10 21:36:02 -0700</delta_ts>
            <desc>patch. fix build error.</desc>
            <filename>appendNumber.patch</filename>
            <type>text/plain</type>
            <size>18145</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMjljOTgxLi5lODA5MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbiBtb3JlIHBs
YWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBT
dHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbnN0ZWFkIG9mIFN0cmluZzo6bnVtYmVyKCku
IEFsc28gZGVwbG95IAorICAgICAgICBTdHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKCkgaW5z
dGVhZCBvZiBTdHJpbmc6OmFwcG5lZCgpIGluIHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAg
ICAgICogY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
QXNwZWN0UmF0aW9WYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uUGF0aFByb2Nlc3Nvci5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BvaW50TGlzdDo6dmFsdWVBc1N0cmluZyk6CisKIDIwMTItMDktMTAgIE9qYW4g
VmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW5hbWUgYm94LXNpemluZyBh
cHBseWluZyBtZXRob2RzIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQganVzdCBhcHBseWluZyBib3gt
c2l6aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCmluZGV4
IDE1MjkyYmUuLjNhZjljNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQXNwZWN0UmF0aW9W
YWx1ZS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgU3RyaW5nIENTU0FzcGVjdFJhdGlvVmFsdWU6OmN1
c3RvbUNzc1RleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJl
c3VsdC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobV9udW1lcmF0b3JWYWx1ZSkpOwotICAgIHJlc3Vs
dC5hcHBlbmQoIi8iKTsKKyAgICByZXN1bHQuYXBwZW5kKCcvJyk7CiAgICAgcmVzdWx0LmFwcGVu
ZChTdHJpbmc6Om51bWJlcihtX2Rlbm9taW5hdG9yVmFsdWUpKTsKICAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBjNDBiYTQzLi45OWM3ZWZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
QEAgLTI4OTcsMTQgKzI4OTcsMTQgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkcKICAgICAgICAg
ICAgIGluZm8ubmFtZSA9IGluZm8ubmFtZS5sZWZ0KGluZm8ubmFtZS5sZW5ndGgoKSAtIDMpOwog
ICAgICAgICAvLyBJZiBpdCdzIGFuIGFycmF5LCB3ZSBuZWVkIHRvIGl0ZXJhdGUgdGhyb3VnaCBl
YWNoIGVsZW1lbnQsIGFwcGVuZGluZyAiW2luZGV4XSIgdG8gdGhlIG5hbWUuCiAgICAgICAgIGZv
ciAoR0MzRGludCBpbmRleCA9IDA7IGluZGV4IDwgaW5mby5zaXplOyArK2luZGV4KSB7Ci0gICAg
ICAgICAgICBTdHJpbmcgbmFtZSA9IGluZm8ubmFtZTsKKyAgICAgICAgICAgIFN0cmluZ0J1aWxk
ZXIgbmFtZSA9IGluZm8ubmFtZTsKICAgICAgICAgICAgIGlmIChpbmZvLnNpemUgPiAxICYmIGlu
ZGV4ID49IDEpIHsKICAgICAgICAgICAgICAgICBuYW1lLmFwcGVuZCgnWycpOwotICAgICAgICAg
ICAgICAgIG5hbWUuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGluZGV4KSk7CisgICAgICAgICAgICAg
ICAgbmFtZS5hcHBlbmROdW1iZXIoaW5kZXgpOwogICAgICAgICAgICAgICAgIG5hbWUuYXBwZW5k
KCddJyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBOb3cgbmVlZCB0byBsb29rIHRo
aXMgdXAgYnkgbmFtZSBhZ2FpbiB0byBmaW5kIGl0cyBsb2NhdGlvbgotICAgICAgICAgICAgR0Mz
RGludCBsb2MgPSBtX2NvbnRleHQtPmdldFVuaWZvcm1Mb2NhdGlvbihvYmplY3RPclplcm8ocHJv
Z3JhbSksIG5hbWUpOworICAgICAgICAgICAgR0MzRGludCBsb2MgPSBtX2NvbnRleHQtPmdldFVu
aWZvcm1Mb2NhdGlvbihvYmplY3RPclplcm8ocHJvZ3JhbSksIG5hbWUudG9TdHJpbmcoKSk7CiAg
ICAgICAgICAgICBpZiAobG9jID09IGxvY2F0aW9uKSB7CiAgICAgICAgICAgICAgICAgLy8gRm91
bmQgaXQuIFVzZSB0aGUgdHlwZSBpbiB0aGUgQWN0aXZlSW5mbyB0byBkZXRlcm1pbmUgdGhlIHJl
dHVybiB0eXBlLgogICAgICAgICAgICAgICAgIEdDM0RlbnVtIGJhc2VUeXBlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublBhdGhQcm9j
ZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlu
blBhdGhQcm9jZXNzb3IuY3BwCmluZGV4IGNiNDMzNmIuLmExZDY2NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5QYXRoUHJvY2Vzc29y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5u
UGF0aFByb2Nlc3Nvci5jcHAKQEAgLTY5LDE1ICs2OSwxNSBAQCBuYW1lc3BhY2UgewogU3RyaW5n
IHZhbHVlVG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiBhcmcpCiB7CiAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbRmxvYXRSZWN0IHg9Iik7CisgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJbRmxvYXRSZWN0IHg9Iik7CiAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nOjpudW1iZXIoYXJnLngoKSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCIgeT0iKTsKKyAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiB5PSIpOwogICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmlu
Zzo6bnVtYmVyKGFyZy55KCkpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiIG1heFg9Iik7CisgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgbWF4WD0iKTsKICAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6Om51bWJlcihhcmcubWF4WCgpKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiBtYXhZPSIpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG1heFk9Iik7CiAgICAgYnVpbGRlci5hcHBlbmQo
U3RyaW5nOjpudW1iZXIoYXJnLm1heFkoKSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJdIik7Cisg
ICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCmluZGV4IGJlNDAwOWEuLjJl
MDU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCkBAIC0zNiw3ICszNiw3IEBA
IFN0cmluZyBTVkdQb2ludExpc3Q6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAgIHVuc2lnbmVk
IHNpemUgPSB0aGlzLT5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7
ICsraSkgewogICAgICAgICBpZiAoaSA+IDApCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgi
ICIpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CisgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBj
b21tYXMgdG8gc2VwZXJhdGU/CiAKICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQgPSBh
dChpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIocG9pbnQueCgpKSAr
ICcgJyArIFN0cmluZzo6bnVtYmVyKHBvaW50LnkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKaW5kZXggZjkzZTExYS4uZWExY2NhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8amlud29vNy5z
b25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyOjphcHBlbmRO
dW1iZXIoKSBpbiBtb3JlIHBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NjM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbnN0ZWFkIG9m
IFN0cmluZzo6bnVtYmVyKCkuIEFsc28gZGVwbG95IAorICAgICAgICBTdHJpbmdCdWlsZGVyOjph
cHBlbmRMaXRlcmFsKCkgaW5zdGVhZCBvZiBTdHJpbmc6OmFwcG5lZCgpIGluIHRoZSBzdXJyb3Vu
ZGluZyBjb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpnZW5lcmF0ZUhUTUwpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50OjpnZW5lcmF0ZUhUTUwpOgorCiAyMDEyLTA5LTEw
ICBHZW5ldmlldmUgTWFrICA8Z21ha0ByaW0uY29tPgogCiAgICAgICAgIENoYW5nZSAtZGF0YS1i
bGFja2JlcnJ5LXdlYndvcmtzLWNvbnRleHQgdG8gLWRhdGEtd2Vid29ya3MtY29udGV4dApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNr
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Rh
dGVQaWNrZXJDbGllbnQuY3BwCmluZGV4IDkzZjdmZGEuLjIzYzBiZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tl
ckNsaWVudC5jcHAKQEAgLTUwLDI4ICs1MCwyOCBAQCBEYXRlUGlja2VyQ2xpZW50Ojp+RGF0ZVBp
Y2tlckNsaWVudCgpCiB2b2lkIERhdGVQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTChCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlucHV0VHlwZSB0eXBlLCBjb25zdCBCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
U3RyaW5nJiBtaW4sIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBtYXgsIGRv
dWJsZSBzdGVwKQogewogICAgIFN0cmluZ0J1aWxkZXIgc291cmNlOwotICAgIHNvdXJjZS5hcHBl
bmQoIjxzdHlsZT5cbiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCI8c3R5bGU+XG4iKTsK
ICAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgogICAgIHNvdXJjZS5hcHBlbmQocG9wdXBDb250cm9s
QmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVvZihwb3B1cENvbnRyb2xCbGFja0JlcnJ5
Q3NzKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT5cbjxzdHlsZT4iKTsKKyAgICBzb3Vy
Y2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT5cbjxzdHlsZT4iKTsKICAgICBzb3VyY2UuYXBwZW5k
KHRpbWVDb250cm9sQmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVvZih0aW1lQ29udHJv
bEJsYWNrQmVycnlDc3MpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3N0eWxlPjwvaGVhZD48Ym9k
eT5cbiIpOwotICAgIHNvdXJjZS5hcHBlbmQoIjxzY3JpcHQ+XG4iKTsKLSAgICBzb3VyY2UuYXBw
ZW5kKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsiKTsKKyAg
ICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKKyAgICBz
b3VyY2UuYXBwZW5kTGl0ZXJhbCgiPHNjcmlwdD5cbiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRl
cmFsKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsiKTsKICAg
ICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5
cGVEYXRlOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3co
XCJEYXRlXCIsICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LnBvcHVw
Y29udHJvbC5zaG93KFwiRGF0ZVwiLCAiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlVGltZToKLSAgICAgICAgc291cmNlLmFwcGVuZCgi
d2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiVGltZVwiLCAiKTsKKyAgICAgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIlRpbWVcIiwgIik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OklucHV0VHlwZURhdGVU
aW1lOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJE
YXRlVGltZVwiLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndpbmRvdy5wb3B1
cGNvbnRyb2wuc2hvdyhcIkRhdGVUaW1lXCIsICIpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsOgotICAgICAgICBz
b3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlVGltZUxvY2FsXCIs
ICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LnBvcHVwY29udHJvbC5z
aG93KFwiRGF0ZVRpbWVMb2NhbFwiLCAiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlTW9udGg6CiAgICAgY2FzZSBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6SW5wdXRUeXBlV2VlazoKQEAgLTgxLDIxICs4MSwyMSBAQCB2b2lkIERhdGVQaWNr
ZXJDbGllbnQ6OmdlbmVyYXRlSFRNTChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlu
cHV0VHlwZSB0eQogICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICBzb3VyY2UuYXBw
ZW5kKCJcIiIgKyBTdHJpbmcodmFsdWUuaW1wbCgpKSArICJcIiwgIik7CiAgICAgZWxzZQotICAg
ICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwo
IjAsICIpOwogCiAgICAgaWYgKCFtaW4uaXNFbXB0eSgpKQogICAgICAgICBzb3VyY2UuYXBwZW5k
KFN0cmluZyhtaW4uaW1wbCgpKSArICIsICIpOwogICAgIGVsc2UKLSAgICAgICAgc291cmNlLmFw
cGVuZCgiMCwgIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIwLCAiKTsKICAgICBp
ZiAoIW1heC5pc0VtcHR5KCkpCiAgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nKG1heC5pbXBs
KCkpICsgIiwgIik7CiAgICAgZWxzZQotICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAg
ICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjAsICIpOwogICAgIHNvdXJjZS5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIoc3RlcCkpOwotICAgIHNvdXJjZS5hcHBlbmQoIik7IFxuIH0pOyBcbiIpOwor
ICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIpOyBcbiB9KTsgXG4iKTsKICAgICBzb3VyY2UuYXBw
ZW5kKHRpbWVDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5
SnMpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3NjcmlwdD5cbiIpOwotICAgIHNvdXJjZS5hcHBl
bmQoIjwvYm9keT4gPC9odG1sPlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvc2Ny
aXB0PlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvYm9keT4gPC9odG1sPlxuIik7
CiAgICAgbV9zb3VyY2UgPSBzb3VyY2UudG9TdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENs
aWVudC5jcHAKaW5kZXggMTM4YTY3MTguLjE5OGIyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50
LmNwcApAQCAtNjYsNjQgKzY2LDY0IEBAIHZvaWQgU2VsZWN0UG9wdXBDbGllbnQ6OmdlbmVyYXRl
SFRNTChib29sIG11bHRpcGxlLCBpbnQgc2l6ZSwgY29uc3QgU2NvcGVBcnJheTxCCiAgICAgY29u
c3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzKQogewogICAgIFN0cmluZ0J1aWxkZXIg
c291cmNlOwotICAgIHNvdXJjZS5hcHBlbmQoIjxzdHlsZT5cbiIpOworICAgIHNvdXJjZS5hcHBl
bmRMaXRlcmFsKCI8c3R5bGU+XG4iKTsKICAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgogICAgIHNv
dXJjZS5hcHBlbmQocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVv
Zihwb3B1cENvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zdHls
ZT5cbjxzdHlsZT4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT5cbjxzdHls
ZT4iKTsKICAgICBzb3VyY2UuYXBwZW5kKHNlbGVjdENvbnRyb2xCbGFja0JlcnJ5Q3NzLAogICAg
ICAgICAgICAgc2l6ZW9mKHNlbGVjdENvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7Ci0gICAgc291cmNl
LmFwcGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8
c2NyaXB0PlxuIik7Ci0gICAgc291cmNlLmFwcGVuZCgid2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvc3R5
bGU+PC9oZWFkPjxib2R5PlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjxzY3JpcHQ+
XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CiAgICAgaWYgKG1fbXVsdGlwbGUpCi0gICAgICAgIHNv
dXJjZS5hcHBlbmQoIndpbmRvdy5zZWxlY3Quc2hvdyh0cnVlLCAiKTsKKyAgICAgICAgc291cmNl
LmFwcGVuZExpdGVyYWwoIndpbmRvdy5zZWxlY3Quc2hvdyh0cnVlLCAiKTsKICAgICBlbHNlCi0g
ICAgICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5zZWxlY3Quc2hvdyhmYWxzZSwgIik7CisgICAg
ICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ3aW5kb3cuc2VsZWN0LnNob3coZmFsc2UsICIpOwog
ICAgIC8vIEFkZCBsYWJlbHMuCi0gICAgc291cmNlLmFwcGVuZCgiWyIpOworICAgIHNvdXJjZS5h
cHBlbmQoJ1snKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAg
ICBzb3VyY2UuYXBwZW5kKCInIiArIFN0cmluZyhsYWJlbHNbaV0uaW1wbCgpKS5yZXBsYWNlKCdc
XCcsICJcXFxcIikucmVwbGFjZSgnXCcnLCAiXFwnIikgKyAiJyIpOwogICAgICAgICAvLyBEb24n
dCBhcHBlbmQgJywnIHRvIGxhc3QgZWxlbWVudC4KICAgICAgICAgaWYgKGkgIT0gc2l6ZSAtIDEp
Ci0gICAgICAgICAgICBzb3VyY2UuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIiwgIik7CiAgICAgfQotICAgIHNvdXJjZS5hcHBlbmQoIl0sICIpOworICAg
IHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJdLCAiKTsKICAgICAvLyBBZGQgZW5hYmxlcy4KLSAgICBz
b3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwogICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5hcHBlbmQoZW5hYmxlZHNb
aV0/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbChlbmFi
bGVkc1tpXT8gInRydWUiIDogImZhbHNlIik7CiAgICAgICAgIC8vIERvbid0IGFwcGVuZCAnLCcg
dG8gbGFzdCBlbGVtZW50LgogICAgICAgICBpZiAoaSAhPSBzaXplIC0gMSkKLSAgICAgICAgICAg
IHNvdXJjZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKICAgICB9Ci0gICAgc291cmNlLmFwcGVuZCgiXSwgIik7CisgICAgc291cmNlLmFwcGVu
ZExpdGVyYWwoIl0sICIpOwogICAgIC8vIEFkZCBpdGVtVHlwZS4KLSAgICBzb3VyY2UuYXBwZW5k
KCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
c2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nOjpudW1iZXIoaXRlbVR5
cGVbaV0pKTsKKyAgICAgICAgc291cmNlLmFwcGVuZE51bWJlcihpdGVtVHlwZVtpXSk7CiAgICAg
ICAgIC8vIERvbid0IGFwcGVuZCAnLCcgdG8gbGFzdCBlbGVtZW50LgogICAgICAgICBpZiAoaSAh
PSBzaXplIC0gMSkKLSAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAg
ICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICB9Ci0gICAgc291cmNlLmFwcGVuZCgi
XSwgIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIl0sICIpOwogICAgIC8vIEFkZCBzZWxl
Y3RlZHMKLSAgICBzb3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5hcHBl
bmQoc2VsZWN0ZWRzW2ldPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICAgICAgc291cmNlLmFwcGVu
ZExpdGVyYWwoc2VsZWN0ZWRzW2ldPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICAgICAgLy8gRG9u
J3QgYXBwZW5kICcsJyB0byBsYXN0IGVsZW1lbnQuCiAgICAgICAgIGlmIChpICE9IHNpemUgLSAx
KQotICAgICAgICAgICAgc291cmNlLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHNvdXJjZS5h
cHBlbmRMaXRlcmFsKCIsICIpOwogICAgIH0KLSAgICBzb3VyY2UuYXBwZW5kKCJdICIpOwotICAg
IHNvdXJjZS5hcHBlbmQoIiwgJ0NhbmNlbCciKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgi
XSAiKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiLCAnQ2FuY2VsJyIpOwogICAgIC8vIElm
IG11bHRpLXNlbGVjdCwgYWRkIE9LIGJ1dHRvbiBmb3IgY29uZmlybS4KICAgICBpZiAobV9tdWx0
aXBsZSkKLSAgICAgICAgc291cmNlLmFwcGVuZCgiLCAnT0snIik7Ci0gICAgc291cmNlLmFwcGVu
ZCgiKTsgXG4gfSk7IFxuIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIsICdPSyci
KTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiKTsgXG4gfSk7IFxuIik7CiAgICAgc291cmNl
LmFwcGVuZChzZWxlY3RDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2Yoc2VsZWN0Q29udHJvbEJs
YWNrQmVycnlKcykpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvc2NyaXB0PlxuIik7Ci0gICAgc291
cmNlLmFwcGVuZCgiPC9ib2R5PiA8L2h0bWw+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJh
bCgiPC9zY3JpcHQ+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9ib2R5PiA8L2h0
bWw+XG4iKTsKICAgICBtX3NvdXJjZSA9IHNvdXJjZS50b1N0cmluZygpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggMjFkMGExMC4uMzE0MmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEy
LTA5LTEwICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAg
ICBEZXBsb3kgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgaW4gbW9yZSBwbGFjZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYzNDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKCkgaW5zdGVhZCBvZiBTdHJpbmc6Om51bWJlcigpLiBBbHNvIGRl
cGxveSAKKyAgICAgICAgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCgpIGluc3RlYWQgb2Yg
U3RyaW5nOjphcHBuZWQoKSBpbiB0aGUgc3Vycm91bmRpbmcgY29kZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2Ft
cGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpzZW5kSFRUUFJlc3BvbnNlSGVh
ZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3F0L1dlYkluc3BlY3Rv
clNlcnZlclF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yU2VydmVyOjppbnNw
ZWN0b3JVcmxGb3JQYWdlSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JTZXJ2ZXI6
OmJ1aWxkUGFnZUxpc3QpOgorCiAyMDEyLTA5LTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7IHJvbGxpbmcgb3V0IHIxMjgwODEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5kZXggNmY3Nzg0My4uODY4
ZTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAt
MTc3LDcgKzE3Nyw3IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9y
eVVzYWdlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgZmlsZSkKICAgICAgICAgc3RhdFN0cmlu
Zy5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZW1v
cnlTdGF0cy52YWx1ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIHN0YXRTdHJpbmcuYXBw
ZW5kKHNlcGFyYXRvcik7Ci0gICAgICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChTdHJpbmc6Om51
bWJlcihtZW1vcnlTdGF0cy52YWx1ZXNbaV0pKTsKKyAgICAgICAgICAgIHN0YXRTdHJpbmcuYXBw
ZW5kTnVtYmVyKG1lbW9yeVN0YXRzLnZhbHVlc1tpXSk7CiAgICAgICAgIH0KICAgICB9CiAgICAg
c3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uLmNwcAppbmRleCA1NzIwNmViLi5hYmM4MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29j
a2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTk5LDE4ICs5OSwxOSBAQCB2b2lkIFdlYlNvY2tl
dFNlcnZlckNvbm5lY3Rpb246OnNlbmRXZWJTb2NrZXRNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6c2VuZEhUVFBSZXNwb25zZUhl
YWRlcihpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3RyaW5nJiBzdGF0dXNUZXh0LCBjb25zdCBIVFRQ
SGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKCJIVFRQLzEuMSAiKTsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6Om51bWJlcihzdGF0dXNDb2RlKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiAiKTsKKyAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIkhUVFAvMS4xICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHN0YXR1c0NvZGUpOworICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5h
cHBlbmQoc3RhdHVzVGV4dCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIlxyXG4iKTsKKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKICAgICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBoZWFkZXJGaWVsZHMuZW5kKCk7CiAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckZpZWxkcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXQtPmZpcnN0KTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQoIjogIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0LT5zZWNvbmQgKyAiXHJcbiIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGl0LT5zZWNvbmQpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4i
KTsKICAgICB9Ci0gICAgYnVpbGRlci5hcHBlbmQoIlxyXG4iKTsKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxyXG4iKTsKIAogICAgIENTdHJpbmcgaGVhZGVyID0gYnVpbGRlci50b1N0cmlu
ZygpLmxhdGluMSgpOwogICAgIG1fc29ja2V0LT5zZW5kKGhlYWRlci5kYXRhKCksIGhlYWRlci5s
ZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9y
U2VydmVyL3F0L1dlYkluc3BlY3RvclNlcnZlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3BwCmluZGV4IGMx
M2ZhNGMuLjE4ODI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3Bw
CkBAIC02OCwzNCArNjgsMzYgQEAgU3RyaW5nIFdlYkluc3BlY3RvclNlcnZlcjo6aW5zcGVjdG9y
VXJsRm9yUGFnZUlEKGludCBwYWdlSWQpCiAgICAgaWYgKHBhZ2VJZCA8PSAwIHx8IHNlcnZlclN0
YXRlKCkgPT0gQ2xvc2VkKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJodHRwOi8vIik7CisgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJodHRwOi8vIik7CiAgICAgYnVpbGRlci5hcHBlbmQoYmluZEFkZHJl
c3MoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIjoiKTsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJp
bmc6Om51bWJlcihwb3J0KCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnOicpOworICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CiAgICAgYnVpbGRlci5hcHBlbmQocmVtb3RlSW5zcGVj
dG9yUGFnZVBhdGgoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIocGFnZUlk
KSk7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocGFnZUlkKTsKICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclNlcnZlcjo6YnVpbGRQYWdlTGlz
dChWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbICIpOworICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiWyAiKTsKICAgICBDbGllbnRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fY2xp
ZW50TWFwLmVuZCgpOwogICAgIGZvciAoQ2xpZW50TWFwOjppdGVyYXRvciBpdCA9IG1fY2xpZW50
TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBXZWJQYWdlUHJveHkqIHdl
YlBhZ2UgPSBpdC0+c2Vjb25kLT5wYWdlKCk7CiAgICAgICAgIGlmIChpdCAhPSBtX2NsaWVudE1h
cC5iZWdpbigpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7Ci0gICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCJ7IFwiaWRcIjogIiArIFN0cmluZzo6bnVtYmVyKGl0LT5maXJzdCkpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCBcInRpdGxlXCI6IFwiIik7CisgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgieyBcImlkXCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+Zmlyc3Qp
OworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0aXRsZVwiOiBcIiIpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlVGl0bGUoKSk7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCJcIiwgXCJ1cmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJcIiwgXCJ1cmxcIjogXCIiKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQod2ViUGFnZS0+
YWN0aXZlVVJMKCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiXCIsIFwiaW5zcGVjdG9yVXJs
XCI6IFwiIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHJlbW90ZUluc3BlY3RvclBhZ2VQYXRo
KCkgKyBTdHJpbmc6Om51bWJlcihpdC0+Zmlyc3QpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
IlwiIH0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJpbnNwZWN0b3JV
cmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocmVtb3RlSW5zcGVjdG9yUGFnZVBh
dGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5maXJzdCk7CisgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIpOwogICAgIH0KLSAgICBidWlsZGVyLmFwcGVu
ZCgiIF0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBdIik7CiAgICAgQ1N0cmluZyBj
c3RyID0gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKICAgICBkYXRhLmFwcGVuZChjc3RyLmRh
dGEoKSwgY3N0ci5sZW5ndGgoKSk7CiAgICAgY29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNv
bjsgY2hhcnNldD11dGYtOCI7Cg==
</data>
<flag name="commit-queue"
          id="174652"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163275</attachid>
            <date>2012-09-10 21:36:02 -0700</date>
            <delta_ts>2012-09-10 22:32:15 -0700</delta_ts>
            <desc>patch. fix build error.</desc>
            <filename>appendNumber.patch</filename>
            <type>text/plain</type>
            <size>16678</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMjljOTgxLi40ZmYwZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbiBtb3JlIHBs
YWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBT
dHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbnN0ZWFkIG9mIFN0cmluZzo6bnVtYmVyKCku
IEFsc28gZGVwbG95IAorICAgICAgICBTdHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKCkgaW5z
dGVhZCBvZiBTdHJpbmc6OmFwcG5lZCgpIGluIHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAg
ICAgICogY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
QXNwZWN0UmF0aW9WYWx1ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0xvb3BCbGlublBhdGhQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
b2ludExpc3Q6OnZhbHVlQXNTdHJpbmcpOgorCiAyMDEyLTA5LTEwICBPamFuIFZhZmFpICA8b2ph
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVuYW1lIGJveC1zaXppbmcgYXBwbHlpbmcgbWV0
aG9kcyB0byBiZSBtb3JlIGNsZWFyIGFib3V0IGp1c3QgYXBwbHlpbmcgYm94LXNpemluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcAppbmRleCAxNTI5MmJlLi4z
YWY5YzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQXNwZWN0UmF0aW9WYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCkBA
IC0zOCw3ICszOCw3IEBAIFN0cmluZyBDU1NBc3BlY3RSYXRpb1ZhbHVlOjpjdXN0b21Dc3NUZXh0
KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICByZXN1bHQuYXBwZW5k
KFN0cmluZzo6bnVtYmVyKG1fbnVtZXJhdG9yVmFsdWUpKTsKLSAgICByZXN1bHQuYXBwZW5kKCIv
Iik7CisgICAgcmVzdWx0LmFwcGVuZCgnLycpOwogICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nOjpu
dW1iZXIobV9kZW5vbWluYXRvclZhbHVlKSk7CiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xv
b3BCbGlublBhdGhQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0xvb3BCbGlublBhdGhQcm9jZXNzb3IuY3BwCmluZGV4IGNiNDMzNmIuLmExZDY2Nzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxp
bm5QYXRoUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvTG9vcEJsaW5uUGF0aFByb2Nlc3Nvci5jcHAKQEAgLTY5LDE1ICs2OSwxNSBAQCBuYW1l
c3BhY2UgewogU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiBhcmcpCiB7CiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbRmxvYXRSZWN0
IHg9Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbRmxvYXRSZWN0IHg9Iik7CiAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIoYXJnLngoKSkpOwotICAgIGJ1aWxkZXIuYXBw
ZW5kKCIgeT0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiB5PSIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGFyZy55KCkpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgi
IG1heFg9Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgbWF4WD0iKTsKICAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihhcmcubWF4WCgpKSk7Ci0gICAgYnVpbGRlci5hcHBl
bmQoIiBtYXhZPSIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG1heFk9Iik7CiAgICAg
YnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIoYXJnLm1heFkoKSkpOwotICAgIGJ1aWxkZXIu
YXBwZW5kKCJdIik7CisgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9pbnRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCmlu
ZGV4IGJlNDAwOWEuLjJlMDU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2ludExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCkBA
IC0zNiw3ICszNiw3IEBAIFN0cmluZyBTVkdQb2ludExpc3Q6OnZhbHVlQXNTdHJpbmcoKSBjb25z
dAogICAgIHVuc2lnbmVkIHNpemUgPSB0aGlzLT5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBpZiAoaSA+IDApCi0gICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiICIpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8g
c2VwZXJhdGU/CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOyAvLyBGSVhNRTogU2hv
dWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAKICAgICAgICAgY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQgPSBhdChpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1i
ZXIocG9pbnQueCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKHBvaW50LnkoKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZjkzZTExYS4uZWExY2NhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMTAgIEppbndvbyBT
b25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIERlcGxveSBTdHJpbmdC
dWlsZGVyOjphcHBlbmROdW1iZXIoKSBpbiBtb3JlIHBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM0NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1i
ZXIoKSBpbnN0ZWFkIG9mIFN0cmluZzo6bnVtYmVyKCkuIEFsc28gZGVwbG95IAorICAgICAgICBT
dHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKCkgaW5zdGVhZCBvZiBTdHJpbmc6OmFwcG5lZCgp
IGluIHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0
ZVBpY2tlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50Ojpn
ZW5lcmF0ZUhUTUwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50OjpnZW5lcmF0ZUhUTUwp
OgorCiAyMDEyLTA5LTEwICBHZW5ldmlldmUgTWFrICA8Z21ha0ByaW0uY29tPgogCiAgICAgICAg
IENoYW5nZSAtZGF0YS1ibGFja2JlcnJ5LXdlYndvcmtzLWNvbnRleHQgdG8gLWRhdGEtd2Vid29y
a3MtY29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCmluZGV4IDkzZjdmZGEuLjIzYzBiZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRl
UGlja2VyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAKQEAgLTUwLDI4ICs1MCwyOCBAQCBEYXRlUGlja2Vy
Q2xpZW50Ojp+RGF0ZVBpY2tlckNsaWVudCgpCiB2b2lkIERhdGVQaWNrZXJDbGllbnQ6OmdlbmVy
YXRlSFRNTChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlucHV0VHlwZSB0eXBlLCBj
b25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUsIGNvbnN0IEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViU3RyaW5nJiBtaW4sIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
U3RyaW5nJiBtYXgsIGRvdWJsZSBzdGVwKQogewogICAgIFN0cmluZ0J1aWxkZXIgc291cmNlOwot
ICAgIHNvdXJjZS5hcHBlbmQoIjxzdHlsZT5cbiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFs
KCI8c3R5bGU+XG4iKTsKICAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgogICAgIHNvdXJjZS5hcHBl
bmQocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVvZihwb3B1cENv
bnRyb2xCbGFja0JlcnJ5Q3NzKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT5cbjxzdHls
ZT4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT5cbjxzdHlsZT4iKTsKICAg
ICBzb3VyY2UuYXBwZW5kKHRpbWVDb250cm9sQmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNp
emVvZih0aW1lQ29udHJvbEJsYWNrQmVycnlDc3MpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3N0
eWxlPjwvaGVhZD48Ym9keT5cbiIpOwotICAgIHNvdXJjZS5hcHBlbmQoIjxzY3JpcHQ+XG4iKTsK
LSAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0
aW9uICgpIHsiKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT48L2hlYWQ+PGJv
ZHk+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPHNjcmlwdD5cbiIpOworICAgIHNv
dXJjZS5hcHBlbmRMaXRlcmFsKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0
aW9uICgpIHsiKTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpJbnB1dFR5cGVEYXRlOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9w
dXBjb250cm9sLnNob3coXCJEYXRlXCIsICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJh
bCgid2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiRGF0ZVwiLCAiKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlVGltZToKLSAgICAgICAg
c291cmNlLmFwcGVuZCgid2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiVGltZVwiLCAiKTsKKyAg
ICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIlRp
bWVcIiwgIik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06
OklucHV0VHlwZURhdGVUaW1lOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBj
b250cm9sLnNob3coXCJEYXRlVGltZVwiLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVy
YWwoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIkRhdGVUaW1lXCIsICIpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZUxv
Y2FsOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJE
YXRlVGltZUxvY2FsXCIsICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93
LnBvcHVwY29udHJvbC5zaG93KFwiRGF0ZVRpbWVMb2NhbFwiLCAiKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlTW9udGg6CiAgICAgY2Fz
ZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlV2VlazoKQEAgLTgxLDIxICs4MSwyMSBA
QCB2b2lkIERhdGVQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTChCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6QmxhY2tCZXJyeUlucHV0VHlwZSB0eQogICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAg
ICAgICBzb3VyY2UuYXBwZW5kKCJcIiIgKyBTdHJpbmcodmFsdWUuaW1wbCgpKSArICJcIiwgIik7
CiAgICAgZWxzZQotICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAgICAgICAgc291cmNl
LmFwcGVuZExpdGVyYWwoIjAsICIpOwogCiAgICAgaWYgKCFtaW4uaXNFbXB0eSgpKQogICAgICAg
ICBzb3VyY2UuYXBwZW5kKFN0cmluZyhtaW4uaW1wbCgpKSArICIsICIpOwogICAgIGVsc2UKLSAg
ICAgICAgc291cmNlLmFwcGVuZCgiMCwgIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFs
KCIwLCAiKTsKICAgICBpZiAoIW1heC5pc0VtcHR5KCkpCiAgICAgICAgIHNvdXJjZS5hcHBlbmQo
U3RyaW5nKG1heC5pbXBsKCkpICsgIiwgIik7CiAgICAgZWxzZQotICAgICAgICBzb3VyY2UuYXBw
ZW5kKCIwLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjAsICIpOwogICAgIHNv
dXJjZS5hcHBlbmQoU3RyaW5nOjpudW1iZXIoc3RlcCkpOwotICAgIHNvdXJjZS5hcHBlbmQoIik7
IFxuIH0pOyBcbiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIpOyBcbiB9KTsgXG4iKTsK
ICAgICBzb3VyY2UuYXBwZW5kKHRpbWVDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2YodGltZUNv
bnRyb2xCbGFja0JlcnJ5SnMpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3NjcmlwdD5cbiIpOwot
ICAgIHNvdXJjZS5hcHBlbmQoIjwvYm9keT4gPC9odG1sPlxuIik7CisgICAgc291cmNlLmFwcGVu
ZExpdGVyYWwoIjwvc2NyaXB0PlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvYm9k
eT4gPC9odG1sPlxuIik7CiAgICAgbV9zb3VyY2UgPSBzb3VyY2UudG9TdHJpbmcoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVj
dFBvcHVwQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9TZWxlY3RQb3B1cENsaWVudC5jcHAKaW5kZXggMTM4YTY3MTguLjE5OGIyYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1Nl
bGVjdFBvcHVwQ2xpZW50LmNwcApAQCAtNjYsNjQgKzY2LDY0IEBAIHZvaWQgU2VsZWN0UG9wdXBD
bGllbnQ6OmdlbmVyYXRlSFRNTChib29sIG11bHRpcGxlLCBpbnQgc2l6ZSwgY29uc3QgU2NvcGVB
cnJheTxCCiAgICAgY29uc3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzKQogewogICAg
IFN0cmluZ0J1aWxkZXIgc291cmNlOwotICAgIHNvdXJjZS5hcHBlbmQoIjxzdHlsZT5cbiIpOwor
ICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCI8c3R5bGU+XG4iKTsKICAgICAvLyBJbmNsdWRlIENT
UyBmaWxlLgogICAgIHNvdXJjZS5hcHBlbmQocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcywKICAg
ICAgICAgICAgIHNpemVvZihwb3B1cENvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7Ci0gICAgc291cmNl
LmFwcGVuZCgiPC9zdHlsZT5cbjxzdHlsZT4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgi
PC9zdHlsZT5cbjxzdHlsZT4iKTsKICAgICBzb3VyY2UuYXBwZW5kKHNlbGVjdENvbnRyb2xCbGFj
a0JlcnJ5Q3NzLAogICAgICAgICAgICAgc2l6ZW9mKHNlbGVjdENvbnRyb2xCbGFja0JlcnJ5Q3Nz
KSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKLSAgICBz
b3VyY2UuYXBwZW5kKCI8c2NyaXB0PlxuIik7Ci0gICAgc291cmNlLmFwcGVuZCgid2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CisgICAgc291cmNlLmFwcGVu
ZExpdGVyYWwoIjwvc3R5bGU+PC9oZWFkPjxib2R5PlxuIik7CisgICAgc291cmNlLmFwcGVuZExp
dGVyYWwoIjxzY3JpcHQ+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CiAgICAgaWYgKG1fbXVsdGlw
bGUpCi0gICAgICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5zZWxlY3Quc2hvdyh0cnVlLCAiKTsK
KyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndpbmRvdy5zZWxlY3Quc2hvdyh0cnVlLCAi
KTsKICAgICBlbHNlCi0gICAgICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5zZWxlY3Quc2hvdyhm
YWxzZSwgIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ3aW5kb3cuc2VsZWN0LnNo
b3coZmFsc2UsICIpOwogICAgIC8vIEFkZCBsYWJlbHMuCi0gICAgc291cmNlLmFwcGVuZCgiWyIp
OworICAgIHNvdXJjZS5hcHBlbmQoJ1snKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7
IGkrKykgewogICAgICAgICBzb3VyY2UuYXBwZW5kKCInIiArIFN0cmluZyhsYWJlbHNbaV0uaW1w
bCgpKS5yZXBsYWNlKCdcXCcsICJcXFxcIikucmVwbGFjZSgnXCcnLCAiXFwnIikgKyAiJyIpOwog
ICAgICAgICAvLyBEb24ndCBhcHBlbmQgJywnIHRvIGxhc3QgZWxlbWVudC4KICAgICAgICAgaWYg
KGkgIT0gc2l6ZSAtIDEpCi0gICAgICAgICAgICBzb3VyY2UuYXBwZW5kKCIsICIpOworICAgICAg
ICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgfQotICAgIHNvdXJjZS5hcHBl
bmQoIl0sICIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJdLCAiKTsKICAgICAvLyBBZGQg
ZW5hYmxlcy4KLSAgICBzb3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycp
OwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5h
cHBlbmQoZW5hYmxlZHNbaV0/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgICBzb3VyY2UuYXBw
ZW5kTGl0ZXJhbChlbmFibGVkc1tpXT8gInRydWUiIDogImZhbHNlIik7CiAgICAgICAgIC8vIERv
bid0IGFwcGVuZCAnLCcgdG8gbGFzdCBlbGVtZW50LgogICAgICAgICBpZiAoaSAhPSBzaXplIC0g
MSkKLSAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBzb3VyY2Uu
YXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICB9Ci0gICAgc291cmNlLmFwcGVuZCgiXSwgIik7Cisg
ICAgc291cmNlLmFwcGVuZExpdGVyYWwoIl0sICIpOwogICAgIC8vIEFkZCBpdGVtVHlwZS4KLSAg
ICBzb3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5n
OjpudW1iZXIoaXRlbVR5cGVbaV0pKTsKKyAgICAgICAgc291cmNlLmFwcGVuZE51bWJlcihpdGVt
VHlwZVtpXSk7CiAgICAgICAgIC8vIERvbid0IGFwcGVuZCAnLCcgdG8gbGFzdCBlbGVtZW50Lgog
ICAgICAgICBpZiAoaSAhPSBzaXplIC0gMSkKLSAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIiwg
Iik7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKICAgICB9Ci0gICAg
c291cmNlLmFwcGVuZCgiXSwgIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIl0sICIpOwog
ICAgIC8vIEFkZCBzZWxlY3RlZHMKLSAgICBzb3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNl
LmFwcGVuZCgnWycpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAg
ICAgIHNvdXJjZS5hcHBlbmQoc2VsZWN0ZWRzW2ldPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICAg
ICAgc291cmNlLmFwcGVuZExpdGVyYWwoc2VsZWN0ZWRzW2ldPyAidHJ1ZSIgOiAiZmFsc2UiKTsK
ICAgICAgICAgLy8gRG9uJ3QgYXBwZW5kICcsJyB0byBsYXN0IGVsZW1lbnQuCiAgICAgICAgIGlm
IChpICE9IHNpemUgLSAxKQotICAgICAgICAgICAgc291cmNlLmFwcGVuZCgiLCAiKTsKKyAgICAg
ICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIH0KLSAgICBzb3VyY2UuYXBw
ZW5kKCJdICIpOwotICAgIHNvdXJjZS5hcHBlbmQoIiwgJ0NhbmNlbCciKTsKKyAgICBzb3VyY2Uu
YXBwZW5kTGl0ZXJhbCgiXSAiKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiLCAnQ2FuY2Vs
JyIpOwogICAgIC8vIElmIG11bHRpLXNlbGVjdCwgYWRkIE9LIGJ1dHRvbiBmb3IgY29uZmlybS4K
ICAgICBpZiAobV9tdWx0aXBsZSkKLSAgICAgICAgc291cmNlLmFwcGVuZCgiLCAnT0snIik7Ci0g
ICAgc291cmNlLmFwcGVuZCgiKTsgXG4gfSk7IFxuIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRM
aXRlcmFsKCIsICdPSyciKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiKTsgXG4gfSk7IFxu
Iik7CiAgICAgc291cmNlLmFwcGVuZChzZWxlY3RDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2Yo
c2VsZWN0Q29udHJvbEJsYWNrQmVycnlKcykpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvc2NyaXB0
PlxuIik7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9ib2R5PiA8L2h0bWw+XG4iKTsKKyAgICBzb3Vy
Y2UuYXBwZW5kTGl0ZXJhbCgiPC9zY3JpcHQ+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJh
bCgiPC9ib2R5PiA8L2h0bWw+XG4iKTsKICAgICBtX3NvdXJjZSA9IHNvdXJjZS50b1N0cmluZygp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjFkMGExMC4uMzE0MmFkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIxIEBACisyMDEyLTA5LTEwICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBEZXBsb3kgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgaW4g
bW9yZSBwbGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTYzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgaW5zdGVhZCBvZiBTdHJpbmc6Om51
bWJlcigpLiBBbHNvIGRlcGxveSAKKyAgICAgICAgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJh
bCgpIGluc3RlYWQgb2YgU3RyaW5nOjphcHBuZWQoKSBpbiB0aGUgc3Vycm91bmRpbmcgY29kZS4K
KworICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uOjpzZW5k
SFRUUFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L3F0L1dlYkluc3BlY3RvclNlcnZlclF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yU2VydmVyOjppbnNwZWN0b3JVcmxGb3JQYWdlSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
bnNwZWN0b3JTZXJ2ZXI6OmJ1aWxkUGFnZUxpc3QpOgorCiAyMDEyLTA5LTEwICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7IHJvbGxpbmcgb3V0
IHIxMjgwODEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2Ft
cGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKaW5k
ZXggNmY3Nzg0My4uODY4ZTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZW1vcnlT
YW1wbGVyLmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgV2ViTWVtb3J5U2FtcGxlcjo6YXBw
ZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSYgZmlsZSkKICAg
ICAgICAgc3RhdFN0cmluZy5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtZW1vcnlTdGF0cy52YWx1ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAg
IHN0YXRTdHJpbmcuYXBwZW5kKHNlcGFyYXRvcik7Ci0gICAgICAgICAgICBzdGF0U3RyaW5nLmFw
cGVuZChTdHJpbmc6Om51bWJlcihtZW1vcnlTdGF0cy52YWx1ZXNbaV0pKTsKKyAgICAgICAgICAg
IHN0YXRTdHJpbmcuYXBwZW5kTnVtYmVyKG1lbW9yeVN0YXRzLnZhbHVlc1tpXSk7CiAgICAgICAg
IH0KICAgICB9CiAgICAgc3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJT
b2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA1NzIwNmViLi5hYmM4MDVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNl
cnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0
b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTk5LDE4ICs5OSwxOSBA
QCB2b2lkIFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb246OnNlbmRXZWJTb2NrZXRNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6c2Vu
ZEhUVFBSZXNwb25zZUhlYWRlcihpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3RyaW5nJiBzdGF0dXNU
ZXh0LCBjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMpCiB7CiAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJIVFRQLzEuMSAiKTsKLSAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihzdGF0dXNDb2RlKSk7Ci0gICAgYnVpbGRlci5hcHBl
bmQoIiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkhUVFAvMS4xICIpOworICAgIGJ1
aWxkZXIuYXBwZW5kTnVtYmVyKHN0YXR1c0NvZGUpOworICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7
CiAgICAgYnVpbGRlci5hcHBlbmQoc3RhdHVzVGV4dCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIlxy
XG4iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKICAgICBIVFRQSGVhZGVy
TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBoZWFkZXJGaWVsZHMuZW5kKCk7CiAgICAgZm9yIChI
VFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckZpZWxkcy5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXQtPmZpcnN0KTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIjogIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0LT5z
ZWNvbmQgKyAiXHJcbiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjogIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0LT5zZWNvbmQpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlxyXG4iKTsKICAgICB9Ci0gICAgYnVpbGRlci5hcHBlbmQoIlxyXG4iKTsKKyAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKIAogICAgIENTdHJpbmcgaGVhZGVyID0g
YnVpbGRlci50b1N0cmluZygpLmxhdGluMSgpOwogICAgIG1fc29ja2V0LT5zZW5kKGhlYWRlci5k
YXRhKCksIGhlYWRlci5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL3F0L1dlYkluc3BlY3RvclNlcnZlclF0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVy
UXQuY3BwCmluZGV4IGMxM2ZhNGMuLjE4ODI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVj
dG9yU2VydmVyUXQuY3BwCkBAIC02OCwzNCArNjgsMzYgQEAgU3RyaW5nIFdlYkluc3BlY3RvclNl
cnZlcjo6aW5zcGVjdG9yVXJsRm9yUGFnZUlEKGludCBwYWdlSWQpCiAgICAgaWYgKHBhZ2VJZCA8
PSAwIHx8IHNlcnZlclN0YXRlKCkgPT0gQ2xvc2VkKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJodHRwOi8v
Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJodHRwOi8vIik7CiAgICAgYnVpbGRlci5h
cHBlbmQoYmluZEFkZHJlc3MoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIjoiKTsKLSAgICBidWls
ZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihwb3J0KCkpKTsKKyAgICBidWlsZGVyLmFwcGVuZCgn
OicpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CiAgICAgYnVpbGRlci5hcHBl
bmQocmVtb3RlSW5zcGVjdG9yUGFnZVBhdGgoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoU3RyaW5n
OjpudW1iZXIocGFnZUlkKSk7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocGFnZUlkKTsKICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclNlcnZl
cjo6YnVpbGRQYWdlTGlzdChWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUp
CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbICIp
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiWyAiKTsKICAgICBDbGllbnRNYXA6Oml0ZXJh
dG9yIGVuZCA9IG1fY2xpZW50TWFwLmVuZCgpOwogICAgIGZvciAoQ2xpZW50TWFwOjppdGVyYXRv
ciBpdCA9IG1fY2xpZW50TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBX
ZWJQYWdlUHJveHkqIHdlYlBhZ2UgPSBpdC0+c2Vjb25kLT5wYWdlKCk7CiAgICAgICAgIGlmIChp
dCAhPSBtX2NsaWVudE1hcC5iZWdpbigpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwg
Iik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ7IFwiaWRcIjogIiArIFN0cmluZzo6bnVtYmVy
KGl0LT5maXJzdCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCBcInRpdGxlXCI6IFwiIik7
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgieyBcImlkXCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihpdC0+Zmlyc3QpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0aXRs
ZVwiOiBcIiIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlVGl0bGUoKSk7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcIiwgXCJ1cmxcIjogXCIiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJ1cmxcIjogXCIiKTsKICAgICAgICAgYnVpbGRlci5h
cHBlbmQod2ViUGFnZS0+YWN0aXZlVVJMKCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiXCIs
IFwiaW5zcGVjdG9yVXJsXCI6IFwiIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHJlbW90ZUlu
c3BlY3RvclBhZ2VQYXRoKCkgKyBTdHJpbmc6Om51bWJlcihpdC0+Zmlyc3QpKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQoIlwiIH0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
IiwgXCJpbnNwZWN0b3JVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQocmVtb3Rl
SW5zcGVjdG9yUGFnZVBhdGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5m
aXJzdCk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIpOwogICAgIH0KLSAg
ICBidWlsZGVyLmFwcGVuZCgiIF0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBdIik7
CiAgICAgQ1N0cmluZyBjc3RyID0gYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKTsKICAgICBkYXRh
LmFwcGVuZChjc3RyLmRhdGEoKSwgY3N0ci5sZW5ndGgoKSk7CiAgICAgY29udGVudFR5cGUgPSAi
YXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163280</attachid>
            <date>2012-09-10 22:32:15 -0700</date>
            <delta_ts>2012-09-11 00:35:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>appendNumber.patch</filename>
            <type>text/plain</type>
            <size>17100</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMjljOTgxLi4wNDRkYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBhbmQgU3RyaW5n
QnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCgpIGluIG1vcmUgcGxhY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51
bWJlcigpIGluc3RlYWQgb2YgU3RyaW5nOjpudW1iZXIoKS4gQWxzbyBkZXBsb3kgCisgICAgICAg
IFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVyYWwoKSBpbnN0ZWFkIG9mIFN0cmluZzo6YXBwZW5k
KCkgaW4gdGhlIHN1cnJvdW5kaW5nIGNvZGUuCisKKyAgICAgICAgKiBjc3MvQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBc3BlY3RSYXRpb1ZhbHVlOjpjdXN0
b21Dc3NUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uUGF0
aFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHUG9p
bnRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdDo6dmFsdWVBc1N0cmlu
Zyk6CisKIDIwMTItMDktMTAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZW5hbWUgYm94LXNpemluZyBhcHBseWluZyBtZXRob2RzIHRvIGJlIG1vcmUgY2xlYXIg
YWJvdXQganVzdCBhcHBseWluZyBib3gtc2l6aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Fz
cGVjdFJhdGlvVmFsdWUuY3BwCmluZGV4IDE1MjkyYmUuLjgzMGY4Y2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAKQEAgLTM2LDExICszNiw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogU3RyaW5nIENTU0FzcGVjdFJhdGlvVmFsdWU6OmN1c3RvbUNzc1Rl
eHQoKSBjb25zdAogewotICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwotICAgIHJlc3VsdC5hcHBl
bmQoU3RyaW5nOjpudW1iZXIobV9udW1lcmF0b3JWYWx1ZSkpOwotICAgIHJlc3VsdC5hcHBlbmQo
Ii8iKTsKLSAgICByZXN1bHQuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1fZGVub21pbmF0b3JWYWx1
ZSkpOwotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICByZXR1cm4gU3RyaW5nOjpu
dW1iZXIobV9udW1lcmF0b3JWYWx1ZSkgKyAnLycgKyBTdHJpbmc6Om51bWJlcihtX2Rlbm9taW5h
dG9yVmFsdWUpOwogfQogCiB2b2lkIENTU0FzcGVjdFJhdGlvVmFsdWU6OnJlcG9ydERlc2NlbmRh
bnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlu
blBhdGhQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0xvb3BCbGlublBhdGhQcm9jZXNzb3IuY3BwCmluZGV4IGNiNDMzNmIuLmExZDY2NzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5QYXRo
UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
TG9vcEJsaW5uUGF0aFByb2Nlc3Nvci5jcHAKQEAgLTY5LDE1ICs2OSwxNSBAQCBuYW1lc3BhY2Ug
ewogU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgRmxvYXRSZWN0JiBhcmcpCiB7CiAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbRmxvYXRSZWN0IHg9Iik7
CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbRmxvYXRSZWN0IHg9Iik7CiAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nOjpudW1iZXIoYXJnLngoKSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCIg
eT0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiB5PSIpOwogICAgIGJ1aWxkZXIuYXBw
ZW5kKFN0cmluZzo6bnVtYmVyKGFyZy55KCkpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiIG1heFg9
Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgbWF4WD0iKTsKICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmc6Om51bWJlcihhcmcubWF4WCgpKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiBt
YXhZPSIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG1heFk9Iik7CiAgICAgYnVpbGRl
ci5hcHBlbmQoU3RyaW5nOjpudW1iZXIoYXJnLm1heFkoKSkpOwotICAgIGJ1aWxkZXIuYXBwZW5k
KCJdIik7CisgICAgYnVpbGRlci5hcHBlbmQoJ10nKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9p
bnRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCmluZGV4IGJl
NDAwOWEuLjJlMDU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIFN0cmluZyBTVkdQb2ludExpc3Q6OnZhbHVlQXNTdHJpbmcoKSBjb25zdAogICAg
IHVuc2lnbmVkIHNpemUgPSB0aGlzLT5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNpemU7ICsraSkgewogICAgICAgICBpZiAoaSA+IDApCi0gICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgiICIpOyAvLyBGSVhNRTogU2hvdWxkbid0IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJh
dGU/CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOyAvLyBGSVhNRTogU2hvdWxkbid0
IHdlIHVzZSBjb21tYXMgdG8gc2VwZXJhdGU/CiAKICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQgPSBhdChpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIocG9p
bnQueCgpKSArICcgJyArIFN0cmluZzo6bnVtYmVyKHBvaW50LnkoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKaW5kZXggZjkzZTExYS4uOWFjOGZhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8
amlud29vNy5zb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVy
OjphcHBlbmROdW1iZXIoKSBhbmQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCgpIGluIG1v
cmUgcGxhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk2MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcigpIGluc3RlYWQgb2YgU3RyaW5nOjpudW1i
ZXIoKS4gQWxzbyBkZXBsb3kgCisgICAgICAgIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVyYWwo
KSBpbnN0ZWFkIG9mIFN0cmluZzo6YXBwZW5kKCkgaW4gdGhlIHN1cnJvdW5kaW5nIGNvZGUuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0UG9wdXBDbGllbnQ6OmdlbmVyYXRlSFRNTCk6CisKIDIwMTItMDktMTAgIEdlbmV2aWV2ZSBN
YWsgIDxnbWFrQHJpbS5jb20+CiAKICAgICAgICAgQ2hhbmdlIC1kYXRhLWJsYWNrYmVycnktd2Vi
d29ya3MtY29udGV4dCB0byAtZGF0YS13ZWJ3b3Jrcy1jb250ZXh0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVu
dC5jcHAKaW5kZXggOTNmN2ZkYS4uMjNjMGJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNwcApA
QCAtNTAsMjggKzUwLDI4IEBAIERhdGVQaWNrZXJDbGllbnQ6On5EYXRlUGlja2VyQ2xpZW50KCkK
IHZvaWQgRGF0ZVBpY2tlckNsaWVudDo6Z2VuZXJhdGVIVE1MKEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpCbGFja0JlcnJ5SW5wdXRUeXBlIHR5cGUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
U3RyaW5nJiB2YWx1ZSwgY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1pbiwg
Y29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1heCwgZG91YmxlIHN0ZXApCiB7
CiAgICAgU3RyaW5nQnVpbGRlciBzb3VyY2U7Ci0gICAgc291cmNlLmFwcGVuZCgiPHN0eWxlPlxu
Iik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjxzdHlsZT5cbiIpOwogICAgIC8vIEluY2x1
ZGUgQ1NTIGZpbGUuCiAgICAgc291cmNlLmFwcGVuZChwb3B1cENvbnRyb2xCbGFja0JlcnJ5Q3Nz
LAogICAgICAgICAgICAgc2l6ZW9mKHBvcHVwQ29udHJvbEJsYWNrQmVycnlDc3MpKTsKLSAgICBz
b3VyY2UuYXBwZW5kKCI8L3N0eWxlPlxuPHN0eWxlPiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRl
cmFsKCI8L3N0eWxlPlxuPHN0eWxlPiIpOwogICAgIHNvdXJjZS5hcHBlbmQodGltZUNvbnRyb2xC
bGFja0JlcnJ5Q3NzLAogICAgICAgICAgICAgc2l6ZW9mKHRpbWVDb250cm9sQmxhY2tCZXJyeUNz
cykpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvc3R5bGU+PC9oZWFkPjxib2R5PlxuIik7Ci0gICAg
c291cmNlLmFwcGVuZCgiPHNjcmlwdD5cbiIpOwotICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgeyIpOworICAgIHNvdXJjZS5hcHBl
bmRMaXRlcmFsKCI8L3N0eWxlPjwvaGVhZD48Ym9keT5cbiIpOworICAgIHNvdXJjZS5hcHBlbmRM
aXRlcmFsKCI8c2NyaXB0PlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgeyIpOwogICAgIHN3aXRjaCAodHlw
ZSkgewogICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OklucHV0VHlwZURhdGU6Ci0gICAg
ICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIkRhdGVcIiwgIik7
CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3co
XCJEYXRlXCIsICIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpJbnB1dFR5cGVUaW1lOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBj
b250cm9sLnNob3coXCJUaW1lXCIsICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgi
d2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiVGltZVwiLCAiKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlRGF0ZVRpbWU6Ci0gICAgICAg
IHNvdXJjZS5hcHBlbmQoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIkRhdGVUaW1lXCIsICIp
OworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LnBvcHVwY29udHJvbC5zaG93
KFwiRGF0ZVRpbWVcIiwgIik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQmxhY2tCZXJyeTo6
UGxhdGZvcm06OklucHV0VHlwZURhdGVUaW1lTG9jYWw6Ci0gICAgICAgIHNvdXJjZS5hcHBlbmQo
IndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIkRhdGVUaW1lTG9jYWxcIiwgIik7CisgICAgICAg
IHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlVGlt
ZUxvY2FsXCIsICIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpJbnB1dFR5cGVNb250aDoKICAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1
dFR5cGVXZWVrOgpAQCAtODEsMjEgKzgxLDIxIEBAIHZvaWQgRGF0ZVBpY2tlckNsaWVudDo6Z2Vu
ZXJhdGVIVE1MKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlIHR5CiAg
ICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHNvdXJjZS5hcHBlbmQoIlwiIiArIFN0
cmluZyh2YWx1ZS5pbXBsKCkpICsgIlwiLCAiKTsKICAgICBlbHNlCi0gICAgICAgIHNvdXJjZS5h
cHBlbmQoIjAsICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiMCwgIik7CiAKICAg
ICBpZiAoIW1pbi5pc0VtcHR5KCkpCiAgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nKG1pbi5p
bXBsKCkpICsgIiwgIik7CiAgICAgZWxzZQotICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsK
KyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjAsICIpOwogICAgIGlmICghbWF4LmlzRW1w
dHkoKSkKICAgICAgICAgc291cmNlLmFwcGVuZChTdHJpbmcobWF4LmltcGwoKSkgKyAiLCAiKTsK
ICAgICBlbHNlCi0gICAgICAgIHNvdXJjZS5hcHBlbmQoIjAsICIpOworICAgICAgICBzb3VyY2Uu
YXBwZW5kTGl0ZXJhbCgiMCwgIik7CiAgICAgc291cmNlLmFwcGVuZChTdHJpbmc6Om51bWJlcihz
dGVwKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiKTsgXG4gfSk7IFxuIik7CisgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIik7IFxuIH0pOyBcbiIpOwogICAgIHNvdXJjZS5hcHBlbmQodGltZUNvbnRy
b2xCbGFja0JlcnJ5SnMsIHNpemVvZih0aW1lQ29udHJvbEJsYWNrQmVycnlKcykpOwotICAgIHNv
dXJjZS5hcHBlbmQoIjwvc2NyaXB0PlxuIik7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9ib2R5PiA8
L2h0bWw+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zY3JpcHQ+XG4iKTsKKyAg
ICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9ib2R5PiA8L2h0bWw+XG4iKTsKICAgICBtX3NvdXJj
ZSA9IHNvdXJjZS50b1N0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcAppbmRl
eCAxMzhhNjcxOC4uZmE1Y2IzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwCkBAIC02Niw2
NCArNjYsNzAgQEAgdm9pZCBTZWxlY3RQb3B1cENsaWVudDo6Z2VuZXJhdGVIVE1MKGJvb2wgbXVs
dGlwbGUsIGludCBzaXplLCBjb25zdCBTY29wZUFycmF5PEIKICAgICBjb25zdCBpbnQqIGl0ZW1U
eXBlLCBib29sKiBzZWxlY3RlZHMpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBzb3VyY2U7Ci0gICAg
c291cmNlLmFwcGVuZCgiPHN0eWxlPlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjxz
dHlsZT5cbiIpOwogICAgIC8vIEluY2x1ZGUgQ1NTIGZpbGUuCiAgICAgc291cmNlLmFwcGVuZChw
b3B1cENvbnRyb2xCbGFja0JlcnJ5Q3NzLAogICAgICAgICAgICAgc2l6ZW9mKHBvcHVwQ29udHJv
bEJsYWNrQmVycnlDc3MpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3N0eWxlPlxuPHN0eWxlPiIp
OworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCI8L3N0eWxlPlxuPHN0eWxlPiIpOwogICAgIHNv
dXJjZS5hcHBlbmQoc2VsZWN0Q29udHJvbEJsYWNrQmVycnlDc3MsCiAgICAgICAgICAgICBzaXpl
b2Yoc2VsZWN0Q29udHJvbEJsYWNrQmVycnlDc3MpKTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8L3N0
eWxlPjwvaGVhZD48Ym9keT5cbiIpOwotICAgIHNvdXJjZS5hcHBlbmQoIjxzY3JpcHQ+XG4iKTsK
LSAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0
aW9uICgpIHsiKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9zdHlsZT48L2hlYWQ+PGJv
ZHk+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPHNjcmlwdD5cbiIpOworICAgIHNv
dXJjZS5hcHBlbmRMaXRlcmFsKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0
aW9uICgpIHsiKTsKICAgICBpZiAobV9tdWx0aXBsZSkKLSAgICAgICAgc291cmNlLmFwcGVuZCgi
d2luZG93LnNlbGVjdC5zaG93KHRydWUsICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJh
bCgid2luZG93LnNlbGVjdC5zaG93KHRydWUsICIpOwogICAgIGVsc2UKLSAgICAgICAgc291cmNl
LmFwcGVuZCgid2luZG93LnNlbGVjdC5zaG93KGZhbHNlLCAiKTsKKyAgICAgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIndpbmRvdy5zZWxlY3Quc2hvdyhmYWxzZSwgIik7CiAgICAgLy8gQWRkIGxh
YmVscy4KLSAgICBzb3VyY2UuYXBwZW5kKCJbIik7CisgICAgc291cmNlLmFwcGVuZCgnWycpOwog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgIHNvdXJjZS5hcHBl
bmQoIiciICsgU3RyaW5nKGxhYmVsc1tpXS5pbXBsKCkpLnJlcGxhY2UoJ1xcJywgIlxcXFwiKS5y
ZXBsYWNlKCdcJycsICJcXCciKSArICInIik7CiAgICAgICAgIC8vIERvbid0IGFwcGVuZCAnLCcg
dG8gbGFzdCBlbGVtZW50LgogICAgICAgICBpZiAoaSAhPSBzaXplIC0gMSkKLSAgICAgICAgICAg
IHNvdXJjZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKICAgICB9Ci0gICAgc291cmNlLmFwcGVuZCgiXSwgIik7CisgICAgc291cmNlLmFwcGVu
ZExpdGVyYWwoIl0sICIpOwogICAgIC8vIEFkZCBlbmFibGVzLgotICAgIHNvdXJjZS5hcHBlbmQo
IlsiKTsKKyAgICBzb3VyY2UuYXBwZW5kKCdbJyk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBz
aXplOyBpKyspIHsKLSAgICAgICAgc291cmNlLmFwcGVuZChlbmFibGVkc1tpXT8gInRydWUiIDog
ImZhbHNlIik7CisgICAgICAgIGlmIChlbmFibGVkc1tpXSkKKyAgICAgICAgICAgIHNvdXJjZS5h
cHBlbmRMaXRlcmFsKCJ0cnVlIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNvdXJjZS5h
cHBlbmRMaXRlcmFsKCJmYWxzZSIpOwogICAgICAgICAvLyBEb24ndCBhcHBlbmQgJywnIHRvIGxh
c3QgZWxlbWVudC4KICAgICAgICAgaWYgKGkgIT0gc2l6ZSAtIDEpCi0gICAgICAgICAgICBzb3Vy
Y2UuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIiwgIik7
CiAgICAgfQotICAgIHNvdXJjZS5hcHBlbmQoIl0sICIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRl
cmFsKCJdLCAiKTsKICAgICAvLyBBZGQgaXRlbVR5cGUuCi0gICAgc291cmNlLmFwcGVuZCgiWyIp
OworICAgIHNvdXJjZS5hcHBlbmQoJ1snKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7
IGkrKykgewotICAgICAgICBzb3VyY2UuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGl0ZW1UeXBlW2ld
KSk7CisgICAgICAgIHNvdXJjZS5hcHBlbmROdW1iZXIoaXRlbVR5cGVbaV0pOwogICAgICAgICAv
LyBEb24ndCBhcHBlbmQgJywnIHRvIGxhc3QgZWxlbWVudC4KICAgICAgICAgaWYgKGkgIT0gc2l6
ZSAtIDEpCi0gICAgICAgICAgICBzb3VyY2UuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgc291
cmNlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAgICAgfQotICAgIHNvdXJjZS5hcHBlbmQoIl0sICIp
OworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCJdLCAiKTsKICAgICAvLyBBZGQgc2VsZWN0ZWRz
Ci0gICAgc291cmNlLmFwcGVuZCgiWyIpOworICAgIHNvdXJjZS5hcHBlbmQoJ1snKTsKICAgICBm
b3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICBzb3VyY2UuYXBwZW5kKHNl
bGVjdGVkc1tpXT8gInRydWUiIDogImZhbHNlIik7CisgICAgICAgIGlmIChzZWxlY3RlZHNbaV0p
CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgidHJ1ZSIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiZmFsc2UiKTsKICAgICAgICAgLy8g
RG9uJ3QgYXBwZW5kICcsJyB0byBsYXN0IGVsZW1lbnQuCiAgICAgICAgIGlmIChpICE9IHNpemUg
LSAxKQotICAgICAgICAgICAgc291cmNlLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHNvdXJj
ZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIH0KLSAgICBzb3VyY2UuYXBwZW5kKCJdICIpOwot
ICAgIHNvdXJjZS5hcHBlbmQoIiwgJ0NhbmNlbCciKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJh
bCgiXSAiKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiLCAnQ2FuY2VsJyIpOwogICAgIC8v
IElmIG11bHRpLXNlbGVjdCwgYWRkIE9LIGJ1dHRvbiBmb3IgY29uZmlybS4KICAgICBpZiAobV9t
dWx0aXBsZSkKLSAgICAgICAgc291cmNlLmFwcGVuZCgiLCAnT0snIik7Ci0gICAgc291cmNlLmFw
cGVuZCgiKTsgXG4gfSk7IFxuIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIsICdP
SyciKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiKTsgXG4gfSk7IFxuIik7CiAgICAgc291
cmNlLmFwcGVuZChzZWxlY3RDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2Yoc2VsZWN0Q29udHJv
bEJsYWNrQmVycnlKcykpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvc2NyaXB0PlxuIik7Ci0gICAg
c291cmNlLmFwcGVuZCgiPC9ib2R5PiA8L2h0bWw+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0
ZXJhbCgiPC9zY3JpcHQ+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPC9ib2R5PiA8
L2h0bWw+XG4iKTsKICAgICBtX3NvdXJjZSA9IHNvdXJjZS50b1N0cmluZygpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMjFkMGExMC4uNjA2MWE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDEyLTA5LTEwICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAg
ICAgICBEZXBsb3kgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgYW5kIFN0cmluZ0J1aWxk
ZXI6OmFwcGVuZExpdGVyYWwoKSBpbiBtb3JlIHBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIo
KSBpbnN0ZWFkIG9mIFN0cmluZzo6bnVtYmVyKCkuIEFsc28gZGVwbG95IAorICAgICAgICBTdHJp
bmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKCkgaW5zdGVhZCBvZiBTdHJpbmc6OmFwcGVuZCgpIGlu
IHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50
TWVtb3J5VXNhZ2VUb0ZpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
V2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dFNlcnZlckNvbm5lY3Rpb246OnNlbmRIVFRQUmVzcG9uc2VIZWFkZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JTZXJ2ZXI6Omluc3BlY3RvclVybEZvclBhZ2VJRCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclNlcnZlcjo6YnVpbGRQYWdlTGlzdCk6CisK
IDIwMTItMDktMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZDsgcm9sbGluZyBvdXQgcjEyODA4MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJNZW1vcnlTYW1wbGVyLmNwcAppbmRleCA2Zjc3ODQzLi44NjhlODQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0xNzcsNyArMTc3LDcgQEAgdm9p
ZCBXZWJNZW1vcnlTYW1wbGVyOjphcHBlbmRDdXJyZW50TWVtb3J5VXNhZ2VUb0ZpbGUoUGxhdGZv
cm1GaWxlSGFuZGxlJiBmaWxlKQogICAgICAgICBzdGF0U3RyaW5nLmFwcGVuZChzZXBhcmF0b3Ip
OwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lbW9yeVN0YXRzLnZhbHVlcy5zaXpl
KCk7ICsraSkgewogICAgICAgICAgICAgc3RhdFN0cmluZy5hcHBlbmQoc2VwYXJhdG9yKTsKLSAg
ICAgICAgICAgIHN0YXRTdHJpbmcuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1lbW9yeVN0YXRzLnZh
bHVlc1tpXSkpOworICAgICAgICAgICAgc3RhdFN0cmluZy5hcHBlbmROdW1iZXIobWVtb3J5U3Rh
dHMudmFsdWVzW2ldKTsKICAgICAgICAgfQogICAgIH0KICAgICBzdGF0U3RyaW5nLmFwcGVuZCgn
XG4nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2
ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDU3
MjA2ZWIuLmFiYzgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9u
LmNwcApAQCAtOTksMTggKzk5LDE5IEBAIHZvaWQgV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbjo6
c2VuZFdlYlNvY2tldE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogdm9pZCBXZWJTb2Nr
ZXRTZXJ2ZXJDb25uZWN0aW9uOjpzZW5kSFRUUFJlc3BvbnNlSGVhZGVyKGludCBzdGF0dXNDb2Rl
LCBjb25zdCBTdHJpbmcmIHN0YXR1c1RleHQsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhlYWRlckZp
ZWxkcykKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQo
IkhUVFAvMS4xICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHN0YXR1c0Nv
ZGUpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgiICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiSFRUUC8xLjEgIik7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3RhdHVzQ29kZSk7Cisg
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKICAgICBidWlsZGVyLmFwcGVuZChzdGF0dXNUZXh0KTsK
LSAgICBidWlsZGVyLmFwcGVuZCgiXHJcbiIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
XHJcbiIpOwogICAgIEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGhlYWRlckZp
ZWxkcy5lbmQoKTsKICAgICBmb3IgKEhUVFBIZWFkZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
aGVhZGVyRmllbGRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBidWlsZGVy
LmFwcGVuZChpdC0+Zmlyc3QpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiOiAiKTsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQoaXQtPnNlY29uZCArICJcclxuIik7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoaXQtPnNlY29uZCk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwogICAgIH0KLSAgICBidWls
ZGVyLmFwcGVuZCgiXHJcbiIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXHJcbiIpOwog
CiAgICAgQ1N0cmluZyBoZWFkZXIgPSBidWlsZGVyLnRvU3RyaW5nKCkubGF0aW4xKCk7CiAgICAg
bV9zb2NrZXQtPnNlbmQoaGVhZGVyLmRhdGEoKSwgaGVhZGVyLmxlbmd0aCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVj
dG9yU2VydmVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZl
ci9xdC9XZWJJbnNwZWN0b3JTZXJ2ZXJRdC5jcHAKaW5kZXggYzEzZmE0Yy4uMTg4MjU4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9xdC9XZWJJ
bnNwZWN0b3JTZXJ2ZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3Bl
Y3RvclNlcnZlci9xdC9XZWJJbnNwZWN0b3JTZXJ2ZXJRdC5jcHAKQEAgLTY4LDM0ICs2OCwzNiBA
QCBTdHJpbmcgV2ViSW5zcGVjdG9yU2VydmVyOjppbnNwZWN0b3JVcmxGb3JQYWdlSUQoaW50IHBh
Z2VJZCkKICAgICBpZiAocGFnZUlkIDw9IDAgfHwgc2VydmVyU3RhdGUoKSA9PSBDbG9zZWQpCiAg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAg
YnVpbGRlci5hcHBlbmQoImh0dHA6Ly8iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoImh0
dHA6Ly8iKTsKICAgICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKLSAgICBidWlsZGVy
LmFwcGVuZCgiOiIpOwotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHBvcnQoKSkp
OworICAgIGJ1aWxkZXIuYXBwZW5kKCc6Jyk7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9y
dCgpKTsKICAgICBidWlsZGVyLmFwcGVuZChyZW1vdGVJbnNwZWN0b3JQYWdlUGF0aCgpKTsKLSAg
ICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihwYWdlSWQpKTsKKyAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihwYWdlSWQpOwogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAK
IHZvaWQgV2ViSW5zcGVjdG9yU2VydmVyOjpidWlsZFBhZ2VMaXN0KFZlY3RvcjxjaGFyPiYgZGF0
YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgYnVpbGRlci5hcHBlbmQoIlsgIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbICIp
OwogICAgIENsaWVudE1hcDo6aXRlcmF0b3IgZW5kID0gbV9jbGllbnRNYXAuZW5kKCk7CiAgICAg
Zm9yIChDbGllbnRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9jbGllbnRNYXAuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KSB7CiAgICAgICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZSA9IGl0LT5zZWNvbmQt
PnBhZ2UoKTsKICAgICAgICAgaWYgKGl0ICE9IG1fY2xpZW50TWFwLmJlZ2luKCkpCi0gICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoInsgXCJp
ZFwiOiAiICsgU3RyaW5nOjpudW1iZXIoaXQtPmZpcnN0KSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCIsIFwidGl0bGVcIjogXCIiKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ7IFwiaWRcIjogIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5maXJzdCk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiLCBcInRpdGxlXCI6IFwiIik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHdlYlBhZ2UtPnBhZ2VUaXRsZSgpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIlwiLCBcInVy
bFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcInVybFwiOiBc
IiIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5hY3RpdmVVUkwoKSk7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJcIiwgXCJpbnNwZWN0b3JVcmxcIjogXCIiKTsKLSAgICAgICAg
YnVpbGRlci5hcHBlbmQocmVtb3RlSW5zcGVjdG9yUGFnZVBhdGgoKSArIFN0cmluZzo6bnVtYmVy
KGl0LT5maXJzdCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiXCIgfSIpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImluc3BlY3RvclVybFwiOiBcIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZChyZW1vdGVJbnNwZWN0b3JQYWdlUGF0aCgpKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIoaXQtPmZpcnN0KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJcIiB9Iik7CiAgICAgfQotICAgIGJ1aWxkZXIuYXBwZW5kKCIgXSIpOworICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiIF0iKTsKICAgICBDU3RyaW5nIGNzdHIgPSBidWlsZGVyLnRvU3Ry
aW5nKCkudXRmOCgpOwogICAgIGRhdGEuYXBwZW5kKGNzdHIuZGF0YSgpLCBjc3RyLmxlbmd0aCgp
KTsKICAgICBjb250ZW50VHlwZSA9ICJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IjsK
</data>
<flag name="review"
          id="174670"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="174671"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163293</attachid>
            <date>2012-09-11 00:29:57 -0700</date>
            <delta_ts>2012-09-11 10:40:14 -0700</delta_ts>
            <desc>patch.</desc>
            <filename>appendNumber_appendLiteral.patch</filename>
            <type>text/plain</type>
            <size>17089</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMjljOTgxLi40ODQ4MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTItMDktMTAgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNhbXN1bmcuY29tPgor
CisgICAgICAgIERlcGxveSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoKSBhbmQgU3RyaW5n
QnVpbGRlcjo6YXBwZW5kTGl0ZXJhbCgpIGluIG1vcmUgcGxhY2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM0NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBTdHJpbmdCdWlsZGVyOjphcHBlbmRO
dW1iZXIoKSBpbnN0ZWFkIG9mIFN0cmluZzo6bnVtYmVyKCkuIEFsc28gZGVwbG95IAorICAgICAg
ICBTdHJpbmdCdWlsZGVyOjphcHBlbmRMaXRlcmFsKCkgaW5zdGVhZCBvZiBTdHJpbmc6OmFwcGVu
ZCgpIGluIHRoZSBzdXJyb3VuZGluZyBjb2RlLgorCisgICAgICAgICogY3NzL0NTU0FzcGVjdFJh
dGlvVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQXNwZWN0UmF0aW9WYWx1ZTo6Y3Vz
dG9tQ3NzVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlublBh
dGhQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3ZnL1NWR1Bv
aW50TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OnZhbHVlQXNTdHJp
bmcpOgorCiAyMDEyLTA5LTEwICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmVuYW1lIGJveC1zaXppbmcgYXBwbHlpbmcgbWV0aG9kcyB0byBiZSBtb3JlIGNsZWFy
IGFib3V0IGp1c3QgYXBwbHlpbmcgYm94LXNpemluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NB
c3BlY3RSYXRpb1ZhbHVlLmNwcAppbmRleCAxNTI5MmJlLi44MzBmOGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCkBAIC0zNiwxMSArMzYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFN0cmluZyBDU1NBc3BlY3RSYXRpb1ZhbHVlOjpjdXN0b21Dc3NU
ZXh0KCkgY29uc3QKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKLSAgICByZXN1bHQuYXBw
ZW5kKFN0cmluZzo6bnVtYmVyKG1fbnVtZXJhdG9yVmFsdWUpKTsKLSAgICByZXN1bHQuYXBwZW5k
KCIvIik7Ci0gICAgcmVzdWx0LmFwcGVuZChTdHJpbmc6Om51bWJlcihtX2Rlbm9taW5hdG9yVmFs
dWUpKTsKLSAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmluZzo6
bnVtYmVyKG1fbnVtZXJhdG9yVmFsdWUpICsgJy8nICsgU3RyaW5nOjpudW1iZXIobV9kZW5vbWlu
YXRvclZhbHVlKTsKIH0KIAogdm9pZCBDU1NBc3BlY3RSYXRpb1ZhbHVlOjpyZXBvcnREZXNjZW5k
YW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxp
bm5QYXRoUHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9Mb29wQmxpbm5QYXRoUHJvY2Vzc29yLmNwcAppbmRleCBjYjQzMzZiLi5hMWQ2Njc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvTG9vcEJsaW5uUGF0
aFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0xvb3BCbGlublBhdGhQcm9jZXNzb3IuY3BwCkBAIC02OSwxNSArNjksMTUgQEAgbmFtZXNwYWNl
IHsKIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0IEZsb2F0UmVjdCYgYXJnKQogewogICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZCgiW0Zsb2F0UmVjdCB4PSIp
OworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiW0Zsb2F0UmVjdCB4PSIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGFyZy54KCkpKTsKLSAgICBidWlsZGVyLmFwcGVuZCgi
IHk9Iik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgeT0iKTsKICAgICBidWlsZGVyLmFw
cGVuZChTdHJpbmc6Om51bWJlcihhcmcueSgpKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIiBtYXhY
PSIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG1heFg9Iik7CiAgICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nOjpudW1iZXIoYXJnLm1heFgoKSkpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCIg
bWF4WT0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBtYXhZPSIpOwogICAgIGJ1aWxk
ZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGFyZy5tYXhZKCkpKTsKLSAgICBidWlsZGVyLmFwcGVu
ZCgiXSIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCddJyk7CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9T
dHJpbmcoKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
aW50TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmNwcAppbmRleCBi
ZTQwMDlhLi4yZTA1OTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmNwcApAQCAtMzYs
NyArMzYsNyBAQCBTdHJpbmcgU1ZHUG9pbnRMaXN0Ojp2YWx1ZUFzU3RyaW5nKCkgY29uc3QKICAg
ICB1bnNpZ25lZCBzaXplID0gdGhpcy0+c2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgaWYgKGkgPiAwKQotICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiAiKTsgLy8gRklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgY29tbWFzIHRvIHNlcGVy
YXRlPworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsgLy8gRklYTUU6IFNob3VsZG4n
dCB3ZSB1c2UgY29tbWFzIHRvIHNlcGVyYXRlPwogCiAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50ID0gYXQoaSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHBv
aW50LngoKSkgKyAnICcgKyBTdHJpbmc6Om51bWJlcihwb2ludC55KCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCmluZGV4IGY5M2UxMWEuLjljZjFlODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTEwICBKaW53b28gU29uZyAg
PGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBEZXBsb3kgU3RyaW5nQnVpbGRl
cjo6YXBwZW5kTnVtYmVyKCkgYW5kIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVyYWwoKSBpbiBt
b3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTYzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgaW5zdGVhZCBvZiBTdHJpbmc6Om51
bWJlcigpLiBBbHNvIGRlcGxveSAKKyAgICAgICAgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJh
bCgpIGluc3RlYWQgb2YgU3RyaW5nOjphcHBlbmQoKSBpbiB0aGUgc3Vycm91bmRpbmcgY29kZS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6Z2VuZXJhdGVIVE1MKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RQb3B1cENsaWVudDo6Z2VuZXJhdGVIVE1MKToKKwogMjAxMi0wOS0xMCAgR2VuZXZpZXZl
IE1hayAgPGdtYWtAcmltLmNvbT4KIAogICAgICAgICBDaGFuZ2UgLWRhdGEtYmxhY2tiZXJyeS13
ZWJ3b3Jrcy1jb250ZXh0IHRvIC1kYXRhLXdlYndvcmtzLWNvbnRleHQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xp
ZW50LmNwcAppbmRleCA5M2Y3ZmRhLi5iNjUyYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3Bw
CkBAIC01MCwyOCArNTAsMjggQEAgRGF0ZVBpY2tlckNsaWVudDo6fkRhdGVQaWNrZXJDbGllbnQo
KQogdm9pZCBEYXRlUGlja2VyQ2xpZW50OjpnZW5lcmF0ZUhUTUwoQmxhY2tCZXJyeTo6UGxhdGZv
cm06OkJsYWNrQmVycnlJbnB1dFR5cGUgdHlwZSwgY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJTdHJpbmcmIHZhbHVlLCBjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgbWlu
LCBjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgbWF4LCBkb3VibGUgc3RlcCkK
IHsKICAgICBTdHJpbmdCdWlsZGVyIHNvdXJjZTsKLSAgICBzb3VyY2UuYXBwZW5kKCI8c3R5bGU+
XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPHN0eWxlPlxuIik7CiAgICAgLy8gSW5j
bHVkZSBDU1MgZmlsZS4KICAgICBzb3VyY2UuYXBwZW5kKHBvcHVwQ29udHJvbEJsYWNrQmVycnlD
c3MsCiAgICAgICAgICAgICBzaXplb2YocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcykpOwotICAg
IHNvdXJjZS5hcHBlbmQoIjwvc3R5bGU+XG48c3R5bGU+Iik7CisgICAgc291cmNlLmFwcGVuZExp
dGVyYWwoIjwvc3R5bGU+XG48c3R5bGU+Iik7CiAgICAgc291cmNlLmFwcGVuZCh0aW1lQ29udHJv
bEJsYWNrQmVycnlDc3MsCiAgICAgICAgICAgICBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5
Q3NzKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKLSAg
ICBzb3VyY2UuYXBwZW5kKCI8c2NyaXB0PlxuIik7Ci0gICAgc291cmNlLmFwcGVuZCgid2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CisgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIjwvc3R5bGU+PC9oZWFkPjxib2R5PlxuIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICI8c2NyaXB0PlxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsiKTsKICAgICBzd2l0Y2ggKHR5cGUp
IHsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlOgotICAgICAg
ICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlXCIsICIpOwor
ICAgICAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LnBvcHVwY29udHJvbC5zaG93KFwi
RGF0ZVwiLCAiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6SW5wdXRUeXBlVGltZToKLSAgICAgICAgc291cmNlLmFwcGVuZCgid2luZG93LnBvcHVwY29u
dHJvbC5zaG93KFwiVGltZVwiLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndp
bmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIlRpbWVcIiwgIik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OklucHV0VHlwZURhdGVUaW1lOgotICAgICAgICBz
b3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlVGltZVwiLCAiKTsK
KyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhc
IkRhdGVUaW1lXCIsICIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsOgotICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3
aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlVGltZUxvY2FsXCIsICIpOworICAgICAgICBz
b3VyY2UuYXBwZW5kTGl0ZXJhbCgid2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiRGF0ZVRpbWVM
b2NhbFwiLCAiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6SW5wdXRUeXBlTW9udGg6CiAgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRU
eXBlV2VlazoKQEAgLTgxLDIxICs4MSwyMSBAQCB2b2lkIERhdGVQaWNrZXJDbGllbnQ6OmdlbmVy
YXRlSFRNTChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlucHV0VHlwZSB0eQogICAg
IGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICBzb3VyY2UuYXBwZW5kKCJcIiIgKyBTdHJp
bmcodmFsdWUuaW1wbCgpKSArICJcIiwgIik7CiAgICAgZWxzZQotICAgICAgICBzb3VyY2UuYXBw
ZW5kKCIwLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjAsICIpOwogCiAgICAg
aWYgKCFtaW4uaXNFbXB0eSgpKQogICAgICAgICBzb3VyY2UuYXBwZW5kKFN0cmluZyhtaW4uaW1w
bCgpKSArICIsICIpOwogICAgIGVsc2UKLSAgICAgICAgc291cmNlLmFwcGVuZCgiMCwgIik7Cisg
ICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIwLCAiKTsKICAgICBpZiAoIW1heC5pc0VtcHR5
KCkpCiAgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nKG1heC5pbXBsKCkpICsgIiwgIik7CiAg
ICAgZWxzZQotICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAgICAgICAgc291cmNlLmFw
cGVuZExpdGVyYWwoIjAsICIpOwogICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nOjpudW1iZXIoc3Rl
cCkpOwotICAgIHNvdXJjZS5hcHBlbmQoIik7IFxuIH0pOyBcbiIpOworICAgIHNvdXJjZS5hcHBl
bmRMaXRlcmFsKCIpOyBcbiB9KTsgXG4iKTsKICAgICBzb3VyY2UuYXBwZW5kKHRpbWVDb250cm9s
QmxhY2tCZXJyeUpzLCBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5SnMpKTsKLSAgICBzb3Vy
Y2UuYXBwZW5kKCI8L3NjcmlwdD5cbiIpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvYm9keT4gPC9o
dG1sPlxuIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvc2NyaXB0PlxuIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICI8L2JvZHk+IDwvaHRtbD5cbiIpOwogICAgIG1fc291cmNlID0g
c291cmNlLnRvU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwCmluZGV4IDEz
OGE2NzE4Li44ZTcxNjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKQEAgLTY2LDY0ICs2
Niw3MCBAQCB2b2lkIFNlbGVjdFBvcHVwQ2xpZW50OjpnZW5lcmF0ZUhUTUwoYm9vbCBtdWx0aXBs
ZSwgaW50IHNpemUsIGNvbnN0IFNjb3BlQXJyYXk8QgogICAgIGNvbnN0IGludCogaXRlbVR5cGUs
IGJvb2wqIHNlbGVjdGVkcykKIHsKICAgICBTdHJpbmdCdWlsZGVyIHNvdXJjZTsKLSAgICBzb3Vy
Y2UuYXBwZW5kKCI8c3R5bGU+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiPHN0eWxl
PlxuIik7CiAgICAgLy8gSW5jbHVkZSBDU1MgZmlsZS4KICAgICBzb3VyY2UuYXBwZW5kKHBvcHVw
Q29udHJvbEJsYWNrQmVycnlDc3MsCiAgICAgICAgICAgICBzaXplb2YocG9wdXBDb250cm9sQmxh
Y2tCZXJyeUNzcykpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvc3R5bGU+XG48c3R5bGU+Iik7Cisg
ICAgc291cmNlLmFwcGVuZExpdGVyYWwoIjwvc3R5bGU+XG48c3R5bGU+Iik7CiAgICAgc291cmNl
LmFwcGVuZChzZWxlY3RDb250cm9sQmxhY2tCZXJyeUNzcywKICAgICAgICAgICAgIHNpemVvZihz
ZWxlY3RDb250cm9sQmxhY2tCZXJyeUNzcykpOwotICAgIHNvdXJjZS5hcHBlbmQoIjwvc3R5bGU+
PC9oZWFkPjxib2R5PlxuIik7Ci0gICAgc291cmNlLmFwcGVuZCgiPHNjcmlwdD5cbiIpOwotICAg
IHNvdXJjZS5hcHBlbmQoIndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24g
KCkgeyIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCI8L3N0eWxlPjwvaGVhZD48Ym9keT5c
biIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiPHNjcmlwdD5cbiIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAid2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7
Iik7CiAgICAgaWYgKG1fbXVsdGlwbGUpCi0gICAgICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5z
ZWxlY3Quc2hvdyh0cnVlLCAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIndpbmRv
dy5zZWxlY3Quc2hvdyh0cnVlLCAiKTsKICAgICBlbHNlCi0gICAgICAgIHNvdXJjZS5hcHBlbmQo
IndpbmRvdy5zZWxlY3Quc2hvdyhmYWxzZSwgIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRl
cmFsKCJ3aW5kb3cuc2VsZWN0LnNob3coZmFsc2UsICIpOwogICAgIC8vIEFkZCBsYWJlbHMuCi0g
ICAgc291cmNlLmFwcGVuZCgiWyIpOworICAgIHNvdXJjZS5hcHBlbmQoJ1snKTsKICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICBzb3VyY2UuYXBwZW5kKCInIiAr
IFN0cmluZyhsYWJlbHNbaV0uaW1wbCgpKS5yZXBsYWNlKCdcXCcsICJcXFxcIikucmVwbGFjZSgn
XCcnLCAiXFwnIikgKyAiJyIpOwogICAgICAgICAvLyBEb24ndCBhcHBlbmQgJywnIHRvIGxhc3Qg
ZWxlbWVudC4KICAgICAgICAgaWYgKGkgIT0gc2l6ZSAtIDEpCi0gICAgICAgICAgICBzb3VyY2Uu
YXBwZW5kKCIsICIpOworICAgICAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIiwgIik7CiAg
ICAgfQotICAgIHNvdXJjZS5hcHBlbmQoIl0sICIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFs
KCJdLCAiKTsKICAgICAvLyBBZGQgZW5hYmxlcy4KLSAgICBzb3VyY2UuYXBwZW5kKCJbIik7Cisg
ICAgc291cmNlLmFwcGVuZCgnWycpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsr
KSB7Ci0gICAgICAgIHNvdXJjZS5hcHBlbmQoZW5hYmxlZHNbaV0/ICJ0cnVlIiA6ICJmYWxzZSIp
OworICAgICAgICBpZiAoZW5hYmxlZHNbaV0pCisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0
ZXJhbCgidHJ1ZSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kTGl0
ZXJhbCgiZmFsc2UiKTsKICAgICAgICAgLy8gRG9uJ3QgYXBwZW5kICcsJyB0byBsYXN0IGVsZW1l
bnQuCiAgICAgICAgIGlmIChpICE9IHNpemUgLSAxKQotICAgICAgICAgICAgc291cmNlLmFwcGVu
ZCgiLCAiKTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIsICIpOwogICAgIH0K
LSAgICBzb3VyY2UuYXBwZW5kKCJdLCAiKTsKKyAgICBzb3VyY2UuYXBwZW5kTGl0ZXJhbCgiXSwg
Iik7CiAgICAgLy8gQWRkIGl0ZW1UeXBlLgotICAgIHNvdXJjZS5hcHBlbmQoIlsiKTsKKyAgICBz
b3VyY2UuYXBwZW5kKCdbJyk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsK
LSAgICAgICAgc291cmNlLmFwcGVuZChTdHJpbmc6Om51bWJlcihpdGVtVHlwZVtpXSkpOworICAg
ICAgICBzb3VyY2UuYXBwZW5kTnVtYmVyKGl0ZW1UeXBlW2ldKTsKICAgICAgICAgLy8gRG9uJ3Qg
YXBwZW5kICcsJyB0byBsYXN0IGVsZW1lbnQuCiAgICAgICAgIGlmIChpICE9IHNpemUgLSAxKQot
ICAgICAgICAgICAgc291cmNlLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBl
bmRMaXRlcmFsKCIsICIpOwogICAgIH0KLSAgICBzb3VyY2UuYXBwZW5kKCJdLCAiKTsKKyAgICBz
b3VyY2UuYXBwZW5kTGl0ZXJhbCgiXSwgIik7CiAgICAgLy8gQWRkIHNlbGVjdGVkcwotICAgIHNv
dXJjZS5hcHBlbmQoIlsiKTsKKyAgICBzb3VyY2UuYXBwZW5kKCdbJyk7CiAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgc291cmNlLmFwcGVuZChzZWxlY3RlZHNb
aV0/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgICBpZiAoc2VsZWN0ZWRzW2ldKQorICAgICAg
ICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoInRydWUiKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoImZhbHNlIik7CiAgICAgICAgIC8vIERvbid0IGFw
cGVuZCAnLCcgdG8gbGFzdCBlbGVtZW50LgogICAgICAgICBpZiAoaSAhPSBzaXplIC0gMSkKLSAg
ICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5k
TGl0ZXJhbCgiLCAiKTsKICAgICB9Ci0gICAgc291cmNlLmFwcGVuZCgiXSAiKTsKLSAgICBzb3Vy
Y2UuYXBwZW5kKCIsICdDYW5jZWwnIik7CisgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIl0gIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICIsICdDYW5jZWwnIik7CiAgICAgLy8gSWYgbXVsdGkt
c2VsZWN0LCBhZGQgT0sgYnV0dG9uIGZvciBjb25maXJtLgogICAgIGlmIChtX211bHRpcGxlKQot
ICAgICAgICBzb3VyY2UuYXBwZW5kKCIsICdPSyciKTsKLSAgICBzb3VyY2UuYXBwZW5kKCIpOyBc
biB9KTsgXG4iKTsKKyAgICAgICAgc291cmNlLmFwcGVuZExpdGVyYWwoIiwgJ09LJyIpOworICAg
IHNvdXJjZS5hcHBlbmRMaXRlcmFsKCIpOyBcbiB9KTsgXG4iKTsKICAgICBzb3VyY2UuYXBwZW5k
KHNlbGVjdENvbnRyb2xCbGFja0JlcnJ5SnMsIHNpemVvZihzZWxlY3RDb250cm9sQmxhY2tCZXJy
eUpzKSk7Ci0gICAgc291cmNlLmFwcGVuZCgiPC9zY3JpcHQ+XG4iKTsKLSAgICBzb3VyY2UuYXBw
ZW5kKCI8L2JvZHk+IDwvaHRtbD5cbiIpOworICAgIHNvdXJjZS5hcHBlbmRMaXRlcmFsKCI8L3Nj
cmlwdD5cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiPC9ib2R5PiA8L2h0bWw+XG4iKTsK
ICAgICBtX3NvdXJjZSA9IHNvdXJjZS50b1N0cmluZygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjFk
MGExMC4uNTBjNmQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA5LTEwICBK
aW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBEZXBsb3kg
U3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgYW5kIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExp
dGVyYWwoKSBpbiBtb3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTYzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVc2UgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgaW5zdGVhZCBv
ZiBTdHJpbmc6Om51bWJlcigpLiBBbHNvIGRlcGxveSAKKyAgICAgICAgU3RyaW5nQnVpbGRlcjo6
YXBwZW5kTGl0ZXJhbCgpIGluc3RlYWQgb2YgU3RyaW5nOjphcHBlbmQoKSBpbiB0aGUgc3Vycm91
bmRpbmcgY29kZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdl
VG9GaWxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tldFNl
cnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRTZXJ2ZXJDb25u
ZWN0aW9uOjpzZW5kSFRUUFJlc3BvbnNlSGVhZGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL3F0L1dlYkluc3BlY3RvclNlcnZlclF0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yU2VydmVyOjppbnNwZWN0b3JVcmxGb3JQYWdlSUQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JTZXJ2ZXI6OmJ1aWxkUGFnZUxpc3QpOgorCiAyMDEyLTA5LTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7
IHJvbGxpbmcgb3V0IHIxMjgwODEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTWVtb3J5U2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVtb3J5U2Ft
cGxlci5jcHAKaW5kZXggNmY3Nzg0My4uODY4ZTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJNZW1vcnlTYW1wbGVyLmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgV2ViTWVtb3J5
U2FtcGxlcjo6YXBwZW5kQ3VycmVudE1lbW9yeVVzYWdlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRs
ZSYgZmlsZSkKICAgICAgICAgc3RhdFN0cmluZy5hcHBlbmQoc2VwYXJhdG9yKTsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZW1vcnlTdGF0cy52YWx1ZXMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgICAgIHN0YXRTdHJpbmcuYXBwZW5kKHNlcGFyYXRvcik7Ci0gICAgICAgICAgICBz
dGF0U3RyaW5nLmFwcGVuZChTdHJpbmc6Om51bWJlcihtZW1vcnlTdGF0cy52YWx1ZXNbaV0pKTsK
KyAgICAgICAgICAgIHN0YXRTdHJpbmcuYXBwZW5kTnVtYmVyKG1lbW9yeVN0YXRzLnZhbHVlc1tp
XSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgc3RhdFN0cmluZy5hcHBlbmQoJ1xuJyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYlNvY2tl
dFNlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9XZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA1NzIwNmViLi5hYmM4
MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViU29ja2V0U2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTk5
LDE4ICs5OSwxOSBAQCB2b2lkIFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb246OnNlbmRXZWJTb2Nr
ZXRNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHZvaWQgV2ViU29ja2V0U2VydmVyQ29u
bmVjdGlvbjo6c2VuZEhUVFBSZXNwb25zZUhlYWRlcihpbnQgc3RhdHVzQ29kZSwgY29uc3QgU3Ry
aW5nJiBzdGF0dXNUZXh0LCBjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMpCiB7CiAg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJIVFRQLzEuMSAi
KTsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihzdGF0dXNDb2RlKSk7Ci0gICAg
YnVpbGRlci5hcHBlbmQoIiAiKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkhUVFAvMS4x
ICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN0YXR1c0NvZGUpOworICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7CiAgICAgYnVpbGRlci5hcHBlbmQoc3RhdHVzVGV4dCk7Ci0gICAgYnVpbGRl
ci5hcHBlbmQoIlxyXG4iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKICAg
ICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBoZWFkZXJGaWVsZHMuZW5kKCk7
CiAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGhlYWRlckZpZWxk
cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXQt
PmZpcnN0KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIjogIik7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGl0LT5zZWNvbmQgKyAiXHJcbiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0LT5zZWNvbmQpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKICAgICB9Ci0gICAgYnVpbGRlci5hcHBlbmQo
IlxyXG4iKTsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxyXG4iKTsKIAogICAgIENTdHJp
bmcgaGVhZGVyID0gYnVpbGRlci50b1N0cmluZygpLmxhdGluMSgpOwogICAgIG1fc29ja2V0LT5z
ZW5kKGhlYWRlci5kYXRhKCksIGhlYWRlci5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3F0L1dlYkluc3BlY3RvclNlcnZlclF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5z
cGVjdG9yU2VydmVyUXQuY3BwCmluZGV4IGMxM2ZhNGMuLjE4ODI1ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvcXQvV2ViSW5zcGVjdG9yU2Vy
dmVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
cXQvV2ViSW5zcGVjdG9yU2VydmVyUXQuY3BwCkBAIC02OCwzNCArNjgsMzYgQEAgU3RyaW5nIFdl
Ykluc3BlY3RvclNlcnZlcjo6aW5zcGVjdG9yVXJsRm9yUGFnZUlEKGludCBwYWdlSWQpCiAgICAg
aWYgKHBhZ2VJZCA8PSAwIHx8IHNlcnZlclN0YXRlKCkgPT0gQ2xvc2VkKQogICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBw
ZW5kKCJodHRwOi8vIik7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJodHRwOi8vIik7CiAg
ICAgYnVpbGRlci5hcHBlbmQoYmluZEFkZHJlc3MoKSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoIjoi
KTsKLSAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihwb3J0KCkpKTsKKyAgICBidWls
ZGVyLmFwcGVuZCgnOicpOworICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CiAgICAg
YnVpbGRlci5hcHBlbmQocmVtb3RlSW5zcGVjdG9yUGFnZVBhdGgoKSk7Ci0gICAgYnVpbGRlci5h
cHBlbmQoU3RyaW5nOjpudW1iZXIocGFnZUlkKSk7CisgICAgYnVpbGRlci5hcHBlbmROdW1iZXIo
cGFnZUlkKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCiB2b2lkIFdlYklu
c3BlY3RvclNlcnZlcjo6YnVpbGRQYWdlTGlzdChWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYg
Y29udGVudFR5cGUpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIu
YXBwZW5kKCJbICIpOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiWyAiKTsKICAgICBDbGll
bnRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fY2xpZW50TWFwLmVuZCgpOwogICAgIGZvciAoQ2xpZW50
TWFwOjppdGVyYXRvciBpdCA9IG1fY2xpZW50TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
ewogICAgICAgICBXZWJQYWdlUHJveHkqIHdlYlBhZ2UgPSBpdC0+c2Vjb25kLT5wYWdlKCk7CiAg
ICAgICAgIGlmIChpdCAhPSBtX2NsaWVudE1hcC5iZWdpbigpKQotICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQoIiwgIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJ7IFwiaWRcIjogIiArIFN0
cmluZzo6bnVtYmVyKGl0LT5maXJzdCkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCBcInRp
dGxlXCI6IFwiIik7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgieyBcImlkXCI6ICIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihpdC0+Zmlyc3QpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIiwgXCJ0aXRsZVwiOiBcIiIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5w
YWdlVGl0bGUoKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcIiwgXCJ1cmxcIjogXCIiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJ1cmxcIjogXCIiKTsKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQod2ViUGFnZS0+YWN0aXZlVVJMKCkpOwotICAgICAgICBidWlsZGVy
LmFwcGVuZCgiXCIsIFwiaW5zcGVjdG9yVXJsXCI6IFwiIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKHJlbW90ZUluc3BlY3RvclBhZ2VQYXRoKCkgKyBTdHJpbmc6Om51bWJlcihpdC0+Zmlyc3Qp
KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoIlwiIH0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJcIiwgXCJpbnNwZWN0b3JVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQocmVtb3RlSW5zcGVjdG9yUGFnZVBhdGgoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKGl0LT5maXJzdCk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIp
OwogICAgIH0KLSAgICBidWlsZGVyLmFwcGVuZCgiIF0iKTsKKyAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiBdIik7CiAgICAgQ1N0cmluZyBjc3RyID0gYnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KTsKICAgICBkYXRhLmFwcGVuZChjc3RyLmRhdGEoKSwgY3N0ci5sZW5ndGgoKSk7CiAgICAgY29u
dGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>