<?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>183484</bug_id>
          
          <creation_ts>2018-03-08 14:58:44 -0800</creation_ts>
          <short_desc>Remove GridLayout runtime flag</short_desc>
          <delta_ts>2018-03-12 17:24:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Javier Fernandez">jfernandez</reporter>
          <assigned_to name="Javier Fernandez">jfernandez</assigned_to>
          <cc>aestes</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</cc>
    
    <cc>jfernandez</cc>
    
    <cc>lforschler</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rego</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404939</commentid>
    <comment_count>0</comment_count>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-03-08 14:58:44 -0800</bug_when>
    <thetext>Remove GridLayout runtime flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404941</commentid>
    <comment_count>1</comment_count>
      <attachid>335351</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-03-08 15:01:41 -0800</bug_when>
    <thetext>Created attachment 335351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404943</commentid>
    <comment_count>2</comment_count>
      <attachid>335352</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-03-08 15:07:22 -0800</bug_when>
    <thetext>Created attachment 335352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404971</commentid>
    <comment_count>3</comment_count>
      <attachid>335364</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-03-08 16:16:37 -0800</bug_when>
    <thetext>Created attachment 335364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405114</commentid>
    <comment_count>4</comment_count>
      <attachid>335364</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-03-09 01:54:02 -0800</bug_when>
    <thetext>Comment on attachment 335364
Patch

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

Thanks for doing this, I&apos;d send a mail to the thread in webkit-dev pointing to this issue and wait a few days before landing it.
Anyway I agree we should do it, added some comments inline.

&gt; Source/WebKit/ChangeLog:10
&gt; +        Reviewed by NOBODY (OOPS!).

Nit: I think the &quot;Reviewed by NOBODY (OOPS!).&quot; is misplaced.

&gt; Source/WebKitLegacy/mac/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).

Nit: Ditto.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2536
&gt; +static Ref&lt;CSSValueList&gt; valueForContentPositionAndDistributionWithOverflowAlignment(const StyleContentAlignmentData&amp; data)

Why we need this change?
We were calling this with CSSValueStretch for align-content and CSSValueFlexStart for justify-content,
why we don&apos;t need to do this anymore?

Probably it&apos;d be good to document this change in the ChangeLog as it&apos;s not direct to get the relationship
with the flag removal.

&gt; Source/WebCore/css/parser/CSSParserMode.h:138
&gt;              &amp; key.textAutosizingEnabled                     &lt;&lt; 3

Shouldn&apos;t we update the number here to &quot;2&quot;?

&gt; Tools/ChangeLog:10
&gt; +        Reviewed by NOBODY (OOPS!).

Ditto.

&gt; LayoutTests/css3/flexbox/flexbox-lines-must-be-stretched-by-default.html:26
&gt;  function runTest(gridEnabled)

Mmmm, should we keep this test?

This test calls twice runTest() with false and true, grid is always enabled now so...

&gt; LayoutTests/css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html:-84
&gt; -test(function() {
&gt; -    checkSelfAlignmentValues(true);
&gt; -}, &quot;Even when grid layout is ENABLED, new Self-Alignment values should not violate assertions in FlexibleBox layout logic..&quot;);
&gt; -
&gt; -test(function() {
&gt; -    checkDefaultAlignmentValues(true);
&gt; -}, &quot;Even when grid layout is ENABLED, new Default-Alignment values should not violate assertions in FlexibleBox layout logic..&quot;);

Shouldn&apos;t we keep these tests yet?

&gt; LayoutTests/fast/css/ensure-flexbox-compatibility-with-initial-values.html:-61
&gt; -debug(&apos;&lt;br&gt;Verifying initial values are supported when grid is ENABLED.&apos;);
&gt; -checkInitialValues(true);

Again I&apos;m wondering if we should keep this part of the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405145</commentid>
    <comment_count>5</comment_count>
      <attachid>335364</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-03-09 04:20:45 -0800</bug_when>
    <thetext>Comment on attachment 335364
Patch

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

&gt;&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2536
&gt;&gt; +static Ref&lt;CSSValueList&gt; valueForContentPositionAndDistributionWithOverflowAlignment(const StyleContentAlignmentData&amp; data)
&gt; 
&gt; Why we need this change?
&gt; We were calling this with CSSValueStretch for align-content and CSSValueFlexStart for justify-content,
&gt; why we don&apos;t need to do this anymore?
&gt; 
&gt; Probably it&apos;d be good to document this change in the ChangeLog as it&apos;s not direct to get the relationship
&gt; with the flag removal.

Well, since grid is enabled by default, I don&apos;t expect the normalBrehaviorValueID to be used anymore. So removing would be a logical step and simplifies the code.

We needed to keep backward compatibility with the alignment properties defined in the Flexbox spec. The new spec states that both, align-content and justify-content have &apos;normal&apos; as initial/default value. Then, the new spec resolves the differences between those properties adding the term &quot;behavior&quot;. For both properties, &quot;normal&quot; behaves as &quot;stretch&quot;. Then, for justify-content, &quot;normal&quot; behaves as &quot;flex-start&quot;.

This behavior logic is implemented at rendering/layout side, so it has nothing to do with CSS parsing and computed style. The new spec states on this regard that both properties have a computed style as specified, so it&apos;ll be &quot;normal&quot; in both cases. This could be a source of problems for backward compatibility, indeed, but only in terms of computed style. 

https://drafts.csswg.org/css-align/#align-justify-content
https://drafts.csswg.org/css-flexbox/#align-content-property
https://drafts.csswg.org/css-flexbox/#propdef-justify-content

I have to say that there is not an easy way to solve/avoid this backward compatibility issues, and if anybody consider them a serious problem I&apos;ll try to discuss it with the CSSWG. 

I agree that this change should be documented in the Changelog.

&gt;&gt; Source/WebCore/css/parser/CSSParserMode.h:138
&gt;&gt;              &amp; key.textAutosizingEnabled                     &lt;&lt; 3
&gt; 
&gt; Shouldn&apos;t we update the number here to &quot;2&quot;?

Sure.

&gt;&gt; LayoutTests/css3/flexbox/flexbox-lines-must-be-stretched-by-default.html:26
&gt;&gt;  function runTest(gridEnabled)
&gt; 
&gt; Mmmm, should we keep this test?
&gt; 
&gt; This test calls twice runTest() with false and true, grid is always enabled now so...

I think the test is still valid, but you&apos;re right that we don&apos;t need to evaluate the case of grid being disabled.

&gt;&gt; LayoutTests/css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html:-84
&gt;&gt; -}, &quot;Even when grid layout is ENABLED, new Default-Alignment values should not violate assertions in FlexibleBox layout logic..&quot;);
&gt; 
&gt; Shouldn&apos;t we keep these tests yet?

The purpose of this test is to ensure we run the CSS parsing fastpath code when grid is disabled (which follows the Flexbox spec). Since this patch removes such codepath, I don&apos;t think this test makes much sense.

&gt;&gt; LayoutTests/fast/css/ensure-flexbox-compatibility-with-initial-values.html:-61
&gt;&gt; -checkInitialValues(true);
&gt; 
&gt; Again I&apos;m wondering if we should keep this part of the test.

We already have tests to ensure the initial values are valid. The only purpose of this test is to ensure that the initial/default values set when grid is disabled as also valid. Since grid is enabled by default and we have removed the parsing codepath run when it&apos;s disabled, I don&apos;t see what this test would verify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405146</commentid>
    <comment_count>6</comment_count>
      <attachid>335420</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2018-03-09 04:37:11 -0800</bug_when>
    <thetext>Created attachment 335420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405677</commentid>
    <comment_count>7</comment_count>
      <attachid>335420</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-03-12 01:11:44 -0700</bug_when>
    <thetext>Comment on attachment 335420
Patch

r=me too, thanks for doing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405678</commentid>
    <comment_count>8</comment_count>
      <attachid>335364</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2018-03-12 01:12:22 -0700</bug_when>
    <thetext>Comment on attachment 335364
Patch

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

&gt;&gt;&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2536
&gt;&gt;&gt; +static Ref&lt;CSSValueList&gt; valueForContentPositionAndDistributionWithOverflowAlignment(const StyleContentAlignmentData&amp; data)
&gt;&gt; 
&gt;&gt; Why we need this change?
&gt;&gt; We were calling this with CSSValueStretch for align-content and CSSValueFlexStart for justify-content,
&gt;&gt; why we don&apos;t need to do this anymore?
&gt;&gt; 
&gt;&gt; Probably it&apos;d be good to document this change in the ChangeLog as it&apos;s not direct to get the relationship
&gt;&gt; with the flag removal.
&gt; 
&gt; Well, since grid is enabled by default, I don&apos;t expect the normalBrehaviorValueID to be used anymore. So removing would be a logical step and simplifies the code.
&gt; 
&gt; We needed to keep backward compatibility with the alignment properties defined in the Flexbox spec. The new spec states that both, align-content and justify-content have &apos;normal&apos; as initial/default value. Then, the new spec resolves the differences between those properties adding the term &quot;behavior&quot;. For both properties, &quot;normal&quot; behaves as &quot;stretch&quot;. Then, for justify-content, &quot;normal&quot; behaves as &quot;flex-start&quot;.
&gt; 
&gt; This behavior logic is implemented at rendering/layout side, so it has nothing to do with CSS parsing and computed style. The new spec states on this regard that both properties have a computed style as specified, so it&apos;ll be &quot;normal&quot; in both cases. This could be a source of problems for backward compatibility, indeed, but only in terms of computed style. 
&gt; 
&gt; https://drafts.csswg.org/css-align/#align-justify-content
&gt; https://drafts.csswg.org/css-flexbox/#align-content-property
&gt; https://drafts.csswg.org/css-flexbox/#propdef-justify-content
&gt; 
&gt; I have to say that there is not an easy way to solve/avoid this backward compatibility issues, and if anybody consider them a serious problem I&apos;ll try to discuss it with the CSSWG. 
&gt; 
&gt; I agree that this change should be documented in the Changelog.

Ah yeah sorry, I didn&apos;t realize about the gridEnabled used inside the method.
I wasn&apos;t seen the relation of this change with the flag.

&gt;&gt;&gt; LayoutTests/css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html:-84
&gt;&gt;&gt; -}, &quot;Even when grid layout is ENABLED, new Default-Alignment values should not violate assertions in FlexibleBox layout logic..&quot;);
&gt;&gt; 
&gt;&gt; Shouldn&apos;t we keep these tests yet?
&gt; 
&gt; The purpose of this test is to ensure we run the CSS parsing fastpath code when grid is disabled (which follows the Flexbox spec). Since this patch removes such codepath, I don&apos;t think this test makes much sense.

Ok.

&gt;&gt;&gt; LayoutTests/fast/css/ensure-flexbox-compatibility-with-initial-values.html:-61
&gt;&gt;&gt; -checkInitialValues(true);
&gt;&gt; 
&gt;&gt; Again I&apos;m wondering if we should keep this part of the test.
&gt; 
&gt; We already have tests to ensure the initial values are valid. The only purpose of this test is to ensure that the initial/default values set when grid is disabled as also valid. Since grid is enabled by default and we have removed the parsing codepath run when it&apos;s disabled, I don&apos;t see what this test would verify.

Ok, thanks for the explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405723</commentid>
    <comment_count>9</comment_count>
      <attachid>335420</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-12 06:48:06 -0700</bug_when>
    <thetext>Comment on attachment 335420
Patch

Clearing flags on attachment: 335420

Committed r229531: &lt;https://trac.webkit.org/changeset/229531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405724</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-12 06:48:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406001</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-12 17:24:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/38397876&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335351</attachid>
            <date>2018-03-08 15:01:41 -0800</date>
            <delta_ts>2018-03-08 15:07:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183484-20180309000139.patch</filename>
            <type>text/plain</type>
            <size>28760</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDIwOWUyOWFhNzQwOTQ2YjM4MDgw
