<?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>37719</bug_id>
          
          <creation_ts>2010-04-16 11:47:49 -0700</creation_ts>
          <short_desc>Some HTML5 Input tags not treated as needing an input method.</short_desc>
          <delta_ts>2010-06-18 03:03:24 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ray">Raymond.Rischpater</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>hausmann</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>oliver</cc>
    
    <cc>Raymond.Rischpater</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>213331</commentid>
    <comment_count>0</comment_count>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-16 11:47:49 -0700</bug_when>
    <thetext>In HTMLInputElement.cpp, shouldUseInputMethod does not return true for HTML5 input types (TELEPHONE, NUMBER, URL, and EMAIL).

When running on a touch-only device, touching one of these HTML5 input types does not result in a virtual keyboard, and the user cannot enter data.

(Patch to be supplied for fix shortly.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213421</commentid>
    <comment_count>1</comment_count>
      <attachid>53563</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-16 14:11:26 -0700</bug_when>
    <thetext>Created attachment 53563
Proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213462</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-16 16:02:39 -0700</bug_when>
    <thetext>See also: bug 34285, bug 30023.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214138</commentid>
    <comment_count>3</comment_count>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-19 11:45:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; See also: bug 34285, bug 30023.

Good point --- oddly, we&apos;re not seeing this problem on Symbian; we should probably add the PASSWORD line there as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214140</commentid>
    <comment_count>4</comment_count>
      <attachid>53699</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-19 11:48:17 -0700</bug_when>
    <thetext>Created attachment 53699
Patch set including comments regarding similar defect on other platforms for PASSWORD input fields.

This proposed fix also addresses 34285&apos;s problem with PASSWORD type fields on some platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214301</commentid>
    <comment_count>5</comment_count>
      <attachid>53734</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-19 16:01:56 -0700</bug_when>
    <thetext>Created attachment 53734
This changeset contains the same fix and fixes for all style errors in the current version.

Having not submitted to WebKit before, I wasn&apos;t sure if I should provide only the minimal fix meeting our style guidelines, or a larger patch file that also addresses existing style errors in the file before I came along. This patch has both the fix for the issue &amp; fixes for all style problems found by check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214702</commentid>
    <comment_count>6</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2010-04-20 09:34:16 -0700</bug_when>
    <thetext>&gt; Having not submitted to WebKit before, I wasn&apos;t sure if I should provide only
&gt; the minimal fix meeting our style guidelines, or a larger patch file that also
&gt; addresses existing style errors in the file before I came along. This patch has
&gt; both the fix for the issue &amp; fixes for all style problems found by
&gt; check-webkit-style.

I really depends on reviewers. Some prefer to leave the style change for another one (it makes the diff difficult to read), other prefer to do them as you go (and avoid clobbering git/svn blame).

Just a few comments, your change would definitely like to have an updated version of the ChangeLog to mention which methods are modified and which are just put to the right style. I had a really hard time seeing your change among the style noise.

Also make sure you set r? to all patches you want reviewers to look at and not just the first one. Make sure you obsolete the old patches so that they are not reviewed in lieu of the latest one.

And welcome to WebKit!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214713</commentid>
    <comment_count>7</comment_count>
      <attachid>53830</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 09:59:41 -0700</bug_when>
    <thetext>Created attachment 53830
Called out actual method to be changed in ChangeLog for reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214716</commentid>
    <comment_count>8</comment_count>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 10:00:41 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Having not submitted to WebKit before, I wasn&apos;t sure if I should provide only
&gt; &gt; the minimal fix meeting our style guidelines, or a larger patch file that also
&gt; &gt; addresses existing style errors in the file before I came along. This patch has
&gt; &gt; both the fix for the issue &amp; fixes for all style problems found by
&gt; &gt; check-webkit-style.
&gt; 
&gt; I really depends on reviewers. Some prefer to leave the style change for
&gt; another one (it makes the diff difficult to read), other prefer to do them as
&gt; you go (and avoid clobbering git/svn blame).
&gt; 
&gt; Just a few comments, your change would definitely like to have an updated
&gt; version of the ChangeLog to mention which methods are modified and which are
&gt; just put to the right style. I had a really hard time seeing your change among
&gt; the style noise.
&gt; 
&gt; Also make sure you set r? to all patches you want reviewers to look at and not
&gt; just the first one. Make sure you obsolete the old patches so that they are not
&gt; reviewed in lieu of the latest one.
&gt; 
&gt; And welcome to WebKit!
Thanks for the warm welcome, and feedback!

I&apos;ve deprecated the older patches, and provided a new patch with a better ChangeLog. The style fixes definitely make the older patch file a bear to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214749</commentid>
    <comment_count>9</comment_count>
      <attachid>53830</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-20 10:32:05 -0700</bug_when>
    <thetext>Comment on attachment 53830
Called out actual method to be changed in ChangeLog for reviewers.

We need to separate the formatting change from the behavior change; it&apos;s simply not possible to review without a diff showing what changed. Please do one at a time. I don&apos;t care what order they go in.

Also, bug fixes need to come with a regression test, either automated or manual. Does this change have any effect on desktop platforms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214819</commentid>
    <comment_count>10</comment_count>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 11:57:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 53830 [details])
&gt; We need to separate the formatting change from the behavior change; it&apos;s simply
&gt; not possible to review without a diff showing what changed. Please do one at a
&gt; time. I don&apos;t care what order they go in.
&gt; 
&gt; Also, bug fixes need to come with a regression test, either automated or
&gt; manual. Does this change have any effect on desktop platforms?


Thanks for the feedback on the style fixes. I&apos;ll open another bug and provide just the style changes in that bug, and mark the patches here with style fixes as not relevant.

I tested on the desktop (Mac) --- this does not have an effect on desktop platforms. I&apos;m not yet sure how best to test this private method with a regression test; I can begin to look at that now if it&apos;s necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214820</commentid>
    <comment_count>11</comment_count>
      <attachid>53830</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 11:58:13 -0700</bug_when>
    <thetext>Comment on attachment 53830
Called out actual method to be changed in ChangeLog for reviewers.

Marking obsolete as the original patch without style changes is relevant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214822</commentid>
    <comment_count>12</comment_count>
      <attachid>53734</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 11:59:05 -0700</bug_when>
    <thetext>Comment on attachment 53734
This changeset contains the same fix and fixes for all style errors in the current version.

Feedback from Darin @ Apple indicates that style changes should not be included with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215057</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-20 16:35:10 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; In HTMLInputElement.cpp, shouldUseInputMethod does not return true for HTML5
&gt; input types (TELEPHONE, NUMBER, URL, and EMAIL).
&gt; 
&gt; When running on a touch-only device, touching one of these HTML5 input types
&gt; does not result in a virtual keyboard, and the user cannot enter data.

Why do you check shouldUseInputMethod() for keyboard input in your platform?
shouldUseInputMethod() was introduced to control IME, which is a software layer to input non-ASCII characters such as Chinese and Japanese.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215462</commentid>
    <comment_count>14</comment_count>
      <attachid>53699</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-21 13:19:11 -0700</bug_when>
    <thetext>Comment on attachment 53699
Patch set including comments regarding similar defect on other platforms for PASSWORD input fields.

This should use a switch statement so we get a warning if we leave out any input types. This would prevent this kind of problem in the future as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215467</commentid>
    <comment_count>15</comment_count>
      <attachid>53984</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-21 13:27:51 -0700</bug_when>
    <thetext>Created attachment 53984
Patch fixes change log entry details.

Over-the-shoulder review showed I was using prepare-ChangeLog incorrectly; change log now correctly generated with prepare-ChangeLog to ensure all fields appear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215469</commentid>
    <comment_count>16</comment_count>
      <attachid>53984</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-21 13:31:20 -0700</bug_when>
    <thetext>Comment on attachment 53984
Patch fixes change log entry details.

This is OK, but it would be better to use a switch statement so we get a warning when we add a new input type without thinking about the value this function should return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215498</commentid>
    <comment_count>17</comment_count>
      <attachid>53991</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-21 14:21:20 -0700</bug_when>
    <thetext>Created attachment 53991
Implemented as a switch/case per review comment from Darin.

Darin suggests a switch statement for the change; implemented as suggested.
Added Darin Adler to reviewer list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215503</commentid>
    <comment_count>18</comment_count>
      <attachid>53991</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-04-21 14:34:26 -0700</bug_when>
    <thetext>Comment on attachment 53991
Implemented as a switch/case per review comment from Darin.

Marking the attachment as patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215506</commentid>
    <comment_count>19</comment_count>
      <attachid>53993</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-21 14:41:37 -0700</bug_when>
    <thetext>Created attachment 53993
Neglected assert required at end of function for notifying developer of missing types.

Wasn&apos;t sure at first if case statements were verified by compile-time / test-time checks or not. Added assertion per other switch/case statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215600</commentid>
    <comment_count>20</comment_count>
      <attachid>53984</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-21 18:12:06 -0700</bug_when>
    <thetext>Comment on attachment 53984
Patch fixes change log entry details.

Cleared Darin Adler&apos;s review+ from obsolete attachment 53984 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215777</commentid>
    <comment_count>21</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-22 01:28:05 -0700</bug_when>
    <thetext>This change will make a regression on Safari/Windows and Chromium/Windows.
shouldUseInputMethod() doesn&apos;t return true for type=password so that users type their passwords with IME mistakenly.
I don&apos;t agree that shouldUseInputMethod() returns true for NUMBER, EMAIL and PASSWORD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215905</commentid>
    <comment_count>22</comment_count>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-22 09:11:23 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; This change will make a regression on Safari/Windows and Chromium/Windows.
&gt; shouldUseInputMethod() doesn&apos;t return true for type=password so that users type
&gt; their passwords with IME mistakenly.
&gt; I don&apos;t agree that shouldUseInputMethod() returns true for NUMBER, EMAIL and
&gt; PASSWORD.

Understood. 

Would a separate set of virtual-input-only events and a test for same, and handling of the events in the Qt port be agreeable? I can see you don&apos;t want to blur the purpose of the existing events and how they&apos;re handled.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215906</commentid>
    <comment_count>23</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-04-22 09:17:44 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; This change will make a regression on Safari/Windows and Chromium/Windows.
&gt; shouldUseInputMethod() doesn&apos;t return true for type=password so that users type
&gt; their passwords with IME mistakenly.
&gt; I don&apos;t agree that shouldUseInputMethod() returns true for NUMBER, EMAIL and
&gt; PASSWORD.

The reason IME&apos;s are disabled for the password field is because IMEs can access the underlying password and display it in clear text -- eg. you can use it to access the stored password for any site somewhat trivially.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215908</commentid>
    <comment_count>24</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-22 09:19:58 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Would a separate set of virtual-input-only events and a test for same, and
&gt; handling of the events in the Qt port be agreeable? I can see you don&apos;t want to
&gt; blur the purpose of the existing events and how they&apos;re handled.

I think 
  isContentEditable() || isTextFormControl()
is sufficient for your purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215910</commentid>
    <comment_count>25</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-22 09:24:23 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; The reason IME&apos;s are disabled for the password field is because IMEs can access
&gt; the underlying password and display it in clear text -- eg. you can use it to
&gt; access the stored password for any site somewhat trivially.

Interesting.  We had better have a comment about it in the code.
So shouldUseInputMethod() should be &quot;return isTextField() &amp;&amp; inputType() != PASSWORD;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216087</commentid>
    <comment_count>26</comment_count>
      <attachid>54097</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-22 14:33:50 -0700</bug_when>
    <thetext>Created attachment 54097
Patch shouldUseInputMethod() to use isTextField &amp; inputType

Changed to include comment &amp; use isTextField() &amp;&amp; inputType() to determine result instead of hard-coded comparisons. shouldUseInputMethod now returns true if the field in question is a text field (as determined by isTextField) that is editable and not a password field, as previously suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216171</commentid>
    <comment_count>27</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-22 17:14:02 -0700</bug_when>
    <thetext>This might be even better:

    return isTextField() &amp;&amp; !isPasswordField();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216250</commentid>
    <comment_count>28</comment_count>
      <attachid>54097</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 20:40:05 -0700</bug_when>
    <thetext>Comment on attachment 54097
Patch shouldUseInputMethod() to use isTextField &amp; inputType

Clearing flags on attachment: 54097

Committed r58144: &lt;http://trac.webkit.org/changeset/58144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216252</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-22 20:40:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216974</commentid>
    <comment_count>30</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-04-26 03:42:07 -0700</bug_when>
    <thetext>Revision r58144 cherry-picked into qtwebkit-2.0 with commit 2b4fb28811517b9e4512813fdd86b3a0cd43ae0f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239835</commentid>
    <comment_count>31</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-18 03:03:24 -0700</bug_when>
    <thetext>cherry-picked into qtwebkit-4.6 with commit 4c3c42092e1325861ac1b5201e3be5f38646bf76</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53563</attachid>
            <date>2010-04-16 14:11:26 -0700</date>
            <delta_ts>2010-04-20 09:57:49 -0700</delta_ts>
            <desc>Proposed fix</desc>
            <filename>vkbtypefix-against-57695.txt</filename>
            <type>text/plain</type>
            <size>1337</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDU3NzM1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQt
MTYgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNjaHBhdGVyQE5va2lhLmNvbT4KKworICAg
ICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCwgc2hvdWxkVXNlSW5wdXRNZXRob2QgZG9lcyBu
b3QgcmV0dXJuIHRydWUgZm9yCisgICAgICAgIEhUTUw1IGlucHV0IHR5cGVzIChURUxFUEhPTkUs
IE5VTUJFUiwgVVJMLCBhbmQgRU1BSUwpLiBUaGlzCisgICAgICAgIHByZXZlbnRzIHRoZSB2aXJ0
dWFsIGtleWJvYXJkIGZyb20gYmVpbmcgYnJvdWdodCB1cCBmb3IgdGhlc2UKKyAgICAgICAgaW5w
dXQgdHlwZXMuCisKKyAgICAgICAgRml4ZXMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNzcxOT4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6
CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1ldGhvZCkKKwogMjAx
MC0wNC0wOSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBjcmFzaCBmaXguCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzM0LDcgKzczNCw5IEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6YWJvdXRUb1VubG9hZCgpCiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5w
dXRNZXRob2QoKSBjb25zdAogewotICAgIHJldHVybiBtX3R5cGUgPT0gVEVYVCB8fCBtX3R5cGUg
PT0gU0VBUkNIIHx8IG1fdHlwZSA9PSBJU0lOREVYOworICAgIHJldHVybiBtX3R5cGUgPT0gVEVY
VCB8fCBtX3R5cGUgPT0gU0VBUkNIIHx8IG1fdHlwZSA9PSBJU0lOREVYIAorICAgICAgICAgICB8
fCBtX3R5cGUgPT0gVEVMRVBIT05FIHx8IG1fdHlwZSA9PSBOVU1CRVIgCisgICAgICAgICAgIHx8
IG1fdHlwZSA9PSBVUkwgfHwgbV90eXBlID09IEVNQUlMOwogfQogCiB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53699</attachid>
            <date>2010-04-19 11:48:17 -0700</date>
            <delta_ts>2010-04-21 13:27:51 -0700</delta_ts>
            <desc>Patch set including comments regarding similar defect on other platforms for PASSWORD input fields.</desc>
            <filename>vkbtypefix-against-57695.txt</filename>
            <type>text/plain</type>
            <size>1363</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cgICAocmV2aXNpb24gNTc3
