<?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>210017</bug_id>
          
          <creation_ts>2020-04-04 22:13:06 -0700</creation_ts>
          <short_desc>&apos;currentcolor&apos; doesn&apos;t need setHasExplicitlyInheritedProperties marking anymore</short_desc>
          <delta_ts>2020-04-06 11:55:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193171</see_also>
          <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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1637814</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-04 22:13:06 -0700</bug_when>
    <thetext>Remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637815</commentid>
    <comment_count>1</comment_count>
      <attachid>395482</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-04 22:14:41 -0700</bug_when>
    <thetext>Created attachment 395482
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637855</commentid>
    <comment_count>2</comment_count>
      <attachid>395497</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-05 03:18:46 -0700</bug_when>
    <thetext>Created attachment 395497
wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638058</commentid>
    <comment_count>3</comment_count>
      <attachid>395555</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-06 02:09:45 -0700</bug_when>
    <thetext>Created attachment 395555
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638059</commentid>
    <comment_count>4</comment_count>
      <attachid>395556</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-06 02:49:29 -0700</bug_when>
    <thetext>Created attachment 395556
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638135</commentid>
    <comment_count>5</comment_count>
      <attachid>395579</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-06 10:00:04 -0700</bug_when>
    <thetext>Created attachment 395579
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638139</commentid>
    <comment_count>6</comment_count>
      <attachid>395579</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-06 10:09:25 -0700</bug_when>
    <thetext>Comment on attachment 395579
patch

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

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2169
&gt; +            // While most color properties are not inherited the value &apos;currentcolor&apos; resolves to the value of the inherited &apos;color&apos; property.

Needs a comma after the word &quot;inherited&quot;.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2200
&gt; +            for (size_t i = 0; i &lt; shorthand.length(); ++i) {
&gt; +                if (!hasValidStyleForProperty(element, shorthand.properties()[i]))
&gt; +                    return false;
&gt; +            }

Seems like StylePropertyShorthand could use a way to use a for loop without writing it out. Since length() returns unsigned it’s not clear it’s helpful to use size_t for the loop, but that question only arises because we can’t use a modern for loop.

Wish the standard library offered a way to return a pointer and length as a for-loop-compatible range. I’m sure it’s coming in C++20.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638142</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-06 10:12:31 -0700</bug_when>
    <thetext>&gt; Seems like StylePropertyShorthand could use a way to use a for loop without
&gt; writing it out. Since length() returns unsigned it’s not clear it’s helpful
&gt; to use size_t for the loop, but that question only arises because we can’t
&gt; use a modern for loop.

Yeah, noticed that too. I&apos;ll fix it separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638171</commentid>
    <comment_count>8</comment_count>
      <attachid>395586</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-06 10:58:46 -0700</bug_when>
    <thetext>Created attachment 395586
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638215</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-06 11:54:14 -0700</bug_when>
    <thetext>Committed r259585: &lt;https://trac.webkit.org/changeset/259585&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395586.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638216</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-06 11:55:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/61352490&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395482</attachid>
            <date>2020-04-04 22:14:41 -0700</date>
            <delta_ts>2020-04-05 03:18:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>currentcolor-no-marking.patch</filename>
            <type>text/plain</type>
            <size>1561</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlOWY4NmUzOWQyMS4uMGJkYTQ0MWE4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wNC0wNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgJ2N1cnJlbnRjb2xvcicgZG9lc24ndCBuZWVkIHNldEhhc0V4cGxpY2l0bHlJ
bmhlcml0ZWRQcm9wZXJ0aWVzIG1hcmtpbmcgYW55bW9yZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgJ2N1cnJlbnRjb2xvcicgaXMgbm93IGEgbm9ybWFs
IHZhbHVlIHNvIGl0IGRvZXNudCcgbmVlZCB0aGlzIG1hcmtpbmcuCisKKyAgICAgICAgKiBzdHls
ZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRl
clN0YXRlOjpjb2xvckZyb21QcmltaXRpdmVWYWx1ZSBjb25zdCk6CisKIDIwMjAtMDQtMDQgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCB0aGUg
Y3NzLWNvbG9yLTQgYmVoYXZpb3IgZm9yIGluaGVyaXRhbmNlIG9mIGN1cnJlbnRDb2xvcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCmluZGV4IDM0ZDQxYTUyNGUy
Li5lMTY5NTgxNmEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWls
ZGVyU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRl
LmNwcApAQCAtMzExLDggKzMxMSw2IEBAIENvbG9yIEJ1aWxkZXJTdGF0ZTo6Y29sb3JGcm9tUHJp
bWl0aXZlVmFsdWUoY29uc3QgQ1NTUHJpbWl0aXZlVmFsdWUmIHZhbHVlLCBib29sCiAgICAgY2Fz
ZSBDU1NWYWx1ZVdlYmtpdEZvY3VzUmluZ0NvbG9yOgogICAgICAgICByZXR1cm4gUmVuZGVyVGhl
bWU6OnNpbmdsZXRvbigpLmZvY3VzUmluZ0NvbG9yKGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlv
bnMoJm1fc3R5bGUpKTsKICAgICBjYXNlIENTU1ZhbHVlQ3VycmVudGNvbG9yOgotICAgICAgICAv
LyBDb2xvciBpcyBhbiBpbmhlcml0ZWQgcHJvcGVydHkgc28gZGVwZW5kaW5nIG9uIGl0IGVmZmVj
dGl2ZWx5IG1ha2VzIHRoZSBwcm9wZXJ0eSBpbmhlcml0ZWQuCi0gICAgICAgIG1fc3R5bGUuc2V0
SGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKTsKICAgICAgICAgcmV0dXJuIFJlbmRl
clN0eWxlOjpjdXJyZW50Q29sb3IoKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gU3R5
bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29yZChpZGVudGlmaWVyLCBkb2N1bWVudCgpLnN0eWxlQ29s
b3JPcHRpb25zKCZtX3N0eWxlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395497</attachid>
            <date>2020-04-05 03:18:46 -0700</date>
            <delta_ts>2020-04-06 02:09:45 -0700</delta_ts>
            <desc>wip</desc>
            <filename>currentcolor-no-marking-2.patch</filename>
            <type>text/plain</type>
            <size>15551</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKaW5kZXggOGFkOTliZGVjMmUuLjA1ZjNkZTkzMmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjExOSw2ICsyMTE5
LDE1IEBAIHN0YXRpYyBib29sIGlzSW1wbGljaXRseUluaGVyaXRlZEdyaWRPckZsZXhQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCBjb2xv
clByb3BlcnR5SGFzVmFsdWVDdXJyZW50Q29sb3IoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCit7CisgICAgLy8gV2hpbGUgbW9zdCBjb2xvciBwcm9w
ZXJ0aWVzIGFyZSBub3QgaW5oZXJpdGVkIHRoZSB2YWx1ZSAnY3VycmVudGNvbG9yJyByZXNvbHZl
cyB0byB0aGUgdmFsdWUgb2YgdGhlIGluaGVyaXRlZCAnY29sb3InIHByb3BlcnR5LgorICAgIGlm
ICghQ1NTUHJvcGVydHk6OmlzQ29sb3JQcm9wZXJ0eShwcm9wZXJ0eUlEKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIFJlbmRlclN0eWxlOjppc0N1cnJlbnRDb2xvcihzdHls
ZS51bnJlc29sdmVkQ29sb3JGb3JQcm9wZXJ0eShwcm9wZXJ0eUlEKSk7Cit9CisKIC8vIEluIENT
UyAyLjEgdGhlIHJldHVybmVkIG9iamVjdCBzaG91bGQgYWN0dWFsbHkgY29udGFpbiB0aGUgInVz
ZWQgdmFsdWVzIgogLy8gcmF0aGVyIHRoZW4gdGhlICJjb21wdXRlZCB2YWx1ZXMiIChkZXNwaXRl
IHRoZSBuYW1lIHNheWluZyBvdGhlcndpc2UpLgogLy8KQEAgLTIxNDQsOCArMjE1MywxMiBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaGFzVmFsaWRTdHlsZUZvclByb3BlcnR5KEVsZW1lbnQmIGVsZW1l
bnQsIENTU1Byb3BlcnR5SUQgcHJvcAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFl
bGVtZW50LmRvY3VtZW50KCkuY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkpCiAgICAgICAgIHJldHVy
biB0cnVlOworICAgIGlmICghZWxlbWVudC5yZW5kZXJTdHlsZSgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBib29sIGlzSW5oZXJpdGVkID0gQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVk
UHJvcGVydHkocHJvcGVydHlJRCkgfHwgaXNJbXBsaWNpdGx5SW5oZXJpdGVkR3JpZE9yRmxleFBy
b3BlcnR5KHByb3BlcnR5SUQpOworICAgIGJvb2wgaXNJbmhlcml0ZWQgPSBDU1NQcm9wZXJ0eTo6
aXNJbmhlcml0ZWRQcm9wZXJ0eShwcm9wZXJ0eUlEKQorICAgICAgICB8fCBpc0ltcGxpY2l0bHlJ
bmhlcml0ZWRHcmlkT3JGbGV4UHJvcGVydHkocHJvcGVydHlJRCkKKyAgICAgICAgfHwgY29sb3JQ
cm9wZXJ0eUhhc1ZhbHVlQ3VycmVudENvbG9yKHByb3BlcnR5SUQsICplbGVtZW50LnJlbmRlclN0
eWxlKCkpOwogICAgIGJvb2wgbWF5YmVFeHBsaWNpdGx5SW5oZXJpdGVkID0gIWlzSW5oZXJpdGVk
OwogCiAgICAgY29uc3QgYXV0byogY3VycmVudEVsZW1lbnQgPSAmZWxlbWVudDsKQEAgLTIxNzYs
NyArMjE4OSwxOCBAQCBzdGF0aWMgYm9vbCB1cGRhdGVTdHlsZUlmTmVlZGVkRm9yUHJvcGVydHko
RWxlbWVudCYgZWxlbWVudCwgQ1NTUHJvcGVydHlJRCBwcm9wZQogCiAgICAgZG9jdW1lbnQuc3R5
bGVTY29wZSgpLmZsdXNoUGVuZGluZ1VwZGF0ZSgpOwogCi0gICAgaWYgKGhhc1ZhbGlkU3R5bGVG
b3JQcm9wZXJ0eShlbGVtZW50LCBwcm9wZXJ0eUlEKSkKKyAgICBhdXRvIGhhc1ZhbGlkU3R5bGUg
PSBbJl0geworICAgICAgICBhdXRvIHNob3J0aGFuZCA9IHNob3J0aGFuZEZvclByb3BlcnR5KHBy
b3BlcnR5SUQpOworICAgICAgICBpZiAoc2hvcnRoYW5kLmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNob3J0aGFuZC5sZW5ndGgoKTsgKytpKQorICAgICAg
ICAgICAgICAgIGlmICghaGFzVmFsaWRTdHlsZUZvclByb3BlcnR5KGVsZW1lbnQsIHNob3J0aGFu
ZC5wcm9wZXJ0aWVzKClbaV0pKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFzVmFs
aWRTdHlsZUZvclByb3BlcnR5KGVsZW1lbnQsIHByb3BlcnR5SUQpOworICAgIH0oKTsKKworICAg
IGlmIChoYXNWYWxpZFN0eWxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBkb2N1bWVu
dC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAppbmRl
eCBmNjk5YTExZDliZi4uNjUyYjgwYTg5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNw
cApAQCAtMjEyLDQgKzIxMiwzNiBAQCBib29sIENTU1Byb3BlcnR5Ojppc0RpcmVjdGlvbkF3YXJl
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIH0KIH0KIAorYm9vbCBDU1NQ
cm9wZXJ0eTo6aXNDb2xvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKK3sKKyAg
ICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKKyAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9y
ZGVyQm90dG9tQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5
Qm9yZGVyVG9wQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eUZsb29kQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUxpZ2h0aW5nQ29sb3I6Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5U3Rv
cENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2U6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVN0cm9rZUNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja0VuZENvbG9yOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja1N0YXJ0Q29sb3I6CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvcmRlcklubGluZUVuZENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJ
bmxpbmVTdGFydENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlQ29sb3I6Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yOgorICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0U3Ryb2tlQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uQ29sb3I6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eUNhcmV0Q29sb3I6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmgKaW5kZXggMTI1ZjY0MWIyYTcu
LjkxZWUyM2E1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaApAQCAtODEsNiArODEsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IGFsaWFzZXNGb3JQcm9wZXJ0eShD
U1NQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgYm9vbCBpc0RpcmVjdGlvbkF3YXJlUHJvcGVydHko
Q1NTUHJvcGVydHlJRCk7CiAgICAgc3RhdGljIGJvb2wgaXNEZXNjcmlwdG9yT25seShDU1NQcm9w
ZXJ0eUlEKTsKKyAgICBzdGF0aWMgYm9vbCBpc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7
CiAKICAgICBjb25zdCBTdHlsZVByb3BlcnR5TWV0YWRhdGEmIG1ldGFkYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXRhZGF0YTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlckZhc3RQYXRocy5jcHAKaW5kZXggYmI1ZDMwNjk0NTEuLjE3NTZmOTJmYmEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBA
IC0xNzksMzcgKzE3OSw2IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlU2ltcGxlTGVu
Z3RoVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBjb25zdCBTCiAgICAgcmV0dXJuIENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobnVtYmVyLCB1bml0KTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIGlzQ29sb3JQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKLXsKLSAg
ICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9y
ZGVyQm90dG9tQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKLSAg
ICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5
Qm9yZGVyVG9wQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eUZsb29kQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUxpZ2h0aW5nQ29sb3I6Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5U3Rv
cENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eVN0cm9rZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja0VuZENvbG9yOgot
ICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja1N0YXJ0Q29sb3I6Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvcmRlcklubGluZUVuZENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJ
bmxpbmVTdGFydENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlQ29sb3I6Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yOgotICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRUZXh0RmlsbENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRU
ZXh0U3Ryb2tlQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uQ29sb3I6
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci19Ci0KIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdoaWNo
IGZvcm0gYSB2YWxpZCBkb3VibGUKIC8vIGFuZCBhcmUgdGVybWluYXRlZCBieSB0aGUgZ2l2ZW4g
dGVybWluYXRvciBjaGFyYWN0ZXIKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgpA
QCAtMTMxMSw3ICsxMjgwLDcgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXJGYXN0UGF0aHM6
Om1heWJlUGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGMKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICBpZiAocHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eUNhcmV0Q29sb3Ip
CiAgICAgICAgIHJldHVybiBwYXJzZUNhcmV0Q29sb3Ioc3RyaW5nLCBjb250ZXh0Lm1vZGUpOwot
ICAgIGlmIChpc0NvbG9yUHJvcGVydHlJRChwcm9wZXJ0eUlEKSkKKyAgICBpZiAoQ1NTUHJvcGVy
dHk6OmlzQ29sb3JQcm9wZXJ0eShwcm9wZXJ0eUlEKSkKICAgICAgICAgcmV0dXJuIHBhcnNlQ29s
b3Ioc3RyaW5nLCBjb250ZXh0Lm1vZGUsIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkpOwogICAg
IGlmIChhdXRvIHJlc3VsdCA9IHBhcnNlS2V5d29yZFZhbHVlKHByb3BlcnR5SUQsIHN0cmluZywg
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBmZDc3MGUzYzNiYy4uOTU0ZGM0ZjJk
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cApAQCAtMTk0Nyw3NCArMTk0Nyw4OCBAQCB2b2lkIFJlbmRlclN0eWxlOjpnZXRTaGFkb3dWZXJ0
aWNhbEV4dGVudChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIExheW91dFVuaXQgJgogICAgIH0K
IH0KIAotQ29sb3IgUmVuZGVyU3R5bGU6OmNvbG9ySW5jbHVkaW5nRmFsbGJhY2soQ1NTUHJvcGVy
dHlJRCBjb2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rKSBjb25zdAorQ29sb3IgUmVuZGVy
U3R5bGU6OnVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgY29sb3JQcm9w
ZXJ0eSwgYm9vbCB2aXNpdGVkTGluaykgY29uc3QKIHsKLSAgICBDb2xvciByZXN1bHQ7Ci0gICAg
Qm9yZGVyU3R5bGUgYm9yZGVyU3R5bGUgPSBCb3JkZXJTdHlsZTo6Tm9uZTsKICAgICBzd2l0Y2gg
KGNvbG9yUHJvcGVydHkpIHsKKyAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6CisgICAgICAgIHJl
dHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ29sb3IoKSA6IGNvbG9yKCk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExp
bmsgPyB2aXNpdGVkTGlua0JhY2tncm91bmRDb2xvcigpIDogYmFja2dyb3VuZENvbG9yKCk7Ci0g
ICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0Jh
Y2tncm91bmRDb2xvcigpIDogYmFja2dyb3VuZENvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlckJvdHRvbUNvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVk
TGlua0JvcmRlckJvdHRvbUNvbG9yKCkgOiBib3JkZXJCb3R0b21Db2xvcigpOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5r
ID8gdmlzaXRlZExpbmtCb3JkZXJMZWZ0Q29sb3IoKSA6IGJvcmRlckxlZnRDb2xvcigpOwotICAg
ICAgICBib3JkZXJTdHlsZSA9IGJvcmRlckxlZnRTdHlsZSgpOwotICAgICAgICBicmVhazsKKyAg
ICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3JkZXJMZWZ0Q29sb3IoKSA6
IGJvcmRlckxlZnRDb2xvcigpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9y
OgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9yZGVyUmlnaHRD
b2xvcigpIDogYm9yZGVyUmlnaHRDb2xvcigpOwotICAgICAgICBib3JkZXJTdHlsZSA9IGJvcmRl
clJpZ2h0U3R5bGUoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGlu
ayA/IHZpc2l0ZWRMaW5rQm9yZGVyUmlnaHRDb2xvcigpIDogYm9yZGVyUmlnaHRDb2xvcigpOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlz
aXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlclRvcENvbG9yKCkgOiBib3JkZXJUb3BDb2xvcigp
OwotICAgICAgICBib3JkZXJTdHlsZSA9IGJvcmRlclRvcFN0eWxlKCk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xvcjoKLSAgICAgICAgcmVzdWx0
ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlckJvdHRvbUNvbG9yKCkgOiBib3JkZXJC
b3R0b21Db2xvcigpOwotICAgICAgICBib3JkZXJTdHlsZSA9IGJvcmRlckJvdHRvbVN0eWxlKCk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVydHlDYXJldENvbG9yOgotICAgICAg
ICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ2FyZXRDb2xvcigpIDogY2FyZXRD
b2xvcigpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6Ci0gICAg
ICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29sb3IoKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5r
Qm9yZGVyVG9wQ29sb3IoKSA6IGJvcmRlclRvcENvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUZpbGw6CisgICAgICAgIHJldHVybiBmaWxsUGFpbnRDb2xvcigpOworICAgIGNhc2UgQ1NTUHJv
cGVydHlGbG9vZENvbG9yOgorICAgICAgICByZXR1cm4gZmxvb2RDb2xvcigpOworICAgIGNhc2Ug
Q1NTUHJvcGVydHlMaWdodGluZ0NvbG9yOgorICAgICAgICByZXR1cm4gbGlnaHRpbmdDb2xvcigp
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZp
c2l0ZWRMaW5rID8gdmlzaXRlZExpbmtPdXRsaW5lQ29sb3IoKSA6IG91dGxpbmVDb2xvcigpOwot
ICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtP
dXRsaW5lQ29sb3IoKSA6IG91dGxpbmVDb2xvcigpOworICAgIGNhc2UgQ1NTUHJvcGVydHlTdG9w
Q29sb3I6CisgICAgICAgIHJldHVybiBzdG9wQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5
U3Ryb2tlOgorICAgICAgICByZXR1cm4gc3Ryb2tlUGFpbnRDb2xvcigpOworICAgIGNhc2UgQ1NT
UHJvcGVydHlTdHJva2VDb2xvcjoKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRl
ZExpbmtTdHJva2VDb2xvcigpIDogc3Ryb2tlQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
Q29sdW1uUnVsZUNvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRM
aW5rQ29sdW1uUnVsZUNvbG9yKCkgOiBjb2x1bW5SdWxlQ29sb3IoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uQ29sb3I6Ci0gICAgICAgIC8vIFRl
eHQgZGVjb3JhdGlvbiBjb2xvciBmYWxsYmFjayBpcyBoYW5kbGVkIGluIFJlbmRlck9iamVjdDo6
ZGVjb3JhdGlvbkNvbG9yLgotICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlu
a1RleHREZWNvcmF0aW9uQ29sb3IoKSA6IHRleHREZWNvcmF0aW9uQ29sb3IoKTsKKyAgICAgICAg
cmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3IoKSA6IGNvbHVt
blJ1bGVDb2xvcigpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNDb2xv
cjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRFbXBoYXNp
c0NvbG9yKCkgOiB0ZXh0RW1waGFzaXNDb2xvcigpOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0RW1waGFzaXNDb2xvcigpIDogdGV4
dEVtcGhhc2lzQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xv
cjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRGaWxsQ29s
b3IoKSA6IHRleHRGaWxsQ29sb3IoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2
aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rVGV4dEZpbGxDb2xvcigpIDogdGV4dEZpbGxDb2xvcigp
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJl
c3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0U3Ryb2tlQ29sb3IoKSA6IHRleHRT
dHJva2VDb2xvcigpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tl
Q29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtTdHJva2VD
b2xvcigpIDogc3Ryb2tlQ29sb3IoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2
aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rVGV4dFN0cm9rZUNvbG9yKCkgOiB0ZXh0U3Ryb2tlQ29s
b3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb25Db2xvcjoKKyAgICAgICAg
cmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0RGVjb3JhdGlvbkNvbG9yKCkgOiB0
ZXh0RGVjb3JhdGlvbkNvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eUNhcmV0Q29sb3I6Cisg
ICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ2FyZXRDb2xvcigpIDogY2Fy
ZXRDb2xvcigpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpIHsKKyAg
ICByZXR1cm4geyB9OworfQorCitDb2xvciBSZW5kZXJTdHlsZTo6Y29sb3JSZXNvbHZpbmdDdXJy
ZW50Q29sb3IoQ1NTUHJvcGVydHlJRCBjb2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rKSBj
b25zdAoreworICAgIGF1dG8gY29tcHV0ZUJvcmRlclN0eWxlID0gWyZdIHsKKyAgICAgICAgc3dp
dGNoIChjb2xvclByb3BlcnR5KSB7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0
Q29sb3I6CisgICAgICAgICAgICByZXR1cm4gYm9yZGVyTGVmdFN0eWxlKCk7CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgorICAgICAgICAgICAgcmV0dXJuIGJvcmRl
clJpZ2h0U3R5bGUoKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yOgor
ICAgICAgICAgICAgcmV0dXJuIGJvcmRlclRvcFN0eWxlKCk7CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlCb3JkZXJCb3R0b21Db2xvcjoKKyAgICAgICAgICAgIHJldHVybiBib3JkZXJCb3R0b21T
dHlsZSgpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIEJvcmRlclN0eWxl
OjpOb25lOworICAgICAgICB9CisgICAgfTsKKworICAgIGF1dG8gcmVzdWx0ID0gdW5yZXNvbHZl
ZENvbG9yRm9yUHJvcGVydHkoY29sb3JQcm9wZXJ0eSwgdmlzaXRlZExpbmspOworCisgICAgaWYg
KGlzQ3VycmVudENvbG9yKHJlc3VsdCkpIHsKKyAgICAgICAgYXV0byBib3JkZXJTdHlsZSA9IGNv
bXB1dGVCb3JkZXJTdHlsZSgpOwogICAgICAgICBpZiAoIXZpc2l0ZWRMaW5rICYmIChib3JkZXJT
dHlsZSA9PSBCb3JkZXJTdHlsZTo6SW5zZXQgfHwgYm9yZGVyU3R5bGUgPT0gQm9yZGVyU3R5bGU6
Ok91dHNldCB8fCBib3JkZXJTdHlsZSA9PSBCb3JkZXJTdHlsZTo6UmlkZ2UgfHwgYm9yZGVyU3R5
bGUgPT0gQm9yZGVyU3R5bGU6Okdyb292ZSkpCi0gICAgICAgICAgICByZXN1bHQgPSBDb2xvcigy
MzgsIDIzOCwgMjM4KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gdmlzaXRl
ZExpbmsgPyB2aXNpdGVkTGlua0NvbG9yKCkgOiBjb2xvcigpOworICAgICAgICAgICAgcmV0dXJu
IENvbG9yKDIzOCwgMjM4LCAyMzgpOworCisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZp
c2l0ZWRMaW5rQ29sb3IoKSA6IGNvbG9yKCk7CiAgICAgfQorCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAogQ29sb3IgUmVuZGVyU3R5bGU6OmNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKGNvbnN0
IENvbG9yJiBjb2xvcikgY29uc3QKIHsKLSAgICBpZiAoY29sb3IgPT0gY3VycmVudENvbG9yKCkp
CisgICAgaWYgKGlzQ3VycmVudENvbG9yKGNvbG9yKSkKICAgICAgICAgcmV0dXJuIHRoaXMtPmNv
bG9yKCk7CiAKICAgICByZXR1cm4gY29sb3I7CkBAIC0yMDIyLDExICsyMDM2LDExIEBAIENvbG9y
IFJlbmRlclN0eWxlOjpjb2xvclJlc29sdmluZ0N1cnJlbnRDb2xvcihjb25zdCBDb2xvciYgY29s
b3IpIGNvbnN0CiAKIENvbG9yIFJlbmRlclN0eWxlOjp2aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NT
UHJvcGVydHlJRCBjb2xvclByb3BlcnR5KSBjb25zdAogewotICAgIENvbG9yIHVudmlzaXRlZENv
bG9yID0gY29sb3JJbmNsdWRpbmdGYWxsYmFjayhjb2xvclByb3BlcnR5LCBmYWxzZSk7CisgICAg
Q29sb3IgdW52aXNpdGVkQ29sb3IgPSBjb2xvclJlc29sdmluZ0N1cnJlbnRDb2xvcihjb2xvclBy
b3BlcnR5LCBmYWxzZSk7CiAgICAgaWYgKGluc2lkZUxpbmsoKSAhPSBJbnNpZGVMaW5rOjpJbnNp
ZGVWaXNpdGVkKQogICAgICAgICByZXR1cm4gdW52aXNpdGVkQ29sb3I7CiAKLSAgICBDb2xvciB2
aXNpdGVkQ29sb3IgPSBjb2xvckluY2x1ZGluZ0ZhbGxiYWNrKGNvbG9yUHJvcGVydHksIHRydWUp
OworICAgIENvbG9yIHZpc2l0ZWRDb2xvciA9IGNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKGNv
bG9yUHJvcGVydHksIHRydWUpOwogCiAgICAgLy8gVGV4dCBkZWNvcmF0aW9uIGNvbG9yIHZhbGlk
aXR5IGlzIHByZXNlcnZlZCAoY2hlY2tlZCBpbiBSZW5kZXJPYmplY3Q6OmRlY29yYXRpb25Db2xv
cikuCiAgICAgaWYgKGNvbG9yUHJvcGVydHkgPT0gQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbkNv
bG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA5ZDczNTkzNjZiYS4uYjU0Y2JmNjFjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xNDQwLDcgKzE0NDAsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBsYXN0Q2hpbGRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9uSW5oZXJpdGVkRmxhZ3Mu
bGFzdENoaWxkU3RhdGU7IH0KICAgICB2b2lkIHNldExhc3RDaGlsZFN0YXRlKCkgeyBzZXRVbmlx
dWUoKTsgbV9ub25Jbmhlcml0ZWRGbGFncy5sYXN0Q2hpbGRTdGF0ZSA9IHRydWU7IH0KIAorICAg
IENvbG9yIHVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgY29sb3JQcm9w
ZXJ0eSwgYm9vbCB2aXNpdGVkTGluayA9IGZhbHNlKSBjb25zdDsKICAgICBDb2xvciBjb2xvclJl
c29sdmluZ0N1cnJlbnRDb2xvcihjb25zdCBDb2xvciYpIGNvbnN0OworCiAgICAgV0VCQ09SRV9F
WFBPUlQgQ29sb3IgdmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5SUQpIGNvbnN0Owog
ICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIHZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xvckZp
bHRlcihDU1NQcm9wZXJ0eUlEKSBjb25zdDsKIApAQCAtMTczNCw2ICsxNzM2LDggQEAgcHVibGlj
OgogCiAgICAgLy8gSW4gUmVuZGVyU3R5bGUgaW52YWxpZCBjb2xvciB2YWx1ZSBpcyB1c2VkIHRv
IHNpZ25pZnkgJ2N1cnJlbnRjb2xvcicgd2hpY2ggcmVzb2x2ZXMgdG8gY29sb3IoKS4KICAgICBz
dGF0aWMgQ29sb3IgY3VycmVudENvbG9yKCkgeyByZXR1cm4geyB9OyB9CisgICAgc3RhdGljIGJv
b2wgaXNDdXJyZW50Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSB7IHJldHVybiAhY29sb3IuaXNW
YWxpZCgpOyB9CisKICAgICBjb25zdCBDb2xvciYgYm9yZGVyTGVmdENvbG9yKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdXJyb3VuZERhdGEtPmJvcmRlci5sZWZ0KCkuY29sb3IoKTsgfQogICAgIGNvbnN0
IENvbG9yJiBib3JkZXJSaWdodENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zdXJyb3VuZERhdGEt
PmJvcmRlci5yaWdodCgpLmNvbG9yKCk7IH0KICAgICBjb25zdCBDb2xvciYgYm9yZGVyVG9wQ29s
b3IoKSBjb25zdCB7IHJldHVybiBtX3N1cnJvdW5kRGF0YS0+Ym9yZGVyLnRvcCgpLmNvbG9yKCk7
IH0KQEAgLTE4NjYsNyArMTg3MCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNEaXNw
bGF5R3JpZEJveChEaXNwbGF5VHlwZSk7CiAgICAgc3RhdGljIGJvb2wgaXNEaXNwbGF5RmxleGli
bGVPckdyaWRCb3goRGlzcGxheVR5cGUpOwogCi0gICAgQ29sb3IgY29sb3JJbmNsdWRpbmdGYWxs
YmFjayhDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmspIGNvbnN0
OworICAgIENvbG9yIGNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKENTU1Byb3BlcnR5SUQgY29s
b3JQcm9wZXJ0eSwgYm9vbCB2aXNpdGVkTGluaykgY29uc3Q7CiAKICAgICBib29sIGNoYW5nZUFm
ZmVjdHNWaXN1YWxPdmVyZmxvdyhjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0OwogICAgIGJvb2wg
Y2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUmLCBPcHRpb25TZXQ8U3R5bGVE
aWZmZXJlbmNlQ29udGV4dFNlbnNpdGl2ZVByb3BlcnR5PiYgY2hhbmdlZENvbnRleHRTZW5zaXRp
dmVQcm9wZXJ0aWVzKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQnVpbGRlclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0
YXRlLmNwcAppbmRleCAzNGQ0MWE1MjRlMi4uZTE2OTU4MTZhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAKQEAgLTMxMSw4ICszMTEsNiBAQCBDb2xvciBC
dWlsZGVyU3RhdGU6OmNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlKGNvbnN0IENTU1ByaW1pdGl2ZVZh
bHVlJiB2YWx1ZSwgYm9vbAogICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRGb2N1c1JpbmdDb2xvcjoK
ICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5mb2N1c1JpbmdDb2xvcihk
b2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZtX3N0eWxlKSk7CiAgICAgY2FzZSBDU1NWYWx1
ZUN1cnJlbnRjb2xvcjoKLSAgICAgICAgLy8gQ29sb3IgaXMgYW4gaW5oZXJpdGVkIHByb3BlcnR5
IHNvIGRlcGVuZGluZyBvbiBpdCBlZmZlY3RpdmVseSBtYWtlcyB0aGUgcHJvcGVydHkgaW5oZXJp
dGVkLgotICAgICAgICBtX3N0eWxlLnNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVz
KCk7CiAgICAgICAgIHJldHVybiBSZW5kZXJTdHlsZTo6Y3VycmVudENvbG9yKCk7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIFN0eWxlQ29sb3I6OmNvbG9yRnJvbUtleXdvcmQoaWRlbnRp
ZmllciwgZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmbV9zdHlsZSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395555</attachid>
            <date>2020-04-06 02:09:45 -0700</date>
            <delta_ts>2020-04-06 02:49:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>currentcolor-no-marking-3.patch</filename>
            <type>text/plain</type>
            <size>26389</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjRiMDE3MTUyNC4uNjlhN2Y4OTUyYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
