<?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>37881</bug_id>
          
          <creation_ts>2010-04-20 12:31:19 -0700</creation_ts>
          <short_desc>Numerous style violations in HTMLInputElement.cpp</short_desc>
          <delta_ts>2010-04-21 22:50:12 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ray">Raymond.Rischpater</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214863</commentid>
    <comment_count>0</comment_count>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 12:31:19 -0700</bug_when>
    <thetext>HTMLInputElement.cpp contains numerous style violations --- most are either misformated switch/case blocks or multi-line if statements.

I will provide a patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214872</commentid>
    <comment_count>1</comment_count>
      <attachid>53864</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 12:40:05 -0700</bug_when>
    <thetext>Created attachment 53864
Corrections for all style test failures.

This patch contains style changes only --- mostly white space and some small changes across multiple lines (for malformed if conditionals and the like).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214976</commentid>
    <comment_count>2</comment_count>
      <attachid>53864</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-20 15:02:48 -0700</bug_when>
    <thetext>Comment on attachment 53864
Corrections for all style test failures.

Since this is all about style I was picky about style.

&gt; +         RegularExpression patternRegExp(pattern, TextCaseSensitive);
&gt; +        int matchLength = 0;

Looks like the patternRegExp line is incorrectly indented.

&gt; -            if (focusedInput-&gt;inputType() == RADIO &amp;&amp; focusedInput-&gt;form() == form() &amp;&amp;
&gt; -                focusedInput-&gt;name() == name())
&gt; +            if (focusedInput-&gt;inputType() == RADIO &amp;&amp; focusedInput-&gt;form() == form() 
&gt; +                &amp;&amp; focusedInput-&gt;name() == name())
&gt;                  return false;

I think this would be better if it was just all on one long line.

&gt; -    } else if (attr-&gt;name() == usemapAttr ||
&gt; -               attr-&gt;name() == accesskeyAttr) {
&gt; +    } else if (attr-&gt;name() == usemapAttr 
&gt; +            || attr-&gt;name() == accesskeyAttr) {

I think this would be better if it was just all on one long line.

&gt; +    } else if (attr-&gt;name() == onsearchAttr) {
&gt; +    // Search field and slider attributes all just cause updateFromElement to be called through style recalcing.
&gt;          setAttributeEventListener(eventNames().searchEvent, createAttributeEventListener(this, attr));

I think the comment should be indented at the same level as the code below it.

&gt; -void HTMLInputElement::setIndeterminate(bool _indeterminate)
&gt; +void HTMLInputElement::setIndeterminate(bool indet)

We normally use words, not abbreviations. I think &quot;indet&quot; is unclear. Maybe &quot;newValue&quot; would be better.

Otherwise looks fine. review- because you should fix at least some, preferably all, of what I mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215009</commentid>
    <comment_count>3</comment_count>
      <attachid>53894</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 15:27:20 -0700</bug_when>
    <thetext>Created attachment 53894
Style changes as discussed with Darin Adler

Only style / format changes are in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215011</commentid>
    <comment_count>4</comment_count>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-20 15:28:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 53864 [details])
&gt; Since this is all about style I was picky about style.
&gt; [ suggestions removed for brevity]
&gt; 
&gt; Otherwise looks fine. review- because you should fix at least some, preferably
&gt; all, of what I mentioned above.

Thanks, Darin! I agree with all of your comments, and have incorporated corrections for each of them.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215013</commentid>
    <comment_count>5</comment_count>
      <attachid>53894</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-20 15:31:00 -0700</bug_when>
    <thetext>Comment on attachment 53894
Style changes as discussed with Darin Adler

Rejecting patch 53894 from commit-queue.

Raymond.Rischpater@Nokia.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in WebKitTools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  Due to bug 30084 the commit-queue will require a restart after your change.  Please contact eseidel@chromium.org to request a commit-queue restart.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215302</commentid>
    <comment_count>6</comment_count>
      <attachid>53894</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-21 07:25:07 -0700</bug_when>
    <thetext>Comment on attachment 53894
Style changes as discussed with Darin Adler

Rejecting patch 53894 from commit-queue.

Unexpected failure when landing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--test&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, &apos;53894&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Logging in as eseidel@chromium.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=53894&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=37881&amp;ctype=xml
Processing 1 patch from 1 bug.
Cleaning working directory
Processing patch 53894 from bug 37881.
ERROR: /Users/eseidel/Projects/CommitQueue/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215336</commentid>
    <comment_count>7</comment_count>
      <attachid>53960</attachid>
    <who name="Ray">Raymond.Rischpater</who>
    <bug_when>2010-04-21 08:34:39 -0700</bug_when>
    <thetext>Created attachment 53960
ChangeLog update to permit build bot to check in.

ChangeLog now contains reviewer name to permit the BuildBot to take the changes. 
No changes to the code submission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215351</commentid>
    <comment_count>8</comment_count>
      <attachid>53960</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-21 09:20:21 -0700</bug_when>
    <thetext>Comment on attachment 53960
ChangeLog update to permit build bot to check in.

It&apos;s not actually correct to put the reviewer&apos;s name in the change log. Instead you are supposed to just leave the Reviewed by NOBODY line in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215598</commentid>
    <comment_count>9</comment_count>
      <attachid>53894</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-21 18:11:14 -0700</bug_when>
    <thetext>Comment on attachment 53894
Style changes as discussed with Darin Adler

Cleared Darin Adler&apos;s review+ from obsolete attachment 53894 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215706</commentid>
    <comment_count>10</comment_count>
      <attachid>53960</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-21 22:50:07 -0700</bug_when>
    <thetext>Comment on attachment 53960
ChangeLog update to permit build bot to check in.

Clearing flags on attachment: 53960

Committed r58057: &lt;http://trac.webkit.org/changeset/58057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215707</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-21 22:50:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53864</attachid>
            <date>2010-04-20 12:40:05 -0700</date>
            <delta_ts>2010-04-21 08:34:39 -0700</delta_ts>
            <desc>Corrections for all style test failures.</desc>
            <filename>input-style.txt</filename>
            <type>text/plain</type>
            <size>31785</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQtMjAgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCB0aGVy