MzUpCisrKyBDaGFuZ2VMb2cgICAod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEw
LTA0LTE2ICBSYXkgUmlzY2hwYXRlciAgPFJheW1vbmQuUmlzY2hwYXRlckBOb2tpYS5jb20+CisK
KyAgICAgICAgSW4gSFRNTElucHV0RWxlbWVudC5jcHAsIHNob3VsZFVzZUlucHV0TWV0aG9kIGRv
ZXMgbm90IHJldHVybiB0cnVlIGZvcgorICAgICAgICBIVE1MNSBpbnB1dCB0eXBlcyAoVEVMRVBI
T05FLCBOVU1CRVIsIFVSTCwgYW5kIEVNQUlMKS4gVGhpcworICAgICAgICBwcmV2ZW50cyB0aGUg
dmlydHVhbCBrZXlib2FyZCBmcm9tIGJlaW5nIGJyb3VnaHQgdXAgZm9yIHRoZXNlCisgICAgICAg
IGlucHV0IHR5cGVzLgorCisgICAgICAgIEZpeGVzIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzc3MTk+CisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5wdXRNZXRob2QpCisK
IDIwMTAtMDQtMDkgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgoK
ICAgICAgICAgVW5yZXZpZXdlZCBjcmFzaCBmaXguCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwICAgKHJldmlzaW9uIDU3NzM1KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwICAgKHdvcmtpbmcgY29weSkKQEAgLTczNCw3ICs3MzQsOSBAQCB2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OmFib3V0VG9VbmxvYWQoKQoKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2hvdWxk
VXNlSW5wdXRNZXRob2QoKSBjb25zdAogewotICAgIHJldHVybiBtX3R5cGUgPT0gVEVYVCB8fCBt
X3R5cGUgPT0gU0VBUkNIIHx8IG1fdHlwZSA9PSBJU0lOREVYOworICAgIHJldHVybiBtX3R5cGUg
PT0gVEVYVCB8fCBtX3R5cGUgPT0gU0VBUkNIIHx8IG1fdHlwZSA9PSBJU0lOREVYIHx8CiBtX3R5
cGUgPT0gUEFTU1dPUkQKKyAgICAgICAgICAgfHwgbV90eXBlID09IFRFTEVQSE9ORSB8fCBtX3R5
cGUgPT0gTlVNQkVSCisgICAgICAgICAgIHx8IG1fdHlwZSA9PSBVUkwgfHwgbV90eXBlID09IEVN
QUlMOwogfQoKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6aGFuZGxlRm9jdXNFdmVudCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53734</attachid>
            <date>2010-04-19 16:01:56 -0700</date>
            <delta_ts>2010-04-20 11:59:05 -0700</delta_ts>
            <desc>This changeset contains the same fix and fixes for all style errors in the current version.</desc>
            <filename>vkbtypefix-against-57695-with-style.txt</filename>
            <type>text/plain</type>
            <size>32372</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDQtMTYgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCwgc2hv