OWJlNWUwYTNhMDljM2JlZTc5MjMuLjE4ZmY5MThiYjZhY2Y0OTMwZmViMzgxYTQ1Mjk2NzgzM2M3
ZWE3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCkBAIC0yNTMzLDcgKzI1MzMsNyBAQCBzdGF0aWMgUmVmPENTU1ZhbHVlTGlz
dD4gdmFsdWVGb3JJdGVtUG9zaXRpb25XaXRoT3ZlcmZsb3dBbGlnbm1lbnQoY29uc3QgU3R5bGVT
ZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBSZWY8Q1NTVmFsdWVMaXN0PiB2YWx1
ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxvd0FsaWdubWVudChj
b25zdCBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhJiBkYXRhLCBDU1NWYWx1ZUlEIG5vcm1hbEJl
aGF2aW9yVmFsdWVJRCkKK3N0YXRpYyBSZWY8Q1NTVmFsdWVMaXN0PiB2YWx1ZUZvckNvbnRlbnRQ
b3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxvd0FsaWdubWVudChjb25zdCBTdHlsZUNv
bnRlbnRBbGlnbm1lbnREYXRhJiBkYXRhKQogewogICAgIGF1dG8mIGNzc1ZhbHVlUG9vbCA9IENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCk7CiAgICAgYXV0byByZXN1bHQgPSBDU1NWYWx1ZUxpc3Q6
OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CkBAIC0yNTQxLDE1ICsyNTQxLDEyIEBAIHN0YXRpYyBS
ZWY8Q1NTVmFsdWVMaXN0PiB2YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldp
dGhPdmVyZmxvd0FsaWduCiAgICAgaWYgKGRhdGEuZGlzdHJpYnV0aW9uKCkgIT0gQ29udGVudERp
c3RyaWJ1dGlvbkRlZmF1bHQpCiAgICAgICAgIHJlc3VsdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbC5j
cmVhdGVWYWx1ZShkYXRhLmRpc3RyaWJ1dGlvbigpKSk7CiAKLSAgICBib29sIGdyaWRFbmFibGVk
ID0gZmFsc2U7Ci0gICAgZ3JpZEVuYWJsZWQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsKLQogICAgIC8vIEhhbmRsZSBj
b250ZW50LXBvc2l0aW9uIHZhbHVlcyAoZWl0aGVyIGFzIGZhbGxiYWNrIG9yIGFjdHVhbCB2YWx1
ZSkKICAgICBzd2l0Y2ggKGRhdGEucG9zaXRpb24oKSkgewogICAgIGNhc2UgQ29udGVudFBvc2l0
aW9uTm9ybWFsOgogICAgICAgICAvLyBIYW5kbGUgJ25vcm1hbCcgdmFsdWUsIG5vdCB2YWxpZCBh
cyBjb250ZW50LWRpc3RyaWJ1dGlvbiBmYWxsYmFjay4KICAgICAgICAgaWYgKGRhdGEuZGlzdHJp
YnV0aW9uKCkgPT0gQ29udGVudERpc3RyaWJ1dGlvbkRlZmF1bHQpCi0gICAgICAgICAgICByZXN1
bHQtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKGdyaWRFbmFibGVk
ID8gQ1NTVmFsdWVOb3JtYWwgOiBub3JtYWxCZWhhdmlvclZhbHVlSUQpKTsKKyAgICAgICAgICAg
IHJlc3VsdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFs
dWVOb3JtYWwpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb25MYXN0
QmFzZWxpbmU6CiAgICAgICAgIHJlc3VsdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVMYXN0KSk7CkBAIC0yOTg0LDcgKzI5ODEsNyBAQCBSZWZQdHI8
Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxl
KGNvbnN0IFJlbmRlclN0eQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5RW1wdHlDZWxsczoKICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUuZW1wdHlDZWxs
cygpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduQ29udGVudDoKLSAgICAgICAgICAg
IHJldHVybiB2YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxv
d0FsaWdubWVudChzdHlsZS5hbGlnbkNvbnRlbnQoKSwgQ1NTVmFsdWVTdHJldGNoKTsKKyAgICAg
ICAgICAgIHJldHVybiB2YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhP
dmVyZmxvd0FsaWdubWVudChzdHlsZS5hbGlnbkNvbnRlbnQoKSk7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlBbGlnbkl0ZW1zOgogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9ySXRlbVBvc2l0
aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KHN0eWxlLmFsaWduSXRlbXMoKSk7CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlBbGlnblNlbGY6CkBAIC0zMDA0LDcgKzMwMDEsNyBAQCBSZWZQdHI8Q1NT
VmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlpblN0eWxlKGNv
bnN0IFJlbmRlclN0eQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5RmxleFdyYXA6CiAgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLmZsZXhXcmFwKCkpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5SnVzdGlmeUNvbnRlbnQ6Ci0gICAgICAgICAgICByZXR1
cm4gdmFsdWVGb3JDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25XaXRoT3ZlcmZsb3dBbGln
bm1lbnQoc3R5bGUuanVzdGlmeUNvbnRlbnQoKSwgQ1NTVmFsdWVGbGV4U3RhcnQpOworICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlRm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92
ZXJmbG93QWxpZ25tZW50KHN0eWxlLmp1c3RpZnlDb250ZW50KCkpOwogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5SnVzdGlmeUl0ZW1zOgogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9ySXRlbVBv
c2l0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KHN0eWxlLmp1c3RpZnlJdGVtcygpKTsKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUp1c3RpZnlTZWxmOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlckNvbnZlcnRlci5oCmluZGV4IDlkNjBiMTAxMTAwMTdhZDA5NGVjZmU1MDJlNTljYzcy
ODJhYjVjYWMuLjZjMzdjOWZkMzNmNzJmY2FkZDA0YTUzMDJmZmJjMDllZGNlOGQzMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAgLTEzNzMsMzUgKzEz
NzMsMTUgQEAgaW5saW5lIFN0eWxlU2VsZkFsaWdubWVudERhdGEgU3R5bGVCdWlsZGVyQ29udmVy
dGVyOjpjb252ZXJ0U2VsZk9yRGVmYXVsdEFsaWdubWUKIGlubGluZSBTdHlsZUNvbnRlbnRBbGln
bm1lbnREYXRhIFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydENvbnRlbnRBbGlnbm1lbnRE
YXRhKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCiB7CiAgICAgU3R5bGVD
b250ZW50QWxpZ25tZW50RGF0YSBhbGlnbm1lbnREYXRhID0gUmVuZGVyU3R5bGU6OmluaXRpYWxD
b250ZW50QWxpZ25tZW50KCk7Ci0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKSB7Ci0gICAgICAgIGlmICghaXM8
Q1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlPih2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4g
YWxpZ25tZW50RGF0YTsKLSAgICAgICAgYXV0byYgY29udGVudFZhbHVlID0gZG93bmNhc3Q8Q1NT
Q29udGVudERpc3RyaWJ1dGlvblZhbHVlPih2YWx1ZSk7Ci0gICAgICAgIGlmIChjb250ZW50VmFs
dWUuZGlzdHJpYnV0aW9uKCktPnZhbHVlSUQoKSAhPSBDU1NWYWx1ZUludmFsaWQpCi0gICAgICAg
ICAgICBhbGlnbm1lbnREYXRhLnNldERpc3RyaWJ1dGlvbihjb250ZW50VmFsdWUuZGlzdHJpYnV0
aW9uKCkuZ2V0KCkpOwotICAgICAgICBpZiAoY29udGVudFZhbHVlLnBvc2l0aW9uKCktPnZhbHVl
SUQoKSAhPSBDU1NWYWx1ZUludmFsaWQpCi0gICAgICAgICAgICBhbGlnbm1lbnREYXRhLnNldFBv
c2l0aW9uKGNvbnRlbnRWYWx1ZS5wb3NpdGlvbigpLmdldCgpKTsKLSAgICAgICAgaWYgKGNvbnRl
bnRWYWx1ZS5vdmVyZmxvdygpLT52YWx1ZUlEKCkgIT0gQ1NTVmFsdWVJbnZhbGlkKQotICAgICAg
ICAgICAgYWxpZ25tZW50RGF0YS5zZXRPdmVyZmxvdyhjb250ZW50VmFsdWUub3ZlcmZsb3coKS5n
ZXQoKSk7CisgICAgaWYgKCFpczxDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWU+KHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuIGFsaWdubWVudERhdGE7Ci0gICAgfQotICAgIGlmICghaXM8Q1NTUHJp
bWl0aXZlVmFsdWU+KHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIGFsaWdubWVudERhdGE7Ci0gICAg
YXV0byYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUp
OwotICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUudmFsdWVJRCgpKSB7Ci0gICAgY2FzZSBDU1NW
YWx1ZVN0cmV0Y2g6Ci0gICAgY2FzZSBDU1NWYWx1ZVNwYWNlQmV0d2VlbjoKLSAgICBjYXNlIENT
U1ZhbHVlU3BhY2VBcm91bmQ6Ci0gICAgICAgIGFsaWdubWVudERhdGEuc2V0RGlzdHJpYnV0aW9u
KHByaW1pdGl2ZVZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NWYWx1ZUZsZXhT
dGFydDoKLSAgICBjYXNlIENTU1ZhbHVlRmxleEVuZDoKLSAgICBjYXNlIENTU1ZhbHVlQ2VudGVy
OgotICAgICAgICBhbGlnbm1lbnREYXRhLnNldFBvc2l0aW9uKHByaW1pdGl2ZVZhbHVlKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgfQorICAgIGF1dG8mIGNvbnRlbnRWYWx1ZSA9IGRvd25jYXN0PENTU0NvbnRlbnREaXN0
cmlidXRpb25WYWx1ZT4odmFsdWUpOworICAgIGlmIChjb250ZW50VmFsdWUuZGlzdHJpYnV0aW9u
KCktPnZhbHVlSUQoKSAhPSBDU1NWYWx1ZUludmFsaWQpCisgICAgICAgIGFsaWdubWVudERhdGEu
c2V0RGlzdHJpYnV0aW9uKGNvbnRlbnRWYWx1ZS5kaXN0cmlidXRpb24oKS5nZXQoKSk7CisgICAg
aWYgKGNvbnRlbnRWYWx1ZS5wb3NpdGlvbigpLT52YWx1ZUlEKCkgIT0gQ1NTVmFsdWVJbnZhbGlk
KQorICAgICAgICBhbGlnbm1lbnREYXRhLnNldFBvc2l0aW9uKGNvbnRlbnRWYWx1ZS5wb3NpdGlv
bigpLmdldCgpKTsKKyAgICBpZiAoY29udGVudFZhbHVlLm92ZXJmbG93KCktPnZhbHVlSUQoKSAh
PSBDU1NWYWx1ZUludmFsaWQpCisgICAgICAgIGFsaWdubWVudERhdGEuc2V0T3ZlcmZsb3coY29u
dGVudFZhbHVlLm92ZXJmbG93KCkuZ2V0KCkpOwogICAgIHJldHVybiBhbGlnbm1lbnREYXRhOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKaW5kZXggODMxNGQ3NDdh
MDMwN2MzNDBhZDAzOWUyZGNkNGI5ZjFkMzg2N2Q5Ni4uNTY1MTU5NDNhMjY0MTRlMjA1MzJkMmRi
NTUwZmY5MjZmMDAzYzNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cApAQCAtNjIsNyArNjIsNiBAQCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBzdHJpY3RDU1NQYXJz
ZXJDb250ZXh0KCkKIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoQ1NTUGFyc2Vy
TW9kZSBtb2RlLCBjb25zdCBVUkwmIGJhc2VVUkwpCiAgICAgOiBiYXNlVVJMKGJhc2VVUkwpCiAg
ICAgLCBtb2RlKG1vZGUpCi0gICAgLCBjc3NHcmlkTGF5b3V0RW5hYmxlZChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSkKIHsK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgLy8gRklYTUU6IEZvcmNlIHRoZSBzaXRlIHNwZWNpZmlj
IHF1aXJrIGJlbG93IHRvIHdvcmsgb24gaU9TLiBJbnZlc3RpZ2F0aW5nIG90aGVyIHNpdGUgc3Bl
Y2lmaWMgcXVpcmtzCkBAIC03Nyw3ICs3Niw2IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNl
ckNvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzZVVSTCwKICAg
ICAsIGNoYXJzZXQoY2hhcnNldCkKICAgICAsIG1vZGUoZG9jdW1lbnQuaW5RdWlya3NNb2RlKCkg
PyBIVE1MUXVpcmtzTW9kZSA6IEhUTUxTdGFuZGFyZE1vZGUpCiAgICAgLCBpc0hUTUxEb2N1bWVu
dChkb2N1bWVudC5pc0hUTUxEb2N1bWVudCgpKQotICAgICwgY3NzR3JpZExheW91dEVuYWJsZWQo
ZG9jdW1lbnQuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKQogICAgICwgaGFzRG9jdW1lbnRTZWN1
cml0eU9yaWdpbihzaGVldEJhc2VVUkwuaXNOdWxsKCkgfHwgZG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKS5jYW5SZXF1ZXN0KGJhc2VVUkwpKQogewogICAgIApAQCAtMTA3LDcgKzEwNSw2IEBAIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJD
b250ZXh0JiBiKQogICAgICAgICAmJiBhLmNoYXJzZXQgPT0gYi5jaGFyc2V0CiAgICAgICAgICYm
IGEubW9kZSA9PSBiLm1vZGUKICAgICAgICAgJiYgYS5pc0hUTUxEb2N1bWVudCA9PSBiLmlzSFRN
TERvY3VtZW50Ci0gICAgICAgICYmIGEuY3NzR3JpZExheW91dEVuYWJsZWQgPT0gYi5jc3NHcmlk
TGF5b3V0RW5hYmxlZAogICAgICAgICAmJiBhLm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID09IGIu
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MKICAgICAgICAgJiYgYS5lbmZvcmNlc0NTU01JTUVUeXBl
SW5Ob1F1aXJrc01vZGUgPT0gYi5lbmZvcmNlc0NTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUKICAg
ICAgICAgJiYgYS51c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yID09IGIu
dXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IGU2MmNiMjlmMTAy
YTI0ZGYzZmE4YzMzMGUwMjU2NzFiMjQ2ZTQ2YmUuLjRkZDgzNzgzZjE2NDk0Y2FhNWFiMDIyOWM2
NjQzMTg0YjIwY2YyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyRmFzdFBhdGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKQEAgLTU2OCw4ICs1NjgsNyBAQCBib29sIENTU1BhcnNlckZhc3RQ
YXRoczo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVy
dHlJZAogICAgICAgICAvLyB0YWJsZS1jb2x1bW4tZ3JvdXAgfCB0YWJsZS1jb2x1bW4gfCB0YWJs
ZS1jZWxsIHwgdGFibGUtY2FwdGlvbiB8IC13ZWJraXQtYm94IHwgLXdlYmtpdC1pbmxpbmUtYm94
IHwgbm9uZQogICAgICAgICAvLyBmbGV4IHwgaW5saW5lLWZsZXggfCAtd2Via2l0LWZsZXggfCAt
d2Via2l0LWlubGluZS1mbGV4IHwgZ3JpZCB8IGlubGluZS1ncmlkCiAgICAgICAgIHJldHVybiAo
dmFsdWVJRCA+PSBDU1NWYWx1ZUlubGluZSAmJiB2YWx1ZUlEIDw9IENTU1ZhbHVlQ29udGVudHMp
IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lCi0gICAgICAgICAgICB8fCAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgJiYg
KHZhbHVlSUQgPT0gQ1NTVmFsdWVHcmlkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVJbmxpbmVHcmlk
KSkKLSAgICAgICAgOworICAgICAgICAgICAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUdyaWQgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZUlubGluZUdyaWQ7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eURvbWlu
YW50QmFzZWxpbmU6CiAgICAgICAgIC8vIGF1dG8gfCB1c2Utc2NyaXB0IHwgbm8tY2hhbmdlIHwg
cmVzZXQtc2l6ZSB8IGlkZW9ncmFwaGljIHwKICAgICAgICAgLy8gYWxwaGFiZXRpYyB8IGhhbmdp
bmcgfCBtYXRoZW1hdGljYWwgfCBjZW50cmFsIHwgbWlkZGxlIHwKQEAgLTcwNywyNCArNzA2LDEy
IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhzOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFs
dWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkCiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENT
U1ZhbHVlSG9yaXpvbnRhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlVmVydGljYWwgfHwgdmFsdWVJ
RCA9PSBDU1NWYWx1ZUF1dG87CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENvbHVtblByb2dy
ZXNzaW9uOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlUmV2ZXJzZTsKLSAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25Db250ZW50
OgotICAgICAgICAvLyBGSVhNRTogUGVyIENTUyBhbGlnbm1lbnQsIHRoaXMgcHJvcGVydHkgc2hv
dWxkIGFjY2VwdCBhbiBvcHRpb25hbCA8b3ZlcmZsb3ctcG9zaXRpb24+LiBXZSBzaG91bGQgc2hh
cmUgdGhpcyBwYXJzaW5nIGNvZGUgd2l0aCAnanVzdGlmeS1zZWxmJy4KLSAgICAgICAgcmV0dXJu
IHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4U3RhcnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUZsZXhF
bmQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNlbnRlciB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3Bh
Y2VCZXR3ZWVuIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTcGFjZUFyb3VuZCB8fCB2YWx1ZUlEID09
IENTU1ZhbHVlU3RyZXRjaDsKLSAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25JdGVtczoKLSAgICAg
ICAgLy8gRklYTUU6IFBlciBDU1MgYWxpZ25tZW50LCB0aGlzIHByb3BlcnR5IHNob3VsZCBhY2Nl
cHQgdGhlIHNhbWUgYXJndW1lbnRzIGFzICdqdXN0aWZ5LXNlbGYnIHNvIHdlIHNob3VsZCBzaGFy
ZSBpdHMgcGFyc2luZyBjb2RlLgotICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUZs
ZXhTdGFydCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlRmxleEVuZCB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlQ2VudGVyIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVCYXNlbGluZSB8fCB2YWx1ZUlEID09IENT
U1ZhbHVlU3RyZXRjaDsKLSAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25TZWxmOgotICAgICAgICAv
LyBGSVhNRTogUGVyIENTUyBhbGlnbm1lbnQsIHRoaXMgcHJvcGVydHkgc2hvdWxkIGFjY2VwdCB0
aGUgc2FtZSBhcmd1bWVudHMgYXMgJ2p1c3RpZnktc2VsZicgc28gd2Ugc2hvdWxkIHNoYXJlIGl0
cyBwYXJzaW5nIGNvZGUuCi0gICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlRmxleFN0YXJ0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4
RW5kIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDZW50ZXIgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJh
c2VsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTdHJldGNoOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlGbGV4RGlyZWN0aW9uOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZVJvdyB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlUm93UmV2ZXJzZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQ29s
dW1uIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW5SZXZlcnNlOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlGbGV4V3JhcDoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3dyYXAg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdyYXAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdyYXBSZXZl
cnNlOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRIeXBoZW5zOgogICAgICAgICByZXR1cm4g
dmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZU1hbnVhbDsKLSAgICBjYXNlIENTU1Byb3BlcnR5SnVzdGlmeUNvbnRl
bnQ6Ci0gICAgICAgIC8vIEZJWE1FOiBQZXIgQ1NTIGFsaWdubWVudCwgdGhpcyBwcm9wZXJ0eSBz
aG91bGQgYWNjZXB0IGFuIG9wdGlvbmFsIDxvdmVyZmxvdy1wb3NpdGlvbj4uIFdlIHNob3VsZCBz
aGFyZSB0aGlzIHBhcnNpbmcgY29kZSB3aXRoICdqdXN0aWZ5LXNlbGYnLgotICAgICAgICByZXR1
cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUZsZXhTdGFydCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlRmxl
eEVuZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQ2VudGVyIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVT
cGFjZUJldHdlZW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNwYWNlQXJvdW5kOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRGb250S2VybmluZzoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0g
Q1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBD
U1NWYWx1ZU5vbmU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmc6CkBA
IC05NzYsMTEgKzk2Myw2IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9w
ZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9u
dE9wdGljYWxTaXppbmc6CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBD
U1NQcm9wZXJ0eUp1c3RpZnlDb250ZW50OgotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnbkNvbnRl
bnQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduSXRlbXM6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eUFsaWduU2VsZjoKLSAgICAgICAgcmV0dXJuICFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsKICAgICBkZWZhdWx0OgogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlck1vZGUuaAppbmRleCBlMTI1OGI5YTc3OGVhNmJjMzViMmMyNDE3MDFmZDk4YTg3MjY0MjQ2
Li4wNTcwMGZmYWZiMzE3ODJhNTMwMDBlYTAwYzQwM2U1ODYyNWFkODc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlck1vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlck1vZGUuaApAQCAtOTYsNyArOTYsNiBAQCBwdWJsaWM6
CiAgICAgU3RyaW5nIGNoYXJzZXQ7CiAgICAgQ1NTUGFyc2VyTW9kZSBtb2RlIHsgSFRNTFN0YW5k
YXJkTW9kZSB9OwogICAgIGJvb2wgaXNIVE1MRG9jdW1lbnQgeyBmYWxzZSB9OwotICAgIGJvb2wg
Y3NzR3JpZExheW91dEVuYWJsZWQgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJ
TkcpCiAgICAgYm9vbCB0ZXh0QXV0b3NpemluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCkBA
IC0xMzUsNyArMTM0LDYgQEAgc3RydWN0IENTU1BhcnNlckNvbnRleHRIYXNoIHsKICAgICAgICAg
ICAgIGhhc2ggXj0gU3RyaW5nSGFzaDo6aGFzaChrZXkuY2hhcnNldCk7CiAgICAgICAgIHVuc2ln
bmVkIGJpdHMgPSBrZXkuaXNIVE1MRG9jdW1lbnQgICAgICAgICAgICAgICAgICA8PCAwCiAgICAg
ICAgICAgICAmIGtleS5pc0hUTUxEb2N1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCAxCi0gICAgICAgICAgICAmIGtleS5jc3NHcmlkTGF5b3V0RW5hYmxlZCAgICAgICAgICAgICAg
ICAgICAgICA8PCAyCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICAgICAgICAgICYg
a2V5LnRleHRBdXRvc2l6aW5nRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDMKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApp
bmRleCAwOTEwZjBkMmM3OTEwYjBmMjBjNTE4OGI2OTI2YTU2MTBjZmU2MTU1Li5iZTVjZDdhNzhh
ZmIzZTM1MjNmNTk5NGU3MDZiOWFmM2EwYjQ4NTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtNDI4OCw0MyArNDI4OCwyNyBAQCBS
ZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXNrUmVw
ZWF0WToKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWdu
SXRlbXM6Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb25zdW1lQWxpZ25JdGVt
cyhtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5SnVzdGlmeVNlbGY6CiAgICAgICAgIHJl
dHVybiBjb25zdW1lU2VsZlBvc2l0aW9uT3ZlcmZsb3dQb3NpdGlvbihtX3JhbmdlLCBpc1NlbGZQ
b3NpdGlvbk9yTGVmdE9yUmlnaHRLZXl3b3JkKTsKICAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25T
ZWxmOgotICAgICAgICBpZiAoIW1fY29udGV4dC5jc3NHcmlkTGF5b3V0RW5hYmxlZCkKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29uc3VtZVNlbGZQb3NpdGlv
bk92ZXJmbG93UG9zaXRpb24obV9yYW5nZSwgaXNTZWxmUG9zaXRpb25LZXl3b3JkKTsKICAgICBj
YXNlIENTU1Byb3BlcnR5SnVzdGlmeUl0ZW1zOgotICAgICAgICBpZiAoIW1fY29udGV4dC5jc3NH
cmlkTGF5b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBy
ZXR1cm4gY29uc3VtZUp1c3RpZnlJdGVtcyhtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
R3JpZENvbHVtbkVuZDoKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZENvbHVtblN0YXJ0OgogICAg
IGNhc2UgQ1NTUHJvcGVydHlHcmlkUm93RW5kOgogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkUm93
U3RhcnQ6Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb25zdW1lR3JpZExpbmUo
bV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRBdXRvQ29sdW1uczoKICAgICBjYXNl
IENTU1Byb3BlcnR5R3JpZEF1dG9Sb3dzOgotICAgICAgICBpZiAoIW1fY29udGV4dC5jc3NHcmlk
TGF5b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1
cm4gY29uc3VtZUdyaWRUcmFja0xpc3QobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUsIEdyaWRBdXRv
KTsKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZFRlbXBsYXRlQ29sdW1uczoKICAgICBjYXNlIENT
U1Byb3BlcnR5R3JpZFRlbXBsYXRlUm93czoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQuY3NzR3Jp
ZExheW91dEVuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0
dXJuIGNvbnN1bWVHcmlkVGVtcGxhdGVzUm93c09yQ29sdW1ucyhtX3JhbmdlLCBtX2NvbnRleHQu
bW9kZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRUZW1wbGF0ZUFyZWFzOgotICAgICAgICBp
ZiAoIW1fY29udGV4dC5jc3NHcmlkTGF5b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICByZXR1cm4gY29uc3VtZUdyaWRUZW1wbGF0ZUFyZWFzKG1fcmFuZ2Up
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkQXV0b0Zsb3c6Ci0gICAgICAgIGlmICghbV9jb250
ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgICAgIHJldHVybiBjb25zdW1lR3JpZEF1dG9GbG93KG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRMaW5lR3JpZDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVMaW5lR3JpZCht
X3JhbmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY4NjBiNmY5MWVmMTliNDFkYTcy
NzFkMzIzMDU0ZTMxZjMxOGU0MjUuLjMwZDhmZjVjYmM3ZDRhZDMyNmZhNWZiZjdhN2FkOTNjNzQ1
N2Q3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE3OCwxMSArMTE3OCw2IEBAIEN1
c3RvbUVsZW1lbnROYW1lVmFsaWRhdGlvblN0YXR1cyBEb2N1bWVudDo6dmFsaWRhdGVDdXN0b21F
bGVtZW50TmFtZShjb25zdCBBdG9tCiAgICAgcmV0dXJuIEN1c3RvbUVsZW1lbnROYW1lVmFsaWRh
dGlvblN0YXR1czo6VmFsaWQ7CiB9CiAKLWJvb2wgRG9jdW1lbnQ6OmlzQ1NTR3JpZExheW91dEVu
YWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsKLX0KLQogRXhjZXB0aW9uT3I8
UmVmPEVsZW1lbnQ+PiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUpCiB7CiAgICAgYXV0
byBwYXJzZVJlc3VsdCA9IHBhcnNlUXVhbGlmaWVkTmFtZShuYW1lc3BhY2VVUkksIHF1YWxpZmll
ZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYTAwMTQ5OTgyYzkyYzA1ZjExYzlkNTdl
MGU2ZTc2MzkxOGY2MzFkLi4wOTg3OWM3ZWJhMTQ1ODY1YjU0OGNjYzRjNTgzOGJmMDc5Nzk1ODdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDIzLDggKzQyMyw2IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBDdXN0b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXMgdmFsaWRhdGVDdXN0b21F
bGVtZW50TmFtZShjb25zdCBBdG9taWNTdHJpbmcmKTsKIAotICAgIGJvb2wgaXNDU1NHcmlkTGF5
b3V0RW5hYmxlZCgpIGNvbnN0OwotCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFJhbmdlPiBj
YXJldFJhbmdlRnJvbVBvaW50KGludCB4LCBpbnQgeSk7CiAgICAgUmVmUHRyPFJhbmdlPiBjYXJl
dFJhbmdlRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50JiBjbGllbnRQb2ludCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggMGM1YmU2NDcx
NzY3NDE3ZWNjNjczODhmZjM0OWI3MzE3NTIxZmRmMy4uZTdmNmY3NmJjYzYwN2Y5ZmI0Yjk2Yjg4
ZGU3NDgyZGNiYmU0N2YyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKQEAgLTIwMiw5ICsyMDIsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBkb3dubG9h
ZEF0dHJpYnV0ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRG93bmxvYWRBdHRyaWJ1dGVF
bmFibGVkOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoYm9v
bCBpc0VuYWJsZWQpIHsgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCA9IGlzRW5hYmxlZDsgfQotICAg
IGJvb2wgaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3NzR3JpZExh
eW91dEVuYWJsZWQ7IH0KLQogI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCiAgICAg
dm9pZCBzZXRJbnRlcnNlY3Rpb25PYnNlcnZlckVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9p
bnRlcnNlY3Rpb25PYnNlcnZlckVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIGludGVy
c2VjdGlvbk9ic2VydmVyRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJFbmFibGVkOyB9CkBAIC0zNTMsOCArMzUwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aXNEb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKLSAgICBib29s
IG1fY3NzR3JpZExheW91dEVuYWJsZWQgeyB0cnVlIH07Ci0KICNpZiBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQogICAgIGJvb2wgbV9lbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQgeyBmYWxzZSB9Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAppbmRleCBlYTlkMjM2YmNlZmJkNWRiYzliNmUzMTdkM2U1MzBhNDJmMTUwMGNiLi5lZmI5YTI3
OGQzNzhjNDllOTQwMWVkMTVmNTI3ZjgyMzYwNjEyOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTEzNjksMTAgKzEzNjksOCBAQCBz
dGF0aWMgTGF5b3V0VW5pdCBhbGlnbm1lbnRPZmZzZXQoTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVl
U3BhY2UsIEl0ZW1Qb3NpdGlvbiBwbwogICAgIGNhc2UgSXRlbVBvc2l0aW9uRW5kOgogICAgIGNh
c2UgSXRlbVBvc2l0aW9uTGVmdDoKICAgICBjYXNlIEl0ZW1Qb3NpdGlvblJpZ2h0OgotICAgICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZXNlLiBUaGUgZXh0ZW5kZWQgZ3JhbW1hcgotICAgICAg
ICAvLyBpcyBub3QgZW5hYmxlZCBieSBkZWZhdWx0IHNvIHdlIHNob3VsZG4ndCBoaXQgdGhpcyBj
b2RlcGF0aC4KLSAgICAgICAgLy8gVGhlIG5ldyBncmFtbWFyIGlzIG9ubHkgdXNlZCB3aGVuIEdy
aWQgTGF5b3V0IGZlYXR1cmUgaXMgZW5hYmxlZC4KLSAgICAgICAgQVNTRVJUKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsK
KyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGUgZXh0ZW5kZWQgZ3JhbW1hciwgZW5hYmxl
ZCB3aGVuIHRoZSBHcmlkIExheW91dAorICAgICAgICAvLyBmZWF0dXJlIHdhcyBlbmFibGVkIGJ5
IGRlZmF1bHQuCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDdmYmE4OGNk
ODk3NmJjNmEyNGM5OGM2NjNjYzJiMDQ1YjM2NjZjMTUuLmNhMWE4NDEzMDFjZDc5Nzc4YTNlOTI2
MzcwYjQyZDY5YTYzOTZhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcApAQCAtMjM1LDExICsyMzUsNiBAQCBSZW5kZXJTdHlsZSBSZW5kZXJT
dHlsZTo6cmVwbGFjZShSZW5kZXJTdHlsZSYmIG5ld1N0eWxlKQogICAgIHJldHVybiBSZW5kZXJT
dHlsZSB7ICp0aGlzLCBXVEZNb3ZlKG5ld1N0eWxlKSB9OwogfQogCi1ib29sIFJlbmRlclN0eWxl
Ojppc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCk7Ci19Ci0K
IHN0YXRpYyBTdHlsZVNlbGZBbGlnbm1lbnREYXRhIHJlc29sdmVkU2VsZkFsaWdubWVudChjb25z
dCBTdHlsZVNlbGZBbGlnbm1lbnREYXRhJiB2YWx1ZSwgSXRlbVBvc2l0aW9uIG5vcm1hbFZhbHVl
QmVoYXZpb3IpCiB7CiAgICAgaWYgKHZhbHVlLnBvc2l0aW9uKCkgPT0gSXRlbVBvc2l0aW9uTGVn
YWN5IHx8IHZhbHVlLnBvc2l0aW9uKCkgPT0gSXRlbVBvc2l0aW9uTm9ybWFsIHx8IHZhbHVlLnBv
c2l0aW9uKCkgPT0gSXRlbVBvc2l0aW9uQXV0bykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZjlkOGM2MGZkNTNhNTJlNzkxODg4MGI3YTlhZjcw
ODc3ZjNiYzY4OS4uZmI0MzU0ZjhjNmI4MzQxYjIwMWVlOGUyZjk5NWI2NGJlOTVmYjIyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTE0OTUs
NyArMTQ5NSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgaW50IGluaXRpYWxPcmRlcigpIHsgcmV0
dXJuIDA7IH0KICAgICBzdGF0aWMgU3R5bGVTZWxmQWxpZ25tZW50RGF0YSBpbml0aWFsSnVzdGlm
eUl0ZW1zKCkgeyByZXR1cm4gU3R5bGVTZWxmQWxpZ25tZW50RGF0YShJdGVtUG9zaXRpb25MZWdh
Y3ksIE92ZXJmbG93QWxpZ25tZW50RGVmYXVsdCk7IH0KICAgICBzdGF0aWMgU3R5bGVTZWxmQWxp
Z25tZW50RGF0YSBpbml0aWFsU2VsZkFsaWdubWVudCgpIHsgcmV0dXJuIFN0eWxlU2VsZkFsaWdu
bWVudERhdGEoSXRlbVBvc2l0aW9uQXV0bywgT3ZlcmZsb3dBbGlnbm1lbnREZWZhdWx0KTsgfQot
ICAgIHN0YXRpYyBTdHlsZVNlbGZBbGlnbm1lbnREYXRhIGluaXRpYWxEZWZhdWx0QWxpZ25tZW50
KCkgeyByZXR1cm4gU3R5bGVTZWxmQWxpZ25tZW50RGF0YShpc0NTU0dyaWRMYXlvdXRFbmFibGVk
KCkgPyBJdGVtUG9zaXRpb25Ob3JtYWwgOiBJdGVtUG9zaXRpb25TdHJldGNoLCBPdmVyZmxvd0Fs
aWdubWVudERlZmF1bHQpOyB9CisgICAgc3RhdGljIFN0eWxlU2VsZkFsaWdubWVudERhdGEgaW5p
dGlhbERlZmF1bHRBbGlnbm1lbnQoKSB7IHJldHVybiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhKEl0
ZW1Qb3NpdGlvbk5vcm1hbCwgT3ZlcmZsb3dBbGlnbm1lbnREZWZhdWx0KTsgfQogICAgIHN0YXRp
YyBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhIGluaXRpYWxDb250ZW50QWxpZ25tZW50KCkgeyBy
ZXR1cm4gU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YShDb250ZW50UG9zaXRpb25Ob3JtYWwsIENv
bnRlbnREaXN0cmlidXRpb25EZWZhdWx0LCBPdmVyZmxvd0FsaWdubWVudERlZmF1bHQpOyB9CiAg
ICAgc3RhdGljIEVGbGV4RGlyZWN0aW9uIGluaXRpYWxGbGV4RGlyZWN0aW9uKCkgeyByZXR1cm4g
Rmxvd1JvdzsgfQogICAgIHN0YXRpYyBFRmxleFdyYXAgaW5pdGlhbEZsZXhXcmFwKCkgeyByZXR1
cm4gRmxleE5vV3JhcDsgfQpAQCAtMTU3OSw4ICsxNTc5LDYgQEAgcHVibGljOgogICAgIHN0YXRp
YyBUZXh0U2l6ZUFkanVzdG1lbnQgaW5pdGlhbFRleHRTaXplQWRqdXN0KCkgeyByZXR1cm4gVGV4
dFNpemVBZGp1c3RtZW50KCk7IH0KICNlbmRpZgogCi0gICAgc3RhdGljIGJvb2wgaXNDU1NHcmlk
TGF5b3V0RW5hYmxlZCgpOwotCiAgICAgc3RhdGljIFdpbGxDaGFuZ2VEYXRhKiBpbml0aWFsV2ls
bENoYW5nZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBkOTJl
OTBkM2IzMDlmMTcyN2EzMGFhMjJjNzUxNWE5MzNlODFkOTgwLi5mNTU1YWI1MGE1ZTM5M2JhMjRi
ZGJmYjFhNjQ0NTQ0ZjBkNGJjZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAKQEAgLTEwNCw3ICsxMDQsNiBAQCBJbnRlcm5hbFNldHRpbmdzOjpCYWNr
dXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0VfSU5fV09SS0VSUykKICAgICAsIG1faW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pbmRleGVkREJXb3JrZXJzRW5hYmxlZCgp
KQogI2VuZGlmCi0gICAgLCBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKQogI2lmIEVO
QUJMRShXRUJHTDIpCiAgICAgLCBtX3dlYkdMMkVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS53ZWJHTDJFbmFibGVkKCkpCiAjZW5kaWYKQEAgLTIwNSw3ICsy
MDQsNiBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFNldHRpbmdz
JiBzZXR0aW5ncykKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQogICAg
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0SW5kZXhlZERCV29y
a2Vyc0VuYWJsZWQobV9pbmRleGVkREJXb3JrZXJzRW5hYmxlZCk7CiAjZW5kaWYKLSAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0dyaWRMYXlvdXRFbmFi
bGVkKG1fY3NzR3JpZExheW91dEVuYWJsZWQpOwogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJHTDJFbmFibGVkKG1f
d2ViR0wyRW5hYmxlZCk7CiAjZW5kaWYKQEAgLTc0MCwxMSArNzM4LDYgQEAgdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChib29sIGVuYWJsZWQpCiAjZW5k
aWYKIH0KIAotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChi
b29sIGVuYWJsZWQpCi17Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChlbmFibGVkKTsKLX0KLQogdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRXZWJHTDJFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBFTkFCTEUo
V0VCR0wyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA3
ZDc3ZmY1YTYyZDU4OTEzMGJiYjk2NGI0OGM0NWE5MmU2ZjliMGI4Li5mYmEzNjg2ZTMxYzA0NjVm
MGVmZGE3ZmQ0OGFhZTA2ZDYwODkzZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaApAQCAtMTE5LDcgKzExOSw2IEBAIHB1YmxpYzoKIAogICAgIC8vIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuCiAgICAgc3RhdGljIHZvaWQgc2V0SW5kZXhlZERCV29ya2Vyc0Vu
YWJsZWQoYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoYm9v
bCk7CiAgICAgc3RhdGljIHZvaWQgc2V0V2ViR0wyRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMg
dm9pZCBzZXRXZWJHUFVFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFdlYlZSRW5h
YmxlZChib29sKTsKQEAgLTIwMCw3ICsxOTksNiBAQCBwcml2YXRlOgogCiAgICAgICAgIC8vIFJ1
bnRpbWUgZW5hYmxlZCBzZXR0aW5ncy4KICAgICAgICAgYm9vbCBtX2luZGV4ZWREQldvcmtlcnNF
bmFibGVkOwotICAgICAgICBib29sIG1fY3NzR3JpZExheW91dEVuYWJsZWQ7CiAgICAgICAgIGJv
b2wgbV93ZWJHTDJFbmFibGVkOwogICAgICAgICBib29sIG1fd2ViR1BVRW5hYmxlZDsKICAgICAg
ICAgYm9vbCBtX3dlYlZSRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsCmluZGV4IGQwN2U2NmViNjk3ZWEyYTk5MTE5MWUzZTI1ZWRlZDY1NzE4YmYx
YjIuLmZkNmIzYTRlZWYwNzBlOGQ2M2E0OGMzMDUzZDEwOTJjMzBlYWQwNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtODgsNyArODgsNiBAQCBl
bnVtIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyAiQmxvY2siLCAiU3dhcCIsICJGYWlsdXJlIiB9
OwogCiAgICAgLy8gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KICAgICB2b2lkIHNldEluZGV4ZWRE
QldvcmtlcnNFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7Ci0gICAgdm9pZCBzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0V2ViR0wyRW5hYmxlZChi
b29sZWFuIGVuYWJsZWQpOwogICAgIHZvaWQgc2V0V2ViR1BVRW5hYmxlZChib29sZWFuIGVuYWJs
ZWQpOwogICAgIHZvaWQgc2V0V2ViVlJFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBhMjQwYTg4ZTcwYmFkNzhhN2Qz
OTE0ODNhYTYyZTMxYjNmYzI1OTUzLi42YzAxYjg5Y2UxYzBmYThiYzhmMWJmMzdlMjAwN2RmZWQ3
NTI0N2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55
YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTY4
NiwxNCArNjg2LDYgQEAgU2hvdWxkU3VwcHJlc3NUZXh0SW5wdXRGcm9tRWRpdGluZ0R1cmluZ1By
b3Zpc2lvbmFsTmF2aWdhdGlvbjoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNl
CiAKLUNTU0dyaWRMYXlvdXRFbmFibGVkOgotICB0eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZTog
dHJ1ZQotICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBHcmlkIgotICBodW1hblJlYWRhYmxlRGVz
Y3JpcHRpb246ICJDU1MgR3JpZCBMYXlvdXQgTW9kdWxlIHN1cHBvcnQiCi0gIGJpbmRpbmc6IFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMKLSAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMKLQogR2FtZXBhZHNFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTog
dHJ1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggYWEyMzA4YTlhYTdlYTcyYjI5YmZkZGRiMzUx
ZjYwNDlkZjc5NGJkYy4uYmQ2MDk3MDZjMDg1NDAzODBhM2Q0NTc4ZjhjZDc3MWE4NGY2Mjk5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yMDUsOSArMjA1LDYgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RSdW5uZXIoV2ViUGFnZUdyb3VwUHJv
eHkqIHBhZ2UKICAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRXcml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoZW5hYmxlZCk7CiAjZW5kaWYKIAotICAgIGlm
IChwcmVmZXJlbmNlID09ICJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIpCi0gICAgICAgIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91dEVu
YWJsZWQoZW5hYmxlZCk7Ci0KICAgICBpZiAocHJlZmVyZW5jZSA9PSAiV2ViS2l0SW50ZXJhY3Rp
dmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQiKQogICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnNldEludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkKGVu
YWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCA2NGQ2NzJhOGI1NzQwNGRhNjFiZWVm
Yzg2MjNmZGUxNWExOGI0NGNiLi4zZjQ4YWIwNjM2YWUzZWIxNDQ4NTBhNTY5OGU4NzYwMDIxYjdh
Zjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE3OCw3ICsxNzgsNiBAQAogI2RlZmluZSBX
ZWJLaXRSZWFkYWJsZUJ5dGVTdHJlYW1BUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFJl
YWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdERvd25sb2FkQXR0cmli
dXRlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQi
CiAjZGVmaW5lIFdlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCIKLSNkZWZpbmUgV2ViS2l0Q1NTR3JpZExheW91dEVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxW
aWV3cG9ydEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVy
bk1lZGlhQ29udHJvbHNFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggOTVkZWU5YzU4YjA2OTY1M2Q3ODQwZjc5MzUw
YTU1OGQ2MzgwYjUwZC4uZjE0NWNmOGYwNTdmYzExMTNkNzRlYzEyZjhiYmE5M2UzNzU2NzgwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCkBAIC02MzksNyArNjM5LDYgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFBy
ZWZlcmVuY2VLZXksCiAjZW5kaWYKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5P
XSwgV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXksCi0gICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZFBy
ZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktp
dFdlYkFuaW1hdGlvbnNFbmFibGVkUHJlZmVyZW5jZUtleSwKIAogI2lmIFBMQVRGT1JNKElPUykK
QEAgLTMwNTYsMTYgKzMwNTUsNiBAQCAtIChCT09MKWRpcmVjdG9yeVVwbG9hZEVuYWJsZWQKICAg
ICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFi
bGVkUHJlZmVyZW5jZUtleV07CiB9CiAKLS0gKEJPT0wpaXNDU1NHcmlkTGF5b3V0RW5hYmxlZAot
ewotICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdENTU0dyaWRMYXlvdXRF
bmFibGVkUHJlZmVyZW5jZUtleV07Ci19Ci0KLS0gKHZvaWQpc2V0Q1NTR3JpZExheW91dEVuYWJs
ZWQ6KEJPT0wpZmxhZwotewotICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2Vi
S2l0Q1NTR3JpZExheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKLX0KLQogLSAoQk9PTCl2aXN1
YWxWaWV3cG9ydEVuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpX
ZWJLaXRWaXN1YWxWaWV3cG9ydEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmlu
ZGV4IDRmZmZjNTk3MTAzYjA0YjZlZTU2YTdkY2NiOGE1YzBhMGNjMTFmOTIuLjc3ZjY5NTBhMmMx
YjE4ZTViZDc4OThjNjY5NGUwOTM3YTczYjliMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNTU4LDkg
KzU1OCw2IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdl
ZEludGVybmFsTm90aWZpY2F0aW9uOwogLSAodm9pZClzZXREaXJlY3RvcnlVcGxvYWRFbmFibGVk
OihCT09MKWZsYWc7CiAtIChCT09MKWRpcmVjdG9yeVVwbG9hZEVuYWJsZWQ7CiAKLS0gKHZvaWQp
c2V0Q1NTR3JpZExheW91dEVuYWJsZWQ6KEJPT0wpZmxhZzsKLS0gKEJPT0wpaXNDU1NHcmlkTGF5
b3V0RW5hYmxlZDsKLQogLSAodm9pZClzZXRXZWJBbmltYXRpb25zRW5hYmxlZDooQk9PTClmbGFn
OwogLSAoQk9PTCl3ZWJBbmltYXRpb25zRW5hYmxlZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGVjMjZiMmI5NDU2YzI2Yjc2Y2MxNmZkYjI4NDcw
NDlkNmJlNDZmNDguLmMyODg3M2YxYTNiNDhlYzllYzUxZTE1ODhhNTcyZjM2ZmM5ZDc4ZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTMwMjQsOCAr
MzAyNCw2IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilw
cmVmZXJlbmNlcwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkKFtwcmVmZXJlbmNlcyBkb3dubG9hZEF0dHJpYnV0
ZUVuYWJsZWRdKTsKICNlbmRpZgogCi0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChbcHJlZmVyZW5jZXMgaXNDU1NHcmlk
TGF5b3V0RW5hYmxlZF0pOwotCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zZXRXZWJBbmltYXRpb25zRW5hYmxlZChbcHJlZmVyZW5jZXMgd2ViQW5pbWF0aW9u
c0VuYWJsZWRdKTsKIAogI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05fT0JTRVJWRVIpCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggMmVkMzhkNmY4NjcxNmQ0
MzBiZDhiYzM0N2E1N2MyMGU3NmRlYmI5Ni4uMTU1ZmY1ZGQ4MzM5NjAxMmJlMTIyMzdkMDkxNDRl
NTRiYzlkOGM5MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQpAQCAtODQwLDcgKzg0MCw2IEBAIHN0YXRpYyBOU1N0cmluZyAqbGlicmFyeVBhdGhGb3JEdW1w
UmVuZGVyVHJlZSgpCiAKIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdl
YlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKIHsKLSAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTR3Jp
ZExheW91dEVuYWJsZWQ6WUVTXTsKICAgICAvLyBGSVhNRTogU3ByaW5nVGltaW5nRnVuY3Rpb24K
ICAgICBbcHJlZmVyZW5jZXMgc2V0R2FtZXBhZHNFbmFibGVkOllFU107CiAgICAgW3ByZWZlcmVu
Y2VzIHNldExpbmtQcmVsb2FkRW5hYmxlZDpZRVNdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335352</attachid>
            <date>2018-03-08 15:07:22 -0800</date>
            <delta_ts>2018-03-08 16:16:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183484-20180309000721.patch</filename>
            <type>text/plain</type>
            <size>33575</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYxZjE4OTA3NGFlOGQ1