ZSBhcmUgbnVtZXJvdXMgc3R5bGUKKyAgICAgICAgdmlvbGF0aW9ucy4KKworICAgICAgICBUaGlz
IHBhdGNoIGluY2x1ZGVzIHN0eWxlIGNoYW5nZXMgdG8gZml4IGV4aXN0aW5nIHN0eWxlCisgICAg
ICAgIGRldmlhdGlvbnMgaW4gdGhpcyBmaWxlLgorCisgICAgICAgIEZpeGVzIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc4ODE+CisKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorCiAyMDEwLTA0LTE2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNiBA
QAogI2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRT
dHJpbmdzLmgiCiAjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCkBAIC02MCw2ICs1OSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiU2NyaXB0RXZl
bnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgIlN0cmluZ0hh
c2guaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKQEAgLTE3MSwzNSArMTcxLDM1IEBACiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAg
Y2FzZSBEQVRFOgotICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1F
TE9DQUw6Ci0gICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgRklMRToKLSAgICAgICAg
Y2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6
Ci0gICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAg
Y2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAg
ICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUoKS5pc0VtcHR5KCk7Ci0gICAg
ICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgICAgICByZXR1cm4gIWNoZWNrZWQoKTsKLSAgICAg
ICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgIHJldHVybiAhY2hlY2tlZFJhZGlvQnV0dG9ucyh0
aGlzKS5jaGVja2VkQnV0dG9uRm9yR3JvdXAobmFtZSgpKTsKLSAgICAgICAgY2FzZSBDT0xPUjoK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAg
IGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6
Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgIGNhc2Ug
U1VCTUlUOgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFU
RVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2Fz
ZSBGSUxFOgorICAgIGNhc2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNT
V09SRDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRF
WFQ6CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAg
ICAgcmV0dXJuIHZhbHVlKCkuaXNFbXB0eSgpOworICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgICAg
IHJldHVybiAhY2hlY2tlZCgpOworICAgIGNhc2UgUkFESU86CisgICAgICAgIHJldHVybiAhY2hl
Y2tlZFJhZGlvQnV0dG9ucyh0aGlzKS5jaGVja2VkQnV0dG9uRm9yR3JvdXAobmFtZSgpKTsKKyAg
ICBjYXNlIENPTE9SOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBCVVRUT046Cisg
ICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAg
Y2FzZSBSQU5HRToKKyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIwOSw0NiArMjA5
LDQyIEBACiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0CiB7
CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAg
ICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRF
OgotICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0g
ICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNhc2UgSU1B
R0U6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAg
Y2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0g
ICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICBjYXNlIFRJ
TUU6Ci0gICAgICAgIGNhc2UgV0VFSzoKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNL
Qk9YOgorICAgIGNhc2UgQ09MT1I6CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6
CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIEhJRERF
TjoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgor
ICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBSQU5HRToKKyAgICBj
YXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdF
RUs6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgUEFT
U1dPUkQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBU
RVhUOgorICAgIGNhc2UgVVJMOgorICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBhdHRlcm4g
PSBnZXRBdHRyaWJ1dGUocGF0dGVybkF0dHIpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSB0aGlz
LT52YWx1ZSgpOworICAgICAgICAgLy8gRW1wdHkgdmFsdWVzIGNhbid0IGJlIG1pc21hdGNoZWQK
KyAgICAgICAgaWYgKHBhdHRlcm4uaXNFbXB0eSgpIHx8IHZhbHVlLmlzRW1wdHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBQ
QVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgot
ICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBwYXR0ZXJuID0gZ2V0QXR0cmlidXRlKHBhdHRlcm5BdHRyKTsKLSAgICAg
ICAgICAgIFN0cmluZyB2YWx1ZSA9IHRoaXMtPnZhbHVlKCk7Ci0KLSAgICAgICAgICAgIC8vIEVt
cHR5IHZhbHVlcyBjYW4ndCBiZSBtaXNtYXRjaGVkCi0gICAgICAgICAgICBpZiAocGF0dGVybi5p
c0VtcHR5KCkgfHwgdmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgICAgICAgICAgUmVndWxhckV4cHJlc3Npb24gcGF0dGVyblJlZ0V4cChwYXR0ZXJu
LCBUZXh0Q2FzZVNlbnNpdGl2ZSk7Ci0gICAgICAgICAgICBpbnQgbWF0Y2hMZW5ndGggPSAwOwot
ICAgICAgICAgICAgaW50IHZhbHVlTGVuZ3RoID0gdmFsdWUubGVuZ3RoKCk7Ci0gICAgICAgICAg
ICBpbnQgbWF0Y2hPZmZzZXQgPSBwYXR0ZXJuUmVnRXhwLm1hdGNoKHZhbHVlLCAwLCAmbWF0Y2hM
ZW5ndGgpOwotCi0gICAgICAgICAgICByZXR1cm4gbWF0Y2hPZmZzZXQgIT0gMCB8fCBtYXRjaExl
bmd0aCAhPSB2YWx1ZUxlbmd0aDsKKyAgICAgICAgIFJlZ3VsYXJFeHByZXNzaW9uIHBhdHRlcm5S
ZWdFeHAocGF0dGVybiwgVGV4dENhc2VTZW5zaXRpdmUpOworICAgICAgICBpbnQgbWF0Y2hMZW5n
dGggPSAwOworICAgICAgICBpbnQgdmFsdWVMZW5ndGggPSB2YWx1ZS5sZW5ndGgoKTsKKyAgICAg
ICAgaW50IG1hdGNoT2Zmc2V0ID0gcGF0dGVyblJlZ0V4cC5tYXRjaCh2YWx1ZSwgMCwgJm1hdGNo
TGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG1hdGNoT2Zmc2V0IHx8IG1hdGNoTGVuZ3RoICE9IHZh
bHVlTGVuZ3RoOwogICAgIH0KLQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KQEAgLTcwMCw4ICs2OTYsOCBAQAogICAgICAgICBOb2RlKiBjdXJyZW50Rm9j
dXNlZE5vZGUgPSBkb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOwogICAgICAgICBpZiAoY3VycmVu
dEZvY3VzZWROb2RlICYmIGN1cnJlbnRGb2N1c2VkTm9kZS0+aGFzVGFnTmFtZShpbnB1dFRhZykp
IHsKICAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGZvY3VzZWRJbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihjdXJyZW50Rm9jdXNlZE5vZGUpOwotICAgICAgICAgICAg
aWYgKGZvY3VzZWRJbnB1dC0+aW5wdXRUeXBlKCkgPT0gUkFESU8gJiYgZm9jdXNlZElucHV0LT5m
b3JtKCkgPT0gZm9ybSgpICYmCi0gICAgICAgICAgICAgICAgZm9jdXNlZElucHV0LT5uYW1lKCkg
PT0gbmFtZSgpKQorICAgICAgICAgICAgaWYgKGZvY3VzZWRJbnB1dC0+aW5wdXRUeXBlKCkgPT0g
UkFESU8gJiYgZm9jdXNlZElucHV0LT5mb3JtKCkgPT0gZm9ybSgpIAorICAgICAgICAgICAgICAg
ICYmIGZvY3VzZWRJbnB1dC0+bmFtZSgpID09IG5hbWUoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC05MDYsNDAgKzkwMiw0MCBAQAogYm9v
bCBIVE1MSW5wdXRFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkg
Y29uc3QKIHsKICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQlVUVE9O
OgotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2Ug
REFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJ
TDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgY2Fz
ZSBJTUFHRToKLSAgICAgICAgY2FzZSBJU0lOREVYOgotICAgICAgICBjYXNlIE1PTlRIOgotICAg
ICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBSRVNF
VDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICBj
YXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0g
ICAgICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdFRUs6IHsKLSAgICAgICAgICAgIFN0cmlu
ZyBjdXJyZW50VmFsdWUgPSB2YWx1ZSgpOwotICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9
PSBkZWZhdWx0VmFsdWUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
ICAgICByZXN1bHQgPSBjdXJyZW50VmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgfQotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNlIFJBRElPOgotICAg
ICAgICAgICAgcmVzdWx0ID0gY2hlY2tlZCgpID8gIm9uIiA6ICJvZmYiOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBCVVRUT046Cisg
ICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBj
YXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAg
Y2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2Fz
ZSBNT05USDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgUkVT
RVQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgY2FzZSBURUxFUEhP
TkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBj
YXNlIFdFRUs6IHsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CisgICAg
ICAgIGlmIChjdXJyZW50VmFsdWUgPT0gZGVmYXVsdFZhbHVlKCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdCA9IGN1cnJlbnRWYWx1ZTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQorICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBSQURJTzoKKyAgICAg
ICAgcmVzdWx0ID0gY2hlY2tlZCgpID8gIm9uIiA6ICJvZmYiOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTk0OCwzNSAr
OTQ0LDM1IEBACiB7CiAgICAgQVNTRVJUKGlucHV0VHlwZSgpICE9IFBBU1NXT1JEKTsgLy8gc2hv
dWxkIG5ldmVyIHNhdmUvcmVzdG9yZSBwYXNzd29yZCBmaWVsZHMKICAgICBzd2l0Y2ggKGlucHV0
VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICBjYXNlIENPTE9SOgotICAg
ICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFU
RVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAg
ICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgY2FzZSBJU0lO
REVYOgotICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAg
Y2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0g
ICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2Fz
ZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICBj
YXNlIFdFRUs6Ci0gICAgICAgICAgICBzZXRWYWx1ZShzdGF0ZSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAg
ICAgIHNldENoZWNrZWQoc3RhdGUgPT0gIm9uIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQlVUVE9OOgor
ICAgIGNhc2UgQ09MT1I6CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6CisgICAg
Y2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBGSUxFOgorICAg
IGNhc2UgSElEREVOOgorICAgIGNhc2UgSU1BR0U6CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNh
c2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBSQU5HRToKKyAgICBjYXNlIFJF
U0VUOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgU1VCTUlUOgorICAgIGNhc2UgVEVMRVBI
T05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAg
Y2FzZSBXRUVLOgorICAgICAgICBzZXRWYWx1ZShzdGF0ZSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBSQURJTzoKKyAgICAgICAgc2V0Q2hlY2tlZChzdGF0
ZSA9PSAib24iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogfQogCkBAIC05OTUsNDcgKzk5MSw0NyBAQAogdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50KQogewogICAgIHN3
aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2Ug
Q0hFQ0tCT1g6Ci0gICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgY2FzZSBJTUFHRToKLSAgICAg
ICAgY2FzZSBSQURJTzoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBSRVNFVDoK
LSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICBmb2N1cyhmYWxzZSk7Ci0gICAgICAg
ICAgICAvLyBzZW5kIHRoZSBtb3VzZSBidXR0b24gZXZlbnRzIGlmZiB0aGUgY2FsbGVyIHNwZWNp
ZmllZCBzZW5kVG9BbnlFbGVtZW50Ci0gICAgICAgICAgICBkaXNwYXRjaFNpbXVsYXRlZENsaWNr
KDAsIHNlbmRUb0FueUVsZW1lbnQpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
SElEREVOOgotICAgICAgICAgICAgLy8gYSBuby1vcCBmb3IgdGhpcyB0eXBlCi0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRFOgotICAgICAg
ICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAgIGNh
c2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBNT05USDoKLSAg
ICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgIGNhc2Ug
U0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhUOgotICAg
ICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdFRUs6Ci0g
ICAgICAgICAgICAvLyBzaG91bGQgbmV2ZXIgcmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24gaGVy
ZQotICAgICAgICAgICAgZm9jdXMoZmFsc2UpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCVVRUT046CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBJ
TUFHRToKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBSRVNFVDoK
KyAgICBjYXNlIFNVQk1JVDoKKyAgICAgICAgZm9jdXMoZmFsc2UpOworICAgICAgICAvLyBzZW5k
IHRoZSBtb3VzZSBidXR0b24gZXZlbnRzIGlmZiB0aGUgY2FsbGVyIHNwZWNpZmllZCBzZW5kVG9B
bnlFbGVtZW50CisgICAgICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZFRvQW55RWxl
bWVudCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSElEREVOOgorICAgICAgICAvLyBhIG5v
LW9wIGZvciB0aGlzIHR5cGUKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDT0xPUjoKKyAgICBj
YXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6Cisg
ICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBj
YXNlIE5VTUJFUjoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNh
c2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBV
Ukw6CisgICAgY2FzZSBXRUVLOgorICAgICAgICAvLyBzaG91bGQgbmV2ZXIgcmVzdG9yZSBwcmV2
aW91cyBzZWxlY3Rpb24gaGVyZQorICAgICAgICBmb2N1cyhmYWxzZSk7CisgICAgICAgICBicmVh
azsKICAgICB9CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6bWFwVG9FbnRyeShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgTWFwcGVkQXR0cmlidXRlRW50cnkmIHJlc3VsdCkgY29u
c3QKIHsKLSAgICBpZiAoKChhdHRyTmFtZSA9PSBoZWlnaHRBdHRyIHx8IGF0dHJOYW1lID09IHdp
ZHRoQXR0cikgJiYgcmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cnMoKSkgfHwKLSAgICAgICAgYXR0
ck5hbWUgPT0gdnNwYWNlQXR0ciB8fAotICAgICAgICBhdHRyTmFtZSA9PSBoc3BhY2VBdHRyKSB7
CisgICAgaWYgKCgoYXR0ck5hbWUgPT0gaGVpZ2h0QXR0ciB8fCBhdHRyTmFtZSA9PSB3aWR0aEF0
dHIpICYmIHJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJzKCkpCisgICAgICAgIHx8IGF0dHJOYW1l
ID09IHZzcGFjZUF0dHIgCisgICAgICAgIHx8IGF0dHJOYW1lID09IGhzcGFjZUF0dHIpIHsKICAg
ICAgICAgcmVzdWx0ID0gZVVuaXZlcnNhbDsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0g
CkBAIC0xMTAyLDggKzEwOTgsOCBAQAogICAgICAgICAgICAgICAgIG1faW1hZ2VMb2FkZXIuc2V0
KG5ldyBIVE1MSW1hZ2VMb2FkZXIodGhpcykpOwogICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+
dXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoKTsKICAgICAgICAgfQotICAg
IH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHVzZW1hcEF0dHIgfHwKLSAgICAgICAgICAgICAg
IGF0dHItPm5hbWUoKSA9PSBhY2Nlc3NrZXlBdHRyKSB7CisgICAgfSBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gdXNlbWFwQXR0ciAKKyAgICAgICAgICAgIHx8IGF0dHItPm5hbWUoKSA9PSBhY2Nl
c3NrZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBpZ25vcmUgZm9yIHRoZSBtb21lbnQKICAg
ICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSB2c3BhY2VBdHRyKSB7CiAgICAgICAgIGFkZENT
U0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eU1hcmdpblRvcCwgYXR0ci0+dmFsdWUoKSk7CkBAIC0x
MTIwLDEwICsxMTE2LDggQEAKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBoZWlnaHRB
dHRyKSB7CiAgICAgICAgIGlmIChyZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRycygpKQogICAgICAg
ICAgICAgYWRkQ1NTTGVuZ3RoKGF0dHIsIENTU1Byb3BlcnR5SGVpZ2h0LCBhdHRyLT52YWx1ZSgp
KTsKLSAgICB9Ci0gICAgLy8gU2VhcmNoIGZpZWxkIGFuZCBzbGlkZXIgYXR0cmlidXRlcyBhbGwg
anVzdCBjYXVzZSB1cGRhdGVGcm9tRWxlbWVudCB0byBiZSBjYWxsZWQgdGhyb3VnaCBzdHlsZQot
ICAgIC8vIHJlY2FsY2luZy4KLSAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25zZWFyY2hB
dHRyKSB7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25zZWFyY2hBdHRyKSB7Cisg
ICAgLy8gU2VhcmNoIGZpZWxkIGFuZCBzbGlkZXIgYXR0cmlidXRlcyBhbGwganVzdCBjYXVzZSB1
cGRhdGVGcm9tRWxlbWVudCB0byBiZSBjYWxsZWQgdGhyb3VnaCBzdHlsZSByZWNhbGNpbmcuCiAg
ICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnNlYXJjaEV2ZW50
LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSByZXN1bHRzQXR0cikgewogICAgICAgICBpbnQgb2xkUmVzdWx0
cyA9IG1fbWF4UmVzdWx0czsKQEAgLTExNjcsNDAgKzExNjEsNDAgQEAKICAgICByZXR1cm4gSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7CiB9
CiAKLVJlbmRlck9iamVjdCAqSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEgKmFyZW5hLCBSZW5kZXJTdHlsZSAqc3R5bGUpCitSZW5kZXJPYmplY3QqIEhUTUxJbnB1
dEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hICphcmVuYSwgUmVuZGVyU3R5bGUg
KnN0eWxlKQogewogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBCVVRU
T046Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJ1dHRvbih0aGlzKTsKLSAgICAgICAgY2FzZSBD
SEVDS0JPWDoKLSAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgIHJldHVybiBSZW5kZXJP
YmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7Ci0gICAgICAgIGNhc2UgRklMRToKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCh0aGlz
KTsKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBJTUFHRToKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlz
KTsKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJTbGlkZXIodGhpcyk7Ci0gICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFU
RToKLSAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgot
ICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2Ug
TU9OVEg6Ci0gICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAg
ICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgICAgIGNhc2Ug
VEVYVDoKLSAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICBjYXNlIFVSTDoKLSAgICAgICAgY2Fz
ZSBXRUVLOgotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZSh0aGlzLCBwbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZSgpKTsKKyAgICBjYXNl
IEJVVFRPTjoKKyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICByZXR1
cm4gbmV3IChhcmVuYSkgUmVuZGVyQnV0dG9uKHRoaXMpOworICAgIGNhc2UgQ0hFQ0tCT1g6Cisg
ICAgY2FzZSBSQURJTzoKKyAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0
KHRoaXMsIHN0eWxlKTsKKyAgICBjYXNlIEZJTEU6CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5h
KSBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCh0aGlzKTsKKyAgICBjYXNlIEhJRERFTjoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJTUFHRToKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJl
bmRlckltYWdlKHRoaXMpOworICAgIGNhc2UgUkFOR0U6CisgICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJTbGlkZXIodGhpcyk7CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6
CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBF
TUFJTDoKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJF
UjoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgVEVMRVBI
T05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAg
Y2FzZSBXRUVLOgorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lKHRoaXMsIHBsYWNlaG9sZGVyU2hvdWxkQmVWaXNpYmxlKCkpOwogICAgIH0KICAg
ICBBU1NFUlQoZmFsc2UpOwogICAgIHJldHVybiAwOwpAQCAtMTI4MSw4NyArMTI3NSw4NiBAQAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAg
ICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRFVElN
RToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgotICAg
ICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgY2FzZSBJU0lOREVYOgotICAgICAgICBjYXNlIE1P
TlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAg
ICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBI
T05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2Fz
ZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIC8vIGFsd2F5cyBzdWNjZXNz
ZnVsCisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToK
KyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEhJRERF
TjoKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJFUjoK
KyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBTRUFSQ0g6Cisg
ICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBj
YXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIC8vIGFsd2F5cyBzdWNjZXNzZnVsCisg
ICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCB2YWx1ZSgpKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgUkFESU86CisgICAgICAg
IGlmIChjaGVja2VkKCkpIHsKICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgp
LCB2YWx1ZSgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOwogCi0gICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0g
ICAgICAgICAgICBpZiAoY2hlY2tlZCgpKSB7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBS
RVNFVDoKKyAgICAgICAgLy8gdGhlc2UgdHlwZXMgb2YgYnV0dG9ucyBhcmUgbmV2ZXIgc3VjY2Vz
c2Z1bAorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjYXNlIElNQUdFOgorICAgICAgICBp
ZiAobV9hY3RpdmVTdWJtaXQpIHsKKyAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFt
ZSgpLmlzRW1wdHkoKSA/ICJ4IiA6IChuYW1lKCkgKyAiLngiKSwgbV94UG9zKTsKKyAgICAgICAg
ICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLmlzRW1wdHkoKSA/ICJ5IiA6IChuYW1lKCkg
KyAiLnkiKSwgbV95UG9zKTsKKyAgICAgICAgICAgIGlmICghbmFtZSgpLmlzRW1wdHkoKSAmJiAh
dmFsdWUoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShu
YW1lKCksIHZhbHVlKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2Fz
ZSBSRVNFVDoKLSAgICAgICAgICAgIC8vIHRoZXNlIHR5cGVzIG9mIGJ1dHRvbnMgYXJlIG5ldmVy
IHN1Y2Nlc3NmdWwKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIFNVQk1JVDoK
KyAgICAgICAgaWYgKG1fYWN0aXZlU3VibWl0KSB7CisgICAgICAgICAgICBTdHJpbmcgZW5jc3Ry
ID0gdmFsdWVXaXRoRGVmYXVsdCgpOworICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShu
YW1lKCksIGVuY3N0cik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKIAotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICAgICAgaWYgKG1fYWN0
aXZlU3VibWl0KSB7Ci0gICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCku
aXNFbXB0eSgpID8gIngiIDogKG5hbWUoKSArICIueCIpLCBtX3hQb3MpOwotICAgICAgICAgICAg
ICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLmlzRW1wdHkoKSA/ICJ5IiA6IChuYW1lKCkg
KyAiLnkiKSwgbV95UG9zKTsKLSAgICAgICAgICAgICAgICBpZiAoIW5hbWUoKS5pc0VtcHR5KCkg
JiYgIXZhbHVlKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBl
bmREYXRhKG5hbWUoKSwgdmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEZJTEU6IHsKKyAgICAg
ICAgdW5zaWduZWQgbnVtRmlsZXMgPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsKKyAgICAgICAgaWYg
KCFtdWx0aXBhcnQpIHsKKyAgICAgICAgICAgIC8vIFNlbmQgb25seSB0aGUgYmFzZW5hbWVzLgor
ICAgICAgICAgICAgLy8gNC4xMC4xNi40IGFuZCA0LjEwLjE2LjYgc2VjdGlvbnMgaW4gSFRNTDUu
CisgICAgCisgICAgICAgICAgICAvLyBVbmxpa2UgdGhlIG11bHRpcGFydCBjYXNlLCB3ZSBoYXZl
IG5vIHNwZWNpYWwKKyAgICAgICAgICAgIC8vIGhhbmRsaW5nIGZvciB0aGUgZW1wdHkgZmlsZUxp
c3QgYmVjYXVzZSBOZXRzY2FwZQorICAgICAgICAgICAgLy8gZG9lc24ndCBzdXBwb3J0IGZvciBu
b24tbXVsdGlwYXJ0IHN1Ym1pc3Npb24gb2YKKyAgICAgICAgICAgIC8vIGZpbGUgaW5wdXRzLCBh
bmQgRmlyZWZveCBkb2Vzbid0IGFkZCAibmFtZT0iIHF1ZXJ5CisgICAgICAgICAgICAvLyBwYXJh
bWV0ZXIuCiAKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICBpZiAobV9hY3RpdmVT
dWJtaXQpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgZW5jX3N0ciA9IHZhbHVlV2l0aERlZmF1
bHQoKTsKLSAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgZW5jX3N0
cik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1GaWxl
czsgKytpKSAKKyAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgbV9m
aWxlTGlzdC0+aXRlbShpKS0+ZmlsZU5hbWUoKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQogCi0gICAgICAgIGNhc2UgRklMRTogewotICAgICAgICAgICAgdW5zaWduZWQg
bnVtRmlsZXMgPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsKLSAgICAgICAgICAgIGlmICghbXVsdGlw
YXJ0KSB7Ci0gICAgICAgICAgICAgICAgLy8gU2VuZCBvbmx5IHRoZSBiYXNlbmFtZXMuCi0gICAg
ICAgICAgICAgICAgLy8gNC4xMC4xNi40IGFuZCA0LjEwLjE2LjYgc2VjdGlvbnMgaW4gSFRNTDUu
Ci0KLSAgICAgICAgICAgICAgICAvLyBVbmxpa2UgdGhlIG11bHRpcGFydCBjYXNlLCB3ZSBoYXZl
IG5vIHNwZWNpYWwKLSAgICAgICAgICAgICAgICAvLyBoYW5kbGluZyBmb3IgdGhlIGVtcHR5IGZp
bGVMaXN0IGJlY2F1c2UgTmV0c2NhcGUKLSAgICAgICAgICAgICAgICAvLyBkb2Vzbid0IHN1cHBv
cnQgZm9yIG5vbi1tdWx0aXBhcnQgc3VibWlzc2lvbiBvZgotICAgICAgICAgICAgICAgIC8vIGZp
bGUgaW5wdXRzLCBhbmQgRmlyZWZveCBkb2Vzbid0IGFkZCAibmFtZT0iIHF1ZXJ5Ci0gICAgICAg
ICAgICAgICAgLy8gcGFyYW1ldGVyLgotCi0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG51bUZpbGVzOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmcu
YXBwZW5kRGF0YShuYW1lKCksIG1fZmlsZUxpc3QtPml0ZW0oaSktPmZpbGVOYW1lKCkpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgLy8gSWYgbm8gZmlsZW5hbWUgYXQgYWxsIGlzIGVudGVyZWQsIHJl
dHVybiBzdWNjZXNzZnVsIGJ1dCBlbXB0eS4KLSAgICAgICAgICAgIC8vIE51bGwgd291bGQgYmUg
bW9yZSBsb2dpY2FsLCBidXQgTmV0c2NhcGUgcG9zdHMgYW4gZW1wdHkgZmlsZS4gQXJnaC4KLSAg
ICAgICAgICAgIGlmICghbnVtRmlsZXMpIHsKLSAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBl
bmRCbG9iKG5hbWUoKSwgRmlsZTo6Y3JlYXRlKCIiKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBudW1GaWxlczsgKytpKQotICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZEJsb2Io
bmFtZSgpLCBtX2ZpbGVMaXN0LT5pdGVtKGkpKTsKKyAgICAgICAgLy8gSWYgbm8gZmlsZW5hbWUg
YXQgYWxsIGlzIGVudGVyZWQsIHJldHVybiBzdWNjZXNzZnVsIGJ1dCBlbXB0eS4KKyAgICAgICAg
Ly8gTnVsbCB3b3VsZCBiZSBtb3JlIGxvZ2ljYWwsIGJ1dCBOZXRzY2FwZSBwb3N0cyBhbiBlbXB0
eSBmaWxlLiBBcmdoLgorICAgICAgICBpZiAoIW51bUZpbGVzKSB7CisgICAgICAgICAgICBlbmNv
ZGluZy5hcHBlbmRCbG9iKG5hbWUoKSwgRmlsZTo6Y3JlYXRlKCIiKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1GaWxlczsgKytpKQorICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kQmxvYihuYW1lKCks
IG1fZmlsZUxpc3QtPml0ZW0oaSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQog
ICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0xNDQwLDEzICsxNDMzLDEzIEBACiAgICAg
ICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogfQogCi12b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldEluZGV0ZXJtaW5hdGUoYm9vbCBfaW5kZXRlcm1pbmF0ZSkKK3ZvaWQgSFRN
TElucHV0RWxlbWVudDo6c2V0SW5kZXRlcm1pbmF0ZShib29sIGluZGV0KQogewogICAgIC8vIE9u
bHkgY2hlY2tib3hlcyBhbmQgcmFkaW8gYnV0dG9ucyBob25vciBpbmRldGVybWluYXRlLgotICAg
IGlmICghYWxsb3dzSW5kZXRlcm1pbmF0ZSgpIHx8IGluZGV0ZXJtaW5hdGUoKSA9PSBfaW5kZXRl
cm1pbmF0ZSkKKyAgICBpZiAoIWFsbG93c0luZGV0ZXJtaW5hdGUoKSB8fCBpbmRldGVybWluYXRl
KCkgPT0gaW5kZXQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faW5kZXRlcm1pbmF0ZSA9IF9p
bmRldGVybWluYXRlOworICAgIG1faW5kZXRlcm1pbmF0ZSA9IGluZGV0OwogCiAgICAgc2V0TmVl
ZHNTdHlsZVJlY2FsYygpOwogCkBAIC0xNDkyLDcgKzE0ODUsNyBAQAogICAgICAgICBpZiAodmFs
dWUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIGlmIChpbnB1dFR5cGUoKSA9PSBDSEVDS0JPWCB8
fCBpbnB1dFR5cGUoKSA9PSBSQURJTykKICAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2tlZCgp
ID8gIm9uIiA6ICIiOwotICAgICAgICAgICAgZWxzZSBpZiAoaW5wdXRUeXBlKCkgPT0gUkFOR0Up
CisgICAgICAgICAgICBpZiAoaW5wdXRUeXBlKCkgPT0gUkFOR0UpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHNlcmlhbGl6ZUZvck51bWJlclR5cGUoU3RlcFJhbmdlKHRoaXMpLmRlZmF1bHRWYWx1
ZSgpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTE1MDUsMzUgKzE0OTgsMzUgQEAKICAgICBTdHJp
bmcgdiA9IHZhbHVlKCk7CiAgICAgaWYgKHYuaXNOdWxsKCkpIHsKICAgICAgICAgc3dpdGNoIChp
bnB1dFR5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgICAgICBjYXNl
IENIRUNLQk9YOgotICAgICAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgICAgIGNhc2UgREFU
RToKLSAgICAgICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgICAgICBjYXNlIERBVEVUSU1F
TE9DQUw6Ci0gICAgICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICAgICAgY2FzZSBGSUxFOgot
ICAgICAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgICAgICBjYXNlIElNQUdFOgotICAgICAg
ICAgICAgY2FzZSBJU0lOREVYOgotICAgICAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAgICAg
IGNhc2UgTlVNQkVSOgotICAgICAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgICAgIGNh
c2UgUkFESU86Ci0gICAgICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICAgICAgY2FzZSBTRUFS
Q0g6Ci0gICAgICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgICAgIGNhc2UgVEVYVDoK
LSAgICAgICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgICAgIGNhc2UgVVJMOgotICAgICAgICAg
ICAgY2FzZSBXRUVLOgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBS
RVNFVDoKLSAgICAgICAgICAgICAgICB2ID0gcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAg
ICAgICAgIHYgPSBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBCVVRUT046CisgICAgICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAg
ICAgIGNhc2UgQ09MT1I6CisgICAgICAgIGNhc2UgREFURToKKyAgICAgICAgY2FzZSBEQVRFVElN
RToKKyAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgICAgICBjYXNlIEVNQUlMOgorICAg
ICAgICBjYXNlIEZJTEU6CisgICAgICAgIGNhc2UgSElEREVOOgorICAgICAgICBjYXNlIElNQUdF
OgorICAgICAgICBjYXNlIElTSU5ERVg6CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgIGNh
c2UgTlVNQkVSOgorICAgICAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICBjYXNlIFJBRElPOgor
ICAgICAgICBjYXNlIFJBTkdFOgorICAgICAgICBjYXNlIFNFQVJDSDoKKyAgICAgICAgY2FzZSBU
RUxFUEhPTkU6CisgICAgICAgIGNhc2UgVEVYVDoKKyAgICAgICAgY2FzZSBUSU1FOgorICAgICAg
ICBjYXNlIFVSTDoKKyAgICAgICAgY2FzZSBXRUVLOgorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgUkVTRVQ6CisgICAgICAgICAgICB2ID0gcmVzZXRCdXR0b25EZWZhdWx0TGFiZWwo
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNVQk1JVDoKKyAgICAgICAgICAg
IHYgPSBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgfQogICAgIHJldHVybiB2OwpAQCAtMTk1MiwzMiArMTk0NSwzMiBAQAogYm9v
bCBIVE1MSW5wdXRFbGVtZW50OjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIGNv
bnN0CiB7CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIEJVVFRPTjoK
LSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNh
c2UgSU1BR0U6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAg
ICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBjYXNl
IENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAg
ICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2Fz
ZSBGSUxFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAg
ICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICBjYXNlIFJB
TkdFOgotICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURUxFUEhPTkU6Ci0gICAg
ICAgIGNhc2UgVEVYVDoKLSAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICBjYXNlIFVSTDoKLSAg
ICAgICAgY2FzZSBXRUVLOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBCVVRU
T046CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIEhJRERFTjoKKyAgICBjYXNlIElNQUdF
OgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNVQk1JVDoKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ09MT1I6CisgICAgY2FzZSBEQVRFOgorICAg
IGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6
CisgICAgY2FzZSBGSUxFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAg
IGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2FzZSBSQU5HRToKKyAgICBj
YXNlIFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2Fz
ZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTIxNTIsNTIgKzIxNDUsNTIgQEAK
IAogICAgICAgICBpZiAoY2hhckNvZGUgPT0gJ1xyJykgewogICAgICAgICAgICAgc3dpdGNoIChp
bnB1dFR5cGUoKSkgewotICAgICAgICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgICAg
ICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgICAg
ICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAgICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6
Ci0gICAgICAgICAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgICAgICAgICBjYXNlIEhJRERF
TjoKLSAgICAgICAgICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgICAgICAgICAgY2FzZSBN
T05USDoKLSAgICAgICAgICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgICAgICAgICBjYXNl
IFBBU1NXT1JEOgotICAgICAgICAgICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgICAgICAgICAg
Y2FzZSBTRUFSQ0g6Ci0gICAgICAgICAgICAgICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgICAgICAg
ICAgICAgY2FzZSBURVhUOgotICAgICAgICAgICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgICAg
ICAgICBjYXNlIFVSTDoKLSAgICAgICAgICAgICAgICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIG9uIHRoZSBkZWZhdWx0IGZvcm0gYnV0dG9u
IGZvciBlbnRlciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAg
ICAgIGNsaWNrRGVmYXVsdEZvcm1CdXR0b24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgICAgICAgICBjYXNl
IEZJTEU6Ci0gICAgICAgICAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgICAgICAgICBjYXNl
IFJFU0VUOgotICAgICAgICAgICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAgICAgICAgICAg
ICAvLyBTaW11bGF0ZSBtb3VzZSBjbGljayBmb3IgZW50ZXIgZm9yIHRoZXNlIHR5cGVzIG9mIGVs
ZW1lbnRzLgotICAgICAgICAgICAgICAgICAgICBjbGlja0VsZW1lbnQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIFJBRElPOgotICAgICAg
ICAgICAgICAgICAgICBicmVhazsgLy8gRG9uJ3QgZG8gYW55dGhpbmcgZm9yIGVudGVyIG9uIGEg
cmFkaW8gYnV0dG9uLgorICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKKyAgICAgICAgICAgIGNh
c2UgQ09MT1I6CisgICAgICAgICAgICBjYXNlIERBVEU6CisgICAgICAgICAgICBjYXNlIERBVEVU
SU1FOgorICAgICAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgICAgICAgICAgY2FzZSBF
TUFJTDoKKyAgICAgICAgICAgIGNhc2UgSElEREVOOgorICAgICAgICAgICAgY2FzZSBJU0lOREVY
OgorICAgICAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIGNhc2UgTlVNQkVSOgorICAg
ICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgICAgIGNhc2UgUkFOR0U6CisgICAgICAg
ICAgICBjYXNlIFNFQVJDSDoKKyAgICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgorICAgICAgICAg
ICAgY2FzZSBURVhUOgorICAgICAgICAgICAgY2FzZSBUSU1FOgorICAgICAgICAgICAgY2FzZSBV
Ukw6CisgICAgICAgICAgICBjYXNlIFdFRUs6CisgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUg
bW91c2UgY2xpY2sgb24gdGhlIGRlZmF1bHQgZm9ybSBidXR0b24gZm9yIGVudGVyIGZvciB0aGVz
ZSB0eXBlcyBvZiBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICBjbGlja0RlZmF1bHRGb3JtQnV0
dG9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQlVU
VE9OOgorICAgICAgICAgICAgY2FzZSBGSUxFOgorICAgICAgICAgICAgY2FzZSBJTUFHRToKKyAg
ICAgICAgICAgIGNhc2UgUkVTRVQ6CisgICAgICAgICAgICBjYXNlIFNVQk1JVDoKKyAgICAgICAg
ICAgICAgICAvLyBTaW11bGF0ZSBtb3VzZSBjbGljayBmb3IgZW50ZXIgZm9yIHRoZXNlIHR5cGVz
IG9mIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgIGNsaWNrRWxlbWVudCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJBRElPOgorICAgICAgICAgICAg
ICAgIGJyZWFrOyAvLyBEb24ndCBkbyBhbnl0aGluZyBmb3IgZW50ZXIgb24gYSByYWRpbyBidXR0
b24uCiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAoY2hhckNvZGUgPT0gJyAnKSB7
CiAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBCVVRUT046Ci0gICAgICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgICAgICAg
ICBjYXNlIEZJTEU6Ci0gICAgICAgICAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgICAgICAg
ICBjYXNlIFJFU0VUOgotICAgICAgICAgICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAgICAg
ICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAgICAgICAgICAgIC8vIFByZXZlbnQgc2Nyb2xsaW5n
IGRvd24gdGhlIHBhZ2UuCi0gICAgICAgICAgICAgICAgICAgIGV2dC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCVVRUT046
CisgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgorICAgICAgICAgICAgY2FzZSBGSUxFOgorICAg
ICAgICAgICAgY2FzZSBJTUFHRToKKyAgICAgICAgICAgIGNhc2UgUkVTRVQ6CisgICAgICAgICAg
ICBjYXNlIFNVQk1JVDoKKyAgICAgICAgICAgIGNhc2UgUkFESU86CisgICAgICAgICAgICAgICAg
Ly8gUHJldmVudCBzY3JvbGxpbmcgZG93biB0aGUgcGFnZS4KKyAgICAgICAgICAgICAgICBldnQt
PnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCkBAIC0yMjEzLDE5ICsyMjA2LDE5IEBACiAKICAgICAgICAgaWYgKGtleSA9PSAiVSsw
MDIwIikgewogICAgICAgICAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICAgICAg
ICAgIGNhc2UgQlVUVE9OOgotICAgICAgICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAg
ICAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICAgICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAg
ICAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAg
ICAgICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgICAgICAgICBzZXRBY3RpdmUodHJ1
ZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIC8vIE5vIHNldERlZmF1bHRIYW5kbGVkKCks
IGJlY2F1c2UgSUUgZGlzcGF0Y2hlcyBhIGtleXByZXNzIGluIHRoaXMgY2FzZQotICAgICAgICAg
ICAgICAgICAgICAvLyBhbmQgdGhlIGNhbGxlciB3aWxsIG9ubHkgZGlzcGF0Y2ggYSBrZXlwcmVz
cyBpZiB3ZSBkb24ndCBjYWxsIHNldERlZmF1bHRIYW5kbGVkLgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIEJVVFRPTjoKKyAgICAgICAgICAgIGNhc2UgQ0hFQ0tC
T1g6CisgICAgICAgICAgICBjYXNlIEZJTEU6CisgICAgICAgICAgICBjYXNlIElNQUdFOgorICAg
ICAgICAgICAgY2FzZSBSRVNFVDoKKyAgICAgICAgICAgIGNhc2UgU1VCTUlUOgorICAgICAgICAg
ICAgY2FzZSBSQURJTzoKKyAgICAgICAgICAgICAgICBzZXRBY3RpdmUodHJ1ZSwgdHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgLy8gTm8gc2V0RGVmYXVsdEhhbmRsZWQoKSwgYmVjYXVzZSBJRSBkaXNw
YXRjaGVzIGEga2V5cHJlc3MgaW4gdGhpcyBjYXNlCisgICAgICAgICAgICAgICAgLy8gYW5kIHRo
ZSBjYWxsZXIgd2lsbCBvbmx5IGRpc3BhdGNoIGEga2V5cHJlc3MgaWYgd2UgZG9uJ3QgY2FsbCBz
ZXREZWZhdWx0SGFuZGxlZC4KKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKQEAgLTIyNzEsNDAgKzIyNjQsNDAgQEAKIAogICAgICAgICBpZiAoa2V5ID09ICJVKzAwMjAi
KSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAg
Y2FzZSBCVVRUT046Ci0gICAgICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgICAg
ICAgICBjYXNlIEZJTEU6Ci0gICAgICAgICAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgICAg
ICAgICBjYXNlIFJFU0VUOgotICAgICAgICAgICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAg
ICAgICAgICAgICAvLyBTaW11bGF0ZSBtb3VzZSBjbGljayBmb3Igc3BhY2ViYXIgZm9yIHRoZXNl
IHR5cGVzIG9mIGVsZW1lbnRzLgotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgQXBwS2l0IGFs
cmVhZHkgZG9lcyB0aGlzIGZvciBzb21lLCBidXQgbm90IGFsbCwgb2YgdGhlbS4KKyAgICAgICAg
ICAgIGNhc2UgQlVUVE9OOgorICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKKyAgICAgICAgICAg
IGNhc2UgRklMRToKKyAgICAgICAgICAgIGNhc2UgSU1BR0U6CisgICAgICAgICAgICBjYXNlIFJF
U0VUOgorICAgICAgICAgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgICAgICAgICAgLy8gU2ltdWxh
dGUgbW91c2UgY2xpY2sgZm9yIHNwYWNlYmFyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4K
KyAgICAgICAgICAgICAgICAvLyBUaGUgQXBwS2l0IGFscmVhZHkgZG9lcyB0aGlzIGZvciBzb21l
LCBidXQgbm90IGFsbCwgb2YgdGhlbS4KKyAgICAgICAgICAgICAgICBjbGlja0VsZW1lbnQgPSB0
cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJTzoKKyAg
ICAgICAgICAgICAgICAvLyBJZiBhbiB1bnNlbGVjdGVkIHJhZGlvIGlzIHRhYmJlZCBpbnRvIChi
ZWNhdXNlIHRoZSBlbnRpcmUgZ3JvdXAgaGFzIG5vdGhpbmcKKyAgICAgICAgICAgICAgICAvLyBj
aGVja2VkLCBvciBiZWNhdXNlIG9mIHNvbWUgZXhwbGljaXQgLmZvY3VzKCkgY2FsbCksIHRoZW4g
YWxsb3cgc3BhY2UgdG8gY2hlY2sgaXQuCisgICAgICAgICAgICAgICAgaWYgKCFjaGVja2VkKCkp
CiAgICAgICAgICAgICAgICAgICAgIGNsaWNrRWxlbWVudCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIElmIGFuIHVuc2VsZWN0ZWQgcmFkaW8gaXMgdGFiYmVkIGludG8gKGJlY2F1c2Ug
dGhlIGVudGlyZSBncm91cCBoYXMgbm90aGluZwotICAgICAgICAgICAgICAgICAgICAvLyBjaGVj
a2VkLCBvciBiZWNhdXNlIG9mIHNvbWUgZXhwbGljaXQgLmZvY3VzKCkgY2FsbCksIHRoZW4gYWxs
b3cgc3BhY2UgdG8gY2hlY2sgaXQuCi0gICAgICAgICAgICAgICAgICAgIGlmICghY2hlY2tlZCgp
KQotICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAg
ICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgICAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAg
ICAgICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAgICAgICAgICAgY2FzZSBFTUFJ
TDoKLSAgICAgICAgICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgICAgICAgICBjYXNlIElT
SU5ERVg6Ci0gICAgICAgICAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAgICAgICAgICBjYXNl
IE5VTUJFUjoKLSAgICAgICAgICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICAgICAgICAg
IGNhc2UgUkFOR0U6Ci0gICAgICAgICAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgICAgICAgICAgICAgY2FzZSBURVhUOgotICAgICAgICAg
ICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgICAgICAgICBjYXNlIFVSTDoKLSAgICAgICAgICAg
ICAgICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDT0xPUjoKKyAgICAgICAgICAgIGNhc2UgREFU
RToKKyAgICAgICAgICAgIGNhc2UgREFURVRJTUU6CisgICAgICAgICAgICBjYXNlIERBVEVUSU1F
TE9DQUw6CisgICAgICAgICAgICBjYXNlIEVNQUlMOgorICAgICAgICAgICAgY2FzZSBISURERU46
CisgICAgICAgICAgICBjYXNlIElTSU5ERVg6CisgICAgICAgICAgICBjYXNlIE1PTlRIOgorICAg
ICAgICAgICAgY2FzZSBOVU1CRVI6CisgICAgICAgICAgICBjYXNlIFBBU1NXT1JEOgorICAgICAg
ICAgICAgY2FzZSBSQU5HRToKKyAgICAgICAgICAgIGNhc2UgU0VBUkNIOgorICAgICAgICAgICAg
Y2FzZSBURUxFUEhPTkU6CisgICAgICAgICAgICBjYXNlIFRFWFQ6CisgICAgICAgICAgICBjYXNl
IFRJTUU6CisgICAgICAgICAgICBjYXNlIFVSTDoKKyAgICAgICAgICAgIGNhc2UgV0VFSzoKKyAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yNDYz
LDkgKzI0NTYsOSBAQAogICAgIHNldEF0dHJpYnV0ZShtdWx0aXBsZUF0dHIsIG11bHRpcGxlID8g
IiIgOiAwKTsKIH0KICAgICAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0U2l6ZSh1bnNpZ25l
ZCBfc2l6ZSkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0U2l6ZSh1bnNpZ25lZCBzaXplKQog
ewotICAgIHNldEF0dHJpYnV0ZShzaXplQXR0ciwgU3RyaW5nOjpudW1iZXIoX3NpemUpKTsKKyAg
ICBzZXRBdHRyaWJ1dGUoc2l6ZUF0dHIsIFN0cmluZzo6bnVtYmVyKHNpemUpKTsKIH0KIAogS1VS
TCBIVE1MSW5wdXRFbGVtZW50OjpzcmMoKSBjb25zdApAQCAtMjU0MSwzMiArMjUzNCwzMiBAQAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAg
ICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRF
VElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgot
ICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIGNhc2UgTlVN
QkVSOgotICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAg
ICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgICAgIGNhc2UgVEVY
VDoKLSAgICAgICAgY2FzZSBUSU1FOgotICAgICAgICBjYXNlIFVSTDoKLSAgICAgICAgY2FzZSBX
RUVLOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgQlVUVE9OOgotICAg
ICAgICBjYXNlIENPTE9SOgotICAgICAgICBjYXNlIEhJRERFTjoKLSAgICAgICAgY2FzZSBJTUFH
RToKLSAgICAgICAgY2FzZSBJU0lOREVYOgotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICBj
YXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1F
OgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgRklM
RToKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUEFTU1dPUkQ6
CisgICAgY2FzZSBSQURJTzoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToK
KyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2Ug
V0VFSzoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBD
T0xPUjoKKyAgICBjYXNlIEhJRERFTjoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRF
WDoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJNSVQ6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTI3NjUsNiArMjc1OCw2IEBACiAgICAgfQogICAgIHJldHVybiAwOwogfQotI2VuZGlmICAv
LyBFTkFCTEUoREFUQUxJU1QpCisjZW5kaWYgLy8gRU5BQkxFKERBVEFMSVNUKQogCiB9IC8vIG5h
bWVzcGFjZQpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNp
b24gNTc3MzUpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAxMC0wNC0xNiAgUmF5IFJpc2NocGF0ZXIgIDxSYXltb25kLlJpc2NocGF0ZXJATm9raWEuY29t
PgorCisgICAgICAgIEluIEhUTUxJbnB1dEVsZW1lbnQuY3BwLCBzaG91bGRVc2VJbnB1dE1ldGhv
ZCBkb2VzIG5vdCByZXR1cm4gdHJ1ZSBmb3IKKyAgICAgICAgSFRNTDUgaW5wdXQgdHlwZXMgKFRF
TEVQSE9ORSwgTlVNQkVSLCBVUkwsIGFuZCBFTUFJTCkuIFRoaXMKKyAgICAgICAgcHJldmVudHMg
dGhlIHZpcnR1YWwga2V5Ym9hcmQgZnJvbSBiZWluZyBicm91Z2h0IHVwIGZvciB0aGVzZQorICAg
ICAgICBpbnB1dCB0eXBlcy4KKworICAgICAgICBGaXhlcyA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM3NzE5PgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKEhUTUxJbnB1dEVsZW1lbnQ6OnNob3VsZFVzZUlucHV0TWV0aG9k
KQorCiAyMDEwLTA0LTA5ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIGNyYXNoIGZpeC4K
</data>
<flag name="review"
          id="37689"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="37690"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53894</attachid>
            <date>2010-04-20 15:27:20 -0700</date>
            <delta_ts>2010-04-21 18:11:13 -0700</delta_ts>
            <desc>Style changes as discussed with Darin Adler</desc>
            <filename>style-patch-r2.txt</filename>
            <type>text/plain</type>
            <size>31053</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQtMjAgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCB0aGVy