dWxkVXNlSW5wdXRNZXRob2QgZG9lcyBub3QKKyAgICAgICAgcmV0dXJuIHRydWUgZm9yIEhUTUw1
IGlucHV0IHR5cGVzIChURUxFUEhPTkUsIE5VTUJFUiwgVVJMLCBhbmQKKyAgICAgICAgRU1BSUwp
LiBUaGlzIHByZXZlbnRzIHRoZSB2aXJ0dWFsIGtleWJvYXJkIGZyb20gYmVpbmcgYnJvdWdodCB1
cCBmb3IKKyAgICAgICAgdGhlc2UgaW5wdXQgdHlwZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
bHNvIGluY2x1ZGVzIHN0eWxlIGNoYW5nZXMgdG8gZml4IGV4aXN0aW5nIHN0eWxlCisgICAgICAg
IGRldmlhdGlvbnMgaW4gdGhpcyBmaWxlLgorCisgICAgICAgIEZpeGVzIDxodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MTk+CisKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5w
dXRNZXRob2QpCisKIDIwMTAtMDQtMTYgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDU3NzM1KQorKysgV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw2IEBACiAjaW5jbHVk
ZSAiSFRNTEltYWdlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
SFRNTE9wdGlvbkVsZW1lbnQuaCIKLSNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIK
ICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVy
LmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgogI2lu
Y2x1ZGUgIlRleHRFdmVudC5oIgpAQCAtMTcxLDM1ICsxNzEsMzUgQEAKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIERBVEU6
Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAg
ICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICBjYXNlIE1PTlRI
OgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAg
Y2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6
Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VF
SzoKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZSgpLmlzRW1wdHkoKTsKLSAgICAgICAgY2FzZSBD
SEVDS0JPWDoKLSAgICAgICAgICAgIHJldHVybiAhY2hlY2tlZCgpOwotICAgICAgICBjYXNlIFJB
RElPOgotICAgICAgICAgICAgcmV0dXJuICFjaGVja2VkUmFkaW9CdXR0b25zKHRoaXMpLmNoZWNr
ZWRCdXR0b25Gb3JHcm91cChuYW1lKCkpOwotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBISURE
RU46Ci0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAg
Y2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0g
ICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAg
ICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6Cisg
ICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAg
IGNhc2UgU0VBUkNIOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBj
YXNlIFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAgY2FzZSBXRUVLOgorICAgICAgICByZXR1cm4g
dmFsdWUoKS5pc0VtcHR5KCk7CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICAgICAgcmV0dXJuICFj
aGVja2VkKCk7CisgICAgY2FzZSBSQURJTzoKKyAgICAgICAgcmV0dXJuICFjaGVja2VkUmFkaW9C
dXR0b25zKHRoaXMpLmNoZWNrZWRCdXR0b25Gb3JHcm91cChuYW1lKCkpOworICAgIGNhc2UgQ09M
T1I6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIEhJ
RERFTjoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIFJBTkdF
OgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIGJyZWFrOwogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjA5LDQ2ICsyMDksNDIgQEAKIGJv
b2wgSFRNTElucHV0RWxlbWVudDo6cGF0dGVybk1pc21hdGNoKCkgY29uc3QKIHsKICAgICBzd2l0
Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICBjYXNlIENI
RUNLQk9YOgotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAg
IGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2Fz
ZSBGSUxFOgotICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgY2FzZSBJTUFHRToKLSAgICAg
ICAgY2FzZSBJU0lOREVYOgotICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJF
UjoKLSAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2Fz
ZSBSRVNFVDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAg
ICAgY2FzZSBXRUVLOgorICAgIGNhc2UgQlVUVE9OOgorICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAg
Y2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNl
IERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBGSUxFOgorICAgIGNhc2UgSElEREVOOgorICAgIGNh
c2UgSU1BR0U6CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNhc2UgTU9OVEg6CisgICAgY2FzZSBO
VU1CRVI6CisgICAgY2FzZSBSQURJTzoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6
CisgICAgY2FzZSBTVUJNSVQ6CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2UgV0VFSzoKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBQQVNTV09SRDoKKyAg
ICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAg
Y2FzZSBVUkw6CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcGF0dGVybiA9IGdldEF0dHJp
YnV0ZShwYXR0ZXJuQXR0cik7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IHRoaXMtPnZhbHVlKCk7
CisgICAgICAgICAvLyBFbXB0eSB2YWx1ZXMgY2FuJ3QgYmUgbWlzbWF0Y2hlZAorICAgICAgICBp
ZiAocGF0dGVybi5pc0VtcHR5KCkgfHwgdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIFBBU1NXT1JEOgot
ICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgICAgIGNh
c2UgVEVYVDoKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIHBhdHRlcm4gPSBnZXRBdHRyaWJ1dGUocGF0dGVybkF0dHIpOwotICAgICAgICAgICAgU3Ry
aW5nIHZhbHVlID0gdGhpcy0+dmFsdWUoKTsKLQotICAgICAgICAgICAgLy8gRW1wdHkgdmFsdWVz
IGNhbid0IGJlIG1pc21hdGNoZWQKLSAgICAgICAgICAgIGlmIChwYXR0ZXJuLmlzRW1wdHkoKSB8
fCB2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgICAgICBSZWd1bGFyRXhwcmVzc2lvbiBwYXR0ZXJuUmVnRXhwKHBhdHRlcm4sIFRleHRDYXNl
U2Vuc2l0aXZlKTsKLSAgICAgICAgICAgIGludCBtYXRjaExlbmd0aCA9IDA7Ci0gICAgICAgICAg
ICBpbnQgdmFsdWVMZW5ndGggPSB2YWx1ZS5sZW5ndGgoKTsKLSAgICAgICAgICAgIGludCBtYXRj
aE9mZnNldCA9IHBhdHRlcm5SZWdFeHAubWF0Y2godmFsdWUsIDAsICZtYXRjaExlbmd0aCk7Ci0K
LSAgICAgICAgICAgIHJldHVybiBtYXRjaE9mZnNldCAhPSAwIHx8IG1hdGNoTGVuZ3RoICE9IHZh
bHVlTGVuZ3RoOworICAgICAgICAgUmVndWxhckV4cHJlc3Npb24gcGF0dGVyblJlZ0V4cChwYXR0
ZXJuLCBUZXh0Q2FzZVNlbnNpdGl2ZSk7CisgICAgICAgIGludCBtYXRjaExlbmd0aCA9IDA7Cisg
ICAgICAgIGludCB2YWx1ZUxlbmd0aCA9IHZhbHVlLmxlbmd0aCgpOworICAgICAgICBpbnQgbWF0
Y2hPZmZzZXQgPSBwYXR0ZXJuUmVnRXhwLm1hdGNoKHZhbHVlLCAwLCAmbWF0Y2hMZW5ndGgpOwor
ICAgICAgICByZXR1cm4gbWF0Y2hPZmZzZXQgfHwgbWF0Y2hMZW5ndGggIT0gdmFsdWVMZW5ndGg7
CiAgICAgfQotCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQpAQCAtNzAwLDggKzY5Niw4IEBACiAgICAgICAgIE5vZGUqIGN1cnJlbnRGb2N1c2VkTm9kZSA9
IGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCk7CiAgICAgICAgIGlmIChjdXJyZW50Rm9jdXNlZE5v
ZGUgJiYgY3VycmVudEZvY3VzZWROb2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewogICAgICAg
ICAgICAgSFRNTElucHV0RWxlbWVudCogZm9jdXNlZElucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KGN1cnJlbnRGb2N1c2VkTm9kZSk7Ci0gICAgICAgICAgICBpZiAoZm9jdXNl
ZElucHV0LT5pbnB1dFR5cGUoKSA9PSBSQURJTyAmJiBmb2N1c2VkSW5wdXQtPmZvcm0oKSA9PSBm
b3JtKCkgJiYKLSAgICAgICAgICAgICAgICBmb2N1c2VkSW5wdXQtPm5hbWUoKSA9PSBuYW1lKCkp
CisgICAgICAgICAgICBpZiAoZm9jdXNlZElucHV0LT5pbnB1dFR5cGUoKSA9PSBSQURJTyAmJiBm
b2N1c2VkSW5wdXQtPmZvcm0oKSA9PSBmb3JtKCkgCisgICAgICAgICAgICAgICAgJiYgZm9jdXNl
ZElucHV0LT5uYW1lKCkgPT0gbmFtZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogICAgICAgICAKQEAgLTczNCw3ICs3MzAsOSBAQAogCiBib29sIEhUTUxJbnB1
dEVsZW1lbnQ6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV90
eXBlID09IFRFWFQgfHwgbV90eXBlID09IFNFQVJDSCB8fCBtX3R5cGUgPT0gSVNJTkRFWDsKKyAg
ICByZXR1cm4gbV90eXBlID09IFRFWFQgfHwgbV90eXBlID09IFNFQVJDSCB8fCBtX3R5cGUgPT0g
SVNJTkRFWCAKKyAgICAgICAgICAgfHwgbV90eXBlID09IFRFTEVQSE9ORSB8fCBtX3R5cGUgPT0g
TlVNQkVSIAorICAgICAgICAgICB8fCBtX3R5cGUgPT0gVVJMIHx8IG1fdHlwZSA9PSBFTUFJTDsK
IH0KIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50KCkKQEAgLTkwNiw0
MCArOTA0LDQwIEBACiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRl
KFN0cmluZyYgcmVzdWx0KSBjb25zdAogewogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAg
ICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFU
RToKLSAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgot
ICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgIGNhc2UgSElE
REVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAg
IGNhc2UgTU9OVEg6Ci0gICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFJBTkdFOgot
ICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBT
VUJNSVQ6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAg
ICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzogewot
ICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7Ci0gICAgICAgICAgICBp
ZiAoY3VycmVudFZhbHVlID09IGRlZmF1bHRWYWx1ZSgpKQotICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGN1cnJlbnRWYWx1ZTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAg
IGNhc2UgUkFESU86Ci0gICAgICAgICAgICByZXN1bHQgPSBjaGVja2VkKCkgPyAib24iIDogIm9m
ZiI7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAg
ICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNl
IERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAg
IGNhc2UgRklMRToKKyAgICBjYXNlIEhJRERFTjoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2Ug
SVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUkFO
R0U6CisgICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFNVQk1JVDoK
KyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBUSU1FOgorICAg
IGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzogeworICAgICAgICBTdHJpbmcgY3VycmVudFZhbHVl
ID0gdmFsdWUoKTsKKyAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBkZWZhdWx0VmFsdWUoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0ID0gY3VycmVudFZhbHVl
OworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBj
YXNlIFJBRElPOgorICAgICAgICByZXN1bHQgPSBjaGVja2VkKCkgPyAib24iIDogIm9mZiI7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQpAQCAtOTQ4LDM1ICs5NDYsMzUgQEAKIHsKICAgICBBU1NFUlQoaW5wdXRUeXBlKCkgIT0g
UEFTU1dPUkQpOyAvLyBzaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcwog
ICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAg
IGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRFVElNRToK
LSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgotICAgICAg
ICBjYXNlIEZJTEU6Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgot
ICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIGNhc2Ug
TlVNQkVSOgotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAg
ICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2UgVEVMRVBI
T05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2Fz
ZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHNldFZhbHVlKHN0YXRlKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNl
IFJBRElPOgotICAgICAgICAgICAgc2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6CisgICAgY2Fz
ZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAg
ICBjYXNlIEZJTEU6CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNl
IElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFJB
TkdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBTVUJNSVQ6
CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAg
ICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHNldFZhbHVlKHN0YXRlKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgICAg
ICBzZXRDaGVja2VkKHN0YXRlID09ICJvbiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBB
U1NXT1JEOgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTk5NSw0NyArOTkzLDQ3IEBA
CiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0FueUVs
ZW1lbnQpCiB7CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIEJVVFRP
TjoKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICBj
YXNlIElNQUdFOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICBjYXNlIFJBTkdFOgotICAg
ICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgIGZvY3Vz
KGZhbHNlKTsKLSAgICAgICAgICAgIC8vIHNlbmQgdGhlIG1vdXNlIGJ1dHRvbiBldmVudHMgaWZm
IHRoZSBjYWxsZXIgc3BlY2lmaWVkIHNlbmRUb0FueUVsZW1lbnQKLSAgICAgICAgICAgIGRpc3Bh
dGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZFRvQW55RWxlbWVudCk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgICAgICAvLyBhIG5vLW9wIGZvciB0aGlz
IHR5cGUKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICBj
YXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVM
T0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBJU0lOREVYOgotICAgICAg
ICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQQVNTV09S
RDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAg
ICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAg
ICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIC8vIHNob3VsZCBuZXZlciByZXN0b3JlIHByZXZp
b3VzIHNlbGVjdGlvbiBoZXJlCi0gICAgICAgICAgICBmb2N1cyhmYWxzZSk7Ci0gICAgICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2Ug
RklMRToKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBSQU5HRToK
KyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICBmb2N1cyhmYWxzZSk7
CisgICAgICAgIC8vIHNlbmQgdGhlIG1vdXNlIGJ1dHRvbiBldmVudHMgaWZmIHRoZSBjYWxsZXIg
c3BlY2lmaWVkIHNlbmRUb0FueUVsZW1lbnQKKyAgICAgICAgZGlzcGF0Y2hTaW11bGF0ZWRDbGlj
aygwLCBzZW5kVG9BbnlFbGVtZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBISURERU46
CisgICAgICAgIC8vIGEgbm8tb3AgZm9yIHRoaXMgdHlwZQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2Ug
REFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBj
YXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2Fz
ZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2Ug
VElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIC8vIHNob3VsZCBu
ZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbiBoZXJlCisgICAgICAgIGZvY3VzKGZhbHNl
KTsKKyAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojpt
YXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVF
bnRyeSYgcmVzdWx0KSBjb25zdAogewotICAgIGlmICgoKGF0dHJOYW1lID09IGhlaWdodEF0dHIg
fHwgYXR0ck5hbWUgPT0gd2lkdGhBdHRyKSAmJiByZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRycygp
KSB8fAotICAgICAgICBhdHRyTmFtZSA9PSB2c3BhY2VBdHRyIHx8Ci0gICAgICAgIGF0dHJOYW1l
ID09IGhzcGFjZUF0dHIpIHsKKyAgICBpZiAoKChhdHRyTmFtZSA9PSBoZWlnaHRBdHRyIHx8IGF0
dHJOYW1lID09IHdpZHRoQXR0cikgJiYgcmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cnMoKSkKKyAg
ICAgICAgfHwgYXR0ck5hbWUgPT0gdnNwYWNlQXR0ciAKKyAgICAgICAgfHwgYXR0ck5hbWUgPT0g
aHNwYWNlQXR0cikgewogICAgICAgICByZXN1bHQgPSBlVW5pdmVyc2FsOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfSAKQEAgLTExMDIsOCArMTEwMCw4IEBACiAgICAgICAgICAgICAgICAg
bV9pbWFnZUxvYWRlci5zZXQobmV3IEhUTUxJbWFnZUxvYWRlcih0aGlzKSk7CiAgICAgICAgICAg
ICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigp
OwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gdXNlbWFwQXR0ciB8
fAotICAgICAgICAgICAgICAgYXR0ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIpIHsKKyAgICB9
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSB1c2VtYXBBdHRyIAorICAgICAgICAgICAgfHwgYXR0
ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIpIHsKICAgICAgICAgLy8gRklYTUU6IGlnbm9yZSBm
b3IgdGhlIG1vbWVudAogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHZzcGFjZUF0dHIp
IHsKICAgICAgICAgYWRkQ1NTTGVuZ3RoKGF0dHIsIENTU1Byb3BlcnR5TWFyZ2luVG9wLCBhdHRy
LT52YWx1ZSgpKTsKQEAgLTExMjAsMTAgKzExMTgsOCBAQAogICAgIH0gZWxzZSBpZiAoYXR0ci0+
bmFtZSgpID09IGhlaWdodEF0dHIpIHsKICAgICAgICAgaWYgKHJlc3BlY3RIZWlnaHRBbmRXaWR0
aEF0dHJzKCkpCiAgICAgICAgICAgICBhZGRDU1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVydHlIZWln
aHQsIGF0dHItPnZhbHVlKCkpOwotICAgIH0KLSAgICAvLyBTZWFyY2ggZmllbGQgYW5kIHNsaWRl
ciBhdHRyaWJ1dGVzIGFsbCBqdXN0IGNhdXNlIHVwZGF0ZUZyb21FbGVtZW50IHRvIGJlIGNhbGxl
ZCB0aHJvdWdoIHN0eWxlCi0gICAgLy8gcmVjYWxjaW5nLgotICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBvbnNlYXJjaEF0dHIpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBv
bnNlYXJjaEF0dHIpIHsKKyAgICAvLyBTZWFyY2ggZmllbGQgYW5kIHNsaWRlciBhdHRyaWJ1dGVz
IGFsbCBqdXN0IGNhdXNlIHVwZGF0ZUZyb21FbGVtZW50IHRvIGJlIGNhbGxlZCB0aHJvdWdoIHN0
eWxlIHJlY2FsY2luZy4KICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWVzKCkuc2VhcmNoRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0
cikpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHJlc3VsdHNBdHRyKSB7CiAgICAg
ICAgIGludCBvbGRSZXN1bHRzID0gbV9tYXhSZXN1bHRzOwpAQCAtMTE2Nyw0MCArMTE2Myw0MCBA
QAogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpyZW5kZXJlcklz
TmVlZGVkKHN0eWxlKTsKIH0KIAotUmVuZGVyT2JqZWN0ICpIVE1MSW5wdXRFbGVtZW50OjpjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqYXJlbmEsIFJlbmRlclN0eWxlICpzdHlsZSkKK1JlbmRl
ck9iamVjdCogSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFy
ZW5hLCBSZW5kZXJTdHlsZSAqc3R5bGUpCiB7CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewot
ICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgY2FzZSBT
VUJNSVQ6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQnV0dG9uKHRoaXMp
OwotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAg
ICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KHRoaXMsIHN0eWxlKTsKLSAgICAg
ICAgY2FzZSBGSUxFOgotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckZpbGVV
cGxvYWRDb250cm9sKHRoaXMpOwotICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEp
IFJlbmRlckltYWdlKHRoaXMpOwotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICAgICAgcmV0
dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNsaWRlcih0aGlzKTsKLSAgICAgICAgY2FzZSBDT0xPUjoK
LSAgICAgICAgY2FzZSBEQVRFOgotICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNl
IERBVEVUSU1FTE9DQUw6Ci0gICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgSVNJTkRF
WDoKLSAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNh
c2UgUEFTU1dPUkQ6Ci0gICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9O
RToKLSAgICAgICAgY2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2Ug
VVJMOgotICAgICAgICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkg
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKHRoaXMsIHBsYWNlaG9sZGVyU2hvdWxkQmVWaXNp
YmxlKCkpOworICAgIGNhc2UgQlVUVE9OOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJN
SVQ6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJCdXR0b24odGhpcyk7CisgICAg
Y2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgICAgICByZXR1cm4gUmVuZGVyT2Jq
ZWN0OjpjcmVhdGVPYmplY3QodGhpcywgc3R5bGUpOworICAgIGNhc2UgRklMRToKKyAgICAgICAg
cmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckZpbGVVcGxvYWRDb250cm9sKHRoaXMpOworICAgIGNh
c2UgSElEREVOOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIElNQUdFOgorICAgICAgICByZXR1
cm4gbmV3IChhcmVuYSkgUmVuZGVySW1hZ2UodGhpcyk7CisgICAgY2FzZSBSQU5HRToKKyAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNsaWRlcih0aGlzKTsKKyAgICBjYXNlIENPTE9S
OgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVM
T0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRI
OgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBTRUFSQ0g6
CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAg
ICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUodGhpcywgcGxhY2Vob2xkZXJTaG91bGRCZVZpc2li
bGUoKSk7CiAgICAgfQogICAgIEFTU0VSVChmYWxzZSk7CiAgICAgcmV0dXJuIDA7CkBAIC0xMjgx
LDg3ICsxMjc3LDg2IEBACiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAoaW5w
dXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRFOgotICAg
ICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAg
IGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElTSU5ERVg6
Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNl
IFBBU1NXT1JEOgotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICBjYXNlIFNFQVJDSDoKLSAg
ICAgICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgICAgIGNhc2UgVEVYVDoKLSAgICAgICAgY2FzZSBU
SU1FOgotICAgICAgICBjYXNlIFVSTDoKLSAgICAgICAgY2FzZSBXRUVLOgotICAgICAgICAgICAg
Ly8gYWx3YXlzIHN1Y2Nlc3NmdWwKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAg
ICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlM
OgorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgor
ICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBSQU5HRToKKyAg
ICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAg
Y2FzZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgLy8gYWx3
YXlzIHN1Y2Nlc3NmdWwKKyAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCksIHZhbHVl
KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2Fz
ZSBSQURJTzoKKyAgICAgICAgaWYgKGNoZWNrZWQoKSkgewogICAgICAgICAgICAgZW5jb2Rpbmcu
YXBwZW5kRGF0YShuYW1lKCksIHZhbHVlKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAg
ICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgIGlmIChjaGVja2VkKCkpIHsKKyAgICBjYXNlIEJV
VFRPTjoKKyAgICBjYXNlIFJFU0VUOgorICAgICAgICAvLyB0aGVzZSB0eXBlcyBvZiBidXR0b25z
IGFyZSBuZXZlciBzdWNjZXNzZnVsCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNhc2Ug
SU1BR0U6CisgICAgICAgIGlmIChtX2FjdGl2ZVN1Ym1pdCkgeworICAgICAgICAgICAgZW5jb2Rp
bmcuYXBwZW5kRGF0YShuYW1lKCkuaXNFbXB0eSgpID8gIngiIDogKG5hbWUoKSArICIueCIpLCBt
X3hQb3MpOworICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCkuaXNFbXB0eSgp
ID8gInkiIDogKG5hbWUoKSArICIueSIpLCBtX3lQb3MpOworICAgICAgICAgICAgaWYgKCFuYW1l
KCkuaXNFbXB0eSgpICYmICF2YWx1ZSgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBlbmNv
ZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgdmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgQlVU
VE9OOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICAgICAgLy8gdGhlc2UgdHlwZXMgb2Yg
YnV0dG9ucyBhcmUgbmV2ZXIgc3VjY2Vzc2Z1bAotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGNhc2UgU1VCTUlUOgorICAgICAgICBpZiAobV9hY3RpdmVTdWJtaXQpIHsKKyAgICAgICAg
ICAgIFN0cmluZyBlbmNzdHIgPSB2YWx1ZVdpdGhEZWZhdWx0KCk7CisgICAgICAgICAgICBlbmNv
ZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgZW5jc3RyKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAg
ICAgICAgICBpZiAobV9hY3RpdmVTdWJtaXQpIHsKLSAgICAgICAgICAgICAgICBlbmNvZGluZy5h
cHBlbmREYXRhKG5hbWUoKS5pc0VtcHR5KCkgPyAieCIgOiAobmFtZSgpICsgIi54IiksIG1feFBv
cyk7Ci0gICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCkuaXNFbXB0eSgp
ID8gInkiIDogKG5hbWUoKSArICIueSIpLCBtX3lQb3MpOwotICAgICAgICAgICAgICAgIGlmICgh
bmFtZSgpLmlzRW1wdHkoKSAmJiAhdmFsdWUoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
ICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCB2YWx1ZSgpKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRklMRTogeworICAgICAgICB1bnNpZ25lZCBudW1GaWxlcyA9IG1fZmlsZUxpc3QtPmxlbmd0
aCgpOworICAgICAgICBpZiAoIW11bHRpcGFydCkgeworICAgICAgICAgICAgLy8gU2VuZCBvbmx5
IHRoZSBiYXNlbmFtZXMuCisgICAgICAgICAgICAvLyA0LjEwLjE2LjQgYW5kIDQuMTAuMTYuNiBz
ZWN0aW9ucyBpbiBIVE1MNS4KKyAgICAKKyAgICAgICAgICAgIC8vIFVubGlrZSB0aGUgbXVsdGlw
YXJ0IGNhc2UsIHdlIGhhdmUgbm8gc3BlY2lhbAorICAgICAgICAgICAgLy8gaGFuZGxpbmcgZm9y
IHRoZSBlbXB0eSBmaWxlTGlzdCBiZWNhdXNlIE5ldHNjYXBlCisgICAgICAgICAgICAvLyBkb2Vz
bid0IHN1cHBvcnQgZm9yIG5vbi1tdWx0aXBhcnQgc3VibWlzc2lvbiBvZgorICAgICAgICAgICAg
Ly8gZmlsZSBpbnB1dHMsIGFuZCBGaXJlZm94IGRvZXNuJ3QgYWRkICJuYW1lPSIgcXVlcnkKKyAg
ICAgICAgICAgIC8vIHBhcmFtZXRlci4KIAotICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAg
ICAgIGlmIChtX2FjdGl2ZVN1Ym1pdCkgewotICAgICAgICAgICAgICAgIFN0cmluZyBlbmNfc3Ry
ID0gdmFsdWVXaXRoRGVmYXVsdCgpOwotICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZERh
dGEobmFtZSgpLCBlbmNfc3RyKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG51bUZpbGVzOyArK2kpIAorICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVu
ZERhdGEobmFtZSgpLCBtX2ZpbGVMaXN0LT5pdGVtKGkpLT5maWxlTmFtZSgpKTsKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBGSUxFOiB7Ci0gICAg
ICAgICAgICB1bnNpZ25lZCBudW1GaWxlcyA9IG1fZmlsZUxpc3QtPmxlbmd0aCgpOwotICAgICAg
ICAgICAgaWYgKCFtdWx0aXBhcnQpIHsKLSAgICAgICAgICAgICAgICAvLyBTZW5kIG9ubHkgdGhl
IGJhc2VuYW1lcy4KLSAgICAgICAgICAgICAgICAvLyA0LjEwLjE2LjQgYW5kIDQuMTAuMTYuNiBz
ZWN0aW9ucyBpbiBIVE1MNS4KLQotICAgICAgICAgICAgICAgIC8vIFVubGlrZSB0aGUgbXVsdGlw
YXJ0IGNhc2UsIHdlIGhhdmUgbm8gc3BlY2lhbAotICAgICAgICAgICAgICAgIC8vIGhhbmRsaW5n
IGZvciB0aGUgZW1wdHkgZmlsZUxpc3QgYmVjYXVzZSBOZXRzY2FwZQotICAgICAgICAgICAgICAg
IC8vIGRvZXNuJ3Qgc3VwcG9ydCBmb3Igbm9uLW11bHRpcGFydCBzdWJtaXNzaW9uIG9mCi0gICAg
ICAgICAgICAgICAgLy8gZmlsZSBpbnB1dHMsIGFuZCBGaXJlZm94IGRvZXNuJ3QgYWRkICJuYW1l
PSIgcXVlcnkKLSAgICAgICAgICAgICAgICAvLyBwYXJhbWV0ZXIuCi0KLSAgICAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkgewotICAgICAgICAgICAg
ICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgbV9maWxlTGlzdC0+aXRlbShpKS0+
ZmlsZU5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBJZiBubyBmaWxlbmFtZSBhdCBh
bGwgaXMgZW50ZXJlZCwgcmV0dXJuIHN1Y2Nlc3NmdWwgYnV0IGVtcHR5LgotICAgICAgICAgICAg
Ly8gTnVsbCB3b3VsZCBiZSBtb3JlIGxvZ2ljYWwsIGJ1dCBOZXRzY2FwZSBwb3N0cyBhbiBlbXB0
eSBmaWxlLiBBcmdoLgotICAgICAgICAgICAgaWYgKCFudW1GaWxlcykgewotICAgICAgICAgICAg
ICAgIGVuY29kaW5nLmFwcGVuZEJsb2IobmFtZSgpLCBGaWxlOjpjcmVhdGUoIiIpKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUZpbGVzOyArK2kpCi0gICAgICAgICAgICAgICAgZW5j
b2RpbmcuYXBwZW5kQmxvYihuYW1lKCksIG1fZmlsZUxpc3QtPml0ZW0oaSkpOworICAgICAgICAv
LyBJZiBubyBmaWxlbmFtZSBhdCBhbGwgaXMgZW50ZXJlZCwgcmV0dXJuIHN1Y2Nlc3NmdWwgYnV0
IGVtcHR5LgorICAgICAgICAvLyBOdWxsIHdvdWxkIGJlIG1vcmUgbG9naWNhbCwgYnV0IE5ldHNj
YXBlIHBvc3RzIGFuIGVtcHR5IGZpbGUuIEFyZ2guCisgICAgICAgIGlmICghbnVtRmlsZXMpIHsK
KyAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZEJsb2IobmFtZSgpLCBGaWxlOjpjcmVhdGUoIiIp
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG51bUZpbGVzOyArK2kpCisgICAgICAgICAgICBlbmNvZGluZy5h
cHBlbmRCbG9iKG5hbWUoKSwgbV9maWxlTGlzdC0+aXRlbShpKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTE0NDAsMTMg
KzE0MzUsMTMgQEAKICAgICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiB9
CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0SW5kZXRlcm1pbmF0ZShib29sIF9pbmRldGVy
bWluYXRlKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRJbmRldGVybWluYXRlKGJvb2wgaW5k
ZXQpCiB7CiAgICAgLy8gT25seSBjaGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zIGhvbm9yIGlu
ZGV0ZXJtaW5hdGUuCi0gICAgaWYgKCFhbGxvd3NJbmRldGVybWluYXRlKCkgfHwgaW5kZXRlcm1p
bmF0ZSgpID09IF9pbmRldGVybWluYXRlKQorICAgIGlmICghYWxsb3dzSW5kZXRlcm1pbmF0ZSgp
IHx8IGluZGV0ZXJtaW5hdGUoKSA9PSBpbmRldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9p
bmRldGVybWluYXRlID0gX2luZGV0ZXJtaW5hdGU7CisgICAgbV9pbmRldGVybWluYXRlID0gaW5k
ZXQ7CiAKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAKQEAgLTE0OTIsNyArMTQ4Nyw3IEBA
CiAgICAgICAgIGlmICh2YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgaWYgKGlucHV0VHlw
ZSgpID09IENIRUNLQk9YIHx8IGlucHV0VHlwZSgpID09IFJBRElPKQogICAgICAgICAgICAgICAg
IHJldHVybiBjaGVja2VkKCkgPyAib24iIDogIiI7Ci0gICAgICAgICAgICBlbHNlIGlmIChpbnB1
dFR5cGUoKSA9PSBSQU5HRSkKKyAgICAgICAgICAgIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplRm9yTnVtYmVyVHlwZShTdGVwUmFuZ2Uo
dGhpcykuZGVmYXVsdFZhbHVlKCkpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTUwNSwzNSArMTUw
MCwzNSBAQAogICAgIFN0cmluZyB2ID0gdmFsdWUoKTsKICAgICBpZiAodi5pc051bGwoKSkgewog
ICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIEJVVFRPTjoK
LSAgICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgICAgICBjYXNlIENPTE9SOgotICAg
ICAgICAgICAgY2FzZSBEQVRFOgotICAgICAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAg
ICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAg
ICAgICBjYXNlIEZJTEU6Ci0gICAgICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgICAgIGNh
c2UgSU1BR0U6Ci0gICAgICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgICAgICBjYXNlIE1P
TlRIOgotICAgICAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgICAgICBjYXNlIFBBU1NXT1JE
OgotICAgICAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgIGNhc2UgUkFOR0U6Ci0gICAg
ICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAg
ICAgICAgY2FzZSBURVhUOgotICAgICAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICAgICAgY2Fz
ZSBVUkw6Ci0gICAgICAgICAgICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICAgICAgICAgIHYgPSByZXNldEJ1dHRvbkRl
ZmF1bHRMYWJlbCgpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBT
VUJNSVQ6Ci0gICAgICAgICAgICAgICAgdiA9IHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJVVFRPTjoKKyAgICAgICAgY2Fz
ZSBDSEVDS0JPWDoKKyAgICAgICAgY2FzZSBDT0xPUjoKKyAgICAgICAgY2FzZSBEQVRFOgorICAg
ICAgICBjYXNlIERBVEVUSU1FOgorICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgICAg
IGNhc2UgRU1BSUw6CisgICAgICAgIGNhc2UgRklMRToKKyAgICAgICAgY2FzZSBISURERU46Cisg
ICAgICAgIGNhc2UgSU1BR0U6CisgICAgICAgIGNhc2UgSVNJTkRFWDoKKyAgICAgICAgY2FzZSBN
T05USDoKKyAgICAgICAgY2FzZSBOVU1CRVI6CisgICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAg
ICAgIGNhc2UgUkFESU86CisgICAgICAgIGNhc2UgUkFOR0U6CisgICAgICAgIGNhc2UgU0VBUkNI
OgorICAgICAgICBjYXNlIFRFTEVQSE9ORToKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICBj
YXNlIFRJTUU6CisgICAgICAgIGNhc2UgVVJMOgorICAgICAgICBjYXNlIFdFRUs6CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSRVNFVDoKKyAgICAgICAgICAgIHYgPSByZXNldEJ1
dHRvbkRlZmF1bHRMYWJlbCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1VC
TUlUOgorICAgICAgICAgICAgdiA9IHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIHY7CkBAIC0xOTUyLDMy
ICsxOTQ3LDMyIEBACiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVG
cm9tQXR0cmlidXRlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAg
ICAgIGNhc2UgQlVUVE9OOgotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNlIEhJ
RERFTjoKLSAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAg
Y2FzZSBSRVNFVDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2Fz
ZSBEQVRFVElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVN
QUlMOgotICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAg
Y2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6
Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNl
IFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAg
ICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgSElEREVO
OgorICAgIGNhc2UgSU1BR0U6CisgICAgY2FzZSBSQURJTzoKKyAgICBjYXNlIFJFU0VUOgorICAg
IGNhc2UgU1VCTUlUOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBDT0xPUjoKKyAg
ICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6
CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBJU0lOREVYOgorICAg
IGNhc2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBj
YXNlIFJBTkdFOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNh
c2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAgY2FzZSBXRUVLOgor
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMjE1
Miw1MiArMjE0Nyw1MiBAQAogCiAgICAgICAgIGlmIChjaGFyQ29kZSA9PSAnXHInKSB7CiAgICAg
ICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBDSEVD
S0JPWDoKLSAgICAgICAgICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICAgICAgICAgIGNhc2Ug
REFURToKLSAgICAgICAgICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICAgICAgICAgIGNh
c2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICAg
ICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICAgICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAg
ICAgICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICAgICAgICAgIGNhc2UgTlVNQkVSOgotICAg
ICAgICAgICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBSQU5HRToK
LSAgICAgICAgICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgICAgICAgICBjYXNlIFRFTEVQ
SE9ORToKLSAgICAgICAgICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBU
SU1FOgotICAgICAgICAgICAgICAgIGNhc2UgVVJMOgotICAgICAgICAgICAgICAgIGNhc2UgV0VF
SzoKLSAgICAgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgbW91c2UgY2xpY2sgb24gdGhlIGRl
ZmF1bHQgZm9ybSBidXR0b24gZm9yIGVudGVyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4K
LSAgICAgICAgICAgICAgICAgICAgY2xpY2tEZWZhdWx0Rm9ybUJ1dHRvbiA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgQlVUVE9OOgotICAg
ICAgICAgICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgICAgICAgICBjYXNlIElNQUdFOgotICAg
ICAgICAgICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVUJNSVQ6Ci0g
ICAgICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBlbnRlciBmb3Ig
dGhlc2UgdHlwZXMgb2YgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgICAgIGNsaWNrRWxlbWVu
dCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNh
c2UgUkFESU86Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBEb24ndCBkbyBhbnl0aGlu
ZyBmb3IgZW50ZXIgb24gYSByYWRpbyBidXR0b24uCisgICAgICAgICAgICBjYXNlIENIRUNLQk9Y
OgorICAgICAgICAgICAgY2FzZSBDT0xPUjoKKyAgICAgICAgICAgIGNhc2UgREFURToKKyAgICAg
ICAgICAgIGNhc2UgREFURVRJTUU6CisgICAgICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Cisg
ICAgICAgICAgICBjYXNlIEVNQUlMOgorICAgICAgICAgICAgY2FzZSBISURERU46CisgICAgICAg
ICAgICBjYXNlIElTSU5ERVg6CisgICAgICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAg
Y2FzZSBOVU1CRVI6CisgICAgICAgICAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICAgICAgY2Fz
ZSBSQU5HRToKKyAgICAgICAgICAgIGNhc2UgU0VBUkNIOgorICAgICAgICAgICAgY2FzZSBURUxF
UEhPTkU6CisgICAgICAgICAgICBjYXNlIFRFWFQ6CisgICAgICAgICAgICBjYXNlIFRJTUU6Cisg
ICAgICAgICAgICBjYXNlIFVSTDoKKyAgICAgICAgICAgIGNhc2UgV0VFSzoKKyAgICAgICAgICAg
ICAgICAvLyBTaW11bGF0ZSBtb3VzZSBjbGljayBvbiB0aGUgZGVmYXVsdCBmb3JtIGJ1dHRvbiBm
b3IgZW50ZXIgZm9yIHRoZXNlIHR5cGVzIG9mIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgIGNs
aWNrRGVmYXVsdEZvcm1CdXR0b24gPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBCVVRUT046CisgICAgICAgICAgICBjYXNlIEZJTEU6CisgICAgICAgICAg
ICBjYXNlIElNQUdFOgorICAgICAgICAgICAgY2FzZSBSRVNFVDoKKyAgICAgICAgICAgIGNhc2Ug
U1VCTUlUOgorICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBlbnRl
ciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVudHMuCisgICAgICAgICAgICAgICAgY2xpY2tFbGVt
ZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFE
SU86CisgICAgICAgICAgICAgICAgYnJlYWs7IC8vIERvbid0IGRvIGFueXRoaW5nIGZvciBlbnRl
ciBvbiBhIHJhZGlvIGJ1dHRvbi4KICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChj
aGFyQ29kZSA9PSAnICcpIHsKICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAg
ICAgICAgICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgICAgICAgICBjYXNlIENIRUNLQk9Y
OgotICAgICAgICAgICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgICAgICAgICBjYXNlIElNQUdF
OgotICAgICAgICAgICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVUJN
SVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgICAgICAgICAgLy8g
UHJldmVudCBzY3JvbGxpbmcgZG93biB0aGUgcGFnZS4KLSAgICAgICAgICAgICAgICAgICAgZXZ0
LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIEJVVFRPTjoKKyAgICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgICAgICAg
ICBjYXNlIEZJTEU6CisgICAgICAgICAgICBjYXNlIElNQUdFOgorICAgICAgICAgICAgY2FzZSBS
RVNFVDoKKyAgICAgICAgICAgIGNhc2UgU1VCTUlUOgorICAgICAgICAgICAgY2FzZSBSQURJTzoK
KyAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IHNjcm9sbGluZyBkb3duIHRoZSBwYWdlLgorICAg
ICAgICAgICAgICAgIGV2dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTIyMTMsMTkgKzIyMDgsMTkgQEAKIAogICAgICAg
ICBpZiAoa2V5ID09ICJVKzAwMjAiKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSgp
KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgICAgICAgICAgY2FzZSBD
SEVDS0JPWDoKLSAgICAgICAgICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBJTUFHRToKLSAgICAgICAgICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICAgICAgICAgIGNh
c2UgU1VCTUlUOgotICAgICAgICAgICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAgICAgICAg
ICAgIHNldEFjdGl2ZSh0cnVlLCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gTm8gc2V0
RGVmYXVsdEhhbmRsZWQoKSwgYmVjYXVzZSBJRSBkaXNwYXRjaGVzIGEga2V5cHJlc3MgaW4gdGhp
cyBjYXNlCi0gICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgY2FsbGVyIHdpbGwgb25seSBk
aXNwYXRjaCBhIGtleXByZXNzIGlmIHdlIGRvbid0IGNhbGwgc2V0RGVmYXVsdEhhbmRsZWQuCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQlVUVE9OOgorICAgICAg
ICAgICAgY2FzZSBDSEVDS0JPWDoKKyAgICAgICAgICAgIGNhc2UgRklMRToKKyAgICAgICAgICAg
IGNhc2UgSU1BR0U6CisgICAgICAgICAgICBjYXNlIFJFU0VUOgorICAgICAgICAgICAgY2FzZSBT
VUJNSVQ6CisgICAgICAgICAgICBjYXNlIFJBRElPOgorICAgICAgICAgICAgICAgIHNldEFjdGl2
ZSh0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAvLyBObyBzZXREZWZhdWx0SGFuZGxlZCgp
LCBiZWNhdXNlIElFIGRpc3BhdGNoZXMgYSBrZXlwcmVzcyBpbiB0aGlzIGNhc2UKKyAgICAgICAg
ICAgICAgICAvLyBhbmQgdGhlIGNhbGxlciB3aWxsIG9ubHkgZGlzcGF0Y2ggYSBrZXlwcmVzcyBp
ZiB3ZSBkb24ndCBjYWxsIHNldERlZmF1bHRIYW5kbGVkLgorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIApAQCAtMjI3MSw0MCArMjI2Niw0MCBAQAogCiAgICAgICAgIGlm
IChrZXkgPT0gIlUrMDAyMCIpIHsKICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsK
LSAgICAgICAgICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgICAgICAgICBjYXNlIENIRUNL
Qk9YOgotICAgICAgICAgICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgICAgICAgICBjYXNlIElN
QUdFOgotICAgICAgICAgICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBT
VUJNSVQ6Ci0gICAgICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBz
cGFjZWJhciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgICAg
IC8vIFRoZSBBcHBLaXQgYWxyZWFkeSBkb2VzIHRoaXMgZm9yIHNvbWUsIGJ1dCBub3QgYWxsLCBv
ZiB0aGVtLgorICAgICAgICAgICAgY2FzZSBCVVRUT046CisgICAgICAgICAgICBjYXNlIENIRUNL
Qk9YOgorICAgICAgICAgICAgY2FzZSBGSUxFOgorICAgICAgICAgICAgY2FzZSBJTUFHRToKKyAg
ICAgICAgICAgIGNhc2UgUkVTRVQ6CisgICAgICAgICAgICBjYXNlIFNVQk1JVDoKKyAgICAgICAg
ICAgICAgICAvLyBTaW11bGF0ZSBtb3VzZSBjbGljayBmb3Igc3BhY2ViYXIgZm9yIHRoZXNlIHR5
cGVzIG9mIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgIC8vIFRoZSBBcHBLaXQgYWxyZWFkeSBk
b2VzIHRoaXMgZm9yIHNvbWUsIGJ1dCBub3QgYWxsLCBvZiB0aGVtLgorICAgICAgICAgICAgICAg
IGNsaWNrRWxlbWVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIFJBRElPOgorICAgICAgICAgICAgICAgIC8vIElmIGFuIHVuc2VsZWN0ZWQgcmFkaW8g
aXMgdGFiYmVkIGludG8gKGJlY2F1c2UgdGhlIGVudGlyZSBncm91cCBoYXMgbm90aGluZworICAg
ICAgICAgICAgICAgIC8vIGNoZWNrZWQsIG9yIGJlY2F1c2Ugb2Ygc29tZSBleHBsaWNpdCAuZm9j
dXMoKSBjYWxsKSwgdGhlbiBhbGxvdyBzcGFjZSB0byBjaGVjayBpdC4KKyAgICAgICAgICAgICAg
ICBpZiAoIWNoZWNrZWQoKSkKICAgICAgICAgICAgICAgICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBSQURJ
TzoKLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgYW4gdW5zZWxlY3RlZCByYWRpbyBpcyB0YWJi
ZWQgaW50byAoYmVjYXVzZSB0aGUgZW50aXJlIGdyb3VwIGhhcyBub3RoaW5nCi0gICAgICAgICAg
ICAgICAgICAgIC8vIGNoZWNrZWQsIG9yIGJlY2F1c2Ugb2Ygc29tZSBleHBsaWNpdCAuZm9jdXMo
KSBjYWxsKSwgdGhlbiBhbGxvdyBzcGFjZSB0byBjaGVjayBpdC4KLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFjaGVja2VkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBjbGlja0VsZW1lbnQg
PSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNl
IENPTE9SOgotICAgICAgICAgICAgICAgIGNhc2UgREFURToKLSAgICAgICAgICAgICAgICBjYXNl
IERBVEVUSU1FOgotICAgICAgICAgICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAg
ICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICAgICAgICAgIGNhc2UgSElEREVOOgotICAgICAg
ICAgICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgICAgICAgICBjYXNlIE1PTlRIOgotICAg
ICAgICAgICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICAgICAgICAgIGNhc2UgUEFTU1dPUkQ6
Ci0gICAgICAgICAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgICAgICAgICBjYXNlIFNFQVJD
SDoKLSAgICAgICAgICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgICAgICAgICBjYXNl
IFRFWFQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICAgICAgICAgIGNhc2Ug
VVJMOgotICAgICAgICAgICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENPTE9SOgorICAg
ICAgICAgICAgY2FzZSBEQVRFOgorICAgICAgICAgICAgY2FzZSBEQVRFVElNRToKKyAgICAgICAg
ICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICAgICAgICAgIGNhc2UgRU1BSUw6CisgICAgICAg
ICAgICBjYXNlIEhJRERFTjoKKyAgICAgICAgICAgIGNhc2UgSVNJTkRFWDoKKyAgICAgICAgICAg
IGNhc2UgTU9OVEg6CisgICAgICAgICAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgICAgIGNhc2Ug
UEFTU1dPUkQ6CisgICAgICAgICAgICBjYXNlIFJBTkdFOgorICAgICAgICAgICAgY2FzZSBTRUFS
Q0g6CisgICAgICAgICAgICBjYXNlIFRFTEVQSE9ORToKKyAgICAgICAgICAgIGNhc2UgVEVYVDoK
KyAgICAgICAgICAgIGNhc2UgVElNRToKKyAgICAgICAgICAgIGNhc2UgVVJMOgorICAgICAgICAg
ICAgY2FzZSBXRUVLOgorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKQEAgLTI0NjMsOSArMjQ1OCw5IEBACiAgICAgc2V0QXR0cmlidXRlKG11bHRpcGxl
QXR0ciwgbXVsdGlwbGUgPyAiIiA6IDApOwogfQogICAgIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzZXRTaXplKHVuc2lnbmVkIF9zaXplKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTaXpl
KHVuc2lnbmVkIHNpemUpCiB7Ci0gICAgc2V0QXR0cmlidXRlKHNpemVBdHRyLCBTdHJpbmc6Om51
bWJlcihfc2l6ZSkpOworICAgIHNldEF0dHJpYnV0ZShzaXplQXR0ciwgU3RyaW5nOjpudW1iZXIo
c2l6ZSkpOwogfQogCiBLVVJMIEhUTUxJbnB1dEVsZW1lbnQ6OnNyYygpIGNvbnN0CkBAIC0yNTQx
LDMyICsyNTM2LDMyIEBACiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAoaW5w
dXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBEQVRFOgot
ICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAg
ICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgY2FzZSBNT05USDoK
LSAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgIGNh
c2UgUkFESU86Ci0gICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToK
LSAgICAgICAgY2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJM
OgotICAgICAgICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
Y2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgSElEREVOOgot
ICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2Ug
UkFOR0U6Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBEQVRFOgor
ICAgIGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1B
SUw6CisgICAgY2FzZSBGSUxFOgorICAgIGNhc2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6Cisg
ICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgU0VBUkNIOgorICAg
IGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2Fz
ZSBVUkw6CisgICAgY2FzZSBXRUVLOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIEJV
VFRPTjoKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgSU1BR0U6
CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBSRVNFVDoKKyAg
ICBjYXNlIFNVQk1JVDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMjc2NSw2ICsyNzYwLDYgQEAKICAgICB9CiAgICAgcmV0dXJu
IDA7CiB9Ci0jZW5kaWYgIC8vIEVOQUJMRShEQVRBTElTVCkKKyNlbmRpZiAvLyBFTkFCTEUoREFU
QUxJU1QpCiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
Q2hhbmdlTG9nCShyZXZpc2lvbiA1NzczNSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDEwLTA0LTE2ICBSYXkgUmlzY2hwYXRlciAgPFJheW1vbmQuUmlz
Y2hwYXRlckBOb2tpYS5jb20+CisKKyAgICAgICAgSW4gSFRNTElucHV0RWxlbWVudC5jcHAsIHNo
b3VsZFVzZUlucHV0TWV0aG9kIGRvZXMgbm90IHJldHVybiB0cnVlIGZvcgorICAgICAgICBIVE1M
NSBpbnB1dCB0eXBlcyAoVEVMRVBIT05FLCBOVU1CRVIsIFVSTCwgYW5kIEVNQUlMKS4gVGhpcwor
ICAgICAgICBwcmV2ZW50cyB0aGUgdmlydHVhbCBrZXlib2FyZCBmcm9tIGJlaW5nIGJyb3VnaHQg
dXAgZm9yIHRoZXNlCisgICAgICAgIGlucHV0IHR5cGVzLgorCisgICAgICAgIEZpeGVzIDxodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MTk+CisKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudDo6c2hv
dWxkVXNlSW5wdXRNZXRob2QpCisKIDIwMTAtMDQtMDkgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24u
aGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY3Jhc2ggZml4Lgo=
</data>
<flag name="review"
          id="37684"
          type_id="1"
          status="-"
          setter="Raymond.Rischpater"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53830</attachid>
            <date>2010-04-20 09:59:41 -0700</date>
            <delta_ts>2010-04-20 11:58:13 -0700</delta_ts>
            <desc>Called out actual method to be changed in ChangeLog for reviewers.</desc>
            <filename>vkbtypefix-against-57695-with-style.txt</filename>
            <type>text/plain</type>
            <size>32522</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDQtMTYgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCwgc2hv