NDg3NWNkNDZlNDAyMGY1ODA5MzYwODYzZS4uM2YzYjAxZTY5MGMxOTE5YTQyMGVjN2E0ODNhMTFj
ZmM4ZDJjZDgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTAzLTA4ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBH
cmlkTGF5b3V0IHJ1bnRpbWUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzNDg0CisKKyAgICAgICAgVGhlIEdyaWQgTGF5b3V0IGZlYXR1cmUg
aGFzIGJlZW4gZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhbG1vc3QgYQorICAgICAgICB5ZWFyLCBz
byBJIHRoaW5rIGl0J3MgdGltZSB0byByZW1vdmUgdGhlIHJ1bnRpbWUgZmxhZyBhbmQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHJ1biB3aGVuIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
c2luY2UgdGhlcmUgaXMgbm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVl
Rm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVy
dHlpblN0eWxlKToKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRDb250ZW50QWxpZ25t
ZW50RGF0YSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQ
YXRocy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRL
ZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJGYXN0
UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5SUQpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFy
c2VyTW9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyQ29udGV4dEhhc2g6Omhhc2gp
OgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICog
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFsaWdubWVudE9mZnNldCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
Ojppbml0aWFsRGVmYXVsdEFsaWdubWVudCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6
QmFja3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVz
dG9yZVRvKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDE4LTAzLTA4ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgbGlua2luZyBBcHBs
aWNhdGlvblNlcnZpY2VzIGRpcmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmMWI1ZjAyMzk1MWFlZjYxZDkw
ZTIxNzE3ZDRiNzM3ZGU2ZGZhNjEuLmQ0YzNlMTRmYjhmYTk5Y2JiYzE0NDU2OGMwMDMyZDMwMTc0
OGE3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDMtMDggIEphdmllciBGZXJu
YW5kZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEdyaWRMYXlv
dXQgcnVudGltZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0ODQKKworICAgICAgICBUaGUgR3JpZCBMYXlvdXQgZmVhdHVyZSBoYXMgYmVl
biBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGFsbW9zdCBhCisgICAgICAgIHllYXIsIHNvIEkgdGhp
bmsgaXQncyB0aW1lIHRvIHJlbW92ZSB0aGUgcnVudGltZSBmbGFnIGFuZCB0aGUKKyAgICAgICAg
Y29kZXBhdGggcnVuIHdoZW4gdGhlIGZlYXR1cmUgaXMgZGlzYWJsZWQuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFBy
ZWZlcmVuY2VGb3JUZXN0UnVubmVyKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25T
ZXJ2aWNlcyBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDY0NjkxZjAw
ZjBmZjQ4Mzc3YTE4Y2I3ZDZjM2Q5OTY0MmVhYjcyNmUuLjg4NTJkY2MxZTM0ZTk5N2U5ZTdjMGFi
MWE3MTNiNmQ3MTIyMTNjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxOC0wMy0wOCAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBSZW1vdmUgR3JpZExheW91dCBydW50aW1lIGZsYWcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQ4NAorCisgICAgICAg
IFRoZSBHcmlkIExheW91dCBmZWF0dXJlIGhhcyBiZWVuIGVuYWJsZWQgYnkgZGVmYXVsdCBmb3Ig
YWxtb3N0IGEKKyAgICAgICAgeWVhciwgc28gSSB0aGluayBpdCdzIHRpbWUgdG8gcmVtb3ZlIHRo
ZSBydW50aW1lIGZsYWcgYW5kIHRoZQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJl
bmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
X3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOC0wMy0wOCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtpbmcgQXBwbGljYXRpb25T
ZXJ2aWNlcyBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAyMDllMjlhYTc0MDk0NmIzODA4MDliZTVlMGEzYTA5
YzNiZWU3OTIzLi4xOGZmOTE4YmI2YWNmNDkzMGZlYjM4MWE0NTI5Njc4MzNjN2VhNzMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cApAQCAtMjUzMyw3ICsyNTMzLDcgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9y
SXRlbVBvc2l0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KGNvbnN0IFN0eWxlU2UKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gdmFsdWVGb3JDb250ZW50
UG9zaXRpb25BbmREaXN0cmlidXRpb25XaXRoT3ZlcmZsb3dBbGlnbm1lbnQoY29uc3QgU3R5bGVD
b250ZW50QWxpZ25tZW50RGF0YSYgZGF0YSwgQ1NTVmFsdWVJRCBub3JtYWxCZWhhdmlvclZhbHVl
SUQpCitzdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gdmFsdWVGb3JDb250ZW50UG9zaXRpb25BbmRE
aXN0cmlidXRpb25XaXRoT3ZlcmZsb3dBbGlnbm1lbnQoY29uc3QgU3R5bGVDb250ZW50QWxpZ25t
ZW50RGF0YSYgZGF0YSkKIHsKICAgICBhdXRvJiBjc3NWYWx1ZVBvb2wgPSBDU1NWYWx1ZVBvb2w6
OnNpbmdsZXRvbigpOwogICAgIGF1dG8gcmVzdWx0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFj
ZVNlcGFyYXRlZCgpOwpAQCAtMjU0MSwxNSArMjU0MSwxMiBAQCBzdGF0aWMgUmVmPENTU1ZhbHVl
TGlzdD4gdmFsdWVGb3JDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25XaXRoT3ZlcmZsb3dB
bGlnbgogICAgIGlmIChkYXRhLmRpc3RyaWJ1dGlvbigpICE9IENvbnRlbnREaXN0cmlidXRpb25E
ZWZhdWx0KQogICAgICAgICByZXN1bHQtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUo
ZGF0YS5kaXN0cmlidXRpb24oKSkpOwogCi0gICAgYm9vbCBncmlkRW5hYmxlZCA9IGZhbHNlOwot
ICAgIGdyaWRFbmFibGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCk7Ci0KICAgICAvLyBIYW5kbGUgY29udGVudC1wb3Np
dGlvbiB2YWx1ZXMgKGVpdGhlciBhcyBmYWxsYmFjayBvciBhY3R1YWwgdmFsdWUpCiAgICAgc3dp
dGNoIChkYXRhLnBvc2l0aW9uKCkpIHsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbk5vcm1hbDoK
ICAgICAgICAgLy8gSGFuZGxlICdub3JtYWwnIHZhbHVlLCBub3QgdmFsaWQgYXMgY29udGVudC1k
aXN0cmlidXRpb24gZmFsbGJhY2suCiAgICAgICAgIGlmIChkYXRhLmRpc3RyaWJ1dGlvbigpID09
IENvbnRlbnREaXN0cmlidXRpb25EZWZhdWx0KQotICAgICAgICAgICAgcmVzdWx0LT5hcHBlbmQo
Y3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShncmlkRW5hYmxlZCA/IENTU1ZhbHVl
Tm9ybWFsIDogbm9ybWFsQmVoYXZpb3JWYWx1ZUlEKSk7CisgICAgICAgICAgICByZXN1bHQtPmFw
cGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9ybWFsKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFBvc2l0aW9uTGFzdEJhc2VsaW5lOgog
ICAgICAgICByZXN1bHQtPmFwcGVuZChjc3NWYWx1ZVBvb2wuY3JlYXRlSWRlbnRpZmllclZhbHVl
KENTU1ZhbHVlTGFzdCkpOwpAQCAtMjk4NCw3ICsyOTgxLDcgQEAgUmVmUHRyPENTU1ZhbHVlPiBD
b21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5aW5TdHlsZShjb25zdCBSZW5k
ZXJTdHkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUVtcHR5Q2VsbHM6CiAgICAgICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLmVtcHR5Q2VsbHMoKSk7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnbkNvbnRlbnQ6Ci0gICAgICAgICAgICByZXR1cm4gdmFs
dWVGb3JDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25XaXRoT3ZlcmZsb3dBbGlnbm1lbnQo
c3R5bGUuYWxpZ25Db250ZW50KCksIENTU1ZhbHVlU3RyZXRjaCk7CisgICAgICAgICAgICByZXR1
cm4gdmFsdWVGb3JDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25XaXRoT3ZlcmZsb3dBbGln
bm1lbnQoc3R5bGUuYWxpZ25Db250ZW50KCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QWxp
Z25JdGVtczoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckl0ZW1Qb3NpdGlvbldpdGhPdmVy
Zmxvd0FsaWdubWVudChzdHlsZS5hbGlnbkl0ZW1zKCkpOwogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5QWxpZ25TZWxmOgpAQCAtMzAwNCw3ICszMDAxLDcgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5aW5TdHlsZShjb25zdCBSZW5kZXJT
dHkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZsZXhXcmFwOgogICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5mbGV4V3JhcCgpKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUp1c3RpZnlDb250ZW50OgotICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9y
Q29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KHN0eWxl
Lmp1c3RpZnlDb250ZW50KCksIENTU1ZhbHVlRmxleFN0YXJ0KTsKKyAgICAgICAgICAgIHJldHVy
biB2YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxvd0FsaWdu
bWVudChzdHlsZS5qdXN0aWZ5Q29udGVudCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUp1
c3RpZnlJdGVtczoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckl0ZW1Qb3NpdGlvbldpdGhP
dmVyZmxvd0FsaWdubWVudChzdHlsZS5qdXN0aWZ5SXRlbXMoKSk7CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlKdXN0aWZ5U2VsZjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252
ZXJ0ZXIuaAppbmRleCA5ZDYwYjEwMTEwMDE3YWQwOTRlY2ZlNTAyZTU5Y2M3MjgyYWI1Y2FjLi42
YzM3YzlmZDMzZjcyZmNhZGQwNGE1MzAyZmZiYzA5ZWRjZThkMzBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC0xMzczLDM1ICsxMzczLDE1IEBAIGlu
bGluZSBTdHlsZVNlbGZBbGlnbm1lbnREYXRhIFN0eWxlQnVpbGRlckNvbnZlcnRlcjo6Y29udmVy
dFNlbGZPckRlZmF1bHRBbGlnbm1lCiBpbmxpbmUgU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YSBT
dHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRDb250ZW50QWxpZ25tZW50RGF0YShTdHlsZVJl
c29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQogewogICAgIFN0eWxlQ29udGVudEFsaWdu
bWVudERhdGEgYWxpZ25tZW50RGF0YSA9IFJlbmRlclN0eWxlOjppbml0aWFsQ29udGVudEFsaWdu
bWVudCgpOwotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSkgewotICAgICAgICBpZiAoIWlzPENTU0NvbnRlbnRE
aXN0cmlidXRpb25WYWx1ZT4odmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGFsaWdubWVudERh
dGE7Ci0gICAgICAgIGF1dG8mIGNvbnRlbnRWYWx1ZSA9IGRvd25jYXN0PENTU0NvbnRlbnREaXN0
cmlidXRpb25WYWx1ZT4odmFsdWUpOwotICAgICAgICBpZiAoY29udGVudFZhbHVlLmRpc3RyaWJ1
dGlvbigpLT52YWx1ZUlEKCkgIT0gQ1NTVmFsdWVJbnZhbGlkKQotICAgICAgICAgICAgYWxpZ25t
ZW50RGF0YS5zZXREaXN0cmlidXRpb24oY29udGVudFZhbHVlLmRpc3RyaWJ1dGlvbigpLmdldCgp
KTsKLSAgICAgICAgaWYgKGNvbnRlbnRWYWx1ZS5wb3NpdGlvbigpLT52YWx1ZUlEKCkgIT0gQ1NT
VmFsdWVJbnZhbGlkKQotICAgICAgICAgICAgYWxpZ25tZW50RGF0YS5zZXRQb3NpdGlvbihjb250
ZW50VmFsdWUucG9zaXRpb24oKS5nZXQoKSk7Ci0gICAgICAgIGlmIChjb250ZW50VmFsdWUub3Zl
cmZsb3coKS0+dmFsdWVJRCgpICE9IENTU1ZhbHVlSW52YWxpZCkKLSAgICAgICAgICAgIGFsaWdu
bWVudERhdGEuc2V0T3ZlcmZsb3coY29udGVudFZhbHVlLm92ZXJmbG93KCkuZ2V0KCkpOworICAg
IGlmICghaXM8Q1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlPih2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiBhbGlnbm1lbnREYXRhOwotICAgIH0KLSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVl
Pih2YWx1ZSkpCi0gICAgICAgIHJldHVybiBhbGlnbm1lbnREYXRhOwotICAgIGF1dG8mIHByaW1p
dGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKLSAgICBzd2l0
Y2ggKHByaW1pdGl2ZVZhbHVlLnZhbHVlSUQoKSkgewotICAgIGNhc2UgQ1NTVmFsdWVTdHJldGNo
OgotICAgIGNhc2UgQ1NTVmFsdWVTcGFjZUJldHdlZW46Ci0gICAgY2FzZSBDU1NWYWx1ZVNwYWNl
QXJvdW5kOgotICAgICAgICBhbGlnbm1lbnREYXRhLnNldERpc3RyaWJ1dGlvbihwcmltaXRpdmVW
YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTVmFsdWVGbGV4U3RhcnQ6Ci0gICAg
Y2FzZSBDU1NWYWx1ZUZsZXhFbmQ6Ci0gICAgY2FzZSBDU1NWYWx1ZUNlbnRlcjoKLSAgICAgICAg
YWxpZ25tZW50RGF0YS5zZXRQb3NpdGlvbihwcmltaXRpdmVWYWx1ZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KKyAg
ICBhdXRvJiBjb250ZW50VmFsdWUgPSBkb3duY2FzdDxDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFs
dWU+KHZhbHVlKTsKKyAgICBpZiAoY29udGVudFZhbHVlLmRpc3RyaWJ1dGlvbigpLT52YWx1ZUlE
KCkgIT0gQ1NTVmFsdWVJbnZhbGlkKQorICAgICAgICBhbGlnbm1lbnREYXRhLnNldERpc3RyaWJ1
dGlvbihjb250ZW50VmFsdWUuZGlzdHJpYnV0aW9uKCkuZ2V0KCkpOworICAgIGlmIChjb250ZW50
VmFsdWUucG9zaXRpb24oKS0+dmFsdWVJRCgpICE9IENTU1ZhbHVlSW52YWxpZCkKKyAgICAgICAg
YWxpZ25tZW50RGF0YS5zZXRQb3NpdGlvbihjb250ZW50VmFsdWUucG9zaXRpb24oKS5nZXQoKSk7
CisgICAgaWYgKGNvbnRlbnRWYWx1ZS5vdmVyZmxvdygpLT52YWx1ZUlEKCkgIT0gQ1NTVmFsdWVJ
bnZhbGlkKQorICAgICAgICBhbGlnbm1lbnREYXRhLnNldE92ZXJmbG93KGNvbnRlbnRWYWx1ZS5v
dmVyZmxvdygpLmdldCgpKTsKICAgICByZXR1cm4gYWxpZ25tZW50RGF0YTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCmluZGV4IDgzMTRkNzQ3YTAzMDdjMzQwYWQw
MzllMmRjZDRiOWYxZDM4NjdkOTYuLjU2NTE1OTQzYTI2NDE0ZTIwNTMyZDJkYjU1MGZmOTI2ZjAw
M2MzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKQEAgLTYyLDcg
KzYyLDYgQEAgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgc3RyaWN0Q1NTUGFyc2VyQ29udGV4dCgp
CiBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KENTU1BhcnNlck1vZGUgbW9kZSwg
Y29uc3QgVVJMJiBiYXNlVVJMKQogICAgIDogYmFzZVVSTChiYXNlVVJMKQogICAgICwgbW9kZSht
b2RlKQotICAgICwgY3NzR3JpZExheW91dEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCiB7CiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIC8vIEZJWE1FOiBGb3JjZSB0aGUgc2l0ZSBzcGVjaWZpYyBxdWlyayBiZWxv
dyB0byB3b3JrIG9uIGlPUy4gSW52ZXN0aWdhdGluZyBvdGhlciBzaXRlIHNwZWNpZmljIHF1aXJr
cwpAQCAtNzcsNyArNzYsNiBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzaGVldEJhc2VVUkwsCiAgICAgLCBjaGFyc2V0
KGNoYXJzZXQpCiAgICAgLCBtb2RlKGRvY3VtZW50LmluUXVpcmtzTW9kZSgpID8gSFRNTFF1aXJr
c01vZGUgOiBIVE1MU3RhbmRhcmRNb2RlKQogICAgICwgaXNIVE1MRG9jdW1lbnQoZG9jdW1lbnQu
aXNIVE1MRG9jdW1lbnQoKSkKLSAgICAsIGNzc0dyaWRMYXlvdXRFbmFibGVkKGRvY3VtZW50Lmlz
Q1NTR3JpZExheW91dEVuYWJsZWQoKSkKICAgICAsIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4o
c2hlZXRCYXNlVVJMLmlzTnVsbCgpIHx8IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuUmVx
dWVzdChiYXNlVVJMKSkKIHsKICAgICAKQEAgLTEwNyw3ICsxMDUsNiBAQCBib29sIG9wZXJhdG9y
PT0oY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYikK
ICAgICAgICAgJiYgYS5jaGFyc2V0ID09IGIuY2hhcnNldAogICAgICAgICAmJiBhLm1vZGUgPT0g
Yi5tb2RlCiAgICAgICAgICYmIGEuaXNIVE1MRG9jdW1lbnQgPT0gYi5pc0hUTUxEb2N1bWVudAot
ICAgICAgICAmJiBhLmNzc0dyaWRMYXlvdXRFbmFibGVkID09IGIuY3NzR3JpZExheW91dEVuYWJs
ZWQKICAgICAgICAgJiYgYS5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9PSBiLm5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzCiAgICAgICAgICYmIGEuZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NN
b2RlID09IGIuZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlCiAgICAgICAgICYmIGEu
dXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvciA9PSBiLnVzZUxlZ2FjeUJh
Y2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCBlNjJjYjI5ZjEwMmEyNGRmM2ZhOGMz
MzBlMDI1NjcxYjI0NmU0NmJlLi40ZGQ4Mzc4M2YxNjQ5NGNhYTVhYjAyMjljNjY0MzE4NGIyMGNm
MmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQ
YXRocy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0
aHMuY3BwCkBAIC01NjgsOCArNTY4LDcgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFs
aWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQKICAgICAg
ICAgLy8gdGFibGUtY29sdW1uLWdyb3VwIHwgdGFibGUtY29sdW1uIHwgdGFibGUtY2VsbCB8IHRh
YmxlLWNhcHRpb24gfCAtd2Via2l0LWJveCB8IC13ZWJraXQtaW5saW5lLWJveCB8IG5vbmUKICAg
ICAgICAgLy8gZmxleCB8IGlubGluZS1mbGV4IHwgLXdlYmtpdC1mbGV4IHwgLXdlYmtpdC1pbmxp
bmUtZmxleCB8IGdyaWQgfCBpbmxpbmUtZ3JpZAogICAgICAgICByZXR1cm4gKHZhbHVlSUQgPj0g
Q1NTVmFsdWVJbmxpbmUgJiYgdmFsdWVJRCA8PSBDU1NWYWx1ZUNvbnRlbnRzKSB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlTm9uZQotICAgICAgICAgICAgfHwgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpICYmICh2YWx1ZUlEID09
IENTU1ZhbHVlR3JpZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlSW5saW5lR3JpZCkpCi0gICAgICAg
IDsKKyAgICAgICAgICAgIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVHcmlkIHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVJbmxpbmVHcmlkOwogICAgIGNhc2UgQ1NTUHJvcGVydHlEb21pbmFudEJhc2VsaW5l
OgogICAgICAgICAvLyBhdXRvIHwgdXNlLXNjcmlwdCB8IG5vLWNoYW5nZSB8IHJlc2V0LXNpemUg
fCBpZGVvZ3JhcGhpYyB8CiAgICAgICAgIC8vIGFscGhhYmV0aWMgfCBoYW5naW5nIHwgbWF0aGVt
YXRpY2FsIHwgY2VudHJhbCB8IG1pZGRsZSB8CkBAIC03MDcsMjQgKzcwNiwxMiBAQCBib29sIENT
U1BhcnNlckZhc3RQYXRoczo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJZAogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUhvcml6
b250YWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVZlcnRpY2FsIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVBdXRvOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDb2x1bW5Qcm9ncmVzc2lvbjoKICAg
ICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZVJldmVyc2U7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduQ29udGVudDoKLSAgICAgICAg
Ly8gRklYTUU6IFBlciBDU1MgYWxpZ25tZW50LCB0aGlzIHByb3BlcnR5IHNob3VsZCBhY2NlcHQg
YW4gb3B0aW9uYWwgPG92ZXJmbG93LXBvc2l0aW9uPi4gV2Ugc2hvdWxkIHNoYXJlIHRoaXMgcGFy
c2luZyBjb2RlIHdpdGggJ2p1c3RpZnktc2VsZicuCi0gICAgICAgIHJldHVybiB2YWx1ZUlEID09
IENTU1ZhbHVlRmxleFN0YXJ0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4RW5kIHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVDZW50ZXIgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNwYWNlQmV0d2VlbiB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlU3BhY2VBcm91bmQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN0
cmV0Y2g7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduSXRlbXM6Ci0gICAgICAgIC8vIEZJWE1F
OiBQZXIgQ1NTIGFsaWdubWVudCwgdGhpcyBwcm9wZXJ0eSBzaG91bGQgYWNjZXB0IHRoZSBzYW1l
IGFyZ3VtZW50cyBhcyAnanVzdGlmeS1zZWxmJyBzbyB3ZSBzaG91bGQgc2hhcmUgaXRzIHBhcnNp
bmcgY29kZS4KLSAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4U3RhcnQgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZUZsZXhFbmQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNlbnRlciB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlQmFzZWxpbmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN0cmV0
Y2g7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduU2VsZjoKLSAgICAgICAgLy8gRklYTUU6IFBl
ciBDU1MgYWxpZ25tZW50LCB0aGlzIHByb3BlcnR5IHNob3VsZCBhY2NlcHQgdGhlIHNhbWUgYXJn
dW1lbnRzIGFzICdqdXN0aWZ5LXNlbGYnIHNvIHdlIHNob3VsZCBzaGFyZSBpdHMgcGFyc2luZyBj
b2RlLgotICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9
PSBDU1NWYWx1ZUZsZXhTdGFydCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlRmxleEVuZCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlQ2VudGVyIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVCYXNlbGluZSB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlU3RyZXRjaDsKICAgICBjYXNlIENTU1Byb3BlcnR5RmxleERpcmVj
dGlvbjoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVSb3cgfHwgdmFsdWVJRCA9
PSBDU1NWYWx1ZVJvd1JldmVyc2UgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbHVtbiB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlQ29sdW1uUmV2ZXJzZTsKICAgICBjYXNlIENTU1Byb3BlcnR5RmxleFdy
YXA6CiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlTm93cmFwIHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVXcmFwIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXcmFwUmV2ZXJzZTsKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0SHlwaGVuczoKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0g
Q1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25lIHx8IHZhbHVlSUQgPT0gQ1NT
VmFsdWVNYW51YWw7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUp1c3RpZnlDb250ZW50OgotICAgICAg
ICAvLyBGSVhNRTogUGVyIENTUyBhbGlnbm1lbnQsIHRoaXMgcHJvcGVydHkgc2hvdWxkIGFjY2Vw
dCBhbiBvcHRpb25hbCA8b3ZlcmZsb3ctcG9zaXRpb24+LiBXZSBzaG91bGQgc2hhcmUgdGhpcyBw
YXJzaW5nIGNvZGUgd2l0aCAnanVzdGlmeS1zZWxmJy4KLSAgICAgICAgcmV0dXJuIHZhbHVlSUQg
PT0gQ1NTVmFsdWVGbGV4U3RhcnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUZsZXhFbmQgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUNlbnRlciB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3BhY2VCZXR3ZWVu
IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTcGFjZUFyb3VuZDsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0Rm9udEtlcm5pbmc6CiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlQXV0
byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVOb25l
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGb250U21vb3RoaW5nOgpAQCAtOTc2LDExICs5
NjMsNiBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3b3JkUHJvcGVydHlJRChDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SWQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRPcHRpY2FsU2l6
aW5nOgogI2VuZGlmCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQ1NTUHJvcGVydHlK
dXN0aWZ5Q29udGVudDoKLSAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25Db250ZW50OgotICAgIGNh
c2UgQ1NTUHJvcGVydHlBbGlnbkl0ZW1zOgotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnblNlbGY6
Ci0gICAgICAgIHJldHVybiAhUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UGFyc2VyTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmgK
aW5kZXggZTEyNThiOWE3NzhlYTZiYzM1YjJjMjQxNzAxZmQ5OGE4NzI2NDI0Ni4uMDU3MDBmZmFm
YjMxNzgyYTUzMDAwZWEwMGM0MDNlNTg2MjVhZDg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQYXJzZXJNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJNb2RlLmgKQEAgLTk2LDcgKzk2LDYgQEAgcHVibGljOgogICAgIFN0cmlu
ZyBjaGFyc2V0OwogICAgIENTU1BhcnNlck1vZGUgbW9kZSB7IEhUTUxTdGFuZGFyZE1vZGUgfTsK
ICAgICBib29sIGlzSFRNTERvY3VtZW50IHsgZmFsc2UgfTsKLSAgICBib29sIGNzc0dyaWRMYXlv
dXRFbmFibGVkIHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIGJv
b2wgdGV4dEF1dG9zaXppbmdFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtMTM1LDcgKzEz
NCw2IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7CiAgICAgICAgICAgICBoYXNoIF49
IFN0cmluZ0hhc2g6Omhhc2goa2V5LmNoYXJzZXQpOwogICAgICAgICB1bnNpZ25lZCBiaXRzID0g
a2V5LmlzSFRNTERvY3VtZW50ICAgICAgICAgICAgICAgICAgPDwgMAogICAgICAgICAgICAgJiBr
ZXkuaXNIVE1MRG9jdW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMQotICAgICAg
ICAgICAgJiBrZXkuY3NzR3JpZExheW91dEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgPDwg
MgogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgICAgICAgICAmIGtleS50ZXh0QXV0
b3NpemluZ0VuYWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCAzCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggMDkxMGYw
ZDJjNzkxMGIwZjIwYzUxODhiNjkyNmE1NjEwY2ZlNjE1NS4uYmU1Y2Q3YTc4YWZiM2UzNTIzZjU5
OTRlNzA2YjlhZjNhMGI0ODU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTQyODgsNDMgKzQyODgsMjcgQEAgUmVmUHRyPENTU1Zh
bHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VTaW5nbGVWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5LCBDU1MKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza1JlcGVhdFk6CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnbkl0ZW1zOgotICAg
ICAgICBpZiAoIW1fY29udGV4dC5jc3NHcmlkTGF5b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29uc3VtZUFsaWduSXRlbXMobV9yYW5nZSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUp1c3RpZnlTZWxmOgogICAgICAgICByZXR1cm4gY29uc3Vt
ZVNlbGZQb3NpdGlvbk92ZXJmbG93UG9zaXRpb24obV9yYW5nZSwgaXNTZWxmUG9zaXRpb25Pckxl
ZnRPclJpZ2h0S2V5d29yZCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduU2VsZjoKLSAgICAg
ICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91dEVuYWJsZWQpCi0gICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTZWxmUG9zaXRpb25PdmVyZmxvd1Bv
c2l0aW9uKG1fcmFuZ2UsIGlzU2VsZlBvc2l0aW9uS2V5d29yZCk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUp1c3RpZnlJdGVtczoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91dEVu
YWJsZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1
bWVKdXN0aWZ5SXRlbXMobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRDb2x1bW5F
bmQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRDb2x1bW5TdGFydDoKICAgICBjYXNlIENTU1By
b3BlcnR5R3JpZFJvd0VuZDoKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZFJvd1N0YXJ0OgotICAg
ICAgICBpZiAoIW1fY29udGV4dC5jc3NHcmlkTGF5b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29uc3VtZUdyaWRMaW5lKG1fcmFuZ2UpOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkQXV0b0NvbHVtbnM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eUdyaWRBdXRvUm93czoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91dEVuYWJs
ZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVH
cmlkVHJhY2tMaXN0KG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlLCBHcmlkQXV0byk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUdyaWRUZW1wbGF0ZUNvbHVtbnM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdy
aWRUZW1wbGF0ZVJvd3M6Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFi
bGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb25zdW1l
R3JpZFRlbXBsYXRlc1Jvd3NPckNvbHVtbnMobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUpOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlHcmlkVGVtcGxhdGVBcmVhczoKLSAgICAgICAgaWYgKCFtX2NvbnRl
eHQuY3NzR3JpZExheW91dEVuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgcmV0dXJuIGNvbnN1bWVHcmlkVGVtcGxhdGVBcmVhcyhtX3JhbmdlKTsKICAgICBjYXNl
IENTU1Byb3BlcnR5R3JpZEF1dG9GbG93OgotICAgICAgICBpZiAoIW1fY29udGV4dC5jc3NHcmlk
TGF5b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1
cm4gY29uc3VtZUdyaWRBdXRvRmxvdyhtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0TGluZUdyaWQ6CiAgICAgICAgIHJldHVybiBjb25zdW1lTGluZUdyaWQobV9yYW5nZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmODYwYjZmOTFlZjE5YjQxZGE3MjcxZDMyMzA1NGUz
MWYzMThlNDI1Li4zMGQ4ZmY1Y2JjN2Q0YWQzMjZmYTVmYmY3YTdhZDkzYzc0NTdkNzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExNzgsMTEgKzExNzgsNiBAQCBDdXN0b21FbGVtZW50
TmFtZVZhbGlkYXRpb25TdGF0dXMgRG9jdW1lbnQ6OnZhbGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUo
Y29uc3QgQXRvbQogICAgIHJldHVybiBDdXN0b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXM6
OlZhbGlkOwogfQogCi1ib29sIERvY3VtZW50Ojppc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCk7Ci19Ci0KIEV4Y2VwdGlvbk9yPFJlZjxFbGVtZW50
Pj4gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnROUyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFj
ZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lKQogewogICAgIGF1dG8gcGFyc2VSZXN1
bHQgPSBwYXJzZVF1YWxpZmllZE5hbWUobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKaW5kZXggM2EwMDE0OTk4MmM5MmMwNWYxMWM5ZDU3ZTBlNmU3NjM5MThm
NjMxZC4uMDk4NzljN2ViYTE0NTg2NWI1NDhjY2M0YzU4MzhiZjA3OTc5NTg3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTQyMyw4ICs0MjMsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgQ3Vz
dG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzIHZhbGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUo
Y29uc3QgQXRvbWljU3RyaW5nJik7CiAKLSAgICBib29sIGlzQ1NTR3JpZExheW91dEVuYWJsZWQo
KSBjb25zdDsKLQogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxSYW5nZT4gY2FyZXRSYW5nZUZy
b21Qb2ludChpbnQgeCwgaW50IHkpOwogICAgIFJlZlB0cjxSYW5nZT4gY2FyZXRSYW5nZUZyb21Q
b2ludChjb25zdCBMYXlvdXRQb2ludCYgY2xpZW50UG9pbnQpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDBjNWJlNjQ3MTc2NzQxN2VjYzY3
Mzg4ZmYzNDliNzMxNzUyMWZkZjMuLmU3ZjZmNzZiY2M2MDdmOWZiNGI5NmI4OGRlNzQ4MmRjYmJl
NDdmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
CkBAIC0yMDIsOSArMjAyLDYgQEAgcHVibGljOgogICAgIGJvb2wgZG93bmxvYWRBdHRyaWJ1dGVF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Rvd25sb2FkQXR0cmlidXRlRW5hYmxlZDsgfQog
I2VuZGlmCiAKLSAgICB2b2lkIHNldENTU0dyaWRMYXlvdXRFbmFibGVkKGJvb2wgaXNFbmFibGVk
KSB7IG1fY3NzR3JpZExheW91dEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KLSAgICBib29sIGlzQ1NT
R3JpZExheW91dEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Nzc0dyaWRMYXlvdXRFbmFibGVk
OyB9Ci0KICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQogICAgIHZvaWQgc2V0SW50
ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faW50ZXJzZWN0aW9u
T2JzZXJ2ZXJFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBpbnRlcnNlY3Rpb25PYnNl
cnZlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2ludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxl
ZDsgfQpAQCAtMzUzLDggKzM1MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRG93bmxvYWRB
dHRyaWJ1dGVFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogCi0gICAgYm9vbCBtX2Nzc0dyaWRM
YXlvdXRFbmFibGVkIHsgdHJ1ZSB9OwotCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAg
ICBib29sIG1fZW5jcnlwdGVkTWVkaWFBUElFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggZWE5
ZDIzNmJjZWZiZDVkYmM5YjZlMzE3ZDNlNTMwYTQyZjE1MDBjYi4uZWZiOWEyNzhkMzc4YzQ5ZTk0
MDFlZDE1ZjUyN2Y4MjM2MDYxMjllMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0xMzY5LDEwICsxMzY5LDggQEAgc3RhdGljIExheW91
dFVuaXQgYWxpZ25tZW50T2Zmc2V0KExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNwYWNlLCBJdGVt
UG9zaXRpb24gcG8KICAgICBjYXNlIEl0ZW1Qb3NpdGlvbkVuZDoKICAgICBjYXNlIEl0ZW1Qb3Np
dGlvbkxlZnQ6CiAgICAgY2FzZSBJdGVtUG9zaXRpb25SaWdodDoKLSAgICAgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGVzZS4gVGhlIGV4dGVuZGVkIGdyYW1tYXIKLSAgICAgICAgLy8gaXMgbm90
IGVuYWJsZWQgYnkgZGVmYXVsdCBzbyB3ZSBzaG91bGRuJ3QgaGl0IHRoaXMgY29kZXBhdGguCi0g
ICAgICAgIC8vIFRoZSBuZXcgZ3JhbW1hciBpcyBvbmx5IHVzZWQgd2hlbiBHcmlkIExheW91dCBm
ZWF0dXJlIGlzIGVuYWJsZWQuCi0gICAgICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CisgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhlIGV4dGVuZGVkIGdyYW1tYXIsIGVuYWJsZWQgd2hlbiB0aGUg
R3JpZCBMYXlvdXQKKyAgICAgICAgLy8gZmVhdHVyZSB3YXMgZW5hYmxlZCBieSBkZWZhdWx0Lgog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA3ZmJhODhjZDg5NzZiYzZhMjRj
OThjNjYzY2MyYjA0NWIzNjY2YzE1Li5jYTFhODQxMzAxY2Q3OTc3OGEzZTkyNjM3MGI0MmQ2OWE2
Mzk2YTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKQEAgLTIzNSwxMSArMjM1LDYgQEAgUmVuZGVyU3R5bGUgUmVuZGVyU3R5bGU6OnJlcGxh
Y2UoUmVuZGVyU3R5bGUmJiBuZXdTdHlsZSkKICAgICByZXR1cm4gUmVuZGVyU3R5bGUgeyAqdGhp
cywgV1RGTW92ZShuZXdTdHlsZSkgfTsKIH0KIAotYm9vbCBSZW5kZXJTdHlsZTo6aXNDU1NHcmlk
TGF5b3V0RW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpOwotfQotCiBzdGF0aWMgU3R5
bGVTZWxmQWxpZ25tZW50RGF0YSByZXNvbHZlZFNlbGZBbGlnbm1lbnQoY29uc3QgU3R5bGVTZWxm
QWxpZ25tZW50RGF0YSYgdmFsdWUsIEl0ZW1Qb3NpdGlvbiBub3JtYWxWYWx1ZUJlaGF2aW9yKQog
ewogICAgIGlmICh2YWx1ZS5wb3NpdGlvbigpID09IEl0ZW1Qb3NpdGlvbkxlZ2FjeSB8fCB2YWx1
ZS5wb3NpdGlvbigpID09IEl0ZW1Qb3NpdGlvbk5vcm1hbCB8fCB2YWx1ZS5wb3NpdGlvbigpID09
IEl0ZW1Qb3NpdGlvbkF1dG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IGY5ZDhjNjBmZDUzYTUyZTc5MTg4ODBiN2E5YWY3MDg3N2YzYmM2ODku
LmZiNDM1NGY4YzZiODM0MWIyMDFlZThlMmY5OTViNjRiZTk1ZmIyMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xNDk1LDcgKzE0OTUsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGludCBpbml0aWFsT3JkZXIoKSB7IHJldHVybiAwOyB9CiAg
ICAgc3RhdGljIFN0eWxlU2VsZkFsaWdubWVudERhdGEgaW5pdGlhbEp1c3RpZnlJdGVtcygpIHsg
cmV0dXJuIFN0eWxlU2VsZkFsaWdubWVudERhdGEoSXRlbVBvc2l0aW9uTGVnYWN5LCBPdmVyZmxv
d0FsaWdubWVudERlZmF1bHQpOyB9CiAgICAgc3RhdGljIFN0eWxlU2VsZkFsaWdubWVudERhdGEg
aW5pdGlhbFNlbGZBbGlnbm1lbnQoKSB7IHJldHVybiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhKEl0
ZW1Qb3NpdGlvbkF1dG8sIE92ZXJmbG93QWxpZ25tZW50RGVmYXVsdCk7IH0KLSAgICBzdGF0aWMg
U3R5bGVTZWxmQWxpZ25tZW50RGF0YSBpbml0aWFsRGVmYXVsdEFsaWdubWVudCgpIHsgcmV0dXJu
IFN0eWxlU2VsZkFsaWdubWVudERhdGEoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpID8gSXRlbVBv
c2l0aW9uTm9ybWFsIDogSXRlbVBvc2l0aW9uU3RyZXRjaCwgT3ZlcmZsb3dBbGlnbm1lbnREZWZh
dWx0KTsgfQorICAgIHN0YXRpYyBTdHlsZVNlbGZBbGlnbm1lbnREYXRhIGluaXRpYWxEZWZhdWx0
QWxpZ25tZW50KCkgeyByZXR1cm4gU3R5bGVTZWxmQWxpZ25tZW50RGF0YShJdGVtUG9zaXRpb25O
b3JtYWwsIE92ZXJmbG93QWxpZ25tZW50RGVmYXVsdCk7IH0KICAgICBzdGF0aWMgU3R5bGVDb250
ZW50QWxpZ25tZW50RGF0YSBpbml0aWFsQ29udGVudEFsaWdubWVudCgpIHsgcmV0dXJuIFN0eWxl
Q29udGVudEFsaWdubWVudERhdGEoQ29udGVudFBvc2l0aW9uTm9ybWFsLCBDb250ZW50RGlzdHJp
YnV0aW9uRGVmYXVsdCwgT3ZlcmZsb3dBbGlnbm1lbnREZWZhdWx0KTsgfQogICAgIHN0YXRpYyBF
RmxleERpcmVjdGlvbiBpbml0aWFsRmxleERpcmVjdGlvbigpIHsgcmV0dXJuIEZsb3dSb3c7IH0K
ICAgICBzdGF0aWMgRUZsZXhXcmFwIGluaXRpYWxGbGV4V3JhcCgpIHsgcmV0dXJuIEZsZXhOb1dy
YXA7IH0KQEAgLTE1NzksOCArMTU3OSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVGV4dFNpemVB
ZGp1c3RtZW50IGluaXRpYWxUZXh0U2l6ZUFkanVzdCgpIHsgcmV0dXJuIFRleHRTaXplQWRqdXN0
bWVudCgpOyB9CiAjZW5kaWYKIAotICAgIHN0YXRpYyBib29sIGlzQ1NTR3JpZExheW91dEVuYWJs
ZWQoKTsKLQogICAgIHN0YXRpYyBXaWxsQ2hhbmdlRGF0YSogaW5pdGlhbFdpbGxDaGFuZ2UoKSB7
IHJldHVybiBudWxscHRyOyB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggZDkyZTkwZDNiMzA5ZjE3
MjdhMzBhYTIyYzc1MTVhOTMzZTgxZDk4MC4uZjU1NWFiNTBhNWUzOTNiYTI0YmRiZmIxYTY0NDU0
NGYwZDRiY2RkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCkBAIC0xMDQsNyArMTA0LDYgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAo
U2V0dGluZ3MmIHNldHRpbmdzKQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpCiAgICAgLCBtX2luZGV4ZWREQldvcmtlcnNFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuaW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoKSkKICNlbmRpZgot
ICAgICwgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSkKICNpZiBFTkFCTEUoV0VCR0wy
KQogICAgICwgbV93ZWJHTDJFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkud2ViR0wyRW5hYmxlZCgpKQogI2VuZGlmCkBAIC0yMDUsNyArMjA0LDYgQEAgdm9p
ZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhTZXR0aW5ncyYgc2V0dGluZ3Mp
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykKICAgICBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEluZGV4ZWREQldvcmtlcnNFbmFibGVk
KG1faW5kZXhlZERCV29ya2Vyc0VuYWJsZWQpOwogI2VuZGlmCi0gICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChtX2Nzc0dy
aWRMYXlvdXRFbmFibGVkKTsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2ViR0wyRW5hYmxlZChtX3dlYkdMMkVuYWJs
ZWQpOwogI2VuZGlmCkBAIC03NDAsMTEgKzczOCw2IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAKLXZv
aWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoYm9vbCBlbmFibGVk
KQotewotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NT
R3JpZExheW91dEVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0V2ViR0wyRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggN2Q3N2ZmNWE2MmQ1
ODkxMzBiYmI5NjRiNDhjNDVhOTJlNmY5YjBiOC4uZmJhMzY4NmUzMWMwNDY1ZjBlZmRhN2ZkNDhh
YWUwNmQ2MDg5M2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmgKQEAgLTExOSw3ICsxMTksNiBAQCBwdWJsaWM6CiAKICAgICAvLyBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzLgogICAgIHN0YXRpYyB2b2lkIHNldEluZGV4ZWREQldvcmtlcnNFbmFibGVkKGJvb2wp
OwotICAgIHN0YXRpYyB2b2lkIHNldENTU0dyaWRMYXlvdXRFbmFibGVkKGJvb2wpOwogICAgIHN0
YXRpYyB2b2lkIHNldFdlYkdMMkVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0V2Vi
R1BVRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJWUkVuYWJsZWQoYm9vbCk7
CkBAIC0yMDAsNyArMTk5LDYgQEAgcHJpdmF0ZToKIAogICAgICAgICAvLyBSdW50aW1lIGVuYWJs
ZWQgc2V0dGluZ3MuCiAgICAgICAgIGJvb2wgbV9pbmRleGVkREJXb3JrZXJzRW5hYmxlZDsKLSAg
ICAgICAgYm9vbCBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkOwogICAgICAgICBib29sIG1fd2ViR0wy
RW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3dlYkdQVUVuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV93
ZWJWUkVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bAppbmRleCBkMDdlNjZlYjY5N2VhMmE5OTExOTFlM2UyNWVkZWQ2NTcxOGJmMWIyLi5mZDZiM2E0
ZWVmMDcwZThkNjNhNDhjMzA1M2QxMDkyYzMwZWFkMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTg4LDcgKzg4LDYgQEAgZW51bSBGb250TG9h
ZFRpbWluZ092ZXJyaWRlIHsgIkJsb2NrIiwgIlN3YXAiLCAiRmFpbHVyZSIgfTsKIAogICAgIC8v
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuCiAgICAgdm9pZCBzZXRJbmRleGVkREJXb3JrZXJzRW5h
YmxlZChib29sZWFuIGVuYWJsZWQpOwotICAgIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQo
Ym9vbGVhbiBlbmFibGVkKTsKICAgICB2b2lkIHNldFdlYkdMMkVuYWJsZWQoYm9vbGVhbiBlbmFi
bGVkKTsKICAgICB2b2lkIHNldFdlYkdQVUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICB2
b2lkIHNldFdlYlZSRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggYTI0MGE4OGU3MGJhZDc4YTdkMzkxNDgzYWE2MmUz
MWIzZmMyNTk1My4uNmMwMWI4OWNlMWMwZmE4YmM4ZjFiZjM3ZTIwMDdkZmVkNzUyNDdkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC02ODYsMTQgKzY4Niw2
IEBAIFNob3VsZFN1cHByZXNzVGV4dElucHV0RnJvbUVkaXRpbmdEdXJpbmdQcm92aXNpb25hbE5h
dmlnYXRpb246CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiBmYWxzZQogCi1DU1NHcmlk
TGF5b3V0RW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6IHRydWUKLSAgaHVt
YW5SZWFkYWJsZU5hbWU6ICJDU1MgR3JpZCIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
Q1NTIEdyaWQgTGF5b3V0IE1vZHVsZSBzdXBwb3J0IgotICBiaW5kaW5nOiBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzCi0gIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCi0KIEdh
bWVwYWRzRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCmluZGV4IGFhMjMwOGE5YWE3ZWE3MmIyOWJmZGRkYjM1MWY2MDQ5ZGY3OTRi
ZGMuLmJkNjA5NzA2YzA4NTQwMzgwYTNkNDU3OGY4Y2Q3NzFhODRmNjI5OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcApAQCAtMjA1LDkgKzIwNSw2IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92ZXJy
aWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlCiAg
ICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V3JpdGFi
bGVTdHJlYW1BUElFbmFibGVkKGVuYWJsZWQpOwogI2VuZGlmCiAKLSAgICBpZiAocHJlZmVyZW5j
ZSA9PSAiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQiKQotICAgICAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGVuYWJs
ZWQpOwotCiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdEludGVyYWN0aXZlRm9ybVZhbGlk
YXRpb25FbmFibGVkIikKICAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChlbmFibGVkKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNjRkNjcyYThiNTc0MDRkYTYxYmVlZmM4NjIzZmRlMTVh
MThiNDRjYi4uM2Y0OGFiMDYzNmFlM2ViMTQ0ODUwYTU2OThlODc2MDAyMWI3YWY5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCkBAIC0xNzgsNyArMTc4LDYgQEAKICNkZWZpbmUgV2ViS2l0UmVhZGFi
bGVCeXRlU3RyZWFtQVBJRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRSZWFkYWJsZUJ5dGVT
dHJlYW1BUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkIgogI2RlZmluZSBX
ZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERpcmVjdG9y
eVVwbG9hZEVuYWJsZWQiCi0jZGVmaW5lIFdlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRWaXN1
YWxWaWV3cG9ydEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRNb2Rlcm5N
ZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRy
b2xzRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCmluZGV4IDk1ZGVlOWM1OGIwNjk2NTNkNzg0MGY3OTM1MGE1NThkNjM4MGI1
MGQuLmYxNDVjZjhmMDU3ZmMxMTEzZDc0ZWMxMmY4YmJhOTNlMzc1Njc4MGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNjM5
LDcgKzYzOSw2IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVy
V2l0aEJvb2w6Tk9dLCBXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5
LAogI2VuZGlmCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdERp
cmVjdG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5LAotICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6WUVTXSwgV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5
LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRXZWJBbmltYXRp
b25zRW5hYmxlZFByZWZlcmVuY2VLZXksCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zMDU2LDE2
ICszMDU1LDYgQEAgLSAoQk9PTClkaXJlY3RvcnlVcGxvYWRFbmFibGVkCiAgICAgcmV0dXJuIFtz
ZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVu
Y2VLZXldOwogfQogCi0tIChCT09MKWlzQ1NTR3JpZExheW91dEVuYWJsZWQKLXsKLSAgICByZXR1
cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZFByZWZl
cmVuY2VLZXldOwotfQotCi0tICh2b2lkKXNldENTU0dyaWRMYXlvdXRFbmFibGVkOihCT09MKWZs
YWcKLXsKLSAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdENTU0dyaWRM
YXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleV07Ci19Ci0KIC0gKEJPT0wpdmlzdWFsVmlld3BvcnRF
bmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0VmlzdWFs
Vmlld3BvcnRFbmFibGVkUHJlZmVyZW5jZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0ZmZmYzU5
NzEwM2IwNGI2ZWU1NmE3ZGNjYjhhNWMwYTBjYzExZjkyLi43N2Y2OTUwYTJjMWIxOGU1YmQ3ODk4
YzY2OTRlMDkzN2E3M2I5YjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTU1OCw5ICs1NTgsNiBAQCBl
eHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5v
dGlmaWNhdGlvbjsKIC0gKHZvaWQpc2V0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZDooQk9PTClmbGFn
OwogLSAoQk9PTClkaXJlY3RvcnlVcGxvYWRFbmFibGVkOwogCi0tICh2b2lkKXNldENTU0dyaWRM
YXlvdXRFbmFibGVkOihCT09MKWZsYWc7Ci0tIChCT09MKWlzQ1NTR3JpZExheW91dEVuYWJsZWQ7
Ci0KIC0gKHZvaWQpc2V0V2ViQW5pbWF0aW9uc0VuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wp
d2ViQW5pbWF0aW9uc0VuYWJsZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBlYzI2YjJiOTQ1NmMyNmI3NmNjMTZmZGIyODQ3MDQ5ZDZiZTQ2ZjQ4
Li5jMjg4NzNmMWEzYjQ4ZWM5ZWM1MWUxNTg4YTU3MmYzNmZjOWQ3OGZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMDI0LDggKzMwMjQsNiBAQCAt
ICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMK
ICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldERvd25sb2Fk
QXR0cmlidXRlRW5hYmxlZChbcHJlZmVyZW5jZXMgZG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkXSk7
CiAjZW5kaWYKIAotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoW3ByZWZlcmVuY2VzIGlzQ1NTR3JpZExheW91dEVuYWJs
ZWRdKTsKLQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0
V2ViQW5pbWF0aW9uc0VuYWJsZWQoW3ByZWZlcmVuY2VzIHdlYkFuaW1hdGlvbnNFbmFibGVkXSk7
CiAKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE0ZTcwZDRmOGZhNTg4ZDFlMTdkZmZl
OWE0NmE2ZmYxOGE2NmVlZmYuLjllNDhmOTM2ZjQwYmIyMGYxNDA2MGUwMmQ1OWZmNzQ1MGQ0MTE4
ZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxOC0wMy0wOCAgSmF2aWVyIEZlcm5hbmRleiAgPGpmZXJuYW5kZXpA
aWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgR3JpZExheW91dCBydW50aW1lIGZsYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQ4NAorCisg
ICAgICAgIFRoZSBHcmlkIExheW91dCBmZWF0dXJlIGhhcyBiZWVuIGVuYWJsZWQgYnkgZGVmYXVs
dCBmb3IgYWxtb3N0IGEKKyAgICAgICAgeWVhciwgc28gSSB0aGluayBpdCdzIHRpbWUgdG8gcmVt
b3ZlIHRoZSBydW50aW1lIGZsYWcgYW5kIHRoZQorICAgICAgICBjb2RlcGF0aCBydW4gd2hlbiB0
aGUgZmVhdHVyZSBpcyBkaXNhYmxlZC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKGVuYWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKToKKwogMjAxOC0wMy0wOCAgTXMy
Z2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gVXBkYXRlIGV4cGVjdGF0
aW9ucyBmb3IgQVBJIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggMmVkMzhkNmY4NjcxNmQ0MzBiZDhiYzM0N2E1N2MyMGU3NmRlYmI5Ni4uMTU1
ZmY1ZGQ4MzM5NjAxMmJlMTIyMzdkMDkxNDRlNTRiYzlkOGM5MyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODQwLDcgKzg0MCw2IEBAIHN0YXRpYyBO
U1N0cmluZyAqbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpCiAKIHN0YXRpYyB2b2lkIGVu
YWJsZUV4cGVyaW1lbnRhbEZlYXR1cmVzKFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcykKIHsK
LSAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQ6WUVTXTsKICAgICAvLyBG
SVhNRTogU3ByaW5nVGltaW5nRnVuY3Rpb24KICAgICBbcHJlZmVyZW5jZXMgc2V0R2FtZXBhZHNF
bmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldExpbmtQcmVsb2FkRW5hYmxlZDpZRVNd
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335364</attachid>
            <date>2018-03-08 16:16:37 -0800</date>
            <delta_ts>2018-03-09 04:37:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183484-20180309011636.patch</filename>
            <type>text/plain</type>
            <size>47003</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYxZjE4OTA3NGFlOGQ1