ZSBhcmUgbnVtZXJvdXMgc3R5bGUKKyAgICAgICAgdmlvbGF0aW9ucy4KKworICAgICAgICBUaGlz
IHBhdGNoIGluY2x1ZGVzIHN0eWxlIGNoYW5nZXMgdG8gZml4IGV4aXN0aW5nIHN0eWxlCisgICAg
ICAgIGRldmlhdGlvbnMgaW4gdGhpcyBmaWxlLgorCisgICAgICAgIEZpeGVzIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc4ODE+CisKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorCiAyMDEwLTA0LTE2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNiBA
QAogI2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRT
dHJpbmdzLmgiCiAjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCkBAIC02MCw2ICs1OSw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiU2NyaXB0RXZl
bnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgIlN0cmluZ0hh
c2guaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKQEAgLTE3MSwzNSArMTcxLDM1IEBACiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAg
Y2FzZSBEQVRFOgotICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1F
TE9DQUw6Ci0gICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgRklMRToKLSAgICAgICAg
Y2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6
Ci0gICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAg
Y2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAg
ICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUoKS5pc0VtcHR5KCk7Ci0gICAg
ICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgICAgICByZXR1cm4gIWNoZWNrZWQoKTsKLSAgICAg
ICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgIHJldHVybiAhY2hlY2tlZFJhZGlvQnV0dG9ucyh0
aGlzKS5jaGVja2VkQnV0dG9uRm9yR3JvdXAobmFtZSgpKTsKLSAgICAgICAgY2FzZSBDT0xPUjoK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAg
IGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6
Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgIGNhc2Ug
U1VCTUlUOgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFU
RVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2Fz
ZSBGSUxFOgorICAgIGNhc2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNT
V09SRDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRF
WFQ6CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAg
ICAgcmV0dXJuIHZhbHVlKCkuaXNFbXB0eSgpOworICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgICAg
IHJldHVybiAhY2hlY2tlZCgpOworICAgIGNhc2UgUkFESU86CisgICAgICAgIHJldHVybiAhY2hl
Y2tlZFJhZGlvQnV0dG9ucyh0aGlzKS5jaGVja2VkQnV0dG9uRm9yR3JvdXAobmFtZSgpKTsKKyAg
ICBjYXNlIENPTE9SOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBCVVRUT046Cisg
ICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAg
Y2FzZSBSQU5HRToKKyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIwOSw0NiArMjA5
LDQyIEBACiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0CiB7
CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAg
ICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRF
OgotICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0g
ICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNhc2UgSU1B
R0U6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAg
Y2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0g
ICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICBjYXNlIFRJ
TUU6Ci0gICAgICAgIGNhc2UgV0VFSzoKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNL
Qk9YOgorICAgIGNhc2UgQ09MT1I6CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6
CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIEhJRERF
TjoKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgor
ICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBSQU5HRToKKyAgICBj
YXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdF
RUs6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgUEFT
U1dPUkQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBU
RVhUOgorICAgIGNhc2UgVVJMOgorICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBhdHRlcm4g
PSBnZXRBdHRyaWJ1dGUocGF0dGVybkF0dHIpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSB0aGlz
LT52YWx1ZSgpOworICAgICAgICAgLy8gRW1wdHkgdmFsdWVzIGNhbid0IGJlIG1pc21hdGNoZWQK
KyAgICAgICAgaWYgKHBhdHRlcm4uaXNFbXB0eSgpIHx8IHZhbHVlLmlzRW1wdHkoKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBQ
QVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgot
ICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBwYXR0ZXJuID0gZ2V0QXR0cmlidXRlKHBhdHRlcm5BdHRyKTsKLSAgICAg
ICAgICAgIFN0cmluZyB2YWx1ZSA9IHRoaXMtPnZhbHVlKCk7Ci0KLSAgICAgICAgICAgIC8vIEVt
cHR5IHZhbHVlcyBjYW4ndCBiZSBtaXNtYXRjaGVkCi0gICAgICAgICAgICBpZiAocGF0dGVybi5p
c0VtcHR5KCkgfHwgdmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgICAgICAgICAgUmVndWxhckV4cHJlc3Npb24gcGF0dGVyblJlZ0V4cChwYXR0ZXJu
LCBUZXh0Q2FzZVNlbnNpdGl2ZSk7Ci0gICAgICAgICAgICBpbnQgbWF0Y2hMZW5ndGggPSAwOwot
ICAgICAgICAgICAgaW50IHZhbHVlTGVuZ3RoID0gdmFsdWUubGVuZ3RoKCk7Ci0gICAgICAgICAg
ICBpbnQgbWF0Y2hPZmZzZXQgPSBwYXR0ZXJuUmVnRXhwLm1hdGNoKHZhbHVlLCAwLCAmbWF0Y2hM
ZW5ndGgpOwotCi0gICAgICAgICAgICByZXR1cm4gbWF0Y2hPZmZzZXQgIT0gMCB8fCBtYXRjaExl
bmd0aCAhPSB2YWx1ZUxlbmd0aDsKKyAgICAgICAgUmVndWxhckV4cHJlc3Npb24gcGF0dGVyblJl
Z0V4cChwYXR0ZXJuLCBUZXh0Q2FzZVNlbnNpdGl2ZSk7CisgICAgICAgIGludCBtYXRjaExlbmd0
aCA9IDA7CisgICAgICAgIGludCB2YWx1ZUxlbmd0aCA9IHZhbHVlLmxlbmd0aCgpOworICAgICAg
ICBpbnQgbWF0Y2hPZmZzZXQgPSBwYXR0ZXJuUmVnRXhwLm1hdGNoKHZhbHVlLCAwLCAmbWF0Y2hM
ZW5ndGgpOworICAgICAgICByZXR1cm4gbWF0Y2hPZmZzZXQgfHwgbWF0Y2hMZW5ndGggIT0gdmFs
dWVMZW5ndGg7CiAgICAgfQotCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQpAQCAtNzAwLDggKzY5Niw3IEBACiAgICAgICAgIE5vZGUqIGN1cnJlbnRGb2N1
c2VkTm9kZSA9IGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCk7CiAgICAgICAgIGlmIChjdXJyZW50
Rm9jdXNlZE5vZGUgJiYgY3VycmVudEZvY3VzZWROb2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkg
ewogICAgICAgICAgICAgSFRNTElucHV0RWxlbWVudCogZm9jdXNlZElucHV0ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KGN1cnJlbnRGb2N1c2VkTm9kZSk7Ci0gICAgICAgICAgICBp
ZiAoZm9jdXNlZElucHV0LT5pbnB1dFR5cGUoKSA9PSBSQURJTyAmJiBmb2N1c2VkSW5wdXQtPmZv
cm0oKSA9PSBmb3JtKCkgJiYKLSAgICAgICAgICAgICAgICBmb2N1c2VkSW5wdXQtPm5hbWUoKSA9
PSBuYW1lKCkpCisgICAgICAgICAgICBpZiAoZm9jdXNlZElucHV0LT5pbnB1dFR5cGUoKSA9PSBS
QURJTyAmJiBmb2N1c2VkSW5wdXQtPmZvcm0oKSA9PSBmb3JtKCkgJiYgZm9jdXNlZElucHV0LT5u
YW1lKCkgPT0gbmFtZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
fQogICAgICAgICAKQEAgLTkwNiw0MCArOTAxLDQwIEBACiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6
OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAogewogICAgIHN3aXRj
aCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ09M
T1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAg
Y2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIEZJ
TEU6Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBj
YXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIGNhc2UgTlVNQkVSOgot
ICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNF
QVJDSDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAg
ICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0g
ICAgICAgIGNhc2UgV0VFSzogewotICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZh
bHVlKCk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlID09IGRlZmF1bHRWYWx1ZSgpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGN1cnJl
bnRWYWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGNh
c2UgQ0hFQ0tCT1g6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAgICByZXN1bHQgPSBj
aGVja2VkKCkgPyAib24iIDogIm9mZiI7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENPTE9SOgorICAg
IGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoK
KyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIEhJRERFTjoKKyAgICBj
YXNlIElNQUdFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2Ug
TlVNQkVSOgorICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNFQVJD
SDoKKyAgICBjYXNlIFNVQk1JVDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6
CisgICAgY2FzZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzogeworICAgICAg
ICBTdHJpbmcgY3VycmVudFZhbHVlID0gdmFsdWUoKTsKKyAgICAgICAgaWYgKGN1cnJlbnRWYWx1
ZSA9PSBkZWZhdWx0VmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
cmVzdWx0ID0gY3VycmVudFZhbHVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAg
Y2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgorICAgICAgICByZXN1bHQgPSBjaGVja2Vk
KCkgPyAib24iIDogIm9mZiI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgUEFTU1dP
UkQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtOTQ4LDM1ICs5NDMsMzUgQEAKIHsKICAgICBB
U1NFUlQoaW5wdXRUeXBlKCkgIT0gUEFTU1dPUkQpOyAvLyBzaG91bGQgbmV2ZXIgc2F2ZS9yZXN0
b3JlIHBhc3N3b3JkIGZpZWxkcwogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAg
Y2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAg
ICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAg
ICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgIGNhc2UgSElEREVOOgot
ICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2Ug
TU9OVEg6Ci0gICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAg
ICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6
Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNh
c2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAg
ICAgIHNldFZhbHVlKHN0YXRlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENI
RUNLQk9YOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgc2V0Q2hlY2tlZChzdGF0
ZSA9PSAib24iKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBBU1NXT1JEOgot
ICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBDT0xPUjoKKyAg
ICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6
CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBISURERU46CisgICAg
Y2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNl
IE5VTUJFUjoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTRUFS
Q0g6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhU
OgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAg
IHNldFZhbHVlKHN0YXRlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDSEVDS0JPWDoKKyAg
ICBjYXNlIFJBRElPOgorICAgICAgICBzZXRDaGVja2VkKHN0YXRlID09ICJvbiIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAK
QEAgLTk5NSw0NyArOTkwLDQ3IEBACiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRUb0FueUVsZW1lbnQpCiB7CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkg
ewotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAg
Y2FzZSBGSUxFOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIFJBRElPOgotICAg
ICAgICBjYXNlIFJBTkdFOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNVQk1J
VDoKLSAgICAgICAgICAgIGZvY3VzKGZhbHNlKTsKLSAgICAgICAgICAgIC8vIHNlbmQgdGhlIG1v
dXNlIGJ1dHRvbiBldmVudHMgaWZmIHRoZSBjYWxsZXIgc3BlY2lmaWVkIHNlbmRUb0FueUVsZW1l
bnQKLSAgICAgICAgICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZFRvQW55RWxlbWVu
dCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgICAg
ICAvLyBhIG5vLW9wIGZvciB0aGlzIHR5cGUKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0g
ICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAg
Y2FzZSBJU0lOREVYOgotICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoK
LSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNh
c2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAg
ICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIC8vIHNob3Vs
ZCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbiBoZXJlCi0gICAgICAgICAgICBmb2N1
cyhmYWxzZSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNl
IENIRUNLQk9YOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgUkFE
SU86CisgICAgY2FzZSBSQU5HRToKKyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgor
ICAgICAgICBmb2N1cyhmYWxzZSk7CisgICAgICAgIC8vIHNlbmQgdGhlIG1vdXNlIGJ1dHRvbiBl
dmVudHMgaWZmIHRoZSBjYWxsZXIgc3BlY2lmaWVkIHNlbmRUb0FueUVsZW1lbnQKKyAgICAgICAg
ZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kVG9BbnlFbGVtZW50KTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBISURERU46CisgICAgICAgIC8vIGEgbm8tb3AgZm9yIHRoaXMgdHlwZQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNl
IERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAg
IGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNh
c2UgUEFTU1dPUkQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAg
Y2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6
CisgICAgICAgIC8vIHNob3VsZCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbiBoZXJl
CisgICAgICAgIGZvY3VzKGZhbHNlKTsKKyAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogYm9v
bCBIVE1MSW5wdXRFbGVtZW50OjptYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdAogewotICAgIGlmICgoKGF0
dHJOYW1lID09IGhlaWdodEF0dHIgfHwgYXR0ck5hbWUgPT0gd2lkdGhBdHRyKSAmJiByZXNwZWN0
SGVpZ2h0QW5kV2lkdGhBdHRycygpKSB8fAotICAgICAgICBhdHRyTmFtZSA9PSB2c3BhY2VBdHRy
IHx8Ci0gICAgICAgIGF0dHJOYW1lID09IGhzcGFjZUF0dHIpIHsKKyAgICBpZiAoKChhdHRyTmFt
ZSA9PSBoZWlnaHRBdHRyIHx8IGF0dHJOYW1lID09IHdpZHRoQXR0cikgJiYgcmVzcGVjdEhlaWdo
dEFuZFdpZHRoQXR0cnMoKSkKKyAgICAgICAgfHwgYXR0ck5hbWUgPT0gdnNwYWNlQXR0ciAKKyAg
ICAgICAgfHwgYXR0ck5hbWUgPT0gaHNwYWNlQXR0cikgewogICAgICAgICByZXN1bHQgPSBlVW5p
dmVyc2FsOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSAKQEAgLTExMDIsOCArMTA5Nyw3
IEBACiAgICAgICAgICAgICAgICAgbV9pbWFnZUxvYWRlci5zZXQobmV3IEhUTUxJbWFnZUxvYWRl
cih0aGlzKSk7CiAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudEln
bm9yaW5nUHJldmlvdXNFcnJvcigpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gdXNlbWFwQXR0ciB8fAotICAgICAgICAgICAgICAgYXR0ci0+bmFtZSgpID09IGFj
Y2Vzc2tleUF0dHIpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSB1c2VtYXBBdHRy
IHx8IGF0dHItPm5hbWUoKSA9PSBhY2Nlc3NrZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBp
Z25vcmUgZm9yIHRoZSBtb21lbnQKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSB2c3Bh
Y2VBdHRyKSB7CiAgICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eU1hcmdpblRv
cCwgYXR0ci0+dmFsdWUoKSk7CkBAIC0xMTIwLDEwICsxMTE0LDggQEAKICAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBoZWlnaHRBdHRyKSB7CiAgICAgICAgIGlmIChyZXNwZWN0SGVpZ2h0
QW5kV2lkdGhBdHRycygpKQogICAgICAgICAgICAgYWRkQ1NTTGVuZ3RoKGF0dHIsIENTU1Byb3Bl
cnR5SGVpZ2h0LCBhdHRyLT52YWx1ZSgpKTsKLSAgICB9Ci0gICAgLy8gU2VhcmNoIGZpZWxkIGFu
ZCBzbGlkZXIgYXR0cmlidXRlcyBhbGwganVzdCBjYXVzZSB1cGRhdGVGcm9tRWxlbWVudCB0byBi
ZSBjYWxsZWQgdGhyb3VnaCBzdHlsZQotICAgIC8vIHJlY2FsY2luZy4KLSAgICBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gb25zZWFyY2hBdHRyKSB7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gb25zZWFyY2hBdHRyKSB7CisgICAgICAgIC8vIFNlYXJjaCBmaWVsZCBhbmQgc2xpZGVy
IGF0dHJpYnV0ZXMgYWxsIGp1c3QgY2F1c2UgdXBkYXRlRnJvbUVsZW1lbnQgdG8gYmUgY2FsbGVk
IHRocm91Z2ggc3R5bGUgcmVjYWxjaW5nLgogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKGV2ZW50TmFtZXMoKS5zZWFyY2hFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5l
cih0aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gcmVzdWx0c0F0
dHIpIHsKICAgICAgICAgaW50IG9sZFJlc3VsdHMgPSBtX21heFJlc3VsdHM7CkBAIC0xMTY3LDQw
ICsxMTU5LDQwIEBACiAgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1SZW5kZXJPYmplY3QgKkhUTUxJbnB1dEVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hICphcmVuYSwgUmVuZGVyU3R5bGUgKnN0
eWxlKQorUmVuZGVyT2JqZWN0KiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSAqYXJlbmEsIFJlbmRlclN0eWxlICpzdHlsZSkKIHsKICAgICBzd2l0Y2ggKGlucHV0
VHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICBjYXNlIFJFU0VUOgotICAg
ICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJC
dXR0b24odGhpcyk7Ci0gICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgIGNhc2UgUkFESU86
Ci0gICAgICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QodGhpcywgc3R5
bGUpOwotICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkg
UmVuZGVyRmlsZVVwbG9hZENvbnRyb2wodGhpcyk7Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhcmVuYSkgUmVuZGVySW1hZ2UodGhpcyk7Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAg
ICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU2xpZGVyKHRoaXMpOwotICAgICAgICBj
YXNlIENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0g
ICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAg
Y2FzZSBJU0lOREVYOgotICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoK
LSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNh
c2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAg
ICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUodGhpcywgcGxhY2Vob2xkZXJT
aG91bGRCZVZpc2libGUoKSk7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBSRVNFVDoKKyAg
ICBjYXNlIFNVQk1JVDoKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJ1dHRvbih0
aGlzKTsKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2UgUkFESU86CisgICAgICAgIHJldHVy
biBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisgICAgY2FzZSBGSUxF
OgorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wodGhp
cyk7CisgICAgY2FzZSBISURERU46CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU1BR0U6Cisg
ICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKKyAgICBjYXNlIFJB
TkdFOgorICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU2xpZGVyKHRoaXMpOworICAg
IGNhc2UgQ09MT1I6CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2Fz
ZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBJU0lOREVYOgorICAg
IGNhc2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBj
YXNlIFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2Fz
ZSBUSU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgcmV0dXJuIG5l
dyAoYXJlbmEpIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZSh0aGlzLCBwbGFjZWhvbGRlclNo
b3VsZEJlVmlzaWJsZSgpKTsKICAgICB9CiAgICAgQVNTRVJUKGZhbHNlKTsKICAgICByZXR1cm4g
MDsKQEAgLTEyODEsODcgKzEyNzMsODYgQEAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
c3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICBjYXNl
IERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NB
TDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNh
c2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0g
ICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIGNhc2Ug
U0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhUOgotICAg
ICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdFRUs6Ci0g
ICAgICAgICAgICAvLyBhbHdheXMgc3VjY2Vzc2Z1bAorICAgIGNhc2UgQ09MT1I6CisgICAgY2Fz
ZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAg
IGNhc2UgRU1BSUw6CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNh
c2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNl
IFJBTkdFOgorICAgIGNhc2UgU0VBUkNIOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2Ug
VEVYVDoKKyAgICBjYXNlIFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAgY2FzZSBXRUVLOgorICAg
ICAgICAvLyBhbHdheXMgc3VjY2Vzc2Z1bAorICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5h
bWUoKSwgdmFsdWUoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBDSEVDS0JP
WDoKKyAgICBjYXNlIFJBRElPOgorICAgICAgICBpZiAoY2hlY2tlZCgpKSB7CiAgICAgICAgICAg
ICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgdmFsdWUoKSk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIENIRUNL
Qk9YOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgaWYgKGNoZWNrZWQoKSkgewor
ICAgIGNhc2UgQlVUVE9OOgorICAgIGNhc2UgUkVTRVQ6CisgICAgICAgIC8vIHRoZXNlIHR5cGVz
IG9mIGJ1dHRvbnMgYXJlIG5ldmVyIHN1Y2Nlc3NmdWwKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgY2FzZSBJTUFHRToKKyAgICAgICAgaWYgKG1fYWN0aXZlU3VibWl0KSB7CisgICAgICAg
ICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKS5pc0VtcHR5KCkgPyAieCIgOiAobmFtZSgp
ICsgIi54IiksIG1feFBvcyk7CisgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUo
KS5pc0VtcHR5KCkgPyAieSIgOiAobmFtZSgpICsgIi55IiksIG1feVBvcyk7CisgICAgICAgICAg
ICBpZiAoIW5hbWUoKS5pc0VtcHR5KCkgJiYgIXZhbHVlKCkuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCB2YWx1ZSgpKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAKLSAgICAg
ICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAvLyB0aGVz
ZSB0eXBlcyBvZiBidXR0b25zIGFyZSBuZXZlciBzdWNjZXNzZnVsCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIGlmIChtX2FjdGl2ZVN1Ym1pdCkg
eworICAgICAgICAgICAgU3RyaW5nIGVuY3N0ciA9IHZhbHVlV2l0aERlZmF1bHQoKTsKKyAgICAg
ICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCBlbmNzdHIpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBJ
TUFHRToKLSAgICAgICAgICAgIGlmIChtX2FjdGl2ZVN1Ym1pdCkgewotICAgICAgICAgICAgICAg
IGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLmlzRW1wdHkoKSA/ICJ4IiA6IChuYW1lKCkgKyAi
LngiKSwgbV94UG9zKTsKLSAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUo
KS5pc0VtcHR5KCkgPyAieSIgOiAobmFtZSgpICsgIi55IiksIG1feVBvcyk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFuYW1lKCkuaXNFbXB0eSgpICYmICF2YWx1ZSgpLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCksIHZhbHVlKCkpOwotICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBGSUxFOiB7CisgICAgICAgIHVuc2lnbmVkIG51bUZpbGVzID0gbV9maWxl
TGlzdC0+bGVuZ3RoKCk7CisgICAgICAgIGlmICghbXVsdGlwYXJ0KSB7CisgICAgICAgICAgICAv
LyBTZW5kIG9ubHkgdGhlIGJhc2VuYW1lcy4KKyAgICAgICAgICAgIC8vIDQuMTAuMTYuNCBhbmQg
NC4xMC4xNi42IHNlY3Rpb25zIGluIEhUTUw1LgorICAgIAorICAgICAgICAgICAgLy8gVW5saWtl
IHRoZSBtdWx0aXBhcnQgY2FzZSwgd2UgaGF2ZSBubyBzcGVjaWFsCisgICAgICAgICAgICAvLyBo
YW5kbGluZyBmb3IgdGhlIGVtcHR5IGZpbGVMaXN0IGJlY2F1c2UgTmV0c2NhcGUKKyAgICAgICAg
ICAgIC8vIGRvZXNuJ3Qgc3VwcG9ydCBmb3Igbm9uLW11bHRpcGFydCBzdWJtaXNzaW9uIG9mCisg
ICAgICAgICAgICAvLyBmaWxlIGlucHV0cywgYW5kIEZpcmVmb3ggZG9lc24ndCBhZGQgIm5hbWU9
IiBxdWVyeQorICAgICAgICAgICAgLy8gcGFyYW1ldGVyLgogCi0gICAgICAgIGNhc2UgU1VCTUlU
OgotICAgICAgICAgICAgaWYgKG1fYWN0aXZlU3VibWl0KSB7Ci0gICAgICAgICAgICAgICAgU3Ry
aW5nIGVuY19zdHIgPSB2YWx1ZVdpdGhEZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAgZW5jb2Rp
bmcuYXBwZW5kRGF0YShuYW1lKCksIGVuY19zdHIpOwotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkgCisgICAgICAgICAgICAgICAgZW5j
b2RpbmcuYXBwZW5kRGF0YShuYW1lKCksIG1fZmlsZUxpc3QtPml0ZW0oaSktPmZpbGVOYW1lKCkp
OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KIAotICAgICAgICBjYXNlIEZJ
TEU6IHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG51bUZpbGVzID0gbV9maWxlTGlzdC0+bGVuZ3Ro
KCk7Ci0gICAgICAgICAgICBpZiAoIW11bHRpcGFydCkgewotICAgICAgICAgICAgICAgIC8vIFNl
bmQgb25seSB0aGUgYmFzZW5hbWVzLgotICAgICAgICAgICAgICAgIC8vIDQuMTAuMTYuNCBhbmQg
NC4xMC4xNi42IHNlY3Rpb25zIGluIEhUTUw1LgotCi0gICAgICAgICAgICAgICAgLy8gVW5saWtl
IHRoZSBtdWx0aXBhcnQgY2FzZSwgd2UgaGF2ZSBubyBzcGVjaWFsCi0gICAgICAgICAgICAgICAg
Ly8gaGFuZGxpbmcgZm9yIHRoZSBlbXB0eSBmaWxlTGlzdCBiZWNhdXNlIE5ldHNjYXBlCi0gICAg
ICAgICAgICAgICAgLy8gZG9lc24ndCBzdXBwb3J0IGZvciBub24tbXVsdGlwYXJ0IHN1Ym1pc3Np
b24gb2YKLSAgICAgICAgICAgICAgICAvLyBmaWxlIGlucHV0cywgYW5kIEZpcmVmb3ggZG9lc24n
dCBhZGQgIm5hbWU9IiBxdWVyeQotICAgICAgICAgICAgICAgIC8vIHBhcmFtZXRlci4KLQotICAg
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1GaWxlczsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCBtX2ZpbGVMaXN0
LT5pdGVtKGkpLT5maWxlTmFtZSgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIElmIG5vIGZp
bGVuYW1lIGF0IGFsbCBpcyBlbnRlcmVkLCByZXR1cm4gc3VjY2Vzc2Z1bCBidXQgZW1wdHkuCi0g
ICAgICAgICAgICAvLyBOdWxsIHdvdWxkIGJlIG1vcmUgbG9naWNhbCwgYnV0IE5ldHNjYXBlIHBv
c3RzIGFuIGVtcHR5IGZpbGUuIEFyZ2guCi0gICAgICAgICAgICBpZiAoIW51bUZpbGVzKSB7Ci0g
ICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kQmxvYihuYW1lKCksIEZpbGU6OmNyZWF0ZSgi
IikpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkKLSAgICAgICAg
ICAgICAgICBlbmNvZGluZy5hcHBlbmRCbG9iKG5hbWUoKSwgbV9maWxlTGlzdC0+aXRlbShpKSk7
CisgICAgICAgIC8vIElmIG5vIGZpbGVuYW1lIGF0IGFsbCBpcyBlbnRlcmVkLCByZXR1cm4gc3Vj
Y2Vzc2Z1bCBidXQgZW1wdHkuCisgICAgICAgIC8vIE51bGwgd291bGQgYmUgbW9yZSBsb2dpY2Fs
LCBidXQgTmV0c2NhcGUgcG9zdHMgYW4gZW1wdHkgZmlsZS4gQXJnaC4KKyAgICAgICAgaWYgKCFu
dW1GaWxlcykgeworICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kQmxvYihuYW1lKCksIEZpbGU6
OmNyZWF0ZSgiIikpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkKKyAgICAgICAgICAg
IGVuY29kaW5nLmFwcGVuZEJsb2IobmFtZSgpLCBtX2ZpbGVMaXN0LT5pdGVtKGkpKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpA
QCAtMTQ0MCwxMyArMTQzMSwxMyBAQAogICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdl
RXZlbnQoKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRJbmRldGVybWluYXRlKGJv
b2wgX2luZGV0ZXJtaW5hdGUpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEluZGV0ZXJtaW5h
dGUoYm9vbCBuZXdWYWx1ZSkKIHsKICAgICAvLyBPbmx5IGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1
dHRvbnMgaG9ub3IgaW5kZXRlcm1pbmF0ZS4KLSAgICBpZiAoIWFsbG93c0luZGV0ZXJtaW5hdGUo
KSB8fCBpbmRldGVybWluYXRlKCkgPT0gX2luZGV0ZXJtaW5hdGUpCisgICAgaWYgKCFhbGxvd3NJ
bmRldGVybWluYXRlKCkgfHwgaW5kZXRlcm1pbmF0ZSgpID09IG5ld1ZhbHVlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2luZGV0ZXJtaW5hdGUgPSBfaW5kZXRlcm1pbmF0ZTsKKyAgICBtX2lu
ZGV0ZXJtaW5hdGUgPSBuZXdWYWx1ZTsKIAogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIApA
QCAtMTQ5Miw3ICsxNDgzLDcgQEAKICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICBpZiAoaW5wdXRUeXBlKCkgPT0gQ0hFQ0tCT1ggfHwgaW5wdXRUeXBlKCkgPT0gUkFE
SU8pCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrZWQoKSA/ICJvbiIgOiAiIjsKLSAgICAg
ICAgICAgIGVsc2UgaWYgKGlucHV0VHlwZSgpID09IFJBTkdFKQorICAgICAgICAgICAgaWYgKGlu
cHV0VHlwZSgpID09IFJBTkdFKQogICAgICAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVGb3JO
dW1iZXJUeXBlKFN0ZXBSYW5nZSh0aGlzKS5kZWZhdWx0VmFsdWUoKSk7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0xNTA1LDM1ICsxNDk2LDM1IEBACiAgICAgU3RyaW5nIHYgPSB2YWx1ZSgpOwogICAg
IGlmICh2LmlzTnVsbCgpKSB7CiAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAg
ICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAg
ICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgICAgICBjYXNl
IERBVEVUSU1FOgotICAgICAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICAgICAg
Y2FzZSBFTUFJTDoKLSAgICAgICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgICAgIGNhc2UgSElE
REVOOgotICAgICAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAgICAgIGNhc2UgSVNJTkRFWDoK
LSAgICAgICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAg
ICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAg
ICAgY2FzZSBSQU5HRToKLSAgICAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICAgICAgY2Fz
ZSBURUxFUEhPTkU6Ci0gICAgICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgICAgICBjYXNlIFRJ
TUU6Ci0gICAgICAgICAgICBjYXNlIFVSTDoKLSAgICAgICAgICAgIGNhc2UgV0VFSzoKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAg
ICAgdiA9IHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgICAgICB2ID0gc3VibWl0QnV0
dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QlVUVE9OOgorICAgICAgICBjYXNlIENIRUNLQk9YOgorICAgICAgICBjYXNlIENPTE9SOgorICAg
ICAgICBjYXNlIERBVEU6CisgICAgICAgIGNhc2UgREFURVRJTUU6CisgICAgICAgIGNhc2UgREFU
RVRJTUVMT0NBTDoKKyAgICAgICAgY2FzZSBFTUFJTDoKKyAgICAgICAgY2FzZSBGSUxFOgorICAg
ICAgICBjYXNlIEhJRERFTjoKKyAgICAgICAgY2FzZSBJTUFHRToKKyAgICAgICAgY2FzZSBJU0lO
REVYOgorICAgICAgICBjYXNlIE1PTlRIOgorICAgICAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAg
Y2FzZSBQQVNTV09SRDoKKyAgICAgICAgY2FzZSBSQURJTzoKKyAgICAgICAgY2FzZSBSQU5HRToK
KyAgICAgICAgY2FzZSBTRUFSQ0g6CisgICAgICAgIGNhc2UgVEVMRVBIT05FOgorICAgICAgICBj
YXNlIFRFWFQ6CisgICAgICAgIGNhc2UgVElNRToKKyAgICAgICAgY2FzZSBVUkw6CisgICAgICAg
IGNhc2UgV0VFSzoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJFU0VUOgorICAg
ICAgICAgICAgdiA9IHJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgICAgICB2ID0gc3VibWl0QnV0dG9uRGVm
YXVsdExhYmVsKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KICAgICBy
ZXR1cm4gdjsKQEAgLTE5NTIsMzIgKzE5NDMsMzIgQEAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6
c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBjb25zdAogewogICAgIHN3aXRjaCAo
aW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ0hFQ0tC
T1g6Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBj
YXNlIFJBRElPOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNVQk1JVDoKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2Fz
ZSBEQVRFOgotICAgICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9D
QUw6Ci0gICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgY2Fz
ZSBJU0lOREVYOgotICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAg
ICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBT
RUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAg
ICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgQlVUVE9OOgorICAgIGNhc2UgQ0hFQ0tC
T1g6CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIFJBRElPOgor
ICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAg
IGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgRklMRToKKyAg
ICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBj
YXNlIFBBU1NXT1JEOgorICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2Fz
ZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVS
TDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1
cm4gZmFsc2U7CiB9CkBAIC0yMTUyLDUyICsyMTQzLDUyIEBACiAKICAgICAgICAgaWYgKGNoYXJD
b2RlID09ICdccicpIHsKICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAg
ICAgICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICAgICAgICAgIGNhc2UgQ09MT1I6Ci0g
ICAgICAgICAgICAgICAgY2FzZSBEQVRFOgotICAgICAgICAgICAgICAgIGNhc2UgREFURVRJTUU6
Ci0gICAgICAgICAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICAgICAgICAgIGNh
c2UgRU1BSUw6Ci0gICAgICAgICAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgICAgICAgICAg
Y2FzZSBJU0lOREVYOgotICAgICAgICAgICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgICAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAg
ICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAg
ICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICAgICAgICAgIGNhc2UgVEVYVDoKLSAg
ICAgICAgICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgICAgICAgICAgY2FzZSBVUkw6Ci0gICAg
ICAgICAgICAgICAgY2FzZSBXRUVLOgotICAgICAgICAgICAgICAgICAgICAvLyBTaW11bGF0ZSBt
b3VzZSBjbGljayBvbiB0aGUgZGVmYXVsdCBmb3JtIGJ1dHRvbiBmb3IgZW50ZXIgZm9yIHRoZXNl
IHR5cGVzIG9mIGVsZW1lbnRzLgotICAgICAgICAgICAgICAgICAgICBjbGlja0RlZmF1bHRGb3Jt
QnV0dG9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgY2FzZSBCVVRUT046Ci0gICAgICAgICAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICAgICAg
ICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgICAg
ICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgbW91c2Ug
Y2xpY2sgZm9yIGVudGVyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4KLSAgICAgICAgICAg
ICAgICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
IC8vIERvbid0IGRvIGFueXRoaW5nIGZvciBlbnRlciBvbiBhIHJhZGlvIGJ1dHRvbi4KKyAgICAg
ICAgICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgICAgICAgICBjYXNlIENPTE9SOgorICAgICAgICAg
ICAgY2FzZSBEQVRFOgorICAgICAgICAgICAgY2FzZSBEQVRFVElNRToKKyAgICAgICAgICAgIGNh
c2UgREFURVRJTUVMT0NBTDoKKyAgICAgICAgICAgIGNhc2UgRU1BSUw6CisgICAgICAgICAgICBj
YXNlIEhJRERFTjoKKyAgICAgICAgICAgIGNhc2UgSVNJTkRFWDoKKyAgICAgICAgICAgIGNhc2Ug
TU9OVEg6CisgICAgICAgICAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgICAgIGNhc2UgUEFTU1dP
UkQ6CisgICAgICAgICAgICBjYXNlIFJBTkdFOgorICAgICAgICAgICAgY2FzZSBTRUFSQ0g6Cisg
ICAgICAgICAgICBjYXNlIFRFTEVQSE9ORToKKyAgICAgICAgICAgIGNhc2UgVEVYVDoKKyAgICAg
ICAgICAgIGNhc2UgVElNRToKKyAgICAgICAgICAgIGNhc2UgVVJMOgorICAgICAgICAgICAgY2Fz
ZSBXRUVLOgorICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIG9uIHRoZSBk
ZWZhdWx0IGZvcm0gYnV0dG9uIGZvciBlbnRlciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVudHMu
CisgICAgICAgICAgICAgICAgY2xpY2tEZWZhdWx0Rm9ybUJ1dHRvbiA9IHRydWU7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJVVFRPTjoKKyAgICAgICAgICAgIGNh
c2UgRklMRToKKyAgICAgICAgICAgIGNhc2UgSU1BR0U6CisgICAgICAgICAgICBjYXNlIFJFU0VU
OgorICAgICAgICAgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUg
bW91c2UgY2xpY2sgZm9yIGVudGVyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4KKyAgICAg
ICAgICAgICAgICBjbGlja0VsZW1lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBSQURJTzoKKyAgICAgICAgICAgICAgICBicmVhazsgLy8gRG9uJ3Qg
ZG8gYW55dGhpbmcgZm9yIGVudGVyIG9uIGEgcmFkaW8gYnV0dG9uLgogICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgaWYgKGNoYXJDb2RlID09ICcgJykgewogICAgICAgICAgICAgc3dpdGNo
IChpbnB1dFR5cGUoKSkgewotICAgICAgICAgICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICAg
ICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgICAgICAgICAgY2FzZSBGSUxFOgotICAgICAg
ICAgICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAg
ICAgICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgICAgICBjYXNlIFJBRElPOgotICAg
ICAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IHNjcm9sbGluZyBkb3duIHRoZSBwYWdlLgotICAg
ICAgICAgICAgICAgICAgICBldnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQlVUVE9OOgorICAgICAgICAgICAgY2FzZSBD
SEVDS0JPWDoKKyAgICAgICAgICAgIGNhc2UgRklMRToKKyAgICAgICAgICAgIGNhc2UgSU1BR0U6
CisgICAgICAgICAgICBjYXNlIFJFU0VUOgorICAgICAgICAgICAgY2FzZSBTVUJNSVQ6CisgICAg
ICAgICAgICBjYXNlIFJBRElPOgorICAgICAgICAgICAgICAgIC8vIFByZXZlbnQgc2Nyb2xsaW5n
IGRvd24gdGhlIHBhZ2UuCisgICAgICAgICAgICAgICAgZXZ0LT5zZXREZWZhdWx0SGFuZGxlZCgp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMjIxMywxOSAr
MjIwNCwxOSBAQAogCiAgICAgICAgIGlmIChrZXkgPT0gIlUrMDAyMCIpIHsKICAgICAgICAgICAg
IHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIEJVVFRPTjoKLSAg
ICAgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICAgICAgICAgIGNhc2UgRklMRToK
LSAgICAgICAgICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICAgICAgICAgIGNhc2UgUkVTRVQ6
Ci0gICAgICAgICAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBSQURJ
TzoKLSAgICAgICAgICAgICAgICAgICAgc2V0QWN0aXZlKHRydWUsIHRydWUpOwotICAgICAgICAg
ICAgICAgICAgICAvLyBObyBzZXREZWZhdWx0SGFuZGxlZCgpLCBiZWNhdXNlIElFIGRpc3BhdGNo
ZXMgYSBrZXlwcmVzcyBpbiB0aGlzIGNhc2UKLSAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRo
ZSBjYWxsZXIgd2lsbCBvbmx5IGRpc3BhdGNoIGEga2V5cHJlc3MgaWYgd2UgZG9uJ3QgY2FsbCBz
ZXREZWZhdWx0SGFuZGxlZC4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBCVVRUT046CisgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgorICAgICAgICAgICAgY2Fz
ZSBGSUxFOgorICAgICAgICAgICAgY2FzZSBJTUFHRToKKyAgICAgICAgICAgIGNhc2UgUkVTRVQ6
CisgICAgICAgICAgICBjYXNlIFNVQk1JVDoKKyAgICAgICAgICAgIGNhc2UgUkFESU86CisgICAg
ICAgICAgICAgICAgc2V0QWN0aXZlKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIC8vIE5v
IHNldERlZmF1bHRIYW5kbGVkKCksIGJlY2F1c2UgSUUgZGlzcGF0Y2hlcyBhIGtleXByZXNzIGlu
IHRoaXMgY2FzZQorICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgY2FsbGVyIHdpbGwgb25seSBk
aXNwYXRjaCBhIGtleXByZXNzIGlmIHdlIGRvbid0IGNhbGwgc2V0RGVmYXVsdEhhbmRsZWQuCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yMjcxLDQwICsyMjYy
LDQwIEBACiAKICAgICAgICAgaWYgKGtleSA9PSAiVSswMDIwIikgewogICAgICAgICAgICAgc3dp
dGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICAgICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAg
ICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgICAgICAgICAgY2FzZSBGSUxFOgotICAg
ICAgICAgICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAgICAgICAgY2FzZSBSRVNFVDoKLSAg
ICAgICAgICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgICAgICAgICAgLy8gU2ltdWxh
dGUgbW91c2UgY2xpY2sgZm9yIHNwYWNlYmFyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4K
LSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIEFwcEtpdCBhbHJlYWR5IGRvZXMgdGhpcyBmb3Ig
c29tZSwgYnV0IG5vdCBhbGwsIG9mIHRoZW0uCisgICAgICAgICAgICBjYXNlIEJVVFRPTjoKKyAg
ICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgICAgICAgICBjYXNlIEZJTEU6CisgICAgICAg
ICAgICBjYXNlIElNQUdFOgorICAgICAgICAgICAgY2FzZSBSRVNFVDoKKyAgICAgICAgICAgIGNh
c2UgU1VCTUlUOgorICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBz
cGFjZWJhciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVudHMuCisgICAgICAgICAgICAgICAgLy8g
VGhlIEFwcEtpdCBhbHJlYWR5IGRvZXMgdGhpcyBmb3Igc29tZSwgYnV0IG5vdCBhbGwsIG9mIHRo
ZW0uCisgICAgICAgICAgICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFESU86CisgICAgICAgICAgICAgICAgLy8gSWYg
YW4gdW5zZWxlY3RlZCByYWRpbyBpcyB0YWJiZWQgaW50byAoYmVjYXVzZSB0aGUgZW50aXJlIGdy
b3VwIGhhcyBub3RoaW5nCisgICAgICAgICAgICAgICAgLy8gY2hlY2tlZCwgb3IgYmVjYXVzZSBv
ZiBzb21lIGV4cGxpY2l0IC5mb2N1cygpIGNhbGwpLCB0aGVuIGFsbG93IHNwYWNlIHRvIGNoZWNr
IGl0LgorICAgICAgICAgICAgICAgIGlmICghY2hlY2tlZCgpKQogICAgICAgICAgICAgICAgICAg
ICBjbGlja0VsZW1lbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgICAgICAgICAvLyBJZiBhbiB1bnNl
bGVjdGVkIHJhZGlvIGlzIHRhYmJlZCBpbnRvIChiZWNhdXNlIHRoZSBlbnRpcmUgZ3JvdXAgaGFz
IG5vdGhpbmcKLSAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2tlZCwgb3IgYmVjYXVzZSBvZiBz
b21lIGV4cGxpY2l0IC5mb2N1cygpIGNhbGwpLCB0aGVuIGFsbG93IHNwYWNlIHRvIGNoZWNrIGl0
LgotICAgICAgICAgICAgICAgICAgICBpZiAoIWNoZWNrZWQoKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWNrRWxlbWVudCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgICAgICAgICAgY2FzZSBEQVRFOgot
ICAgICAgICAgICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgICAgICAgICAgY2FzZSBEQVRF
VElNRUxPQ0FMOgotICAgICAgICAgICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgICAgICAgICAg
Y2FzZSBISURERU46Ci0gICAgICAgICAgICAgICAgY2FzZSBJU0lOREVYOgotICAgICAgICAgICAg
ICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgICAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgICAg
ICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgICAgICAgICBjYXNlIFJBTkdFOgotICAgICAg
ICAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgot
ICAgICAgICAgICAgICAgIGNhc2UgVEVYVDoKLSAgICAgICAgICAgICAgICBjYXNlIFRJTUU6Ci0g
ICAgICAgICAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgICAgICAgICAgY2FzZSBXRUVLOgotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ09MT1I6CisgICAgICAgICAgICBjYXNlIERBVEU6CisgICAgICAgICAgICBjYXNl
IERBVEVUSU1FOgorICAgICAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgICAgICAgICAg
Y2FzZSBFTUFJTDoKKyAgICAgICAgICAgIGNhc2UgSElEREVOOgorICAgICAgICAgICAgY2FzZSBJ
U0lOREVYOgorICAgICAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIGNhc2UgTlVNQkVS
OgorICAgICAgICAgICAgY2FzZSBQQVNTV09SRDoKKyAgICAgICAgICAgIGNhc2UgUkFOR0U6Cisg
ICAgICAgICAgICBjYXNlIFNFQVJDSDoKKyAgICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgorICAg
ICAgICAgICAgY2FzZSBURVhUOgorICAgICAgICAgICAgY2FzZSBUSU1FOgorICAgICAgICAgICAg
Y2FzZSBVUkw6CisgICAgICAgICAgICBjYXNlIFdFRUs6CisgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMjQ2Myw5ICsyNDU0LDkgQEAKICAgICBz
ZXRBdHRyaWJ1dGUobXVsdGlwbGVBdHRyLCBtdWx0aXBsZSA/ICIiIDogMCk7CiB9CiAgICAgCi12
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFNpemUodW5zaWduZWQgX3NpemUpCit2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OnNldFNpemUodW5zaWduZWQgc2l6ZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUo
c2l6ZUF0dHIsIFN0cmluZzo6bnVtYmVyKF9zaXplKSk7CisgICAgc2V0QXR0cmlidXRlKHNpemVB
dHRyLCBTdHJpbmc6Om51bWJlcihzaXplKSk7CiB9CiAKIEtVUkwgSFRNTElucHV0RWxlbWVudDo6
c3JjKCkgY29uc3QKQEAgLTI1NDEsMzIgKzI1MzIsMzIgQEAKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIENIRUNLQk9YOgot
ICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2Ug
REFURVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBGSUxFOgot
ICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQ
QVNTV09SRDoKLSAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAg
ICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElN
RToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAg
ICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgIGNhc2UgSVNJ
TkRFWDoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAg
Y2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBDSEVDS0JP
WDoKKyAgICBjYXNlIERBVEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1F
TE9DQUw6CisgICAgY2FzZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBNT05USDoK
KyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2UgUkFESU86Cisg
ICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAg
IGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIGNhc2UgQlVUVE9OOgorICAgIGNhc2UgQ09MT1I6CisgICAgY2FzZSBISURE
RU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBSQU5HRToK
KyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNzY1LDYgKzI3NTYsNiBA
QAogICAgIH0KICAgICByZXR1cm4gMDsKIH0KLSNlbmRpZiAgLy8gRU5BQkxFKERBVEFMSVNUKQor
I2VuZGlmIC8vIEVOQUJMRShEQVRBTElTVCkKIAogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53960</attachid>
            <date>2010-04-21 08:34:39 -0700</date>
            <delta_ts>2010-04-21 22:50:07 -0700</delta_ts>
            <desc>ChangeLog update to permit build bot to check in.</desc>
            <filename>style-patch-r3.txt</filename>
            <type>text/plain</type>
            <size>31095</size>
            <attacher name="Ray">Raymond.Rischpater</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDQtMjAgIFJheSBSaXNjaHBhdGVyICA8UmF5bW9uZC5SaXNj