dWxkVXNlSW5wdXRNZXRob2QgZG9lcyBub3QKKyAgICAgICAgcmV0dXJuIHRydWUgZm9yIEhUTUw1
IGlucHV0IHR5cGVzIChURUxFUEhPTkUsIE5VTUJFUiwgVVJMLCBhbmQKKyAgICAgICAgRU1BSUwp
LiBUaGlzIHByZXZlbnRzIHRoZSB2aXJ0dWFsIGtleWJvYXJkIGZyb20gYmVpbmcgYnJvdWdodCB1
cCBmb3IKKyAgICAgICAgdGhlc2UgaW5wdXQgdHlwZXMuCisKKyAgICAgICAgQ29kZSBjaGFuZ2Ug
Zm9yIHRoZSBmaXggaXMgaW4gSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5wdXRNZXRob2Qo
KQorICAgICAgICBleHRlbmRpbmcgdGhlIGNvbXBhcmlzb24gdG8gaW5jbHVkZSBIVE1MIDUgaW5w
dXQgZWxlbWVudHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGluY2x1ZGVzIHN0eWxlIGNo
YW5nZXMgdG8gZml4IGV4aXN0aW5nIHN0eWxlCisgICAgICAgIGRldmlhdGlvbnMgaW4gdGhpcyBm
aWxlLgorCisgICAgICAgIEZpeGVzIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzc3MTk+CisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAg
ICAgICAoSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5wdXRNZXRob2QpCisKIDIwMTAtMDQt
MTYgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXZpZCBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDU3NzM1KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Niw3ICs0Niw2IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIK
LSNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVu
dC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNYXBwZWRBdHRy
aWJ1dGUuaCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKKyNpbmNsdWRlICJTY3JpcHRFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiU3RlcFJh
bmdlLmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgpA
QCAtMTcxLDM1ICsxNzEsMzUgQEAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNo
IChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJ
TUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAg
ICAgICAgY2FzZSBGSUxFOgotICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJF
UjoKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAg
IGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToK
LSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHJldHVy
biB2YWx1ZSgpLmlzRW1wdHkoKTsKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgICAg
IHJldHVybiAhY2hlY2tlZCgpOwotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgcmV0
dXJuICFjaGVja2VkUmFkaW9CdXR0b25zKHRoaXMpLmNoZWNrZWRCdXR0b25Gb3JHcm91cChuYW1l
KCkpOwotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNhc2UgSU1B
R0U6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAg
Y2FzZSBSRVNFVDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6
CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBNT05USDoKKyAgICBj
YXNlIE5VTUJFUjoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNh
c2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBV
Ukw6CisgICAgY2FzZSBXRUVLOgorICAgICAgICByZXR1cm4gdmFsdWUoKS5pc0VtcHR5KCk7Cisg
ICAgY2FzZSBDSEVDS0JPWDoKKyAgICAgICAgcmV0dXJuICFjaGVja2VkKCk7CisgICAgY2FzZSBS
QURJTzoKKyAgICAgICAgcmV0dXJuICFjaGVja2VkUmFkaW9CdXR0b25zKHRoaXMpLmNoZWNrZWRC
dXR0b25Gb3JHcm91cChuYW1lKCkpOworICAgIGNhc2UgQ09MT1I6CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIEhJRERFTjoKKyAgICBjYXNlIElNQUdF
OgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6Cisg
ICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtMjA5LDQ2ICsyMDksNDIgQEAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6
cGF0dGVybk1pc21hdGNoKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0g
ICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNl
IENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAg
ICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICBjYXNl
IEhJRERFTjoKLSAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgY2FzZSBJU0lOREVYOgotICAg
ICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBSQURJ
TzoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgY2Fz
ZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBXRUVLOgorICAgIGNh
c2UgQlVUVE9OOgorICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNl
IERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAg
Y2FzZSBGSUxFOgorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgSU1BR0U6CisgICAgY2FzZSBJ
U0lOREVYOgorICAgIGNhc2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBSQURJ
TzoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJNSVQ6Cisg
ICAgY2FzZSBUSU1FOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGNhc2UgRU1BSUw6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBj
YXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBVUkw6CisgICAgICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgcGF0dGVybiA9IGdldEF0dHJpYnV0ZShwYXR0ZXJuQXR0cik7Cisg
ICAgICAgIFN0cmluZyB2YWx1ZSA9IHRoaXMtPnZhbHVlKCk7CisgICAgICAgICAvLyBFbXB0eSB2
YWx1ZXMgY2FuJ3QgYmUgbWlzbWF0Y2hlZAorICAgICAgICBpZiAocGF0dGVybi5pc0VtcHR5KCkg
fHwgdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBj
YXNlIEVNQUlMOgotICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICBjYXNlIFNFQVJDSDoK
LSAgICAgICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgICAgIGNhc2UgVEVYVDoKLSAgICAgICAgY2Fz
ZSBVUkw6Ci0gICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBhdHRlcm4gPSBnZXRBdHRy
aWJ1dGUocGF0dGVybkF0dHIpOwotICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gdGhpcy0+dmFs
dWUoKTsKLQotICAgICAgICAgICAgLy8gRW1wdHkgdmFsdWVzIGNhbid0IGJlIG1pc21hdGNoZWQK
LSAgICAgICAgICAgIGlmIChwYXR0ZXJuLmlzRW1wdHkoKSB8fCB2YWx1ZS5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgICAgICBSZWd1bGFyRXhwcmVz
c2lvbiBwYXR0ZXJuUmVnRXhwKHBhdHRlcm4sIFRleHRDYXNlU2Vuc2l0aXZlKTsKLSAgICAgICAg
ICAgIGludCBtYXRjaExlbmd0aCA9IDA7Ci0gICAgICAgICAgICBpbnQgdmFsdWVMZW5ndGggPSB2
YWx1ZS5sZW5ndGgoKTsKLSAgICAgICAgICAgIGludCBtYXRjaE9mZnNldCA9IHBhdHRlcm5SZWdF
eHAubWF0Y2godmFsdWUsIDAsICZtYXRjaExlbmd0aCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBt
YXRjaE9mZnNldCAhPSAwIHx8IG1hdGNoTGVuZ3RoICE9IHZhbHVlTGVuZ3RoOworICAgICAgICAg
UmVndWxhckV4cHJlc3Npb24gcGF0dGVyblJlZ0V4cChwYXR0ZXJuLCBUZXh0Q2FzZVNlbnNpdGl2
ZSk7CisgICAgICAgIGludCBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgIGludCB2YWx1ZUxlbmd0
aCA9IHZhbHVlLmxlbmd0aCgpOworICAgICAgICBpbnQgbWF0Y2hPZmZzZXQgPSBwYXR0ZXJuUmVn
RXhwLm1hdGNoKHZhbHVlLCAwLCAmbWF0Y2hMZW5ndGgpOworICAgICAgICByZXR1cm4gbWF0Y2hP
ZmZzZXQgfHwgbWF0Y2hMZW5ndGggIT0gdmFsdWVMZW5ndGg7CiAgICAgfQotCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNzAwLDggKzY5Niw4IEBA
CiAgICAgICAgIE5vZGUqIGN1cnJlbnRGb2N1c2VkTm9kZSA9IGRvY3VtZW50KCktPmZvY3VzZWRO
b2RlKCk7CiAgICAgICAgIGlmIChjdXJyZW50Rm9jdXNlZE5vZGUgJiYgY3VycmVudEZvY3VzZWRO
b2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewogICAgICAgICAgICAgSFRNTElucHV0RWxlbWVu
dCogZm9jdXNlZElucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGN1cnJlbnRG
b2N1c2VkTm9kZSk7Ci0gICAgICAgICAgICBpZiAoZm9jdXNlZElucHV0LT5pbnB1dFR5cGUoKSA9
PSBSQURJTyAmJiBmb2N1c2VkSW5wdXQtPmZvcm0oKSA9PSBmb3JtKCkgJiYKLSAgICAgICAgICAg
ICAgICBmb2N1c2VkSW5wdXQtPm5hbWUoKSA9PSBuYW1lKCkpCisgICAgICAgICAgICBpZiAoZm9j
dXNlZElucHV0LT5pbnB1dFR5cGUoKSA9PSBSQURJTyAmJiBmb2N1c2VkSW5wdXQtPmZvcm0oKSA9
PSBmb3JtKCkgCisgICAgICAgICAgICAgICAgJiYgZm9jdXNlZElucHV0LT5uYW1lKCkgPT0gbmFt
ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICAK
QEAgLTczNCw3ICs3MzAsOSBAQAogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNob3VsZFVzZUlu
cHV0TWV0aG9kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV90eXBlID09IFRFWFQgfHwgbV90eXBl
ID09IFNFQVJDSCB8fCBtX3R5cGUgPT0gSVNJTkRFWDsKKyAgICByZXR1cm4gbV90eXBlID09IFRF
WFQgfHwgbV90eXBlID09IFNFQVJDSCB8fCBtX3R5cGUgPT0gSVNJTkRFWCAKKyAgICAgICAgICAg
fHwgbV90eXBlID09IFRFTEVQSE9ORSB8fCBtX3R5cGUgPT0gTlVNQkVSIAorICAgICAgICAgICB8
fCBtX3R5cGUgPT0gVVJMIHx8IG1fdHlwZSA9PSBFTUFJTDsKIH0KIAogdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50KCkKQEAgLTkwNiw0MCArOTA0LDQwIEBACiBib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25z
dAogewogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0g
ICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRF
VElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgot
ICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElN
QUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAg
IGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICBjYXNlIFJFU0VUOgot
ICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2Ug
VEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAg
ICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzogewotICAgICAgICAgICAgU3RyaW5nIGN1
cnJlbnRWYWx1ZSA9IHZhbHVlKCk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlID09IGRl
ZmF1bHRWYWx1ZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IHJlc3VsdCA9IGN1cnJlbnRWYWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICB9Ci0gICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAg
ICAgICByZXN1bHQgPSBjaGVja2VkKCkgPyAib24iIDogIm9mZiI7Ci0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBj
YXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2Ug
REFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNl
IEhJRERFTjoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1P
TlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBSRVNFVDoK
KyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFNVQk1JVDoKKyAgICBjYXNlIFRFTEVQSE9ORToK
KyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2Ug
V0VFSzogeworICAgICAgICBTdHJpbmcgY3VycmVudFZhbHVlID0gdmFsdWUoKTsKKyAgICAgICAg
aWYgKGN1cnJlbnRWYWx1ZSA9PSBkZWZhdWx0VmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmVzdWx0ID0gY3VycmVudFZhbHVlOworICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgICAgICBy
ZXN1bHQgPSBjaGVja2VkKCkgPyAib24iIDogIm9mZiI7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtOTQ4LDM1ICs5NDYs
MzUgQEAKIHsKICAgICBBU1NFUlQoaW5wdXRUeXBlKCkgIT0gUEFTU1dPUkQpOyAvLyBzaG91bGQg
bmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcwogICAgIHN3aXRjaCAoaW5wdXRUeXBl
KCkpIHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAg
IGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAgY2FzZSBEQVRFVElN
RUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAg
IGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6
Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNl
IFJBTkdFOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAg
ICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRF
WFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2Ug
V0VFSzoKLSAgICAgICAgICAgIHNldFZhbHVlKHN0YXRlKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAg
c2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFBBU1NXT1JEOgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCVVRUT046CisgICAg
Y2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNl
IERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2Fz
ZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBN
T05USDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6
CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgY2FzZSBURUxFUEhPTkU6
CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNl
IFdFRUs6CisgICAgICAgIHNldFZhbHVlKHN0YXRlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgICAgICBzZXRDaGVja2VkKHN0YXRlID09
ICJvbiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKQEAgLTk5NSw0NyArOTkzLDQ3IEBACiB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0FueUVsZW1lbnQpCiB7CiAgICAgc3dpdGNo
IChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBDSEVD
S0JPWDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBj
YXNlIFJBRElPOgotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICBjYXNlIFJFU0VUOgotICAg
ICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgIGZvY3VzKGZhbHNlKTsKLSAgICAgICAgICAg
IC8vIHNlbmQgdGhlIG1vdXNlIGJ1dHRvbiBldmVudHMgaWZmIHRoZSBjYWxsZXIgc3BlY2lmaWVk
IHNlbmRUb0FueUVsZW1lbnQKLSAgICAgICAgICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwg
c2VuZFRvQW55RWxlbWVudCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBISURE
RU46Ci0gICAgICAgICAgICAvLyBhIG5vLW9wIGZvciB0aGlzIHR5cGUKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNh
c2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBF
TUFJTDoKLSAgICAgICAgY2FzZSBJU0lOREVYOgotICAgICAgICBjYXNlIE1PTlRIOgotICAgICAg
ICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFS
Q0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAg
IGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAg
ICAgICAgIC8vIHNob3VsZCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbiBoZXJlCi0g
ICAgICAgICAgICBmb2N1cyhmYWxzZSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEJV
VFRPTjoKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIElNQUdF
OgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBSQU5HRToKKyAgICBjYXNlIFJFU0VUOgorICAg
IGNhc2UgU1VCTUlUOgorICAgICAgICBmb2N1cyhmYWxzZSk7CisgICAgICAgIC8vIHNlbmQgdGhl
IG1vdXNlIGJ1dHRvbiBldmVudHMgaWZmIHRoZSBjYWxsZXIgc3BlY2lmaWVkIHNlbmRUb0FueUVs
ZW1lbnQKKyAgICAgICAgZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kVG9BbnlFbGVtZW50
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBISURERU46CisgICAgICAgIC8vIGEgbm8tb3Ag
Zm9yIHRoaXMgdHlwZQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2Ug
REFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBj
YXNlIEVNQUlMOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2Ug
TlVNQkVSOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBU
RUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoK
KyAgICBjYXNlIFdFRUs6CisgICAgICAgIC8vIHNob3VsZCBuZXZlciByZXN0b3JlIHByZXZpb3Vz
IHNlbGVjdGlvbiBoZXJlCisgICAgICAgIGZvY3VzKGZhbHNlKTsKKyAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjptYXBUb0VudHJ5KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdAog
ewotICAgIGlmICgoKGF0dHJOYW1lID09IGhlaWdodEF0dHIgfHwgYXR0ck5hbWUgPT0gd2lkdGhB
dHRyKSAmJiByZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRycygpKSB8fAotICAgICAgICBhdHRyTmFt
ZSA9PSB2c3BhY2VBdHRyIHx8Ci0gICAgICAgIGF0dHJOYW1lID09IGhzcGFjZUF0dHIpIHsKKyAg
ICBpZiAoKChhdHRyTmFtZSA9PSBoZWlnaHRBdHRyIHx8IGF0dHJOYW1lID09IHdpZHRoQXR0cikg
JiYgcmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cnMoKSkKKyAgICAgICAgfHwgYXR0ck5hbWUgPT0g
dnNwYWNlQXR0ciAKKyAgICAgICAgfHwgYXR0ck5hbWUgPT0gaHNwYWNlQXR0cikgewogICAgICAg
ICByZXN1bHQgPSBlVW5pdmVyc2FsOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSAKQEAg
LTExMDIsOCArMTEwMCw4IEBACiAgICAgICAgICAgICAgICAgbV9pbWFnZUxvYWRlci5zZXQobmV3
IEhUTUxJbWFnZUxvYWRlcih0aGlzKSk7CiAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRh
dGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigpOwogICAgICAgICB9Ci0gICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gdXNlbWFwQXR0ciB8fAotICAgICAgICAgICAgICAgYXR0
ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSB1c2VtYXBBdHRyIAorICAgICAgICAgICAgfHwgYXR0ci0+bmFtZSgpID09IGFjY2Vzc2tl
eUF0dHIpIHsKICAgICAgICAgLy8gRklYTUU6IGlnbm9yZSBmb3IgdGhlIG1vbWVudAogICAgIH0g
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHZzcGFjZUF0dHIpIHsKICAgICAgICAgYWRkQ1NTTGVu
Z3RoKGF0dHIsIENTU1Byb3BlcnR5TWFyZ2luVG9wLCBhdHRyLT52YWx1ZSgpKTsKQEAgLTExMjAs
MTAgKzExMTgsOCBAQAogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGhlaWdodEF0dHIp
IHsKICAgICAgICAgaWYgKHJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJzKCkpCiAgICAgICAgICAg
ICBhZGRDU1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVydHlIZWlnaHQsIGF0dHItPnZhbHVlKCkpOwot
ICAgIH0KLSAgICAvLyBTZWFyY2ggZmllbGQgYW5kIHNsaWRlciBhdHRyaWJ1dGVzIGFsbCBqdXN0
IGNhdXNlIHVwZGF0ZUZyb21FbGVtZW50IHRvIGJlIGNhbGxlZCB0aHJvdWdoIHN0eWxlCi0gICAg
Ly8gcmVjYWxjaW5nLgotICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnNlYXJjaEF0dHIp
IHsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnNlYXJjaEF0dHIpIHsKKyAgICAv
LyBTZWFyY2ggZmllbGQgYW5kIHNsaWRlciBhdHRyaWJ1dGVzIGFsbCBqdXN0IGNhdXNlIHVwZGF0
ZUZyb21FbGVtZW50IHRvIGJlIGNhbGxlZCB0aHJvdWdoIHN0eWxlIHJlY2FsY2luZy4KICAgICAg
ICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuc2VhcmNoRXZlbnQsIGNy
ZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOwogICAgIH0gZWxzZSBpZiAo
YXR0ci0+bmFtZSgpID09IHJlc3VsdHNBdHRyKSB7CiAgICAgICAgIGludCBvbGRSZXN1bHRzID0g
bV9tYXhSZXN1bHRzOwpAQCAtMTE2Nyw0MCArMTE2Myw0MCBAQAogICAgIHJldHVybiBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsKIH0KIAot
UmVuZGVyT2JqZWN0ICpIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSAqYXJlbmEsIFJlbmRlclN0eWxlICpzdHlsZSkKK1JlbmRlck9iamVjdCogSFRNTElucHV0RWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKmFyZW5hLCBSZW5kZXJTdHlsZSAqc3R5
bGUpCiB7CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIEJVVFRPTjoK
LSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyQnV0dG9uKHRoaXMpOwotICAgICAgICBjYXNlIENIRUNL
Qk9YOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgcmV0dXJuIFJlbmRlck9iamVj
dDo6Y3JlYXRlT2JqZWN0KHRoaXMsIHN0eWxlKTsKLSAgICAgICAgY2FzZSBGSUxFOgotICAgICAg
ICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckZpbGVVcGxvYWRDb250cm9sKHRoaXMpOwot
ICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElN
QUdFOgotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckltYWdlKHRoaXMpOwot
ICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRl
clNsaWRlcih0aGlzKTsKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRFOgot
ICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAg
ICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBNT05U
SDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAg
IGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhU
OgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdF
RUs6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lKHRoaXMsIHBsYWNlaG9sZGVyU2hvdWxkQmVWaXNpYmxlKCkpOworICAgIGNhc2UgQlVU
VE9OOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJCdXR0b24odGhpcyk7CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBj
YXNlIFJBRElPOgorICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QodGhp
cywgc3R5bGUpOworICAgIGNhc2UgRklMRToKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJl
bmRlckZpbGVVcGxvYWRDb250cm9sKHRoaXMpOworICAgIGNhc2UgSElEREVOOgorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIElNQUdFOgorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVy
SW1hZ2UodGhpcyk7CisgICAgY2FzZSBSQU5HRToKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEp
IFJlbmRlclNsaWRlcih0aGlzKTsKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAg
ICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlM
OgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgor
ICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6
CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNl
IFdFRUs6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUodGhpcywgcGxhY2Vob2xkZXJTaG91bGRCZVZpc2libGUoKSk7CiAgICAgfQogICAgIEFT
U0VSVChmYWxzZSk7CiAgICAgcmV0dXJuIDA7CkBAIC0xMjgxLDg3ICsxMjc3LDg2IEBACiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAg
Y2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRFOgotICAgICAgICBjYXNlIERBVEVUSU1FOgot
ICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAg
IGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2UgTU9OVEg6
Ci0gICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICBj
YXNlIFJBTkdFOgotICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURUxFUEhPTkU6
Ci0gICAgICAgIGNhc2UgVEVYVDoKLSAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICBjYXNlIFVS
TDoKLSAgICAgICAgY2FzZSBXRUVLOgotICAgICAgICAgICAgLy8gYWx3YXlzIHN1Y2Nlc3NmdWwK
KyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAg
IGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgSElEREVOOgor
ICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAg
IGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBSQU5HRToKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBj
YXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2Ug
VVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgLy8gYWx3YXlzIHN1Y2Nlc3NmdWwKKyAgICAg
ICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCksIHZhbHVlKCkpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBSQURJTzoKKyAgICAgICAgaWYg
KGNoZWNrZWQoKSkgewogICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCksIHZh
bHVlKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CiAKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBSQURJTzoKLSAgICAg
ICAgICAgIGlmIChjaGVja2VkKCkpIHsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIFJFU0VU
OgorICAgICAgICAvLyB0aGVzZSB0eXBlcyBvZiBidXR0b25zIGFyZSBuZXZlciBzdWNjZXNzZnVs
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNhc2UgSU1BR0U6CisgICAgICAgIGlmICht
X2FjdGl2ZVN1Ym1pdCkgeworICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCku
aXNFbXB0eSgpID8gIngiIDogKG5hbWUoKSArICIueCIpLCBtX3hQb3MpOworICAgICAgICAgICAg
ZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCkuaXNFbXB0eSgpID8gInkiIDogKG5hbWUoKSArICIu
eSIpLCBtX3lQb3MpOworICAgICAgICAgICAgaWYgKCFuYW1lKCkuaXNFbXB0eSgpICYmICF2YWx1
ZSgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUo
KSwgdmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICBjYXNlIFJF
U0VUOgotICAgICAgICAgICAgLy8gdGhlc2UgdHlwZXMgb2YgYnV0dG9ucyBhcmUgbmV2ZXIgc3Vj
Y2Vzc2Z1bAotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgU1VCTUlUOgorICAg
ICAgICBpZiAobV9hY3RpdmVTdWJtaXQpIHsKKyAgICAgICAgICAgIFN0cmluZyBlbmNzdHIgPSB2
YWx1ZVdpdGhEZWZhdWx0KCk7CisgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUo
KSwgZW5jc3RyKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOwogCi0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAgICBpZiAobV9hY3RpdmVT
dWJtaXQpIHsKLSAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKS5pc0Vt
cHR5KCkgPyAieCIgOiAobmFtZSgpICsgIi54IiksIG1feFBvcyk7Ci0gICAgICAgICAgICAgICAg
ZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCkuaXNFbXB0eSgpID8gInkiIDogKG5hbWUoKSArICIu
eSIpLCBtX3lQb3MpOwotICAgICAgICAgICAgICAgIGlmICghbmFtZSgpLmlzRW1wdHkoKSAmJiAh
dmFsdWUoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZERh
dGEobmFtZSgpLCB2YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRklMRTogeworICAgICAgICB1
bnNpZ25lZCBudW1GaWxlcyA9IG1fZmlsZUxpc3QtPmxlbmd0aCgpOworICAgICAgICBpZiAoIW11
bHRpcGFydCkgeworICAgICAgICAgICAgLy8gU2VuZCBvbmx5IHRoZSBiYXNlbmFtZXMuCisgICAg
ICAgICAgICAvLyA0LjEwLjE2LjQgYW5kIDQuMTAuMTYuNiBzZWN0aW9ucyBpbiBIVE1MNS4KKyAg
ICAKKyAgICAgICAgICAgIC8vIFVubGlrZSB0aGUgbXVsdGlwYXJ0IGNhc2UsIHdlIGhhdmUgbm8g
c3BlY2lhbAorICAgICAgICAgICAgLy8gaGFuZGxpbmcgZm9yIHRoZSBlbXB0eSBmaWxlTGlzdCBi
ZWNhdXNlIE5ldHNjYXBlCisgICAgICAgICAgICAvLyBkb2Vzbid0IHN1cHBvcnQgZm9yIG5vbi1t
dWx0aXBhcnQgc3VibWlzc2lvbiBvZgorICAgICAgICAgICAgLy8gZmlsZSBpbnB1dHMsIGFuZCBG
aXJlZm94IGRvZXNuJ3QgYWRkICJuYW1lPSIgcXVlcnkKKyAgICAgICAgICAgIC8vIHBhcmFtZXRl
ci4KIAotICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgIGlmIChtX2FjdGl2ZVN1Ym1p
dCkgewotICAgICAgICAgICAgICAgIFN0cmluZyBlbmNfc3RyID0gdmFsdWVXaXRoRGVmYXVsdCgp
OwotICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCBlbmNfc3RyKTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUZpbGVzOyAr
K2kpIAorICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCBtX2ZpbGVM
aXN0LT5pdGVtKGkpLT5maWxlTmFtZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CiAKLSAgICAgICAgY2FzZSBGSUxFOiB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBudW1G
aWxlcyA9IG1fZmlsZUxpc3QtPmxlbmd0aCgpOwotICAgICAgICAgICAgaWYgKCFtdWx0aXBhcnQp
IHsKLSAgICAgICAgICAgICAgICAvLyBTZW5kIG9ubHkgdGhlIGJhc2VuYW1lcy4KLSAgICAgICAg
ICAgICAgICAvLyA0LjEwLjE2LjQgYW5kIDQuMTAuMTYuNiBzZWN0aW9ucyBpbiBIVE1MNS4KLQot
ICAgICAgICAgICAgICAgIC8vIFVubGlrZSB0aGUgbXVsdGlwYXJ0IGNhc2UsIHdlIGhhdmUgbm8g
c3BlY2lhbAotICAgICAgICAgICAgICAgIC8vIGhhbmRsaW5nIGZvciB0aGUgZW1wdHkgZmlsZUxp
c3QgYmVjYXVzZSBOZXRzY2FwZQotICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3Qgc3VwcG9ydCBm
b3Igbm9uLW11bHRpcGFydCBzdWJtaXNzaW9uIG9mCi0gICAgICAgICAgICAgICAgLy8gZmlsZSBp
bnB1dHMsIGFuZCBGaXJlZm94IGRvZXNuJ3QgYWRkICJuYW1lPSIgcXVlcnkKLSAgICAgICAgICAg
ICAgICAvLyBwYXJhbWV0ZXIuCi0KLSAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbnVtRmlsZXM7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBl
bmREYXRhKG5hbWUoKSwgbV9maWxlTGlzdC0+aXRlbShpKS0+ZmlsZU5hbWUoKSk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAvLyBJZiBubyBmaWxlbmFtZSBhdCBhbGwgaXMgZW50ZXJlZCwgcmV0dXJu
IHN1Y2Nlc3NmdWwgYnV0IGVtcHR5LgotICAgICAgICAgICAgLy8gTnVsbCB3b3VsZCBiZSBtb3Jl
IGxvZ2ljYWwsIGJ1dCBOZXRzY2FwZSBwb3N0cyBhbiBlbXB0eSBmaWxlLiBBcmdoLgotICAgICAg
ICAgICAgaWYgKCFudW1GaWxlcykgewotICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZEJs
b2IobmFtZSgpLCBGaWxlOjpjcmVhdGUoIiIpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bUZpbGVzOyArK2kpCi0gICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kQmxvYihuYW1l
KCksIG1fZmlsZUxpc3QtPml0ZW0oaSkpOworICAgICAgICAvLyBJZiBubyBmaWxlbmFtZSBhdCBh
bGwgaXMgZW50ZXJlZCwgcmV0dXJuIHN1Y2Nlc3NmdWwgYnV0IGVtcHR5LgorICAgICAgICAvLyBO
dWxsIHdvdWxkIGJlIG1vcmUgbG9naWNhbCwgYnV0IE5ldHNjYXBlIHBvc3RzIGFuIGVtcHR5IGZp
bGUuIEFyZ2guCisgICAgICAgIGlmICghbnVtRmlsZXMpIHsKKyAgICAgICAgICAgIGVuY29kaW5n
LmFwcGVuZEJsb2IobmFtZSgpLCBGaWxlOjpjcmVhdGUoIiIpKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51
bUZpbGVzOyArK2kpCisgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmRCbG9iKG5hbWUoKSwgbV9m
aWxlTGlzdC0+aXRlbShpKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAg
fQogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTE0NDAsMTMgKzE0MzUsMTMgQEAKICAgICAgICAg
ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0SW5kZXRlcm1pbmF0ZShib29sIF9pbmRldGVybWluYXRlKQordm9pZCBIVE1MSW5w
dXRFbGVtZW50OjpzZXRJbmRldGVybWluYXRlKGJvb2wgaW5kZXQpCiB7CiAgICAgLy8gT25seSBj
aGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zIGhvbm9yIGluZGV0ZXJtaW5hdGUuCi0gICAgaWYg
KCFhbGxvd3NJbmRldGVybWluYXRlKCkgfHwgaW5kZXRlcm1pbmF0ZSgpID09IF9pbmRldGVybWlu
YXRlKQorICAgIGlmICghYWxsb3dzSW5kZXRlcm1pbmF0ZSgpIHx8IGluZGV0ZXJtaW5hdGUoKSA9
PSBpbmRldCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pbmRldGVybWluYXRlID0gX2luZGV0
ZXJtaW5hdGU7CisgICAgbV9pbmRldGVybWluYXRlID0gaW5kZXQ7CiAKICAgICBzZXROZWVkc1N0
eWxlUmVjYWxjKCk7CiAKQEAgLTE0OTIsNyArMTQ4Nyw3IEBACiAgICAgICAgIGlmICh2YWx1ZS5p
c051bGwoKSkgewogICAgICAgICAgICAgaWYgKGlucHV0VHlwZSgpID09IENIRUNLQk9YIHx8IGlu
cHV0VHlwZSgpID09IFJBRElPKQogICAgICAgICAgICAgICAgIHJldHVybiBjaGVja2VkKCkgPyAi
b24iIDogIiI7Ci0gICAgICAgICAgICBlbHNlIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSkKKyAg
ICAgICAgICAgIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSkKICAgICAgICAgICAgICAgICByZXR1
cm4gc2VyaWFsaXplRm9yTnVtYmVyVHlwZShTdGVwUmFuZ2UodGhpcykuZGVmYXVsdFZhbHVlKCkp
OwogICAgICAgICB9CiAgICAgfQpAQCAtMTUwNSwzNSArMTUwMCwzNSBAQAogICAgIFN0cmluZyB2
ID0gdmFsdWUoKTsKICAgICBpZiAodi5pc051bGwoKSkgewogICAgICAgICBzd2l0Y2ggKGlucHV0
VHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgICAgIGNhc2UgQ0hF
Q0tCT1g6Ci0gICAgICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICAgICAgY2FzZSBEQVRFOgot
ICAgICAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAgICAgIGNhc2UgREFURVRJTUVMT0NB
TDoKLSAgICAgICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgICAgICBjYXNlIEZJTEU6Ci0gICAg
ICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAg
ICBjYXNlIElTSU5ERVg6Ci0gICAgICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICAgICAgY2Fz
ZSBOVU1CRVI6Ci0gICAgICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICAgICAgY2FzZSBS
QURJTzoKLSAgICAgICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgICAgICBjYXNlIFNFQVJDSDoK
LSAgICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICAgICAgY2FzZSBURVhUOgotICAg
ICAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgICAgICBj
YXNlIFdFRUs6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJFU0VU
OgotICAgICAgICAgICAgICAgIHYgPSByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICAg
ICAgdiA9IHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwotICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEJVVFRPTjoKKyAgICAgICAgY2FzZSBDSEVDS0JPWDoKKyAgICAgICAg
Y2FzZSBDT0xPUjoKKyAgICAgICAgY2FzZSBEQVRFOgorICAgICAgICBjYXNlIERBVEVUSU1FOgor
ICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgICAgIGNhc2UgRU1BSUw6CisgICAgICAg
IGNhc2UgRklMRToKKyAgICAgICAgY2FzZSBISURERU46CisgICAgICAgIGNhc2UgSU1BR0U6Cisg
ICAgICAgIGNhc2UgSVNJTkRFWDoKKyAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgY2FzZSBO
VU1CRVI6CisgICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgIGNhc2UgUkFESU86CisgICAg
ICAgIGNhc2UgUkFOR0U6CisgICAgICAgIGNhc2UgU0VBUkNIOgorICAgICAgICBjYXNlIFRFTEVQ
SE9ORToKKyAgICAgICAgY2FzZSBURVhUOgorICAgICAgICBjYXNlIFRJTUU6CisgICAgICAgIGNh
c2UgVVJMOgorICAgICAgICBjYXNlIFdFRUs6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBSRVNFVDoKKyAgICAgICAgICAgIHYgPSByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1VCTUlUOgorICAgICAgICAgICAgdiA9
IHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICB9CiAgICAgcmV0dXJuIHY7CkBAIC0xOTUyLDMyICsxOTQ3LDMyIEBACiBib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgY29uc3QK
IHsKICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQlVUVE9OOgotICAg
ICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgY2FzZSBJ
TUFHRToKLSAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAg
Y2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGNhc2UgQ09M
T1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAg
Y2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIEZJ
TEU6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAg
Y2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgIGNhc2UgUkFOR0U6
Ci0gICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAg
Y2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAg
ICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIEJVVFRPTjoK
KyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgSU1BR0U6Cisg
ICAgY2FzZSBSQURJTzoKKyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6CisgICAgY2Fz
ZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAg
ICBjYXNlIEZJTEU6CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNhc2UgTU9OVEg6CisgICAgY2Fz
ZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2Ug
U0VBUkNIOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJ
TUU6CisgICAgY2FzZSBVUkw6CisgICAgY2FzZSBXRUVLOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMjE1Miw1MiArMjE0Nyw1MiBAQAogCiAg
ICAgICAgIGlmIChjaGFyQ29kZSA9PSAnXHInKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0
VHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgICAgICAg
ICBjYXNlIENPTE9SOgotICAgICAgICAgICAgICAgIGNhc2UgREFURToKLSAgICAgICAgICAgICAg
ICBjYXNlIERBVEVUSU1FOgotICAgICAgICAgICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAg
ICAgICAgICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICAgICAgICAgIGNhc2UgSElEREVOOgot
ICAgICAgICAgICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgICAgICAgICBjYXNlIE1PTlRI
OgotICAgICAgICAgICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICAgICAgICAgIGNhc2UgUEFT
U1dPUkQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgICAgICAgICBjYXNl
IFNFQVJDSDoKLSAgICAgICAgICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgICAgICAg
ICBjYXNlIFRFWFQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICAgICAgICAg
IGNhc2UgVVJMOgotICAgICAgICAgICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgICAgICAg
ICAgLy8gU2ltdWxhdGUgbW91c2UgY2xpY2sgb24gdGhlIGRlZmF1bHQgZm9ybSBidXR0b24gZm9y
IGVudGVyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAgICAg
Y2xpY2tEZWZhdWx0Rm9ybUJ1dHRvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICAgICAgICAgIGNhc2UgRklM
RToKLSAgICAgICAgICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICAgICAgICAgIGNhc2UgUkVT
RVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICAgICAgICAgIC8v
IFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBlbnRlciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVu
dHMuCi0gICAgICAgICAgICAgICAgICAgIGNsaWNrRWxlbWVudCA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOyAvLyBEb24ndCBkbyBhbnl0aGluZyBmb3IgZW50ZXIgb24gYSByYWRp
byBidXR0b24uCisgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgorICAgICAgICAgICAgY2FzZSBD
T0xPUjoKKyAgICAgICAgICAgIGNhc2UgREFURToKKyAgICAgICAgICAgIGNhc2UgREFURVRJTUU6
CisgICAgICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgICAgICAgICBjYXNlIEVNQUlM
OgorICAgICAgICAgICAgY2FzZSBISURERU46CisgICAgICAgICAgICBjYXNlIElTSU5ERVg6Cisg
ICAgICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICAgICAgY2FzZSBOVU1CRVI6CisgICAgICAg
ICAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICAgICAgY2FzZSBSQU5HRToKKyAgICAgICAgICAg
IGNhc2UgU0VBUkNIOgorICAgICAgICAgICAgY2FzZSBURUxFUEhPTkU6CisgICAgICAgICAgICBj
YXNlIFRFWFQ6CisgICAgICAgICAgICBjYXNlIFRJTUU6CisgICAgICAgICAgICBjYXNlIFVSTDoK
KyAgICAgICAgICAgIGNhc2UgV0VFSzoKKyAgICAgICAgICAgICAgICAvLyBTaW11bGF0ZSBtb3Vz
ZSBjbGljayBvbiB0aGUgZGVmYXVsdCBmb3JtIGJ1dHRvbiBmb3IgZW50ZXIgZm9yIHRoZXNlIHR5
cGVzIG9mIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgIGNsaWNrRGVmYXVsdEZvcm1CdXR0b24g
PSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCVVRUT046
CisgICAgICAgICAgICBjYXNlIEZJTEU6CisgICAgICAgICAgICBjYXNlIElNQUdFOgorICAgICAg
ICAgICAgY2FzZSBSRVNFVDoKKyAgICAgICAgICAgIGNhc2UgU1VCTUlUOgorICAgICAgICAgICAg
ICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBlbnRlciBmb3IgdGhlc2UgdHlwZXMgb2Yg
ZWxlbWVudHMuCisgICAgICAgICAgICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFESU86CisgICAgICAgICAgICAgICAg
YnJlYWs7IC8vIERvbid0IGRvIGFueXRoaW5nIGZvciBlbnRlciBvbiBhIHJhZGlvIGJ1dHRvbi4K
ICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChjaGFyQ29kZSA9PSAnICcpIHsKICAg
ICAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIEJV
VFRPTjoKLSAgICAgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICAgICAgICAgIGNh
c2UgRklMRToKLSAgICAgICAgICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICAgICAgICAgIGNh
c2UgUkVTRVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICAgICAg
Y2FzZSBSQURJTzoKLSAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBzY3JvbGxpbmcgZG93
biB0aGUgcGFnZS4KLSAgICAgICAgICAgICAgICAgICAgZXZ0LT5zZXREZWZhdWx0SGFuZGxlZCgp
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJVVFRPTjoKKyAg
ICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgICAgICAgICBjYXNlIEZJTEU6CisgICAgICAg
ICAgICBjYXNlIElNQUdFOgorICAgICAgICAgICAgY2FzZSBSRVNFVDoKKyAgICAgICAgICAgIGNh
c2UgU1VCTUlUOgorICAgICAgICAgICAgY2FzZSBSQURJTzoKKyAgICAgICAgICAgICAgICAvLyBQ
cmV2ZW50IHNjcm9sbGluZyBkb3duIHRoZSBwYWdlLgorICAgICAgICAgICAgICAgIGV2dC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKQEAgLTIyMTMsMTkgKzIyMDgsMTkgQEAKIAogICAgICAgICBpZiAoa2V5ID09ICJVKzAwMjAi
KSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAg
Y2FzZSBCVVRUT046Ci0gICAgICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgICAg
ICAgICBjYXNlIEZJTEU6Ci0gICAgICAgICAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgICAg
ICAgICBjYXNlIFJFU0VUOgotICAgICAgICAgICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAg
ICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAgICAgICAgICAgIHNldEFjdGl2ZSh0cnVlLCB0
cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gTm8gc2V0RGVmYXVsdEhhbmRsZWQoKSwgYmVj
YXVzZSBJRSBkaXNwYXRjaGVzIGEga2V5cHJlc3MgaW4gdGhpcyBjYXNlCi0gICAgICAgICAgICAg
ICAgICAgIC8vIGFuZCB0aGUgY2FsbGVyIHdpbGwgb25seSBkaXNwYXRjaCBhIGtleXByZXNzIGlm
IHdlIGRvbid0IGNhbGwgc2V0RGVmYXVsdEhhbmRsZWQuCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQlVUVE9OOgorICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoK
KyAgICAgICAgICAgIGNhc2UgRklMRToKKyAgICAgICAgICAgIGNhc2UgSU1BR0U6CisgICAgICAg
ICAgICBjYXNlIFJFU0VUOgorICAgICAgICAgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgICAgICBj
YXNlIFJBRElPOgorICAgICAgICAgICAgICAgIHNldEFjdGl2ZSh0cnVlLCB0cnVlKTsKKyAgICAg
ICAgICAgICAgICAvLyBObyBzZXREZWZhdWx0SGFuZGxlZCgpLCBiZWNhdXNlIElFIGRpc3BhdGNo
ZXMgYSBrZXlwcmVzcyBpbiB0aGlzIGNhc2UKKyAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIGNh
bGxlciB3aWxsIG9ubHkgZGlzcGF0Y2ggYSBrZXlwcmVzcyBpZiB3ZSBkb24ndCBjYWxsIHNldERl
ZmF1bHRIYW5kbGVkLgorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApA
QCAtMjI3MSw0MCArMjI2Niw0MCBAQAogCiAgICAgICAgIGlmIChrZXkgPT0gIlUrMDAyMCIpIHsK
ICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNl
IEJVVFRPTjoKLSAgICAgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICAgICAgICAg
IGNhc2UgRklMRToKLSAgICAgICAgICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICAgICAgICAg
IGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBzcGFjZWJhciBmb3IgdGhlc2UgdHlw
ZXMgb2YgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBBcHBLaXQgYWxyZWFk
eSBkb2VzIHRoaXMgZm9yIHNvbWUsIGJ1dCBub3QgYWxsLCBvZiB0aGVtLgorICAgICAgICAgICAg
Y2FzZSBCVVRUT046CisgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgorICAgICAgICAgICAgY2Fz
ZSBGSUxFOgorICAgICAgICAgICAgY2FzZSBJTUFHRToKKyAgICAgICAgICAgIGNhc2UgUkVTRVQ6
CisgICAgICAgICAgICBjYXNlIFNVQk1JVDoKKyAgICAgICAgICAgICAgICAvLyBTaW11bGF0ZSBt
b3VzZSBjbGljayBmb3Igc3BhY2ViYXIgZm9yIHRoZXNlIHR5cGVzIG9mIGVsZW1lbnRzLgorICAg
ICAgICAgICAgICAgIC8vIFRoZSBBcHBLaXQgYWxyZWFkeSBkb2VzIHRoaXMgZm9yIHNvbWUsIGJ1
dCBub3QgYWxsLCBvZiB0aGVtLgorICAgICAgICAgICAgICAgIGNsaWNrRWxlbWVudCA9IHRydWU7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJBRElPOgorICAgICAg
ICAgICAgICAgIC8vIElmIGFuIHVuc2VsZWN0ZWQgcmFkaW8gaXMgdGFiYmVkIGludG8gKGJlY2F1
c2UgdGhlIGVudGlyZSBncm91cCBoYXMgbm90aGluZworICAgICAgICAgICAgICAgIC8vIGNoZWNr
ZWQsIG9yIGJlY2F1c2Ugb2Ygc29tZSBleHBsaWNpdCAuZm9jdXMoKSBjYWxsKSwgdGhlbiBhbGxv
dyBzcGFjZSB0byBjaGVjayBpdC4KKyAgICAgICAgICAgICAgICBpZiAoIWNoZWNrZWQoKSkKICAg
ICAgICAgICAgICAgICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgICAgICAg
ICAgLy8gSWYgYW4gdW5zZWxlY3RlZCByYWRpbyBpcyB0YWJiZWQgaW50byAoYmVjYXVzZSB0aGUg
ZW50aXJlIGdyb3VwIGhhcyBub3RoaW5nCi0gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrZWQs
IG9yIGJlY2F1c2Ugb2Ygc29tZSBleHBsaWNpdCAuZm9jdXMoKSBjYWxsKSwgdGhlbiBhbGxvdyBz
cGFjZSB0byBjaGVjayBpdC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja2VkKCkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjbGlja0VsZW1lbnQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICAgICAg
ICAgIGNhc2UgREFURToKLSAgICAgICAgICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICAg
ICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgICAgICAgICBjYXNlIEVNQUlMOgot
ICAgICAgICAgICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICAgICAgICAgIGNhc2UgSVNJTkRF
WDoKLSAgICAgICAgICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICAgICAgICAgIGNhc2UgTlVN
QkVSOgotICAgICAgICAgICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBSQU5HRToKLSAgICAgICAgICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgICAgICAgICBj
YXNlIFRFTEVQSE9ORToKLSAgICAgICAgICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBUSU1FOgotICAgICAgICAgICAgICAgIGNhc2UgVVJMOgotICAgICAgICAgICAgICAg
IGNhc2UgV0VFSzoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIENPTE9SOgorICAgICAgICAgICAgY2FzZSBEQVRFOgor
ICAgICAgICAgICAgY2FzZSBEQVRFVElNRToKKyAgICAgICAgICAgIGNhc2UgREFURVRJTUVMT0NB
TDoKKyAgICAgICAgICAgIGNhc2UgRU1BSUw6CisgICAgICAgICAgICBjYXNlIEhJRERFTjoKKyAg
ICAgICAgICAgIGNhc2UgSVNJTkRFWDoKKyAgICAgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAg
ICAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgICAg
ICBjYXNlIFJBTkdFOgorICAgICAgICAgICAgY2FzZSBTRUFSQ0g6CisgICAgICAgICAgICBjYXNl
IFRFTEVQSE9ORToKKyAgICAgICAgICAgIGNhc2UgVEVYVDoKKyAgICAgICAgICAgIGNhc2UgVElN
RToKKyAgICAgICAgICAgIGNhc2UgVVJMOgorICAgICAgICAgICAgY2FzZSBXRUVLOgorICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTI0NjMsOSAr
MjQ1OCw5IEBACiAgICAgc2V0QXR0cmlidXRlKG11bHRpcGxlQXR0ciwgbXVsdGlwbGUgPyAiIiA6
IDApOwogfQogICAgIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTaXplKHVuc2lnbmVkIF9z
aXplKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTaXplKHVuc2lnbmVkIHNpemUpCiB7Ci0g
ICAgc2V0QXR0cmlidXRlKHNpemVBdHRyLCBTdHJpbmc6Om51bWJlcihfc2l6ZSkpOworICAgIHNl
dEF0dHJpYnV0ZShzaXplQXR0ciwgU3RyaW5nOjpudW1iZXIoc2l6ZSkpOwogfQogCiBLVVJMIEhU
TUxJbnB1dEVsZW1lbnQ6OnNyYygpIGNvbnN0CkBAIC0yNTQxLDMyICsyNTM2LDMyIEBACiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAg
Y2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBEQVRFOgotICAgICAgICBjYXNlIERBVEVUSU1F
OgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAgIGNhc2UgRU1BSUw6Ci0gICAg
ICAgIGNhc2UgRklMRToKLSAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6
Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgIGNh
c2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhUOgot
ICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdFRUs6
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAg
IGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgot
ICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIGNhc2Ug
UkVTRVQ6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6Cisg
ICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBGSUxFOgor
ICAgIGNhc2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAg
ICBjYXNlIFJBRElPOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAg
IGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAgY2FzZSBXRUVL
OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENPTE9S
OgorICAgIGNhc2UgSElEREVOOgorICAgIGNhc2UgSU1BR0U6CisgICAgY2FzZSBJU0lOREVYOgor
ICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNVQk1JVDoKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
Mjc2NSw2ICsyNzYwLDYgQEAKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9Ci0jZW5kaWYgIC8vIEVO
QUJMRShEQVRBTElTVCkKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUxJU1QpCiAKIH0gLy8gbmFtZXNw
YWNlCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lvbiA1
NzczNSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEw
LTA0LTE2ICBSYXkgUmlzY2hwYXRlciAgPFJheW1vbmQuUmlzY2hwYXRlckBOb2tpYS5jb20+CisK
KyAgICAgICAgSW4gSFRNTElucHV0RWxlbWVudC5jcHAsIHNob3VsZFVzZUlucHV0TWV0aG9kIGRv
ZXMgbm90IHJldHVybiB0cnVlIGZvcgorICAgICAgICBIVE1MNSBpbnB1dCB0eXBlcyAoVEVMRVBI
T05FLCBOVU1CRVIsIFVSTCwgYW5kIEVNQUlMKS4gVGhpcworICAgICAgICBwcmV2ZW50cyB0aGUg
dmlydHVhbCBrZXlib2FyZCBmcm9tIGJlaW5nIGJyb3VnaHQgdXAgZm9yIHRoZXNlCisgICAgICAg
IGlucHV0IHR5cGVzLgorCisgICAgICAgIEZpeGVzIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzc3MTk+CisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5wdXRNZXRob2QpCisK
IDIwMTAtMDQtMDkgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgY3Jhc2ggZml4Lgo=
</data>
<flag name="review"
          id="37636"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53984</attachid>
            <date>2010-04-21 13:27:51 -0700</date>
            <delta_ts>2010-04-21 18:12:05 -0700</delta_ts>
            <desc>Patch fixes change log entry details.</desc>
            <filename>vkbtypefix-against-57695-newChangeLog.txt</filename>
            <type>text/plain</type>
            <size>1404</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODAxMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjEgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCwgc2hvdWxkVXNlSW5wdXRNZXRob2Qg