J2N1cnJlbnRjb2xvcicgZG9lc24ndCBuZWVkIHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9w
ZXJ0aWVzIG1hcmtpbmcgYW55bW9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwMDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRh
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3It
aW5pdGlhbC1zdHlsZS11cGRhdGUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDUgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIE9jdGFsIGVzY2FwZXMg
c2hvdWxkIGJlIG1heCAzIGRpZ2l0cyBhbmQgc3ludGF4IGVycm9ycyBpbiBVbmljb2RlIHBhdHRl
cm5zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlh
bC1zdHlsZS11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVu
dENvbG9yLWluaXRpYWwtc3R5bGUtdXBkYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmZkZGY5Yjg4YmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKK1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0
IHVzZSB0aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJl
IHVwZGF0ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitJbml0aWFsIHN0YXRlLgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0
IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9y
ZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNh
c2UgdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQi
KVszXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCisKK0xldCdzIG92ZXJyaWRl
IHRoZSBzdHlsZSBvZiB0aGUgd3JhcHBlciB0aHJvdWdoIHRoZWlyIHN0eWxlIG9iamVjdC4KK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNl
IHRhcmdldCIpWzBdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0Iilb
MF0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJv
cmRlckNvbG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENv
bG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJn
Yig3LCA4LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig3LCA4
LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
dGVzdC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0IilbM10pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorCitMZXQncyBy
ZW1vdmUgdGhlIHN0eWxlIGF0dHJpYnV0ZSBvbiB0aGUgd3JhcHBlci4KK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBd
KS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckxl
ZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1j
YXNlIHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRh
cmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10p
LmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorCitMZXQncyByZW1vdmUgY2xhc3Mg
b24gdGhlIHdyYXBwZXJzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoMSwgMiwgMyki
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3Qt
Y2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdl
dCIpWzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJd
KS5ib3JkZXJDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxl
ZnRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlz
ICJyZ2IoMSwgMiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2Io
MSwgMiwgMykiCisKK1RoZW4gYWRkIGl0IGJhY2suCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyQ29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBdKS5ib3JkZXJMZWZ0Q29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNh
c2UgdGFyZ2V0IilbMl0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQi
KVsyXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSku
Ym9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJMZWZ0
Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJy
ZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2N1cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNzk2NjRkMGJiZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2N1cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1s
CkBAIC0wLDAgKzEsODYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorICAgIC50ZXN0LWNhc2UgeworICAgICAgICBjb2xvcjogcmdiKDEsIDIsIDMpOworICAgIH0K
KyAgICAud3JhcHBlciB7CisgICAgICAgIGNvbG9yOiByZ2IoNCwgNSwgNik7CisgICAgfQorICAg
IHRhcmdldCB7CisgICAgICAgIC8vIGJvcmRlci1jb2xvciBoYXMgaW5pdGlhbCB2YWx1ZSAnY3Vy
cmVudGNvbG9yJy4KKyAgICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3IoZXhwZWN0ZWRDb2xvcikgeworICAgICAg
ICB2YXIgYWxsVGFyZ2V0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVGFyZ2V0cy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbJyArIGkg
KyAnXSkuYm9yZGVyQ29sb3InLCBleHBlY3RlZENvbG9yKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIudGVzdC1jYXNlIHRhcmdldCIpWycgKyBpICsgJ10pLmJvcmRlckxlZnRDb2xvcicsIGV4cGVj
dGVkQ29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0IHVzZSB0
aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJlIHVwZGF0
ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLicpOworCisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIkluaXRpYWwgc3RhdGUuIik7CisgICAgICAg
IHRlc3RDb2xvcigicmdiKDQsIDUsIDYpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICBkZWJ1ZygiTGV0J3Mgb3ZlcnJpZGUgdGhlIHN0eWxlIG9mIHRoZSB3cmFwcGVyIHRocm91Z2gg
dGhlaXIgc3R5bGUgb2JqZWN0LiIpOworICAgICAgICB2YXIgYWxsV3JhcHBlcnMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIud3JhcHBlciIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGFsbFdyYXBwZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBhbGxXcmFwcGVyc1tp
XS5zdHlsZS5jb2xvciA9ICJyZ2IoNywgOCwgOSkiOworICAgICAgICB9CisgICAgICAgIHRlc3RD
b2xvcigicmdiKDcsIDgsIDkpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiTGV0J3MgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgb24gdGhlIHdyYXBwZXIuIik7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKTsKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgZGVidWcoIkxldCdzIHJlbW92ZSBjbGFzcyBvbiB0aGUgd3JhcHBlcnMu
Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5yZW1vdmUoIndyYXBwZXIi
KTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYigxLCAyLCAzKSIpOworCisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRoZW4gYWRkIGl0IGJhY2suIik7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5hZGQoIndyYXBwZXIiKTsKKyAgICAgICAg
fQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1blRl
c3QpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0LWNh
c2UiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+
PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4K
KyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InRlc3QtY2FzZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAg
ICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU4ODI5MmE5MmU4Li5iMDY0YWVhZDczNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTA0LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KKworICAgICAgICAnY3VycmVudGNvbG9yJyBkb2Vzbid0IG5lZWQgc2V0SGFz
RXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMgbWFya2luZyBhbnltb3JlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAwMTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyB0aGlzIG1hcmtp
bmcgcmV2ZWFscyBwcm9ibGVtcyBpbiBzdHlsZSB1cGRhdGUgYXZvaWRhbmNlIGNvZGUgaW4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uCisgICAgICAgIHRoYXQgYWxzbyBuZWVkIHRvIGJlIGFk
ZHJlc3NlZC4gVGhlIHByb2JsZW1zIGFyZSBub3Qgc3BlY2lmaWMgdG8gZXhsaWNpdCAnY3VycmVu
dGNvbG9yJywgdGhleSBhbHNvIHJlcHJvZHVjZQorICAgICAgICB3aXRoIHRoZSBpbml0aWFsIHZh
bHVlICh0aHVzIHRoZSBuZXcgdGVzdCkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvY3VycmVu
dENvbG9yLWluaXRpYWwtc3R5bGUtdXBkYXRlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uSW5oZXJpdGVk
Q29sb3JQcm9wZXJ0eUhhc1ZhbHVlQ3VycmVudENvbG9yKToKKworICAgICAgICBBZGQgYSBoZWxw
ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6Omhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0eSk6CisKKyAg
ICAgICAgVHJlYXQgYSBub24taW5oZXJpdGVkIGNvbG9yIHByb3BlcnR5IGFzIGluaGVyaXRlZCBp
ZiBpdCBpcyAnY3VycmVudGNvbG9yJy4KKworICAgICAgICAoV2ViQ29yZTo6dXBkYXRlU3R5bGVJ
Zk5lZWRlZEZvclByb3BlcnR5KToKKworICAgICAgICBFeHBhbmQgc2hvcnRoYW5kcyBzbyBwcm9w
ZXJ0aWVzIGxpa2UgYm9yZGVyLWNvbG9yIHRlc3QgY29ycmVjdGx5LgorCisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Ojppc0NvbG9y
UHJvcGVydHkpOgorCisgICAgICAgIE1vdmUgaGVyZSBmcm9tIENTU1BhcnNlckZhc3RQYXRocy4K
KworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NT
UGFyc2VyRmFzdFBhdGhzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckZhc3RQYXRo
czo6bWF5YmVQYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29sb3JQcm9wZXJ0eUlE
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5
IGNvbnN0KToKKworICAgICAgICBGYWN0b3IgaW50byBhIGhlbHBlci4KKworICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU3R5bGU6OmNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yIGNvbnN0KToKKwor
ICAgICAgICBSZW5hbWVkIGZvciBjbGFyaXR5IGFuZCBzb21lIGNsZWFudXBzLgorCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dmlzaXRlZERlcGVuZGVudENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2xvckluY2x1ZGluZ0ZhbGxiYWNrIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppc0N1cnJlbnRDb2xvcik6CisgICAgICAgICog
c3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1
aWxkZXJTdGF0ZTo6Y29sb3JGcm9tUHJpbWl0aXZlVmFsdWUgY29uc3QpOgorCisgICAgICAgIFJl
bW92ZSBzZXRIYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcyBtYXJraW5nLgorCiAyMDIw
LTA0LTA0ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIExv
Y2tIaXN0b3J5IHBhcmFtZXRlciBmcm9tIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCA4YWQ5OWJkZWMyZS4uNzU3MTI4MmNhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yMTE5LDYgKzIxMTksMTcgQEAg
c3RhdGljIGJvb2wgaXNJbXBsaWNpdGx5SW5oZXJpdGVkR3JpZE9yRmxleFByb3BlcnR5KENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIG5vbkluaGVyaXRl
ZENvbG9yUHJvcGVydHlIYXNWYWx1ZUN1cnJlbnRDb2xvcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SUQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoQ1NTUHJvcGVydHk6Omlz
SW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkgfHwgIUNTU1Byb3BlcnR5Ojppc0NvbG9yUHJv
cGVydHkocHJvcGVydHlJRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghc3R5
bGUpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIFJlbmRlclN0eWxlOjppc0N1
cnJlbnRDb2xvcihzdHlsZS0+dW5yZXNvbHZlZENvbG9yRm9yUHJvcGVydHkocHJvcGVydHlJRCkp
OworfQorCiAvLyBJbiBDU1MgMi4xIHRoZSByZXR1cm5lZCBvYmplY3Qgc2hvdWxkIGFjdHVhbGx5
IGNvbnRhaW4gdGhlICJ1c2VkIHZhbHVlcyIKIC8vIHJhdGhlciB0aGVuIHRoZSAiY29tcHV0ZWQg
dmFsdWVzIiAoZGVzcGl0ZSB0aGUgbmFtZSBzYXlpbmcgb3RoZXJ3aXNlKS4KIC8vCkBAIC0yMTU1
LDYgKzIxNjYsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0
eShFbGVtZW50JiBlbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHByb3AKIAogICAgICAgICBpZiAobWF5
YmVFeHBsaWNpdGx5SW5oZXJpdGVkKSB7CiAgICAgICAgICAgICBhdXRvKiBzdHlsZSA9IGN1cnJl
bnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOworICAgICAgICAgICAgLy8gV2hpbGUgbW9zdCBjb2xv
ciBwcm9wZXJ0aWVzIGFyZSBub3QgaW5oZXJpdGVkIHRoZSB2YWx1ZSAnY3VycmVudGNvbG9yJyBy
ZXNvbHZlcyB0byB0aGUgdmFsdWUgb2YgdGhlIGluaGVyaXRlZCAnY29sb3InIHByb3BlcnR5Lgor
ICAgICAgICAgICAgaWYgKG5vbkluaGVyaXRlZENvbG9yUHJvcGVydHlIYXNWYWx1ZUN1cnJlbnRD
b2xvcihwcm9wZXJ0eUlELCBzdHlsZSkpCisgICAgICAgICAgICAgICAgaXNJbmhlcml0ZWQgPSB0
cnVlOworCiAgICAgICAgICAgICBtYXliZUV4cGxpY2l0bHlJbmhlcml0ZWQgPSAhc3R5bGUgfHwg
c3R5bGUtPmhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCk7CiAgICAgICAgIH0KIApA
QCAtMjE3Niw3ICsyMTkxLDE4IEBAIHN0YXRpYyBib29sIHVwZGF0ZVN0eWxlSWZOZWVkZWRGb3JQ
cm9wZXJ0eShFbGVtZW50JiBlbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAKICAgICBkb2N1
bWVudC5zdHlsZVNjb3BlKCkuZmx1c2hQZW5kaW5nVXBkYXRlKCk7CiAKLSAgICBpZiAoaGFzVmFs
aWRTdHlsZUZvclByb3BlcnR5KGVsZW1lbnQsIHByb3BlcnR5SUQpKQorICAgIGF1dG8gaGFzVmFs
aWRTdHlsZSA9IFsmXSB7CisgICAgICAgIGF1dG8gc2hvcnRoYW5kID0gc2hvcnRoYW5kRm9yUHJv
cGVydHkocHJvcGVydHlJRCk7CisgICAgICAgIGlmIChzaG9ydGhhbmQubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2hvcnRoYW5kLmxlbmd0aCgpOyArK2kp
CisgICAgICAgICAgICAgICAgaWYgKCFoYXNWYWxpZFN0eWxlRm9yUHJvcGVydHkoZWxlbWVudCwg
c2hvcnRoYW5kLnByb3BlcnRpZXMoKVtpXSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBoYXNWYWxpZFN0eWxlRm9yUHJvcGVydHkoZWxlbWVudCwgcHJvcGVydHlJRCk7CisgICAgfSgp
OworCisgICAgaWYgKGhhc1ZhbGlkU3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGRvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHku
Y3BwCmluZGV4IGY2OTlhMTFkOWJmLi42NTJiODBhODkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHkuY3BwCkBAIC0yMTIsNCArMjEyLDM2IEBAIGJvb2wgQ1NTUHJvcGVydHk6OmlzRGlyZWN0
aW9uQXdhcmVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgfQogfQogCiti
b29sIENTU1Byb3BlcnR5Ojppc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
KQoreworICAgIHN3aXRjaCAocHJvcGVydHlJZCkgeworICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xv
cjoKKyAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlCb3JkZXJCb3R0b21Db2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENv
bG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgorICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJUb3BDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5RmlsbDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5Rmxvb2RDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5TGlnaHRpbmdD
b2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlTdG9wQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZToKKyAgICBjYXNlIENT
U1Byb3BlcnR5U3Ryb2tlQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrRW5k
Q29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrU3RhcnRDb2xvcjoKKyAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVySW5saW5lRW5kQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlcklubGluZVN0YXJ0Q29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVD
b2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFRleHRTdHJva2VDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRp
b25Db2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Q2FyZXRDb2xvcjoKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaAppbmRleCAxMjVm
NjQxYjJhNy4uOTFlZTIzYTVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5oCkBAIC04MSw2
ICs4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gYWxpYXNlc0ZvclBy
b3BlcnR5KENTU1Byb3BlcnR5SUQpOwogICAgIHN0YXRpYyBib29sIGlzRGlyZWN0aW9uQXdhcmVQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgYm9vbCBpc0Rlc2NyaXB0b3JPbmx5
KENTU1Byb3BlcnR5SUQpOworICAgIHN0YXRpYyBib29sIGlzQ29sb3JQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEKTsKIAogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlNZXRhZGF0YSYgbWV0YWRhdGEoKSBj
b25zdCB7IHJldHVybiBtX21ldGFkYXRhOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCBiYjVkMzA2OTQ1MS4uMTc1NmY5MmZi
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBh
dGhzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRo
cy5jcHAKQEAgLTE3OSwzNyArMTc5LDYgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VT
aW1wbGVMZW5ndGhWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGNvbnN0IFMKICAgICBy
ZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShudW1iZXIsIHVuaXQpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgaXNDb2xvclByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlk
KQotewotICAgIHN3aXRjaCAocHJvcGVydHlJZCkgewotICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xv
cjoKLSAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlCb3JkZXJCb3R0b21Db2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENv
bG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgotICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJUb3BDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5RmlsbDoKLSAgICBj
YXNlIENTU1Byb3BlcnR5Rmxvb2RDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5TGlnaHRpbmdD
b2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlTdG9wQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZToKLSAgICBjYXNlIENT
U1Byb3BlcnR5U3Ryb2tlQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrRW5k
Q29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrU3RhcnRDb2xvcjoKLSAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVySW5saW5lRW5kQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlcklubGluZVN0YXJ0Q29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVD
b2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFRleHRTdHJva2VDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRp
b25Db2xvcjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLX0KLQogLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3Rl
cnMgd2hpY2ggZm9ybSBhIHZhbGlkIGRvdWJsZQogLy8gYW5kIGFyZSB0ZXJtaW5hdGVkIGJ5IHRo
ZSBnaXZlbiB0ZXJtaW5hdG9yIGNoYXJhY3RlcgogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+CkBAIC0xMzExLDcgKzEyODAsNyBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlckZh
c3RQYXRoczo6bWF5YmVQYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgYwogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIGlmIChwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5Q2Fy
ZXRDb2xvcikKICAgICAgICAgcmV0dXJuIHBhcnNlQ2FyZXRDb2xvcihzdHJpbmcsIGNvbnRleHQu
bW9kZSk7Ci0gICAgaWYgKGlzQ29sb3JQcm9wZXJ0eUlEKHByb3BlcnR5SUQpKQorICAgIGlmIChD
U1NQcm9wZXJ0eTo6aXNDb2xvclByb3BlcnR5KHByb3BlcnR5SUQpKQogICAgICAgICByZXR1cm4g
cGFyc2VDb2xvcihzdHJpbmcsIGNvbnRleHQubW9kZSwgQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KSk7CiAgICAgaWYgKGF1dG8gcmVzdWx0ID0gcGFyc2VLZXl3b3JkVmFsdWUocHJvcGVydHlJRCwg
c3RyaW5nLCBjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGZkNzcwZTNjM2JjLi45
NTRkYzRmMmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCkBAIC0xOTQ3LDc0ICsxOTQ3LDg4IEBAIHZvaWQgUmVuZGVyU3R5bGU6OmdldFNo
YWRvd1ZlcnRpY2FsRXh0ZW50KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgTGF5b3V0VW5pdCAm
CiAgICAgfQogfQogCi1Db2xvciBSZW5kZXJTdHlsZTo6Y29sb3JJbmNsdWRpbmdGYWxsYmFjayhD
U1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmspIGNvbnN0CitDb2xv
ciBSZW5kZXJTdHlsZTo6dW5yZXNvbHZlZENvbG9yRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBj
b2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rKSBjb25zdAogewotICAgIENvbG9yIHJlc3Vs
dDsKLSAgICBCb3JkZXJTdHlsZSBib3JkZXJTdHlsZSA9IEJvcmRlclN0eWxlOjpOb25lOwogICAg
IHN3aXRjaCAoY29sb3JQcm9wZXJ0eSkgeworICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvcjoKKyAg
ICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29sb3IoKTsK
ICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOgotICAgICAgICByZXN1bHQgPSB2
aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yKCkgOiBiYWNrZ3JvdW5kQ29s
b3IoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0
ZWRMaW5rQmFja2dyb3VuZENvbG9yKCkgOiBiYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/
IHZpc2l0ZWRMaW5rQm9yZGVyQm90dG9tQ29sb3IoKSA6IGJvcmRlckJvdHRvbUNvbG9yKCk7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlz
aXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlckxlZnRDb2xvcigpIDogYm9yZGVyTGVmdENvbG9y
KCk7Ci0gICAgICAgIGJvcmRlclN0eWxlID0gYm9yZGVyTGVmdFN0eWxlKCk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlckxlZnRD
b2xvcigpIDogYm9yZGVyTGVmdENvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJp
Z2h0Q29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3Jk
ZXJSaWdodENvbG9yKCkgOiBib3JkZXJSaWdodENvbG9yKCk7Ci0gICAgICAgIGJvcmRlclN0eWxl
ID0gYm9yZGVyUmlnaHRTdHlsZSgpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHZp
c2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3JkZXJSaWdodENvbG9yKCkgOiBib3JkZXJSaWdodENv
bG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yOgotICAgICAgICByZXN1
bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9yZGVyVG9wQ29sb3IoKSA6IGJvcmRlclRv
cENvbG9yKCk7Ci0gICAgICAgIGJvcmRlclN0eWxlID0gYm9yZGVyVG9wU3R5bGUoKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgotICAgICAg
ICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9yZGVyQm90dG9tQ29sb3IoKSA6
IGJvcmRlckJvdHRvbUNvbG9yKCk7Ci0gICAgICAgIGJvcmRlclN0eWxlID0gYm9yZGVyQm90dG9t
U3R5bGUoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUNhcmV0Q29sb3I6
Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDYXJldENvbG9yKCkg
OiBjYXJldENvbG9yKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xv
cjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbG9yKCkgOiBj
b2xvcigpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlz
aXRlZExpbmtCb3JkZXJUb3BDb2xvcigpIDogYm9yZGVyVG9wQ29sb3IoKTsKKyAgICBjYXNlIENT
U1Byb3BlcnR5RmlsbDoKKyAgICAgICAgcmV0dXJuIGZpbGxQYWludENvbG9yKCk7CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZsb29kQ29sb3I6CisgICAgICAgIHJldHVybiBmbG9vZENvbG9yKCk7Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eUxpZ2h0aW5nQ29sb3I6CisgICAgICAgIHJldHVybiBsaWdodGlu
Z0NvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKLSAgICAgICAgcmVz
dWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua091dGxpbmVDb2xvcigpIDogb3V0bGluZUNv
bG9yKCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNp
dGVkTGlua091dGxpbmVDb2xvcigpIDogb3V0bGluZUNvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVN0b3BDb2xvcjoKKyAgICAgICAgcmV0dXJuIHN0b3BDb2xvcigpOworICAgIGNhc2UgQ1NT
UHJvcGVydHlTdHJva2U6CisgICAgICAgIHJldHVybiBzdHJva2VQYWludENvbG9yKCk7CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVN0cm9rZUNvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsg
PyB2aXNpdGVkTGlua1N0cm9rZUNvbG9yKCkgOiBzdHJva2VDb2xvcigpOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlDb2x1bW5SdWxlQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8g
dmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3IoKSA6IGNvbHVtblJ1bGVDb2xvcigpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb25Db2xvcjoKLSAgICAg
ICAgLy8gVGV4dCBkZWNvcmF0aW9uIGNvbG9yIGZhbGxiYWNrIGlzIGhhbmRsZWQgaW4gUmVuZGVy
T2JqZWN0OjpkZWNvcmF0aW9uQ29sb3IuCi0gICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZp
c2l0ZWRMaW5rVGV4dERlY29yYXRpb25Db2xvcigpIDogdGV4dERlY29yYXRpb25Db2xvcigpOwor
ICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcigp
IDogY29sdW1uUnVsZUNvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBo
YXNpc0NvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rVGV4
dEVtcGhhc2lzQ29sb3IoKSA6IHRleHRFbXBoYXNpc0NvbG9yKCk7Ci0gICAgICAgIGJyZWFrOwor
ICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRFbXBoYXNpc0NvbG9y
KCkgOiB0ZXh0RW1waGFzaXNDb2xvcigpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0
RmlsbENvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rVGV4
dEZpbGxDb2xvcigpIDogdGV4dEZpbGxDb2xvcigpOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0RmlsbENvbG9yKCkgOiB0ZXh0Rmls
bENvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VDb2xvcjoKLSAg
ICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRTdHJva2VDb2xvcigp
IDogdGV4dFN0cm9rZUNvbG9yKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVy
dHlTdHJva2VDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlu
a1N0cm9rZUNvbG9yKCkgOiBzdHJva2VDb2xvcigpOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0U3Ryb2tlQ29sb3IoKSA6IHRleHRT
dHJva2VDb2xvcigpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbkNvbG9yOgor
ICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHREZWNvcmF0aW9uQ29s
b3IoKSA6IHRleHREZWNvcmF0aW9uQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5Q2FyZXRD
b2xvcjoKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDYXJldENvbG9y
KCkgOiBjYXJldENvbG9yKCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmICghcmVzdWx0LmlzVmFsaWQo
KSkgeworICAgIHJldHVybiB7IH07Cit9CisKK0NvbG9yIFJlbmRlclN0eWxlOjpjb2xvclJlc29s
dmluZ0N1cnJlbnRDb2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRl
ZExpbmspIGNvbnN0Cit7CisgICAgYXV0byBjb21wdXRlQm9yZGVyU3R5bGUgPSBbJl0geworICAg
ICAgICBzd2l0Y2ggKGNvbG9yUHJvcGVydHkpIHsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJv
cmRlckxlZnRDb2xvcjoKKyAgICAgICAgICAgIHJldHVybiBib3JkZXJMZWZ0U3R5bGUoKTsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3I6CisgICAgICAgICAgICByZXR1
cm4gYm9yZGVyUmlnaHRTdHlsZSgpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9w
Q29sb3I6CisgICAgICAgICAgICByZXR1cm4gYm9yZGVyVG9wU3R5bGUoKTsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgorICAgICAgICAgICAgcmV0dXJuIGJvcmRl
ckJvdHRvbVN0eWxlKCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gQm9y
ZGVyU3R5bGU6Ok5vbmU7CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXV0byByZXN1bHQgPSB1
bnJlc29sdmVkQ29sb3JGb3JQcm9wZXJ0eShjb2xvclByb3BlcnR5LCB2aXNpdGVkTGluayk7CisK
KyAgICBpZiAoaXNDdXJyZW50Q29sb3IocmVzdWx0KSkgeworICAgICAgICBhdXRvIGJvcmRlclN0
eWxlID0gY29tcHV0ZUJvcmRlclN0eWxlKCk7CiAgICAgICAgIGlmICghdmlzaXRlZExpbmsgJiYg
KGJvcmRlclN0eWxlID09IEJvcmRlclN0eWxlOjpJbnNldCB8fCBib3JkZXJTdHlsZSA9PSBCb3Jk
ZXJTdHlsZTo6T3V0c2V0IHx8IGJvcmRlclN0eWxlID09IEJvcmRlclN0eWxlOjpSaWRnZSB8fCBi
b3JkZXJTdHlsZSA9PSBCb3JkZXJTdHlsZTo6R3Jvb3ZlKSkKLSAgICAgICAgICAgIHJlc3VsdCA9
IENvbG9yKDIzOCwgMjM4LCAyMzgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQg
PSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ29sb3IoKSA6IGNvbG9yKCk7CisgICAgICAgICAg
ICByZXR1cm4gQ29sb3IoMjM4LCAyMzgsIDIzOCk7CisKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRM
aW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29sb3IoKTsKICAgICB9CisKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCiBDb2xvciBSZW5kZXJTdHlsZTo6Y29sb3JSZXNvbHZpbmdDdXJyZW50Q29s
b3IoY29uc3QgQ29sb3ImIGNvbG9yKSBjb25zdAogewotICAgIGlmIChjb2xvciA9PSBjdXJyZW50
Q29sb3IoKSkKKyAgICBpZiAoaXNDdXJyZW50Q29sb3IoY29sb3IpKQogICAgICAgICByZXR1cm4g
dGhpcy0+Y29sb3IoKTsKIAogICAgIHJldHVybiBjb2xvcjsKQEAgLTIwMjIsMTEgKzIwMzYsMTEg
QEAgQ29sb3IgUmVuZGVyU3R5bGU6OmNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKGNvbnN0IENv
bG9yJiBjb2xvcikgY29uc3QKIAogQ29sb3IgUmVuZGVyU3R5bGU6OnZpc2l0ZWREZXBlbmRlbnRD
b2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHkpIGNvbnN0CiB7Ci0gICAgQ29sb3IgdW52
aXNpdGVkQ29sb3IgPSBjb2xvckluY2x1ZGluZ0ZhbGxiYWNrKGNvbG9yUHJvcGVydHksIGZhbHNl
KTsKKyAgICBDb2xvciB1bnZpc2l0ZWRDb2xvciA9IGNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9y
KGNvbG9yUHJvcGVydHksIGZhbHNlKTsKICAgICBpZiAoaW5zaWRlTGluaygpICE9IEluc2lkZUxp
bms6Okluc2lkZVZpc2l0ZWQpCiAgICAgICAgIHJldHVybiB1bnZpc2l0ZWRDb2xvcjsKIAotICAg
IENvbG9yIHZpc2l0ZWRDb2xvciA9IGNvbG9ySW5jbHVkaW5nRmFsbGJhY2soY29sb3JQcm9wZXJ0
eSwgdHJ1ZSk7CisgICAgQ29sb3IgdmlzaXRlZENvbG9yID0gY29sb3JSZXNvbHZpbmdDdXJyZW50
Q29sb3IoY29sb3JQcm9wZXJ0eSwgdHJ1ZSk7CiAKICAgICAvLyBUZXh0IGRlY29yYXRpb24gY29s
b3IgdmFsaWRpdHkgaXMgcHJlc2VydmVkIChjaGVja2VkIGluIFJlbmRlck9iamVjdDo6ZGVjb3Jh
dGlvbkNvbG9yKS4KICAgICBpZiAoY29sb3JQcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eVRleHREZWNv
cmF0aW9uQ29sb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCmluZGV4IDlkNzM1OTM2NmJhLi5iNTRjYmY2MWMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTE0NDAsNyArMTQ0MCw5IEBAIHB1Ymxp
YzoKICAgICBib29sIGxhc3RDaGlsZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9ub25Jbmhlcml0
ZWRGbGFncy5sYXN0Q2hpbGRTdGF0ZTsgfQogICAgIHZvaWQgc2V0TGFzdENoaWxkU3RhdGUoKSB7
IHNldFVuaXF1ZSgpOyBtX25vbkluaGVyaXRlZEZsYWdzLmxhc3RDaGlsZFN0YXRlID0gdHJ1ZTsg
fQogCisgICAgQ29sb3IgdW5yZXNvbHZlZENvbG9yRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBj
b2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rID0gZmFsc2UpIGNvbnN0OwogICAgIENvbG9y
IGNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKGNvbnN0IENvbG9yJikgY29uc3Q7CisKICAgICBX
RUJDT1JFX0VYUE9SVCBDb2xvciB2aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlJRCkg
Y29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgdmlzaXRlZERlcGVuZGVudENvbG9yV2l0
aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCkBAIC0xNzM0LDYgKzE3MzYsOCBA
QCBwdWJsaWM6CiAKICAgICAvLyBJbiBSZW5kZXJTdHlsZSBpbnZhbGlkIGNvbG9yIHZhbHVlIGlz
IHVzZWQgdG8gc2lnbmlmeSAnY3VycmVudGNvbG9yJyB3aGljaCByZXNvbHZlcyB0byBjb2xvcigp
LgogICAgIHN0YXRpYyBDb2xvciBjdXJyZW50Q29sb3IoKSB7IHJldHVybiB7IH07IH0KKyAgICBz
dGF0aWMgYm9vbCBpc0N1cnJlbnRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgcmV0dXJuICFj
b2xvci5pc1ZhbGlkKCk7IH0KKwogICAgIGNvbnN0IENvbG9yJiBib3JkZXJMZWZ0Q29sb3IoKSBj
b25zdCB7IHJldHVybiBtX3N1cnJvdW5kRGF0YS0+Ym9yZGVyLmxlZnQoKS5jb2xvcigpOyB9CiAg
ICAgY29uc3QgQ29sb3ImIGJvcmRlclJpZ2h0Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3N1cnJv
dW5kRGF0YS0+Ym9yZGVyLnJpZ2h0KCkuY29sb3IoKTsgfQogICAgIGNvbnN0IENvbG9yJiBib3Jk
ZXJUb3BDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3JkZXIudG9wKCku
Y29sb3IoKTsgfQpAQCAtMTg2Niw3ICsxODcwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9v
bCBpc0Rpc3BsYXlHcmlkQm94KERpc3BsYXlUeXBlKTsKICAgICBzdGF0aWMgYm9vbCBpc0Rpc3Bs
YXlGbGV4aWJsZU9yR3JpZEJveChEaXNwbGF5VHlwZSk7CiAKLSAgICBDb2xvciBjb2xvckluY2x1
ZGluZ0ZhbGxiYWNrKENTU1Byb3BlcnR5SUQgY29sb3JQcm9wZXJ0eSwgYm9vbCB2aXNpdGVkTGlu
aykgY29uc3Q7CisgICAgQ29sb3IgY29sb3JSZXNvbHZpbmdDdXJyZW50Q29sb3IoQ1NTUHJvcGVy
dHlJRCBjb2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rKSBjb25zdDsKIAogICAgIGJvb2wg
Y2hhbmdlQWZmZWN0c1Zpc3VhbE92ZXJmbG93KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Q7CiAg
ICAgYm9vbCBjaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBSZW5kZXJTdHlsZSYsIE9wdGlvblNl
dDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4
dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVC
dWlsZGVyU3RhdGUuY3BwCmluZGV4IDM0ZDQxYTUyNGUyLi5lMTY5NTgxNmEzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcApAQCAtMzExLDggKzMxMSw2IEBA
IENvbG9yIEJ1aWxkZXJTdGF0ZTo6Y29sb3JGcm9tUHJpbWl0aXZlVmFsdWUoY29uc3QgQ1NTUHJp
bWl0aXZlVmFsdWUmIHZhbHVlLCBib29sCiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdEZvY3VzUmlu
Z0NvbG9yOgogICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLmZvY3VzUmlu
Z0NvbG9yKGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJm1fc3R5bGUpKTsKICAgICBjYXNl
IENTU1ZhbHVlQ3VycmVudGNvbG9yOgotICAgICAgICAvLyBDb2xvciBpcyBhbiBpbmhlcml0ZWQg
cHJvcGVydHkgc28gZGVwZW5kaW5nIG9uIGl0IGVmZmVjdGl2ZWx5IG1ha2VzIHRoZSBwcm9wZXJ0
eSBpbmhlcml0ZWQuCi0gICAgICAgIG1fc3R5bGUuc2V0SGFzRXhwbGljaXRseUluaGVyaXRlZFBy
b3BlcnRpZXMoKTsKICAgICAgICAgcmV0dXJuIFJlbmRlclN0eWxlOjpjdXJyZW50Q29sb3IoKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gU3R5bGVDb2xvcjo6Y29sb3JGcm9tS2V5d29y
ZChpZGVudGlmaWVyLCBkb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZtX3N0eWxlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395556</attachid>
            <date>2020-04-06 02:49:29 -0700</date>
            <delta_ts>2020-04-06 10:00:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>currentcolor-no-marking-4.patch</filename>
            <type>text/plain</type>
            <size>26406</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjRiMDE3MTUyNC4uNjlhN2Y4OTUyYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