aHBhdGVyQE5va2lhLmNvbT4KKworICAgICAgICBJbiBIVE1MSW5wdXRFbGVtZW50LmNwcCB0aGVy
ZSBhcmUgbnVtZXJvdXMgc3R5bGUKKyAgICAgICAgdmlvbGF0aW9ucy4KKworICAgICAgICBUaGlz
IHBhdGNoIGluY2x1ZGVzIHN0eWxlIGNoYW5nZXMgdG8gZml4IGV4aXN0aW5nIHN0eWxlCisgICAg
ICAgIGRldmlhdGlvbnMgaW4gdGhpcyBmaWxlLgorCisgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIEZpeGVzIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzc4ODE+CisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOgorCiAyMDEwLTA0LTE2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1NzczNSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1ZGUgIkhU
TUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxP
cHRpb25FbGVtZW50LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCkBAIC02MCw2ICs1OSw3IEBACiAjaW5jbHVkZSAiUmVu
ZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKICNpbmNsdWRl
ICJUZXh0RXZlbnQuaCIKQEAgLTE3MSwzNSArMTcxLDM1IEBACiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBEQVRFOgotICAg
ICAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAg
IGNhc2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgY2FzZSBNT05USDoKLSAg
ICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgICAgIGNhc2Ug
U0VBUkNIOgotICAgICAgICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhUOgotICAg
ICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdFRUs6Ci0g
ICAgICAgICAgICByZXR1cm4gdmFsdWUoKS5pc0VtcHR5KCk7Ci0gICAgICAgIGNhc2UgQ0hFQ0tC
T1g6Ci0gICAgICAgICAgICByZXR1cm4gIWNoZWNrZWQoKTsKLSAgICAgICAgY2FzZSBSQURJTzoK
LSAgICAgICAgICAgIHJldHVybiAhY2hlY2tlZFJhZGlvQnV0dG9ucyh0aGlzKS5jaGVja2VkQnV0
dG9uRm9yR3JvdXAobmFtZSgpKTsKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgSElEREVOOgot
ICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2Ug
UkFOR0U6Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2Fz
ZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBGSUxFOgorICAgIGNh
c2UgTU9OVEg6CisgICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNl
IFNFQVJDSDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBU
SU1FOgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgcmV0dXJuIHZhbHVl
KCkuaXNFbXB0eSgpOworICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgICAgIHJldHVybiAhY2hlY2tl
ZCgpOworICAgIGNhc2UgUkFESU86CisgICAgICAgIHJldHVybiAhY2hlY2tlZFJhZGlvQnV0dG9u
cyh0aGlzKS5jaGVja2VkQnV0dG9uRm9yR3JvdXAobmFtZSgpKTsKKyAgICBjYXNlIENPTE9SOgor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBISURERU46
CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBSQU5HRToKKyAg
ICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIwOSw0NiArMjA5LDQyIEBACiBib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OnBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChp
bnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBDSEVDS0JP
WDoKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRFOgotICAgICAgICBjYXNl
IERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAgIGNhc2UgRklM
RToKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgIGNh
c2UgSVNJTkRFWDoKLSAgICAgICAgY2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0g
ICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIGNhc2UgUkVT
RVQ6Ci0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgIGNh
c2UgV0VFSzoKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNLQk9YOgorICAgIGNhc2Ug
Q09MT1I6CisgICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRF
VElNRUxPQ0FMOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIEhJRERFTjoKKyAgICBjYXNlIElN
QUdFOgorICAgIGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVS
OgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBSQU5HRToKKyAgICBjYXNlIFJFU0VUOgorICAg
IGNhc2UgU1VCTUlUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgY2Fz
ZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2Ug
VVJMOgorICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBhdHRlcm4gPSBnZXRBdHRyaWJ1dGUo
cGF0dGVybkF0dHIpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSB0aGlzLT52YWx1ZSgpOworICAg
ICAgICAgLy8gRW1wdHkgdmFsdWVzIGNhbid0IGJlIG1pc21hdGNoZWQKKyAgICAgICAgaWYgKHBh
dHRlcm4uaXNFbXB0eSgpIHx8IHZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAg
ICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRF
WFQ6Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBw
YXR0ZXJuID0gZ2V0QXR0cmlidXRlKHBhdHRlcm5BdHRyKTsKLSAgICAgICAgICAgIFN0cmluZyB2
YWx1ZSA9IHRoaXMtPnZhbHVlKCk7Ci0KLSAgICAgICAgICAgIC8vIEVtcHR5IHZhbHVlcyBjYW4n
dCBiZSBtaXNtYXRjaGVkCi0gICAgICAgICAgICBpZiAocGF0dGVybi5pc0VtcHR5KCkgfHwgdmFs
dWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICAg
ICAgUmVndWxhckV4cHJlc3Npb24gcGF0dGVyblJlZ0V4cChwYXR0ZXJuLCBUZXh0Q2FzZVNlbnNp
dGl2ZSk7Ci0gICAgICAgICAgICBpbnQgbWF0Y2hMZW5ndGggPSAwOwotICAgICAgICAgICAgaW50
IHZhbHVlTGVuZ3RoID0gdmFsdWUubGVuZ3RoKCk7Ci0gICAgICAgICAgICBpbnQgbWF0Y2hPZmZz
ZXQgPSBwYXR0ZXJuUmVnRXhwLm1hdGNoKHZhbHVlLCAwLCAmbWF0Y2hMZW5ndGgpOwotCi0gICAg
ICAgICAgICByZXR1cm4gbWF0Y2hPZmZzZXQgIT0gMCB8fCBtYXRjaExlbmd0aCAhPSB2YWx1ZUxl
bmd0aDsKKyAgICAgICAgUmVndWxhckV4cHJlc3Npb24gcGF0dGVyblJlZ0V4cChwYXR0ZXJuLCBU
ZXh0Q2FzZVNlbnNpdGl2ZSk7CisgICAgICAgIGludCBtYXRjaExlbmd0aCA9IDA7CisgICAgICAg
IGludCB2YWx1ZUxlbmd0aCA9IHZhbHVlLmxlbmd0aCgpOworICAgICAgICBpbnQgbWF0Y2hPZmZz
ZXQgPSBwYXR0ZXJuUmVnRXhwLm1hdGNoKHZhbHVlLCAwLCAmbWF0Y2hMZW5ndGgpOworICAgICAg
ICByZXR1cm4gbWF0Y2hPZmZzZXQgfHwgbWF0Y2hMZW5ndGggIT0gdmFsdWVMZW5ndGg7CiAgICAg
fQotCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAt
NzAwLDggKzY5Niw3IEBACiAgICAgICAgIE5vZGUqIGN1cnJlbnRGb2N1c2VkTm9kZSA9IGRvY3Vt
ZW50KCktPmZvY3VzZWROb2RlKCk7CiAgICAgICAgIGlmIChjdXJyZW50Rm9jdXNlZE5vZGUgJiYg
Y3VycmVudEZvY3VzZWROb2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewogICAgICAgICAgICAg
SFRNTElucHV0RWxlbWVudCogZm9jdXNlZElucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KGN1cnJlbnRGb2N1c2VkTm9kZSk7Ci0gICAgICAgICAgICBpZiAoZm9jdXNlZElucHV0
LT5pbnB1dFR5cGUoKSA9PSBSQURJTyAmJiBmb2N1c2VkSW5wdXQtPmZvcm0oKSA9PSBmb3JtKCkg
JiYKLSAgICAgICAgICAgICAgICBmb2N1c2VkSW5wdXQtPm5hbWUoKSA9PSBuYW1lKCkpCisgICAg
ICAgICAgICBpZiAoZm9jdXNlZElucHV0LT5pbnB1dFR5cGUoKSA9PSBSQURJTyAmJiBmb2N1c2Vk
SW5wdXQtPmZvcm0oKSA9PSBmb3JtKCkgJiYgZm9jdXNlZElucHV0LT5uYW1lKCkgPT0gbmFtZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICAKQEAg
LTkwNiw0MCArOTAxLDQwIEBACiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJv
bFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAogewogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkp
IHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNh
c2UgREFURToKLSAgICAgICAgY2FzZSBEQVRFVElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxP
Q0FMOgotICAgICAgICBjYXNlIEVNQUlMOgotICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgIGNh
c2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0g
ICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFJB
TkdFOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAg
Y2FzZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6
Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VF
SzogewotICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7Ci0gICAgICAg
ICAgICBpZiAoY3VycmVudFZhbHVlID09IGRlZmF1bHRWYWx1ZSgpKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGN1cnJlbnRWYWx1ZTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0g
ICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAgICByZXN1bHQgPSBjaGVja2VkKCkgPyAib24i
IDogIm9mZiI7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBQQVNTV09S
RDoKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAg
ICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlM
OgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIEhJRERFTjoKKyAgICBjYXNlIElNQUdFOgorICAg
IGNhc2UgSVNJTkRFWDoKKyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNh
c2UgUkFOR0U6CisgICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNFQVJDSDoKKyAgICBjYXNlIFNV
Qk1JVDoKKyAgICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBUSU1F
OgorICAgIGNhc2UgVVJMOgorICAgIGNhc2UgV0VFSzogeworICAgICAgICBTdHJpbmcgY3VycmVu
dFZhbHVlID0gdmFsdWUoKTsKKyAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBkZWZhdWx0VmFs
dWUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0ID0gY3VycmVu
dFZhbHVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgY2FzZSBDSEVDS0JPWDoK
KyAgICBjYXNlIFJBRElPOgorICAgICAgICByZXN1bHQgPSBjaGVja2VkKCkgPyAib24iIDogIm9m
ZiI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQpAQCAtOTQ4LDM1ICs5NDMsMzUgQEAKIHsKICAgICBBU1NFUlQoaW5wdXRUeXBl
KCkgIT0gUEFTU1dPUkQpOyAvLyBzaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZp
ZWxkcwogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBCVVRUT046Ci0g
ICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgIGNhc2UgREFURToKLSAgICAgICAgY2FzZSBEQVRF
VElNRToKLSAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICBjYXNlIEVNQUlMOgot
ICAgICAgICBjYXNlIEZJTEU6Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICBjYXNlIElN
QUdFOgotICAgICAgICBjYXNlIElTSU5ERVg6Ci0gICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAg
IGNhc2UgTlVNQkVSOgotICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICBjYXNlIFJFU0VUOgot
ICAgICAgICBjYXNlIFNFQVJDSDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgIGNhc2Ug
VEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAg
ICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHNldFZhbHVlKHN0
YXRlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAg
ICBjYXNlIFJBRElPOgotICAgICAgICAgICAgc2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBBU1NXT1JEOgotICAgICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBDT0xPUjoKKyAgICBjYXNlIERBVEU6Cisg
ICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2FzZSBFTUFJ
TDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJTUFHRToKKyAg
ICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBj
YXNlIFJBTkdFOgorICAgIGNhc2UgUkVTRVQ6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBT
VUJNSVQ6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElN
RToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHNldFZhbHVlKHN0YXRl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJBRElPOgor
ICAgICAgICBzZXRDaGVja2VkKHN0YXRlID09ICJvbiIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBBU1NXT1JEOgorICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTk5NSw0NyArOTkw
LDQ3IEBACiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRU
b0FueUVsZW1lbnQpCiB7CiAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNl
IEJVVFRPTjoKLSAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAg
ICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICBjYXNlIFJBTkdF
OgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAg
IGZvY3VzKGZhbHNlKTsKLSAgICAgICAgICAgIC8vIHNlbmQgdGhlIG1vdXNlIGJ1dHRvbiBldmVu
dHMgaWZmIHRoZSBjYWxsZXIgc3BlY2lmaWVkIHNlbmRUb0FueUVsZW1lbnQKLSAgICAgICAgICAg
IGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZFRvQW55RWxlbWVudCk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgICAgICAvLyBhIG5vLW9wIGZv
ciB0aGlzIHR5cGUKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENPTE9SOgotICAg
ICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFU
RVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBJU0lOREVYOgot
ICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQ
QVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgot
ICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6
Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIC8vIHNob3VsZCBuZXZlciByZXN0b3Jl
IHByZXZpb3VzIHNlbGVjdGlvbiBoZXJlCi0gICAgICAgICAgICBmb2N1cyhmYWxzZSk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJVVFRPTjoKKyAgICBjYXNlIENIRUNLQk9YOgorICAg
IGNhc2UgRklMRToKKyAgICBjYXNlIElNQUdFOgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBS
QU5HRToKKyAgICBjYXNlIFJFU0VUOgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICBmb2N1cyhm
YWxzZSk7CisgICAgICAgIC8vIHNlbmQgdGhlIG1vdXNlIGJ1dHRvbiBldmVudHMgaWZmIHRoZSBj
YWxsZXIgc3BlY2lmaWVkIHNlbmRUb0FueUVsZW1lbnQKKyAgICAgICAgZGlzcGF0Y2hTaW11bGF0
ZWRDbGljaygwLCBzZW5kVG9BbnlFbGVtZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBI
SURERU46CisgICAgICAgIC8vIGEgbm8tb3AgZm9yIHRoaXMgdHlwZQorICAgICAgICBicmVhazsK
KyAgICBjYXNlIENPTE9SOgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAg
IGNhc2UgREFURVRJTUVMT0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgSVNJTkRFWDoK
KyAgICBjYXNlIE1PTlRIOgorICAgIGNhc2UgTlVNQkVSOgorICAgIGNhc2UgUEFTU1dPUkQ6Cisg
ICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAg
IGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIC8vIHNo
b3VsZCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbiBoZXJlCisgICAgICAgIGZvY3Vz
KGZhbHNlKTsKKyAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVt
ZW50OjptYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRy
aWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdAogewotICAgIGlmICgoKGF0dHJOYW1lID09IGhlaWdo
dEF0dHIgfHwgYXR0ck5hbWUgPT0gd2lkdGhBdHRyKSAmJiByZXNwZWN0SGVpZ2h0QW5kV2lkdGhB
dHRycygpKSB8fAotICAgICAgICBhdHRyTmFtZSA9PSB2c3BhY2VBdHRyIHx8Ci0gICAgICAgIGF0
dHJOYW1lID09IGhzcGFjZUF0dHIpIHsKKyAgICBpZiAoKChhdHRyTmFtZSA9PSBoZWlnaHRBdHRy
IHx8IGF0dHJOYW1lID09IHdpZHRoQXR0cikgJiYgcmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cnMo
KSkKKyAgICAgICAgfHwgYXR0ck5hbWUgPT0gdnNwYWNlQXR0ciAKKyAgICAgICAgfHwgYXR0ck5h
bWUgPT0gaHNwYWNlQXR0cikgewogICAgICAgICByZXN1bHQgPSBlVW5pdmVyc2FsOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfSAKQEAgLTExMDIsOCArMTA5Nyw3IEBACiAgICAgICAgICAg
ICAgICAgbV9pbWFnZUxvYWRlci5zZXQobmV3IEhUTUxJbWFnZUxvYWRlcih0aGlzKSk7CiAgICAg
ICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNF
cnJvcigpOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gdXNlbWFw
QXR0ciB8fAotICAgICAgICAgICAgICAgYXR0ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIpIHsK
KyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSB1c2VtYXBBdHRyIHx8IGF0dHItPm5hbWUo
KSA9PSBhY2Nlc3NrZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBpZ25vcmUgZm9yIHRoZSBt
b21lbnQKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSB2c3BhY2VBdHRyKSB7CiAgICAg
ICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eU1hcmdpblRvcCwgYXR0ci0+dmFsdWUo
KSk7CkBAIC0xMTIwLDEwICsxMTE0LDggQEAKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBoZWlnaHRBdHRyKSB7CiAgICAgICAgIGlmIChyZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRycygp
KQogICAgICAgICAgICAgYWRkQ1NTTGVuZ3RoKGF0dHIsIENTU1Byb3BlcnR5SGVpZ2h0LCBhdHRy
LT52YWx1ZSgpKTsKLSAgICB9Ci0gICAgLy8gU2VhcmNoIGZpZWxkIGFuZCBzbGlkZXIgYXR0cmli
dXRlcyBhbGwganVzdCBjYXVzZSB1cGRhdGVGcm9tRWxlbWVudCB0byBiZSBjYWxsZWQgdGhyb3Vn
aCBzdHlsZQotICAgIC8vIHJlY2FsY2luZy4KLSAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
b25zZWFyY2hBdHRyKSB7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25zZWFyY2hB
dHRyKSB7CisgICAgICAgIC8vIFNlYXJjaCBmaWVsZCBhbmQgc2xpZGVyIGF0dHJpYnV0ZXMgYWxs
IGp1c3QgY2F1c2UgdXBkYXRlRnJvbUVsZW1lbnQgdG8gYmUgY2FsbGVkIHRocm91Z2ggc3R5bGUg
cmVjYWxjaW5nLgogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5zZWFyY2hFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7
CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gcmVzdWx0c0F0dHIpIHsKICAgICAgICAg
aW50IG9sZFJlc3VsdHMgPSBtX21heFJlc3VsdHM7CkBAIC0xMTY3LDQwICsxMTU5LDQwIEBACiAg
ICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpOwogfQogCi1SZW5kZXJPYmplY3QgKkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hICphcmVuYSwgUmVuZGVyU3R5bGUgKnN0eWxlKQorUmVuZGVyT2Jq
ZWN0KiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSAqYXJlbmEs
IFJlbmRlclN0eWxlICpzdHlsZSkKIHsKICAgICBzd2l0Y2ggKGlucHV0VHlwZSgpKSB7Ci0gICAg
ICAgIGNhc2UgQlVUVE9OOgotICAgICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNVQk1J
VDoKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJCdXR0b24odGhpcyk7Ci0g
ICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgIGNhc2UgUkFESU86Ci0gICAgICAgICAgICBy
ZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QodGhpcywgc3R5bGUpOwotICAgICAgICBj
YXNlIEZJTEU6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wodGhpcyk7Ci0gICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVu
ZGVySW1hZ2UodGhpcyk7Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhcmVuYSkgUmVuZGVyU2xpZGVyKHRoaXMpOwotICAgICAgICBjYXNlIENPTE9SOgotICAg
ICAgICBjYXNlIERBVEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFU
RVRJTUVMT0NBTDoKLSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBJU0lOREVYOgot
ICAgICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQ
QVNTV09SRDoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBIT05FOgot
ICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2FzZSBVUkw6
Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUodGhpcywgcGxhY2Vob2xkZXJTaG91bGRCZVZpc2libGUo
KSk7CisgICAgY2FzZSBCVVRUT046CisgICAgY2FzZSBSRVNFVDoKKyAgICBjYXNlIFNVQk1JVDoK
KyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckJ1dHRvbih0aGlzKTsKKyAgICBjYXNl
IENIRUNLQk9YOgorICAgIGNhc2UgUkFESU86CisgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6
OmNyZWF0ZU9iamVjdCh0aGlzLCBzdHlsZSk7CisgICAgY2FzZSBGSUxFOgorICAgICAgICByZXR1
cm4gbmV3IChhcmVuYSkgUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wodGhpcyk7CisgICAgY2FzZSBI
SURERU46CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU1BR0U6CisgICAgICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlzKTsKKyAgICBjYXNlIFJBTkdFOgorICAgICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU2xpZGVyKHRoaXMpOworICAgIGNhc2UgQ09MT1I6Cisg
ICAgY2FzZSBEQVRFOgorICAgIGNhc2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FM
OgorICAgIGNhc2UgRU1BSUw6CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNhc2UgTU9OVEg6Cisg
ICAgY2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIFNFQVJDSDoKKyAg
ICBjYXNlIFRFTEVQSE9ORToKKyAgICBjYXNlIFRFWFQ6CisgICAgY2FzZSBUSU1FOgorICAgIGNh
c2UgVVJMOgorICAgIGNhc2UgV0VFSzoKKyAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZSh0aGlzLCBwbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZSgp
KTsKICAgICB9CiAgICAgQVNTRVJUKGZhbHNlKTsKICAgICByZXR1cm4gMDsKQEAgLTEyODEsODcg
KzEyNzMsODYgQEAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoIChpbnB1dFR5
cGUoKSkgewotICAgICAgICBjYXNlIENPTE9SOgotICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAg
IGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgY2Fz
ZSBFTUFJTDoKLSAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAg
ICAgICAgY2FzZSBNT05USDoKLSAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgIGNhc2UgUEFT
U1dPUkQ6Ci0gICAgICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAg
ICBjYXNlIFRFTEVQSE9ORToKLSAgICAgICAgY2FzZSBURVhUOgotICAgICAgICBjYXNlIFRJTUU6
Ci0gICAgICAgIGNhc2UgVVJMOgotICAgICAgICBjYXNlIFdFRUs6Ci0gICAgICAgICAgICAvLyBh
bHdheXMgc3VjY2Vzc2Z1bAorICAgIGNhc2UgQ09MT1I6CisgICAgY2FzZSBEQVRFOgorICAgIGNh
c2UgREFURVRJTUU6CisgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgIGNhc2UgRU1BSUw6Cisg
ICAgY2FzZSBISURERU46CisgICAgY2FzZSBJU0lOREVYOgorICAgIGNhc2UgTU9OVEg6CisgICAg
Y2FzZSBOVU1CRVI6CisgICAgY2FzZSBQQVNTV09SRDoKKyAgICBjYXNlIFJBTkdFOgorICAgIGNh
c2UgU0VBUkNIOgorICAgIGNhc2UgVEVMRVBIT05FOgorICAgIGNhc2UgVEVYVDoKKyAgICBjYXNl
IFRJTUU6CisgICAgY2FzZSBVUkw6CisgICAgY2FzZSBXRUVLOgorICAgICAgICAvLyBhbHdheXMg
c3VjY2Vzc2Z1bAorICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgdmFsdWUoKSk7
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIFJB
RElPOgorICAgICAgICBpZiAoY2hlY2tlZCgpKSB7CiAgICAgICAgICAgICBlbmNvZGluZy5hcHBl
bmREYXRhKG5hbWUoKSwgdmFsdWUoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBj
YXNlIFJBRElPOgotICAgICAgICAgICAgaWYgKGNoZWNrZWQoKSkgeworICAgIGNhc2UgQlVUVE9O
OgorICAgIGNhc2UgUkVTRVQ6CisgICAgICAgIC8vIHRoZXNlIHR5cGVzIG9mIGJ1dHRvbnMgYXJl
IG5ldmVyIHN1Y2Nlc3NmdWwKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY2FzZSBJTUFH
RToKKyAgICAgICAgaWYgKG1fYWN0aXZlU3VibWl0KSB7CisgICAgICAgICAgICBlbmNvZGluZy5h
cHBlbmREYXRhKG5hbWUoKS5pc0VtcHR5KCkgPyAieCIgOiAobmFtZSgpICsgIi54IiksIG1feFBv
cyk7CisgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKS5pc0VtcHR5KCkgPyAi
eSIgOiAobmFtZSgpICsgIi55IiksIG1feVBvcyk7CisgICAgICAgICAgICBpZiAoIW5hbWUoKS5p
c0VtcHR5KCkgJiYgIXZhbHVlKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGVuY29kaW5n
LmFwcGVuZERhdGEobmFtZSgpLCB2YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBCVVRUT046
Ci0gICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAvLyB0aGVzZSB0eXBlcyBvZiBidXR0
b25zIGFyZSBuZXZlciBzdWNjZXNzZnVsCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSBTVUJNSVQ6CisgICAgICAgIGlmIChtX2FjdGl2ZVN1Ym1pdCkgeworICAgICAgICAgICAg
U3RyaW5nIGVuY3N0ciA9IHZhbHVlV2l0aERlZmF1bHQoKTsKKyAgICAgICAgICAgIGVuY29kaW5n
LmFwcGVuZERhdGEobmFtZSgpLCBlbmNzdHIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBJTUFHRToKLSAgICAgICAg
ICAgIGlmIChtX2FjdGl2ZVN1Ym1pdCkgewotICAgICAgICAgICAgICAgIGVuY29kaW5nLmFwcGVu
ZERhdGEobmFtZSgpLmlzRW1wdHkoKSA/ICJ4IiA6IChuYW1lKCkgKyAiLngiKSwgbV94UG9zKTsK
LSAgICAgICAgICAgICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKS5pc0VtcHR5KCkgPyAi
eSIgOiAobmFtZSgpICsgIi55IiksIG1feVBvcyk7Ci0gICAgICAgICAgICAgICAgaWYgKCFuYW1l
KCkuaXNFbXB0eSgpICYmICF2YWx1ZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAg
ZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCksIHZhbHVlKCkpOwotICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBG
SUxFOiB7CisgICAgICAgIHVuc2lnbmVkIG51bUZpbGVzID0gbV9maWxlTGlzdC0+bGVuZ3RoKCk7
CisgICAgICAgIGlmICghbXVsdGlwYXJ0KSB7CisgICAgICAgICAgICAvLyBTZW5kIG9ubHkgdGhl
IGJhc2VuYW1lcy4KKyAgICAgICAgICAgIC8vIDQuMTAuMTYuNCBhbmQgNC4xMC4xNi42IHNlY3Rp
b25zIGluIEhUTUw1LgorICAgIAorICAgICAgICAgICAgLy8gVW5saWtlIHRoZSBtdWx0aXBhcnQg
Y2FzZSwgd2UgaGF2ZSBubyBzcGVjaWFsCisgICAgICAgICAgICAvLyBoYW5kbGluZyBmb3IgdGhl
IGVtcHR5IGZpbGVMaXN0IGJlY2F1c2UgTmV0c2NhcGUKKyAgICAgICAgICAgIC8vIGRvZXNuJ3Qg
c3VwcG9ydCBmb3Igbm9uLW11bHRpcGFydCBzdWJtaXNzaW9uIG9mCisgICAgICAgICAgICAvLyBm
aWxlIGlucHV0cywgYW5kIEZpcmVmb3ggZG9lc24ndCBhZGQgIm5hbWU9IiBxdWVyeQorICAgICAg
ICAgICAgLy8gcGFyYW1ldGVyLgogCi0gICAgICAgIGNhc2UgU1VCTUlUOgotICAgICAgICAgICAg
aWYgKG1fYWN0aXZlU3VibWl0KSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGVuY19zdHIgPSB2
YWx1ZVdpdGhEZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShu
YW1lKCksIGVuY19zdHIpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbnVtRmlsZXM7ICsraSkgCisgICAgICAgICAgICAgICAgZW5jb2RpbmcuYXBwZW5kRGF0
YShuYW1lKCksIG1fZmlsZUxpc3QtPml0ZW0oaSktPmZpbGVOYW1lKCkpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KIAotICAgICAgICBjYXNlIEZJTEU6IHsKLSAgICAgICAg
ICAgIHVuc2lnbmVkIG51bUZpbGVzID0gbV9maWxlTGlzdC0+bGVuZ3RoKCk7Ci0gICAgICAgICAg
ICBpZiAoIW11bHRpcGFydCkgewotICAgICAgICAgICAgICAgIC8vIFNlbmQgb25seSB0aGUgYmFz
ZW5hbWVzLgotICAgICAgICAgICAgICAgIC8vIDQuMTAuMTYuNCBhbmQgNC4xMC4xNi42IHNlY3Rp
b25zIGluIEhUTUw1LgotCi0gICAgICAgICAgICAgICAgLy8gVW5saWtlIHRoZSBtdWx0aXBhcnQg
Y2FzZSwgd2UgaGF2ZSBubyBzcGVjaWFsCi0gICAgICAgICAgICAgICAgLy8gaGFuZGxpbmcgZm9y
IHRoZSBlbXB0eSBmaWxlTGlzdCBiZWNhdXNlIE5ldHNjYXBlCi0gICAgICAgICAgICAgICAgLy8g
ZG9lc24ndCBzdXBwb3J0IGZvciBub24tbXVsdGlwYXJ0IHN1Ym1pc3Npb24gb2YKLSAgICAgICAg
ICAgICAgICAvLyBmaWxlIGlucHV0cywgYW5kIEZpcmVmb3ggZG9lc24ndCBhZGQgIm5hbWU9IiBx
dWVyeQotICAgICAgICAgICAgICAgIC8vIHBhcmFtZXRlci4KLQotICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1GaWxlczsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCBtX2ZpbGVMaXN0LT5pdGVtKGkpLT5maWxl
TmFtZSgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIElmIG5vIGZpbGVuYW1lIGF0IGFsbCBp
cyBlbnRlcmVkLCByZXR1cm4gc3VjY2Vzc2Z1bCBidXQgZW1wdHkuCi0gICAgICAgICAgICAvLyBO
dWxsIHdvdWxkIGJlIG1vcmUgbG9naWNhbCwgYnV0IE5ldHNjYXBlIHBvc3RzIGFuIGVtcHR5IGZp
bGUuIEFyZ2guCi0gICAgICAgICAgICBpZiAoIW51bUZpbGVzKSB7Ci0gICAgICAgICAgICAgICAg
ZW5jb2RpbmcuYXBwZW5kQmxvYihuYW1lKCksIEZpbGU6OmNyZWF0ZSgiIikpOwotICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkKLSAgICAgICAgICAgICAgICBlbmNvZGlu
Zy5hcHBlbmRCbG9iKG5hbWUoKSwgbV9maWxlTGlzdC0+aXRlbShpKSk7CisgICAgICAgIC8vIElm
IG5vIGZpbGVuYW1lIGF0IGFsbCBpcyBlbnRlcmVkLCByZXR1cm4gc3VjY2Vzc2Z1bCBidXQgZW1w
dHkuCisgICAgICAgIC8vIE51bGwgd291bGQgYmUgbW9yZSBsb2dpY2FsLCBidXQgTmV0c2NhcGUg
cG9zdHMgYW4gZW1wdHkgZmlsZS4gQXJnaC4KKyAgICAgICAgaWYgKCFudW1GaWxlcykgeworICAg
ICAgICAgICAgZW5jb2RpbmcuYXBwZW5kQmxvYihuYW1lKCksIEZpbGU6OmNyZWF0ZSgiIikpOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKworICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkKKyAgICAgICAgICAgIGVuY29kaW5nLmFwcGVu
ZEJsb2IobmFtZSgpLCBtX2ZpbGVMaXN0LT5pdGVtKGkpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTQ0MCwxMyArMTQz
MSwxMyBAQAogICAgICAgICBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKIH0KIAot
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRJbmRldGVybWluYXRlKGJvb2wgX2luZGV0ZXJtaW5h
dGUpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEluZGV0ZXJtaW5hdGUoYm9vbCBuZXdWYWx1
ZSkKIHsKICAgICAvLyBPbmx5IGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgaG9ub3IgaW5k
ZXRlcm1pbmF0ZS4KLSAgICBpZiAoIWFsbG93c0luZGV0ZXJtaW5hdGUoKSB8fCBpbmRldGVybWlu
YXRlKCkgPT0gX2luZGV0ZXJtaW5hdGUpCisgICAgaWYgKCFhbGxvd3NJbmRldGVybWluYXRlKCkg
fHwgaW5kZXRlcm1pbmF0ZSgpID09IG5ld1ZhbHVlKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2luZGV0ZXJtaW5hdGUgPSBfaW5kZXRlcm1pbmF0ZTsKKyAgICBtX2luZGV0ZXJtaW5hdGUgPSBu
ZXdWYWx1ZTsKIAogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIApAQCAtMTQ5Miw3ICsxNDgz
LDcgQEAKICAgICAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBpZiAoaW5w
dXRUeXBlKCkgPT0gQ0hFQ0tCT1ggfHwgaW5wdXRUeXBlKCkgPT0gUkFESU8pCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGNoZWNrZWQoKSA/ICJvbiIgOiAiIjsKLSAgICAgICAgICAgIGVsc2UgaWYg
KGlucHV0VHlwZSgpID09IFJBTkdFKQorICAgICAgICAgICAgaWYgKGlucHV0VHlwZSgpID09IFJB
TkdFKQogICAgICAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKFN0ZXBS
YW5nZSh0aGlzKS5kZWZhdWx0VmFsdWUoKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNTA1LDM1
ICsxNDk2LDM1IEBACiAgICAgU3RyaW5nIHYgPSB2YWx1ZSgpOwogICAgIGlmICh2LmlzTnVsbCgp
KSB7CiAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgICAgIGNhc2UgQlVU
VE9OOgotICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKLSAgICAgICAgICAgIGNhc2UgQ09MT1I6
Ci0gICAgICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgICAgICBjYXNlIERBVEVUSU1FOgotICAg
ICAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICAgICAgY2FzZSBFTUFJTDoKLSAg
ICAgICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgICAgIGNhc2UgSElEREVOOgotICAgICAgICAg
ICAgY2FzZSBJTUFHRToKLSAgICAgICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAgICAgIGNh
c2UgTU9OVEg6Ci0gICAgICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgICAgIGNhc2UgUEFT
U1dPUkQ6Ci0gICAgICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgY2FzZSBSQU5HRToK
LSAgICAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICAgICAgY2FzZSBURUxFUEhPTkU6Ci0g
ICAgICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgICAg
ICBjYXNlIFVSTDoKLSAgICAgICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAgICAgdiA9IHJlc2V0QnV0
dG9uRGVmYXVsdExhYmVsKCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIFNVQk1JVDoKLSAgICAgICAgICAgICAgICB2ID0gc3VibWl0QnV0dG9uRGVmYXVsdExhYmVs
KCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQlVUVE9OOgorICAgICAg
ICBjYXNlIENIRUNLQk9YOgorICAgICAgICBjYXNlIENPTE9SOgorICAgICAgICBjYXNlIERBVEU6
CisgICAgICAgIGNhc2UgREFURVRJTUU6CisgICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoKKyAg
ICAgICAgY2FzZSBFTUFJTDoKKyAgICAgICAgY2FzZSBGSUxFOgorICAgICAgICBjYXNlIEhJRERF
TjoKKyAgICAgICAgY2FzZSBJTUFHRToKKyAgICAgICAgY2FzZSBJU0lOREVYOgorICAgICAgICBj
YXNlIE1PTlRIOgorICAgICAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgY2FzZSBQQVNTV09SRDoK
KyAgICAgICAgY2FzZSBSQURJTzoKKyAgICAgICAgY2FzZSBSQU5HRToKKyAgICAgICAgY2FzZSBT
RUFSQ0g6CisgICAgICAgIGNhc2UgVEVMRVBIT05FOgorICAgICAgICBjYXNlIFRFWFQ6CisgICAg
ICAgIGNhc2UgVElNRToKKyAgICAgICAgY2FzZSBVUkw6CisgICAgICAgIGNhc2UgV0VFSzoKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJFU0VUOgorICAgICAgICAgICAgdiA9IHJl
c2V0QnV0dG9uRGVmYXVsdExhYmVsKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBTVUJNSVQ6CisgICAgICAgICAgICB2ID0gc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCk7Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gdjsKQEAgLTE5
NTIsMzIgKzE5NDMsMzIgQEAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c3RvcmVzVmFsdWVTZXBh
cmF0ZUZyb21BdHRyaWJ1dGUoKSBjb25zdAogewogICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsK
LSAgICAgICAgY2FzZSBCVVRUT046Ci0gICAgICAgIGNhc2UgQ0hFQ0tCT1g6Ci0gICAgICAgIGNh
c2UgSElEREVOOgotICAgICAgICBjYXNlIElNQUdFOgotICAgICAgICBjYXNlIFJBRElPOgotICAg
ICAgICBjYXNlIFJFU0VUOgotICAgICAgICBjYXNlIFNVQk1JVDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBEQVRFOgotICAgICAg
ICBjYXNlIERBVEVUSU1FOgotICAgICAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgICAgIGNh
c2UgRU1BSUw6Ci0gICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgY2FzZSBJU0lOREVYOgotICAg
ICAgICBjYXNlIE1PTlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQQVNT
V09SRDoKLSAgICAgICAgY2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAg
IGNhc2UgVEVMRVBIT05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToK
LSAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgIGNhc2UgQlVUVE9OOgorICAgIGNhc2UgQ0hFQ0tCT1g6CisgICAgY2FzZSBI
SURERU46CisgICAgY2FzZSBJTUFHRToKKyAgICBjYXNlIFJBRElPOgorICAgIGNhc2UgUkVTRVQ6
CisgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIENPTE9S
OgorICAgIGNhc2UgREFURToKKyAgICBjYXNlIERBVEVUSU1FOgorICAgIGNhc2UgREFURVRJTUVM
T0NBTDoKKyAgICBjYXNlIEVNQUlMOgorICAgIGNhc2UgRklMRToKKyAgICBjYXNlIElTSU5ERVg6
CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJFUjoKKyAgICBjYXNlIFBBU1NXT1JEOgor
ICAgIGNhc2UgUkFOR0U6CisgICAgY2FzZSBTRUFSQ0g6CisgICAgY2FzZSBURUxFUEhPTkU6Cisg
ICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAgICBjYXNlIFVSTDoKKyAgICBjYXNlIFdF
RUs6CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBA
IC0yMTUyLDUyICsyMTQzLDUyIEBACiAKICAgICAgICAgaWYgKGNoYXJDb2RlID09ICdccicpIHsK
ICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNl
IENIRUNLQk9YOgotICAgICAgICAgICAgICAgIGNhc2UgQ09MT1I6Ci0gICAgICAgICAgICAgICAg
Y2FzZSBEQVRFOgotICAgICAgICAgICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICAgICAgICAgIGNhc2UgRU1BSUw6Ci0gICAg
ICAgICAgICAgICAgY2FzZSBISURERU46Ci0gICAgICAgICAgICAgICAgY2FzZSBJU0lOREVYOgot
ICAgICAgICAgICAgICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgICAgICAgICAgY2FzZSBOVU1CRVI6
Ci0gICAgICAgICAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgICAgICAgICBjYXNlIFJB
TkdFOgotICAgICAgICAgICAgICAgIGNhc2UgU0VBUkNIOgotICAgICAgICAgICAgICAgIGNhc2Ug
VEVMRVBIT05FOgotICAgICAgICAgICAgICAgIGNhc2UgVEVYVDoKLSAgICAgICAgICAgICAgICBj
YXNlIFRJTUU6Ci0gICAgICAgICAgICAgICAgY2FzZSBVUkw6Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBXRUVLOgotICAgICAgICAgICAgICAgICAgICAvLyBTaW11bGF0ZSBtb3VzZSBjbGljayBvbiB0
aGUgZGVmYXVsdCBmb3JtIGJ1dHRvbiBmb3IgZW50ZXIgZm9yIHRoZXNlIHR5cGVzIG9mIGVsZW1l
bnRzLgotICAgICAgICAgICAgICAgICAgICBjbGlja0RlZmF1bHRGb3JtQnV0dG9uID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBCVVRUT046
Ci0gICAgICAgICAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICAgICAgICAgIGNhc2UgSU1BR0U6
Ci0gICAgICAgICAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgICAgICAgICBjYXNlIFNVQk1J
VDoKLSAgICAgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgbW91c2UgY2xpY2sgZm9yIGVudGVy
IGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAgICAgY2xpY2tF
bGVtZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIERvbid0IGRvIGFu
eXRoaW5nIGZvciBlbnRlciBvbiBhIHJhZGlvIGJ1dHRvbi4KKyAgICAgICAgICAgIGNhc2UgQ0hF
Q0tCT1g6CisgICAgICAgICAgICBjYXNlIENPTE9SOgorICAgICAgICAgICAgY2FzZSBEQVRFOgor
ICAgICAgICAgICAgY2FzZSBEQVRFVElNRToKKyAgICAgICAgICAgIGNhc2UgREFURVRJTUVMT0NB
TDoKKyAgICAgICAgICAgIGNhc2UgRU1BSUw6CisgICAgICAgICAgICBjYXNlIEhJRERFTjoKKyAg
ICAgICAgICAgIGNhc2UgSVNJTkRFWDoKKyAgICAgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAg
ICAgICBjYXNlIE5VTUJFUjoKKyAgICAgICAgICAgIGNhc2UgUEFTU1dPUkQ6CisgICAgICAgICAg
ICBjYXNlIFJBTkdFOgorICAgICAgICAgICAgY2FzZSBTRUFSQ0g6CisgICAgICAgICAgICBjYXNl
IFRFTEVQSE9ORToKKyAgICAgICAgICAgIGNhc2UgVEVYVDoKKyAgICAgICAgICAgIGNhc2UgVElN
RToKKyAgICAgICAgICAgIGNhc2UgVVJMOgorICAgICAgICAgICAgY2FzZSBXRUVLOgorICAgICAg
ICAgICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIG9uIHRoZSBkZWZhdWx0IGZvcm0gYnV0
dG9uIGZvciBlbnRlciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVudHMuCisgICAgICAgICAgICAg
ICAgY2xpY2tEZWZhdWx0Rm9ybUJ1dHRvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEJVVFRPTjoKKyAgICAgICAgICAgIGNhc2UgRklMRToKKyAgICAg
ICAgICAgIGNhc2UgSU1BR0U6CisgICAgICAgICAgICBjYXNlIFJFU0VUOgorICAgICAgICAgICAg
Y2FzZSBTVUJNSVQ6CisgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgbW91c2UgY2xpY2sgZm9y
IGVudGVyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICBjbGlj
a0VsZW1lbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBSQURJTzoKKyAgICAgICAgICAgICAgICBicmVhazsgLy8gRG9uJ3QgZG8gYW55dGhpbmcgZm9y
IGVudGVyIG9uIGEgcmFkaW8gYnV0dG9uLgogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ug
aWYgKGNoYXJDb2RlID09ICcgJykgewogICAgICAgICAgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkg
ewotICAgICAgICAgICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICAgICAgICAgIGNhc2UgQ0hF
Q0tCT1g6Ci0gICAgICAgICAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICAgICAgICAgIGNhc2Ug
SU1BR0U6Ci0gICAgICAgICAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgICAgICAgICBjYXNl
IFNVQk1JVDoKLSAgICAgICAgICAgICAgICBjYXNlIFJBRElPOgotICAgICAgICAgICAgICAgICAg
ICAvLyBQcmV2ZW50IHNjcm9sbGluZyBkb3duIHRoZSBwYWdlLgotICAgICAgICAgICAgICAgICAg
ICBldnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQlVUVE9OOgorICAgICAgICAgICAgY2FzZSBDSEVDS0JPWDoKKyAgICAg
ICAgICAgIGNhc2UgRklMRToKKyAgICAgICAgICAgIGNhc2UgSU1BR0U6CisgICAgICAgICAgICBj
YXNlIFJFU0VUOgorICAgICAgICAgICAgY2FzZSBTVUJNSVQ6CisgICAgICAgICAgICBjYXNlIFJB
RElPOgorICAgICAgICAgICAgICAgIC8vIFByZXZlbnQgc2Nyb2xsaW5nIGRvd24gdGhlIHBhZ2Uu
CisgICAgICAgICAgICAgICAgZXZ0LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMjIxMywxOSArMjIwNCwxOSBAQAogCiAg
ICAgICAgIGlmIChrZXkgPT0gIlUrMDAyMCIpIHsKICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRU
eXBlKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgICAgICAgICBj
YXNlIENIRUNLQk9YOgotICAgICAgICAgICAgICAgIGNhc2UgRklMRToKLSAgICAgICAgICAgICAg
ICBjYXNlIElNQUdFOgotICAgICAgICAgICAgICAgIGNhc2UgUkVTRVQ6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBTVUJNSVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBSQURJTzoKLSAgICAgICAgICAg
ICAgICAgICAgc2V0QWN0aXZlKHRydWUsIHRydWUpOwotICAgICAgICAgICAgICAgICAgICAvLyBO
byBzZXREZWZhdWx0SGFuZGxlZCgpLCBiZWNhdXNlIElFIGRpc3BhdGNoZXMgYSBrZXlwcmVzcyBp
biB0aGlzIGNhc2UKLSAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBjYWxsZXIgd2lsbCBv
bmx5IGRpc3BhdGNoIGEga2V5cHJlc3MgaWYgd2UgZG9uJ3QgY2FsbCBzZXREZWZhdWx0SGFuZGxl
ZC4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCVVRUT046Cisg
ICAgICAgICAgICBjYXNlIENIRUNLQk9YOgorICAgICAgICAgICAgY2FzZSBGSUxFOgorICAgICAg
ICAgICAgY2FzZSBJTUFHRToKKyAgICAgICAgICAgIGNhc2UgUkVTRVQ6CisgICAgICAgICAgICBj
YXNlIFNVQk1JVDoKKyAgICAgICAgICAgIGNhc2UgUkFESU86CisgICAgICAgICAgICAgICAgc2V0
QWN0aXZlKHRydWUsIHRydWUpOworICAgICAgICAgICAgICAgIC8vIE5vIHNldERlZmF1bHRIYW5k
bGVkKCksIGJlY2F1c2UgSUUgZGlzcGF0Y2hlcyBhIGtleXByZXNzIGluIHRoaXMgY2FzZQorICAg
ICAgICAgICAgICAgIC8vIGFuZCB0aGUgY2FsbGVyIHdpbGwgb25seSBkaXNwYXRjaCBhIGtleXBy
ZXNzIGlmIHdlIGRvbid0IGNhbGwgc2V0RGVmYXVsdEhhbmRsZWQuCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yMjcxLDQwICsyMjYyLDQwIEBACiAKICAgICAg
ICAgaWYgKGtleSA9PSAiVSswMDIwIikgewogICAgICAgICAgICAgc3dpdGNoIChpbnB1dFR5cGUo
KSkgewotICAgICAgICAgICAgICAgIGNhc2UgQlVUVE9OOgotICAgICAgICAgICAgICAgIGNhc2Ug
Q0hFQ0tCT1g6Ci0gICAgICAgICAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICAgICAgICAgIGNh
c2UgSU1BR0U6Ci0gICAgICAgICAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgICAgICAgICBj
YXNlIFNVQk1JVDoKLSAgICAgICAgICAgICAgICAgICAgLy8gU2ltdWxhdGUgbW91c2UgY2xpY2sg
Zm9yIHNwYWNlYmFyIGZvciB0aGVzZSB0eXBlcyBvZiBlbGVtZW50cy4KLSAgICAgICAgICAgICAg
ICAgICAgLy8gVGhlIEFwcEtpdCBhbHJlYWR5IGRvZXMgdGhpcyBmb3Igc29tZSwgYnV0IG5vdCBh
bGwsIG9mIHRoZW0uCisgICAgICAgICAgICBjYXNlIEJVVFRPTjoKKyAgICAgICAgICAgIGNhc2Ug
Q0hFQ0tCT1g6CisgICAgICAgICAgICBjYXNlIEZJTEU6CisgICAgICAgICAgICBjYXNlIElNQUdF
OgorICAgICAgICAgICAgY2FzZSBSRVNFVDoKKyAgICAgICAgICAgIGNhc2UgU1VCTUlUOgorICAg
ICAgICAgICAgICAgIC8vIFNpbXVsYXRlIG1vdXNlIGNsaWNrIGZvciBzcGFjZWJhciBmb3IgdGhl
c2UgdHlwZXMgb2YgZWxlbWVudHMuCisgICAgICAgICAgICAgICAgLy8gVGhlIEFwcEtpdCBhbHJl
YWR5IGRvZXMgdGhpcyBmb3Igc29tZSwgYnV0IG5vdCBhbGwsIG9mIHRoZW0uCisgICAgICAgICAg
ICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgUkFESU86CisgICAgICAgICAgICAgICAgLy8gSWYgYW4gdW5zZWxlY3RlZCBy
YWRpbyBpcyB0YWJiZWQgaW50byAoYmVjYXVzZSB0aGUgZW50aXJlIGdyb3VwIGhhcyBub3RoaW5n
CisgICAgICAgICAgICAgICAgLy8gY2hlY2tlZCwgb3IgYmVjYXVzZSBvZiBzb21lIGV4cGxpY2l0
IC5mb2N1cygpIGNhbGwpLCB0aGVuIGFsbG93IHNwYWNlIHRvIGNoZWNrIGl0LgorICAgICAgICAg
ICAgICAgIGlmICghY2hlY2tlZCgpKQogICAgICAgICAgICAgICAgICAgICBjbGlja0VsZW1lbnQg
PSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNl
IFJBRElPOgotICAgICAgICAgICAgICAgICAgICAvLyBJZiBhbiB1bnNlbGVjdGVkIHJhZGlvIGlz
IHRhYmJlZCBpbnRvIChiZWNhdXNlIHRoZSBlbnRpcmUgZ3JvdXAgaGFzIG5vdGhpbmcKLSAgICAg
ICAgICAgICAgICAgICAgLy8gY2hlY2tlZCwgb3IgYmVjYXVzZSBvZiBzb21lIGV4cGxpY2l0IC5m
b2N1cygpIGNhbGwpLCB0aGVuIGFsbG93IHNwYWNlIHRvIGNoZWNrIGl0LgotICAgICAgICAgICAg
ICAgICAgICBpZiAoIWNoZWNrZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrRWxl
bWVudCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IGNhc2UgQ09MT1I6Ci0gICAgICAgICAgICAgICAgY2FzZSBEQVRFOgotICAgICAgICAgICAgICAg
IGNhc2UgREFURVRJTUU6Ci0gICAgICAgICAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAg
ICAgICAgICAgICAgIGNhc2UgRU1BSUw6Ci0gICAgICAgICAgICAgICAgY2FzZSBISURERU46Ci0g
ICAgICAgICAgICAgICAgY2FzZSBJU0lOREVYOgotICAgICAgICAgICAgICAgIGNhc2UgTU9OVEg6
Ci0gICAgICAgICAgICAgICAgY2FzZSBOVU1CRVI6Ci0gICAgICAgICAgICAgICAgY2FzZSBQQVNT
V09SRDoKLSAgICAgICAgICAgICAgICBjYXNlIFJBTkdFOgotICAgICAgICAgICAgICAgIGNhc2Ug
U0VBUkNIOgotICAgICAgICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgotICAgICAgICAgICAgICAg
IGNhc2UgVEVYVDoKLSAgICAgICAgICAgICAgICBjYXNlIFRJTUU6Ci0gICAgICAgICAgICAgICAg
Y2FzZSBVUkw6Ci0gICAgICAgICAgICAgICAgY2FzZSBXRUVLOgotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ09MT1I6
CisgICAgICAgICAgICBjYXNlIERBVEU6CisgICAgICAgICAgICBjYXNlIERBVEVUSU1FOgorICAg
ICAgICAgICAgY2FzZSBEQVRFVElNRUxPQ0FMOgorICAgICAgICAgICAgY2FzZSBFTUFJTDoKKyAg
ICAgICAgICAgIGNhc2UgSElEREVOOgorICAgICAgICAgICAgY2FzZSBJU0lOREVYOgorICAgICAg
ICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIGNhc2UgTlVNQkVSOgorICAgICAgICAgICAg
Y2FzZSBQQVNTV09SRDoKKyAgICAgICAgICAgIGNhc2UgUkFOR0U6CisgICAgICAgICAgICBjYXNl
IFNFQVJDSDoKKyAgICAgICAgICAgIGNhc2UgVEVMRVBIT05FOgorICAgICAgICAgICAgY2FzZSBU
RVhUOgorICAgICAgICAgICAgY2FzZSBUSU1FOgorICAgICAgICAgICAgY2FzZSBVUkw6CisgICAg
ICAgICAgICBjYXNlIFdFRUs6CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIApAQCAtMjQ2Myw5ICsyNDU0LDkgQEAKICAgICBzZXRBdHRyaWJ1dGUobXVs
dGlwbGVBdHRyLCBtdWx0aXBsZSA/ICIiIDogMCk7CiB9CiAgICAgCi12b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNpemUodW5zaWduZWQgX3NpemUpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFNpemUodW5zaWduZWQgc2l6ZSkKIHsKLSAgICBzZXRBdHRyaWJ1dGUoc2l6ZUF0dHIsIFN0cmlu
Zzo6bnVtYmVyKF9zaXplKSk7CisgICAgc2V0QXR0cmlidXRlKHNpemVBdHRyLCBTdHJpbmc6Om51
bWJlcihzaXplKSk7CiB9CiAKIEtVUkwgSFRNTElucHV0RWxlbWVudDo6c3JjKCkgY29uc3QKQEAg
LTI1NDEsMzIgKzI1MzIsMzIgQEAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNo
IChpbnB1dFR5cGUoKSkgewotICAgICAgICBjYXNlIENIRUNLQk9YOgotICAgICAgICBjYXNlIERB
VEU6Ci0gICAgICAgIGNhc2UgREFURVRJTUU6Ci0gICAgICAgIGNhc2UgREFURVRJTUVMT0NBTDoK
LSAgICAgICAgY2FzZSBFTUFJTDoKLSAgICAgICAgY2FzZSBGSUxFOgotICAgICAgICBjYXNlIE1P
TlRIOgotICAgICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAg
ICAgY2FzZSBSQURJTzoKLSAgICAgICAgY2FzZSBTRUFSQ0g6Ci0gICAgICAgIGNhc2UgVEVMRVBI
T05FOgotICAgICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIGNhc2UgVElNRToKLSAgICAgICAgY2Fz
ZSBVUkw6Ci0gICAgICAgIGNhc2UgV0VFSzoKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICBjYXNlIEJVVFRPTjoKLSAgICAgICAgY2FzZSBDT0xPUjoKLSAgICAgICAgY2FzZSBISURE
RU46Ci0gICAgICAgIGNhc2UgSU1BR0U6Ci0gICAgICAgIGNhc2UgSVNJTkRFWDoKLSAgICAgICAg
Y2FzZSBSQU5HRToKLSAgICAgICAgY2FzZSBSRVNFVDoKLSAgICAgICAgY2FzZSBTVUJNSVQ6Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBDSEVDS0JPWDoKKyAgICBjYXNlIERB
VEU6CisgICAgY2FzZSBEQVRFVElNRToKKyAgICBjYXNlIERBVEVUSU1FTE9DQUw6CisgICAgY2Fz
ZSBFTUFJTDoKKyAgICBjYXNlIEZJTEU6CisgICAgY2FzZSBNT05USDoKKyAgICBjYXNlIE5VTUJF
UjoKKyAgICBjYXNlIFBBU1NXT1JEOgorICAgIGNhc2UgUkFESU86CisgICAgY2FzZSBTRUFSQ0g6
CisgICAgY2FzZSBURUxFUEhPTkU6CisgICAgY2FzZSBURVhUOgorICAgIGNhc2UgVElNRToKKyAg
ICBjYXNlIFVSTDoKKyAgICBjYXNlIFdFRUs6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNh
c2UgQlVUVE9OOgorICAgIGNhc2UgQ09MT1I6CisgICAgY2FzZSBISURERU46CisgICAgY2FzZSBJ
TUFHRToKKyAgICBjYXNlIElTSU5ERVg6CisgICAgY2FzZSBSQU5HRToKKyAgICBjYXNlIFJFU0VU
OgorICAgIGNhc2UgU1VCTUlUOgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yNzY1LDYgKzI3NTYsNiBAQAogICAgIH0KICAgICBy
ZXR1cm4gMDsKIH0KLSNlbmRpZiAgLy8gRU5BQkxFKERBVEFMSVNUKQorI2VuZGlmIC8vIEVOQUJM
RShEQVRBTElTVCkKIAogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>