ZG9lcyBub3QgcmV0dXJuIHRydWUgZm9yCisgICAgICAgIEhUTUw1IGlucHV0IHR5cGVzIChURUxF
UEhPTkUsIE5VTUJFUiwgVVJMLCBhbmQgRU1BSUwpLiBUaGlzCisgICAgICAgIHByZXZlbnRzIHRo
ZSB2aXJ0dWFsIGtleWJvYXJkIGZyb20gYmVpbmcgYnJvdWdodCB1cCBmb3IgdGhlc2UKKyAgICAg
ICAgaW5wdXQgdHlwZXMuCisKKyAgICAgICAgRml4ZXMgPGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNzcxOT4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1
dE1ldGhvZCk6CisKIDIwMTAtMDQtMjEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoUXQgYnVpbGQgZml4KS4K
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDU3NzM1KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzQsNyAr
NzM0LDkgQEAKIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1ldGhvZCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdHlwZSA9PSBURVhUIHx8IG1fdHlwZSA9PSBTRUFSQ0gg
fHwgbV90eXBlID09IElTSU5ERVg7CisgICAgcmV0dXJuIG1fdHlwZSA9PSBURVhUIHx8IG1fdHlw
ZSA9PSBTRUFSQ0ggfHwgbV90eXBlID09IElTSU5ERVggfHwgbV90eXBlID09IFBBU1NXT1JECisg
ICAgICAgICAgIHx8IG1fdHlwZSA9PSBURUxFUEhPTkUgfHwgbV90eXBlID09IE5VTUJFUgorICAg
ICAgICAgICB8fCBtX3R5cGUgPT0gVVJMIHx8IG1fdHlwZSA9PSBFTUFJTDsKIH0KIAogdm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpoYW5kbGVGb2N1c0V2ZW50KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53991</attachid>
            <date>2010-04-21 14:21:20 -0700</date>
            <delta_ts>2010-04-21 14:41:37 -0700</delta_ts>
            <desc>Implemented as a switch/case per review comment from Darin.</desc>
            <filename>vkbtypefix-against-57695-changelog-switch.txt</filename>
            <type>text/plain</type>
            <size>1736</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODAxMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjEgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCwgc2hvdWxkVXNlSW5wdXRNZXRob2QgZG9l