J2N1cnJlbnRjb2xvcicgZG9lc24ndCBuZWVkIHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9w
ZXJ0aWVzIG1hcmtpbmcgYW55bW9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwMDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRh
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3It
aW5pdGlhbC1zdHlsZS11cGRhdGUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDUgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIE9jdGFsIGVzY2FwZXMg
c2hvdWxkIGJlIG1heCAzIGRpZ2l0cyBhbmQgc3ludGF4IGVycm9ycyBpbiBVbmljb2RlIHBhdHRl
cm5zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlh
bC1zdHlsZS11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVu
dENvbG9yLWluaXRpYWwtc3R5bGUtdXBkYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmZkZGY5Yjg4YmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKK1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0
IHVzZSB0aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJl
IHVwZGF0ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitJbml0aWFsIHN0YXRlLgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0
IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9y
ZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNh
c2UgdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQi
KVszXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCisKK0xldCdzIG92ZXJyaWRl
IHRoZSBzdHlsZSBvZiB0aGUgd3JhcHBlciB0aHJvdWdoIHRoZWlyIHN0eWxlIG9iamVjdC4KK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNl
IHRhcmdldCIpWzBdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0Iilb
MF0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJv
cmRlckNvbG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENv
bG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJn
Yig3LCA4LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig3LCA4
LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
dGVzdC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0IilbM10pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorCitMZXQncyBy
ZW1vdmUgdGhlIHN0eWxlIGF0dHJpYnV0ZSBvbiB0aGUgd3JhcHBlci4KK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBd
KS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckxl
ZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1j
YXNlIHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRh
cmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10p
LmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorCitMZXQncyByZW1vdmUgY2xhc3Mg
b24gdGhlIHdyYXBwZXJzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoMSwgMiwgMyki
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3Qt
Y2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdl
dCIpWzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJd
KS5ib3JkZXJDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxl
ZnRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlz
ICJyZ2IoMSwgMiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2Io
MSwgMiwgMykiCisKK1RoZW4gYWRkIGl0IGJhY2suCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyQ29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBdKS5ib3JkZXJMZWZ0Q29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNh
c2UgdGFyZ2V0IilbMl0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQi
KVsyXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSku
Ym9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJMZWZ0
Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJy
ZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2N1cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNzk2NjRkMGJiZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2N1cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1s
CkBAIC0wLDAgKzEsODYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorICAgIC50ZXN0LWNhc2UgeworICAgICAgICBjb2xvcjogcmdiKDEsIDIsIDMpOworICAgIH0K
KyAgICAud3JhcHBlciB7CisgICAgICAgIGNvbG9yOiByZ2IoNCwgNSwgNik7CisgICAgfQorICAg
IHRhcmdldCB7CisgICAgICAgIC8vIGJvcmRlci1jb2xvciBoYXMgaW5pdGlhbCB2YWx1ZSAnY3Vy
cmVudGNvbG9yJy4KKyAgICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3IoZXhwZWN0ZWRDb2xvcikgeworICAgICAg
ICB2YXIgYWxsVGFyZ2V0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVGFyZ2V0cy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbJyArIGkg
KyAnXSkuYm9yZGVyQ29sb3InLCBleHBlY3RlZENvbG9yKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIudGVzdC1jYXNlIHRhcmdldCIpWycgKyBpICsgJ10pLmJvcmRlckxlZnRDb2xvcicsIGV4cGVj
dGVkQ29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0IHVzZSB0
aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJlIHVwZGF0
ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLicpOworCisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIkluaXRpYWwgc3RhdGUuIik7CisgICAgICAg
IHRlc3RDb2xvcigicmdiKDQsIDUsIDYpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICBkZWJ1ZygiTGV0J3Mgb3ZlcnJpZGUgdGhlIHN0eWxlIG9mIHRoZSB3cmFwcGVyIHRocm91Z2gg
dGhlaXIgc3R5bGUgb2JqZWN0LiIpOworICAgICAgICB2YXIgYWxsV3JhcHBlcnMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIud3JhcHBlciIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGFsbFdyYXBwZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBhbGxXcmFwcGVyc1tp
XS5zdHlsZS5jb2xvciA9ICJyZ2IoNywgOCwgOSkiOworICAgICAgICB9CisgICAgICAgIHRlc3RD
b2xvcigicmdiKDcsIDgsIDkpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiTGV0J3MgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgb24gdGhlIHdyYXBwZXIuIik7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKTsKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgZGVidWcoIkxldCdzIHJlbW92ZSBjbGFzcyBvbiB0aGUgd3JhcHBlcnMu
Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5yZW1vdmUoIndyYXBwZXIi
KTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYigxLCAyLCAzKSIpOworCisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRoZW4gYWRkIGl0IGJhY2suIik7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5hZGQoIndyYXBwZXIiKTsKKyAgICAgICAg
fQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1blRl
c3QpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0LWNh
c2UiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+
PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4K
KyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InRlc3QtY2FzZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAg
ICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU4ODI5MmE5MmU4Li5iMDY0YWVhZDczNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTA0LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KKworICAgICAgICAnY3VycmVudGNvbG9yJyBkb2Vzbid0IG5lZWQgc2V0SGFz
RXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMgbWFya2luZyBhbnltb3JlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAwMTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyB0aGlzIG1hcmtp
bmcgcmV2ZWFscyBwcm9ibGVtcyBpbiBzdHlsZSB1cGRhdGUgYXZvaWRhbmNlIGNvZGUgaW4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uCisgICAgICAgIHRoYXQgYWxzbyBuZWVkIHRvIGJlIGFk
ZHJlc3NlZC4gVGhlIHByb2JsZW1zIGFyZSBub3Qgc3BlY2lmaWMgdG8gZXhsaWNpdCAnY3VycmVu
dGNvbG9yJywgdGhleSBhbHNvIHJlcHJvZHVjZQorICAgICAgICB3aXRoIHRoZSBpbml0aWFsIHZh
bHVlICh0aHVzIHRoZSBuZXcgdGVzdCkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvY3VycmVu
dENvbG9yLWluaXRpYWwtc3R5bGUtdXBkYXRlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uSW5oZXJpdGVk
Q29sb3JQcm9wZXJ0eUhhc1ZhbHVlQ3VycmVudENvbG9yKToKKworICAgICAgICBBZGQgYSBoZWxw
ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6Omhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0eSk6CisKKyAg
ICAgICAgVHJlYXQgYSBub24taW5oZXJpdGVkIGNvbG9yIHByb3BlcnR5IGFzIGluaGVyaXRlZCBp
ZiBpdCBpcyAnY3VycmVudGNvbG9yJy4KKworICAgICAgICAoV2ViQ29yZTo6dXBkYXRlU3R5bGVJ
Zk5lZWRlZEZvclByb3BlcnR5KToKKworICAgICAgICBFeHBhbmQgc2hvcnRoYW5kcyBzbyBwcm9w
ZXJ0aWVzIGxpa2UgYm9yZGVyLWNvbG9yIHRlc3QgY29ycmVjdGx5LgorCisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Ojppc0NvbG9y
UHJvcGVydHkpOgorCisgICAgICAgIE1vdmUgaGVyZSBmcm9tIENTU1BhcnNlckZhc3RQYXRocy4K
KworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NT
UGFyc2VyRmFzdFBhdGhzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckZhc3RQYXRo
czo6bWF5YmVQYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29sb3JQcm9wZXJ0eUlE
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5
IGNvbnN0KToKKworICAgICAgICBGYWN0b3IgaW50byBhIGhlbHBlci4KKworICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU3R5bGU6OmNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yIGNvbnN0KToKKwor
ICAgICAgICBSZW5hbWVkIGZvciBjbGFyaXR5IGFuZCBzb21lIGNsZWFudXBzLgorCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dmlzaXRlZERlcGVuZGVudENvbG9yIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2xvckluY2x1ZGluZ0ZhbGxiYWNrIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjppc0N1cnJlbnRDb2xvcik6CisgICAgICAgICog
c3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1
aWxkZXJTdGF0ZTo6Y29sb3JGcm9tUHJpbWl0aXZlVmFsdWUgY29uc3QpOgorCisgICAgICAgIFJl
bW92ZSBzZXRIYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcyBtYXJraW5nLgorCiAyMDIw
LTA0LTA0ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIExv
Y2tIaXN0b3J5IHBhcmFtZXRlciBmcm9tIGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCA4YWQ5OWJkZWMyZS4uZWZhYzI3NmMzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yMTE5LDYgKzIxMTksMTcgQEAg
c3RhdGljIGJvb2wgaXNJbXBsaWNpdGx5SW5oZXJpdGVkR3JpZE9yRmxleFByb3BlcnR5KENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIG5vbkluaGVyaXRl
ZENvbG9yUHJvcGVydHlIYXNWYWx1ZUN1cnJlbnRDb2xvcihDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SUQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoQ1NTUHJvcGVydHk6Omlz
SW5oZXJpdGVkUHJvcGVydHkocHJvcGVydHlJRCkgfHwgIUNTU1Byb3BlcnR5Ojppc0NvbG9yUHJv
cGVydHkocHJvcGVydHlJRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghc3R5
bGUpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIFJlbmRlclN0eWxlOjppc0N1
cnJlbnRDb2xvcihzdHlsZS0+dW5yZXNvbHZlZENvbG9yRm9yUHJvcGVydHkocHJvcGVydHlJRCkp
OworfQorCiAvLyBJbiBDU1MgMi4xIHRoZSByZXR1cm5lZCBvYmplY3Qgc2hvdWxkIGFjdHVhbGx5
IGNvbnRhaW4gdGhlICJ1c2VkIHZhbHVlcyIKIC8vIHJhdGhlciB0aGVuIHRoZSAiY29tcHV0ZWQg
dmFsdWVzIiAoZGVzcGl0ZSB0aGUgbmFtZSBzYXlpbmcgb3RoZXJ3aXNlKS4KIC8vCkBAIC0yMTU1
LDYgKzIxNjYsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0
eShFbGVtZW50JiBlbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHByb3AKIAogICAgICAgICBpZiAobWF5
YmVFeHBsaWNpdGx5SW5oZXJpdGVkKSB7CiAgICAgICAgICAgICBhdXRvKiBzdHlsZSA9IGN1cnJl
bnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOworICAgICAgICAgICAgLy8gV2hpbGUgbW9zdCBjb2xv
ciBwcm9wZXJ0aWVzIGFyZSBub3QgaW5oZXJpdGVkIHRoZSB2YWx1ZSAnY3VycmVudGNvbG9yJyBy
ZXNvbHZlcyB0byB0aGUgdmFsdWUgb2YgdGhlIGluaGVyaXRlZCAnY29sb3InIHByb3BlcnR5Lgor
ICAgICAgICAgICAgaWYgKG5vbkluaGVyaXRlZENvbG9yUHJvcGVydHlIYXNWYWx1ZUN1cnJlbnRD
b2xvcihwcm9wZXJ0eUlELCBzdHlsZSkpCisgICAgICAgICAgICAgICAgaXNJbmhlcml0ZWQgPSB0
cnVlOworCiAgICAgICAgICAgICBtYXliZUV4cGxpY2l0bHlJbmhlcml0ZWQgPSAhc3R5bGUgfHwg
c3R5bGUtPmhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCk7CiAgICAgICAgIH0KIApA
QCAtMjE3Niw3ICsyMTkxLDE5IEBAIHN0YXRpYyBib29sIHVwZGF0ZVN0eWxlSWZOZWVkZWRGb3JQ
cm9wZXJ0eShFbGVtZW50JiBlbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAKICAgICBkb2N1
bWVudC5zdHlsZVNjb3BlKCkuZmx1c2hQZW5kaW5nVXBkYXRlKCk7CiAKLSAgICBpZiAoaGFzVmFs
aWRTdHlsZUZvclByb3BlcnR5KGVsZW1lbnQsIHByb3BlcnR5SUQpKQorICAgIGF1dG8gaGFzVmFs
aWRTdHlsZSA9IFsmXSB7CisgICAgICAgIGF1dG8gc2hvcnRoYW5kID0gc2hvcnRoYW5kRm9yUHJv
cGVydHkocHJvcGVydHlJRCk7CisgICAgICAgIGlmIChzaG9ydGhhbmQubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2hvcnRoYW5kLmxlbmd0aCgpOyArK2kp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIWhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0eShlbGVtZW50
LCBzaG9ydGhhbmQucHJvcGVydGllcygpW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIGhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0eShlbGVtZW50LCBwcm9w
ZXJ0eUlEKTsKKyAgICB9KCk7CisKKyAgICBpZiAoaGFzVmFsaWRTdHlsZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgZG9jdW1lbnQudXBkYXRlU3R5bGVJZk5lZWRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggZjY5OWExMWQ5YmYuLjY1MmI4MGE4OTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTIxMiw0ICsyMTIsMzYgQEAgYm9vbCBDU1NQ
cm9wZXJ0eTo6aXNEaXJlY3Rpb25Bd2FyZVByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCkKICAgICB9CiB9CiAKK2Jvb2wgQ1NTUHJvcGVydHk6OmlzQ29sb3JQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SWQpCit7CisgICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3I6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlCb3JkZXJMZWZ0Q29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29s
b3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlGaWxsOgorICAgIGNhc2UgQ1NTUHJvcGVydHlGbG9vZENvbG9yOgorICAgIGNhc2UgQ1NT
UHJvcGVydHlMaWdodGluZ0NvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3I6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVN0b3BDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5U3Ry
b2tlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VDb2xvcjoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5Qm9yZGVyQmxvY2tFbmRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQmxvY2tT
dGFydENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbmxpbmVFbmRDb2xvcjoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVySW5saW5lU3RhcnRDb2xvcjoKKyAgICBjYXNlIENTU1By
b3BlcnR5Q29sdW1uUnVsZUNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1w
aGFzaXNDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvcjoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0RGVjb3JhdGlvbkNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlDYXJldENvbG9y
OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eS5oCmluZGV4IDEyNWY2NDFiMmE3Li45MWVlMjNhNWE4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5LmgKQEAgLTgxLDYgKzgxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBWZWN0b3I8U3Ry
aW5nPiBhbGlhc2VzRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7CiAgICAgc3RhdGljIGJvb2wg
aXNEaXJlY3Rpb25Bd2FyZVByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogICAgIHN0YXRpYyBib29s
IGlzRGVzY3JpcHRvck9ubHkoQ1NTUHJvcGVydHlJRCk7CisgICAgc3RhdGljIGJvb2wgaXNDb2xv
clByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwogCiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eU1ldGFk
YXRhJiBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCmluZGV4IGJiNWQz
MDY5NDUxLi4xNzU2ZjkyZmJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtMTc5LDM3ICsxNzksNiBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZVNpbXBsZUxlbmd0aFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
ZCwgY29uc3QgUwogICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG51bWJlciwg
dW5pdCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbG9yUHJvcGVydHlJRChDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SWQpCi17Ci0gICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7Ci0gICAgY2Fz
ZSBDU1NQcm9wZXJ0eUNvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3I6
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlCb3JkZXJMZWZ0Q29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29s
b3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlGaWxsOgotICAgIGNhc2UgQ1NTUHJvcGVydHlGbG9vZENvbG9yOgotICAgIGNhc2UgQ1NT
UHJvcGVydHlMaWdodGluZ0NvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3I6
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVN0b3BDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5U3Ry
b2tlOgotICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VDb2xvcjoKLSAgICBjYXNlIENTU1Byb3Bl
cnR5Qm9yZGVyQmxvY2tFbmRDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQmxvY2tT
dGFydENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbmxpbmVFbmRDb2xvcjoKLSAg
ICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVySW5saW5lU3RhcnRDb2xvcjoKLSAgICBjYXNlIENTU1By
b3BlcnR5Q29sdW1uUnVsZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1w
aGFzaXNDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEZpbGxDb2xvcjoKLSAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0RGVjb3JhdGlvbkNvbG9yOgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBkZWZh
dWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCiAvLyBSZXR1cm5zIHRoZSBu
dW1iZXIgb2YgY2hhcmFjdGVycyB3aGljaCBmb3JtIGEgdmFsaWQgZG91YmxlCiAvLyBhbmQgYXJl
IHRlcm1pbmF0ZWQgYnkgdGhlIGdpdmVuIHRlcm1pbmF0b3IgY2hhcmFjdGVyCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KQEAgLTEzMTEsNyArMTI4MCw3IEBAIFJlZlB0cjxDU1NW
YWx1ZT4gQ1NTUGFyc2VyRmFzdFBhdGhzOjptYXliZVBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eUlELCBjCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgaWYgKHByb3BlcnR5SUQg
PT0gQ1NTUHJvcGVydHlDYXJldENvbG9yKQogICAgICAgICByZXR1cm4gcGFyc2VDYXJldENvbG9y
KHN0cmluZywgY29udGV4dC5tb2RlKTsKLSAgICBpZiAoaXNDb2xvclByb3BlcnR5SUQocHJvcGVy
dHlJRCkpCisgICAgaWYgKENTU1Byb3BlcnR5Ojppc0NvbG9yUHJvcGVydHkocHJvcGVydHlJRCkp
CiAgICAgICAgIHJldHVybiBwYXJzZUNvbG9yKHN0cmluZywgY29udGV4dC5tb2RlLCBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpKTsKICAgICBpZiAoYXV0byByZXN1bHQgPSBwYXJzZUtleXdvcmRW
YWx1ZShwcm9wZXJ0eUlELCBzdHJpbmcsIGNvbnRleHQpKQogICAgICAgICByZXR1cm4gcmVzdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggZmQ3NzBlM2MzYmMuLjk1NGRjNGYyZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTE5NDcsNzQgKzE5NDcsODggQEAgdm9pZCBS
ZW5kZXJTdHlsZTo6Z2V0U2hhZG93VmVydGljYWxFeHRlbnQoY29uc3QgU2hhZG93RGF0YSogc2hh
ZG93LCBMYXlvdXRVbml0ICYKICAgICB9CiB9CiAKLUNvbG9yIFJlbmRlclN0eWxlOjpjb2xvcklu
Y2x1ZGluZ0ZhbGxiYWNrKENTU1Byb3BlcnR5SUQgY29sb3JQcm9wZXJ0eSwgYm9vbCB2aXNpdGVk
TGluaykgY29uc3QKK0NvbG9yIFJlbmRlclN0eWxlOjp1bnJlc29sdmVkQ29sb3JGb3JQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmspIGNvbnN0CiB7
Ci0gICAgQ29sb3IgcmVzdWx0OwotICAgIEJvcmRlclN0eWxlIGJvcmRlclN0eWxlID0gQm9yZGVy
U3R5bGU6Ok5vbmU7CiAgICAgc3dpdGNoIChjb2xvclByb3BlcnR5KSB7CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eUNvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0Nv
bG9yKCkgOiBjb2xvcigpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3I6Ci0g
ICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3Io
KSA6IGJhY2tncm91bmRDb2xvcigpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHZp
c2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3IoKSA6IGJhY2tncm91bmRDb2xv
cigpOworICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xvcjoKKyAgICAgICAgcmV0
dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3JkZXJCb3R0b21Db2xvcigpIDogYm9yZGVy
Qm90dG9tQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgotICAg
ICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9yZGVyTGVmdENvbG9yKCkg
OiBib3JkZXJMZWZ0Q29sb3IoKTsKLSAgICAgICAgYm9yZGVyU3R5bGUgPSBib3JkZXJMZWZ0U3R5
bGUoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0
ZWRMaW5rQm9yZGVyTGVmdENvbG9yKCkgOiBib3JkZXJMZWZ0Q29sb3IoKTsKICAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsg
PyB2aXNpdGVkTGlua0JvcmRlclJpZ2h0Q29sb3IoKSA6IGJvcmRlclJpZ2h0Q29sb3IoKTsKLSAg
ICAgICAgYm9yZGVyU3R5bGUgPSBib3JkZXJSaWdodFN0eWxlKCk7Ci0gICAgICAgIGJyZWFrOwor
ICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlclJpZ2h0Q29sb3Io
KSA6IGJvcmRlclJpZ2h0Q29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wQ29s
b3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3JkZXJUb3BD
b2xvcigpIDogYm9yZGVyVG9wQ29sb3IoKTsKLSAgICAgICAgYm9yZGVyU3R5bGUgPSBib3JkZXJU
b3BTdHlsZSgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90
dG9tQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3Jk
ZXJCb3R0b21Db2xvcigpIDogYm9yZGVyQm90dG9tQ29sb3IoKTsKLSAgICAgICAgYm9yZGVyU3R5
bGUgPSBib3JkZXJCb3R0b21TdHlsZSgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1By
b3BlcnR5Q2FyZXRDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVk
TGlua0NhcmV0Q29sb3IoKSA6IGNhcmV0Q29sb3IoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDU1NQcm9wZXJ0eUNvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0
ZWRMaW5rQ29sb3IoKSA6IGNvbG9yKCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4g
dmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlclRvcENvbG9yKCkgOiBib3JkZXJUb3BDb2xv
cigpOworICAgIGNhc2UgQ1NTUHJvcGVydHlGaWxsOgorICAgICAgICByZXR1cm4gZmlsbFBhaW50
Q29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5Rmxvb2RDb2xvcjoKKyAgICAgICAgcmV0dXJu
IGZsb29kQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5TGlnaHRpbmdDb2xvcjoKKyAgICAg
ICAgcmV0dXJuIGxpZ2h0aW5nQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZUNv
bG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rT3V0bGluZUNv
bG9yKCkgOiBvdXRsaW5lQ29sb3IoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2
aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rT3V0bGluZUNvbG9yKCkgOiBvdXRsaW5lQ29sb3IoKTsK
KyAgICBjYXNlIENTU1Byb3BlcnR5U3RvcENvbG9yOgorICAgICAgICByZXR1cm4gc3RvcENvbG9y
KCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZToKKyAgICAgICAgcmV0dXJuIHN0cm9rZVBh
aW50Q29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlQ29sb3I6CisgICAgICAgIHJl
dHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IoKSA6IHN0cm9rZUNvbG9y
KCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVDb2xvcjoKLSAgICAgICAgcmVzdWx0
ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcigpIDogY29sdW1uUnVs
ZUNvbG9yKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3Jh
dGlvbkNvbG9yOgotICAgICAgICAvLyBUZXh0IGRlY29yYXRpb24gY29sb3IgZmFsbGJhY2sgaXMg
aGFuZGxlZCBpbiBSZW5kZXJPYmplY3Q6OmRlY29yYXRpb25Db2xvci4KLSAgICAgICAgcmV0dXJu
IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0RGVjb3JhdGlvbkNvbG9yKCkgOiB0ZXh0RGVj
b3JhdGlvbkNvbG9yKCk7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5r
Q29sdW1uUnVsZUNvbG9yKCkgOiBjb2x1bW5SdWxlQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5r
ID8gdmlzaXRlZExpbmtUZXh0RW1waGFzaXNDb2xvcigpIDogdGV4dEVtcGhhc2lzQ29sb3IoKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5r
VGV4dEVtcGhhc2lzQ29sb3IoKSA6IHRleHRFbXBoYXNpc0NvbG9yKCk7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5r
ID8gdmlzaXRlZExpbmtUZXh0RmlsbENvbG9yKCkgOiB0ZXh0RmlsbENvbG9yKCk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRGaWxs
Q29sb3IoKSA6IHRleHRGaWxsQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4
dFN0cm9rZUNvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5r
VGV4dFN0cm9rZUNvbG9yKCkgOiB0ZXh0U3Ryb2tlQ29sb3IoKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZUNvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVk
TGluayA/IHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IoKSA6IHN0cm9rZUNvbG9yKCk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRTdHJv
a2VDb2xvcigpIDogdGV4dFN0cm9rZUNvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRE
ZWNvcmF0aW9uQ29sb3I6CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5r
VGV4dERlY29yYXRpb25Db2xvcigpIDogdGV4dERlY29yYXRpb25Db2xvcigpOworICAgIGNhc2Ug
Q1NTUHJvcGVydHlDYXJldENvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNp
dGVkTGlua0NhcmV0Q29sb3IoKSA6IGNhcmV0Q29sb3IoKTsKICAgICBkZWZhdWx0OgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYg
KCFyZXN1bHQuaXNWYWxpZCgpKSB7CisgICAgcmV0dXJuIHsgfTsKK30KKworQ29sb3IgUmVuZGVy
U3R5bGU6OmNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKENTU1Byb3BlcnR5SUQgY29sb3JQcm9w
ZXJ0eSwgYm9vbCB2aXNpdGVkTGluaykgY29uc3QKK3sKKyAgICBhdXRvIGNvbXB1dGVCb3JkZXJT
dHlsZSA9IFsmXSB7CisgICAgICAgIHN3aXRjaCAoY29sb3JQcm9wZXJ0eSkgeworICAgICAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgorICAgICAgICAgICAgcmV0dXJuIGJvcmRl
ckxlZnRTdHlsZSgpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoK
KyAgICAgICAgICAgIHJldHVybiBib3JkZXJSaWdodFN0eWxlKCk7CisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJUb3BDb2xvcjoKKyAgICAgICAgICAgIHJldHVybiBib3JkZXJUb3BTdHls
ZSgpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAg
ICAgICByZXR1cm4gYm9yZGVyQm90dG9tU3R5bGUoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiBCb3JkZXJTdHlsZTo6Tm9uZTsKKyAgICAgICAgfQorICAgIH07CisKKyAg
ICBhdXRvIHJlc3VsdCA9IHVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5KGNvbG9yUHJvcGVydHks
IHZpc2l0ZWRMaW5rKTsKKworICAgIGlmIChpc0N1cnJlbnRDb2xvcihyZXN1bHQpKSB7CisgICAg
ICAgIGF1dG8gYm9yZGVyU3R5bGUgPSBjb21wdXRlQm9yZGVyU3R5bGUoKTsKICAgICAgICAgaWYg
KCF2aXNpdGVkTGluayAmJiAoYm9yZGVyU3R5bGUgPT0gQm9yZGVyU3R5bGU6Okluc2V0IHx8IGJv
cmRlclN0eWxlID09IEJvcmRlclN0eWxlOjpPdXRzZXQgfHwgYm9yZGVyU3R5bGUgPT0gQm9yZGVy
U3R5bGU6OlJpZGdlIHx8IGJvcmRlclN0eWxlID09IEJvcmRlclN0eWxlOjpHcm9vdmUpKQotICAg
ICAgICAgICAgcmVzdWx0ID0gQ29sb3IoMjM4LCAyMzgsIDIzOCk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29s
b3IoKTsKKyAgICAgICAgICAgIHJldHVybiBDb2xvcigyMzgsIDIzOCwgMjM4KTsKKworICAgICAg
ICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbG9yKCkgOiBjb2xvcigpOwogICAg
IH0KKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIENvbG9yIFJlbmRlclN0eWxlOjpjb2xvclJl
c29sdmluZ0N1cnJlbnRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIGNvbnN0CiB7Ci0gICAgaWYg
KGNvbG9yID09IGN1cnJlbnRDb2xvcigpKQorICAgIGlmIChpc0N1cnJlbnRDb2xvcihjb2xvcikp
CiAgICAgICAgIHJldHVybiB0aGlzLT5jb2xvcigpOwogCiAgICAgcmV0dXJuIGNvbG9yOwpAQCAt
MjAyMiwxMSArMjAzNiwxMSBAQCBDb2xvciBSZW5kZXJTdHlsZTo6Y29sb3JSZXNvbHZpbmdDdXJy
ZW50Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSBjb25zdAogCiBDb2xvciBSZW5kZXJTdHlsZTo6
dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5SUQgY29sb3JQcm9wZXJ0eSkgY29uc3QK
IHsKLSAgICBDb2xvciB1bnZpc2l0ZWRDb2xvciA9IGNvbG9ySW5jbHVkaW5nRmFsbGJhY2soY29s
b3JQcm9wZXJ0eSwgZmFsc2UpOworICAgIENvbG9yIHVudmlzaXRlZENvbG9yID0gY29sb3JSZXNv
bHZpbmdDdXJyZW50Q29sb3IoY29sb3JQcm9wZXJ0eSwgZmFsc2UpOwogICAgIGlmIChpbnNpZGVM
aW5rKCkgIT0gSW5zaWRlTGluazo6SW5zaWRlVmlzaXRlZCkKICAgICAgICAgcmV0dXJuIHVudmlz
aXRlZENvbG9yOwogCi0gICAgQ29sb3IgdmlzaXRlZENvbG9yID0gY29sb3JJbmNsdWRpbmdGYWxs
YmFjayhjb2xvclByb3BlcnR5LCB0cnVlKTsKKyAgICBDb2xvciB2aXNpdGVkQ29sb3IgPSBjb2xv
clJlc29sdmluZ0N1cnJlbnRDb2xvcihjb2xvclByb3BlcnR5LCB0cnVlKTsKIAogICAgIC8vIFRl
eHQgZGVjb3JhdGlvbiBjb2xvciB2YWxpZGl0eSBpcyBwcmVzZXJ2ZWQgKGNoZWNrZWQgaW4gUmVu
ZGVyT2JqZWN0OjpkZWNvcmF0aW9uQ29sb3IpLgogICAgIGlmIChjb2xvclByb3BlcnR5ID09IENT
U1Byb3BlcnR5VGV4dERlY29yYXRpb25Db2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggOWQ3MzU5MzY2YmEuLmI1NGNiZjYxYzM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTQ0MCw3
ICsxNDQwLDkgQEAgcHVibGljOgogICAgIGJvb2wgbGFzdENoaWxkU3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX25vbkluaGVyaXRlZEZsYWdzLmxhc3RDaGlsZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRM
YXN0Q2hpbGRTdGF0ZSgpIHsgc2V0VW5pcXVlKCk7IG1fbm9uSW5oZXJpdGVkRmxhZ3MubGFzdENo
aWxkU3RhdGUgPSB0cnVlOyB9CiAKKyAgICBDb2xvciB1bnJlc29sdmVkQ29sb3JGb3JQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmsgPSBmYWxzZSkg
Y29uc3Q7CiAgICAgQ29sb3IgY29sb3JSZXNvbHZpbmdDdXJyZW50Q29sb3IoY29uc3QgQ29sb3Im
KSBjb25zdDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIHZpc2l0ZWREZXBlbmRlbnRDb2xv
cihDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciB2aXNpdGVk
RGVwZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKQEAg
LTE3MzQsNiArMTczNiw4IEBAIHB1YmxpYzoKIAogICAgIC8vIEluIFJlbmRlclN0eWxlIGludmFs
aWQgY29sb3IgdmFsdWUgaXMgdXNlZCB0byBzaWduaWZ5ICdjdXJyZW50Y29sb3InIHdoaWNoIHJl
c29sdmVzIHRvIGNvbG9yKCkuCiAgICAgc3RhdGljIENvbG9yIGN1cnJlbnRDb2xvcigpIHsgcmV0
dXJuIHsgfTsgfQorICAgIHN0YXRpYyBib29sIGlzQ3VycmVudENvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikgeyByZXR1cm4gIWNvbG9yLmlzVmFsaWQoKTsgfQorCiAgICAgY29uc3QgQ29sb3ImIGJv
cmRlckxlZnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3JkZXIubGVm
dCgpLmNvbG9yKCk7IH0KICAgICBjb25zdCBDb2xvciYgYm9yZGVyUmlnaHRDb2xvcigpIGNvbnN0
IHsgcmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3JkZXIucmlnaHQoKS5jb2xvcigpOyB9CiAgICAg
Y29uc3QgQ29sb3ImIGJvcmRlclRvcENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zdXJyb3VuZERh
dGEtPmJvcmRlci50b3AoKS5jb2xvcigpOyB9CkBAIC0xODY2LDcgKzE4NzAsNyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBib29sIGlzRGlzcGxheUdyaWRCb3goRGlzcGxheVR5cGUpOwogICAgIHN0
YXRpYyBib29sIGlzRGlzcGxheUZsZXhpYmxlT3JHcmlkQm94KERpc3BsYXlUeXBlKTsKIAotICAg
IENvbG9yIGNvbG9ySW5jbHVkaW5nRmFsbGJhY2soQ1NTUHJvcGVydHlJRCBjb2xvclByb3BlcnR5
LCBib29sIHZpc2l0ZWRMaW5rKSBjb25zdDsKKyAgICBDb2xvciBjb2xvclJlc29sdmluZ0N1cnJl
bnRDb2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmspIGNv
bnN0OwogCiAgICAgYm9vbCBjaGFuZ2VBZmZlY3RzVmlzdWFsT3ZlcmZsb3coY29uc3QgUmVuZGVy
U3R5bGUmKSBjb25zdDsKICAgICBib29sIGNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFJlbmRl
clN0eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQcm9wZXJ0
eT4mIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAKaW5kZXggMzRkNDFhNTI0ZTIuLmUxNjk1
ODE2YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCkBA
IC0zMTEsOCArMzExLDYgQEAgQ29sb3IgQnVpbGRlclN0YXRlOjpjb2xvckZyb21QcmltaXRpdmVW
YWx1ZShjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgdmFsdWUsIGJvb2wKICAgICBjYXNlIENTU1Zh
bHVlV2Via2l0Rm9jdXNSaW5nQ29sb3I6CiAgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2lu
Z2xldG9uKCkuZm9jdXNSaW5nQ29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmbV9z
dHlsZSkpOwogICAgIGNhc2UgQ1NTVmFsdWVDdXJyZW50Y29sb3I6Ci0gICAgICAgIC8vIENvbG9y
IGlzIGFuIGluaGVyaXRlZCBwcm9wZXJ0eSBzbyBkZXBlbmRpbmcgb24gaXQgZWZmZWN0aXZlbHkg
bWFrZXMgdGhlIHByb3BlcnR5IGluaGVyaXRlZC4KLSAgICAgICAgbV9zdHlsZS5zZXRIYXNFeHBs
aWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpOwogICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6
OmN1cnJlbnRDb2xvcigpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBTdHlsZUNvbG9y
Ojpjb2xvckZyb21LZXl3b3JkKGlkZW50aWZpZXIsIGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlv
bnMoJm1fc3R5bGUpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395579</attachid>
            <date>2020-04-06 10:00:04 -0700</date>
            <delta_ts>2020-04-06 10:58:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>currentcolor-no-marking-5.patch</filename>
            <type>text/plain</type>
            <size>26745</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjRiMDE3MTUyNC4uNjlhN2Y4OTUyYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