NDg3NWNkNDZlNDAyMGY1ODA5MzYwODYzZS4uMGEyZDExY2ExMjRiOTU0ODA3OTdmN2E0OTQyZDg4
MjRmMDg1N2IyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTAzLTA4ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBH
cmlkTGF5b3V0IHJ1bnRpbWUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzNDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIEdyaWQgTGF5b3V0IGZlYXR1cmUgaGFzIGJlZW4gZW5hYmxlZCBi
eSBkZWZhdWx0IGZvciBhbG1vc3QgYQorICAgICAgICB5ZWFyLCBzbyBJIHRoaW5rIGl0J3MgdGlt
ZSB0byByZW1vdmUgdGhlIHJ1bnRpbWUgZmxhZyBhbmQgdGhlCisgICAgICAgIGNvZGVwYXRoIHJ1
biB3aGVuIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
YmVjYXVzZSB0aGVyZSBhcmUgbm8gY2hhbmdlcyBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAg
ICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxvd0FsaWdu
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZv
clByb3BlcnR5aW5TdHlsZSk6CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Q29udGVu
dEFsaWdubWVudERhdGEpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJz
ZXJGYXN0UGF0aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjpp
c1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1BhcnNlck1vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNo
OjpoYXNoKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphbGlnbm1lbnRPZmZz
ZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6aW5pdGlhbERlZmF1bHRBbGlnbm1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpC
YWNrdXA6OkJhY2t1cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNr
dXA6OnJlc3RvcmVUbyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKwogMjAxOC0wMy0wOCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtp
bmcgQXBwbGljYXRpb25TZXJ2aWNlcyBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZjFiNWYwMjM5NTFh
ZWY2MWQ5MGUyMTcxN2Q0YjczN2RlNmRmYTYxLi5kNGMzZTE0ZmI4ZmE5OWNiYmMxNDQ1NjhjMDAz
MmQzMDE3NDhhNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTAzLTA4ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBH
cmlkTGF5b3V0IHJ1bnRpbWUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzNDg0CisKKyAgICAgICAgVGhlIEdyaWQgTGF5b3V0IGZlYXR1cmUg
aGFzIGJlZW4gZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhbG1vc3QgYQorICAgICAgICB5ZWFyLCBz
byBJIHRoaW5rIGl0J3MgdGltZSB0byByZW1vdmUgdGhlIHJ1bnRpbWUgZmxhZyBhbmQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHJ1biB3aGVuIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpvdmVycmlk
ZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6CisKIDIwMTgtMDMtMDggIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBsaW5raW5nIEFwcGxp
Y2F0aW9uU2VydmljZXMgZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2
NDY5MWYwMGYwZmY0ODM3N2ExOGNiN2Q2YzNkOTk2NDJlYWI3MjZlLi44ODUyZGNjMWUzNGU5OTdl
OWU3YzBhYjFhNzEzYjZkNzEyMjEzYzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTgtMDMtMDggIEphdmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6
QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEdyaWRMYXlvdXQgcnVudGltZSBmbGFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM0ODQKKwor
ICAgICAgICBUaGUgR3JpZCBMYXlvdXQgZmVhdHVyZSBoYXMgYmVlbiBlbmFibGVkIGJ5IGRlZmF1
bHQgZm9yIGFsbW9zdCBhCisgICAgICAgIHllYXIsIHNvIEkgdGhpbmsgaXQncyB0aW1lIHRvIHJl
bW92ZSB0aGUgcnVudGltZSBmbGFnIGFuZCB0aGUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
Lmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2Vi
UHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTgtMDMtMDggIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBsaW5raW5nIEFwcGxp
Y2F0aW9uU2VydmljZXMgZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMjA5ZTI5YWE3NDA5NDZiMzgwODA5YmU1
ZTBhM2EwOWMzYmVlNzkyMy4uMThmZjkxOGJiNmFjZjQ5MzBmZWIzODFhNDUyOTY3ODMzYzdlYTcz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTI1MzMsNyArMjUzMyw3IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWVMaXN0PiB2
YWx1ZUZvckl0ZW1Qb3NpdGlvbldpdGhPdmVyZmxvd0FsaWdubWVudChjb25zdCBTdHlsZVNlCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9y
Q29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KGNvbnN0
IFN0eWxlQ29udGVudEFsaWdubWVudERhdGEmIGRhdGEsIENTU1ZhbHVlSUQgbm9ybWFsQmVoYXZp
b3JWYWx1ZUlEKQorc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9yQ29udGVudFBvc2l0
aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KGNvbnN0IFN0eWxlQ29udGVu
dEFsaWdubWVudERhdGEmIGRhdGEpCiB7CiAgICAgYXV0byYgY3NzVmFsdWVQb29sID0gQ1NTVmFs
dWVQb29sOjpzaW5nbGV0b24oKTsKICAgICBhdXRvIHJlc3VsdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlU3BhY2VTZXBhcmF0ZWQoKTsKQEAgLTI1NDEsMTUgKzI1NDEsMTIgQEAgc3RhdGljIFJlZjxD
U1NWYWx1ZUxpc3Q+IHZhbHVlRm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92
ZXJmbG93QWxpZ24KICAgICBpZiAoZGF0YS5kaXN0cmlidXRpb24oKSAhPSBDb250ZW50RGlzdHJp
YnV0aW9uRGVmYXVsdCkKICAgICAgICAgcmVzdWx0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKGRhdGEuZGlzdHJpYnV0aW9uKCkpKTsKIAotICAgIGJvb2wgZ3JpZEVuYWJsZWQgPSBm
YWxzZTsKLSAgICBncmlkRW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpOwotCiAgICAgLy8gSGFuZGxlIGNvbnRl
bnQtcG9zaXRpb24gdmFsdWVzIChlaXRoZXIgYXMgZmFsbGJhY2sgb3IgYWN0dWFsIHZhbHVlKQog
ICAgIHN3aXRjaCAoZGF0YS5wb3NpdGlvbigpKSB7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb25O
b3JtYWw6CiAgICAgICAgIC8vIEhhbmRsZSAnbm9ybWFsJyB2YWx1ZSwgbm90IHZhbGlkIGFzIGNv
bnRlbnQtZGlzdHJpYnV0aW9uIGZhbGxiYWNrLgogICAgICAgICBpZiAoZGF0YS5kaXN0cmlidXRp
b24oKSA9PSBDb250ZW50RGlzdHJpYnV0aW9uRGVmYXVsdCkKLSAgICAgICAgICAgIHJlc3VsdC0+
YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoZ3JpZEVuYWJsZWQgPyBD
U1NWYWx1ZU5vcm1hbCA6IG5vcm1hbEJlaGF2aW9yVmFsdWVJRCkpOworICAgICAgICAgICAgcmVz
dWx0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5v
cm1hbCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbkxhc3RCYXNl
bGluZToKICAgICAgICAgcmVzdWx0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZUxhc3QpKTsKQEAgLTI5ODQsNyArMjk4MSw3IEBAIFJlZlB0cjxDU1NW
YWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eWluU3R5bGUoY29u
c3QgUmVuZGVyU3R5CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlFbXB0eUNlbGxzOgogICAgICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5lbXB0eUNlbGxzKCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25Db250ZW50OgotICAgICAgICAgICAgcmV0
dXJuIHZhbHVlRm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxp
Z25tZW50KHN0eWxlLmFsaWduQ29udGVudCgpLCBDU1NWYWx1ZVN0cmV0Y2gpOworICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlRm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJm
bG93QWxpZ25tZW50KHN0eWxlLmFsaWduQ29udGVudCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUFsaWduSXRlbXM6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JJdGVtUG9zaXRpb25X
aXRoT3ZlcmZsb3dBbGlnbm1lbnQoc3R5bGUuYWxpZ25JdGVtcygpKTsKICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eUFsaWduU2VsZjoKQEAgLTMwMDQsNyArMzAwMSw3IEBAIFJlZlB0cjxDU1NWYWx1
ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eWluU3R5bGUoY29uc3Qg
UmVuZGVyU3R5CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGbGV4V3JhcDoKICAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUuZmxleFdyYXAoKSk7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlKdXN0aWZ5Q29udGVudDoKLSAgICAgICAgICAgIHJldHVybiB2
YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxvd0FsaWdubWVu
dChzdHlsZS5qdXN0aWZ5Q29udGVudCgpLCBDU1NWYWx1ZUZsZXhTdGFydCk7CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWVGb3JDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25XaXRoT3ZlcmZs
b3dBbGlnbm1lbnQoc3R5bGUuanVzdGlmeUNvbnRlbnQoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlKdXN0aWZ5SXRlbXM6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JJdGVtUG9zaXRp
b25XaXRoT3ZlcmZsb3dBbGlnbm1lbnQoc3R5bGUuanVzdGlmeUl0ZW1zKCkpOwogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5SnVzdGlmeVNlbGY6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyQ29udmVydGVyLmgKaW5kZXggOWQ2MGIxMDExMDAxN2FkMDk0ZWNmZTUwMmU1OWNjNzI4MmFi
NWNhYy4uNmMzN2M5ZmQzM2Y3MmZjYWRkMDRhNTMwMmZmYmMwOWVkY2U4ZDMwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTM3MywzNSArMTM3Mywx
NSBAQCBpbmxpbmUgU3R5bGVTZWxmQWxpZ25tZW50RGF0YSBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6
OmNvbnZlcnRTZWxmT3JEZWZhdWx0QWxpZ25tZQogaW5saW5lIFN0eWxlQ29udGVudEFsaWdubWVu
dERhdGEgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Q29udGVudEFsaWdubWVudERhdGEo
U3R5bGVSZXNvbHZlciYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKIHsKICAgICBTdHlsZUNvbnRl
bnRBbGlnbm1lbnREYXRhIGFsaWdubWVudERhdGEgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbENvbnRl
bnRBbGlnbm1lbnQoKTsKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpIHsKLSAgICAgICAgaWYgKCFpczxDU1ND
b250ZW50RGlzdHJpYnV0aW9uVmFsdWU+KHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBhbGln
bm1lbnREYXRhOwotICAgICAgICBhdXRvJiBjb250ZW50VmFsdWUgPSBkb3duY2FzdDxDU1NDb250
ZW50RGlzdHJpYnV0aW9uVmFsdWU+KHZhbHVlKTsKLSAgICAgICAgaWYgKGNvbnRlbnRWYWx1ZS5k
aXN0cmlidXRpb24oKS0+dmFsdWVJRCgpICE9IENTU1ZhbHVlSW52YWxpZCkKLSAgICAgICAgICAg
IGFsaWdubWVudERhdGEuc2V0RGlzdHJpYnV0aW9uKGNvbnRlbnRWYWx1ZS5kaXN0cmlidXRpb24o
KS5nZXQoKSk7Ci0gICAgICAgIGlmIChjb250ZW50VmFsdWUucG9zaXRpb24oKS0+dmFsdWVJRCgp
ICE9IENTU1ZhbHVlSW52YWxpZCkKLSAgICAgICAgICAgIGFsaWdubWVudERhdGEuc2V0UG9zaXRp
b24oY29udGVudFZhbHVlLnBvc2l0aW9uKCkuZ2V0KCkpOwotICAgICAgICBpZiAoY29udGVudFZh
bHVlLm92ZXJmbG93KCktPnZhbHVlSUQoKSAhPSBDU1NWYWx1ZUludmFsaWQpCi0gICAgICAgICAg
ICBhbGlnbm1lbnREYXRhLnNldE92ZXJmbG93KGNvbnRlbnRWYWx1ZS5vdmVyZmxvdygpLmdldCgp
KTsKKyAgICBpZiAoIWlzPENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZT4odmFsdWUpKQogICAg
ICAgICByZXR1cm4gYWxpZ25tZW50RGF0YTsKLSAgICB9Ci0gICAgaWYgKCFpczxDU1NQcmltaXRp
dmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gYWxpZ25tZW50RGF0YTsKLSAgICBhdXRv
JiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSk7Ci0g
ICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS52YWx1ZUlEKCkpIHsKLSAgICBjYXNlIENTU1ZhbHVl
U3RyZXRjaDoKLSAgICBjYXNlIENTU1ZhbHVlU3BhY2VCZXR3ZWVuOgotICAgIGNhc2UgQ1NTVmFs
dWVTcGFjZUFyb3VuZDoKLSAgICAgICAgYWxpZ25tZW50RGF0YS5zZXREaXN0cmlidXRpb24ocHJp
bWl0aXZlVmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1ZhbHVlRmxleFN0YXJ0
OgotICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgotICAgIGNhc2UgQ1NTVmFsdWVDZW50ZXI6Ci0g
ICAgICAgIGFsaWdubWVudERhdGEuc2V0UG9zaXRpb24ocHJpbWl0aXZlVmFsdWUpOwotICAgICAg
ICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICB9CisgICAgYXV0byYgY29udGVudFZhbHVlID0gZG93bmNhc3Q8Q1NTQ29udGVudERpc3RyaWJ1
dGlvblZhbHVlPih2YWx1ZSk7CisgICAgaWYgKGNvbnRlbnRWYWx1ZS5kaXN0cmlidXRpb24oKS0+
dmFsdWVJRCgpICE9IENTU1ZhbHVlSW52YWxpZCkKKyAgICAgICAgYWxpZ25tZW50RGF0YS5zZXRE
aXN0cmlidXRpb24oY29udGVudFZhbHVlLmRpc3RyaWJ1dGlvbigpLmdldCgpKTsKKyAgICBpZiAo
Y29udGVudFZhbHVlLnBvc2l0aW9uKCktPnZhbHVlSUQoKSAhPSBDU1NWYWx1ZUludmFsaWQpCisg
ICAgICAgIGFsaWdubWVudERhdGEuc2V0UG9zaXRpb24oY29udGVudFZhbHVlLnBvc2l0aW9uKCku
Z2V0KCkpOworICAgIGlmIChjb250ZW50VmFsdWUub3ZlcmZsb3coKS0+dmFsdWVJRCgpICE9IENT
U1ZhbHVlSW52YWxpZCkKKyAgICAgICAgYWxpZ25tZW50RGF0YS5zZXRPdmVyZmxvdyhjb250ZW50
VmFsdWUub3ZlcmZsb3coKS5nZXQoKSk7CiAgICAgcmV0dXJuIGFsaWdubWVudERhdGE7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA4MzE0ZDc0N2EwMzA3
YzM0MGFkMDM5ZTJkY2Q0YjlmMWQzODY3ZDk2Li41NjUxNTk0M2EyNjQxNGUyMDUzMmQyZGI1NTBm
ZjkyNmYwMDNjM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBA
IC02Miw3ICs2Miw2IEBAIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIHN0cmljdENTU1BhcnNlckNv
bnRleHQoKQogQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChDU1NQYXJzZXJNb2Rl
IG1vZGUsIGNvbnN0IFVSTCYgYmFzZVVSTCkKICAgICA6IGJhc2VVUkwoYmFzZVVSTCkKICAgICAs
IG1vZGUobW9kZSkKLSAgICAsIGNzc0dyaWRMYXlvdXRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKQogewogI2lm
IFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogRm9yY2UgdGhlIHNpdGUgc3BlY2lmaWMgcXVp
cmsgYmVsb3cgdG8gd29yayBvbiBpT1MuIEludmVzdGlnYXRpbmcgb3RoZXIgc2l0ZSBzcGVjaWZp
YyBxdWlya3MKQEAgLTc3LDcgKzc2LDYgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29u
dGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXNlVVJMLAogICAgICwg
Y2hhcnNldChjaGFyc2V0KQogICAgICwgbW9kZShkb2N1bWVudC5pblF1aXJrc01vZGUoKSA/IEhU
TUxRdWlya3NNb2RlIDogSFRNTFN0YW5kYXJkTW9kZSkKICAgICAsIGlzSFRNTERvY3VtZW50KGRv
Y3VtZW50LmlzSFRNTERvY3VtZW50KCkpCi0gICAgLCBjc3NHcmlkTGF5b3V0RW5hYmxlZChkb2N1
bWVudC5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCiAgICAgLCBoYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luKHNoZWV0QmFzZVVSTC5pc051bGwoKSB8fCBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LmNhblJlcXVlc3QoYmFzZVVSTCkpCiB7CiAgICAgCkBAIC0xMDcsNyArMTA1LDYgQEAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRl
eHQmIGIpCiAgICAgICAgICYmIGEuY2hhcnNldCA9PSBiLmNoYXJzZXQKICAgICAgICAgJiYgYS5t
b2RlID09IGIubW9kZQogICAgICAgICAmJiBhLmlzSFRNTERvY3VtZW50ID09IGIuaXNIVE1MRG9j
dW1lbnQKLSAgICAgICAgJiYgYS5jc3NHcmlkTGF5b3V0RW5hYmxlZCA9PSBiLmNzc0dyaWRMYXlv
dXRFbmFibGVkCiAgICAgICAgICYmIGEubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPT0gYi5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcwogICAgICAgICAmJiBhLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZSA9PSBiLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZQogICAgICAg
ICAmJiBhLnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgPT0gYi51c2VM
ZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggZTYyY2IyOWYxMDJhMjRk
ZjNmYThjMzMwZTAyNTY3MWIyNDZlNDZiZS4uNGRkODM3ODNmMTY0OTRjYWE1YWIwMjI5YzY2NDMx
ODRiMjBjZjJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJz
ZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
RmFzdFBhdGhzLmNwcApAQCAtNTY4LDggKzU2OCw3IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhz
Ojppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
CiAgICAgICAgIC8vIHRhYmxlLWNvbHVtbi1ncm91cCB8IHRhYmxlLWNvbHVtbiB8IHRhYmxlLWNl
bGwgfCB0YWJsZS1jYXB0aW9uIHwgLXdlYmtpdC1ib3ggfCAtd2Via2l0LWlubGluZS1ib3ggfCBu
b25lCiAgICAgICAgIC8vIGZsZXggfCBpbmxpbmUtZmxleCB8IC13ZWJraXQtZmxleCB8IC13ZWJr
aXQtaW5saW5lLWZsZXggfCBncmlkIHwgaW5saW5lLWdyaWQKICAgICAgICAgcmV0dXJuICh2YWx1
ZUlEID49IENTU1ZhbHVlSW5saW5lICYmIHZhbHVlSUQgPD0gQ1NTVmFsdWVDb250ZW50cykgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUKLSAgICAgICAgICAgIHx8IChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSAmJiAodmFs
dWVJRCA9PSBDU1NWYWx1ZUdyaWQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUlubGluZUdyaWQpKQot
ICAgICAgICA7CisgICAgICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlR3JpZCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlSW5saW5lR3JpZDsKICAgICBjYXNlIENTU1Byb3BlcnR5RG9taW5hbnRC
YXNlbGluZToKICAgICAgICAgLy8gYXV0byB8IHVzZS1zY3JpcHQgfCBuby1jaGFuZ2UgfCByZXNl
dC1zaXplIHwgaWRlb2dyYXBoaWMgfAogICAgICAgICAvLyBhbHBoYWJldGljIHwgaGFuZ2luZyB8
IG1hdGhlbWF0aWNhbCB8IGNlbnRyYWwgfCBtaWRkbGUgfApAQCAtNzA3LDI0ICs3MDYsMTIgQEAg
Ym9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFs
dWVIb3Jpem9udGFsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVWZXJ0aWNhbCB8fCB2YWx1ZUlEID09
IENTU1ZhbHVlQXV0bzsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUHJvZ3Jlc3Np
b246CiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVSZXZlcnNlOwotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnbkNvbnRlbnQ6Ci0g
ICAgICAgIC8vIEZJWE1FOiBQZXIgQ1NTIGFsaWdubWVudCwgdGhpcyBwcm9wZXJ0eSBzaG91bGQg
YWNjZXB0IGFuIG9wdGlvbmFsIDxvdmVyZmxvdy1wb3NpdGlvbj4uIFdlIHNob3VsZCBzaGFyZSB0
aGlzIHBhcnNpbmcgY29kZSB3aXRoICdqdXN0aWZ5LXNlbGYnLgotICAgICAgICByZXR1cm4gdmFs
dWVJRCA9PSBDU1NWYWx1ZUZsZXhTdGFydCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlRmxleEVuZCB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlQ2VudGVyIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTcGFjZUJl
dHdlZW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNwYWNlQXJvdW5kIHx8IHZhbHVlSUQgPT0gQ1NT
VmFsdWVTdHJldGNoOwotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnbkl0ZW1zOgotICAgICAgICAv
LyBGSVhNRTogUGVyIENTUyBhbGlnbm1lbnQsIHRoaXMgcHJvcGVydHkgc2hvdWxkIGFjY2VwdCB0
aGUgc2FtZSBhcmd1bWVudHMgYXMgJ2p1c3RpZnktc2VsZicgc28gd2Ugc2hvdWxkIHNoYXJlIGl0
cyBwYXJzaW5nIGNvZGUuCi0gICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlRmxleFN0
YXJ0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4RW5kIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVD
ZW50ZXIgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJhc2VsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVTdHJldGNoOwotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnblNlbGY6Ci0gICAgICAgIC8vIEZJ
WE1FOiBQZXIgQ1NTIGFsaWdubWVudCwgdGhpcyBwcm9wZXJ0eSBzaG91bGQgYWNjZXB0IHRoZSBz
YW1lIGFyZ3VtZW50cyBhcyAnanVzdGlmeS1zZWxmJyBzbyB3ZSBzaG91bGQgc2hhcmUgaXRzIHBh
cnNpbmcgY29kZS4KLSAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVGbGV4U3RhcnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUZsZXhFbmQg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNlbnRlciB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQmFzZWxp
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN0cmV0Y2g7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZs
ZXhEaXJlY3Rpb246CiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlUm93IHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVSb3dSZXZlcnNlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW4g
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbHVtblJldmVyc2U7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eUZsZXhXcmFwOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5vd3JhcCB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlV3JhcCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV3JhcFJldmVyc2U7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEh5cGhlbnM6CiAgICAgICAgIHJldHVybiB2YWx1
ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlTWFudWFsOwotICAgIGNhc2UgQ1NTUHJvcGVydHlKdXN0aWZ5Q29udGVudDoK
LSAgICAgICAgLy8gRklYTUU6IFBlciBDU1MgYWxpZ25tZW50LCB0aGlzIHByb3BlcnR5IHNob3Vs
ZCBhY2NlcHQgYW4gb3B0aW9uYWwgPG92ZXJmbG93LXBvc2l0aW9uPi4gV2Ugc2hvdWxkIHNoYXJl
IHRoaXMgcGFyc2luZyBjb2RlIHdpdGggJ2p1c3RpZnktc2VsZicuCi0gICAgICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlRmxleFN0YXJ0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4RW5k
IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDZW50ZXIgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNwYWNl
QmV0d2VlbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3BhY2VBcm91bmQ7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEZvbnRLZXJuaW5nOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NW
YWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlTm9uZTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGluZzoKQEAgLTk3
NiwxMSArOTYzLDYgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5
SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250T3B0
aWNhbFNpemluZzoKICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIENTU1By
b3BlcnR5SnVzdGlmeUNvbnRlbnQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduQ29udGVudDoK
LSAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25JdGVtczoKLSAgICBjYXNlIENTU1Byb3BlcnR5QWxp
Z25TZWxmOgotICAgICAgICByZXR1cm4gIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
TW9kZS5oCmluZGV4IGUxMjU4YjlhNzc4ZWE2YmMzNWIyYzI0MTcwMWZkOThhODcyNjQyNDYuLjA1
NzAwZmZhZmIzMTc4MmE1MzAwMGVhMDBjNDAzZTU4NjI1YWQ4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyTW9kZS5oCkBAIC05Niw3ICs5Niw2IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgY2hhcnNldDsKICAgICBDU1NQYXJzZXJNb2RlIG1vZGUgeyBIVE1MU3RhbmRhcmRN
b2RlIH07CiAgICAgYm9vbCBpc0hUTUxEb2N1bWVudCB7IGZhbHNlIH07Ci0gICAgYm9vbCBjc3NH
cmlkTGF5b3V0RW5hYmxlZCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykK
ICAgICBib29sIHRleHRBdXRvc2l6aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTEz
NSw3ICsxMzQsNiBAQCBzdHJ1Y3QgQ1NTUGFyc2VyQ29udGV4dEhhc2ggewogICAgICAgICAgICAg
aGFzaCBePSBTdHJpbmdIYXNoOjpoYXNoKGtleS5jaGFyc2V0KTsKICAgICAgICAgdW5zaWduZWQg
Yml0cyA9IGtleS5pc0hUTUxEb2N1bWVudCAgICAgICAgICAgICAgICAgIDw8IDAKICAgICAgICAg
ICAgICYga2V5LmlzSFRNTERvY3VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDEK
LSAgICAgICAgICAgICYga2V5LmNzc0dyaWRMYXlvdXRFbmFibGVkICAgICAgICAgICAgICAgICAg
ICAgIDw8IDIKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgICAgICAgICAgJiBrZXku
dGV4dEF1dG9zaXppbmdFbmFibGVkICAgICAgICAgICAgICAgICAgICAgPDwgMwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4
IDA5MTBmMGQyYzc5MTBiMGYyMGM1MTg4YjY5MjZhNTYxMGNmZTYxNTUuLmJlNWNkN2E3OGFmYjNl
MzUyM2Y1OTk0ZTcwNmI5YWYzYTBiNDg1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC00Mjg4LDQzICs0Mjg4LDI3IEBAIFJlZlB0
cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hc2tSZXBlYXRZ
OgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25JdGVt
czoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91dEVuYWJsZWQpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVBbGlnbkl0ZW1zKG1f
cmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlKdXN0aWZ5U2VsZjoKICAgICAgICAgcmV0dXJu
IGNvbnN1bWVTZWxmUG9zaXRpb25PdmVyZmxvd1Bvc2l0aW9uKG1fcmFuZ2UsIGlzU2VsZlBvc2l0
aW9uT3JMZWZ0T3JSaWdodEtleXdvcmQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnblNlbGY6
Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb25zdW1lU2VsZlBvc2l0aW9uT3Zl
cmZsb3dQb3NpdGlvbihtX3JhbmdlLCBpc1NlbGZQb3NpdGlvbktleXdvcmQpOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlKdXN0aWZ5SXRlbXM6Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRM
YXlvdXRFbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVy
biBjb25zdW1lSnVzdGlmeUl0ZW1zKG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlk
Q29sdW1uRW5kOgogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkQ29sdW1uU3RhcnQ6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUdyaWRSb3dFbmQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRSb3dTdGFy
dDoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91dEVuYWJsZWQpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVHcmlkTGluZShtX3Jh
bmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZEF1dG9Db2x1bW5zOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlHcmlkQXV0b1Jvd3M6Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRMYXlv
dXRFbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBj
b25zdW1lR3JpZFRyYWNrTGlzdChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSwgR3JpZEF1dG8pOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkVGVtcGxhdGVDb2x1bW5zOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlHcmlkVGVtcGxhdGVSb3dzOgotICAgICAgICBpZiAoIW1fY29udGV4dC5jc3NHcmlkTGF5
b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4g
Y29uc3VtZUdyaWRUZW1wbGF0ZXNSb3dzT3JDb2x1bW5zKG1fcmFuZ2UsIG1fY29udGV4dC5tb2Rl
KTsKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZFRlbXBsYXRlQXJlYXM6Ci0gICAgICAgIGlmICgh
bV9jb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgICAgIHJldHVybiBjb25zdW1lR3JpZFRlbXBsYXRlQXJlYXMobV9yYW5nZSk7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRBdXRvRmxvdzoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQu
Y3NzR3JpZExheW91dEVuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuIGNvbnN1bWVHcmlkQXV0b0Zsb3cobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdExpbmVHcmlkOgogICAgICAgICByZXR1cm4gY29uc3VtZUxpbmVHcmlkKG1fcmFu
Z2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjg2MGI2ZjkxZWYxOWI0MWRhNzI3MWQz
MjMwNTRlMzFmMzE4ZTQyNS4uMzBkOGZmNWNiYzdkNGFkMzI2ZmE1ZmJmN2E3YWQ5M2M3NDU3ZDc5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTc4LDExICsxMTc4LDYgQEAgQ3VzdG9t
RWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzIERvY3VtZW50Ojp2YWxpZGF0ZUN1c3RvbUVsZW1l
bnROYW1lKGNvbnN0IEF0b20KICAgICByZXR1cm4gQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9u
U3RhdHVzOjpWYWxpZDsKIH0KIAotYm9vbCBEb2N1bWVudDo6aXNDU1NHcmlkTGF5b3V0RW5hYmxl
ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpOwotfQotCiBFeGNlcHRpb25PcjxSZWY8
RWxlbWVudD4+IERvY3VtZW50OjpjcmVhdGVFbGVtZW50TlMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSkKIHsKICAgICBhdXRvIHBh
cnNlUmVzdWx0ID0gcGFyc2VRdWFsaWZpZWROYW1lKG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNhMDAxNDk5ODJjOTJjMDVmMTFjOWQ1N2UwZTZl
NzYzOTE4ZjYzMWQuLjA5ODc5YzdlYmExNDU4NjViNTQ4Y2NjNGM1ODM4YmYwNzk3OTU4N2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00MjMsOCArNDIzLDYgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIEN1c3RvbUVsZW1lbnROYW1lVmFsaWRhdGlvblN0YXR1cyB2YWxpZGF0ZUN1c3RvbUVsZW1l
bnROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCi0gICAgYm9vbCBpc0NTU0dyaWRMYXlvdXRF
bmFibGVkKCkgY29uc3Q7Ci0KICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8UmFuZ2U+IGNhcmV0
UmFuZ2VGcm9tUG9pbnQoaW50IHgsIGludCB5KTsKICAgICBSZWZQdHI8UmFuZ2U+IGNhcmV0UmFu
Z2VGcm9tUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIGNsaWVudFBvaW50KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCAwYzViZTY0NzE3Njc0
MTdlY2M2NzM4OGZmMzQ5YjczMTc1MjFmZGYzLi5lN2Y2Zjc2YmNjNjA3ZjlmYjRiOTZiODhkZTc0
ODJkY2JiZTQ3ZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaApAQCAtMjAyLDkgKzIwMiw2IEBAIHB1YmxpYzoKICAgICBib29sIGRvd25sb2FkQXR0
cmlidXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNEb3dubG9hZEF0dHJpYnV0ZUVuYWJs
ZWQ7IH0KICNlbmRpZgogCi0gICAgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChib29sIGlz
RW5hYmxlZCkgeyBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9v
bCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9jc3NHcmlkTGF5b3V0
RW5hYmxlZDsgfQotCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKICAgICB2b2lk
IHNldEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2ludGVy
c2VjdGlvbk9ic2VydmVyRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgaW50ZXJzZWN0
aW9uT2JzZXJ2ZXJFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcnNlY3Rpb25PYnNlcnZl
ckVuYWJsZWQ7IH0KQEAgLTM1Myw4ICszNTAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0Rv
d25sb2FkQXR0cmlidXRlRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAotICAgIGJvb2wgbV9j
c3NHcmlkTGF5b3V0RW5hYmxlZCB7IHRydWUgfTsKLQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCiAgICAgYm9vbCBtX2VuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmlu
ZGV4IGVhOWQyMzZiY2VmYmQ1ZGJjOWI2ZTMxN2QzZTUzMGE0MmYxNTAwY2IuLmVmYjlhMjc4ZDM3
OGM0OWU5NDAxZWQxNWY1MjdmODIzNjA2MTI5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMTM2OSwxMCArMTM2OSw4IEBAIHN0YXRp
YyBMYXlvdXRVbml0IGFsaWdubWVudE9mZnNldChMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFj
ZSwgSXRlbVBvc2l0aW9uIHBvCiAgICAgY2FzZSBJdGVtUG9zaXRpb25FbmQ6CiAgICAgY2FzZSBJ
dGVtUG9zaXRpb25MZWZ0OgogICAgIGNhc2UgSXRlbVBvc2l0aW9uUmlnaHQ6Ci0gICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhlc2UuIFRoZSBleHRlbmRlZCBncmFtbWFyCi0gICAgICAgIC8v
IGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQgc28gd2Ugc2hvdWxkbid0IGhpdCB0aGlzIGNvZGVw
YXRoLgotICAgICAgICAvLyBUaGUgbmV3IGdyYW1tYXIgaXMgb25seSB1c2VkIHdoZW4gR3JpZCBM
YXlvdXQgZmVhdHVyZSBpcyBlbmFibGVkLgotICAgICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworICAg
ICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZSBleHRlbmRlZCBncmFtbWFyLCBlbmFibGVkIHdo
ZW4gdGhlIEdyaWQgTGF5b3V0CisgICAgICAgIC8vIGZlYXR1cmUgd2FzIGVuYWJsZWQgYnkgZGVm
YXVsdC4KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggN2ZiYTg4Y2Q4OTc2
YmM2YTI0Yzk4YzY2M2NjMmIwNDViMzY2NmMxNS4uY2ExYTg0MTMwMWNkNzk3NzhhM2U5MjYzNzBi
NDJkNjlhNjM5NmE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC0yMzUsMTEgKzIzNSw2IEBAIFJlbmRlclN0eWxlIFJlbmRlclN0eWxl
OjpyZXBsYWNlKFJlbmRlclN0eWxlJiYgbmV3U3R5bGUpCiAgICAgcmV0dXJuIFJlbmRlclN0eWxl
IHsgKnRoaXMsIFdURk1vdmUobmV3U3R5bGUpIH07CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6Omlz
Q1NTR3JpZExheW91dEVuYWJsZWQoKQotewotICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsKLX0KLQogc3Rh
dGljIFN0eWxlU2VsZkFsaWdubWVudERhdGEgcmVzb2x2ZWRTZWxmQWxpZ25tZW50KGNvbnN0IFN0
eWxlU2VsZkFsaWdubWVudERhdGEmIHZhbHVlLCBJdGVtUG9zaXRpb24gbm9ybWFsVmFsdWVCZWhh
dmlvcikKIHsKICAgICBpZiAodmFsdWUucG9zaXRpb24oKSA9PSBJdGVtUG9zaXRpb25MZWdhY3kg
fHwgdmFsdWUucG9zaXRpb24oKSA9PSBJdGVtUG9zaXRpb25Ob3JtYWwgfHwgdmFsdWUucG9zaXRp
b24oKSA9PSBJdGVtUG9zaXRpb25BdXRvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAppbmRleCBmOWQ4YzYwZmQ1M2E1MmU3OTE4ODgwYjdhOWFmNzA4Nzdm
M2JjNjg5Li5mYjQzNTRmOGM2YjgzNDFiMjAxZWU4ZTJmOTk1YjY0YmU5NWZiMjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTQ5NSw3ICsx
NDk1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQgaW5pdGlhbE9yZGVyKCkgeyByZXR1cm4g
MDsgfQogICAgIHN0YXRpYyBTdHlsZVNlbGZBbGlnbm1lbnREYXRhIGluaXRpYWxKdXN0aWZ5SXRl
bXMoKSB7IHJldHVybiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhKEl0ZW1Qb3NpdGlvbkxlZ2FjeSwg
T3ZlcmZsb3dBbGlnbm1lbnREZWZhdWx0KTsgfQogICAgIHN0YXRpYyBTdHlsZVNlbGZBbGlnbm1l
bnREYXRhIGluaXRpYWxTZWxmQWxpZ25tZW50KCkgeyByZXR1cm4gU3R5bGVTZWxmQWxpZ25tZW50
RGF0YShJdGVtUG9zaXRpb25BdXRvLCBPdmVyZmxvd0FsaWdubWVudERlZmF1bHQpOyB9Ci0gICAg
c3RhdGljIFN0eWxlU2VsZkFsaWdubWVudERhdGEgaW5pdGlhbERlZmF1bHRBbGlnbm1lbnQoKSB7
IHJldHVybiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSA/
IEl0ZW1Qb3NpdGlvbk5vcm1hbCA6IEl0ZW1Qb3NpdGlvblN0cmV0Y2gsIE92ZXJmbG93QWxpZ25t
ZW50RGVmYXVsdCk7IH0KKyAgICBzdGF0aWMgU3R5bGVTZWxmQWxpZ25tZW50RGF0YSBpbml0aWFs
RGVmYXVsdEFsaWdubWVudCgpIHsgcmV0dXJuIFN0eWxlU2VsZkFsaWdubWVudERhdGEoSXRlbVBv
c2l0aW9uTm9ybWFsLCBPdmVyZmxvd0FsaWdubWVudERlZmF1bHQpOyB9CiAgICAgc3RhdGljIFN0
eWxlQ29udGVudEFsaWdubWVudERhdGEgaW5pdGlhbENvbnRlbnRBbGlnbm1lbnQoKSB7IHJldHVy
biBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhKENvbnRlbnRQb3NpdGlvbk5vcm1hbCwgQ29udGVu
dERpc3RyaWJ1dGlvbkRlZmF1bHQsIE92ZXJmbG93QWxpZ25tZW50RGVmYXVsdCk7IH0KICAgICBz
dGF0aWMgRUZsZXhEaXJlY3Rpb24gaW5pdGlhbEZsZXhEaXJlY3Rpb24oKSB7IHJldHVybiBGbG93
Um93OyB9CiAgICAgc3RhdGljIEVGbGV4V3JhcCBpbml0aWFsRmxleFdyYXAoKSB7IHJldHVybiBG
bGV4Tm9XcmFwOyB9CkBAIC0xNTc5LDggKzE1NzksNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFRl
eHRTaXplQWRqdXN0bWVudCBpbml0aWFsVGV4dFNpemVBZGp1c3QoKSB7IHJldHVybiBUZXh0U2l6
ZUFkanVzdG1lbnQoKTsgfQogI2VuZGlmCiAKLSAgICBzdGF0aWMgYm9vbCBpc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCk7Ci0KICAgICBzdGF0aWMgV2lsbENoYW5nZURhdGEqIGluaXRpYWxXaWxsQ2hh
bmdlKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IGQ5MmU5MGQz
YjMwOWYxNzI3YTMwYWEyMmM3NTE1YTkzM2U4MWQ5ODAuLmY1NTVhYjUwYTVlMzkzYmEyNGJkYmZi
MWE2NDQ1NDRmMGQ0YmNkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcApAQCAtMTA0LDcgKzEwNCw2IEBAIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6
QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKQogICAgICwgbV9pbmRleGVkREJXb3JrZXJzRW5hYmxlZChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmluZGV4ZWREQldvcmtlcnNFbmFibGVkKCkpCiAj
ZW5kaWYKLSAgICAsIG1fY3NzR3JpZExheW91dEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCiAjaWYgRU5BQkxF
KFdFQkdMMikKICAgICAsIG1fd2ViR0wyRW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYkdMMkVuYWJsZWQoKSkKICNlbmRpZgpAQCAtMjA1LDcgKzIwNCw2
IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oU2V0dGluZ3MmIHNl
dHRpbmdzKQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCiAgICAgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbmRleGVkREJXb3JrZXJz
RW5hYmxlZChtX2luZGV4ZWREQldvcmtlcnNFbmFibGVkKTsKICNlbmRpZgotICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91dEVuYWJsZWQo
bV9jc3NHcmlkTGF5b3V0RW5hYmxlZCk7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYkdMMkVuYWJsZWQobV93ZWJH
TDJFbmFibGVkKTsKICNlbmRpZgpAQCAtNzQwLDExICs3MzgsNiBAQCB2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldEluZGV4ZWREQldvcmtlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgog
fQogCi12b2lkIEludGVybmFsU2V0dGluZ3M6OnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKLXsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldFdlYkdMMkVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogI2lmIEVOQUJMRShXRUJH
TDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDdkNzdm
ZjVhNjJkNTg5MTMwYmJiOTY0YjQ4YzQ1YTkyZTZmOWIwYjguLmZiYTM2ODZlMzFjMDQ2NWYwZWZk
YTdmZDQ4YWFlMDZkNjA4OTNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5oCkBAIC0xMTksNyArMTE5LDYgQEAgcHVibGljOgogCiAgICAgLy8gUnVudGltZUVu
YWJsZWRGZWF0dXJlcy4KICAgICBzdGF0aWMgdm9pZCBzZXRJbmRleGVkREJXb3JrZXJzRW5hYmxl
ZChib29sKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChib29sKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRXZWJHTDJFbmFibGVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lk
IHNldFdlYkdQVUVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0V2ViVlJFbmFibGVk
KGJvb2wpOwpAQCAtMjAwLDcgKzE5OSw2IEBAIHByaXZhdGU6CiAKICAgICAgICAgLy8gUnVudGlt
ZSBlbmFibGVkIHNldHRpbmdzLgogICAgICAgICBib29sIG1faW5kZXhlZERCV29ya2Vyc0VuYWJs
ZWQ7Ci0gICAgICAgIGJvb2wgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZDsKICAgICAgICAgYm9vbCBt
X3dlYkdMMkVuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV93ZWJHUFVFbmFibGVkOwogICAgICAgICBi
b29sIG1fd2ViVlJFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwKaW5kZXggZDA3ZTY2ZWI2OTdlYTJhOTkxMTkxZTNlMjVlZGVkNjU3MThiZjFiMi4u
ZmQ2YjNhNGVlZjA3MGU4ZDYzYTQ4YzMwNTNkMTA5MmMzMGVhZDA2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC04OCw3ICs4OCw2IEBAIGVudW0g
Rm9udExvYWRUaW1pbmdPdmVycmlkZSB7ICJCbG9jayIsICJTd2FwIiwgIkZhaWx1cmUiIH07CiAK
ICAgICAvLyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLgogICAgIHZvaWQgc2V0SW5kZXhlZERCV29y
a2Vyc0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKLSAgICB2b2lkIHNldENTU0dyaWRMYXlvdXRF
bmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRXZWJHTDJFbmFibGVkKGJvb2xl
YW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRXZWJHUFVFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7
CiAgICAgdm9pZCBzZXRXZWJWUkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGEyNDBhODhlNzBiYWQ3OGE3ZDM5MTQ4
M2FhNjJlMzFiM2ZjMjU5NTMuLjZjMDFiODljZTFjMGZhOGJjOGYxYmYzN2UyMDA3ZGZlZDc1MjQ3
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtNjg2LDE0
ICs2ODYsNiBAQCBTaG91bGRTdXBwcmVzc1RleHRJbnB1dEZyb21FZGl0aW5nRHVyaW5nUHJvdmlz
aW9uYWxOYXZpZ2F0aW9uOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKIAot
Q1NTR3JpZExheW91dEVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgZGVmYXVsdFZhbHVlOiB0cnVl
Ci0gIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIEdyaWQiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlw
dGlvbjogIkNTUyBHcmlkIExheW91dCBNb2R1bGUgc3VwcG9ydCIKLSAgYmluZGluZzogUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcwotICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJl
cwotCiBHYW1lcGFkc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBhYTIzMDhhOWFhN2VhNzJiMjliZmRkZGIzNTFmNjA0
OWRmNzk0YmRjLi5iZDYwOTcwNmMwODU0MDM4MGEzZDQ1NzhmOGNkNzcxYTg0ZjYyOTlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKQEAgLTIwNSw5ICsyMDUsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxl
OjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihXZWJQYWdlR3JvdXBQcm94eSog
cGFnZQogICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dFdyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZChlbmFibGVkKTsKICNlbmRpZgogCi0gICAgaWYgKHBy
ZWZlcmVuY2UgPT0gIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIikKLSAgICAgICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5hYmxl
ZChlbmFibGVkKTsKLQogICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXRJbnRlcmFjdGl2ZUZv
cm1WYWxpZGF0aW9uRW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuc2V0SW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQoZW5hYmxl
ZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDY0ZDY3MmE4YjU3NDA0ZGE2MWJlZWZjODYy
M2ZkZTE1YTE4YjQ0Y2IuLjNmNDhhYjA2MzZhZTNlYjE0NDg1MGE1Njk4ZTg3NjAwMjFiN2FmOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTc4LDcgKzE3OCw2IEBACiAjZGVmaW5lIFdlYktp
dFJlYWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UmVhZGFi
bGVCeXRlU3RyZWFtQVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVF
bmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRE
aXJlY3RvcnlVcGxvYWRFbmFibGVkIgotI2RlZmluZSBXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxl
ZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0VmlzdWFsVmlld3BvcnRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdw
b3J0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRBUElFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TW9kZXJuTWVk
aWFDb250cm9sc0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5NWRlZTljNThiMDY5NjUzZDc4NDBmNzkzNTBhNTU4
ZDYzODBiNTBkLi5mMTQ1Y2Y4ZjA1N2ZjMTExM2Q3NGVjMTJmOGJiYTkzZTM3NTY3ODBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
QEAgLTYzOSw3ICs2MzksNiBAQCArICh2b2lkKWluaXRpYWxpemUKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkUHJlZmVy
ZW5jZUtleSwKICNlbmRpZgogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBX
ZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSwKLSAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOllFU10sIFdlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkUHJlZmVy
ZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0V2Vi
QW5pbWF0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAt
MzA1NiwxNiArMzA1NSw2IEBAIC0gKEJPT0wpZGlyZWN0b3J5VXBsb2FkRW5hYmxlZAogICAgIHJl
dHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdERpcmVjdG9yeVVwbG9hZEVuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKIH0KIAotLSAoQk9PTClpc0NTU0dyaWRMYXlvdXRFbmFibGVkCi17Ci0g
ICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTR3JpZExheW91dEVuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKLX0KLQotLSAodm9pZClzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDoo
Qk9PTClmbGFnCi17Ci0gICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRD
U1NHcmlkTGF5b3V0RW5hYmxlZFByZWZlcmVuY2VLZXldOwotfQotCiAtIChCT09MKXZpc3VhbFZp
ZXdwb3J0RW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktp
dFZpc3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VLZXldOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXgg
NGZmZmM1OTcxMDNiMDRiNmVlNTZhN2RjY2I4YTVjMGEwY2MxMWY5Mi4uNzdmNjk1MGEyYzFiMThl
NWJkNzg5OGM2Njk0ZTA5MzdhNzNiOWIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC01NTgsOSArNTU4
LDYgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50
ZXJuYWxOb3RpZmljYXRpb247CiAtICh2b2lkKXNldERpcmVjdG9yeVVwbG9hZEVuYWJsZWQ6KEJP
T0wpZmxhZzsKIC0gKEJPT0wpZGlyZWN0b3J5VXBsb2FkRW5hYmxlZDsKIAotLSAodm9pZClzZXRD
U1NHcmlkTGF5b3V0RW5hYmxlZDooQk9PTClmbGFnOwotLSAoQk9PTClpc0NTU0dyaWRMYXlvdXRF
bmFibGVkOwotCiAtICh2b2lkKXNldFdlYkFuaW1hdGlvbnNFbmFibGVkOihCT09MKWZsYWc7CiAt
IChCT09MKXdlYkFuaW1hdGlvbnNFbmFibGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZWMyNmIyYjk0NTZjMjZiNzZjYzE2ZmRiMjg0NzA0OWQ2
YmU0NmY0OC4uYzI4ODczZjFhM2I0OGVjOWVjNTFlMTU4OGE1NzJmMzZmYzlkNzhmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzAyNCw4ICszMDI0
LDYgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZl
cmVuY2VzCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRE
b3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQoW3ByZWZlcmVuY2VzIGRvd25sb2FkQXR0cmlidXRlRW5h
YmxlZF0pOwogI2VuZGlmCiAKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldENTU0dyaWRMYXlvdXRFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0NTU0dyaWRMYXlv
dXRFbmFibGVkXSk7Ci0KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnNldFdlYkFuaW1hdGlvbnNFbmFibGVkKFtwcmVmZXJlbmNlcyB3ZWJBbmltYXRpb25zRW5h
YmxlZF0pOwogCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNFUlZFUikKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNGU3MGQ0ZjhmYTU4OGQx
ZTE3ZGZmZTlhNDZhNmZmMThhNjZlZWZmLi45ZTQ4ZjkzNmY0MGJiMjBmMTQwNjBlMDJkNTlmZjc0
NTBkNDExOGVmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDMtMDggIEphdmllciBGZXJuYW5kZXogIDxqZmVy
bmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEdyaWRMYXlvdXQgcnVudGltZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM0
ODQKKworICAgICAgICBUaGUgR3JpZCBMYXlvdXQgZmVhdHVyZSBoYXMgYmVlbiBlbmFibGVkIGJ5
IGRlZmF1bHQgZm9yIGFsbW9zdCBhCisgICAgICAgIHllYXIsIHNvIEkgdGhpbmsgaXQncyB0aW1l
IHRvIHJlbW92ZSB0aGUgcnVudGltZSBmbGFnIGFuZCB0aGUKKyAgICAgICAgY29kZXBhdGggcnVu
IHdoZW4gdGhlIGZlYXR1cmUgaXMgZGlzYWJsZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW06CisgICAgICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyk6CisKIDIwMTgtMDMt
MDggIE1zMmdlciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVwZGF0ZSBl
eHBlY3RhdGlvbnMgZm9yIEFQSSB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCmluZGV4IDJlZDM4ZDZmODY3MTZkNDMwYmQ4YmMzNDdhNTdjMjBlNzZkZWJi
OTYuLjE1NWZmNWRkODMzOTYwMTJiZTEyMjM3ZDA5MTQ0ZTU0YmM5ZDhjOTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTg0MCw3ICs4NDAsNiBAQCBz
dGF0aWMgTlNTdHJpbmcgKmxpYnJhcnlQYXRoRm9yRHVtcFJlbmRlclRyZWUoKQogCiBzdGF0aWMg
dm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5j
ZXMpCiB7Ci0gICAgW3ByZWZlcmVuY2VzIHNldENTU0dyaWRMYXlvdXRFbmFibGVkOllFU107CiAg
ICAgLy8gRklYTUU6IFNwcmluZ1RpbWluZ0Z1bmN0aW9uCiAgICAgW3ByZWZlcmVuY2VzIHNldEdh
bWVwYWRzRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRMaW5rUHJlbG9hZEVuYWJs
ZWQ6WUVTXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBhNTlkYzliYjM1NDA0OGQzNjRkY2QzZTEzYzUyMGI1ODQyMzI2MTI3
Li4yYTNjM2VmMjkyYjE1NTBmZGE4ZTg2ZWNkZjc5MzdjNTFjY2NmZDdjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTgtMDMtMDggIEphdmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6QGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEdyaWRMYXlvdXQgcnVudGltZSBmbGFnCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM0ODQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgR3JpZExh
eW91dCBydW50aW1lIGZsYWcgaXMgcmVtb3ZlZCBhbmQgdGhlIGZlYXR1cmUKKyAgICAgICAgZW5h
YmxlZCBieSBkZWZhdWx0LCB3ZSBkb24ndCBuZWVkIHRoZSB0ZXN0cyB2ZXJpZnlpbmcgdGhlCisg
ICAgICAgIGNvZGVwYXRocyBydW4gd2hlbiB0aGUgZmVhdHVyZSBpcyBkaXNhYmxlZC4KKworICAg
ICAgICAqIGNzczMvZmxleGJveC9mbGV4Ym94LWxpbmVzLW11c3QtYmUtc3RyZXRjaGVkLWJ5LWRl
ZmF1bHQuaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvbmV3LWFsaWdubWVudC12YWx1ZXMt
aW52YWxpZC1pZi1ncmlkLW5vdC1lbmFibGVkLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjc3MzL2ZsZXhib3gvbmV3LWFsaWdubWVudC12YWx1ZXMtaW52YWxpZC1pZi1ncmlkLW5v
dC1lbmFibGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1kaXNhYmxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Nz
cy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgtaW5pdGlhbC12YWx1ZXMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY3NzL2Vuc3VyZS1mbGV4Ym94LWNvbXBh
dGliaWxpdHktd2l0aC1pbml0aWFsLXZhbHVlcy5odG1sOiBSZW1vdmVkLgorCiAyMDE4LTAzLTA4
ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBbaU9TXSBVcGRh
dGUgUE5HIGV4cGVjdGF0aW9ucyBmb3Igc29tZSBNYXRoTUwgcGl4ZWwgdGVzdHMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleGJveC1saW5lcy1tdXN0LWJlLXN0cmV0
Y2hlZC1ieS1kZWZhdWx0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleGJveC1s
aW5lcy1tdXN0LWJlLXN0cmV0Y2hlZC1ieS1kZWZhdWx0Lmh0bWwKaW5kZXggNjdlNjVjZGExNTdi
NDZlMDNlNDkyMzFlNTk4MzcxNDdhZjFhNmExYy4uYTA5MjkwMGU5ZDc3M2IwYTRhZGU4YzZmMzhj
MGE5YjdlYWNkMGUyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXhi
b3gtbGluZXMtbXVzdC1iZS1zdHJldGNoZWQtYnktZGVmYXVsdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZmxleGJveC9mbGV4Ym94LWxpbmVzLW11c3QtYmUtc3RyZXRjaGVkLWJ5LWRlZmF1
bHQuaHRtbApAQCAtMjUsOSArMjUsNiBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1blRlc3QoZ3Jp
ZEVuYWJsZWQpCiB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChncmlkRW5hYmxlZCk7Ci0KICAgICB2
YXIgZmxleENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIGlm
IChncmlkRW5hYmxlZCkKICAgICAgICAgZmxleENvbnRhaW5lci5jbGFzc05hbWUgKz0gImdyaWRF
bmFibGVkIGZsZXgtY29udGFpbmVyIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxl
eGJveC9uZXctYWxpZ25tZW50LXZhbHVlcy1pbnZhbGlkLWlmLWdyaWQtbm90LWVuYWJsZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVz
LWludmFsaWQtaWYtZ3JpZC1ub3QtZW5hYmxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDIxMTdjMzNiOGVjOTRjNDc4ZmIwZTQzNDY0YzJlNjdlMmZmMmVkNWUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVzLWludmFsaWQtaWYtZ3JpZC1ub3Qt
ZW5hYmxlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVRlc3Qg
dG8gdmVyaWZ5IHRoYXQgdGhlIG5ldyBhbGlnbm1lbnQgdmFsdWVzIGFyZSBwYXJzZWQgYXMgaW52
YWxpZCBpZiBHcmlkIExheW91dCBpcyBkaXNhYmxlZCBhbmQgaW4gYW55IGNhc2UgdGhleSBkbyBu
b3QgY2F1c2UgYSBjcmFzaCBiZWNhdXNlIGFzc2VydGlvbnMgaW4gZmxleGJveCBsYXlvdXQgY29k
ZS4KLQotCi1QQVNTIE5ldyBTZWxmLUFsaWdubWVudCB2YWx1ZXMgc2hvdWxkIGJlIGludmFsaWQg
d2hlbiBncmlkIGxheW91dCBpcyBESVNBQkxFRC4gCi1QQVNTIE5ldyBEZWZhdWx0LUFsaWdubWVu
dCB2YWx1ZXMgc2hvdWxkIGJlIGludmFsaWQgd2hlbiBncmlkIGxheW91dCBpcyBESVNBQkxFRC4g
Ci1QQVNTIEV2ZW4gd2hlbiBncmlkIGxheW91dCBpcyBFTkFCTEVELCBuZXcgU2VsZi1BbGlnbm1l
bnQgdmFsdWVzIHNob3VsZCBub3QgdmlvbGF0ZSBhc3NlcnRpb25zIGluIEZsZXhpYmxlQm94IGxh
eW91dCBsb2dpYy4uIAotUEFTUyBFdmVuIHdoZW4gZ3JpZCBsYXlvdXQgaXMgRU5BQkxFRCwgbmV3
IERlZmF1bHQtQWxpZ25tZW50IHZhbHVlcyBzaG91bGQgbm90IHZpb2xhdGUgYXNzZXJ0aW9ucyBp
biBGbGV4aWJsZUJveCBsYXlvdXQgbG9naWMuLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9mbGV4Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVzLWludmFsaWQtaWYtZ3JpZC1ub3QtZW5h
YmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVz
LWludmFsaWQtaWYtZ3JpZC1ub3QtZW5hYmxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NjU2YWUyNTI3OWVmZmY2ZjBjODdlYTMyZDI1MDE3MGRlMGZhOWI4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NzczMv
ZmxleGJveC9uZXctYWxpZ25tZW50LXZhbHVlcy1pbnZhbGlkLWlmLWdyaWQtbm90LWVuYWJsZWQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxpZ25tZW50LXBhcnNpbmctdXRpbHMtdGguanMi
Pjwvc2NyaXB0PgotPGh0bWw+Ci0gPGJvZHk+Ci0gICAgIDxwPlRlc3QgdG8gdmVyaWZ5IHRoYXQg
dGhlIG5ldyBhbGlnbm1lbnQgdmFsdWVzIGFyZSBwYXJzZWQgYXMgaW52YWxpZCBpZiBHcmlkIExh
eW91dCBpcyBkaXNhYmxlZCBhbmQgaW4gYW55IGNhc2UgdGhleSBkbyBub3QgY2F1c2UgYSBjcmFz
aCBiZWNhdXNlIGFzc2VydGlvbnMgaW4gZmxleGJveCBsYXlvdXQgY29kZS48L3A+Ci0gICAgIDxk
aXYgaWQ9ImxvZyI+PC9kaXY+Ci0KLSAgICAgPGRpdiBpZD0iZmxleENvbnRhaW5lciIgc3R5bGU9
ImRpc3BsYXk6IGZsZXgiPgotICAgICAgICAgPGRpdiBpZD0iZmxleEl0ZW0iPjwvZGl2PgotICAg
ICA8L2Rpdj4KLTxzY3JpcHQ+Ci0KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZmxleENvbnRhaW5lciIpOwotdmFyIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZmxleEl0ZW0iKTsKLQotZnVuY3Rpb24gY2hlY2tBbGlnblNlbGZWYWx1ZSh2YWx1ZSwgY29t
cHV0ZWRWYWx1ZSwgZ3JpZEVuYWJsZWQpCi17Ci0gICAgaXRlbS5zdHlsZS53ZWJraXRBbGlnblNl
bGYgPSB2YWx1ZTsKLSAgICBpZiAoZ3JpZEVuYWJsZWQpCi0gICAgICAgIGNoZWNrVmFsdWVzKGl0
ZW0sICJhbGlnblNlbGYiLCAiYWxpZ24tc2VsZiIsIHZhbHVlLCBjb21wdXRlZFZhbHVlKTsKLSAg
ICBlbHNlCi0gICAgICAgIGNoZWNrVmFsdWVzKGl0ZW0sICJhbGlnblNlbGYiLCAiYWxpZ24tc2Vs
ZiIsICJmbGV4LXN0YXJ0IiwgImZsZXgtc3RhcnQiKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tBbGln
bkl0ZW1zVmFsdWUodmFsdWUsIGNvbXB1dGVkVmFsdWUsIGdyaWRFbmFibGVkKQotewotICAgIGNv
bnRhaW5lci5zdHlsZS53ZWJraXRBbGlnbkl0ZW1zID0gdmFsdWU7Ci0gICAgaWYgKGdyaWRFbmFi
bGVkKSB7Ci0gICAgICAgIGNoZWNrVmFsdWVzKGNvbnRhaW5lciwgImFsaWduSXRlbXMiLCAiYWxp
Z24taXRlbXMiLCB2YWx1ZSwgY29tcHV0ZWRWYWx1ZSk7Ci0gICAgICAgIGNoZWNrVmFsdWVzKGl0
ZW0sICJhbGlnblNlbGYiLCAiYWxpZ24tc2VsZiIsICJhdXRvIiwgImF1dG8iKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBjaGVja1ZhbHVlcyhjb250YWluZXIsICJhbGlnbkl0ZW1zIiwgImFsaWdu
LWl0ZW1zIiwgImZsZXgtZW5kIiwgImZsZXgtZW5kIik7Ci0gICAgICAgIGNoZWNrVmFsdWVzKGl0
ZW0sICJhbGlnblNlbGYiLCAiYWxpZ24tc2VsZiIsICJhdXRvIiwgImF1dG8iKTsKLSAgICB9Ci19
Ci0KLWZ1bmN0aW9uIGNoZWNrU2VsZkFsaWdubWVudFZhbHVlcyhncmlkRW5hYmxlZCkKLXsKLSAg
ICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldENT
U0dyaWRMYXlvdXRFbmFibGVkKGdyaWRFbmFibGVkKQotCi0gICAgaXRlbS5zdHlsZS53ZWJraXRB
bGlnblNlbGYgPSAiZmxleC1zdGFydCI7Ci0KLSAgICBjaGVja0FsaWduU2VsZlZhbHVlKCJ1bnNh
ZmUgc3RhcnQiLCAidW5zYWZlIHN0YXJ0IiwgZ3JpZEVuYWJsZWQpCi0gICAgY2hlY2tBbGlnblNl
bGZWYWx1ZSgic3RhcnQiLCAic3RhcnQiLCBncmlkRW5hYmxlZCkKLSAgICBjaGVja0FsaWduU2Vs
ZlZhbHVlKCJlbmQiLCAiZW5kIiwgZ3JpZEVuYWJsZWQpCi0gICAgY2hlY2tBbGlnblNlbGZWYWx1
ZSgic2FmZSBmbGV4LXN0YXJ0IiwgInNhZmUgZmxleC1zdGFydCIsIGdyaWRFbmFibGVkKQotICAg
IGNoZWNrQWxpZ25TZWxmVmFsdWUoInNlbGYtc3RhcnQiLCAic2VsZi1zdGFydCIsIGdyaWRFbmFi
bGVkKQotICAgIGNoZWNrQWxpZ25TZWxmVmFsdWUoInNlbGYtZW5kIiwgInNlbGYtZW5kIiwgZ3Jp
ZEVuYWJsZWQpCi19Ci0KLWZ1bmN0aW9uIGNoZWNrRGVmYXVsdEFsaWdubWVudFZhbHVlcyhncmlk
RW5hYmxlZCkKLXsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGdyaWRFbmFibGVkKQotCi0gICAgY29u
dGFpbmVyLnN0eWxlLndlYmtpdEFsaWduSXRlbXMgPSAiZmxleC1lbmQiOwotICAgIGl0ZW0uc3R5
bGUud2Via2l0QWxpZ25TZWxmID0gImF1dG8iOwotCi0gICAgY2hlY2tBbGlnbkl0ZW1zVmFsdWUo
InVuc2FmZSBzdGFydCIsICJ1bnNhZmUgc3RhcnQiLCBncmlkRW5hYmxlZCkKLSAgICBjaGVja0Fs
aWduSXRlbXNWYWx1ZSgic3RhcnQiLCAic3RhcnQiLCBncmlkRW5hYmxlZCkKLSAgICBjaGVja0Fs
aWduSXRlbXNWYWx1ZSgiZW5kIiwgImVuZCIsIGdyaWRFbmFibGVkKQotICAgIGNoZWNrQWxpZ25J
dGVtc1ZhbHVlKCJzYWZlIGZsZXgtc3RhcnQiLCAic2FmZSBmbGV4LXN0YXJ0IiwgZ3JpZEVuYWJs
ZWQpCi0gICAgY2hlY2tBbGlnbkl0ZW1zVmFsdWUoInNlbGYtc3RhcnQiLCAic2VsZi1zdGFydCIs
IGdyaWRFbmFibGVkKQotICAgIGNoZWNrQWxpZ25JdGVtc1ZhbHVlKCJzZWxmLWVuZCIsICJzZWxm
LWVuZCIsIGdyaWRFbmFibGVkKQotfQotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGNoZWNrU2Vs
ZkFsaWdubWVudFZhbHVlcyhmYWxzZSk7Ci19LCAiTmV3IFNlbGYtQWxpZ25tZW50IHZhbHVlcyBz
aG91bGQgYmUgaW52YWxpZCB3aGVuIGdyaWQgbGF5b3V0IGlzIERJU0FCTEVELiIpOwotCi10ZXN0
KGZ1bmN0aW9uKCkgewotICAgIGNoZWNrRGVmYXVsdEFsaWdubWVudFZhbHVlcyhmYWxzZSk7Ci19
LCAiTmV3IERlZmF1bHQtQWxpZ25tZW50IHZhbHVlcyBzaG91bGQgYmUgaW52YWxpZCB3aGVuIGdy
aWQgbGF5b3V0IGlzIERJU0FCTEVELiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGNoZWNr
U2VsZkFsaWdubWVudFZhbHVlcyh0cnVlKTsKLX0sICJFdmVuIHdoZW4gZ3JpZCBsYXlvdXQgaXMg
RU5BQkxFRCwgbmV3IFNlbGYtQWxpZ25tZW50IHZhbHVlcyBzaG91bGQgbm90IHZpb2xhdGUgYXNz
ZXJ0aW9ucyBpbiBGbGV4aWJsZUJveCBsYXlvdXQgbG9naWMuLiIpOwotCi10ZXN0KGZ1bmN0aW9u
KCkgewotICAgIGNoZWNrRGVmYXVsdEFsaWdubWVudFZhbHVlcyh0cnVlKTsKLX0sICJFdmVuIHdo
ZW4gZ3JpZCBsYXlvdXQgaXMgRU5BQkxFRCwgbmV3IERlZmF1bHQtQWxpZ25tZW50IHZhbHVlcyBz
aG91bGQgbm90IHZpb2xhdGUgYXNzZXJ0aW9ucyBpbiBGbGV4aWJsZUJveCBsYXlvdXQgbG9naWMu
LiIpOwotCi08L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4ODg3Mzk3NGQ0ZDc4NzU4ZTI0NjE5MWEy
ZDg3NGY3NzIwODcxNWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVZlcmlmaWVzIHRoYXQgQ1NT
IEdyaWQgTGF5b3V0IGRvZXMgbm90IHdvcmsgaWYgcnVudGltZSBmZWF0dXJlIGlzIGRpc2FibGVk
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZ3JpZCcpLnN0eWxlLmRpc3BsYXkgaXMgJycKLVBBU1MgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2lubGluZWdyaWQnKS5zdHlsZS5kaXNwbGF5IGlzICcnCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMWZlNzFlYjAwMjgzMmY2MGQ0Y2VlMGJhOTFiZWE0MzcyMDg4N2I2NC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTR3JpZExheW91dEVu
YWJsZWQoZmFsc2UpOwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImdyaWQiIHN0eWxlPSJkaXNwbGF5
OiBncmlkIj48L2Rpdj4KLTxkaXYgaWQ9ImlubGluZWdyaWQiIHN0eWxlPSJkaXNwbGF5OiBpbmxp
bmUtZ3JpZCI+PC9kaXY+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IENT
UyBHcmlkIExheW91dCBkb2VzIG5vdCB3b3JrIGlmIHJ1bnRpbWUgZmVhdHVyZSBpcyBkaXNhYmxl
ZC4iKTsKLQotc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmlkJykuc3R5bGUu
ZGlzcGxheSIsICInJyIpOwotc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmxp
bmVncmlkJykuc3R5bGUuZGlzcGxheSIsICInJyIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgtaW5p
dGlhbC12YWx1ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZW5zdXJlLWZs
ZXhib3gtY29tcGF0aWJpbGl0eS13aXRoLWluaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUwZTc0NTg5NzFkMzZlY2I5ZmI4M2I1MTY2YWYx
MzlkYjhjYTRhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgt
aW5pdGlhbC12YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBA
QAotVGVzdCB0byB2ZXJpZnkgaW5pdGlhbCB2YWx1ZXMgb2YgYWxpZ25tZW50IHByb3BlcnRpZXMg
YXJlIGJhY2t3YXJkLWNvbWFwdGlibGUgd2l0aCBmbGV4Ym94IGltcGxlbWVudGF0aW9uLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi1WZXJpZnlpbmcgaW5pdGlhbCB2YWx1ZXMg
YXJlIHN1cHBvcnRlZCB3aGVuIGdyaWQgaXMgRU5BQkxFRC4KLVBBU1MgQ1NTLnN1cHBvcnRzKCdh
bGlnbi1pdGVtcycsICdub3JtYWwnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24t
c2VsZicsICdhdXRvJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWNvbnRlbnQn
LCAnbm9ybWFsJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2p1c3RpZnktY29udGVudCcs
ICdub3JtYWwnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24taXRlbXMnLCAnbm9y
bWFsJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLXNlbGYnLCAnYXV0bycpIGlz
IHRydWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1jb250ZW50JywgJ25vcm1hbCcpIGlzIHRy
dWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdqdXN0aWZ5LWNvbnRlbnQnLCAnbm9ybWFsJykgaXMgdHJ1
ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWl0ZW1zJywgJ25vcm1hbCcpIGlzIHRydWUKLVBB
U1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1zZWxmJywgJ2F1dG8nKSBpcyB0cnVlCi1QQVNTIENTUy5z
dXBwb3J0cygnYWxpZ24tY29udGVudCcsICdub3JtYWwnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBw
b3J0cygnanVzdGlmeS1jb250ZW50JywgJ25vcm1hbCcpIGlzIHRydWUKLVBBU1MgQ1NTLnN1cHBv
cnRzKCdhbGlnbi1pdGVtcycsICdub3JtYWwnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygn
YWxpZ24tc2VsZicsICdhdXRvJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWNv
bnRlbnQnLCAnbm9ybWFsJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2p1c3RpZnktY29u
dGVudCcsICdub3JtYWwnKSBpcyB0cnVlCi0KLVZlcmlmeWluZyBpbml0aWFsIHZhbHVlcyBhcmUg
c3VwcG9ydGVkIHdoZW4gZ3JpZCBpcyBESVNBQkxFRC4KLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGln
bi1pdGVtcycsICdzdHJldGNoJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLXNl
bGYnLCAnYXV0bycpIGlzIHRydWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1jb250ZW50Jywg
J3N0cmV0Y2gnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnanVzdGlmeS1jb250ZW50Jywg
J2ZsZXgtc3RhcnQnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24taXRlbXMnLCAn
c3RyZXRjaCcpIGlzIHRydWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1zZWxmJywgJ2F1dG8n
KSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24tY29udGVudCcsICdzdHJldGNoJykg
aXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2p1c3RpZnktY29udGVudCcsICdmbGV4LXN0YXJ0
JykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWl0ZW1zJywgJ3N0cmV0Y2gnKSBp
cyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24tc2VsZicsICdhdXRvJykgaXMgdHJ1ZQot
UEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWNvbnRlbnQnLCAnc3RyZXRjaCcpIGlzIHRydWUKLVBB
U1MgQ1NTLnN1cHBvcnRzKCdqdXN0aWZ5LWNvbnRlbnQnLCAnZmxleC1zdGFydCcpIGlzIHRydWUK
LVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1pdGVtcycsICdzdHJldGNoJykgaXMgdHJ1ZQotUEFT
UyBDU1Muc3VwcG9ydHMoJ2FsaWduLXNlbGYnLCAnYXV0bycpIGlzIHRydWUKLVBBU1MgQ1NTLnN1
cHBvcnRzKCdhbGlnbi1jb250ZW50JywgJ3N0cmV0Y2gnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBw
b3J0cygnanVzdGlmeS1jb250ZW50JywgJ2ZsZXgtc3RhcnQnKSBpcyB0cnVlCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZW5zdXJlLWZsZXhib3gtY29tcGF0aWJpbGl0eS13aXRoLWluaXRp
YWwtdmFsdWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9lbnN1cmUtZmxleGJveC1jb21w
YXRpYmlsaXR5LXdpdGgtaW5pdGlhbC12YWx1ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzk1YmVhOTk5NGIxMThkZDdiMmI4Y2I3ZDI4MGRkZDk2MTI0MGNhMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgtaW5pdGlhbC12YWx1ZXMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYWxpZ25tZW50LXBhcnNpbmctdXRpbHMuanMiPjwvc2NyaXB0PgotPGJvZHk+
Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oJ1Rlc3QgdG8gdmVyaWZ5IGluaXRpYWwgdmFsdWVzIG9m
IGFsaWdubWVudCBwcm9wZXJ0aWVzIGFyZSBiYWNrd2FyZC1jb21hcHRpYmxlIHdpdGggZmxleGJv
eCBpbXBsZW1lbnRhdGlvbi4nKTsKLQotZnVuY3Rpb24gc2V0SW5pdGlhbFZhbHVlcyhlbGVtZW50
KQotewotICAgIGVsZW1lbnQuc3R5bGUuYWxpZ25JdGVtcyA9ICJpbml0aWFsIjsKLSAgICBlbGVt
ZW50LnN0eWxlLmFsaWduQ29udGVudCA9ICJpbml0aWFsIjsKLSAgICBlbGVtZW50LnN0eWxlLmp1
c3RpZnlDb250ZW50ID0gImluaXRpYWwiOwotfQotCi1mdW5jdGlvbiBjaGVja1N1cHBvcnRlZElu
aXRpYWxWYWx1ZXMoZWxlbWVudCkKLXsKLSAgICBjaGVja1N1cHBvcnRlZFZhbHVlcyhlbGVtZW50
LmlkLCAiYWxpZ24taXRlbXMiKTsKLSAgICBjaGVja1N1cHBvcnRlZFZhbHVlcyhlbGVtZW50Lmlk
LCAiYWxpZ24tc2VsZiIpOwotICAgIGNoZWNrU3VwcG9ydGVkVmFsdWVzKGVsZW1lbnQuaWQsICJh
bGlnbi1jb250ZW50Iik7Ci0gICAgY2hlY2tTdXBwb3J0ZWRWYWx1ZXMoZWxlbWVudC5pZCwgImp1
c3RpZnktY29udGVudCIpOwotfQotCi1mdW5jdGlvbiBjaGVja0luaXRpYWxWYWx1ZXMoZ3JpZEVu
YWJsZWQpCi17Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZ3JpZEVuYWJsZWQpOwotCi0g
ICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGNvbnRhaW5lci5pZCA9ICJjb250YWluZXIiOwot
ICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLSAgICB2YXIgaXRlbSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGl0ZW0uaWQgPSAiaXRlbSI7Ci0gICAgY29udGFp
bmVyLmFwcGVuZENoaWxkKGl0ZW0pOwotCi0gICAgdmFyIGZsZXhDb250YWluZXIgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBmbGV4Q29udGFpbmVyLmlkID0gImZsZXhDb250
YWluZXIiOwotICAgIGZsZXhDb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKLSAgICBy
b290LmFwcGVuZENoaWxkKGZsZXhDb250YWluZXIpOwotICAgIHZhciBmbGV4SXRlbSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGZsZXhJdGVtLmlkID0gImZsZXhJdGVtIjsK
LSAgICBmbGV4Q29udGFpbmVyLmFwcGVuZENoaWxkKGZsZXhJdGVtKTsKLQotICAgIHNldEluaXRp
YWxWYWx1ZXMocm9vdCk7Ci0gICAgc2V0SW5pdGlhbFZhbHVlcyhjb250YWluZXIpOwotICAgIHNl
dEluaXRpYWxWYWx1ZXMoaXRlbSk7Ci0gICAgc2V0SW5pdGlhbFZhbHVlcyhmbGV4Q29udGFpbmVy
KTsKLSAgICBzZXRJbml0aWFsVmFsdWVzKGZsZXhJdGVtKTsKLQotICAgIGNoZWNrU3VwcG9ydGVk
SW5pdGlhbFZhbHVlcyhjb250YWluZXIpOwotICAgIGNoZWNrU3VwcG9ydGVkSW5pdGlhbFZhbHVl
cyhpdGVtKTsKLSAgICBjaGVja1N1cHBvcnRlZEluaXRpYWxWYWx1ZXMoZmxleENvbnRhaW5lcik7
Ci0gICAgY2hlY2tTdXBwb3J0ZWRJbml0aWFsVmFsdWVzKGZsZXhJdGVtKTsKLQotICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQocm9vdCk7Ci19Ci0KLWRlYnVnKCc8YnI+VmVyaWZ5aW5nIGlu
aXRpYWwgdmFsdWVzIGFyZSBzdXBwb3J0ZWQgd2hlbiBncmlkIGlzIEVOQUJMRUQuJyk7Ci1jaGVj
a0luaXRpYWxWYWx1ZXModHJ1ZSk7Ci0KLWRlYnVnKCc8YnI+VmVyaWZ5aW5nIGluaXRpYWwgdmFs
dWVzIGFyZSBzdXBwb3J0ZWQgd2hlbiBncmlkIGlzIERJU0FCTEVELicpOwotY2hlY2tJbml0aWFs
VmFsdWVzKGZhbHNlKTsKLTwvc2NyaXB0PgotPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335420</attachid>
            <date>2018-03-09 04:37:11 -0800</date>
            <delta_ts>2018-03-12 06:48:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183484-20180309133709.patch</filename>
            <type>text/plain</type>
            <size>49730</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYxZjE4OTA3NGFlOGQ1