cyBub3QgcmV0dXJuIHRydWUgZm9yCisgICAgICAgIEhUTUw1IGlucHV0IHR5cGVzIChURUxFUEhP
TkUsIE5VTUJFUiwgVVJMLCBhbmQgRU1BSUwpLiBUaGlzCisgICAgICAgIHByZXZlbnRzIHRoZSB2
aXJ0dWFsIGtleWJvYXJkIGZyb20gYmVpbmcgYnJvdWdodCB1cCBmb3IgdGhlc2UKKyAgICAgICAg
aW5wdXQgdHlwZXMuCisKKyAgICAgICAgRml4ZXMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNzcxOT4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1l
dGhvZCk6CisKIDIwMTAtMDQtMjEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoUXQgYnVpbGQgZml4KS4KSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDU3NzM1KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzQsNyArNzM0
LDM1IEBACiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5wdXRNZXRob2QoKSBj
b25zdAogewotICAgIHJldHVybiBtX3R5cGUgPT0gVEVYVCB8fCBtX3R5cGUgPT0gU0VBUkNIIHx8
IG1fdHlwZSA9PSBJU0lOREVYOworICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKKyAgICBjYXNl
IE5VTUJFUjoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBF
TUFJTDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBQQVNT
V09SRDoKKyAgICBjYXNlIFVSTDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBEQVRF
OgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2Ug
RklMRToKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdFRUs6Cisg
ICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgQ09MT1I6CisgICAg
Y2FzZSBCVVRUT046CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNl
IFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53993</attachid>
            <date>2010-04-21 14:41:37 -0700</date>
            <delta_ts>2010-04-22 14:33:50 -0700</delta_ts>
            <desc>Neglected assert required at end of function for notifying developer of missing types.</desc>
            <filename>vkbtypefix-against-57695-changelog-switch.txt</filename>
            <type>text/plain</type>
            <size>1763</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODAxMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjEgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCwgc2hvdWxkVXNlSW5wdXRNZXRob2QgZG9l