J2N1cnJlbnRjb2xvcicgZG9lc24ndCBuZWVkIHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9w
ZXJ0aWVzIG1hcmtpbmcgYW55bW9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwMDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRh
dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3It
aW5pdGlhbC1zdHlsZS11cGRhdGUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDUgIEFsZXhleSBT
aHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIE9jdGFsIGVzY2FwZXMg
c2hvdWxkIGJlIG1heCAzIGRpZ2l0cyBhbmQgc3ludGF4IGVycm9ycyBpbiBVbmljb2RlIHBhdHRl
cm5zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlh
bC1zdHlsZS11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVu
dENvbG9yLWluaXRpYWwtc3R5bGUtdXBkYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmZkZGY5Yjg4YmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKK1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0
IHVzZSB0aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJl
IHVwZGF0ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitJbml0aWFsIHN0YXRlLgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0
IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9y
ZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNh
c2UgdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQi
KVszXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCisKK0xldCdzIG92ZXJyaWRl
IHRoZSBzdHlsZSBvZiB0aGUgd3JhcHBlciB0aHJvdWdoIHRoZWlyIHN0eWxlIG9iamVjdC4KK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNl
IHRhcmdldCIpWzBdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0Iilb
MF0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJv
cmRlckNvbG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENv
bG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJn
Yig3LCA4LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig3LCA4
LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
dGVzdC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0IilbM10pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorCitMZXQncyBy
ZW1vdmUgdGhlIHN0eWxlIGF0dHJpYnV0ZSBvbiB0aGUgd3JhcHBlci4KK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBd
KS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckxl
ZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckNvbG9yIGlz
ICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2Io
NCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1j
YXNlIHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRh
cmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10p
LmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorCitMZXQncyByZW1vdmUgY2xhc3Mg
b24gdGhlIHdyYXBwZXJzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoMSwgMiwgMyki
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3Qt
Y2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdl
dCIpWzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJd
KS5ib3JkZXJDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxl
ZnRDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlz
ICJyZ2IoMSwgMiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2Io
MSwgMiwgMykiCisKK1RoZW4gYWRkIGl0IGJhY2suCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyQ29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBdKS5ib3JkZXJMZWZ0Q29sb3IgaXMg
InJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUs
IDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50
ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNh
c2UgdGFyZ2V0IilbMl0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQi
KVsyXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSku
Ym9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJMZWZ0
Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJy
ZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2N1cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNzk2NjRkMGJiZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2N1cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1s
CkBAIC0wLDAgKzEsODYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorICAgIC50ZXN0LWNhc2UgeworICAgICAgICBjb2xvcjogcmdiKDEsIDIsIDMpOworICAgIH0K
KyAgICAud3JhcHBlciB7CisgICAgICAgIGNvbG9yOiByZ2IoNCwgNSwgNik7CisgICAgfQorICAg
IHRhcmdldCB7CisgICAgICAgIC8vIGJvcmRlci1jb2xvciBoYXMgaW5pdGlhbCB2YWx1ZSAnY3Vy
cmVudGNvbG9yJy4KKyAgICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3IoZXhwZWN0ZWRDb2xvcikgeworICAgICAg
ICB2YXIgYWxsVGFyZ2V0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVGFyZ2V0cy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbJyArIGkg
KyAnXSkuYm9yZGVyQ29sb3InLCBleHBlY3RlZENvbG9yKTsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIudGVzdC1jYXNlIHRhcmdldCIpWycgKyBpICsgJ10pLmJvcmRlckxlZnRDb2xvcicsIGV4cGVj
dGVkQ29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0IHVzZSB0
aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJlIHVwZGF0
ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLicpOworCisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIkluaXRpYWwgc3RhdGUuIik7CisgICAgICAg
IHRlc3RDb2xvcigicmdiKDQsIDUsIDYpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICBkZWJ1ZygiTGV0J3Mgb3ZlcnJpZGUgdGhlIHN0eWxlIG9mIHRoZSB3cmFwcGVyIHRocm91Z2gg
dGhlaXIgc3R5bGUgb2JqZWN0LiIpOworICAgICAgICB2YXIgYWxsV3JhcHBlcnMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIud3JhcHBlciIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGFsbFdyYXBwZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBhbGxXcmFwcGVyc1tp
XS5zdHlsZS5jb2xvciA9ICJyZ2IoNywgOCwgOSkiOworICAgICAgICB9CisgICAgICAgIHRlc3RD
b2xvcigicmdiKDcsIDgsIDkpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiTGV0J3MgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgb24gdGhlIHdyYXBwZXIuIik7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKTsKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgZGVidWcoIkxldCdzIHJlbW92ZSBjbGFzcyBvbiB0aGUgd3JhcHBlcnMu
Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5yZW1vdmUoIndyYXBwZXIi
KTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYigxLCAyLCAzKSIpOworCisgICAg
ICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRoZW4gYWRkIGl0IGJhY2suIik7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5hZGQoIndyYXBwZXIiKTsKKyAgICAgICAg
fQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1blRl
c3QpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0LWNh
c2UiPgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+
PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4K
KyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9InRlc3QtY2FzZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAg
ICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU4ODI5MmE5MmU4Li5jN2UzNjMzM2M3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTA0LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KKworICAgICAgICAnY3VycmVudGNvbG9yJyBkb2Vzbid0IG5lZWQgc2V0SGFz
RXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMgbWFya2luZyBhbnltb3JlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAwMTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyB0aGlzIG1hcmtp
bmcgcmV2ZWFscyBwcm9ibGVtcyBpbiBzdHlsZSB1cGRhdGUgYXZvaWRhbmNlIGNvZGUgaW4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uCisgICAgICAgIHRoYXQgYWxzbyBuZWVkIHRvIGJlIGFk
ZHJlc3NlZC4gVGhlIHByb2JsZW1zIGFyZSBub3Qgc3BlY2lmaWMgdG8gZXhsaWNpdCAnY3VycmVu
dGNvbG9yJywgdGhleSBhbHNvIHJlcHJvZHVjZQorICAgICAgICB3aXRoIHRoZSBpbml0aWFsIHZh
bHVlICh0aHVzIHRoZSBuZXcgdGVzdCkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvY3VycmVu
dENvbG9yLWluaXRpYWwtc3R5bGUtdXBkYXRlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uSW5oZXJpdGVk
Q29sb3JQcm9wZXJ0eUhhc1ZhbHVlQ3VycmVudENvbG9yKToKKworICAgICAgICBBZGQgYSBoZWxw
ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6Omhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0eSk6CisKKyAg
ICAgICAgVHJlYXQgYSBub24taW5oZXJpdGVkIGNvbG9yIHByb3BlcnR5IGFzIGluaGVyaXRlZCBp
ZiBpdCBpcyAnY3VycmVudGNvbG9yJy4KKworICAgICAgICAoV2ViQ29yZTo6dXBkYXRlU3R5bGVJ
Zk5lZWRlZEZvclByb3BlcnR5KToKKworICAgICAgICBFeHBhbmQgc2hvcnRoYW5kcyBzbyBwcm9w
ZXJ0aWVzIGxpa2UgYm9yZGVyLWNvbG9yIHRlc3QgY29ycmVjdGx5LgorCisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Ojppc0NvbG9y
UHJvcGVydHkpOgorCisgICAgICAgIE1vdmUgaGVyZSBmcm9tIENTU1BhcnNlckZhc3RQYXRocy4K
KworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NT
UGFyc2VyRmFzdFBhdGhzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckZhc3RQYXRo
czo6bWF5YmVQYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29sb3JQcm9wZXJ0eUlE
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5
IGNvbnN0KToKKworICAgICAgICBGYWN0b3IgaW50byBhIGhlbHBlci4KKyAgICAgICAgSGFuZGxl
IGFsbCBjb2xvciB2YWx1ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2xv
clJlc29sdmluZ0N1cnJlbnRDb2xvciBjb25zdCk6CisKKyAgICAgICAgUmVuYW1lZCBmb3IgY2xh
cml0eSBhbmQgc29tZSBjbGVhbnVwcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OnZpc2l0ZWREZXBlbmRlbnRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6Y29sb3JJbmNsdWRpbmdGYWxsYmFjayBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6aXNDdXJyZW50Q29sb3IpOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlclN0YXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyU3RhdGU6OmNvbG9yRnJvbVBy
aW1pdGl2ZVZhbHVlIGNvbnN0KToKKworICAgICAgICBSZW1vdmUgc2V0SGFzRXhwbGljaXRseUlu
aGVyaXRlZFByb3BlcnRpZXMgbWFya2luZy4KKwogMjAyMC0wNC0wNCAgUm9iIEJ1aXMgIDxyYnVp
c0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBMb2NrSGlzdG9yeSBwYXJhbWV0ZXIgZnJv
bSBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggOGFkOTliZGVjMmUuLmVmYWMyNzZj
MzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcApAQCAtMjExOSw2ICsyMTE5LDE3IEBAIHN0YXRpYyBib29sIGlzSW1wbGljaXRs
eUluaGVyaXRlZEdyaWRPckZsZXhQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAg
ICAgfQogfQogCitzdGF0aWMgYm9vbCBub25Jbmhlcml0ZWRDb2xvclByb3BlcnR5SGFzVmFsdWVD
dXJyZW50Q29sb3IoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGUpCit7CisgICAgaWYgKENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3Bl
cnR5SUQpIHx8ICFDU1NQcm9wZXJ0eTo6aXNDb2xvclByb3BlcnR5KHByb3BlcnR5SUQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIHJldHVybiBSZW5kZXJTdHlsZTo6aXNDdXJyZW50Q29sb3Ioc3R5bGUtPnVucmVz
b2x2ZWRDb2xvckZvclByb3BlcnR5KHByb3BlcnR5SUQpKTsKK30KKwogLy8gSW4gQ1NTIDIuMSB0
aGUgcmV0dXJuZWQgb2JqZWN0IHNob3VsZCBhY3R1YWxseSBjb250YWluIHRoZSAidXNlZCB2YWx1
ZXMiCiAvLyByYXRoZXIgdGhlbiB0aGUgImNvbXB1dGVkIHZhbHVlcyIgKGRlc3BpdGUgdGhlIG5h
bWUgc2F5aW5nIG90aGVyd2lzZSkuCiAvLwpAQCAtMjE1NSw2ICsyMTY2LDEwIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBoYXNWYWxpZFN0eWxlRm9yUHJvcGVydHkoRWxlbWVudCYgZWxlbWVudCwgQ1NT
UHJvcGVydHlJRCBwcm9wCiAKICAgICAgICAgaWYgKG1heWJlRXhwbGljaXRseUluaGVyaXRlZCkg
ewogICAgICAgICAgICAgYXV0byogc3R5bGUgPSBjdXJyZW50RWxlbWVudC0+cmVuZGVyU3R5bGUo
KTsKKyAgICAgICAgICAgIC8vIFdoaWxlIG1vc3QgY29sb3IgcHJvcGVydGllcyBhcmUgbm90IGlu
aGVyaXRlZCB0aGUgdmFsdWUgJ2N1cnJlbnRjb2xvcicgcmVzb2x2ZXMgdG8gdGhlIHZhbHVlIG9m
IHRoZSBpbmhlcml0ZWQgJ2NvbG9yJyBwcm9wZXJ0eS4KKyAgICAgICAgICAgIGlmIChub25Jbmhl
cml0ZWRDb2xvclByb3BlcnR5SGFzVmFsdWVDdXJyZW50Q29sb3IocHJvcGVydHlJRCwgc3R5bGUp
KQorICAgICAgICAgICAgICAgIGlzSW5oZXJpdGVkID0gdHJ1ZTsKKwogICAgICAgICAgICAgbWF5
YmVFeHBsaWNpdGx5SW5oZXJpdGVkID0gIXN0eWxlIHx8IHN0eWxlLT5oYXNFeHBsaWNpdGx5SW5o
ZXJpdGVkUHJvcGVydGllcygpOwogICAgICAgICB9CiAKQEAgLTIxNzYsNyArMjE5MSwxOSBAQCBz
dGF0aWMgYm9vbCB1cGRhdGVTdHlsZUlmTmVlZGVkRm9yUHJvcGVydHkoRWxlbWVudCYgZWxlbWVu
dCwgQ1NTUHJvcGVydHlJRCBwcm9wZQogCiAgICAgZG9jdW1lbnQuc3R5bGVTY29wZSgpLmZsdXNo
UGVuZGluZ1VwZGF0ZSgpOwogCi0gICAgaWYgKGhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0eShlbGVt
ZW50LCBwcm9wZXJ0eUlEKSkKKyAgICBhdXRvIGhhc1ZhbGlkU3R5bGUgPSBbJl0geworICAgICAg
ICBhdXRvIHNob3J0aGFuZCA9IHNob3J0aGFuZEZvclByb3BlcnR5KHByb3BlcnR5SUQpOworICAg
ICAgICBpZiAoc2hvcnRoYW5kLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNob3J0aGFuZC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFoYXNWYWxpZFN0eWxlRm9yUHJvcGVydHkoZWxlbWVudCwgc2hvcnRoYW5kLnByb3BlcnRpZXMo
KVtpXSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYXNW
YWxpZFN0eWxlRm9yUHJvcGVydHkoZWxlbWVudCwgcHJvcGVydHlJRCk7CisgICAgfSgpOworCisg
ICAgaWYgKGhhc1ZhbGlkU3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGRvY3Vt
ZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCmlu
ZGV4IGY2OTlhMTFkOWJmLi42NTJiODBhODkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHku
Y3BwCkBAIC0yMTIsNCArMjEyLDM2IEBAIGJvb2wgQ1NTUHJvcGVydHk6OmlzRGlyZWN0aW9uQXdh
cmVQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgfQogfQogCitib29sIENT
U1Byb3BlcnR5Ojppc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQorewor
ICAgIHN3aXRjaCAocHJvcGVydHlJZCkgeworICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvcjoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21Db2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJUb3BDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5RmlsbDoKKyAgICBjYXNlIENT
U1Byb3BlcnR5Rmxvb2RDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5TGlnaHRpbmdDb2xvcjoK
KyAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlT
dG9wQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5U3Ryb2tlQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrRW5kQ29sb3I6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrU3RhcnRDb2xvcjoKKyAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVySW5saW5lRW5kQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRl
cklubGluZVN0YXJ0Q29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVDb2xvcjoK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRleHRTdHJva2VDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb25Db2xv
cjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Q2FyZXRDb2xvcjoKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaAppbmRleCAxMjVmNjQxYjJh
Ny4uOTFlZTIzYTVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5oCkBAIC04MSw2ICs4MSw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gYWxpYXNlc0ZvclByb3BlcnR5
KENTU1Byb3BlcnR5SUQpOwogICAgIHN0YXRpYyBib29sIGlzRGlyZWN0aW9uQXdhcmVQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgYm9vbCBpc0Rlc2NyaXB0b3JPbmx5KENTU1By
b3BlcnR5SUQpOworICAgIHN0YXRpYyBib29sIGlzQ29sb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
KTsKIAogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlNZXRhZGF0YSYgbWV0YWRhdGEoKSBjb25zdCB7
IHJldHVybiBtX21ldGFkYXRhOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyRmFzdFBhdGhzLmNwcAppbmRleCBiYjVkMzA2OTQ1MS4uMTc1NmY5MmZiYTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAK
QEAgLTE3OSwzNyArMTc5LDYgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VTaW1wbGVM
ZW5ndGhWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGNvbnN0IFMKICAgICByZXR1cm4g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShudW1iZXIsIHVuaXQpOwogfQogCi1zdGF0aWMgaW5s
aW5lIGJvb2wgaXNDb2xvclByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQotewot
ICAgIHN3aXRjaCAocHJvcGVydHlJZCkgewotICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvcjoKLSAg
ICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21Db2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgot
ICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJUb3BDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5RmlsbDoKLSAgICBjYXNlIENT
U1Byb3BlcnR5Rmxvb2RDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5TGlnaHRpbmdDb2xvcjoK
LSAgICBjYXNlIENTU1Byb3BlcnR5T3V0bGluZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlT
dG9wQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZToKLSAgICBjYXNlIENTU1Byb3Bl
cnR5U3Ryb2tlQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrRW5kQ29sb3I6
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrU3RhcnRDb2xvcjoKLSAgICBjYXNlIENT
U1Byb3BlcnR5Qm9yZGVySW5saW5lRW5kQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRl
cklubGluZVN0YXJ0Q29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVDb2xvcjoK
LSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6Ci0gICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRleHRTdHJva2VDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb25Db2xv
cjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLX0KLQogLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd2hp
Y2ggZm9ybSBhIHZhbGlkIGRvdWJsZQogLy8gYW5kIGFyZSB0ZXJtaW5hdGVkIGJ5IHRoZSBnaXZl
biB0ZXJtaW5hdG9yIGNoYXJhY3RlcgogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
CkBAIC0xMzExLDcgKzEyODAsNyBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlckZhc3RQYXRo
czo6bWF5YmVQYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgYwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIGlmIChwcm9wZXJ0eUlEID09IENTU1Byb3BlcnR5Q2FyZXRDb2xv
cikKICAgICAgICAgcmV0dXJuIHBhcnNlQ2FyZXRDb2xvcihzdHJpbmcsIGNvbnRleHQubW9kZSk7
Ci0gICAgaWYgKGlzQ29sb3JQcm9wZXJ0eUlEKHByb3BlcnR5SUQpKQorICAgIGlmIChDU1NQcm9w
ZXJ0eTo6aXNDb2xvclByb3BlcnR5KHByb3BlcnR5SUQpKQogICAgICAgICByZXR1cm4gcGFyc2VD
b2xvcihzdHJpbmcsIGNvbnRleHQubW9kZSwgQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKSk7CiAg
ICAgaWYgKGF1dG8gcmVzdWx0ID0gcGFyc2VLZXl3b3JkVmFsdWUocHJvcGVydHlJRCwgc3RyaW5n
LCBjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGZkNzcwZTNjM2JjLi4wZGFkNjNi
YTEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCkBAIC0xOTQ3LDc0ICsxOTQ3LDkzIEBAIHZvaWQgUmVuZGVyU3R5bGU6OmdldFNoYWRvd1Zl
cnRpY2FsRXh0ZW50KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgTGF5b3V0VW5pdCAmCiAgICAg
fQogfQogCi1Db2xvciBSZW5kZXJTdHlsZTo6Y29sb3JJbmNsdWRpbmdGYWxsYmFjayhDU1NQcm9w
ZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmspIGNvbnN0CitDb2xvciBSZW5k
ZXJTdHlsZTo6dW5yZXNvbHZlZENvbG9yRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBjb2xvclBy
b3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rKSBjb25zdAogewotICAgIENvbG9yIHJlc3VsdDsKLSAg
ICBCb3JkZXJTdHlsZSBib3JkZXJTdHlsZSA9IEJvcmRlclN0eWxlOjpOb25lOwogICAgIHN3aXRj
aCAoY29sb3JQcm9wZXJ0eSkgeworICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvcjoKKyAgICAgICAg
cmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29sb3IoKTsKICAgICBj
YXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVk
TGluayA/IHZpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yKCkgOiBiYWNrZ3JvdW5kQ29sb3IoKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5r
QmFja2dyb3VuZENvbG9yKCkgOiBiYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3Bl
cnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0
ZWRMaW5rQm9yZGVyQm90dG9tQ29sb3IoKSA6IGJvcmRlckJvdHRvbUNvbG9yKCk7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExp
bmsgPyB2aXNpdGVkTGlua0JvcmRlckxlZnRDb2xvcigpIDogYm9yZGVyTGVmdENvbG9yKCk7Ci0g
ICAgICAgIGJvcmRlclN0eWxlID0gYm9yZGVyTGVmdFN0eWxlKCk7Ci0gICAgICAgIGJyZWFrOwor
ICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlckxlZnRDb2xvcigp
IDogYm9yZGVyTGVmdENvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29s
b3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3JkZXJSaWdo
dENvbG9yKCkgOiBib3JkZXJSaWdodENvbG9yKCk7Ci0gICAgICAgIGJvcmRlclN0eWxlID0gYm9y
ZGVyUmlnaHRTdHlsZSgpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRM
aW5rID8gdmlzaXRlZExpbmtCb3JkZXJSaWdodENvbG9yKCkgOiBib3JkZXJSaWdodENvbG9yKCk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcENvbG9yOgotICAgICAgICByZXN1bHQgPSB2
aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9yZGVyVG9wQ29sb3IoKSA6IGJvcmRlclRvcENvbG9y
KCk7Ci0gICAgICAgIGJvcmRlclN0eWxlID0gYm9yZGVyVG9wU3R5bGUoKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgotICAgICAgICByZXN1
bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9yZGVyQm90dG9tQ29sb3IoKSA6IGJvcmRl
ckJvdHRvbUNvbG9yKCk7Ci0gICAgICAgIGJvcmRlclN0eWxlID0gYm9yZGVyQm90dG9tU3R5bGUo
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUNhcmV0Q29sb3I6Ci0gICAg
ICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDYXJldENvbG9yKCkgOiBjYXJl
dENvbG9yKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVydHlDb2xvcjoKLSAg
ICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbG9yKCkgOiBjb2xvcigp
OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExp
bmtCb3JkZXJUb3BDb2xvcigpIDogYm9yZGVyVG9wQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3Bl
cnR5RmlsbDoKKyAgICAgICAgcmV0dXJuIGZpbGxQYWludENvbG9yKCk7CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eUZsb29kQ29sb3I6CisgICAgICAgIHJldHVybiBmbG9vZENvbG9yKCk7CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUxpZ2h0aW5nQ29sb3I6CisgICAgICAgIHJldHVybiBsaWdodGluZ0NvbG9y
KCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0g
dmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua091dGxpbmVDb2xvcigpIDogb3V0bGluZUNvbG9yKCk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlu
a091dGxpbmVDb2xvcigpIDogb3V0bGluZUNvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVN0
b3BDb2xvcjoKKyAgICAgICAgcmV0dXJuIHN0b3BDb2xvcigpOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlTdHJva2U6CisgICAgICAgIHJldHVybiBzdHJva2VQYWludENvbG9yKCk7CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVN0cm9rZUNvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNp
dGVkTGlua1N0cm9rZUNvbG9yKCkgOiBzdHJva2VDb2xvcigpOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJCbG9ja0VuZENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja1N0
YXJ0Q29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlcklubGluZUVuZENvbG9yOgorICAg
IGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbmxpbmVTdGFydENvbG9yOgorICAgICAgICByZXR1cm4g
dW5yZXNvbHZlZENvbG9yRm9yUHJvcGVydHkoQ1NTUHJvcGVydHk6OnJlc29sdmVEaXJlY3Rpb25B
d2FyZVByb3BlcnR5KGNvbG9yUHJvcGVydHksIGRpcmVjdGlvbigpLCB3cml0aW5nTW9kZSgpKSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtblJ1bGVDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0g
dmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbHVtblJ1bGVDb2xvcigpIDogY29sdW1uUnVsZUNv
bG9yKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlv
bkNvbG9yOgotICAgICAgICAvLyBUZXh0IGRlY29yYXRpb24gY29sb3IgZmFsbGJhY2sgaXMgaGFu
ZGxlZCBpbiBSZW5kZXJPYmplY3Q6OmRlY29yYXRpb25Db2xvci4KLSAgICAgICAgcmV0dXJuIHZp
c2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0RGVjb3JhdGlvbkNvbG9yKCkgOiB0ZXh0RGVjb3Jh
dGlvbkNvbG9yKCk7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ29s
dW1uUnVsZUNvbG9yKCkgOiBjb2x1bW5SdWxlQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VGV4dEVtcGhhc2lzQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8g
dmlzaXRlZExpbmtUZXh0RW1waGFzaXNDb2xvcigpIDogdGV4dEVtcGhhc2lzQ29sb3IoKTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rVGV4
dEVtcGhhc2lzQ29sb3IoKSA6IHRleHRFbXBoYXNpc0NvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFRleHRGaWxsQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8g
dmlzaXRlZExpbmtUZXh0RmlsbENvbG9yKCkgOiB0ZXh0RmlsbENvbG9yKCk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRGaWxsQ29s
b3IoKSA6IHRleHRGaWxsQ29sb3IoKTsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0
cm9rZUNvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rVGV4
dFN0cm9rZUNvbG9yKCkgOiB0ZXh0U3Ryb2tlQ29sb3IoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVN0cm9rZUNvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGlu
ayA/IHZpc2l0ZWRMaW5rU3Ryb2tlQ29sb3IoKSA6IHN0cm9rZUNvbG9yKCk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRTdHJva2VD
b2xvcigpIDogdGV4dFN0cm9rZUNvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNv
cmF0aW9uQ29sb3I6CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rVGV4
dERlY29yYXRpb25Db2xvcigpIDogdGV4dERlY29yYXRpb25Db2xvcigpOworICAgIGNhc2UgQ1NT
UHJvcGVydHlDYXJldENvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVk
TGlua0NhcmV0Q29sb3IoKSA6IGNhcmV0Q29sb3IoKTsKICAgICBkZWZhdWx0OgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYgKCFy
ZXN1bHQuaXNWYWxpZCgpKSB7CisgICAgcmV0dXJuIHsgfTsKK30KKworQ29sb3IgUmVuZGVyU3R5
bGU6OmNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKENTU1Byb3BlcnR5SUQgY29sb3JQcm9wZXJ0
eSwgYm9vbCB2aXNpdGVkTGluaykgY29uc3QKK3sKKyAgICBhdXRvIGNvbXB1dGVCb3JkZXJTdHls
ZSA9IFsmXSB7CisgICAgICAgIHN3aXRjaCAoY29sb3JQcm9wZXJ0eSkgeworICAgICAgICBjYXNl
IENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yOgorICAgICAgICAgICAgcmV0dXJuIGJvcmRlckxl
ZnRTdHlsZSgpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKKyAg
ICAgICAgICAgIHJldHVybiBib3JkZXJSaWdodFN0eWxlKCk7CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlCb3JkZXJUb3BDb2xvcjoKKyAgICAgICAgICAgIHJldHVybiBib3JkZXJUb3BTdHlsZSgp
OworICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tQ29sb3I6CisgICAgICAgICAg
ICByZXR1cm4gYm9yZGVyQm90dG9tU3R5bGUoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJldHVybiBCb3JkZXJTdHlsZTo6Tm9uZTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBh
dXRvIHJlc3VsdCA9IHVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5KGNvbG9yUHJvcGVydHksIHZp
c2l0ZWRMaW5rKTsKKworICAgIGlmIChpc0N1cnJlbnRDb2xvcihyZXN1bHQpKSB7CisgICAgICAg
IGF1dG8gYm9yZGVyU3R5bGUgPSBjb21wdXRlQm9yZGVyU3R5bGUoKTsKICAgICAgICAgaWYgKCF2
aXNpdGVkTGluayAmJiAoYm9yZGVyU3R5bGUgPT0gQm9yZGVyU3R5bGU6Okluc2V0IHx8IGJvcmRl
clN0eWxlID09IEJvcmRlclN0eWxlOjpPdXRzZXQgfHwgYm9yZGVyU3R5bGUgPT0gQm9yZGVyU3R5
bGU6OlJpZGdlIHx8IGJvcmRlclN0eWxlID09IEJvcmRlclN0eWxlOjpHcm9vdmUpKQotICAgICAg
ICAgICAgcmVzdWx0ID0gQ29sb3IoMjM4LCAyMzgsIDIzOCk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29sb3Io
KTsKKyAgICAgICAgICAgIHJldHVybiBDb2xvcigyMzgsIDIzOCwgMjM4KTsKKworICAgICAgICBy
ZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbG9yKCkgOiBjb2xvcigpOwogICAgIH0K
KwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIENvbG9yIFJlbmRlclN0eWxlOjpjb2xvclJlc29s
dmluZ0N1cnJlbnRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIGNvbnN0CiB7Ci0gICAgaWYgKGNv
bG9yID09IGN1cnJlbnRDb2xvcigpKQorICAgIGlmIChpc0N1cnJlbnRDb2xvcihjb2xvcikpCiAg
ICAgICAgIHJldHVybiB0aGlzLT5jb2xvcigpOwogCiAgICAgcmV0dXJuIGNvbG9yOwpAQCAtMjAy
MiwxMSArMjA0MSwxMSBAQCBDb2xvciBSZW5kZXJTdHlsZTo6Y29sb3JSZXNvbHZpbmdDdXJyZW50
Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSBjb25zdAogCiBDb2xvciBSZW5kZXJTdHlsZTo6dmlz
aXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5SUQgY29sb3JQcm9wZXJ0eSkgY29uc3QKIHsK
LSAgICBDb2xvciB1bnZpc2l0ZWRDb2xvciA9IGNvbG9ySW5jbHVkaW5nRmFsbGJhY2soY29sb3JQ
cm9wZXJ0eSwgZmFsc2UpOworICAgIENvbG9yIHVudmlzaXRlZENvbG9yID0gY29sb3JSZXNvbHZp
bmdDdXJyZW50Q29sb3IoY29sb3JQcm9wZXJ0eSwgZmFsc2UpOwogICAgIGlmIChpbnNpZGVMaW5r
KCkgIT0gSW5zaWRlTGluazo6SW5zaWRlVmlzaXRlZCkKICAgICAgICAgcmV0dXJuIHVudmlzaXRl
ZENvbG9yOwogCi0gICAgQ29sb3IgdmlzaXRlZENvbG9yID0gY29sb3JJbmNsdWRpbmdGYWxsYmFj
ayhjb2xvclByb3BlcnR5LCB0cnVlKTsKKyAgICBDb2xvciB2aXNpdGVkQ29sb3IgPSBjb2xvclJl
c29sdmluZ0N1cnJlbnRDb2xvcihjb2xvclByb3BlcnR5LCB0cnVlKTsKIAogICAgIC8vIFRleHQg
ZGVjb3JhdGlvbiBjb2xvciB2YWxpZGl0eSBpcyBwcmVzZXJ2ZWQgKGNoZWNrZWQgaW4gUmVuZGVy
T2JqZWN0OjpkZWNvcmF0aW9uQ29sb3IpLgogICAgIGlmIChjb2xvclByb3BlcnR5ID09IENTU1By
b3BlcnR5VGV4dERlY29yYXRpb25Db2xvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggOWQ3MzU5MzY2YmEuLmI1NGNiZjYxYzM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTQ0MCw3ICsx
NDQwLDkgQEAgcHVibGljOgogICAgIGJvb2wgbGFzdENoaWxkU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX25vbkluaGVyaXRlZEZsYWdzLmxhc3RDaGlsZFN0YXRlOyB9CiAgICAgdm9pZCBzZXRMYXN0
Q2hpbGRTdGF0ZSgpIHsgc2V0VW5pcXVlKCk7IG1fbm9uSW5oZXJpdGVkRmxhZ3MubGFzdENoaWxk
U3RhdGUgPSB0cnVlOyB9CiAKKyAgICBDb2xvciB1bnJlc29sdmVkQ29sb3JGb3JQcm9wZXJ0eShD
U1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmsgPSBmYWxzZSkgY29u
c3Q7CiAgICAgQ29sb3IgY29sb3JSZXNvbHZpbmdDdXJyZW50Q29sb3IoY29uc3QgQ29sb3ImKSBj
b25zdDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIHZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciB2aXNpdGVkRGVw
ZW5kZW50Q29sb3JXaXRoQ29sb3JGaWx0ZXIoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKQEAgLTE3
MzQsNiArMTczNiw4IEBAIHB1YmxpYzoKIAogICAgIC8vIEluIFJlbmRlclN0eWxlIGludmFsaWQg
Y29sb3IgdmFsdWUgaXMgdXNlZCB0byBzaWduaWZ5ICdjdXJyZW50Y29sb3InIHdoaWNoIHJlc29s
dmVzIHRvIGNvbG9yKCkuCiAgICAgc3RhdGljIENvbG9yIGN1cnJlbnRDb2xvcigpIHsgcmV0dXJu
IHsgfTsgfQorICAgIHN0YXRpYyBib29sIGlzQ3VycmVudENvbG9yKGNvbnN0IENvbG9yJiBjb2xv
cikgeyByZXR1cm4gIWNvbG9yLmlzVmFsaWQoKTsgfQorCiAgICAgY29uc3QgQ29sb3ImIGJvcmRl
ckxlZnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3JkZXIubGVmdCgp
LmNvbG9yKCk7IH0KICAgICBjb25zdCBDb2xvciYgYm9yZGVyUmlnaHRDb2xvcigpIGNvbnN0IHsg
cmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3JkZXIucmlnaHQoKS5jb2xvcigpOyB9CiAgICAgY29u
c3QgQ29sb3ImIGJvcmRlclRvcENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zdXJyb3VuZERhdGEt
PmJvcmRlci50b3AoKS5jb2xvcigpOyB9CkBAIC0xODY2LDcgKzE4NzAsNyBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyBib29sIGlzRGlzcGxheUdyaWRCb3goRGlzcGxheVR5cGUpOwogICAgIHN0YXRp
YyBib29sIGlzRGlzcGxheUZsZXhpYmxlT3JHcmlkQm94KERpc3BsYXlUeXBlKTsKIAotICAgIENv
bG9yIGNvbG9ySW5jbHVkaW5nRmFsbGJhY2soQ1NTUHJvcGVydHlJRCBjb2xvclByb3BlcnR5LCBi
b29sIHZpc2l0ZWRMaW5rKSBjb25zdDsKKyAgICBDb2xvciBjb2xvclJlc29sdmluZ0N1cnJlbnRD
b2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJvb2wgdmlzaXRlZExpbmspIGNvbnN0
OwogCiAgICAgYm9vbCBjaGFuZ2VBZmZlY3RzVmlzdWFsT3ZlcmZsb3coY29uc3QgUmVuZGVyU3R5
bGUmKSBjb25zdDsKICAgICBib29sIGNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFJlbmRlclN0
eWxlJiwgT3B0aW9uU2V0PFN0eWxlRGlmZmVyZW5jZUNvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eT4m
IGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcykgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAKaW5kZXggMzRkNDFhNTI0ZTIuLmUxNjk1ODE2
YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCkBAIC0z
MTEsOCArMzExLDYgQEAgQ29sb3IgQnVpbGRlclN0YXRlOjpjb2xvckZyb21QcmltaXRpdmVWYWx1
ZShjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgdmFsdWUsIGJvb2wKICAgICBjYXNlIENTU1ZhbHVl
V2Via2l0Rm9jdXNSaW5nQ29sb3I6CiAgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c2luZ2xl
dG9uKCkuZm9jdXNSaW5nQ29sb3IoZG9jdW1lbnQoKS5zdHlsZUNvbG9yT3B0aW9ucygmbV9zdHls
ZSkpOwogICAgIGNhc2UgQ1NTVmFsdWVDdXJyZW50Y29sb3I6Ci0gICAgICAgIC8vIENvbG9yIGlz
IGFuIGluaGVyaXRlZCBwcm9wZXJ0eSBzbyBkZXBlbmRpbmcgb24gaXQgZWZmZWN0aXZlbHkgbWFr
ZXMgdGhlIHByb3BlcnR5IGluaGVyaXRlZC4KLSAgICAgICAgbV9zdHlsZS5zZXRIYXNFeHBsaWNp
dGx5SW5oZXJpdGVkUHJvcGVydGllcygpOwogICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmN1
cnJlbnRDb2xvcigpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBTdHlsZUNvbG9yOjpj
b2xvckZyb21LZXl3b3JkKGlkZW50aWZpZXIsIGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlvbnMo
Jm1fc3R5bGUpKTsK
</data>
<flag name="review"
          id="410998"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395586</attachid>
            <date>2020-04-06 10:58:46 -0700</date>
            <delta_ts>2020-04-06 11:54:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>currentcolor-no-marking-6.patch</filename>
            <type>text/plain</type>
            <size>26740</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMjRiMDE3MTUyNC4uOTZkNTA4NGZjZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wNC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