NDg3NWNkNDZlNDAyMGY1ODA5MzYwODYzZS4uMGEyZDExY2ExMjRiOTU0ODA3OTdmN2E0OTQyZDg4
MjRmMDg1N2IyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTAzLTA4ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBH
cmlkTGF5b3V0IHJ1bnRpbWUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzNDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIEdyaWQgTGF5b3V0IGZlYXR1cmUgaGFzIGJlZW4gZW5hYmxlZCBi
eSBkZWZhdWx0IGZvciBhbG1vc3QgYQorICAgICAgICB5ZWFyLCBzbyBJIHRoaW5rIGl0J3MgdGlt
ZSB0byByZW1vdmUgdGhlIHJ1bnRpbWUgZmxhZyBhbmQgdGhlCisgICAgICAgIGNvZGVwYXRoIHJ1
biB3aGVuIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
YmVjYXVzZSB0aGVyZSBhcmUgbm8gY2hhbmdlcyBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAg
ICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxvd0FsaWdu
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZv
clByb3BlcnR5aW5TdHlsZSk6CisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Q29udGVu
dEFsaWdubWVudERhdGEpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJz
ZXJGYXN0UGF0aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjpp
c1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgKiBjc3MvcGFyc2Vy
L0NTU1BhcnNlck1vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckNvbnRleHRIYXNo
OjpoYXNoKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAg
ICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphbGlnbm1lbnRPZmZz
ZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6aW5pdGlhbERlZmF1bHRBbGlnbm1lbnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpC
YWNrdXA6OkJhY2t1cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNr
dXA6OnJlc3RvcmVUbyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKwogMjAxOC0wMy0wOCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGxpbmtp
bmcgQXBwbGljYXRpb25TZXJ2aWNlcyBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZjFiNWYwMjM5NTFh
ZWY2MWQ5MGUyMTcxN2Q0YjczN2RlNmRmYTYxLi5mYzg1MTM2NDFkNDljMDViMGY0OGU5YjAzZGIz
NTRiNTc3YmQ0Njg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTAzLTA4ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBH
cmlkTGF5b3V0IHJ1bnRpbWUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzNDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIEdyaWQgTGF5b3V0IGZlYXR1cmUgaGFzIGJlZW4gZW5hYmxlZCBi
eSBkZWZhdWx0IGZvciBhbG1vc3QgYQorICAgICAgICB5ZWFyLCBzbyBJIHRoaW5rIGl0J3MgdGlt
ZSB0byByZW1vdmUgdGhlIHJ1bnRpbWUgZmxhZyBhbmQgdGhlCisgICAgICAgIGNvZGVwYXRoIHJ1
biB3aGVuIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCisgICAgICAgICogU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpvdmVycmlk
ZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6CisKIDIwMTgtMDMtMDggIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBsaW5raW5nIEFwcGxp
Y2F0aW9uU2VydmljZXMgZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2
NDY5MWYwMGYwZmY0ODM3N2ExOGNiN2Q2YzNkOTk2NDJlYWI3MjZlLi5mNjg4NTIwNDBiYWI5ZmY1
MmZmYTNmNjI4NmRhNzJmOTZiMzkyMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTgtMDMtMDggIEphdmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6
QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEdyaWRMYXlvdXQgcnVudGltZSBmbGFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM0ODQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgR3JpZCBM
YXlvdXQgZmVhdHVyZSBoYXMgYmVlbiBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGFsbW9zdCBhCisg
ICAgICAgIHllYXIsIHNvIEkgdGhpbmsgaXQncyB0aW1lIHRvIHJlbW92ZSB0aGUgcnVudGltZSBm
bGFnIGFuZCB0aGUKKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
Lmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2Vi
UHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTgtMDMtMDggIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBsaW5raW5nIEFwcGxp
Y2F0aW9uU2VydmljZXMgZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMjA5ZTI5YWE3NDA5NDZiMzgwODA5YmU1
ZTBhM2EwOWMzYmVlNzkyMy4uMThmZjkxOGJiNmFjZjQ5MzBmZWIzODFhNDUyOTY3ODMzYzdlYTcz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTI1MzMsNyArMjUzMyw3IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWVMaXN0PiB2
YWx1ZUZvckl0ZW1Qb3NpdGlvbldpdGhPdmVyZmxvd0FsaWdubWVudChjb25zdCBTdHlsZVNlCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9y
Q29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KGNvbnN0
IFN0eWxlQ29udGVudEFsaWdubWVudERhdGEmIGRhdGEsIENTU1ZhbHVlSUQgbm9ybWFsQmVoYXZp
b3JWYWx1ZUlEKQorc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9yQ29udGVudFBvc2l0
aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxpZ25tZW50KGNvbnN0IFN0eWxlQ29udGVu
dEFsaWdubWVudERhdGEmIGRhdGEpCiB7CiAgICAgYXV0byYgY3NzVmFsdWVQb29sID0gQ1NTVmFs
dWVQb29sOjpzaW5nbGV0b24oKTsKICAgICBhdXRvIHJlc3VsdCA9IENTU1ZhbHVlTGlzdDo6Y3Jl
YXRlU3BhY2VTZXBhcmF0ZWQoKTsKQEAgLTI1NDEsMTUgKzI1NDEsMTIgQEAgc3RhdGljIFJlZjxD
U1NWYWx1ZUxpc3Q+IHZhbHVlRm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92
ZXJmbG93QWxpZ24KICAgICBpZiAoZGF0YS5kaXN0cmlidXRpb24oKSAhPSBDb250ZW50RGlzdHJp
YnV0aW9uRGVmYXVsdCkKICAgICAgICAgcmVzdWx0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKGRhdGEuZGlzdHJpYnV0aW9uKCkpKTsKIAotICAgIGJvb2wgZ3JpZEVuYWJsZWQgPSBm
YWxzZTsKLSAgICBncmlkRW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpOwotCiAgICAgLy8gSGFuZGxlIGNvbnRl
bnQtcG9zaXRpb24gdmFsdWVzIChlaXRoZXIgYXMgZmFsbGJhY2sgb3IgYWN0dWFsIHZhbHVlKQog
ICAgIHN3aXRjaCAoZGF0YS5wb3NpdGlvbigpKSB7CiAgICAgY2FzZSBDb250ZW50UG9zaXRpb25O
b3JtYWw6CiAgICAgICAgIC8vIEhhbmRsZSAnbm9ybWFsJyB2YWx1ZSwgbm90IHZhbGlkIGFzIGNv
bnRlbnQtZGlzdHJpYnV0aW9uIGZhbGxiYWNrLgogICAgICAgICBpZiAoZGF0YS5kaXN0cmlidXRp
b24oKSA9PSBDb250ZW50RGlzdHJpYnV0aW9uRGVmYXVsdCkKLSAgICAgICAgICAgIHJlc3VsdC0+
YXBwZW5kKGNzc1ZhbHVlUG9vbC5jcmVhdGVJZGVudGlmaWVyVmFsdWUoZ3JpZEVuYWJsZWQgPyBD
U1NWYWx1ZU5vcm1hbCA6IG5vcm1hbEJlaGF2aW9yVmFsdWVJRCkpOworICAgICAgICAgICAgcmVz
dWx0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5v
cm1hbCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRlbnRQb3NpdGlvbkxhc3RCYXNl
bGluZToKICAgICAgICAgcmVzdWx0LT5hcHBlbmQoY3NzVmFsdWVQb29sLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZUxhc3QpKTsKQEAgLTI5ODQsNyArMjk4MSw3IEBAIFJlZlB0cjxDU1NW
YWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eWluU3R5bGUoY29u
c3QgUmVuZGVyU3R5CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlFbXB0eUNlbGxzOgogICAgICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5lbXB0eUNlbGxzKCkp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25Db250ZW50OgotICAgICAgICAgICAgcmV0
dXJuIHZhbHVlRm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJmbG93QWxp
Z25tZW50KHN0eWxlLmFsaWduQ29udGVudCgpLCBDU1NWYWx1ZVN0cmV0Y2gpOworICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlRm9yQ29udGVudFBvc2l0aW9uQW5kRGlzdHJpYnV0aW9uV2l0aE92ZXJm
bG93QWxpZ25tZW50KHN0eWxlLmFsaWduQ29udGVudCgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUFsaWduSXRlbXM6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JJdGVtUG9zaXRpb25X
aXRoT3ZlcmZsb3dBbGlnbm1lbnQoc3R5bGUuYWxpZ25JdGVtcygpKTsKICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eUFsaWduU2VsZjoKQEAgLTMwMDQsNyArMzAwMSw3IEBAIFJlZlB0cjxDU1NWYWx1
ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eWluU3R5bGUoY29uc3Qg
UmVuZGVyU3R5CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGbGV4V3JhcDoKICAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUuZmxleFdyYXAoKSk7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlKdXN0aWZ5Q29udGVudDoKLSAgICAgICAgICAgIHJldHVybiB2
YWx1ZUZvckNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbldpdGhPdmVyZmxvd0FsaWdubWVu
dChzdHlsZS5qdXN0aWZ5Q29udGVudCgpLCBDU1NWYWx1ZUZsZXhTdGFydCk7CisgICAgICAgICAg
ICByZXR1cm4gdmFsdWVGb3JDb250ZW50UG9zaXRpb25BbmREaXN0cmlidXRpb25XaXRoT3ZlcmZs
b3dBbGlnbm1lbnQoc3R5bGUuanVzdGlmeUNvbnRlbnQoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlKdXN0aWZ5SXRlbXM6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JJdGVtUG9zaXRp
b25XaXRoT3ZlcmZsb3dBbGlnbm1lbnQoc3R5bGUuanVzdGlmeUl0ZW1zKCkpOwogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5SnVzdGlmeVNlbGY6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyQ29udmVydGVyLmgKaW5kZXggOWQ2MGIxMDExMDAxN2FkMDk0ZWNmZTUwMmU1OWNjNzI4MmFi
NWNhYy4uNmMzN2M5ZmQzM2Y3MmZjYWRkMDRhNTMwMmZmYmMwOWVkY2U4ZDMwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTM3MywzNSArMTM3Mywx
NSBAQCBpbmxpbmUgU3R5bGVTZWxmQWxpZ25tZW50RGF0YSBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6
OmNvbnZlcnRTZWxmT3JEZWZhdWx0QWxpZ25tZQogaW5saW5lIFN0eWxlQ29udGVudEFsaWdubWVu
dERhdGEgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Q29udGVudEFsaWdubWVudERhdGEo
U3R5bGVSZXNvbHZlciYsIGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKIHsKICAgICBTdHlsZUNvbnRl
bnRBbGlnbm1lbnREYXRhIGFsaWdubWVudERhdGEgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbENvbnRl
bnRBbGlnbm1lbnQoKTsKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpIHsKLSAgICAgICAgaWYgKCFpczxDU1ND
b250ZW50RGlzdHJpYnV0aW9uVmFsdWU+KHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBhbGln
bm1lbnREYXRhOwotICAgICAgICBhdXRvJiBjb250ZW50VmFsdWUgPSBkb3duY2FzdDxDU1NDb250
ZW50RGlzdHJpYnV0aW9uVmFsdWU+KHZhbHVlKTsKLSAgICAgICAgaWYgKGNvbnRlbnRWYWx1ZS5k
aXN0cmlidXRpb24oKS0+dmFsdWVJRCgpICE9IENTU1ZhbHVlSW52YWxpZCkKLSAgICAgICAgICAg
IGFsaWdubWVudERhdGEuc2V0RGlzdHJpYnV0aW9uKGNvbnRlbnRWYWx1ZS5kaXN0cmlidXRpb24o
KS5nZXQoKSk7Ci0gICAgICAgIGlmIChjb250ZW50VmFsdWUucG9zaXRpb24oKS0+dmFsdWVJRCgp
ICE9IENTU1ZhbHVlSW52YWxpZCkKLSAgICAgICAgICAgIGFsaWdubWVudERhdGEuc2V0UG9zaXRp
b24oY29udGVudFZhbHVlLnBvc2l0aW9uKCkuZ2V0KCkpOwotICAgICAgICBpZiAoY29udGVudFZh
bHVlLm92ZXJmbG93KCktPnZhbHVlSUQoKSAhPSBDU1NWYWx1ZUludmFsaWQpCi0gICAgICAgICAg
ICBhbGlnbm1lbnREYXRhLnNldE92ZXJmbG93KGNvbnRlbnRWYWx1ZS5vdmVyZmxvdygpLmdldCgp
KTsKKyAgICBpZiAoIWlzPENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZT4odmFsdWUpKQogICAg
ICAgICByZXR1cm4gYWxpZ25tZW50RGF0YTsKLSAgICB9Ci0gICAgaWYgKCFpczxDU1NQcmltaXRp
dmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gYWxpZ25tZW50RGF0YTsKLSAgICBhdXRv
JiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSk7Ci0g
ICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS52YWx1ZUlEKCkpIHsKLSAgICBjYXNlIENTU1ZhbHVl
U3RyZXRjaDoKLSAgICBjYXNlIENTU1ZhbHVlU3BhY2VCZXR3ZWVuOgotICAgIGNhc2UgQ1NTVmFs
dWVTcGFjZUFyb3VuZDoKLSAgICAgICAgYWxpZ25tZW50RGF0YS5zZXREaXN0cmlidXRpb24ocHJp
bWl0aXZlVmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1ZhbHVlRmxleFN0YXJ0
OgotICAgIGNhc2UgQ1NTVmFsdWVGbGV4RW5kOgotICAgIGNhc2UgQ1NTVmFsdWVDZW50ZXI6Ci0g
ICAgICAgIGFsaWdubWVudERhdGEuc2V0UG9zaXRpb24ocHJpbWl0aXZlVmFsdWUpOwotICAgICAg
ICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICB9CisgICAgYXV0byYgY29udGVudFZhbHVlID0gZG93bmNhc3Q8Q1NTQ29udGVudERpc3RyaWJ1
dGlvblZhbHVlPih2YWx1ZSk7CisgICAgaWYgKGNvbnRlbnRWYWx1ZS5kaXN0cmlidXRpb24oKS0+
dmFsdWVJRCgpICE9IENTU1ZhbHVlSW52YWxpZCkKKyAgICAgICAgYWxpZ25tZW50RGF0YS5zZXRE
aXN0cmlidXRpb24oY29udGVudFZhbHVlLmRpc3RyaWJ1dGlvbigpLmdldCgpKTsKKyAgICBpZiAo
Y29udGVudFZhbHVlLnBvc2l0aW9uKCktPnZhbHVlSUQoKSAhPSBDU1NWYWx1ZUludmFsaWQpCisg
ICAgICAgIGFsaWdubWVudERhdGEuc2V0UG9zaXRpb24oY29udGVudFZhbHVlLnBvc2l0aW9uKCku
Z2V0KCkpOworICAgIGlmIChjb250ZW50VmFsdWUub3ZlcmZsb3coKS0+dmFsdWVJRCgpICE9IENT
U1ZhbHVlSW52YWxpZCkKKyAgICAgICAgYWxpZ25tZW50RGF0YS5zZXRPdmVyZmxvdyhjb250ZW50
VmFsdWUub3ZlcmZsb3coKS5nZXQoKSk7CiAgICAgcmV0dXJuIGFsaWdubWVudERhdGE7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA4MzE0ZDc0N2EwMzA3
YzM0MGFkMDM5ZTJkY2Q0YjlmMWQzODY3ZDk2Li41NjUxNTk0M2EyNjQxNGUyMDUzMmQyZGI1NTBm
ZjkyNmYwMDNjM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBA
IC02Miw3ICs2Miw2IEBAIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIHN0cmljdENTU1BhcnNlckNv
bnRleHQoKQogQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4dChDU1NQYXJzZXJNb2Rl
IG1vZGUsIGNvbnN0IFVSTCYgYmFzZVVSTCkKICAgICA6IGJhc2VVUkwoYmFzZVVSTCkKICAgICAs
IG1vZGUobW9kZSkKLSAgICAsIGNzc0dyaWRMYXlvdXRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKQogewogI2lm
IFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogRm9yY2UgdGhlIHNpdGUgc3BlY2lmaWMgcXVp
cmsgYmVsb3cgdG8gd29yayBvbiBpT1MuIEludmVzdGlnYXRpbmcgb3RoZXIgc2l0ZSBzcGVjaWZp
YyBxdWlya3MKQEAgLTc3LDcgKzc2LDYgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29u
dGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc2hlZXRCYXNlVVJMLAogICAgICwg
Y2hhcnNldChjaGFyc2V0KQogICAgICwgbW9kZShkb2N1bWVudC5pblF1aXJrc01vZGUoKSA/IEhU
TUxRdWlya3NNb2RlIDogSFRNTFN0YW5kYXJkTW9kZSkKICAgICAsIGlzSFRNTERvY3VtZW50KGRv
Y3VtZW50LmlzSFRNTERvY3VtZW50KCkpCi0gICAgLCBjc3NHcmlkTGF5b3V0RW5hYmxlZChkb2N1
bWVudC5pc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCiAgICAgLCBoYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luKHNoZWV0QmFzZVVSTC5pc051bGwoKSB8fCBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
LmNhblJlcXVlc3QoYmFzZVVSTCkpCiB7CiAgICAgCkBAIC0xMDcsNyArMTA1LDYgQEAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRl
eHQmIGIpCiAgICAgICAgICYmIGEuY2hhcnNldCA9PSBiLmNoYXJzZXQKICAgICAgICAgJiYgYS5t
b2RlID09IGIubW9kZQogICAgICAgICAmJiBhLmlzSFRNTERvY3VtZW50ID09IGIuaXNIVE1MRG9j
dW1lbnQKLSAgICAgICAgJiYgYS5jc3NHcmlkTGF5b3V0RW5hYmxlZCA9PSBiLmNzc0dyaWRMYXlv
dXRFbmFibGVkCiAgICAgICAgICYmIGEubmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPT0gYi5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcwogICAgICAgICAmJiBhLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZSA9PSBiLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZQogICAgICAg
ICAmJiBhLnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgPT0gYi51c2VM
ZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggZTYyY2IyOWYxMDJhMjRk
ZjNmYThjMzMwZTAyNTY3MWIyNDZlNDZiZS4uNGRkODM3ODNmMTY0OTRjYWE1YWIwMjI5YzY2NDMx
ODRiMjBjZjJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJz
ZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
RmFzdFBhdGhzLmNwcApAQCAtNTY4LDggKzU2OCw3IEBAIGJvb2wgQ1NTUGFyc2VyRmFzdFBhdGhz
Ojppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
CiAgICAgICAgIC8vIHRhYmxlLWNvbHVtbi1ncm91cCB8IHRhYmxlLWNvbHVtbiB8IHRhYmxlLWNl
bGwgfCB0YWJsZS1jYXB0aW9uIHwgLXdlYmtpdC1ib3ggfCAtd2Via2l0LWlubGluZS1ib3ggfCBu
b25lCiAgICAgICAgIC8vIGZsZXggfCBpbmxpbmUtZmxleCB8IC13ZWJraXQtZmxleCB8IC13ZWJr
aXQtaW5saW5lLWZsZXggfCBncmlkIHwgaW5saW5lLWdyaWQKICAgICAgICAgcmV0dXJuICh2YWx1
ZUlEID49IENTU1ZhbHVlSW5saW5lICYmIHZhbHVlSUQgPD0gQ1NTVmFsdWVDb250ZW50cykgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUKLSAgICAgICAgICAgIHx8IChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSAmJiAodmFs
dWVJRCA9PSBDU1NWYWx1ZUdyaWQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUlubGluZUdyaWQpKQot
ICAgICAgICA7CisgICAgICAgICAgICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlR3JpZCB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlSW5saW5lR3JpZDsKICAgICBjYXNlIENTU1Byb3BlcnR5RG9taW5hbnRC
YXNlbGluZToKICAgICAgICAgLy8gYXV0byB8IHVzZS1zY3JpcHQgfCBuby1jaGFuZ2UgfCByZXNl
dC1zaXplIHwgaWRlb2dyYXBoaWMgfAogICAgICAgICAvLyBhbHBoYWJldGljIHwgaGFuZ2luZyB8
IG1hdGhlbWF0aWNhbCB8IGNlbnRyYWwgfCBtaWRkbGUgfApAQCAtNzA3LDI0ICs3MDYsMTIgQEAg
Ym9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQKICAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFs
dWVIb3Jpem9udGFsIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVWZXJ0aWNhbCB8fCB2YWx1ZUlEID09
IENTU1ZhbHVlQXV0bzsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uUHJvZ3Jlc3Np
b246CiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlTm9ybWFsIHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVSZXZlcnNlOwotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnbkNvbnRlbnQ6Ci0g
ICAgICAgIC8vIEZJWE1FOiBQZXIgQ1NTIGFsaWdubWVudCwgdGhpcyBwcm9wZXJ0eSBzaG91bGQg
YWNjZXB0IGFuIG9wdGlvbmFsIDxvdmVyZmxvdy1wb3NpdGlvbj4uIFdlIHNob3VsZCBzaGFyZSB0
aGlzIHBhcnNpbmcgY29kZSB3aXRoICdqdXN0aWZ5LXNlbGYnLgotICAgICAgICByZXR1cm4gdmFs
dWVJRCA9PSBDU1NWYWx1ZUZsZXhTdGFydCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlRmxleEVuZCB8
fCB2YWx1ZUlEID09IENTU1ZhbHVlQ2VudGVyIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTcGFjZUJl
dHdlZW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNwYWNlQXJvdW5kIHx8IHZhbHVlSUQgPT0gQ1NT
VmFsdWVTdHJldGNoOwotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnbkl0ZW1zOgotICAgICAgICAv
LyBGSVhNRTogUGVyIENTUyBhbGlnbm1lbnQsIHRoaXMgcHJvcGVydHkgc2hvdWxkIGFjY2VwdCB0
aGUgc2FtZSBhcmd1bWVudHMgYXMgJ2p1c3RpZnktc2VsZicgc28gd2Ugc2hvdWxkIHNoYXJlIGl0
cyBwYXJzaW5nIGNvZGUuCi0gICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlRmxleFN0
YXJ0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4RW5kIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVD
ZW50ZXIgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJhc2VsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVTdHJldGNoOwotICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnblNlbGY6Ci0gICAgICAgIC8vIEZJ
WE1FOiBQZXIgQ1NTIGFsaWdubWVudCwgdGhpcyBwcm9wZXJ0eSBzaG91bGQgYWNjZXB0IHRoZSBz
YW1lIGFyZ3VtZW50cyBhcyAnanVzdGlmeS1zZWxmJyBzbyB3ZSBzaG91bGQgc2hhcmUgaXRzIHBh
cnNpbmcgY29kZS4KLSAgICAgICAgcmV0dXJuIHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVGbGV4U3RhcnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUZsZXhFbmQg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNlbnRlciB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQmFzZWxp
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN0cmV0Y2g7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZs
ZXhEaXJlY3Rpb246CiAgICAgICAgIHJldHVybiB2YWx1ZUlEID09IENTU1ZhbHVlUm93IHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVSb3dSZXZlcnNlIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2x1bW4g
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUNvbHVtblJldmVyc2U7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eUZsZXhXcmFwOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NWYWx1ZU5vd3JhcCB8fCB2
YWx1ZUlEID09IENTU1ZhbHVlV3JhcCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV3JhcFJldmVyc2U7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEh5cGhlbnM6CiAgICAgICAgIHJldHVybiB2YWx1
ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlTWFudWFsOwotICAgIGNhc2UgQ1NTUHJvcGVydHlKdXN0aWZ5Q29udGVudDoK
LSAgICAgICAgLy8gRklYTUU6IFBlciBDU1MgYWxpZ25tZW50LCB0aGlzIHByb3BlcnR5IHNob3Vs
ZCBhY2NlcHQgYW4gb3B0aW9uYWwgPG92ZXJmbG93LXBvc2l0aW9uPi4gV2Ugc2hvdWxkIHNoYXJl
IHRoaXMgcGFyc2luZyBjb2RlIHdpdGggJ2p1c3RpZnktc2VsZicuCi0gICAgICAgIHJldHVybiB2
YWx1ZUlEID09IENTU1ZhbHVlRmxleFN0YXJ0IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVGbGV4RW5k
IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVDZW50ZXIgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNwYWNl
QmV0d2VlbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3BhY2VBcm91bmQ7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEZvbnRLZXJuaW5nOgogICAgICAgICByZXR1cm4gdmFsdWVJRCA9PSBDU1NW
YWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlTm9uZTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGluZzoKQEAgLTk3
NiwxMSArOTYzLDYgQEAgYm9vbCBDU1NQYXJzZXJGYXN0UGF0aHM6OmlzS2V5d29yZFByb3BlcnR5
SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250T3B0
aWNhbFNpemluZzoKICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIENTU1By
b3BlcnR5SnVzdGlmeUNvbnRlbnQ6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUFsaWduQ29udGVudDoK
LSAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25JdGVtczoKLSAgICBjYXNlIENTU1Byb3BlcnR5QWxp
Z25TZWxmOgotICAgICAgICByZXR1cm4gIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
TW9kZS5oCmluZGV4IGUxMjU4YjlhNzc4ZWE2YmMzNWIyYzI0MTcwMWZkOThhODcyNjQyNDYuLmE0
MDQ1ODgxZWE3YzRhYWJhN2E5YjQwZTI4NDRmZDlhZjEyNmU5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyTW9kZS5oCkBAIC05Niw3ICs5Niw2IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgY2hhcnNldDsKICAgICBDU1NQYXJzZXJNb2RlIG1vZGUgeyBIVE1MU3RhbmRhcmRN
b2RlIH07CiAgICAgYm9vbCBpc0hUTUxEb2N1bWVudCB7IGZhbHNlIH07Ci0gICAgYm9vbCBjc3NH
cmlkTGF5b3V0RW5hYmxlZCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykK
ICAgICBib29sIHRleHRBdXRvc2l6aW5nRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTEz
NSwxOSArMTM0LDE4IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0SGFzaCB7CiAgICAgICAgICAg
ICBoYXNoIF49IFN0cmluZ0hhc2g6Omhhc2goa2V5LmNoYXJzZXQpOwogICAgICAgICB1bnNpZ25l
ZCBiaXRzID0ga2V5LmlzSFRNTERvY3VtZW50ICAgICAgICAgICAgICAgICAgPDwgMAogICAgICAg
ICAgICAgJiBrZXkuaXNIVE1MRG9jdW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwg
MQotICAgICAgICAgICAgJiBrZXkuY3NzR3JpZExheW91dEVuYWJsZWQgICAgICAgICAgICAgICAg
ICAgICAgPDwgMgogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0gICAgICAgICAgICAmIGtl
eS50ZXh0QXV0b3NpemluZ0VuYWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCAzCisgICAgICAg
ICAgICAmIGtleS50ZXh0QXV0b3NpemluZ0VuYWJsZWQgICAgICAgICAgICAgICAgICAgICA8PCAy
CiAjZW5kaWYKLSAgICAgICAgICAgICYga2V5Lm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzICAgICAg
ICAgICAgICAgICAgIDw8IDQKLSAgICAgICAgICAgICYga2V5LmVuZm9yY2VzQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZSAgICAgICAgIDw8IDUKLSAgICAgICAgICAgICYga2V5LnVzZUxlZ2FjeUJh
Y2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgIDw8IDYKLSAgICAgICAgICAgICYga2V5LnNw
cmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCAgICAgICAgICAgICAgIDw8IDcKLSAgICAgICAgICAg
ICYga2V5LmNvbmljR3JhZGllbnRzRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgIDw8IDgKLSAg
ICAgICAgICAgICYga2V5LmRlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZCAgICAgICAgICAgICAgICAg
IDw8IDkKLSAgICAgICAgICAgICYga2V5Lmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gICAgICAg
ICAgICAgICAgIDw8IDEwCi0gICAgICAgICAgICAmIGtleS5tb2RlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8PCAxMQotICAgICAgICAgICAgJiBrZXkuYWxsb3dOZXdMaW5l
c0NsYW1wICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTI7CisgICAgICAgICAgICAmIGtleS5u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyAgICAgICAgICAgICAgICAgICA8PCAzCisgICAgICAgICAg
ICAmIGtleS5lbmZvcmNlc0NTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgICAgICAgICA8PCA0Cisg
ICAgICAgICAgICAmIGtleS51c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9y
ICA8PCA1CisgICAgICAgICAgICAmIGtleS5zcHJpbmdUaW1pbmdGdW5jdGlvbkVuYWJsZWQgICAg
ICAgICAgICAgICA8PCA2CisgICAgICAgICAgICAmIGtleS5jb25pY0dyYWRpZW50c0VuYWJsZWQg
ICAgICAgICAgICAgICAgICAgICA8PCA3CisgICAgICAgICAgICAmIGtleS5kZWZlcnJlZENTU1Bh
cnNlckVuYWJsZWQgICAgICAgICAgICAgICAgICA8PCA4CisgICAgICAgICAgICAmIGtleS5oYXNE
b2N1bWVudFNlY3VyaXR5T3JpZ2luICAgICAgICAgICAgICAgICA8PCA5CisgICAgICAgICAgICAm
IGtleS5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxMAorICAg
ICAgICAgICAgJiBrZXkuYWxsb3dOZXdMaW5lc0NsYW1wICAgICAgICAgICAgICAgICAgICAgICAg
PDwgMTE7CiAgICAgICAgIGhhc2ggXj0gV1RGOjppbnRIYXNoKGJpdHMpOwogICAgICAgICByZXR1
cm4gaGFzaDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXIuY3BwCmluZGV4IDA5MTBmMGQyYzc5MTBiMGYyMGM1MTg4YjY5MjZhNTYxMGNmZTYx
NTUuLmJlNWNkN2E3OGFmYjNlMzUyM2Y1OTk0ZTcwNmI5YWYzYTBiNDg1NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC00Mjg4LDQz
ICs0Mjg4LDI3IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2lu
Z2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdE1hc2tSZXBlYXRZOgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIENT
U1Byb3BlcnR5QWxpZ25JdGVtczoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91
dEVuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNv
bnN1bWVBbGlnbkl0ZW1zKG1fcmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlKdXN0aWZ5U2Vs
ZjoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVTZWxmUG9zaXRpb25PdmVyZmxvd1Bvc2l0aW9uKG1f
cmFuZ2UsIGlzU2VsZlBvc2l0aW9uT3JMZWZ0T3JSaWdodEtleXdvcmQpOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlBbGlnblNlbGY6Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRMYXlvdXRF
bmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb25z
dW1lU2VsZlBvc2l0aW9uT3ZlcmZsb3dQb3NpdGlvbihtX3JhbmdlLCBpc1NlbGZQb3NpdGlvbktl
eXdvcmQpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlKdXN0aWZ5SXRlbXM6Ci0gICAgICAgIGlmICgh
bV9jb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgICAgIHJldHVybiBjb25zdW1lSnVzdGlmeUl0ZW1zKG1fcmFuZ2UpOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlHcmlkQ29sdW1uRW5kOgogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkQ29s
dW1uU3RhcnQ6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRSb3dFbmQ6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUdyaWRSb3dTdGFydDoKLSAgICAgICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91
dEVuYWJsZWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNv
bnN1bWVHcmlkTGluZShtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZEF1dG9Db2x1
bW5zOgogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkQXV0b1Jvd3M6Ci0gICAgICAgIGlmICghbV9j
b250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgIHJldHVybiBjb25zdW1lR3JpZFRyYWNrTGlzdChtX3JhbmdlLCBtX2NvbnRleHQu
bW9kZSwgR3JpZEF1dG8pOwogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkVGVtcGxhdGVDb2x1bW5z
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkVGVtcGxhdGVSb3dzOgotICAgICAgICBpZiAoIW1f
Y29udGV4dC5jc3NHcmlkTGF5b3V0RW5hYmxlZCkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICByZXR1cm4gY29uc3VtZUdyaWRUZW1wbGF0ZXNSb3dzT3JDb2x1bW5zKG1fcmFu
Z2UsIG1fY29udGV4dC5tb2RlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5R3JpZFRlbXBsYXRlQXJl
YXM6Ci0gICAgICAgIGlmICghbV9jb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb25zdW1lR3JpZFRlbXBsYXRl
QXJlYXMobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRBdXRvRmxvdzoKLSAgICAg
ICAgaWYgKCFtX2NvbnRleHQuY3NzR3JpZExheW91dEVuYWJsZWQpCi0gICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnN1bWVHcmlkQXV0b0Zsb3cobV9yYW5nZSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVHcmlkOgogICAgICAgICByZXR1cm4gY29u
c3VtZUxpbmVHcmlkKG1fcmFuZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjg2MGI2
ZjkxZWYxOWI0MWRhNzI3MWQzMjMwNTRlMzFmMzE4ZTQyNS4uMzBkOGZmNWNiYzdkNGFkMzI2ZmE1
ZmJmN2E3YWQ5M2M3NDU3ZDc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTc4LDEx
ICsxMTc4LDYgQEAgQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzIERvY3VtZW50Ojp2
YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKGNvbnN0IEF0b20KICAgICByZXR1cm4gQ3VzdG9tRWxl
bWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzOjpWYWxpZDsKIH0KIAotYm9vbCBEb2N1bWVudDo6aXND
U1NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpOwotfQot
CiBFeGNlcHRpb25PcjxSZWY8RWxlbWVudD4+IERvY3VtZW50OjpjcmVhdGVFbGVtZW50TlMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFt
ZSkKIHsKICAgICBhdXRvIHBhcnNlUmVzdWx0ID0gcGFyc2VRdWFsaWZpZWROYW1lKG5hbWVzcGFj
ZVVSSSwgcXVhbGlmaWVkTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNhMDAxNDk5ODJj
OTJjMDVmMTFjOWQ1N2UwZTZlNzYzOTE4ZjYzMWQuLjA5ODc5YzdlYmExNDU4NjViNTQ4Y2NjNGM1
ODM4YmYwNzk3OTU4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC00MjMsOCArNDIzLDYgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEN1c3RvbUVsZW1lbnROYW1lVmFsaWRhdGlvblN0YXR1cyB2
YWxpZGF0ZUN1c3RvbUVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCi0gICAgYm9v
bCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3Q7Ci0KICAgICBXRUJDT1JFX0VYUE9SVCBS
ZWZQdHI8UmFuZ2U+IGNhcmV0UmFuZ2VGcm9tUG9pbnQoaW50IHgsIGludCB5KTsKICAgICBSZWZQ
dHI8UmFuZ2U+IGNhcmV0UmFuZ2VGcm9tUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIGNsaWVudFBv
aW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApp
bmRleCAwYzViZTY0NzE3Njc0MTdlY2M2NzM4OGZmMzQ5YjczMTc1MjFmZGYzLi5lN2Y2Zjc2YmNj
NjA3ZjlmYjRiOTZiODhkZTc0ODJkY2JiZTQ3ZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjAyLDkgKzIwMiw2IEBAIHB1YmxpYzoKICAg
ICBib29sIGRvd25sb2FkQXR0cmlidXRlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNEb3du
bG9hZEF0dHJpYnV0ZUVuYWJsZWQ7IH0KICNlbmRpZgogCi0gICAgdm9pZCBzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkID0gaXNF
bmFibGVkOyB9Ci0gICAgYm9vbCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9jc3NHcmlkTGF5b3V0RW5hYmxlZDsgfQotCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9P
QlNFUlZFUikKICAgICB2b2lkIHNldEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZChib29sIGlz
RW5hYmxlZCkgeyBtX2ludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQog
ICAgIGJvb2wgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
bnRlcnNlY3Rpb25PYnNlcnZlckVuYWJsZWQ7IH0KQEAgLTM1Myw4ICszNTAsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc0Rvd25sb2FkQXR0cmlidXRlRW5hYmxlZCB7IGZhbHNlIH07CiAjZW5k
aWYKIAotICAgIGJvb2wgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCB7IHRydWUgfTsKLQogI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgYm9vbCBtX2VuY3J5cHRlZE1lZGlhQVBJRW5hYmxl
ZCB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmxleGlibGVCb3guY3BwCmluZGV4IGVhOWQyMzZiY2VmYmQ1ZGJjOWI2ZTMxN2QzZTUzMGE0MmYx
NTAwY2IuLmVmYjlhMjc4ZDM3OGM0OWU5NDAxZWQxNWY1MjdmODIzNjA2MTI5ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMTM2OSwx
MCArMTM2OSw4IEBAIHN0YXRpYyBMYXlvdXRVbml0IGFsaWdubWVudE9mZnNldChMYXlvdXRVbml0
IGF2YWlsYWJsZUZyZWVTcGFjZSwgSXRlbVBvc2l0aW9uIHBvCiAgICAgY2FzZSBJdGVtUG9zaXRp
b25FbmQ6CiAgICAgY2FzZSBJdGVtUG9zaXRpb25MZWZ0OgogICAgIGNhc2UgSXRlbVBvc2l0aW9u
UmlnaHQ6Ci0gICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlc2UuIFRoZSBleHRlbmRlZCBn
cmFtbWFyCi0gICAgICAgIC8vIGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQgc28gd2Ugc2hvdWxk
bid0IGhpdCB0aGlzIGNvZGVwYXRoLgotICAgICAgICAvLyBUaGUgbmV3IGdyYW1tYXIgaXMgb25s
eSB1c2VkIHdoZW4gR3JpZCBMYXlvdXQgZmVhdHVyZSBpcyBlbmFibGVkLgotICAgICAgICBBU1NF
UlQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCkpOworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZSBleHRlbmRlZCBn
cmFtbWFyLCBlbmFibGVkIHdoZW4gdGhlIEdyaWQgTGF5b3V0CisgICAgICAgIC8vIGZlYXR1cmUg
d2FzIGVuYWJsZWQgYnkgZGVmYXVsdC4KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVy
biAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
aW5kZXggN2ZiYTg4Y2Q4OTc2YmM2YTI0Yzk4YzY2M2NjMmIwNDViMzY2NmMxNS4uY2ExYTg0MTMw
MWNkNzk3NzhhM2U5MjYzNzBiNDJkNjlhNjM5NmE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yMzUsMTEgKzIzNSw2IEBAIFJlbmRl
clN0eWxlIFJlbmRlclN0eWxlOjpyZXBsYWNlKFJlbmRlclN0eWxlJiYgbmV3U3R5bGUpCiAgICAg
cmV0dXJuIFJlbmRlclN0eWxlIHsgKnRoaXMsIFdURk1vdmUobmV3U3R5bGUpIH07CiB9CiAKLWJv
b2wgUmVuZGVyU3R5bGU6OmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKQotewotICAgIHJldHVybiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVu
YWJsZWQoKTsKLX0KLQogc3RhdGljIFN0eWxlU2VsZkFsaWdubWVudERhdGEgcmVzb2x2ZWRTZWxm
QWxpZ25tZW50KGNvbnN0IFN0eWxlU2VsZkFsaWdubWVudERhdGEmIHZhbHVlLCBJdGVtUG9zaXRp
b24gbm9ybWFsVmFsdWVCZWhhdmlvcikKIHsKICAgICBpZiAodmFsdWUucG9zaXRpb24oKSA9PSBJ
dGVtUG9zaXRpb25MZWdhY3kgfHwgdmFsdWUucG9zaXRpb24oKSA9PSBJdGVtUG9zaXRpb25Ob3Jt
YWwgfHwgdmFsdWUucG9zaXRpb24oKSA9PSBJdGVtUG9zaXRpb25BdXRvKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBmOWQ4YzYwZmQ1M2E1MmU3
OTE4ODgwYjdhOWFmNzA4NzdmM2JjNjg5Li5mYjQzNTRmOGM2YjgzNDFiMjAxZWU4ZTJmOTk1YjY0
YmU5NWZiMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaApAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQgaW5pdGlh
bE9yZGVyKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBTdHlsZVNlbGZBbGlnbm1lbnREYXRh
IGluaXRpYWxKdXN0aWZ5SXRlbXMoKSB7IHJldHVybiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhKEl0
ZW1Qb3NpdGlvbkxlZ2FjeSwgT3ZlcmZsb3dBbGlnbm1lbnREZWZhdWx0KTsgfQogICAgIHN0YXRp
YyBTdHlsZVNlbGZBbGlnbm1lbnREYXRhIGluaXRpYWxTZWxmQWxpZ25tZW50KCkgeyByZXR1cm4g
U3R5bGVTZWxmQWxpZ25tZW50RGF0YShJdGVtUG9zaXRpb25BdXRvLCBPdmVyZmxvd0FsaWdubWVu
dERlZmF1bHQpOyB9Ci0gICAgc3RhdGljIFN0eWxlU2VsZkFsaWdubWVudERhdGEgaW5pdGlhbERl
ZmF1bHRBbGlnbm1lbnQoKSB7IHJldHVybiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhKGlzQ1NTR3Jp
ZExheW91dEVuYWJsZWQoKSA/IEl0ZW1Qb3NpdGlvbk5vcm1hbCA6IEl0ZW1Qb3NpdGlvblN0cmV0
Y2gsIE92ZXJmbG93QWxpZ25tZW50RGVmYXVsdCk7IH0KKyAgICBzdGF0aWMgU3R5bGVTZWxmQWxp
Z25tZW50RGF0YSBpbml0aWFsRGVmYXVsdEFsaWdubWVudCgpIHsgcmV0dXJuIFN0eWxlU2VsZkFs
aWdubWVudERhdGEoSXRlbVBvc2l0aW9uTm9ybWFsLCBPdmVyZmxvd0FsaWdubWVudERlZmF1bHQp
OyB9CiAgICAgc3RhdGljIFN0eWxlQ29udGVudEFsaWdubWVudERhdGEgaW5pdGlhbENvbnRlbnRB
bGlnbm1lbnQoKSB7IHJldHVybiBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhKENvbnRlbnRQb3Np
dGlvbk5vcm1hbCwgQ29udGVudERpc3RyaWJ1dGlvbkRlZmF1bHQsIE92ZXJmbG93QWxpZ25tZW50
RGVmYXVsdCk7IH0KICAgICBzdGF0aWMgRUZsZXhEaXJlY3Rpb24gaW5pdGlhbEZsZXhEaXJlY3Rp
b24oKSB7IHJldHVybiBGbG93Um93OyB9CiAgICAgc3RhdGljIEVGbGV4V3JhcCBpbml0aWFsRmxl
eFdyYXAoKSB7IHJldHVybiBGbGV4Tm9XcmFwOyB9CkBAIC0xNTc5LDggKzE1NzksNiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFRleHRTaXplQWRqdXN0bWVudCBpbml0aWFsVGV4dFNpemVBZGp1c3Qo
KSB7IHJldHVybiBUZXh0U2l6ZUFkanVzdG1lbnQoKTsgfQogI2VuZGlmCiAKLSAgICBzdGF0aWMg
Ym9vbCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCk7Ci0KICAgICBzdGF0aWMgV2lsbENoYW5nZURh
dGEqIGluaXRpYWxXaWxsQ2hhbmdlKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwCmluZGV4IGQ5MmU5MGQzYjMwOWYxNzI3YTMwYWEyMmM3NTE1YTkzM2U4MWQ5ODAuLmY1NTVh
YjUwYTVlMzkzYmEyNGJkYmZiMWE2NDQ1NDRmMGQ0YmNkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMTA0LDcgKzEwNCw2IEBAIEludGVybmFs
U2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKQogICAgICwgbV9pbmRleGVkREJXb3JrZXJzRW5h
YmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmluZGV4ZWREQldv
cmtlcnNFbmFibGVkKCkpCiAjZW5kaWYKLSAgICAsIG1fY3NzR3JpZExheW91dEVuYWJsZWQoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0NTU0dyaWRMYXlvdXRFbmFi
bGVkKCkpCiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICAsIG1fd2ViR0wyRW5hYmxlZChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkdMMkVuYWJsZWQoKSkKICNlbmRp
ZgpAQCAtMjA1LDcgKzIwNCw2IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8oU2V0dGluZ3MmIHNldHRpbmdzKQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lO
X1dPUktFUlMpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5z
ZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChtX2luZGV4ZWREQldvcmtlcnNFbmFibGVkKTsKICNl
bmRpZgotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NT
R3JpZExheW91dEVuYWJsZWQobV9jc3NHcmlkTGF5b3V0RW5hYmxlZCk7CiAjaWYgRU5BQkxFKFdF
QkdMMikKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdl
YkdMMkVuYWJsZWQobV93ZWJHTDJFbmFibGVkKTsKICNlbmRpZgpAQCAtNzQwLDExICs3MzgsNiBA
QCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEluZGV4ZWREQldvcmtlcnNFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICNlbmRpZgogfQogCi12b2lkIEludGVybmFsU2V0dGluZ3M6OnNldENTU0dyaWRM
YXlvdXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGVuYWJsZWQpOwotfQot
CiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFdlYkdMMkVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ewogI2lmIEVOQUJMRShXRUJHTDIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oCmluZGV4IDdkNzdmZjVhNjJkNTg5MTMwYmJiOTY0YjQ4YzQ1YTkyZTZmOWIwYjguLmZi
YTM2ODZlMzFjMDQ2NWYwZWZkYTdmZDQ4YWFlMDZkNjA4OTNmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMTksNyArMTE5LDYgQEAgcHVibGljOgog
CiAgICAgLy8gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KICAgICBzdGF0aWMgdm9pZCBzZXRJbmRl
eGVkREJXb3JrZXJzRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJHTDJFbmFibGVkKGJvb2wp
OwogICAgIHN0YXRpYyB2b2lkIHNldFdlYkdQVUVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIHZv
aWQgc2V0V2ViVlJFbmFibGVkKGJvb2wpOwpAQCAtMjAwLDcgKzE5OSw2IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgLy8gUnVudGltZSBlbmFibGVkIHNldHRpbmdzLgogICAgICAgICBib29sIG1faW5k
ZXhlZERCV29ya2Vyc0VuYWJsZWQ7Ci0gICAgICAgIGJvb2wgbV9jc3NHcmlkTGF5b3V0RW5hYmxl
ZDsKICAgICAgICAgYm9vbCBtX3dlYkdMMkVuYWJsZWQ7CiAgICAgICAgIGJvb2wgbV93ZWJHUFVF
bmFibGVkOwogICAgICAgICBib29sIG1fd2ViVlJFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggZDA3ZTY2ZWI2OTdlYTJhOTkxMTkxZTNl
MjVlZGVkNjU3MThiZjFiMi4uZmQ2YjNhNGVlZjA3MGU4ZDYzYTQ4YzMwNTNkMTA5MmMzMGVhZDA2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC04
OCw3ICs4OCw2IEBAIGVudW0gRm9udExvYWRUaW1pbmdPdmVycmlkZSB7ICJCbG9jayIsICJTd2Fw
IiwgIkZhaWx1cmUiIH07CiAKICAgICAvLyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLgogICAgIHZv
aWQgc2V0SW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKLSAgICB2b2lk
IHNldENTU0dyaWRMYXlvdXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRX
ZWJHTDJFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRXZWJHUFVFbmFibGVk
KGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRXZWJWUkVuYWJsZWQoYm9vbGVhbiBlbmFi
bGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlh
bWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGEyNDBh
ODhlNzBiYWQ3OGE3ZDM5MTQ4M2FhNjJlMzFiM2ZjMjU5NTMuLjZjMDFiODljZTFjMGZhOGJjOGYx
YmYzN2UyMDA3ZGZlZDc1MjQ3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbApAQCAtNjg2LDE0ICs2ODYsNiBAQCBTaG91bGRTdXBwcmVzc1RleHRJbnB1dEZyb21F
ZGl0aW5nRHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOgogICB0eXBlOiBib29sCiAgIGRlZmF1
bHRWYWx1ZTogZmFsc2UKIAotQ1NTR3JpZExheW91dEVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAg
ZGVmYXVsdFZhbHVlOiB0cnVlCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIEdyaWQiCi0gIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkNTUyBHcmlkIExheW91dCBNb2R1bGUgc3VwcG9ydCIK
LSAgYmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwotICB3ZWJjb3JlQmluZGluZzogUnVu
dGltZUVuYWJsZWRGZWF0dXJlcwotCiBHYW1lcGFkc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
ZGVmYXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBhYTIzMDhhOWFhN2Vh
NzJiMjliZmRkZGIzNTFmNjA0OWRmNzk0YmRjLi5iZDYwOTcwNmMwODU0MDM4MGEzZDQ1NzhmOGNk
NzcxYTg0ZjYyOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTIwNSw5ICsyMDUsNiBAQCB2
b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihX
ZWJQYWdlR3JvdXBQcm94eSogcGFnZQogICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldFdyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZChlbmFibGVkKTsKICNl
bmRpZgogCi0gICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVk
IikKLSAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRD
U1NHcmlkTGF5b3V0RW5hYmxlZChlbmFibGVkKTsKLQogICAgIGlmIChwcmVmZXJlbmNlID09ICJX
ZWJLaXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0SW50ZXJhY3RpdmVGb3JtVmFsaWRh
dGlvbkVuYWJsZWQoZW5hYmxlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDY0ZDY3MmE4
YjU3NDA0ZGE2MWJlZWZjODYyM2ZkZTE1YTE4YjQ0Y2IuLjNmNDhhYjA2MzZhZTNlYjE0NDg1MGE1
Njk4ZTg3NjAwMjFiN2FmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTc4LDcgKzE3OCw2
IEBACiAjZGVmaW5lIFdlYktpdFJlYWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWRQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0UmVhZGFibGVCeXRlU3RyZWFtQVBJRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdERvd25sb2FkQXR0
cmlidXRlRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RGlyZWN0b3J5VXBsb2FkRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkIgotI2RlZmluZSBXZWJLaXRD
U1NHcmlkTGF5b3V0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NHcmlkTGF5b3V0RW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3BvcnRFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0VmlzdWFsVmlld3Bv
cnRBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFZpc3VhbFZpZXdwb3J0QVBJRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5NWRlZTljNThiMDY5
NjUzZDc4NDBmNzkzNTBhNTU4ZDYzODBiNTBkLi5mMTQ1Y2Y4ZjA1N2ZjMTExM2Q3NGVjMTJmOGJi
YTkzZTM3NTY3ODBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KQEAgLTYzOSw3ICs2MzksNiBAQCArICh2b2lkKWluaXRpYWxpemUK
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0RG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkUHJlZmVyZW5jZUtleSwKICNlbmRpZgogICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXREaXJlY3RvcnlVcGxvYWRFbmFibGVkUHJlZmVyZW5jZUtl
eSwKLSAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIFdlYktpdENTU0dyaWRM
YXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhC
b29sOk5PXSwgV2ViS2l0V2ViQW5pbWF0aW9uc0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogCiAjaWYg
UExBVEZPUk0oSU9TKQpAQCAtMzA1NiwxNiArMzA1NSw2IEBAIC0gKEJPT0wpZGlyZWN0b3J5VXBs
b2FkRW5hYmxlZAogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdERpcmVj
dG9yeVVwbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAotLSAoQk9PTClpc0NTU0dyaWRM
YXlvdXRFbmFibGVkCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0
Q1NTR3JpZExheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKLX0KLQotLSAodm9pZClzZXRDU1NH
cmlkTGF5b3V0RW5hYmxlZDooQk9PTClmbGFnCi17Ci0gICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZFByZWZlcmVuY2VLZXldOwotfQot
CiAtIChCT09MKXZpc3VhbFZpZXdwb3J0RW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBfYm9v
bFZhbHVlRm9yS2V5OldlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VLZXldOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKaW5kZXggNGZmZmM1OTcxMDNiMDRiNmVlNTZhN2RjY2I4YTVjMGEwY2MxMWY5
Mi4uNzdmNjk1MGEyYzFiMThlNWJkNzg5OGM2Njk0ZTA5MzdhNzNiOWIwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCkBAIC01NTgsOSArNTU4LDYgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0Nh
Y2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb247CiAtICh2b2lkKXNldERpcmVjdG9y
eVVwbG9hZEVuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpZGlyZWN0b3J5VXBsb2FkRW5hYmxl
ZDsKIAotLSAodm9pZClzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDooQk9PTClmbGFnOwotLSAoQk9P
TClpc0NTU0dyaWRMYXlvdXRFbmFibGVkOwotCiAtICh2b2lkKXNldFdlYkFuaW1hdGlvbnNFbmFi
bGVkOihCT09MKWZsYWc7CiAtIChCT09MKXdlYkFuaW1hdGlvbnNFbmFibGVkOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZWMyNmIyYjk0NTZjMjZi
NzZjYzE2ZmRiMjg0NzA0OWQ2YmU0NmY0OC4uYzI4ODczZjFhM2I0OGVjOWVjNTFlMTU4OGE1NzJm
MzZmYzlkNzhmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMzAyNCw4ICszMDI0LDYgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQ
cmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQoW3ByZWZlcmVuY2VzIGRv
d25sb2FkQXR0cmlidXRlRW5hYmxlZF0pOwogI2VuZGlmCiAKLSAgICBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0dyaWRMYXlvdXRFbmFibGVkKFtwcmVmZXJl
bmNlcyBpc0NTU0dyaWRMYXlvdXRFbmFibGVkXSk7Ci0KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYkFuaW1hdGlvbnNFbmFibGVkKFtwcmVmZXJlbmNl
cyB3ZWJBbmltYXRpb25zRW5hYmxlZF0pOwogCiAjaWYgRU5BQkxFKElOVEVSU0VDVElPTl9PQlNF
UlZFUikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhNGU3MGQ0ZjhmYTU4OGQxZTE3ZGZmZTlhNDZhNmZmMThhNjZlZWZmLi5lN2IxOWE1OGI0ZWZi
YjAwMzA1N2YwZjM3YzczNzRhZjk3YTBiODgxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDMtMDggIEphdmll
ciBGZXJuYW5kZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEdy
aWRMYXlvdXQgcnVudGltZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODM0ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgR3JpZCBMYXlvdXQgZmVhdHVyZSBoYXMgYmVlbiBlbmFibGVkIGJ5
IGRlZmF1bHQgZm9yIGFsbW9zdCBhCisgICAgICAgIHllYXIsIHNvIEkgdGhpbmsgaXQncyB0aW1l
IHRvIHJlbW92ZSB0aGUgcnVudGltZSBmbGFnIGFuZCB0aGUKKyAgICAgICAgY29kZXBhdGggcnVu
IHdoZW4gdGhlIGZlYXR1cmUgaXMgZGlzYWJsZWQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0
dXJlcyk6CisKIDIwMTgtMDMtMDggIE1zMmdlciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdIFVwZGF0ZSBleHBlY3RhdGlvbnMgZm9yIEFQSSB0ZXN0cwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDJlZDM4ZDZmODY3MTZkNDMwYmQ4
YmMzNDdhNTdjMjBlNzZkZWJiOTYuLjE1NWZmNWRkODMzOTYwMTJiZTEyMjM3ZDA5MTQ0ZTU0YmM5
ZDhjOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAg
LTg0MCw3ICs4NDAsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmxpYnJhcnlQYXRoRm9yRHVtcFJlbmRl
clRyZWUoKQogCiBzdGF0aWMgdm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVm
ZXJlbmNlcyogcHJlZmVyZW5jZXMpCiB7Ci0gICAgW3ByZWZlcmVuY2VzIHNldENTU0dyaWRMYXlv
dXRFbmFibGVkOllFU107CiAgICAgLy8gRklYTUU6IFNwcmluZ1RpbWluZ0Z1bmN0aW9uCiAgICAg
W3ByZWZlcmVuY2VzIHNldEdhbWVwYWRzRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBz
ZXRMaW5rUHJlbG9hZEVuYWJsZWQ6WUVTXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNTlkYzliYjM1NDA0OGQzNjRkY2Qz
ZTEzYzUyMGI1ODQyMzI2MTI3Li4yYTNjM2VmMjkyYjE1NTBmZGE4ZTg2ZWNkZjc5MzdjNTFjY2Nm
ZDdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgtMDMtMDggIEphdmllciBGZXJuYW5kZXog
IDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEdyaWRMYXlvdXQgcnVu
dGltZSBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODM0ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTaW5jZSB0aGUgR3JpZExheW91dCBydW50aW1lIGZsYWcgaXMgcmVtb3ZlZCBhbmQgdGhlIGZl
YXR1cmUKKyAgICAgICAgZW5hYmxlZCBieSBkZWZhdWx0LCB3ZSBkb24ndCBuZWVkIHRoZSB0ZXN0
cyB2ZXJpZnlpbmcgdGhlCisgICAgICAgIGNvZGVwYXRocyBydW4gd2hlbiB0aGUgZmVhdHVyZSBp
cyBkaXNhYmxlZC4KKworICAgICAgICAqIGNzczMvZmxleGJveC9mbGV4Ym94LWxpbmVzLW11c3Qt
YmUtc3RyZXRjaGVkLWJ5LWRlZmF1bHQuaHRtbDoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvbmV3
LWFsaWdubWVudC12YWx1ZXMtaW52YWxpZC1pZi1ncmlkLW5vdC1lbmFibGVkLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvbmV3LWFsaWdubWVudC12YWx1ZXMt
aW52YWxpZC1pZi1ncmlkLW5vdC1lbmFibGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgtaW5p
dGlhbC12YWx1ZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY3NzL2Vu
c3VyZS1mbGV4Ym94LWNvbXBhdGliaWxpdHktd2l0aC1pbml0aWFsLXZhbHVlcy5odG1sOiBSZW1v
dmVkLgorCiAyMDE4LTAzLTA4ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbaU9TXSBVcGRhdGUgUE5HIGV4cGVjdGF0aW9ucyBmb3Igc29tZSBNYXRoTUwgcGl4
ZWwgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleGJveC1s
aW5lcy1tdXN0LWJlLXN0cmV0Y2hlZC1ieS1kZWZhdWx0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NzczMvZmxleGJveC9mbGV4Ym94LWxpbmVzLW11c3QtYmUtc3RyZXRjaGVkLWJ5LWRlZmF1
bHQtZXhwZWN0ZWQudHh0CmluZGV4IDZkYTNkOTUzNDE5MjgzYTlhZTdiYTRlOTg1ODM0YTQ4YjA4
ODY3YzYuLmMzZjQwMTk2MTdiYjhiZTJkNmViY2ExZWIxMGRhODEzNDk1NTFjY2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4Ym94LWxpbmVzLW11c3QtYmUtc3RyZXRj
aGVkLWJ5LWRlZmF1bHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJv
eC9mbGV4Ym94LWxpbmVzLW11c3QtYmUtc3RyZXRjaGVkLWJ5LWRlZmF1bHQtZXhwZWN0ZWQudHh0
CkBAIC0xLDggKzEsNiBAQAogCi0KICdUZXN0IGZvciBCVUc9NjQ3Njk0IC0gYWxpZ24tY29udGVu
dCAic3RyZXRjaCIgaXMgbm90IGFwcGxpZWQgYnkgZGVmYXVsdCB3aGVuIGdyaWQgaXMgZGlzYWJs
ZWQuJwogCiAKLVBBU1MgLmdyaWREaXNhYmxlZCAxIAotUEFTUyAuZ3JpZEVuYWJsZWQgMSAKK1BB
U1MgLmZsZXgtY29udGFpbmVyIDEgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxl
eGJveC9mbGV4Ym94LWxpbmVzLW11c3QtYmUtc3RyZXRjaGVkLWJ5LWRlZmF1bHQuaHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4Ym94LWxpbmVzLW11c3QtYmUtc3RyZXRjaGVkLWJ5
LWRlZmF1bHQuaHRtbAppbmRleCA2N2U2NWNkYTE1N2I0NmUwM2U0OTIzMWU1OTgzNzE0N2FmMWE2
YTFjLi40Y2U1ZWUwZjlmMDAzOGRjNDhiMWQ3OGFmNzM2MzlhMzdhOGVhYzViIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleGJveC1saW5lcy1tdXN0LWJlLXN0cmV0Y2hl
ZC1ieS1kZWZhdWx0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXhib3gt
bGluZXMtbXVzdC1iZS1zdHJldGNoZWQtYnktZGVmYXVsdC5odG1sCkBAIC0yMywxNiArMjMsMTAg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LXRoLmpzIj48L3Nj
cmlwdD4KIDxib2R5PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHJ1blRlc3QoZ3JpZEVuYWJsZWQpCitm
dW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGdyaWRFbmFibGVkKTsK
LQogICAgIHZhciBmbGV4Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
Ci0gICAgaWYgKGdyaWRFbmFibGVkKQotICAgICAgICBmbGV4Q29udGFpbmVyLmNsYXNzTmFtZSAr
PSAiZ3JpZEVuYWJsZWQgZmxleC1jb250YWluZXIiOwotICAgIGVsc2UKLSAgICAgICAgZmxleENv
bnRhaW5lci5jbGFzc05hbWUgKz0gImdyaWREaXNhYmxlZCBmbGV4LWNvbnRhaW5lciI7CisgICAg
ZmxleENvbnRhaW5lci5jbGFzc05hbWUgKz0gImZsZXgtY29udGFpbmVyIjsKICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGZsZXhDb250YWluZXIpOwogCiAgICAgdmFyIGZsZXhJdGVtMSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpAQCAtNTIsMTQgKzQ2LDEwIEBAIGZ1bmN0
aW9uIHJ1blRlc3QoZ3JpZEVuYWJsZWQpCiAKICAgICBmbGV4Q29udGFpbmVyLnN0eWxlLmFsaWdu
Q29udGVudCA9ICJpbml0aWFsIjsKIAotICAgIGlmIChncmlkRW5hYmxlZCkKLSAgICAgICAgY2hl
Y2tMYXlvdXQoJy5ncmlkRW5hYmxlZCcpOwotICAgIGVsc2UKLSAgICAgICAgY2hlY2tMYXlvdXQo
Jy5ncmlkRGlzYWJsZWQnKTsKKyAgICBjaGVja0xheW91dCgnLmZsZXgtY29udGFpbmVyJyk7CiB9
CiAKLXJ1blRlc3QoZmFsc2UpOwotcnVuVGVzdCh0cnVlKTsKK3J1blRlc3QoKTsKIDwvc2NyaXB0
PgogPHA+J1Rlc3QgZm9yIEJVRz02NDc2OTQgLSBhbGlnbi1jb250ZW50ICJzdHJldGNoIiBpcyBu
b3QgYXBwbGllZCBieSBkZWZhdWx0IHdoZW4gZ3JpZCBpcyBkaXNhYmxlZC4nPC9wPgogPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9uZXct
YWxpZ25tZW50LXZhbHVlcy1pbnZhbGlkLWlmLWdyaWQtbm90LWVuYWJsZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVzLWludmFsaWQt
aWYtZ3JpZC1ub3QtZW5hYmxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIxMTdjMzNiOGVjOTRjNDc4ZmIwZTQzNDY0YzJlNjdlMmZmMmVkNWUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9m
bGV4Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVzLWludmFsaWQtaWYtZ3JpZC1ub3QtZW5hYmxlZC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVRlc3QgdG8gdmVyaWZ5
IHRoYXQgdGhlIG5ldyBhbGlnbm1lbnQgdmFsdWVzIGFyZSBwYXJzZWQgYXMgaW52YWxpZCBpZiBH
cmlkIExheW91dCBpcyBkaXNhYmxlZCBhbmQgaW4gYW55IGNhc2UgdGhleSBkbyBub3QgY2F1c2Ug
YSBjcmFzaCBiZWNhdXNlIGFzc2VydGlvbnMgaW4gZmxleGJveCBsYXlvdXQgY29kZS4KLQotCi1Q
QVNTIE5ldyBTZWxmLUFsaWdubWVudCB2YWx1ZXMgc2hvdWxkIGJlIGludmFsaWQgd2hlbiBncmlk
IGxheW91dCBpcyBESVNBQkxFRC4gCi1QQVNTIE5ldyBEZWZhdWx0LUFsaWdubWVudCB2YWx1ZXMg
c2hvdWxkIGJlIGludmFsaWQgd2hlbiBncmlkIGxheW91dCBpcyBESVNBQkxFRC4gCi1QQVNTIEV2
ZW4gd2hlbiBncmlkIGxheW91dCBpcyBFTkFCTEVELCBuZXcgU2VsZi1BbGlnbm1lbnQgdmFsdWVz
IHNob3VsZCBub3QgdmlvbGF0ZSBhc3NlcnRpb25zIGluIEZsZXhpYmxlQm94IGxheW91dCBsb2dp
Yy4uIAotUEFTUyBFdmVuIHdoZW4gZ3JpZCBsYXlvdXQgaXMgRU5BQkxFRCwgbmV3IERlZmF1bHQt
QWxpZ25tZW50IHZhbHVlcyBzaG91bGQgbm90IHZpb2xhdGUgYXNzZXJ0aW9ucyBpbiBGbGV4aWJs
ZUJveCBsYXlvdXQgbG9naWMuLiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVzLWludmFsaWQtaWYtZ3JpZC1ub3QtZW5hYmxlZC5odG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L25ldy1hbGlnbm1lbnQtdmFsdWVzLWludmFsaWQt
aWYtZ3JpZC1ub3QtZW5hYmxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
NjU2YWUyNTI3OWVmZmY2ZjBjODdlYTMyZDI1MDE3MGRlMGZhOWI4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9u
ZXctYWxpZ25tZW50LXZhbHVlcy1pbnZhbGlkLWlmLWdyaWQtbm90LWVuYWJsZWQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvYWxpZ25tZW50LXBhcnNpbmctdXRpbHMtdGguanMiPjwvc2NyaXB0
PgotPGh0bWw+Ci0gPGJvZHk+Ci0gICAgIDxwPlRlc3QgdG8gdmVyaWZ5IHRoYXQgdGhlIG5ldyBh
bGlnbm1lbnQgdmFsdWVzIGFyZSBwYXJzZWQgYXMgaW52YWxpZCBpZiBHcmlkIExheW91dCBpcyBk
aXNhYmxlZCBhbmQgaW4gYW55IGNhc2UgdGhleSBkbyBub3QgY2F1c2UgYSBjcmFzaCBiZWNhdXNl
IGFzc2VydGlvbnMgaW4gZmxleGJveCBsYXlvdXQgY29kZS48L3A+Ci0gICAgIDxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Ci0KLSAgICAgPGRpdiBpZD0iZmxleENvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6
IGZsZXgiPgotICAgICAgICAgPGRpdiBpZD0iZmxleEl0ZW0iPjwvZGl2PgotICAgICA8L2Rpdj4K
LTxzY3JpcHQ+Ci0KLXZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmxl
eENvbnRhaW5lciIpOwotdmFyIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmxleEl0
ZW0iKTsKLQotZnVuY3Rpb24gY2hlY2tBbGlnblNlbGZWYWx1ZSh2YWx1ZSwgY29tcHV0ZWRWYWx1
ZSwgZ3JpZEVuYWJsZWQpCi17Ci0gICAgaXRlbS5zdHlsZS53ZWJraXRBbGlnblNlbGYgPSB2YWx1
ZTsKLSAgICBpZiAoZ3JpZEVuYWJsZWQpCi0gICAgICAgIGNoZWNrVmFsdWVzKGl0ZW0sICJhbGln
blNlbGYiLCAiYWxpZ24tc2VsZiIsIHZhbHVlLCBjb21wdXRlZFZhbHVlKTsKLSAgICBlbHNlCi0g
ICAgICAgIGNoZWNrVmFsdWVzKGl0ZW0sICJhbGlnblNlbGYiLCAiYWxpZ24tc2VsZiIsICJmbGV4
LXN0YXJ0IiwgImZsZXgtc3RhcnQiKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tBbGlnbkl0ZW1zVmFs
dWUodmFsdWUsIGNvbXB1dGVkVmFsdWUsIGdyaWRFbmFibGVkKQotewotICAgIGNvbnRhaW5lci5z
dHlsZS53ZWJraXRBbGlnbkl0ZW1zID0gdmFsdWU7Ci0gICAgaWYgKGdyaWRFbmFibGVkKSB7Ci0g
ICAgICAgIGNoZWNrVmFsdWVzKGNvbnRhaW5lciwgImFsaWduSXRlbXMiLCAiYWxpZ24taXRlbXMi
LCB2YWx1ZSwgY29tcHV0ZWRWYWx1ZSk7Ci0gICAgICAgIGNoZWNrVmFsdWVzKGl0ZW0sICJhbGln
blNlbGYiLCAiYWxpZ24tc2VsZiIsICJhdXRvIiwgImF1dG8iKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBjaGVja1ZhbHVlcyhjb250YWluZXIsICJhbGlnbkl0ZW1zIiwgImFsaWduLWl0ZW1zIiwg
ImZsZXgtZW5kIiwgImZsZXgtZW5kIik7Ci0gICAgICAgIGNoZWNrVmFsdWVzKGl0ZW0sICJhbGln
blNlbGYiLCAiYWxpZ24tc2VsZiIsICJhdXRvIiwgImF1dG8iKTsKLSAgICB9Ci19Ci0KLWZ1bmN0
aW9uIGNoZWNrU2VsZkFsaWdubWVudFZhbHVlcyhncmlkRW5hYmxlZCkKLXsKLSAgICBpZiAod2lu
ZG93LmludGVybmFscykKLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0dyaWRMYXlv
dXRFbmFibGVkKGdyaWRFbmFibGVkKQotCi0gICAgaXRlbS5zdHlsZS53ZWJraXRBbGlnblNlbGYg
PSAiZmxleC1zdGFydCI7Ci0KLSAgICBjaGVja0FsaWduU2VsZlZhbHVlKCJ1bnNhZmUgc3RhcnQi
LCAidW5zYWZlIHN0YXJ0IiwgZ3JpZEVuYWJsZWQpCi0gICAgY2hlY2tBbGlnblNlbGZWYWx1ZSgi
c3RhcnQiLCAic3RhcnQiLCBncmlkRW5hYmxlZCkKLSAgICBjaGVja0FsaWduU2VsZlZhbHVlKCJl
bmQiLCAiZW5kIiwgZ3JpZEVuYWJsZWQpCi0gICAgY2hlY2tBbGlnblNlbGZWYWx1ZSgic2FmZSBm
bGV4LXN0YXJ0IiwgInNhZmUgZmxleC1zdGFydCIsIGdyaWRFbmFibGVkKQotICAgIGNoZWNrQWxp
Z25TZWxmVmFsdWUoInNlbGYtc3RhcnQiLCAic2VsZi1zdGFydCIsIGdyaWRFbmFibGVkKQotICAg
IGNoZWNrQWxpZ25TZWxmVmFsdWUoInNlbGYtZW5kIiwgInNlbGYtZW5kIiwgZ3JpZEVuYWJsZWQp
Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrRGVmYXVsdEFsaWdubWVudFZhbHVlcyhncmlkRW5hYmxlZCkK
LXsKLSAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGdyaWRFbmFibGVkKQotCi0gICAgY29udGFpbmVyLnN0
eWxlLndlYmtpdEFsaWduSXRlbXMgPSAiZmxleC1lbmQiOwotICAgIGl0ZW0uc3R5bGUud2Via2l0
QWxpZ25TZWxmID0gImF1dG8iOwotCi0gICAgY2hlY2tBbGlnbkl0ZW1zVmFsdWUoInVuc2FmZSBz
dGFydCIsICJ1bnNhZmUgc3RhcnQiLCBncmlkRW5hYmxlZCkKLSAgICBjaGVja0FsaWduSXRlbXNW
YWx1ZSgic3RhcnQiLCAic3RhcnQiLCBncmlkRW5hYmxlZCkKLSAgICBjaGVja0FsaWduSXRlbXNW
YWx1ZSgiZW5kIiwgImVuZCIsIGdyaWRFbmFibGVkKQotICAgIGNoZWNrQWxpZ25JdGVtc1ZhbHVl
KCJzYWZlIGZsZXgtc3RhcnQiLCAic2FmZSBmbGV4LXN0YXJ0IiwgZ3JpZEVuYWJsZWQpCi0gICAg
Y2hlY2tBbGlnbkl0ZW1zVmFsdWUoInNlbGYtc3RhcnQiLCAic2VsZi1zdGFydCIsIGdyaWRFbmFi
bGVkKQotICAgIGNoZWNrQWxpZ25JdGVtc1ZhbHVlKCJzZWxmLWVuZCIsICJzZWxmLWVuZCIsIGdy
aWRFbmFibGVkKQotfQotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGNoZWNrU2VsZkFsaWdubWVu
dFZhbHVlcyhmYWxzZSk7Ci19LCAiTmV3IFNlbGYtQWxpZ25tZW50IHZhbHVlcyBzaG91bGQgYmUg
aW52YWxpZCB3aGVuIGdyaWQgbGF5b3V0IGlzIERJU0FCTEVELiIpOwotCi10ZXN0KGZ1bmN0aW9u
KCkgewotICAgIGNoZWNrRGVmYXVsdEFsaWdubWVudFZhbHVlcyhmYWxzZSk7Ci19LCAiTmV3IERl
ZmF1bHQtQWxpZ25tZW50IHZhbHVlcyBzaG91bGQgYmUgaW52YWxpZCB3aGVuIGdyaWQgbGF5b3V0
IGlzIERJU0FCTEVELiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGNoZWNrU2VsZkFsaWdu
bWVudFZhbHVlcyh0cnVlKTsKLX0sICJFdmVuIHdoZW4gZ3JpZCBsYXlvdXQgaXMgRU5BQkxFRCwg
bmV3IFNlbGYtQWxpZ25tZW50IHZhbHVlcyBzaG91bGQgbm90IHZpb2xhdGUgYXNzZXJ0aW9ucyBp
biBGbGV4aWJsZUJveCBsYXlvdXQgbG9naWMuLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAg
IGNoZWNrRGVmYXVsdEFsaWdubWVudFZhbHVlcyh0cnVlKTsKLX0sICJFdmVuIHdoZW4gZ3JpZCBs
YXlvdXQgaXMgRU5BQkxFRCwgbmV3IERlZmF1bHQtQWxpZ25tZW50IHZhbHVlcyBzaG91bGQgbm90
IHZpb2xhdGUgYXNzZXJ0aW9ucyBpbiBGbGV4aWJsZUJveCBsYXlvdXQgbG9naWMuLiIpOwotCi08
L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4ODg3Mzk3NGQ0ZDc4NzU4ZTI0NjE5MWEyZDg3NGY3NzIw
ODcxNWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVZlcmlmaWVzIHRoYXQgQ1NTIEdyaWQgTGF5
b3V0IGRvZXMgbm90IHdvcmsgaWYgcnVudGltZSBmZWF0dXJlIGlzIGRpc2FibGVkLgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Z3JpZCcpLnN0eWxlLmRpc3BsYXkgaXMgJycKLVBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2lubGluZWdyaWQnKS5zdHlsZS5kaXNwbGF5IGlzICcnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWZlNzFlYjAwMjgzMmY2MGQ0Y2VlMGJhOTFiZWE0MzcyMDg4N2I2NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZmFs
c2UpOwotPC9zY3JpcHQ+Ci0KLTxkaXYgaWQ9ImdyaWQiIHN0eWxlPSJkaXNwbGF5OiBncmlkIj48
L2Rpdj4KLTxkaXYgaWQ9ImlubGluZWdyaWQiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtZ3JpZCI+
PC9kaXY+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IENTUyBHcmlkIExh
eW91dCBkb2VzIG5vdCB3b3JrIGlmIHJ1bnRpbWUgZmVhdHVyZSBpcyBkaXNhYmxlZC4iKTsKLQot
c2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmlkJykuc3R5bGUuZGlzcGxheSIs
ICInJyIpOwotc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmxpbmVncmlkJyku
c3R5bGUuZGlzcGxheSIsICInJyIpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgtaW5pdGlhbC12YWx1
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZW5zdXJlLWZsZXhib3gtY29t
cGF0aWJpbGl0eS13aXRoLWluaXRpYWwtdmFsdWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWUwZTc0NTg5NzFkMzZlY2I5ZmI4M2I1MTY2YWYxMzlkYjhjYTRh
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgtaW5pdGlhbC12
YWx1ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotVGVzdCB0
byB2ZXJpZnkgaW5pdGlhbCB2YWx1ZXMgb2YgYWxpZ25tZW50IHByb3BlcnRpZXMgYXJlIGJhY2t3
YXJkLWNvbWFwdGlibGUgd2l0aCBmbGV4Ym94IGltcGxlbWVudGF0aW9uLgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotCi1WZXJpZnlpbmcgaW5pdGlhbCB2YWx1ZXMgYXJlIHN1cHBv
cnRlZCB3aGVuIGdyaWQgaXMgRU5BQkxFRC4KLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1pdGVt
cycsICdub3JtYWwnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24tc2VsZicsICdh
dXRvJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWNvbnRlbnQnLCAnbm9ybWFs
JykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2p1c3RpZnktY29udGVudCcsICdub3JtYWwn
KSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24taXRlbXMnLCAnbm9ybWFsJykgaXMg
dHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLXNlbGYnLCAnYXV0bycpIGlzIHRydWUKLVBB
U1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1jb250ZW50JywgJ25vcm1hbCcpIGlzIHRydWUKLVBBU1Mg
Q1NTLnN1cHBvcnRzKCdqdXN0aWZ5LWNvbnRlbnQnLCAnbm9ybWFsJykgaXMgdHJ1ZQotUEFTUyBD
U1Muc3VwcG9ydHMoJ2FsaWduLWl0ZW1zJywgJ25vcm1hbCcpIGlzIHRydWUKLVBBU1MgQ1NTLnN1
cHBvcnRzKCdhbGlnbi1zZWxmJywgJ2F1dG8nKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygn
YWxpZ24tY29udGVudCcsICdub3JtYWwnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnanVz
dGlmeS1jb250ZW50JywgJ25vcm1hbCcpIGlzIHRydWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGln
bi1pdGVtcycsICdub3JtYWwnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24tc2Vs
ZicsICdhdXRvJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWNvbnRlbnQnLCAn
bm9ybWFsJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2p1c3RpZnktY29udGVudCcsICdu
b3JtYWwnKSBpcyB0cnVlCi0KLVZlcmlmeWluZyBpbml0aWFsIHZhbHVlcyBhcmUgc3VwcG9ydGVk
IHdoZW4gZ3JpZCBpcyBESVNBQkxFRC4KLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1pdGVtcycs
ICdzdHJldGNoJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLXNlbGYnLCAnYXV0
bycpIGlzIHRydWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1jb250ZW50JywgJ3N0cmV0Y2gn
KSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnanVzdGlmeS1jb250ZW50JywgJ2ZsZXgtc3Rh
cnQnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24taXRlbXMnLCAnc3RyZXRjaCcp
IGlzIHRydWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdhbGlnbi1zZWxmJywgJ2F1dG8nKSBpcyB0cnVl
Ci1QQVNTIENTUy5zdXBwb3J0cygnYWxpZ24tY29udGVudCcsICdzdHJldGNoJykgaXMgdHJ1ZQot
UEFTUyBDU1Muc3VwcG9ydHMoJ2p1c3RpZnktY29udGVudCcsICdmbGV4LXN0YXJ0JykgaXMgdHJ1
ZQotUEFTUyBDU1Muc3VwcG9ydHMoJ2FsaWduLWl0ZW1zJywgJ3N0cmV0Y2gnKSBpcyB0cnVlCi1Q
QVNTIENTUy5zdXBwb3J0cygnYWxpZ24tc2VsZicsICdhdXRvJykgaXMgdHJ1ZQotUEFTUyBDU1Mu
c3VwcG9ydHMoJ2FsaWduLWNvbnRlbnQnLCAnc3RyZXRjaCcpIGlzIHRydWUKLVBBU1MgQ1NTLnN1
cHBvcnRzKCdqdXN0aWZ5LWNvbnRlbnQnLCAnZmxleC1zdGFydCcpIGlzIHRydWUKLVBBU1MgQ1NT
LnN1cHBvcnRzKCdhbGlnbi1pdGVtcycsICdzdHJldGNoJykgaXMgdHJ1ZQotUEFTUyBDU1Muc3Vw
cG9ydHMoJ2FsaWduLXNlbGYnLCAnYXV0bycpIGlzIHRydWUKLVBBU1MgQ1NTLnN1cHBvcnRzKCdh
bGlnbi1jb250ZW50JywgJ3N0cmV0Y2gnKSBpcyB0cnVlCi1QQVNTIENTUy5zdXBwb3J0cygnanVz
dGlmeS1jb250ZW50JywgJ2ZsZXgtc3RhcnQnKSBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZW5zdXJlLWZsZXhib3gtY29tcGF0aWJpbGl0eS13aXRoLWluaXRpYWwtdmFsdWVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9lbnN1cmUtZmxleGJveC1jb21wYXRpYmlsaXR5
LXdpdGgtaW5pdGlhbC12YWx1ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Nzk1YmVhOTk5NGIxMThkZDdiMmI4Y2I3ZDI4MGRkZDk2MTI0MGNhMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9lbnN1
cmUtZmxleGJveC1jb21wYXRpYmlsaXR5LXdpdGgtaW5pdGlhbC12YWx1ZXMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDY2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvYWxpZ25tZW50LXBhcnNpbmctdXRpbHMuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0
PgotZGVzY3JpcHRpb24oJ1Rlc3QgdG8gdmVyaWZ5IGluaXRpYWwgdmFsdWVzIG9mIGFsaWdubWVu
dCBwcm9wZXJ0aWVzIGFyZSBiYWNrd2FyZC1jb21hcHRpYmxlIHdpdGggZmxleGJveCBpbXBsZW1l
bnRhdGlvbi4nKTsKLQotZnVuY3Rpb24gc2V0SW5pdGlhbFZhbHVlcyhlbGVtZW50KQotewotICAg
IGVsZW1lbnQuc3R5bGUuYWxpZ25JdGVtcyA9ICJpbml0aWFsIjsKLSAgICBlbGVtZW50LnN0eWxl
LmFsaWduQ29udGVudCA9ICJpbml0aWFsIjsKLSAgICBlbGVtZW50LnN0eWxlLmp1c3RpZnlDb250
ZW50ID0gImluaXRpYWwiOwotfQotCi1mdW5jdGlvbiBjaGVja1N1cHBvcnRlZEluaXRpYWxWYWx1
ZXMoZWxlbWVudCkKLXsKLSAgICBjaGVja1N1cHBvcnRlZFZhbHVlcyhlbGVtZW50LmlkLCAiYWxp
Z24taXRlbXMiKTsKLSAgICBjaGVja1N1cHBvcnRlZFZhbHVlcyhlbGVtZW50LmlkLCAiYWxpZ24t
c2VsZiIpOwotICAgIGNoZWNrU3VwcG9ydGVkVmFsdWVzKGVsZW1lbnQuaWQsICJhbGlnbi1jb250
ZW50Iik7Ci0gICAgY2hlY2tTdXBwb3J0ZWRWYWx1ZXMoZWxlbWVudC5pZCwgImp1c3RpZnktY29u
dGVudCIpOwotfQotCi1mdW5jdGlvbiBjaGVja0luaXRpYWxWYWx1ZXMoZ3JpZEVuYWJsZWQpCi17
Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZ3JpZEVuYWJsZWQpOwotCi0gICAgdmFyIHJv
b3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwotICAgIGNvbnRhaW5lci5pZCA9ICJjb250YWluZXIiOwotICAgIHJvb3Qu
YXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLSAgICB2YXIgaXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwotICAgIGl0ZW0uaWQgPSAiaXRlbSI7Ci0gICAgY29udGFpbmVyLmFwcGVu
ZENoaWxkKGl0ZW0pOwotCi0gICAgdmFyIGZsZXhDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKLSAgICBmbGV4Q29udGFpbmVyLmlkID0gImZsZXhDb250YWluZXIiOwot
ICAgIGZsZXhDb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKLSAgICByb290LmFwcGVu
ZENoaWxkKGZsZXhDb250YWluZXIpOwotICAgIHZhciBmbGV4SXRlbSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgIGZsZXhJdGVtLmlkID0gImZsZXhJdGVtIjsKLSAgICBmbGV4
Q29udGFpbmVyLmFwcGVuZENoaWxkKGZsZXhJdGVtKTsKLQotICAgIHNldEluaXRpYWxWYWx1ZXMo
cm9vdCk7Ci0gICAgc2V0SW5pdGlhbFZhbHVlcyhjb250YWluZXIpOwotICAgIHNldEluaXRpYWxW
YWx1ZXMoaXRlbSk7Ci0gICAgc2V0SW5pdGlhbFZhbHVlcyhmbGV4Q29udGFpbmVyKTsKLSAgICBz
ZXRJbml0aWFsVmFsdWVzKGZsZXhJdGVtKTsKLQotICAgIGNoZWNrU3VwcG9ydGVkSW5pdGlhbFZh
bHVlcyhjb250YWluZXIpOwotICAgIGNoZWNrU3VwcG9ydGVkSW5pdGlhbFZhbHVlcyhpdGVtKTsK
LSAgICBjaGVja1N1cHBvcnRlZEluaXRpYWxWYWx1ZXMoZmxleENvbnRhaW5lcik7Ci0gICAgY2hl
Y2tTdXBwb3J0ZWRJbml0aWFsVmFsdWVzKGZsZXhJdGVtKTsKLQotICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQocm9vdCk7Ci19Ci0KLWRlYnVnKCc8YnI+VmVyaWZ5aW5nIGluaXRpYWwgdmFs
dWVzIGFyZSBzdXBwb3J0ZWQgd2hlbiBncmlkIGlzIEVOQUJMRUQuJyk7Ci1jaGVja0luaXRpYWxW
YWx1ZXModHJ1ZSk7Ci0KLWRlYnVnKCc8YnI+VmVyaWZ5aW5nIGluaXRpYWwgdmFsdWVzIGFyZSBz
dXBwb3J0ZWQgd2hlbiBncmlkIGlzIERJU0FCTEVELicpOwotY2hlY2tJbml0aWFsVmFsdWVzKGZh
bHNlKTsKLTwvc2NyaXB0PgotPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>