cyBub3QgcmV0dXJuIHRydWUgZm9yCisgICAgICAgIEhUTUw1IGlucHV0IHR5cGVzIChURUxFUEhP
TkUsIE5VTUJFUiwgVVJMLCBhbmQgRU1BSUwpLiBUaGlzCisgICAgICAgIHByZXZlbnRzIHRoZSB2
aXJ0dWFsIGtleWJvYXJkIGZyb20gYmVpbmcgYnJvdWdodCB1cCBmb3IgdGhlc2UKKyAgICAgICAg
aW5wdXQgdHlwZXMuCisKKyAgICAgICAgRml4ZXMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNzcxOT4KKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1l
dGhvZCk6CisKIDIwMTAtMDQtMjEgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoUXQgYnVpbGQgZml4KS4KSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDU3NzM1KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzQsNyArNzM0
LDM2IEBACiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2hvdWxkVXNlSW5wdXRNZXRob2QoKSBj
b25zdAogewotICAgIHJldHVybiBtX3R5cGUgPT0gVEVYVCB8fCBtX3R5cGUgPT0gU0VBUkNIIHx8
IG1fdHlwZSA9PSBJU0lOREVYOworICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKKyAgICBjYXNl
IE5VTUJFUjoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBF
TUFJTDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBQQVNT
V09SRDoKKyAgICBjYXNlIFVSTDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBEQVRF
OgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2Ug
RklMRToKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdFRUs6Cisg
ICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgQ09MT1I6CisgICAg
Y2FzZSBCVVRUT046CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNl
IFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZh
bHNlOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQoKQo=
</data>
<flag name="review"
          id="37840"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="37841"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54097</attachid>
            <date>2010-04-22 14:33:50 -0700</date>
            <delta_ts>2010-04-22 20:40:04 -0700</delta_ts>
            <desc>Patch shouldUseInputMethod() to use isTextField &amp; inputType</desc>
            <filename>vkbtypefix-using-istext-1.patch</filename>
            <type>text/plain</type>
            <size>1643</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODExNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDQtMjIgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCwgc2hvdWxkVXNlSW5wdXRNZXRob2Qg