J2N1cnJlbnRjb2xvcicgZG9lc24ndCBuZWVkIHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9w
ZXJ0aWVzIG1hcmtpbmcgYW55bW9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwMDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5p
dGlhbC1zdHlsZS11cGRhdGUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDUgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIE9jdGFsIGVzY2FwZXMgc2hv
dWxkIGJlIG1heCAzIGRpZ2l0cyBhbmQgc3ludGF4IGVycm9ycyBpbiBVbmljb2RlIHBhdHRlcm5z
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1z
dHlsZS11cGRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3VycmVudENv
bG9yLWluaXRpYWwtc3R5bGUtdXBkYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMmZkZGY5Yjg4YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKK1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0IHVz
ZSB0aGUgQ1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJlIHVw
ZGF0ZWQgY29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitJbml0aWFsIHN0YXRlLgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0Iilb
MF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVy
TGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJn
Yig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0
LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsz
XSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCisKK0xldCdzIG92ZXJyaWRlIHRo
ZSBzdHlsZSBvZiB0aGUgd3JhcHBlciB0aHJvdWdoIHRoZWlyIHN0eWxlIG9iamVjdC4KK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRh
cmdldCIpWzBdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0p
LmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRl
ckNvbG9yIGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENvbG9y
IGlzICJyZ2IoNywgOCwgOSkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJnYig3
LCA4LCA5KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig3LCA4LCA5
KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVz
dC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFy
Z2V0IilbM10pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDcsIDgsIDkpIgorCitMZXQncyByZW1v
dmUgdGhlIHN0eWxlIGF0dHJpYnV0ZSBvbiB0aGUgd3JhcHBlci4KK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBdKS5i
b3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckxlZnRD
b2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckNvbG9yIGlzICJy
Z2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsxXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwg
NSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LnRlc3QtY2FzZSB0YXJnZXQiKVsyXSkuYm9yZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNl
IHRhcmdldCIpWzJdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdl
dCIpWzNdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10pLmJv
cmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorCitMZXQncyByZW1vdmUgY2xhc3Mgb24g
dGhlIHdyYXBwZXJzLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMF0pLmJvcmRlckNvbG9yIGlzICJyZ2IoMSwgMiwg
MykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRl
c3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoMSwgMiwgMykiCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2Fz
ZSB0YXJnZXQiKVsxXSkuYm9yZGVyQ29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIp
WzFdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJnYigxLCAyLCAzKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzJdKS5i
b3JkZXJDb2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbMl0pLmJvcmRlckxlZnRD
b2xvciBpcyAicmdiKDEsIDIsIDMpIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbM10pLmJvcmRlckNvbG9yIGlzICJy
Z2IoMSwgMiwgMykiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoMSwg
MiwgMykiCisKK1RoZW4gYWRkIGl0IGJhY2suCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVswXSkuYm9yZGVyQ29sb3Ig
aXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzBdKS5ib3JkZXJMZWZ0Q29sb3IgaXMgInJn
Yig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzFdKS5ib3JkZXJDb2xvciBpcyAicmdiKDQsIDUsIDYp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0
LWNhc2UgdGFyZ2V0IilbMV0pLmJvcmRlckxlZnRDb2xvciBpcyAicmdiKDQsIDUsIDYpIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2Ug
dGFyZ2V0IilbMl0pLmJvcmRlckNvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVsy
XSkuYm9yZGVyTGVmdENvbG9yIGlzICJyZ2IoNCwgNSwgNikiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRlc3QtY2FzZSB0YXJnZXQiKVszXSkuYm9y
ZGVyQ29sb3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIudGVzdC1jYXNlIHRhcmdldCIpWzNdKS5ib3JkZXJMZWZ0Q29s
b3IgaXMgInJnYig0LCA1LCA2KSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jdXJyZW50
Q29sb3ItaW5pdGlhbC1zdHlsZS11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2N1
cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5lNzk2NjRkMGJiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2N1cnJlbnRDb2xvci1pbml0aWFsLXN0eWxlLXVwZGF0ZS5odG1sCkBA
IC0wLDAgKzEsODYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
ICAgIC50ZXN0LWNhc2UgeworICAgICAgICBjb2xvcjogcmdiKDEsIDIsIDMpOworICAgIH0KKyAg
ICAud3JhcHBlciB7CisgICAgICAgIGNvbG9yOiByZ2IoNCwgNSwgNik7CisgICAgfQorICAgIHRh
cmdldCB7CisgICAgICAgIC8vIGJvcmRlci1jb2xvciBoYXMgaW5pdGlhbCB2YWx1ZSAnY3VycmVu
dGNvbG9yJy4KKyAgICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICBmdW5jdGlvbiB0ZXN0Q29sb3IoZXhwZWN0ZWRDb2xvcikgeworICAgICAgICB2
YXIgYWxsVGFyZ2V0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFy
Z2V0Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVGFyZ2V0cy5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UgdGFyZ2V0IilbJyArIGkgKyAn
XSkuYm9yZGVyQ29sb3InLCBleHBlY3RlZENvbG9yKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
dGVzdC1jYXNlIHRhcmdldCIpWycgKyBpICsgJ10pLmJvcmRlckxlZnRDb2xvcicsIGV4cGVjdGVk
Q29sb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0aGUgcHJvcGVydGllcyB0aGF0IHVzZSB0aGUg
Q1NTIFZhbHVlICJjdXJyZW50Y29sb3IiIHRvIGRlZmluZSB0aGUgY29sb3IgYXJlIHVwZGF0ZWQg
Y29ycmVjdGx5IHdoZW4gdGhlIGluaGVyaXRlZCBjb2xvciBjaGFuZ2VzLicpOworCisgICAgICAg
IGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIkluaXRpYWwgc3RhdGUuIik7CisgICAgICAgIHRl
c3RDb2xvcigicmdiKDQsIDUsIDYpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBk
ZWJ1ZygiTGV0J3Mgb3ZlcnJpZGUgdGhlIHN0eWxlIG9mIHRoZSB3cmFwcGVyIHRocm91Z2ggdGhl
aXIgc3R5bGUgb2JqZWN0LiIpOworICAgICAgICB2YXIgYWxsV3JhcHBlcnMgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIud3JhcHBlciIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGFsbFdyYXBwZXJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBhbGxXcmFwcGVyc1tpXS5z
dHlsZS5jb2xvciA9ICJyZ2IoNywgOCwgOSkiOworICAgICAgICB9CisgICAgICAgIHRlc3RDb2xv
cigicmdiKDcsIDgsIDkpIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1Zygi
TGV0J3MgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgb24gdGhlIHdyYXBwZXIuIik7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIGFsbFdyYXBwZXJzW2ldLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKTsKKyAgICAgICAg
fQorICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGRlYnVnKCIi
KTsKKyAgICAgICAgZGVidWcoIkxldCdzIHJlbW92ZSBjbGFzcyBvbiB0aGUgd3JhcHBlcnMuIik7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5yZW1vdmUoIndyYXBwZXIiKTsK
KyAgICAgICAgfQorICAgICAgICB0ZXN0Q29sb3IoInJnYigxLCAyLCAzKSIpOworCisgICAgICAg
IGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWcoIlRoZW4gYWRkIGl0IGJhY2suIik7CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgYWxsV3JhcHBlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
ICAgIGFsbFdyYXBwZXJzW2ldLmNsYXNzTGlzdC5hZGQoIndyYXBwZXIiKTsKKyAgICAgICAgfQor
ICAgICAgICB0ZXN0Q29sb3IoInJnYig0LCA1LCA2KSIpOworCisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJ1blRlc3Qp
OworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0LWNhc2Ui
PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+PC90
YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAg
ICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InRlc3QtY2FzZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAgIDx0YXJnZXQ+PC90YXJnZXQ+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KKyAgICAgICAgICAg
IDx0YXJnZXQ+PC90YXJnZXQ+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU4ODI5MmE5MmU4Li41ODMxY2UwNjIwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTA0LTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KKworICAgICAgICAnY3VycmVudGNvbG9yJyBkb2Vzbid0IG5lZWQgc2V0SGFzRXhw
bGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMgbWFya2luZyBhbnltb3JlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAwMTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1vdmluZyB0aGlzIG1hcmtpbmcgcmV2
ZWFscyBwcm9ibGVtcyBpbiBzdHlsZSB1cGRhdGUgYXZvaWRhbmNlIGNvZGUgaW4gQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uCisgICAgICAgIHRoYXQgYWxzbyBuZWVkIHRvIGJlIGFkZHJlc3Nl
ZC4gVGhlIHByb2JsZW1zIGFyZSBub3Qgc3BlY2lmaWMgdG8gZXhsaWNpdCAnY3VycmVudGNvbG9y
JywgdGhleSBhbHNvIHJlcHJvZHVjZQorICAgICAgICB3aXRoIHRoZSBpbml0aWFsIHZhbHVlICh0
aHVzIHRoZSBuZXcgdGVzdCkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvY3VycmVudENvbG9y
LWluaXRpYWwtc3R5bGUtdXBkYXRlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9uSW5oZXJpdGVkQ29sb3JQ
cm9wZXJ0eUhhc1ZhbHVlQ3VycmVudENvbG9yKToKKworICAgICAgICBBZGQgYSBoZWxwZXIuCisK
KyAgICAgICAgKFdlYkNvcmU6Omhhc1ZhbGlkU3R5bGVGb3JQcm9wZXJ0eSk6CisKKyAgICAgICAg
VHJlYXQgYSBub24taW5oZXJpdGVkIGNvbG9yIHByb3BlcnR5IGFzIGluaGVyaXRlZCBpZiBpdCBp
cyAnY3VycmVudGNvbG9yJy4KKworICAgICAgICAoV2ViQ29yZTo6dXBkYXRlU3R5bGVJZk5lZWRl
ZEZvclByb3BlcnR5KToKKworICAgICAgICBFeHBhbmQgc2hvcnRoYW5kcyBzbyBwcm9wZXJ0aWVz
IGxpa2UgYm9yZGVyLWNvbG9yIHRlc3QgY29ycmVjdGx5LgorCisgICAgICAgICogY3NzL0NTU1By
b3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Ojppc0NvbG9yUHJvcGVy
dHkpOgorCisgICAgICAgIE1vdmUgaGVyZSBmcm9tIENTU1BhcnNlckZhc3RQYXRocy4KKworICAg
ICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2Vy
RmFzdFBhdGhzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlckZhc3RQYXRoczo6bWF5
YmVQYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29sb3JQcm9wZXJ0eUlEKTogRGVs
ZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5IGNvbnN0
KToKKworICAgICAgICBGYWN0b3IgaW50byBhIGhlbHBlci4KKyAgICAgICAgSGFuZGxlIGFsbCBj
b2xvciB2YWx1ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb2xvclJlc29s
dmluZ0N1cnJlbnRDb2xvciBjb25zdCk6CisKKyAgICAgICAgUmVuYW1lZCBmb3IgY2xhcml0eSBh
bmQgc29tZSBjbGVhbnVwcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnZpc2l0
ZWREZXBlbmRlbnRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6
Y29sb3JJbmNsdWRpbmdGYWxsYmFjayBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6
aXNDdXJyZW50Q29sb3IpOgorICAgICAgICAqIHN0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyU3RhdGU6OmNvbG9yRnJvbVByaW1pdGl2
ZVZhbHVlIGNvbnN0KToKKworICAgICAgICBSZW1vdmUgc2V0SGFzRXhwbGljaXRseUluaGVyaXRl
ZFByb3BlcnRpZXMgbWFya2luZy4KKwogMjAyMC0wNC0wNCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBMb2NrSGlzdG9yeSBwYXJhbWV0ZXIgZnJvbSBsb2Fk
V2l0aE5hdmlnYXRpb25BY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggOGFkOTliZGVjMmUuLmNlNzgzNjc0NzFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcApAQCAtMjExOSw2ICsyMTE5LDE3IEBAIHN0YXRpYyBib29sIGlzSW1wbGljaXRseUluaGVy
aXRlZEdyaWRPckZsZXhQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgfQog
fQogCitzdGF0aWMgYm9vbCBub25Jbmhlcml0ZWRDb2xvclByb3BlcnR5SGFzVmFsdWVDdXJyZW50
Q29sb3IoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUp
Cit7CisgICAgaWYgKENTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KHByb3BlcnR5SUQp
IHx8ICFDU1NQcm9wZXJ0eTo6aXNDb2xvclByb3BlcnR5KHByb3BlcnR5SUQpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIHJldHVybiBSZW5kZXJTdHlsZTo6aXNDdXJyZW50Q29sb3Ioc3R5bGUtPnVucmVzb2x2ZWRD
b2xvckZvclByb3BlcnR5KHByb3BlcnR5SUQpKTsKK30KKwogLy8gSW4gQ1NTIDIuMSB0aGUgcmV0
dXJuZWQgb2JqZWN0IHNob3VsZCBhY3R1YWxseSBjb250YWluIHRoZSAidXNlZCB2YWx1ZXMiCiAv
LyByYXRoZXIgdGhlbiB0aGUgImNvbXB1dGVkIHZhbHVlcyIgKGRlc3BpdGUgdGhlIG5hbWUgc2F5
aW5nIG90aGVyd2lzZSkuCiAvLwpAQCAtMjE1NSw2ICsyMTY2LDEwIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBoYXNWYWxpZFN0eWxlRm9yUHJvcGVydHkoRWxlbWVudCYgZWxlbWVudCwgQ1NTUHJvcGVy
dHlJRCBwcm9wCiAKICAgICAgICAgaWYgKG1heWJlRXhwbGljaXRseUluaGVyaXRlZCkgewogICAg
ICAgICAgICAgYXV0byogc3R5bGUgPSBjdXJyZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKKyAg
ICAgICAgICAgIC8vIFdoaWxlIG1vc3QgY29sb3IgcHJvcGVydGllcyBhcmUgbm90IGluaGVyaXRl
ZCwgdGhlIHZhbHVlICdjdXJyZW50Y29sb3InIHJlc29sdmVzIHRvIHRoZSB2YWx1ZSBvZiB0aGUg
aW5oZXJpdGVkICdjb2xvcicgcHJvcGVydHkuCisgICAgICAgICAgICBpZiAobm9uSW5oZXJpdGVk
Q29sb3JQcm9wZXJ0eUhhc1ZhbHVlQ3VycmVudENvbG9yKHByb3BlcnR5SUQsIHN0eWxlKSkKKyAg
ICAgICAgICAgICAgICBpc0luaGVyaXRlZCA9IHRydWU7CisKICAgICAgICAgICAgIG1heWJlRXhw
bGljaXRseUluaGVyaXRlZCA9ICFzdHlsZSB8fCBzdHlsZS0+aGFzRXhwbGljaXRseUluaGVyaXRl
ZFByb3BlcnRpZXMoKTsKICAgICAgICAgfQogCkBAIC0yMTc2LDcgKzIxOTEsMTkgQEAgc3RhdGlj
IGJvb2wgdXBkYXRlU3R5bGVJZk5lZWRlZEZvclByb3BlcnR5KEVsZW1lbnQmIGVsZW1lbnQsIENT
U1Byb3BlcnR5SUQgcHJvcGUKIAogICAgIGRvY3VtZW50LnN0eWxlU2NvcGUoKS5mbHVzaFBlbmRp
bmdVcGRhdGUoKTsKIAotICAgIGlmIChoYXNWYWxpZFN0eWxlRm9yUHJvcGVydHkoZWxlbWVudCwg
cHJvcGVydHlJRCkpCisgICAgYXV0byBoYXNWYWxpZFN0eWxlID0gWyZdIHsKKyAgICAgICAgYXV0
byBzaG9ydGhhbmQgPSBzaG9ydGhhbmRGb3JQcm9wZXJ0eShwcm9wZXJ0eUlEKTsKKyAgICAgICAg
aWYgKHNob3J0aGFuZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBzaG9ydGhhbmQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghaGFz
VmFsaWRTdHlsZUZvclByb3BlcnR5KGVsZW1lbnQsIHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbaV0p
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFzVmFsaWRT
dHlsZUZvclByb3BlcnR5KGVsZW1lbnQsIHByb3BlcnR5SUQpOworICAgIH0oKTsKKworICAgIGlm
IChoYXNWYWxpZFN0eWxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBkb2N1bWVudC51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAppbmRleCBm
Njk5YTExZDliZi4uNjUyYjgwYTg5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcApA
QCAtMjEyLDQgKzIxMiwzNiBAQCBib29sIENTU1Byb3BlcnR5Ojppc0RpcmVjdGlvbkF3YXJlUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIH0KIH0KIAorYm9vbCBDU1NQcm9w
ZXJ0eTo6aXNDb2xvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKK3sKKyAgICBz
d2l0Y2ggKHByb3BlcnR5SWQpIHsKKyAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVy
Qm90dG9tQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKKyAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9y
ZGVyVG9wQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eUZsb29kQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUxpZ2h0aW5nQ29sb3I6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5U3RvcENv
bG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2U6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVN0
cm9rZUNvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja0VuZENvbG9yOgorICAg
IGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja1N0YXJ0Q29sb3I6CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eUJvcmRlcklubGluZUVuZENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbmxp
bmVTdGFydENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlQ29sb3I6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRUZXh0RmlsbENvbG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0
U3Ryb2tlQ29sb3I6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uQ29sb3I6Cisg
ICAgY2FzZSBDU1NQcm9wZXJ0eUNhcmV0Q29sb3I6CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmgKaW5kZXggMTI1ZjY0MWIyYTcuLjkx
ZWUyM2E1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuaApAQCAtODEsNiArODEsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IGFsaWFzZXNGb3JQcm9wZXJ0eShDU1NQ
cm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgYm9vbCBpc0RpcmVjdGlvbkF3YXJlUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCk7CiAgICAgc3RhdGljIGJvb2wgaXNEZXNjcmlwdG9yT25seShDU1NQcm9wZXJ0
eUlEKTsKKyAgICBzdGF0aWMgYm9vbCBpc0NvbG9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCk7CiAK
ICAgICBjb25zdCBTdHlsZVByb3BlcnR5TWV0YWRhdGEmIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1
cm4gbV9tZXRhZGF0YTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAKaW5kZXggYmI1ZDMwNjk0NTEuLjE3NTZmOTJmYmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCkBAIC0x
NzksMzcgKzE3OSw2IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlU2ltcGxlTGVuZ3Ro
VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBjb25zdCBTCiAgICAgcmV0dXJuIENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUobnVtYmVyLCB1bml0KTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIGlzQ29sb3JQcm9wZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKLXsKLSAgICBz
d2l0Y2ggKHByb3BlcnR5SWQpIHsKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6Ci0gICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVy
Qm90dG9tQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKLSAgICBj
YXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5Qm9y
ZGVyVG9wQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6Ci0gICAgY2FzZSBDU1NQcm9w
ZXJ0eUZsb29kQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUxpZ2h0aW5nQ29sb3I6Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVDb2xvcjoKLSAgICBjYXNlIENTU1Byb3BlcnR5U3RvcENv
bG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVN0
cm9rZUNvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja0VuZENvbG9yOgotICAg
IGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja1N0YXJ0Q29sb3I6Ci0gICAgY2FzZSBDU1NQcm9w
ZXJ0eUJvcmRlcklubGluZUVuZENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbmxp
bmVTdGFydENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlQ29sb3I6Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRUZXh0RmlsbENvbG9yOgotICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0
U3Ryb2tlQ29sb3I6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uQ29sb3I6Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci19Ci0KIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdoaWNoIGZv
cm0gYSB2YWxpZCBkb3VibGUKIC8vIGFuZCBhcmUgdGVybWluYXRlZCBieSB0aGUgZ2l2ZW4gdGVy
bWluYXRvciBjaGFyYWN0ZXIKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgpAQCAt
MTMxMSw3ICsxMjgwLDcgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXJGYXN0UGF0aHM6Om1h
eWJlUGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGMKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICBpZiAocHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eUNhcmV0Q29sb3IpCiAg
ICAgICAgIHJldHVybiBwYXJzZUNhcmV0Q29sb3Ioc3RyaW5nLCBjb250ZXh0Lm1vZGUpOwotICAg
IGlmIChpc0NvbG9yUHJvcGVydHlJRChwcm9wZXJ0eUlEKSkKKyAgICBpZiAoQ1NTUHJvcGVydHk6
OmlzQ29sb3JQcm9wZXJ0eShwcm9wZXJ0eUlEKSkKICAgICAgICAgcmV0dXJuIHBhcnNlQ29sb3Io
c3RyaW5nLCBjb250ZXh0Lm1vZGUsIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkpOwogICAgIGlm
IChhdXRvIHJlc3VsdCA9IHBhcnNlS2V5d29yZFZhbHVlKHByb3BlcnR5SUQsIHN0cmluZywgY29u
dGV4dCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBmZDc3MGUzYzNiYy4uMGRhZDYzYmExMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApA
QCAtMTk0Nyw3NCArMTk0Nyw5MyBAQCB2b2lkIFJlbmRlclN0eWxlOjpnZXRTaGFkb3dWZXJ0aWNh
bEV4dGVudChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIExheW91dFVuaXQgJgogICAgIH0KIH0K
IAotQ29sb3IgUmVuZGVyU3R5bGU6OmNvbG9ySW5jbHVkaW5nRmFsbGJhY2soQ1NTUHJvcGVydHlJ
RCBjb2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rKSBjb25zdAorQ29sb3IgUmVuZGVyU3R5
bGU6OnVucmVzb2x2ZWRDb2xvckZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgY29sb3JQcm9wZXJ0
eSwgYm9vbCB2aXNpdGVkTGluaykgY29uc3QKIHsKLSAgICBDb2xvciByZXN1bHQ7Ci0gICAgQm9y
ZGVyU3R5bGUgYm9yZGVyU3R5bGUgPSBCb3JkZXJTdHlsZTo6Tm9uZTsKICAgICBzd2l0Y2ggKGNv
bG9yUHJvcGVydHkpIHsKKyAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6CisgICAgICAgIHJldHVy
biB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ29sb3IoKSA6IGNvbG9yKCk7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsg
PyB2aXNpdGVkTGlua0JhY2tncm91bmRDb2xvcigpIDogYmFja2dyb3VuZENvbG9yKCk7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0JhY2tn
cm91bmRDb2xvcigpIDogYmFja2dyb3VuZENvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJv
cmRlckJvdHRvbUNvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlu
a0JvcmRlckJvdHRvbUNvbG9yKCkgOiBib3JkZXJCb3R0b21Db2xvcigpOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlCb3JkZXJMZWZ0Q29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8g
dmlzaXRlZExpbmtCb3JkZXJMZWZ0Q29sb3IoKSA6IGJvcmRlckxlZnRDb2xvcigpOwotICAgICAg
ICBib3JkZXJTdHlsZSA9IGJvcmRlckxlZnRTdHlsZSgpOwotICAgICAgICBicmVhazsKKyAgICAg
ICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtCb3JkZXJMZWZ0Q29sb3IoKSA6IGJv
cmRlckxlZnRDb2xvcigpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9yOgot
ICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9yZGVyUmlnaHRDb2xv
cigpIDogYm9yZGVyUmlnaHRDb2xvcigpOwotICAgICAgICBib3JkZXJTdHlsZSA9IGJvcmRlclJp
Z2h0U3R5bGUoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/
IHZpc2l0ZWRMaW5rQm9yZGVyUmlnaHRDb2xvcigpIDogYm9yZGVyUmlnaHRDb2xvcigpOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJUb3BDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRl
ZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlclRvcENvbG9yKCkgOiBib3JkZXJUb3BDb2xvcigpOwot
ICAgICAgICBib3JkZXJTdHlsZSA9IGJvcmRlclRvcFN0eWxlKCk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21Db2xvcjoKLSAgICAgICAgcmVzdWx0ID0g
dmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0JvcmRlckJvdHRvbUNvbG9yKCkgOiBib3JkZXJCb3R0
b21Db2xvcigpOwotICAgICAgICBib3JkZXJTdHlsZSA9IGJvcmRlckJvdHRvbVN0eWxlKCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTUHJvcGVydHlDYXJldENvbG9yOgotICAgICAgICBy
ZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ2FyZXRDb2xvcigpIDogY2FyZXRDb2xv
cigpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5Q29sb3I6Ci0gICAgICAg
IHJlc3VsdCA9IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29sb3IoKTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQm9y
ZGVyVG9wQ29sb3IoKSA6IGJvcmRlclRvcENvbG9yKCk7CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZp
bGw6CisgICAgICAgIHJldHVybiBmaWxsUGFpbnRDb2xvcigpOworICAgIGNhc2UgQ1NTUHJvcGVy
dHlGbG9vZENvbG9yOgorICAgICAgICByZXR1cm4gZmxvb2RDb2xvcigpOworICAgIGNhc2UgQ1NT
UHJvcGVydHlMaWdodGluZ0NvbG9yOgorICAgICAgICByZXR1cm4gbGlnaHRpbmdDb2xvcigpOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlPdXRsaW5lQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0
ZWRMaW5rID8gdmlzaXRlZExpbmtPdXRsaW5lQ29sb3IoKSA6IG91dGxpbmVDb2xvcigpOwotICAg
ICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtPdXRs
aW5lQ29sb3IoKSA6IG91dGxpbmVDb2xvcigpOworICAgIGNhc2UgQ1NTUHJvcGVydHlTdG9wQ29s
b3I6CisgICAgICAgIHJldHVybiBzdG9wQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5U3Ry
b2tlOgorICAgICAgICByZXR1cm4gc3Ryb2tlUGFpbnRDb2xvcigpOworICAgIGNhc2UgQ1NTUHJv
cGVydHlTdHJva2VDb2xvcjoKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExp
bmtTdHJva2VDb2xvcigpIDogc3Ryb2tlQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9y
ZGVyQmxvY2tFbmRDb2xvcjoKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQmxvY2tTdGFydENv
bG9yOgorICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJJbmxpbmVFbmRDb2xvcjoKKyAgICBjYXNl
IENTU1Byb3BlcnR5Qm9yZGVySW5saW5lU3RhcnRDb2xvcjoKKyAgICAgICAgcmV0dXJuIHVucmVz
b2x2ZWRDb2xvckZvclByb3BlcnR5KENTU1Byb3BlcnR5OjpyZXNvbHZlRGlyZWN0aW9uQXdhcmVQ
cm9wZXJ0eShjb2xvclByb3BlcnR5LCBkaXJlY3Rpb24oKSwgd3JpdGluZ01vZGUoKSkpOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlQ29sb3I6Ci0gICAgICAgIHJlc3VsdCA9IHZpc2l0
ZWRMaW5rID8gdmlzaXRlZExpbmtDb2x1bW5SdWxlQ29sb3IoKSA6IGNvbHVtblJ1bGVDb2xvcigp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb25Db2xv
cjoKLSAgICAgICAgLy8gVGV4dCBkZWNvcmF0aW9uIGNvbG9yIGZhbGxiYWNrIGlzIGhhbmRsZWQg
aW4gUmVuZGVyT2JqZWN0OjpkZWNvcmF0aW9uQ29sb3IuCi0gICAgICAgIHJldHVybiB2aXNpdGVk
TGluayA/IHZpc2l0ZWRMaW5rVGV4dERlY29yYXRpb25Db2xvcigpIDogdGV4dERlY29yYXRpb25D
b2xvcigpOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua0NvbHVtblJ1
bGVDb2xvcigpIDogY29sdW1uUnVsZUNvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dFRleHRFbXBoYXNpc0NvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0
ZWRMaW5rVGV4dEVtcGhhc2lzQ29sb3IoKSA6IHRleHRFbXBoYXNpc0NvbG9yKCk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRFbXBo
YXNpc0NvbG9yKCkgOiB0ZXh0RW1waGFzaXNDb2xvcigpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUZXh0RmlsbENvbG9yOgotICAgICAgICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0
ZWRMaW5rVGV4dEZpbGxDb2xvcigpIDogdGV4dEZpbGxDb2xvcigpOwotICAgICAgICBicmVhazsK
KyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0RmlsbENvbG9yKCkg
OiB0ZXh0RmlsbENvbG9yKCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VD
b2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHRTdHJv
a2VDb2xvcigpIDogdGV4dFN0cm9rZUNvbG9yKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
Q1NTUHJvcGVydHlTdHJva2VDb2xvcjoKLSAgICAgICAgcmVzdWx0ID0gdmlzaXRlZExpbmsgPyB2
aXNpdGVkTGlua1N0cm9rZUNvbG9yKCkgOiBzdHJva2VDb2xvcigpOwotICAgICAgICBicmVhazsK
KyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtUZXh0U3Ryb2tlQ29sb3Io
KSA6IHRleHRTdHJva2VDb2xvcigpOworICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlv
bkNvbG9yOgorICAgICAgICByZXR1cm4gdmlzaXRlZExpbmsgPyB2aXNpdGVkTGlua1RleHREZWNv
cmF0aW9uQ29sb3IoKSA6IHRleHREZWNvcmF0aW9uQ29sb3IoKTsKKyAgICBjYXNlIENTU1Byb3Bl
cnR5Q2FyZXRDb2xvcjoKKyAgICAgICAgcmV0dXJuIHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtD
YXJldENvbG9yKCkgOiBjYXJldENvbG9yKCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmICghcmVzdWx0
LmlzVmFsaWQoKSkgeworICAgIHJldHVybiB7IH07Cit9CisKK0NvbG9yIFJlbmRlclN0eWxlOjpj
b2xvclJlc29sdmluZ0N1cnJlbnRDb2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHksIGJv
b2wgdmlzaXRlZExpbmspIGNvbnN0Cit7CisgICAgYXV0byBjb21wdXRlQm9yZGVyU3R5bGUgPSBb
Jl0geworICAgICAgICBzd2l0Y2ggKGNvbG9yUHJvcGVydHkpIHsKKyAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvcmRlckxlZnRDb2xvcjoKKyAgICAgICAgICAgIHJldHVybiBib3JkZXJMZWZ0U3R5
bGUoKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3I6CisgICAgICAg
ICAgICByZXR1cm4gYm9yZGVyUmlnaHRTdHlsZSgpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5
Qm9yZGVyVG9wQ29sb3I6CisgICAgICAgICAgICByZXR1cm4gYm9yZGVyVG9wU3R5bGUoKTsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNvbG9yOgorICAgICAgICAgICAgcmV0
dXJuIGJvcmRlckJvdHRvbVN0eWxlKCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBy
ZXR1cm4gQm9yZGVyU3R5bGU6Ok5vbmU7CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXV0byBy
ZXN1bHQgPSB1bnJlc29sdmVkQ29sb3JGb3JQcm9wZXJ0eShjb2xvclByb3BlcnR5LCB2aXNpdGVk
TGluayk7CisKKyAgICBpZiAoaXNDdXJyZW50Q29sb3IocmVzdWx0KSkgeworICAgICAgICBhdXRv
IGJvcmRlclN0eWxlID0gY29tcHV0ZUJvcmRlclN0eWxlKCk7CiAgICAgICAgIGlmICghdmlzaXRl
ZExpbmsgJiYgKGJvcmRlclN0eWxlID09IEJvcmRlclN0eWxlOjpJbnNldCB8fCBib3JkZXJTdHls
ZSA9PSBCb3JkZXJTdHlsZTo6T3V0c2V0IHx8IGJvcmRlclN0eWxlID09IEJvcmRlclN0eWxlOjpS
aWRnZSB8fCBib3JkZXJTdHlsZSA9PSBCb3JkZXJTdHlsZTo6R3Jvb3ZlKSkKLSAgICAgICAgICAg
IHJlc3VsdCA9IENvbG9yKDIzOCwgMjM4LCAyMzgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICByZXN1bHQgPSB2aXNpdGVkTGluayA/IHZpc2l0ZWRMaW5rQ29sb3IoKSA6IGNvbG9yKCk7Cisg
ICAgICAgICAgICByZXR1cm4gQ29sb3IoMjM4LCAyMzgsIDIzOCk7CisKKyAgICAgICAgcmV0dXJu
IHZpc2l0ZWRMaW5rID8gdmlzaXRlZExpbmtDb2xvcigpIDogY29sb3IoKTsKICAgICB9CisKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCiBDb2xvciBSZW5kZXJTdHlsZTo6Y29sb3JSZXNvbHZpbmdD
dXJyZW50Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSBjb25zdAogewotICAgIGlmIChjb2xvciA9
PSBjdXJyZW50Q29sb3IoKSkKKyAgICBpZiAoaXNDdXJyZW50Q29sb3IoY29sb3IpKQogICAgICAg
ICByZXR1cm4gdGhpcy0+Y29sb3IoKTsKIAogICAgIHJldHVybiBjb2xvcjsKQEAgLTIwMjIsMTEg
KzIwNDEsMTEgQEAgQ29sb3IgUmVuZGVyU3R5bGU6OmNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9y
KGNvbnN0IENvbG9yJiBjb2xvcikgY29uc3QKIAogQ29sb3IgUmVuZGVyU3R5bGU6OnZpc2l0ZWRE
ZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUlEIGNvbG9yUHJvcGVydHkpIGNvbnN0CiB7Ci0gICAg
Q29sb3IgdW52aXNpdGVkQ29sb3IgPSBjb2xvckluY2x1ZGluZ0ZhbGxiYWNrKGNvbG9yUHJvcGVy
dHksIGZhbHNlKTsKKyAgICBDb2xvciB1bnZpc2l0ZWRDb2xvciA9IGNvbG9yUmVzb2x2aW5nQ3Vy
cmVudENvbG9yKGNvbG9yUHJvcGVydHksIGZhbHNlKTsKICAgICBpZiAoaW5zaWRlTGluaygpICE9
IEluc2lkZUxpbms6Okluc2lkZVZpc2l0ZWQpCiAgICAgICAgIHJldHVybiB1bnZpc2l0ZWRDb2xv
cjsKIAotICAgIENvbG9yIHZpc2l0ZWRDb2xvciA9IGNvbG9ySW5jbHVkaW5nRmFsbGJhY2soY29s
b3JQcm9wZXJ0eSwgdHJ1ZSk7CisgICAgQ29sb3IgdmlzaXRlZENvbG9yID0gY29sb3JSZXNvbHZp
bmdDdXJyZW50Q29sb3IoY29sb3JQcm9wZXJ0eSwgdHJ1ZSk7CiAKICAgICAvLyBUZXh0IGRlY29y
YXRpb24gY29sb3IgdmFsaWRpdHkgaXMgcHJlc2VydmVkIChjaGVja2VkIGluIFJlbmRlck9iamVj
dDo6ZGVjb3JhdGlvbkNvbG9yKS4KICAgICBpZiAoY29sb3JQcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0
eVRleHREZWNvcmF0aW9uQ29sb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IDlkNzM1OTM2NmJhLi5iNTRjYmY2MWMzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTE0NDAsNyArMTQ0MCw5
IEBAIHB1YmxpYzoKICAgICBib29sIGxhc3RDaGlsZFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9u
b25Jbmhlcml0ZWRGbGFncy5sYXN0Q2hpbGRTdGF0ZTsgfQogICAgIHZvaWQgc2V0TGFzdENoaWxk
U3RhdGUoKSB7IHNldFVuaXF1ZSgpOyBtX25vbkluaGVyaXRlZEZsYWdzLmxhc3RDaGlsZFN0YXRl
ID0gdHJ1ZTsgfQogCisgICAgQ29sb3IgdW5yZXNvbHZlZENvbG9yRm9yUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBjb2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rID0gZmFsc2UpIGNvbnN0Owog
ICAgIENvbG9yIGNvbG9yUmVzb2x2aW5nQ3VycmVudENvbG9yKGNvbnN0IENvbG9yJikgY29uc3Q7
CisKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciB2aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJv
cGVydHlJRCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgdmlzaXRlZERlcGVuZGVu
dENvbG9yV2l0aENvbG9yRmlsdGVyKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCkBAIC0xNzM0LDYg
KzE3MzYsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBJbiBSZW5kZXJTdHlsZSBpbnZhbGlkIGNvbG9y
IHZhbHVlIGlzIHVzZWQgdG8gc2lnbmlmeSAnY3VycmVudGNvbG9yJyB3aGljaCByZXNvbHZlcyB0
byBjb2xvcigpLgogICAgIHN0YXRpYyBDb2xvciBjdXJyZW50Q29sb3IoKSB7IHJldHVybiB7IH07
IH0KKyAgICBzdGF0aWMgYm9vbCBpc0N1cnJlbnRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsg
cmV0dXJuICFjb2xvci5pc1ZhbGlkKCk7IH0KKwogICAgIGNvbnN0IENvbG9yJiBib3JkZXJMZWZ0
Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3N1cnJvdW5kRGF0YS0+Ym9yZGVyLmxlZnQoKS5jb2xv
cigpOyB9CiAgICAgY29uc3QgQ29sb3ImIGJvcmRlclJpZ2h0Q29sb3IoKSBjb25zdCB7IHJldHVy
biBtX3N1cnJvdW5kRGF0YS0+Ym9yZGVyLnJpZ2h0KCkuY29sb3IoKTsgfQogICAgIGNvbnN0IENv
bG9yJiBib3JkZXJUb3BDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3Jk
ZXIudG9wKCkuY29sb3IoKTsgfQpAQCAtMTg2Niw3ICsxODcwLDcgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgYm9vbCBpc0Rpc3BsYXlHcmlkQm94KERpc3BsYXlUeXBlKTsKICAgICBzdGF0aWMgYm9v
bCBpc0Rpc3BsYXlGbGV4aWJsZU9yR3JpZEJveChEaXNwbGF5VHlwZSk7CiAKLSAgICBDb2xvciBj
b2xvckluY2x1ZGluZ0ZhbGxiYWNrKENTU1Byb3BlcnR5SUQgY29sb3JQcm9wZXJ0eSwgYm9vbCB2
aXNpdGVkTGluaykgY29uc3Q7CisgICAgQ29sb3IgY29sb3JSZXNvbHZpbmdDdXJyZW50Q29sb3Io
Q1NTUHJvcGVydHlJRCBjb2xvclByb3BlcnR5LCBib29sIHZpc2l0ZWRMaW5rKSBjb25zdDsKIAog
ICAgIGJvb2wgY2hhbmdlQWZmZWN0c1Zpc3VhbE92ZXJmbG93KGNvbnN0IFJlbmRlclN0eWxlJikg
Y29uc3Q7CiAgICAgYm9vbCBjaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBSZW5kZXJTdHlsZSYs
IE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JiBjaGFu
Z2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCmluZGV4IDM0ZDQxYTUyNGUyLi5lMTY5NTgxNmEzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcApAQCAtMzExLDgg
KzMxMSw2IEBAIENvbG9yIEJ1aWxkZXJTdGF0ZTo6Y29sb3JGcm9tUHJpbWl0aXZlVmFsdWUoY29u
c3QgQ1NTUHJpbWl0aXZlVmFsdWUmIHZhbHVlLCBib29sCiAgICAgY2FzZSBDU1NWYWx1ZVdlYmtp
dEZvY3VzUmluZ0NvbG9yOgogICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigp
LmZvY3VzUmluZ0NvbG9yKGRvY3VtZW50KCkuc3R5bGVDb2xvck9wdGlvbnMoJm1fc3R5bGUpKTsK
ICAgICBjYXNlIENTU1ZhbHVlQ3VycmVudGNvbG9yOgotICAgICAgICAvLyBDb2xvciBpcyBhbiBp
bmhlcml0ZWQgcHJvcGVydHkgc28gZGVwZW5kaW5nIG9uIGl0IGVmZmVjdGl2ZWx5IG1ha2VzIHRo
ZSBwcm9wZXJ0eSBpbmhlcml0ZWQuCi0gICAgICAgIG1fc3R5bGUuc2V0SGFzRXhwbGljaXRseUlu
aGVyaXRlZFByb3BlcnRpZXMoKTsKICAgICAgICAgcmV0dXJuIFJlbmRlclN0eWxlOjpjdXJyZW50
Q29sb3IoKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gU3R5bGVDb2xvcjo6Y29sb3JG
cm9tS2V5d29yZChpZGVudGlmaWVyLCBkb2N1bWVudCgpLnN0eWxlQ29sb3JPcHRpb25zKCZtX3N0
eWxlKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>