ZG9lcyBub3QgcmV0dXJuIHRydWUgZm9yCisgICAgICAgIHNvbWUgdGV4dCBpbnB1dCB0eXBlcyAo
VEVMRVBIT05FLCBOVU1CRVIsIFVSTCwgYW5kIEVNQUlMKS4gQWRkcmVzc2VkCisgICAgICAgIHRo
aXMgYnkgY2hhbmdpbmcgc2hvdWxkVXNlSW5wdXRNZXRob2QgdG8gdXNlIGludGVybmFsIG1ldGhv
ZHMgdG8gCisgICAgICAgIGNoZWNrIHRoYXQgdGhlIGZpZWxkIGlzIGEgdGV4dCBmaWVsZCB0aGF0
IGlzbid0IGEgcGFzc3dvcmQgZmllbGQuIAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAg
ICAgICBGaXhlcyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzE5
PgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNob3VsZFVzZUlucHV0TWV0aG9kKToKKwogMjAxMC0wNC0y
MiAgRGF2ZSBNb29yZSAgPGRhdmVtb29yZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAko
cmV2aXNpb24gNTgwOTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTcyOSw3ICs3MjksMTEgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojph
Ym91dFRvVW5sb2FkKCkKIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1l
dGhvZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdHlwZSA9PSBURVhUIHx8IG1fdHlwZSA9PSBT
RUFSQ0ggfHwgbV90eXBlID09IElTSU5ERVg7CisgICAgLy8gVGhlIHJlYXNvbiBJTUUncyBhcmUg
ZGlzYWJsZWQgZm9yIHRoZSBwYXNzd29yZCBmaWVsZCBpcyBiZWNhdXNlIElNRXMgCisgICAgLy8g
Y2FuIGFjY2VzcyB0aGUgdW5kZXJseWluZyBwYXNzd29yZCBhbmQgZGlzcGxheSBpdCBpbiBjbGVh
ciB0ZXh0IC0tCisgICAgLy8gZS5nLiB5b3UgY2FuIHVzZSBpdCB0byBhY2Nlc3MgdGhlIHN0b3Jl
ZCBwYXNzd29yZCBmb3IgYW55IHNpdGUgCisgICAgLy8gd2l0aCBvbmx5IHRyaXZpYWwgZWZmb3J0
LgorICAgIHJldHVybiBpc1RleHRGaWVsZCgpICYmIGlucHV0VHlwZSgpICE9IFBBU1NXT1JEOwog
fQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmhhbmRsZUZvY3VzRXZlbnQoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>