<?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>142609</bug_id>
          
          <creation_ts>2015-03-11 21:52:14 -0700</creation_ts>
          <short_desc>Change the exact attribute matching to be ASCII case-insensitive</short_desc>
          <delta_ts>2015-03-15 22:35:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1076557</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-11 21:52:14 -0700</bug_when>
    <thetext>Change the exact attribute matching to be ASCII case-insensitive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076559</commentid>
    <comment_count>1</comment_count>
      <attachid>248489</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-11 21:54:43 -0700</bug_when>
    <thetext>Created attachment 248489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076564</commentid>
    <comment_count>2</comment_count>
      <attachid>248492</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-11 22:00:53 -0700</bug_when>
    <thetext>Created attachment 248492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076642</commentid>
    <comment_count>3</comment_count>
      <attachid>248492</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-12 08:38:50 -0700</bug_when>
    <thetext>Comment on attachment 248492
Patch

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

I really like the way you tackled this, but I spotted a few small problems.

I’m going to say review- because of at least some of these problems, like the &quot;return false&quot; where it should say &quot;return true&quot;, need to be fixed.

&gt; Source/WTF/wtf/text/StringCommon.h:51
&gt; +    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
&gt; +    0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
&gt; +    0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
&gt; +    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
&gt; +    0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
&gt; +    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
&gt; +    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
&gt; +    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
&gt; +    0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
&gt; +    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
&gt; +    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
&gt; +    0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
&gt; +    0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
&gt; +    0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
&gt; +    0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
&gt; +    0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff

I normally prefer capitalized hex.

&gt; Source/WTF/wtf/text/StringCommon.h:55
&gt; +template&lt;typename CharacterTypeA, typename CharacterTypeB&gt;
&gt; +static inline bool equalIgnoringASCIICase(const CharacterTypeA* a, const CharacterTypeB* b, unsigned length)

Any reason you put “static” on this one and not on the other function templates in this file?

&gt; Source/WTF/wtf/text/StringCommon.h:88
&gt; +template&lt;&gt;
&gt; +inline bool equalIgnoringASCIICase(const LChar* a, const LChar* b, unsigned length)
&gt; +{
&gt; +    for (unsigned i = 0; i &lt; length; ++i) {
&gt; +        if (asciiCaseFoldTable[a[i]] != asciiCaseFoldTable[b[i]])
&gt; +            return false;
&gt; +    }
&gt; +    return true;
&gt; +}
&gt; +
&gt; +template&lt;&gt;
&gt; +inline bool equalIgnoringASCIICase(const UChar* a, const LChar* b, unsigned length)
&gt; +{
&gt; +    for (unsigned i = 0; i &lt; length; ++i) {
&gt; +        if (toASCIILower(a[i]) != asciiCaseFoldTable[b[i]])
&gt; +            return false;
&gt; +    }
&gt; +    return true;
&gt; +}
&gt; +
&gt; +template&lt;&gt;
&gt; +inline bool equalIgnoringASCIICase(const LChar* a, const UChar* b, unsigned length)
&gt; +{
&gt; +    return equalIgnoringASCIICase(b, a, length);
&gt; +}

I’m not sure why we put this optimization here instead of putting it in toASCIILower(LChar). If we did that, then we wouldn’t need the three specializations.

&gt; Source/WTF/wtf/text/StringImpl.cpp:300
&gt; +template&lt;typename CharacterType&gt;
&gt; +static bool containsOnlyASCIIAlphaLower(const CharacterType* characters, unsigned length)

This template is added here, but I don’t see any code below using it.

ASCIICType calls this ASCIILower, not ASCIIAlphaLower.

&gt; Source/WTF/wtf/text/StringImpl.cpp:2034
&gt; +    if (&amp;a == &amp;b)
&gt; +        return false;

This should be true, not false. We should cover this in unit tests.

I’m not 100% sure this is an important optimization.

&gt; Source/WTF/wtf/text/StringImpl.cpp:2042
&gt; +    if (a == b)
&gt; +        return true;

I’m not 100% sure this is an important optimization.

&gt; Source/WTF/wtf/text/StringImpl.cpp:2044
&gt; +    if (!a || !b)
&gt; +        return false;

This means that the null string is going to say it’s not equal to the empty string. Is that what we want? I believe our other string equality functions consider the null string equal to the empty string. We should cover this in tests.

&gt; Source/WTF/wtf/text/StringImpl.cpp:2050
&gt; +    ASSERT(a &amp;&amp; b);

WebKit coding style is to use multiple assertions instead of &amp;&amp;, since it’s better to see which one failed. I think the style guide document might explicitly mention this.

&gt; Source/WebCore/css/CSSParser.cpp:4759
&gt; -        if (equalIgnoringASCIICase(cur, &quot;from&quot;))
&gt; +        if (equalIgnoringCase(cur, &quot;from&quot;))

Long term this seems like a step in the wrong direction. We can write a more optimal version if we only ignore ASCII case, and don’t try to do arbitrary case folding. Perhaps the problem is that we don’t have an overload that avoids converting the literal into a string object?

&gt; Source/WebCore/css/CSSParser.cpp:4761
&gt; -        else if (equalIgnoringASCIICase(cur, &quot;to&quot;))
&gt; +        else if (equalIgnoringCase(cur, &quot;to&quot;))

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077116</commentid>
    <comment_count>4</comment_count>
      <attachid>248638</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-13 20:52:49 -0700</bug_when>
    <thetext>Created attachment 248638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077118</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-13 21:08:35 -0700</bug_when>
    <thetext>I could not add a new test because the code is eliminated by the linker since it is not used anywhere.

(In reply to comment #3)
&gt; &gt; Source/WebCore/css/CSSParser.cpp:4759
&gt; &gt; -        if (equalIgnoringASCIICase(cur, &quot;from&quot;))
&gt; &gt; +        if (equalIgnoringCase(cur, &quot;from&quot;))
&gt; 
&gt; Long term this seems like a step in the wrong direction. We can write a more
&gt; optimal version if we only ignore ASCII case, and don’t try to do arbitrary
&gt; case folding. Perhaps the problem is that we don’t have an overload that
&gt; avoids converting the literal into a string object?
&gt; 
&gt; &gt; Source/WebCore/css/CSSParser.cpp:4761
&gt; &gt; -        else if (equalIgnoringASCIICase(cur, &quot;to&quot;))
&gt; &gt; +        else if (equalIgnoringCase(cur, &quot;to&quot;))
&gt; 
&gt; Ditto.

In CSS Parser, equalIgnoringCase() is the local version taking a string literal. This needs to be fixed too but it is a much bigger change and will be done separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077241</commentid>
    <comment_count>6</comment_count>
      <attachid>248638</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-15 09:59:06 -0700</bug_when>
    <thetext>Comment on attachment 248638
Patch

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

&gt; Source/WTF/wtf/text/StringCommon.h:53
&gt; +template&lt;&gt;
&gt; +inline bool equalIgnoringASCIICase(const LChar* a, const LChar* b, unsigned length)
&gt; +{
&gt; +    for (unsigned i = 0; i &lt; length; ++i) {
&gt; +        if (toASCIILower(a[i]) != toASCIILower(b[i]))
&gt; +            return false;
&gt; +    }
&gt; +    return true;
&gt; +}

I don’t think this specialization is needed. It’s the same as the general case above, which will be recompiled for LChar, so how does this help?

&gt; Source/WTF/wtf/text/StringImpl.cpp:2024
&gt; +ALWAYS_INLINE bool equalIgnoringASCIICase(const StringImpl&amp; a, const StringImpl&amp; b)
&gt; +{
&gt; +    return equalIgnoringASCIICaseCommon(a, b);
&gt; +}

If this is going to be marked inline, then it needs to be in the header, not the cpp file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077247</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-15 12:03:45 -0700</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #6)
&gt; Comment on attachment 248638 [details]
&gt; &gt; Source/WTF/wtf/text/StringImpl.cpp:2024
&gt; &gt; +ALWAYS_INLINE bool equalIgnoringASCIICase(const StringImpl&amp; a, const StringImpl&amp; b)
&gt; &gt; +{
&gt; &gt; +    return equalIgnoringASCIICaseCommon(a, b);
&gt; &gt; +}
&gt; 
&gt; If this is going to be marked inline, then it needs to be in the header, not
&gt; the cpp file.

This is to make this function inline in the context of this compilation unit, but not in the global context. The reason was I needed equalIgnoringASCIICaseNonNull to inline this, but every other caller out-of-line. Since then I introduced equalIgnoringASCIICaseCommon() which makes this inlining completely useless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077255</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-15 12:44:01 -0700</bug_when>
    <thetext>Committed r181512: &lt;http://trac.webkit.org/changeset/181512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077262</commentid>
    <comment_count>9</comment_count>
      <attachid>248638</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-03-15 14:16:55 -0700</bug_when>
    <thetext>Comment on attachment 248638
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/text/StringImpl.cpp:2024
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; If this is going to be marked inline, then it needs to be in the header, not the cpp file.
&gt; 
&gt; This is to make this function inline in the context of this compilation unit, but not in the global context. The reason was I needed equalIgnoringASCIICaseNonNull to inline this, but every other caller out-of-line. Since then I introduced equalIgnoringASCIICaseCommon() which makes this inlining completely useless.

That may be what you want, but I am surprised it works. I expect a link failure when people try to use this function outside this compilation unit. Instead you’d typically need a separate inlined function and a non-inlined function that calls it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077338</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-03-15 22:19:09 -0700</bug_when>
    <thetext>The new test fails on Windows:

@@ -49,161 +49,161 @@
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 
 Testing &quot;[data-attribute=WebKit-É i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-É i]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-É i]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-É i]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-É i]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-É i]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[data-attribute=webkit-É i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=webkit-É i]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=webkit-É i]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=webkit-É i]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=webkit-É i]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=webkit-É i]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[data-attribute=WEBKIT-É i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=WEBKIT-É i]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=WEBKIT-É i]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=WEBKIT-É i]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=WEBKIT-É i]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [data-attribute=WEBKIT-É i]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[data-attribute=WebKit-é i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-é i]&apos;).length is 2
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-é i]&apos;)[0].id is &quot;target4&quot;
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-é i]&apos;)[1].id is &quot;target5&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-é i]&apos;).length should be 2. Was 5.
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-é i]&apos;)[0].id should be target4. Was target1.
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=WebKit-é i]&apos;)[1].id should be target5. Was target2.
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 
 Testing &quot;[data-attribute=webkit-é i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=webkit-é i]&apos;).length is 2
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=webkit-é i]&apos;)[0].id is &quot;target4&quot;
-PASS document.querySelectorAll(&apos;#test-root [data-attribute=webkit-é i]&apos;)[1].id is &quot;target5&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=webkit-é i]&apos;).length should be 2. Was 5.
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=webkit-é i]&apos;)[0].id should be target4. Was target1.
+FAIL document.querySelectorAll(&apos;#test-root [data-attribute=webkit-é i]&apos;)[1].id should be target5. Was target2.
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 
 Testing &quot;[multiple=WEBKIT-é]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[multiple=WebKit-é]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [multiple=WebKit-é]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[multiple=Webkit-é]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [multiple=Webkit-é]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[multiple=webkit-É]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webkit-É]&apos;).length is 2
-PASS document.querySelectorAll(&apos;#test-root [multiple=webkit-É]&apos;)[0].id is &quot;target4&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webkit-É]&apos;)[1].id is &quot;target5&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webkit-É]&apos;).length should be 2. Was 5.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webkit-É]&apos;)[0].id should be target4. Was target1.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webkit-É]&apos;)[1].id should be target5. Was target2.
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 
 Testing &quot;[multiple=webKit-É]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webKit-É]&apos;).length is 2
-PASS document.querySelectorAll(&apos;#test-root [multiple=webKit-É]&apos;)[0].id is &quot;target4&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webKit-É]&apos;)[1].id is &quot;target5&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webKit-É]&apos;).length should be 2. Was 5.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webKit-É]&apos;)[0].id should be target4. Was target1.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webKit-É]&apos;)[1].id should be target5. Was target2.
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 
 Testing &quot;[multiple=WEBKIT-é i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é i]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é i]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é i]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é i]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WEBKIT-é i]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[multiple=WebKit-é i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é i]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [multiple=WebKit-é i]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é i]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é i]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=WebKit-é i]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[multiple=Webkit-é i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é i]&apos;).length is 3
+FAIL document.querySelectorAll(&apos;#test-root [multiple=Webkit-é i]&apos;).length should be 3. Was 5.
 PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é i]&apos;)[0].id is &quot;target1&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é i]&apos;)[1].id is &quot;target2&quot;
 PASS document.querySelectorAll(&apos;#test-root [multiple=Webkit-é i]&apos;)[2].id is &quot;target3&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 
 Testing &quot;[multiple=webkit-É i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webkit-É i]&apos;).length is 2
-PASS document.querySelectorAll(&apos;#test-root [multiple=webkit-É i]&apos;)[0].id is &quot;target4&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webkit-É i]&apos;)[1].id is &quot;target5&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webkit-É i]&apos;).length should be 2. Was 5.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webkit-É i]&apos;)[0].id should be target4. Was target1.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webkit-É i]&apos;)[1].id should be target5. Was target2.
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 
 Testing &quot;[multiple=webKit-É i]&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webKit-É i]&apos;).length is 2
-PASS document.querySelectorAll(&apos;#test-root [multiple=webKit-É i]&apos;)[0].id is &quot;target4&quot;
-PASS document.querySelectorAll(&apos;#test-root [multiple=webKit-É i]&apos;)[1].id is &quot;target5&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
-PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor is &quot;rgb(255, 0, 0)&quot;
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webKit-É i]&apos;).length should be 2. Was 5.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webKit-É i]&apos;)[0].id should be target4. Was target1.
+FAIL document.querySelectorAll(&apos;#test-root [multiple=webKit-É i]&apos;)[1].id should be target5. Was target2.
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[0]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[1]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
+FAIL getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[2]).backgroundColor should be rgb(255, 0, 0). Was rgb(10, 100, 200).
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[3]).backgroundColor is &quot;rgb(10, 100, 200)&quot;
 PASS getComputedStyle(document.querySelectorAll(&quot;#test-root *&quot;)[4]).backgroundColor is &quot;rgb(10, 100, 200)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077343</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-15 22:35:04 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; The new test fails on Windows:

The fix is already in https://bugs.webkit.org/show_bug.cgi?id=142715 but it is waiting for review.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248489</attachid>
            <date>2015-03-11 21:54:43 -0700</date>
            <delta_ts>2015-03-11 22:00:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142609-20150311215418.patch</filename>
            <type>text/plain</type>
            <size>52323</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFiNjJlYWM3Yzk5MjgyNzdkN2MyMWY0
MzdjZDY5YzRiYmEzMWU0ZDcuLjRiZGM2ZjcyOGJkOWU1MzM4OWMxZmRlZDU0OWU5NTBiYTQ5YWEz
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTUtMDMtMTEgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIHRoZSBleGFjdCBhdHRyaWJ1dGUg
bWF0Y2hpbmcgdG8gYmUgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEFTQ0lJIGNhc2Ug
aW5zZW5zaXRpdmUgY29tcGFyaXNvbnMgdG8gYWxsIHRoZSBzdHJpbmcKKyAgICAgICAgY2xhc3Nl
cy4KKworICAgICAgICBUaGUgbmV3IGZpbGUgU3RyaW5nQ29tbW9uLmggaGFzIHRoZSBjb21tb24g
YWxnb3JpdGhtIHRvIGF2b2lkIHJlcGVhdGluZworICAgICAgICB0aGUgc2FtZSBjb2RlIHdpdGgg
ZGlmZmVyZW50IHR5cGVzLgorCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2o6Cisg
ICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oOgorICAgICAg
ICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJp
bmdDb21tb24uaDogQWRkZWQuCisgICAgICAgIChXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2Up
OgorICAgICAgICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKToKKyAgICAgICAg
KiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6Y29udGFpbnNPbmx5QVND
SUlBbHBoYUxvd2VyKToKKyAgICAgICAgKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSk6Cisg
ICAgICAgIChXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxsKToKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nVmlldy5oOgor
ICAgICAgICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKToKKyAgICAgICAgKiB3dGYvdGV4
dC9XVEZTdHJpbmcuaDoKKyAgICAgICAgKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSk6CisK
IDIwMTUtMDMtMDYgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaXggY3Jhc2hlcyBzZWVuIG9uIHRoZSB0aGUgV2luZG93cyBidWlsZGJvdHMgYWZ0ZXIgbXkg
bGFzdCBwYXRjaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOGViMWVmZTc0ZGUzNTc3OGQ0MjI4MzVkZTZiNWQy
YWQzYmMzMTg3Li5lNDkyZjI1MWUwNjQ4MTkyMzQ3MWVlMzYwNGY0ZDMwNjEyMjgzN2RhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMDMtMTEgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIHRoZSBleGFjdCBhdHRyaWJ1dGUg
bWF0Y2hpbmcgdG8gYmUgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gQ1NTLCB0ZXN0aW5nIGF0dHJpYnV0ZSB2
YWx1ZXMgc2hvdWxkIGJlIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUsCisgICAgICAgIHByZXZpb3Vz
bHkgd2Ugd2VyZSB1c2luZyBmdWxsIHVuaWNvZGUgY2FzZSBjb252ZXJzaW9uLgorCisgICAgICAg
IFRlc3Q6IGZhc3Qvc2VsZWN0b3JzL2F0dHJpYnV0ZS1leGFjdC12YWx1ZS1tYXRjaC1pcy1hc2Np
aS1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUtleWZyYW1lU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmg6CisgICAgICAgIChXZWJD
b3JlOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3NqaXQv
U2VsZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVy
OjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudEF0dHJpYnV0ZVZhbHVlRXhh
Y3RNYXRjaGluZyk6CisKIDIwMTUtMDMtMDYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBNb3ZlIGNvbXBpbGluZyBvZiBjb250ZW50
IGV4dGVuc2lvbnMgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oK
aW5kZXggNWVlZDEzZDgwNjBkYjQ0MTY3MTE1Y2U5MjBjMGFlYWQ5NmFhOTNlZi4uYzU2NzRlZjI4
YTc4MDNjYmViYWUyOTdmMmEyMWMwNmQzNjUxMDVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYudmN4cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52
Y3hwcm9qCkBAIC0yODgsNiArMjg4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
Zlx0ZXh0XExDaGFyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdGV4dFxT
dHJpbmdCdWZmZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0
cmluZ0J1aWxkZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0
cmluZ0NvbW1vbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRleHRcU3Ry
aW5nQ29uY2F0ZW5hdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0
XFN0cmluZ0hhc2guaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0
cmluZ0ltcGwuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGY3ZGYyZWE4NmE2ZDAyY2E0NGJjZWMyMTg0MjVkYTE5ZjA5MmZmYmEuLjlmMzlhYjYxYzhm
YmZkNTViNTY2MWUwMGMxNDQ1ZDliNWJmODMzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNzMsNiArNzMsNyBAQAogCQkyQ0RFRDBFRjE4MTE1QzM4MDA0
REJBNzAgLyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICov
OyB9OwogCQkyQ0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMTE4MTE1Qzg1MDA0
REJBNzAgLyogUnVuTG9vcC5jcHAgKi87IH07CiAJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAv
KiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQ0RFRDBGMjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovOyB9OworCQk0MzBCNDc4
OTFBQUFBQzFBMDAxMjIzREEgLyogU3RyaW5nQ29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzBCNDc4NzFBQUFBQzFBMDAxMjIzREEgLyogU3Ry
aW5nQ29tbW9uLmggKi87IH07CiAJCTdDQkJBMDc0MTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVj
dFB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NC
QkEwNzMxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggKi87IH07CiAJCTdDREQ3RkY4
MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyog
SXRlcmF0b3JBZGFwdG9ycy5oICovOyB9OwogCQk3Q0REN0ZGQTE4NkQyQTU0MDA3NDMzQ0QgLyog
SXRlcmF0b3JSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCAqLzsgfTsK
QEAgLTM1Nyw2ICszNTgsNyBAQAogCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9v
cENGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BDRi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDREVEMEYxMTgxMTVDODUwMDREQkE3
MCAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1
bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0RFRDBGMjE4MTE1Qzg1
MDA0REJBNzAgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
dW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMEI0Nzg3MUFBQUFDMUEw
MDEyMjNEQSAvKiBTdHJpbmdDb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RyaW5nQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYy
MTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVEMjQ3
QjZFMTQ2ODlDNDcwMEU3OEI3NiAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2Uu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjcwMTQ2ODlDNDcw
MEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVidWdSZWxl
YXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTQ5LDYgKzk1MSw3
IEBACiAJCQkJQThBNDczMjMxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0J1ZmZlci5oICovLAog
CQkJCUE4QTQ3MzI0MTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLywKIAkJ
CQlBOEE0NzMyNTE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nQnVpbGRlci5oICovLAorCQkJCTQz
MEI0Nzg3MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJpbmdDb21tb24uaCAqLywKIAkJCQlBOEE0NzMy
NjE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nQ29uY2F0ZW5hdGUuaCAqLywKIAkJCQlBOEE0NzMy
NzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFzaC5oICovLAogCQkJCUE4QTQ3MzI4MTUxQTgy
NUIwMDQxMjNGRiAvKiBTdHJpbmdJbXBsLmNwcCAqLywKQEAgLTExOTYsNiArMTE5OSw3IEBACiAJ
CQkJODNGQkE5MzIxOURGNDU5NzAwRjMwQURCIC8qIFR5cGVDYXN0cy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE2RUIxRTAxODdEMEJEMzAwMzAxMjZGIC8qIFN0cmluZ1ZpZXcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBUZW1wb3JhcnlDaGFuZ2UuaCBp
biBIZWFkZXJzICovLAorCQkJCTQzMEI0Nzg5MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJpbmdDb21t
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ0MTUxQTgyNUIwMDQxMjNGRiAvKiBUZXh0
UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ3MTUxQTgyNUIwMDQxMjNGRiAv
KiBUaHJlYWRGdW5jdGlvbkludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ5
MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZTNmOTJmZTQwMzFlMjZmNjUyOGJkZTI0
OGQxYzFiOGI2Y2M3ODBlNC4uZWMwMTg4MDkxZDE4YzNhZGE5MmI1NjNjMDIwY2NjNjkzYmM0NWFm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTEyOSw2ICsxMjksNyBAQCBzZXQoV1RGX0hFQURF
UlMKICAgICB0ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaAogICAgIHRleHQvTENoYXIu
aAogICAgIHRleHQvU3RyaW5nQnVmZmVyLmgKKyAgICB0ZXh0L1N0cmluZ0NvbW1vbi5oCiAgICAg
dGV4dC9TdHJpbmdIYXNoLmgKICAgICB0ZXh0L1N0cmluZ0ltcGwuaAogICAgIHRleHQvU3RyaW5n
Vmlldy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oIGIv
U291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaAppbmRleCBiYWU5ZDM2MmQyNzUxZTVh
NzNjZTBiMWI3ZTJhNDExYjAxODM3ZjMzLi5jOWNkZDY4MDkyZWQ1N2UwMDBkMjUyZWJiZjE2YTc4
YzI0ZmYxODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgKQEAgLTI0Nyw2ICsyNDcs
MTAgQEAgaW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2UoY29uc3QgTENoYXIqIGEsIGNvbnN0
IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gZXEKIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdD
YXNlKGNvbnN0IGNoYXIqIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJ
Z25vcmluZ0Nhc2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGEpLCBiLmltcGwoKSk7
IH0KIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IFN0cmluZyYgYSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShhLmltcGwoKSwgYi5p
bXBsKCkpOyB9CiAKK2lubGluZSBib29sIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgQXRv
bWljU3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuIGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQoraW5saW5lIGJvb2wgZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeyBy
ZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmltcGwoKSwgYi5pbXBsKCkpOyB9Citpbmxp
bmUgYm9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgQXRv
bWljU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuaW1wbCgpLCBi
LmltcGwoKSk7IH0KKwogLy8gRGVmaW5lIGV4dGVybmFsIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRo
ZSBjb21tb25seSB1c2VkIGF0b21pYyBzdHJpbmdzLgogLy8gVGhlc2UgYXJlIG9ubHkgdXNhYmxl
IGZyb20gdGhlIG1haW4gdGhyZWFkLgogI2lmbmRlZiBBVE9NSUNTVFJJTkdfSElERV9HTE9CQUxT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdDb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTBkYzc3ZThhOThmOTdj
YTJkMjgxMTNiZmQwOTdkNGNhY2E3ODhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdDb21tb24uaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgU3RyaW5nQ29tbW9uX2gKKyNkZWZpbmUgU3RyaW5nQ29tbW9uX2gKKworI2luY2x1ZGUg
PHVuaWNvZGUvdWNoYXIuaD4KKyNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0xDaGFyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjb25zdCBVQ2hhciBhc2Np
aUNhc2VGb2xkVGFibGVbMjU2XSA9IHsKKyAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0
LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAweDBhLCAweDBiLCAweDBjLCAweDBkLCAw
eDBlLCAweDBmLAorICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYs
IDB4MTcsIDB4MTgsIDB4MTksIDB4MWEsIDB4MWIsIDB4MWMsIDB4MWQsIDB4MWUsIDB4MWYsCisg
ICAgMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwgMHgyNSwgMHgyNiwgMHgyNywgMHgyOCwg
MHgyOSwgMHgyYSwgMHgyYiwgMHgyYywgMHgyZCwgMHgyZSwgMHgyZiwKKyAgICAweDMwLCAweDMx
LCAweDMyLCAweDMzLCAweDM0LCAweDM1LCAweDM2LCAweDM3LCAweDM4LCAweDM5LCAweDNhLCAw
eDNiLCAweDNjLCAweDNkLCAweDNlLCAweDNmLAorICAgIDB4NDAsIDB4NjEsIDB4NjIsIDB4NjMs
IDB4NjQsIDB4NjUsIDB4NjYsIDB4NjcsIDB4NjgsIDB4NjksIDB4NmEsIDB4NmIsIDB4NmMsIDB4
NmQsIDB4NmUsIDB4NmYsCisgICAgMHg3MCwgMHg3MSwgMHg3MiwgMHg3MywgMHg3NCwgMHg3NSwg
MHg3NiwgMHg3NywgMHg3OCwgMHg3OSwgMHg3YSwgMHg1YiwgMHg1YywgMHg1ZCwgMHg1ZSwgMHg1
ZiwKKyAgICAweDYwLCAweDYxLCAweDYyLCAweDYzLCAweDY0LCAweDY1LCAweDY2LCAweDY3LCAw
eDY4LCAweDY5LCAweDZhLCAweDZiLCAweDZjLCAweDZkLCAweDZlLCAweDZmLAorICAgIDB4NzAs
IDB4NzEsIDB4NzIsIDB4NzMsIDB4NzQsIDB4NzUsIDB4NzYsIDB4NzcsIDB4NzgsIDB4NzksIDB4
N2EsIDB4N2IsIDB4N2MsIDB4N2QsIDB4N2UsIDB4N2YsCisgICAgMHg4MCwgMHg4MSwgMHg4Miwg
MHg4MywgMHg4NCwgMHg4NSwgMHg4NiwgMHg4NywgMHg4OCwgMHg4OSwgMHg4YSwgMHg4YiwgMHg4
YywgMHg4ZCwgMHg4ZSwgMHg4ZiwKKyAgICAweDkwLCAweDkxLCAweDkyLCAweDkzLCAweDk0LCAw
eDk1LCAweDk2LCAweDk3LCAweDk4LCAweDk5LCAweDlhLCAweDliLCAweDljLCAweDlkLCAweDll
LCAweDlmLAorICAgIDB4YTAsIDB4YTEsIDB4YTIsIDB4YTMsIDB4YTQsIDB4YTUsIDB4YTYsIDB4
YTcsIDB4YTgsIDB4YTksIDB4YWEsIDB4YWIsIDB4YWMsIDB4YWQsIDB4YWUsIDB4YWYsCisgICAg
MHhiMCwgMHhiMSwgMHhiMiwgMHhiMywgMHhiNCwgMHhiNSwgMHhiNiwgMHhiNywgMHhiOCwgMHhi
OSwgMHhiYSwgMHhiYiwgMHhiYywgMHhiZCwgMHhiZSwgMHhiZiwKKyAgICAweGMwLCAweGMxLCAw
eGMyLCAweGMzLCAweGM0LCAweGM1LCAweGM2LCAweGM3LCAweGM4LCAweGM5LCAweGNhLCAweGNi
LCAweGNjLCAweGNkLCAweGNlLCAweGNmLAorICAgIDB4ZDAsIDB4ZDEsIDB4ZDIsIDB4ZDMsIDB4
ZDQsIDB4ZDUsIDB4ZDYsIDB4ZDcsIDB4ZDgsIDB4ZDksIDB4ZGEsIDB4ZGIsIDB4ZGMsIDB4ZGQs
IDB4ZGUsIDB4ZGYsCisgICAgMHhlMCwgMHhlMSwgMHhlMiwgMHhlMywgMHhlNCwgMHhlNSwgMHhl
NiwgMHhlNywgMHhlOCwgMHhlOSwgMHhlYSwgMHhlYiwgMHhlYywgMHhlZCwgMHhlZSwgMHhlZiwK
KyAgICAweGYwLCAweGYxLCAweGYyLCAweGYzLCAweGY0LCAweGY1LCAweGY2LCAweGY3LCAweGY4
LCAweGY5LCAweGZhLCAweGZiLCAweGZjLCAweGZkLCAweGZlLCAweGZmCit9OworCit0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlQSwgdHlwZW5hbWUgQ2hhcmFjdGVyVHlwZUI+CitzdGF0
aWMgaW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBDaGFyYWN0ZXJUeXBl
QSogYSwgY29uc3QgQ2hhcmFjdGVyVHlwZUIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHRvQVND
SUlMb3dlcihhW2ldKSAhPSB0b0FTQ0lJTG93ZXIoYltpXSkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0ZTw+CitpbmxpbmUg
Ym9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IExDaGFyKiBhLCBjb25zdCBMQ2hhciog
YiwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgeworICAgICAgICBpZiAoYXNjaWlDYXNlRm9sZFRhYmxlW2FbaV1dICE9IGFzY2lp
Q2FzZUZvbGRUYWJsZVtiW2ldXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBib29sIGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UoY29uc3QgVUNoYXIqIGEsIGNvbnN0IExDaGFyKiBiLCB1bnNpZ25lZCBsZW5n
dGgpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAg
ICAgIGlmICh0b0FTQ0lJTG93ZXIoYVtpXSkgIT0gYXNjaWlDYXNlRm9sZFRhYmxlW2JbaV1dKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dGVtcGxhdGU8PgoraW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBMQ2hh
ciogYSwgY29uc3QgVUNoYXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShiLCBhLCBsZW5ndGgpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBTdHJpbmdDbGFzcz4KK2Jvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZUNvbW1vbihjb25zdCBT
dHJpbmdDbGFzcyYgYSwgY29uc3QgU3RyaW5nQ2xhc3MmIGIpCit7CisgICAgdW5zaWduZWQgbGVu
Z3RoID0gYS5sZW5ndGgoKTsKKyAgICBpZiAobGVuZ3RoICE9IGIubGVuZ3RoKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChhLmlzOEJpdCgpKSB7CisgICAgICAgIGlmIChiLmlz
OEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5jaGFy
YWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGxlbmd0aCk7CisKKyAgICAgICAgcmV0dXJuIGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UoYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBs
ZW5ndGgpOworICAgIH0KKworICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGxl
bmd0aCk7CisKKyAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmNoYXJhY3RlcnMx
NigpLCBiLmNoYXJhY3RlcnMxNigpLCBsZW5ndGgpOworfQorCit9CisKKyNlbmRpZiAvLyBTdHJp
bmdDb21tb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggMGI3NzQ5YWY4Zjky
ZmJlNjU5NjRkY2M4M2RlMWNlYzU4NzNjMDkyZi4uODE4YTYxNWNhOTc5MTFkNjJlMTE5ODI3Mjdm
MDY5ZjZlN2MyNmZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0yOTYsNiAr
Mjk2LDE2IEBAIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVVbmlxdWUoUGFzc1Jl
ZlB0cjxTdHJpbmdJbXBsPiByZXApCiAgICAgcmV0dXJuIHN0cmluZzsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KK3N0YXRpYyBib29sIGNvbnRhaW5zT25seUFTQ0lJQWxw
aGFMb3dlcihjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAg
IGlmICghaXNBU0NJSUxvd2VyKGNoYXJhY3RlcnNbaV0pKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBTdHJpbmdJbXBsOjpjb250
YWluc09ubHlXaGl0ZXNwYWNlKCkKIHsKICAgICAvLyBGSVhNRTogVGhlIGRlZmluaXRpb24gb2Yg
d2hpdGVzcGFjZSBoZXJlIGluY2x1ZGVzIGEgbnVtYmVyIG9mIGNoYXJhY3RlcnMKQEAgLTIwMTgs
NiArMjAyOCwyOSBAQCBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KFN0cmluZ0ltcGwqIGEsIFN0
cmluZ0ltcGwqIGIpCiAgICAgcmV0dXJuIGVxdWFsKGEsIGIpOwogfQogCitBTFdBWVNfSU5MSU5F
IGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsJiBhLCBjb25zdCBT
dHJpbmdJbXBsJiBiKQoreworICAgIGlmICgmYSA9PSAmYikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2VDb21tb24oYSwgYik7Cit9CisK
K2Jvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsKiBhLCBjb25zdCBT
dHJpbmdJbXBsKmIpCit7CisgICAgaWYgKGEgPT0gYikKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgaWYgKCFhIHx8ICFiKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGVxdWFs
SWdub3JpbmdBU0NJSUNhc2VDb21tb24oKmEsICpiKTsKK30KKworYm9vbCBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlTm9uTnVsbChjb25zdCBTdHJpbmdJbXBsKiBhLCBjb25zdCBTdHJpbmdJbXBsKiBi
KQoreworICAgIEFTU0VSVChhICYmIGIpOworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlD
YXNlQ29tbW9uKCphLCAqYik7Cit9CisKIFVDaGFyRGlyZWN0aW9uIFN0cmluZ0ltcGw6OmRlZmF1
bHRXcml0aW5nRGlyZWN0aW9uKGJvb2wqIGhhc1N0cm9uZ0RpcmVjdGlvbmFsaXR5KQogewogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5oCmluZGV4IDY2NzIyM2U2ZGE3NWQxMmI1MzE3NDQxMDkwM2EzYjNhNzYzMWE0NzYu
LmQwNzQwNjRmNjVjNDI2NTY3MzUwMzI3NDg0ZTU1YTE5ODdiNjU3ZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oCkBAIC0xMTMyLDYgKzExMzIsMTAgQEAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJ
IGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2VOb25OdWxsKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBT
dHIKIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KFN0cmlu
Z0ltcGwqLCBTdHJpbmdJbXBsKik7CiBXVEZfRVhQT1JUX1NUUklOR19BUEkgYm9vbCBlcXVhbEln
bm9yaW5nTnVsbGl0eShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFN0cmluZ0ltcGwqKTsK
IAorV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25z
dCBTdHJpbmdJbXBsJiwgY29uc3QgU3RyaW5nSW1wbCYpOworV1RGX0VYUE9SVF9TVFJJTkdfQVBJ
IGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsKiwgY29uc3QgU3Ry
aW5nSW1wbCopOworV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZU5vbk51bGwoY29uc3QgU3RyaW5nSW1wbCosIGNvbnN0IFN0cmluZ0ltcGwqKTsKKwogdGVt
cGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBzaXplX3QgZmluZChjb25zdCBD
aGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENoYXJhY3RlclR5cGUg
bWF0Y2hDaGFyYWN0ZXIsIHVuc2lnbmVkIGluZGV4ID0gMCkKIHsKQEAgLTEzNzQsNiArMTM3OCw3
IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFJlZlB0cjxTdHJpbmdJbXBsPj4gewog
CiB1c2luZyBXVEY6OlN0cmluZ0ltcGw7CiB1c2luZyBXVEY6OmVxdWFsOwordXNpbmcgV1RGOjpl
cXVhbElnbm9yaW5nQVNDSUlDYXNlOwogdXNpbmcgV1RGOjpUZXh0Q2FzZVNlbnNpdGl2aXR5Owog
dXNpbmcgV1RGOjpUZXh0Q2FzZVNlbnNpdGl2ZTsKIHVzaW5nIFdURjo6VGV4dENhc2VJbnNlbnNp
dGl2ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKaW5kZXggNmY5NGJmODkzZmFlZjY5ODNiZjAz
OGUzNGU4ZjAwMjNjMjAwNWJjOS4uNWNjYjNhZDdlMTMyOGEwNTZjN2U3NmFlY2JmMDYzMTRhZmE1
Zjg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0xDaGFyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CiAK
IC8vIEZJWE1FOiBFbmFibGluZyB0aGUgU3RyaW5nVmlldyBsaWZldGltZSBjaGVja2luZyBjYXVz
ZXMgdGhlIE1TVkMgYnVpbGQgdG8gZmFpbC4gRmlndXJlIG91dCB3aHkuCiAvLyBGSVhNRTogRW5h
YmxlIFN0cmluZ1ZpZXcgbGlmZXRpbWUgY2hlY2tpbmcgb25jZSB0aGUgdW5kZXJseWluZyBhc3Nl
cnRpb25zIGhhdmUgYmVlbiBmaXhlZC4KQEAgLTUwNSwxNCArNTA2LDcgQEAgaW5saW5lIGJvb2wg
ZXF1YWwoU3RyaW5nVmlldyBhLCBjb25zdCBjaGFyKiBiKQogCiBpbmxpbmUgYm9vbCBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKFN0cmluZ1ZpZXcgYSwgU3RyaW5nVmlldyBiKQogewotICAgIHVuc2ln
bmVkIGFMZW5ndGggPSBhLmxlbmd0aCgpOwotICAgIGlmIChhTGVuZ3RoICE9IGIubGVuZ3RoKCkp
IAotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhTGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihhW2ldKSAhPSB0b0FTQ0lJTG93
ZXIoYltpXSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKGEsIGIpOwogfQog
CiBjbGFzcyBTdHJpbmdWaWV3OjpDb2RlUG9pbnRzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDg0YjYwNWY2MTcyZmNkZmM3YmUzMmZkODkzZTg3N2NlYWMyMGQ0ODkuLjYwOWEwMDI0NGE1
ZGNhODEwODA2YWM1NWMyNTE0YTYyZTJiZDgwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtNDkyLDYgKzQ5Miw4IEBAIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IFN0
cmluZyYgYSwgY29uc3QgY2hhciogYikgeyByZXR1cm4gZXF1YWxJZ25vCiBpbmxpbmUgYm9vbCBl
cXVhbElnbm9yaW5nQ2FzZShjb25zdCBMQ2hhciogYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVy
biBlcXVhbElnbm9yaW5nQ2FzZShhLCBiLmltcGwoKSk7IH0KIGlubGluZSBib29sIGVxdWFsSWdu
b3JpbmdDYXNlKGNvbnN0IGNoYXIqIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJ
Z25vcmluZ0Nhc2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGEpLCBiLmltcGwoKSk7
IH0KIAoraW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmcmIGEs
IGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmltcGwo
KSwgYi5pbXBsKCkpOyB9CisKIGlubGluZSBib29sIGVxdWFsUG9zc2libHlJZ25vcmluZ0Nhc2Uo
Y29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIsIGJvb2wgaWdub3JlQ2FzZSkgCiB7CiAg
ICAgcmV0dXJuIGlnbm9yZUNhc2UgPyBlcXVhbElnbm9yaW5nQ2FzZShhLCBiKSA6IChhID09IGIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjYjA2ZGQwNzFkZDU0NGM5ZDQ2Y2NmMzhh
NzBkMjQ1Nzg5OTg2M2U2Li5jZmRhMDZiNmZlOWMwZTJiNmUxY2VjZGI2OGJjYWNhM2FlM2NlMmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDc1Niw5ICs0NzU2LDkgQEAgVmVjdG9y
PGRvdWJsZT4gQ1NTUGFyc2VyOjpwYXJzZUtleWZyYW1lU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBz
ZWxlY3RvcikgewogICAgICAgICBTdHJpbmcgY3VyID0gc3RyaW5nc1tpXS5zdHJpcFdoaXRlU3Bh
Y2UoKTsKIAogICAgICAgICAvLyBGb3Igbm93IHRoZSBzeW50YXggTVVTVCBiZSAneHh4JScgb3Ig
J2Zyb20nIG9yICd0bycsIHdoZXJlIHh4eCBpcyBhIGxlZ2FsIGZsb2F0aW5nIHBvaW50IG51bWJl
cgotICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjdXIsICJmcm9tIikpCisgICAg
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShjdXIsICJmcm9tIikpCiAgICAgICAgICAgICBrZXkg
PSAwOwotICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGN1ciwgInRvIikp
CisgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGN1ciwgInRvIikpCiAgICAgICAg
ICAgICBrZXkgPSAxOwogICAgICAgICBlbHNlIGlmIChjdXIuZW5kc1dpdGgoJyUnKSkgewogICAg
ICAgICAgICAgZG91YmxlIGsgPSBjdXIuc3Vic3RyaW5nKDAsIGN1ci5sZW5ndGgoKSAtIDEpLnRv
RG91YmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
VGVzdEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RG
dW5jdGlvbnMuaAppbmRleCBkNWUwOTY1M2JjNWMzYThmYzQ1YzAyNmI3NDdhMjc1MjZjOGExNzE4
Li42YWJkMDhiNzNjMzgxOGNkZWRkNDQ2M2ZhZGRiZWNjMDVmYmFlMjI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgKQEAgLTEyMCwx
NyArMTIwLDYgQEAgQUxXQVlTX0lOTElORSBib29sIGlzV2luZG93SW5hY3RpdmUoY29uc3QgRWxl
bWVudCogZWxlbWVudCkKICAgICByZXR1cm4gIWVsZW1lbnQtPmRvY3VtZW50KCkucGFnZSgpLT5m
b2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikKLXsK
LSAgICBpZiAoYS5sZW5ndGgoKSAhPSBiLmxlbmd0aCgpKSAKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYS5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAg
IGlmICh0b0FTQ0lJTG93ZXIoYVtpXSkgIT0gdG9BU0NJSUxvd2VyKGJbaV0pKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogQUxXQVlTX0lO
TElORSBib29sIGNvbnRhaW5zbGFuZ3VhZ2VTdWJ0YWdNYXRjaGluZ1JhbmdlKFN0cmluZ1ZpZXcg
bGFuZ3VhZ2UsIFN0cmluZ1ZpZXcgcmFuZ2UsIHVuc2lnbmVkIGxhbmd1YWdlTGVuZ3RoLCB1bnNp
Z25lZCYgcG9zaXRpb24pCiB7CiAgICAgdW5zaWduZWQgbGFuZ3VhZ2VTdWJ0YWdzU3RhcnRJbmRl
eCA9IHBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
CmluZGV4IDExZjNmMmJkYTdjNzYzYTFkZmY0Njg1YmZjZWEzZGM5YWVlMjFmMWYuLjg2NGQyOGU0
NWU5NzdjYjJjMTY0Zjg1YjExNTg2M2JhMmMzZTE3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTI5MzAsNyArMjkzMCw3IEBAIHZvaWQgU2VsZWN0
b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZUV4YWN0TWF0Y2hp
bmcoQXNzZW1ibGVyCiAgICAgICAgIG1fYXNzZW1ibGVyLmxvYWRQdHIoQXNzZW1ibGVyOjpBZGRy
ZXNzKGN1cnJlbnRBdHRyaWJ1dGVBZGRyZXNzLCBBdHRyaWJ1dGU6OnZhbHVlTWVtb3J5T2Zmc2V0
KCkpLCB2YWx1ZVN0cmluZ0ltcGwpOwogCiAgICAgICAgIEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbkNh
bGwobV9hc3NlbWJsZXIsIG1fcmVnaXN0ZXJBbGxvY2F0b3IsIG1fc3RhY2tBbGxvY2F0b3IsIG1f
ZnVuY3Rpb25DYWxscyk7Ci0gICAgICAgIGZ1bmN0aW9uQ2FsbC5zZXRGdW5jdGlvbkFkZHJlc3Mo
V1RGOjplcXVhbElnbm9yaW5nQ2FzZU5vbk51bGwpOworICAgICAgICBmdW5jdGlvbkNhbGwuc2V0
RnVuY3Rpb25BZGRyZXNzKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwpOwogICAg
ICAgICBmdW5jdGlvbkNhbGwuc2V0VHdvQXJndW1lbnRzKHZhbHVlU3RyaW5nSW1wbCwgZXhwZWN0
ZWRWYWx1ZVJlZ2lzdGVyKTsKICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChmdW5jdGlvbkNh
bGwuY2FsbEFuZEJyYW5jaE9uQm9vbGVhblJldHVyblZhbHVlKEFzc2VtYmxlcjo6WmVybykpOwog
CkBAIC0yOTQzLDcgKzI5NDMsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJh
dGVFbGVtZW50QXR0cmlidXRlVmFsdWVFeGFjdE1hdGNoaW5nKEFzc2VtYmxlcgogCiAgICAgICAg
IEFzc2VtYmxlcjo6SnVtcCBza2lwQ2FzZUluc2Vuc2l0aXZlQ29tcGFyaXNvbiA9IG1fYXNzZW1i
bGVyLmJyYW5jaFB0cihBc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZVN0cmluZ0ltcGwsIGV4cGVjdGVk
VmFsdWVSZWdpc3Rlcik7CiAgICAgICAgIEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbkNhbGwobV9hc3Nl
bWJsZXIsIG1fcmVnaXN0ZXJBbGxvY2F0b3IsIG1fc3RhY2tBbGxvY2F0b3IsIG1fZnVuY3Rpb25D
YWxscyk7Ci0gICAgICAgIGZ1bmN0aW9uQ2FsbC5zZXRGdW5jdGlvbkFkZHJlc3MoV1RGOjplcXVh
bElnbm9yaW5nQ2FzZU5vbk51bGwpOworICAgICAgICBmdW5jdGlvbkNhbGwuc2V0RnVuY3Rpb25B
ZGRyZXNzKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwpOwogICAgICAgICBmdW5j
dGlvbkNhbGwuc2V0VHdvQXJndW1lbnRzKHZhbHVlU3RyaW5nSW1wbCwgZXhwZWN0ZWRWYWx1ZVJl
Z2lzdGVyKTsKICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChmdW5jdGlvbkNhbGwuY2FsbEFu
ZEJyYW5jaE9uQm9vbGVhblJldHVyblZhbHVlKEFzc2VtYmxlcjo6WmVybykpOwogICAgICAgICBz
a2lwQ2FzZUluc2Vuc2l0aXZlQ29tcGFyaXNvbi5saW5rKCZtX2Fzc2VtYmxlcik7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzU3MjgzOWU2YTgz
YjIxODJiNmVhZWY3ZTk4Y2FhMDAzMWJhYmMzNi4uMWU3ZjU2ZTJmYTkwYWQyYWI0ZTM5YWRlYzJk
NmMzMDhlYjg5NzIyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTAzLTExICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZSB0aGUgZXhhY3QgYXR0cmlidXRl
IG1hdGNoaW5nIHRvIGJlIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjYwOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE1LTAzLTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW0NvbnRlbnQgRXh0ZW5zaW9uc10gTW92ZSBjb21waWxpbmcgb2YgY29u
dGVudCBleHRlbnNpb25zIHRvIHRoZSBVSVByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXggYzJhMzMyYTFjNTBhODMyYzkyNTg5ZDY0YjJi
MTFkNjYzNTIxMGY3NC4uOTk1ZDBkNDIyYjFmMWIyNGRjYTNjNDU4Njk5MjUxNGM0ODYyNTU2YiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTk5
LDQgKzk5LDY5IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsUmVwbGFjZVdpdGhMaXRlcmFsKQogICAg
IEFTU0VSVF9UUlVFKGVxdWFsKHRlc3RTdHJpbmdJbXBsLmdldCgpLCAicjU1NXN1bTU1NSIpKTsK
IH0KIAorVEVTVChXVEYsIFN0cmluZ0ltcGxFcXVhbElnbm9yaW5nQVNDSUlDYXNlQmFzaWMpCit7
CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGEgPSBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJh
bCgiYUJjRGVGRyIpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBiID0gU3RyaW5nSW1wbDo6Y3Jl
YXRlRnJvbUxpdGVyYWwoIkFCQ0RFRkciKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYyA9IFN0
cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKCJhYmNkZWZnIik7CisgICAgUmVmUHRyPFN0cmlu
Z0ltcGw+IGVtcHR5ID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBzaG9ydGVyID0gU3RyaW5nSW1w
bDo6Y3JlYXRlRnJvbUxpdGVyYWwoImFiY2RlZiIpOworCisgICAgLy8gSWRlbnRpdHkuCisgICAg
QVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmdldCgpLCBhLmdldCgpKSk7Cisg
ICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShiLmdldCgpLCBiLmdldCgpKSk7
CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjLmdldCgpLCBjLmdldCgp
KSk7CisKKyAgICAvLyBUcmFuc2l0aXZpdHkuCisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShhLmdldCgpLCBiLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShiLmdldCgpLCBjLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShhLmdldCgpLCBjLmdldCgpKSk7CisKKyAgICAvLyBOZWdhdGl2ZSBj
YXNlcy4KKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmdldCgpLCBl
bXB0eS5nZXQoKSkpOworICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGIu
Z2V0KCksIGVtcHR5LmdldCgpKSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UoYy5nZXQoKSwgZW1wdHkuZ2V0KCkpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShhLmdldCgpLCBzaG9ydGVyLmdldCgpKSk7CisgICAgQVNTRVJUX0ZBTFNF
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYi5nZXQoKSwgc2hvcnRlci5nZXQoKSkpOworICAgIEFT
U0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGMuZ2V0KCksIHNob3J0ZXIuZ2V0KCkp
KTsKK30KKworVEVTVChXVEYsIFN0cmluZ0ltcGxFcXVhbElnbm9yaW5nQVNDSUlDYXNlV2l0aE51
bGwpCit7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHJlZmVyZW5jZSA9IFN0cmluZ0ltcGw6OmNy
ZWF0ZUZyb21MaXRlcmFsKCJhQmNEZUZHIik7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobnVsbHB0ciwgcmVmZXJlbmNlLmdldCgpKSk7CisgICAgQVNTRVJUX0ZBTFNF
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UocmVmZXJlbmNlLmdldCgpLCBudWxscHRyKSk7CisgICAg
QVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShudWxscHRyLCBudWxscHRyKSk7Cit9
CisKK1RFU1QoV1RGLCBTdHJpbmdJbXBsRXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkK
K3sKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYSA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9
IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsK
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGIuZ2V0KCkp
KTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGIuZ2V0KCksIGEuZ2V0
KCkpKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0ltcGxFcXVhbElnbm9yaW5nQVNDSUlDYXNlV2l0
aExhdGluMUNoYXJhY3RlcnMpCit7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGEgPSBTdHJpbmdJ
bXBsOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJhQmPDqWVGRyIpKTsK
KyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIkFCQ8OJRUZHIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBs
PiBjID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
QUJDw6lFRkciKSk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGQgPSBTdHJpbmdJbXBsOjpjcmVh
dGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJhYmPDqWVmZyIpKTsKKworICAgIC8v
IElkZW50aXR5LgorICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5nZXQo
KSwgYS5nZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYi5n
ZXQoKSwgYi5nZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
Yy5nZXQoKSwgYy5nZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UoZC5nZXQoKSwgZC5nZXQoKSkpOworCisgICAgLy8gQWxsIGNvbWJpbmF0aW9uLgorICAgIEFT
U0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGIuZ2V0KCkpKTsKKyAg
ICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGMuZ2V0KCkpKTsK
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGQuZ2V0KCkp
KTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShiLmdldCgpLCBjLmdl
dCgpKSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYi5nZXQoKSwg
ZC5nZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYy5nZXQo
KSwgZC5nZXQoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGRjNTU0NDZmZjg0
NmNiOGM4ZDFiMGQzNzkwNDAzNmZjZGUxNjZhZjcuLjRkN2Q5NmM3MThmMTc5NmZmYzRiNzBhZGI2
YmI0YWU5MjMzOWE4MDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z1ZpZXcuY3BwCkBAIC0xNDIsNCArMTQyLDc3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0
b3JzKQogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIu
dG9TdHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAnaCcsICdl
JywgJ2wnLCAnbyd9KSk7CiB9CiAKK1RFU1QoV1RGLCBTdHJpbmdWaWV3RXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZUJhc2ljKQoreworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBhID0gU3RyaW5nSW1wbDo6
Y3JlYXRlRnJvbUxpdGVyYWwoImFCY0RlRkciKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9
IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKCJBQkNERUZHIik7CisgICAgUmVmUHRyPFN0
cmluZ0ltcGw+IGMgPSBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCgiYWJjZGVmZyIpOwor
ICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBlbXB0eSA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gc2hv
cnRlciA9IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKCJhYmNkZWYiKTsKKworICAgIFN0
cmluZ1ZpZXcgc3RyaW5nVmlld0EoKmEuZ2V0KCkpOworICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmll
d0IoKmIuZ2V0KCkpOworICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlld0MoKmMuZ2V0KCkpOworICAg
IFN0cmluZ1ZpZXcgZW1wdHlTdHJpbmdWaWV3KCplbXB0eS5nZXQoKSk7CisgICAgU3RyaW5nVmll
dyBzaG9ydGVyU3RyaW5nVmlldygqc2hvcnRlci5nZXQoKSk7CisKKyAgICBBU1NFUlRfVFJVRShl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJpbmdWaWV3QikpOworICAgIEFT
U0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0IsIHN0cmluZ1ZpZXdD
KSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwg
c3RyaW5nVmlld0MpKTsKKworICAgIC8vIElkZW50aXR5LgorICAgIEFTU0VSVF9UUlVFKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdBKSk7CisgICAgQVNTRVJU
X1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3RyaW5nVmlld0IpKTsK
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdDLCBzdHJp
bmdWaWV3QykpOworCisgICAgLy8gVHJhbnNpdGl2aXR5LgorICAgIEFTU0VSVF9UUlVFKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdCKSk7CisgICAgQVNTRVJU
X1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3RyaW5nVmlld0MpKTsK
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJp
bmdWaWV3QykpOworCisgICAgLy8gTmVnYXRpdmUgY2FzZXMuCisgICAgQVNTRVJUX0ZBTFNFKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIGVtcHR5U3RyaW5nVmlldykpOworICAg
IEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdCLCBlbXB0eVN0
cmluZ1ZpZXcpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmdWaWV3QywgZW1wdHlTdHJpbmdWaWV3KSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHNob3J0ZXJTdHJpbmdWaWV3KSk7CisgICAgQVNTRVJU
X0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0IsIHNob3J0ZXJTdHJpbmdW
aWV3KSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmll
d0MsIHNob3J0ZXJTdHJpbmdWaWV3KSk7Cit9CisKK1RFU1QoV1RGLCBTdHJpbmdWaWV3RXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKK3sKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYSA9
IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsK
KyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXdBKCph
LmdldCgpKTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXdCKCpiLmdldCgpKTsKKyAgICBBU1NF
UlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJpbmdWaWV3Qikp
OworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0IsIHN0
cmluZ1ZpZXdBKSk7Cit9CisKK1RFU1QoV1RGLCBTdHJpbmdWaWV3RXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZVdpdGhMYXRpbjFDaGFyYWN0ZXJzKQoreworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBhID0g
U3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiYUJjw6ll
RkciKSk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGIgPSBTdHJpbmdJbXBsOjpjcmVhdGUocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJBQkPDiUVGRyIpKTsKKyAgICBSZWZQdHI8U3Ry
aW5nSW1wbD4gYyA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIkFCQ8OpRUZHIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBkID0gU3RyaW5nSW1w
bDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiYWJjw6llZmciKSk7Cisg
ICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3QSgqYS5nZXQoKSk7CisgICAgU3RyaW5nVmlldyBzdHJp
bmdWaWV3QigqYi5nZXQoKSk7CisgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3QygqYy5nZXQoKSk7
CisgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3RCgqZC5nZXQoKSk7CisKKyAgICAvLyBJZGVudGl0
eS4KKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBz
dHJpbmdWaWV3QSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3Ry
aW5nVmlld0IsIHN0cmluZ1ZpZXdCKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShzdHJpbmdWaWV3Qywgc3RyaW5nVmlld0MpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdELCBzdHJpbmdWaWV3RCkpOworCisgICAgLy8g
QWxsIGNvbWJpbmF0aW9uLgorICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KHN0cmluZ1ZpZXdBLCBzdHJpbmdWaWV3QikpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdDKSk7CisgICAgQVNTRVJUX1RSVUUo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3QSwgc3RyaW5nVmlld0QpKTsKKyAgICBB
U1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3RyaW5nVmll
d0MpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3
Qiwgc3RyaW5nVmlld0QpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KHN0cmluZ1ZpZXdDLCBzdHJpbmdWaWV3RCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNTI4Y2E0N2QyZjlhZjM0NGRmOWEyMzk2YTBlZjFhMDExYTkzYjI2MS4u
ZDIxNDBiZDc4NGQ0ODRjYzE2ZjVjMjM1NTA2YjgxZWMxY2QzZTUzNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE1LTAzLTExICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSB0aGUgZXhhY3QgYXR0cmlidXRlIG1hdGNoaW5nIHRvIGJlIEFT
Q0lJIGNhc2UtaW5zZW5zaXRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MjYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZhbHVlLW1hdGNo
LWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUtbWF0Y2gtaXMtYXNjaWktY2Fz
ZS1pbnNlbnNpdGl2ZS5odG1sOiBBZGRlZC4KKwogMjAxNS0wMy0wNiAgR3l1eW91bmcgS2ltICA8
Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRl
bmluZyBvbiA3dGggTWFyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMv
YXR0cmlidXRlLWV4YWN0LXZhbHVlLW1hdGNoLWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZh
bHVlLW1hdGNoLWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZmYjVmOGE3ZDlmZTU2YTA0MTk1ZTdmNzYxZjkyY2JlOGYwYTM2YTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUt
bWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
MTMgQEAKK1doZW4gbWF0Y2hpbmcgYXR0cmlidXRlcyBjYXNlIGluc2Vuc2l0aXZlbHksIGl0IHNo
b3VsZCBiZSBBU0NJSSBjYXNlIGluc2Vuc2l0aXZlLiBUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGJl
aGF2aW9yIGZvciBleGFjdCB2YWx1ZSBtYXRjaGluZyAoZS5nLiBbYT0iYiJdKQorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyAiW2RhdGEtYXR0cmlidXRlPVdlYktpdC3D
iV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0
cmlidXRlPVdlYktpdC3DiV0nKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw4ldJylbMF0uaWQgaXMg
InRhcmdldDEiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIw
MCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rl
c3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAq
IilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRD
b2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJpYnV0ZT13ZWJr
aXQtw4ldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRh
LWF0dHJpYnV0ZT13ZWJraXQtw4ldJykubGVuZ3RoIGlzIDEKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOJXScpWzBdLmlk
IGlzICJ0YXJnZXQyIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAs
IDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJv
b3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNd
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbZGF0YS1hdHRyaWJ1dGU9
V0VCS0lULcOJXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBb
ZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJXScpLmxlbmd0aCBpcyAxCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdFQktJVC3DiV0nKVsw
XS5pZCBpcyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1
LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoi
KVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW2RhdGEtYXR0cmli
dXRlPVdlYktpdC3DqV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJv
b3QgW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DqV0nKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw6ld
JylbMF0uaWQgaXMgInRhcmdldDQiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwg
MCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rl
c3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAq
IilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0p
LmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0
dHJpYnV0ZT13ZWJraXQtw6ldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVz
dC1yb290IFtkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw6ldJykubGVuZ3RoIGlzIDEKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9d2Via2l0
LcOpXScpWzBdLmlkIGlzICJ0YXJnZXQ1IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUs
IDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJv
b3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRd
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorCitUZXN0aW5nICJbZGF0
YS1hdHRyaWJ1dGU9V2ViS2l0LcOJIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw4kgaV0nKS5sZW5ndGggaXMgMwor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0
ZT1XZWJLaXQtw4kgaV0nKVswXS5pZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOJIGldJylbMV0u
aWQgaXMgInRhcmdldDIiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJv
b3QgW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DiSBpXScpWzJdLmlkIGlzICJ0YXJnZXQzIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3Qg
KiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFd
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOJIGld
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJp
YnV0ZT13ZWJraXQtw4kgaV0nKS5sZW5ndGggaXMgMworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw4kgaV0nKVswXS5pZCBp
cyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBb
ZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOJIGldJylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPXdlYmtp
dC3DiSBpXScpWzJdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3Ig
aXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwg
MTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDAp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0
LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0
aW5nICJbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XRUJLSVQtw4kgaV0nKS5sZW5n
dGggaXMgMworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRh
LWF0dHJpYnV0ZT1XRUJLSVQtw4kgaV0nKVswXS5pZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJ
IGldJylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
JyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdFQktJVC3DiSBpXScpWzJdLmlkIGlzICJ0YXJn
ZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJv
b3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIp
WzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbZGF0YS1hdHRyaWJ1dGU9V2Vi
S2l0LcOpIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtk
YXRhLWF0dHJpYnV0ZT1XZWJLaXQtw6kgaV0nKS5sZW5ndGggaXMgMgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw6kgaV0n
KVswXS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rl
c3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOpIGldJylbMV0uaWQgaXMgInRhcmdldDUi
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qt
cm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilb
MV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAi
cmdiKDEwLCAxMDAsIDIwMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw6kg
aV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0
cmlidXRlPXdlYmtpdC3DqSBpXScpLmxlbmd0aCBpcyAyCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPXdlYmtpdC3DqSBpXScpWzBdLmlk
IGlzICJ0YXJnZXQ0IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290
IFtkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw6kgaV0nKVsxXS5pZCBpcyAidGFyZ2V0NSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoi
KVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENv
bG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJy
Z2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAs
IDEwMCwgMjAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdFQktJVC3DqV0iCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdFQktJVC3DqV0nKS5s
ZW5ndGggaXMgMworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtt
dWx0aXBsZT1XRUJLSVQtw6ldJylbMF0uaWQgaXMgInRhcmdldDEiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdFQktJVC3DqV0nKVsxXS5pZCBp
cyAidGFyZ2V0MiIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBb
bXVsdGlwbGU9V0VCS0lULcOpXScpWzJdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3Ig
aXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAs
IDApIgorCitUZXN0aW5nICJbbXVsdGlwbGU9V2ViS2l0LcOpXSIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2ViS2l0LcOpXScpLmxlbmd0aCBp
cyAzCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxl
PVdlYktpdC3DqV0nKVswXS5pZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2ViS2l0LcOpXScpWzFdLmlkIGlzICJ0YXJn
ZXQyIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBs
ZT1XZWJLaXQtw6ldJylbMl0uaWQgaXMgInRhcmdldDMiCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRD
b2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBp
cyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwg
MCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
I3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisK
K1Rlc3RpbmcgIlttdWx0aXBsZT1XZWJraXQtw6ldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJraXQtw6ldJykubGVuZ3RoIGlzIDMKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2Via2l0
LcOpXScpWzBdLmlkIGlzICJ0YXJnZXQxIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJraXQtw6ldJylbMV0uaWQgaXMgInRhcmdldDIiCitQ
QVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdlYmtp
dC3DqV0nKVsyXS5pZCBpcyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
MTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEw
MCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGlu
ZyAiW211bHRpcGxlPXdlYmtpdC3DiV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
JyN0ZXN0LXJvb3QgW211bHRpcGxlPXdlYmtpdC3DiV0nKS5sZW5ndGggaXMgMgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT13ZWJraXQtw4ldJylb
MF0uaWQgaXMgInRhcmdldDQiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0
LXJvb3QgW211bHRpcGxlPXdlYmtpdC3DiV0nKVsxXS5pZCBpcyAidGFyZ2V0NSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsw
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9y
IGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
MTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEw
MCwgMjAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPXdlYktpdC3DiV0iCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPXdlYktpdC3DiV0nKS5sZW5n
dGggaXMgMgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0
aXBsZT13ZWJLaXQtw4ldJylbMF0uaWQgaXMgInRhcmdldDQiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPXdlYktpdC3DiV0nKVsxXS5pZCBpcyAi
dGFyZ2V0NSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsy
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENv
bG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdFQktJVC3D
qSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlw
bGU9V0VCS0lULcOpIGldJykubGVuZ3RoIGlzIDMKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V0VCS0lULcOpIGldJylbMF0uaWQgaXMgInRhcmdl
dDEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxl
PVdFQktJVC3DqSBpXScpWzFdLmlkIGlzICJ0YXJnZXQyIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XRUJLSVQtw6kgaV0nKVsyXS5pZCBpcyAi
dGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAw
KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVz
dC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290
ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsz
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdlYktp
dC3DqSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVs
dGlwbGU9V2ViS2l0LcOpIGldJykubGVuZ3RoIGlzIDMKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2ViS2l0LcOpIGldJylbMF0uaWQgaXMgInRh
cmdldDEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRp
cGxlPVdlYktpdC3DqSBpXScpWzFdLmlkIGlzICJ0YXJnZXQyIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJLaXQtw6kgaV0nKVsyXS5pZCBp
cyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwg
MjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIj
dGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoi
KVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdl
YmtpdC3DqSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBb
bXVsdGlwbGU9V2Via2l0LcOpIGldJykubGVuZ3RoIGlzIDMKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2Via2l0LcOpIGldJylbMF0uaWQgaXMg
InRhcmdldDEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211
bHRpcGxlPVdlYmtpdC3DqSBpXScpWzFdLmlkIGlzICJ0YXJnZXQyIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJraXQtw6kgaV0nKVsyXS5p
ZCBpcyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEw
MCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAw
KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVz
dC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290
ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW211bHRpcGxl
PXdlYmtpdC3DiSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9v
dCBbbXVsdGlwbGU9d2Via2l0LcOJIGldJykubGVuZ3RoIGlzIDIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2Via2l0LcOJIGldJylbMF0uaWQg
aXMgInRhcmdldDQiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3Qg
W211bHRpcGxlPXdlYmtpdC3DiSBpXScpWzFdLmlkIGlzICJ0YXJnZXQ1IgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwg
MTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAy
MDApIgorCitUZXN0aW5nICJbbXVsdGlwbGU9d2ViS2l0LcOJIGldIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT13ZWJLaXQtw4kgaV0nKS5sZW5n
dGggaXMgMgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0
aXBsZT13ZWJLaXQtw4kgaV0nKVswXS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2ViS2l0LcOJIGldJylbMV0uaWQg
aXMgInRhcmdldDUiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwg
MCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rl
c3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAq
IilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91
bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUtbWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNl
bnNpdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0
LXZhbHVlLW1hdGNoLWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MjYwMDQ1YTM1Yzg2MjM3ZTQzMWYwYmI1NTE3NzI3Y2UyYTNhMDYyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZhbHVlLW1hdGNo
LWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
KyN0ZXN0LXJvb3QgKiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorPC9zdHlsZT4K
KzxzdHlsZSBpZD0ic3R5bGUiPgorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
c3R5bGU9ImRpc3BsYXk6bm9uZSIgaWQ9InRlc3Qtcm9vdCI+CisgICAgICAgIDxkaXYgZGF0YS1h
dHRyaWJ1dGU9IldlYktpdC3DiSIgbXVsdGlwbGU9IldFQktJVC3DqSIgaWQ9InRhcmdldDEiPjwv
ZGl2PgorICAgICAgICA8ZGl2IGRhdGEtYXR0cmlidXRlPSJ3ZWJraXQtw4kiIG11bHRpcGxlPSJX
ZWJLaXQtw6kiIGlkPSJ0YXJnZXQyIj48L2Rpdj4KKyAgICAgICAgPGRpdiBkYXRhLWF0dHJpYnV0
ZT0iV0VCS0lULcOJIiBtdWx0aXBsZT0iV2Via2l0LcOpIiBpZD0idGFyZ2V0MyI+PC9kaXY+Cisg
ICAgICAgIDxkaXYgZGF0YS1hdHRyaWJ1dGU9IldlYktpdC3DqSIgbXVsdGlwbGU9IndlYmtpdC3D
iSIgaWQ9InRhcmdldDQiPjwvZGl2PgorICAgICAgICA8ZGl2IGRhdGEtYXR0cmlidXRlPSJ3ZWJr
aXQtw6kiIG11bHRpcGxlPSJ3ZWJLaXQtw4kiIGlkPSJ0YXJnZXQ1Ij48L2Rpdj4KKyAgICA8L2Rp
dj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignV2hlbiBtYXRjaGluZyBhdHRyaWJ1
dGVzIGNhc2UgaW5zZW5zaXRpdmVseSwgaXQgc2hvdWxkIGJlIEFTQ0lJIGNhc2UgaW5zZW5zaXRp
dmUuIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgYmVoYXZpb3IgZm9yIGV4YWN0IHZhbHVlIG1hdGNo
aW5nIChlLmcuIFthPSJiIl0pJyk7CisKK2Z1bmN0aW9uIHRlc3RRdWVyeVNlbGVjdG9yKHNlbGVj
dG9yLCBleHBlY3RlZElkcykgeworICAgIHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCciICsgc2VsZWN0b3IgKyAiJykubGVuZ3RoIiwgJycgKyBleHBlY3RlZElkcy5sZW5ndGgp
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRJZHMubGVuZ3RoOyArK2kpCisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnIiAr
IHNlbGVjdG9yICsgIicpWyIgKyBpICsgIl0uaWQiLCAndGFyZ2V0JyArIGV4cGVjdGVkSWRzW2ld
KTsKK30KKworZnVuY3Rpb24gdGVzdFN0eWxpbmcoc2VsZWN0b3IsIGV4cGVjdGVkSWRzKSB7Cisg
ICAgdmFyIHN0eWxpbmdFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlIik7
CisgICAgc3R5bGluZ0VsZW1lbnQuaW5uZXJIVE1MID0gJycgKyBzZWxlY3RvciArICcgeyBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2IoMTAsIDEwMCwgMjAwKTsgfSc7CisKKyAgICB2YXIgYWxsVGVzdENh
c2VzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIik7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhbGxUZXN0Q2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFy
IGV4cGVjdE1hdGNoID0gZXhwZWN0ZWRJZHMuaW5kZXhPZihwYXJzZUludChhbGxUZXN0Q2FzZXNb
aV0uaWQucmVwbGFjZSgndGFyZ2V0JywgJycpKSkgPj0gMDsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWycgKyBpICsgJ10pLmJhY2tncm91bmRDb2xvcicsIGV4cGVjdE1hdGNoID8g
J3JnYigxMCwgMTAwLCAyMDApJyA6ICdyZ2IoMjU1LCAwLCAwKScpOworICAgIH0KKworICAgIHN0
eWxpbmdFbGVtZW50LmlubmVySFRNTCA9ICcnOworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0b3Io
c2VsZWN0b3IsIGV4cGVjdGVkSWRzKSB7CisgICAgZGVidWcoIlRlc3RpbmcgXCIiICsgc2VsZWN0
b3IgKyAiXCIiKTsKKyAgICB0ZXN0UXVlcnlTZWxlY3RvcigiI3Rlc3Qtcm9vdCAiICsgc2VsZWN0
b3IsIGV4cGVjdGVkSWRzKTsKKyAgICB0ZXN0U3R5bGluZygiI3Rlc3Qtcm9vdCAiICsgc2VsZWN0
b3IsIGV4cGVjdGVkSWRzKTsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciB0ZXN0Q2FzZXMgPSBb
CisgICAgLy8gUmVndWxhciBhdHRyaWJ1dGUgbWF0Y2hpbmcgaXMgY2FzZSBzZW5zaXRpdmUuCisg
ICAgWydbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOJXScsIFsxXV0sCisgICAgWydbZGF0YS1hdHRy
aWJ1dGU9d2Via2l0LcOJXScsIFsyXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJ
XScsIFszXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOpXScsIFs0XV0sCisgICAg
WydbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOpXScsIFs1XV0sCisKKyAgICAvLyBTYW1lIHNlbGVj
dG9ycyB3aXRoIHRoZSBjYXNlLWluc2Vuc2l0aXZpZSBmbGFnLgorICAgIFsnW2RhdGEtYXR0cmli
dXRlPVdlYktpdC3DiSBpXScsIFsxLCAyLCAzXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9d2Vi
a2l0LcOJIGldJywgWzEsIDIsIDNdXSwKKyAgICBbJ1tkYXRhLWF0dHJpYnV0ZT1XRUJLSVQtw4kg
aV0nLCBbMSwgMiwgM11dLAorICAgIFsnW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DqSBpXScsIFs0
LCA1XV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOpIGldJywgWzQsIDVdXSwKKwor
ICAgIC8vICJtdWx0aXBsZSIgaXMgb25lIG9mIHRob3NlIHdlaXJkIGxlZ2FjeSBleGNlcHRpb246
IGl0IGlzIGFsd2F5cyBjYXNlIGluc2Vuc2l0aXZlIGluIEhUTUwuCisgICAgWydbbXVsdGlwbGU9
V0VCS0lULcOpXScsIFsxLCAyLCAzXV0sCisgICAgWydbbXVsdGlwbGU9V2ViS2l0LcOpXScsIFsx
LCAyLCAzXV0sCisgICAgWydbbXVsdGlwbGU9V2Via2l0LcOpXScsIFsxLCAyLCAzXV0sCisgICAg
WydbbXVsdGlwbGU9d2Via2l0LcOJXScsIFs0LCA1XV0sCisgICAgWydbbXVsdGlwbGU9d2ViS2l0
LcOJXScsIFs0LCA1XV0sCisgICAgWydbbXVsdGlwbGU9V0VCS0lULcOpIGldJywgWzEsIDIsIDNd
XSwKKyAgICBbJ1ttdWx0aXBsZT1XZWJLaXQtw6kgaV0nLCBbMSwgMiwgM11dLAorICAgIFsnW211
bHRpcGxlPVdlYmtpdC3DqSBpXScsIFsxLCAyLCAzXV0sCisgICAgWydbbXVsdGlwbGU9d2Via2l0
LcOJIGldJywgWzQsIDVdXSwKKyAgICBbJ1ttdWx0aXBsZT13ZWJLaXQtw4kgaV0nLCBbNCwgNV1d
LAorXTsKKworZm9yICh2YXIgdGVzdENhc2Ugb2YgdGVzdENhc2VzKSB7CisgICAgdGVzdFNlbGVj
dG9yKHRlc3RDYXNlWzBdLCB0ZXN0Q2FzZVsxXSk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248492</attachid>
            <date>2015-03-11 22:00:53 -0700</date>
            <delta_ts>2015-03-13 20:52:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142609-20150311220028.patch</filename>
            <type>text/plain</type>
            <size>52947</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFiNjJlYWM3Yzk5MjgyNzdkN2MyMWY0
MzdjZDY5YzRiYmEzMWU0ZDcuLjRiZGM2ZjcyOGJkOWU1MzM4OWMxZmRlZDU0OWU5NTBiYTQ5YWEz
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTUtMDMtMTEgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIHRoZSBleGFjdCBhdHRyaWJ1dGUg
bWF0Y2hpbmcgdG8gYmUgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEFTQ0lJIGNhc2Ug
aW5zZW5zaXRpdmUgY29tcGFyaXNvbnMgdG8gYWxsIHRoZSBzdHJpbmcKKyAgICAgICAgY2xhc3Nl
cy4KKworICAgICAgICBUaGUgbmV3IGZpbGUgU3RyaW5nQ29tbW9uLmggaGFzIHRoZSBjb21tb24g
YWxnb3JpdGhtIHRvIGF2b2lkIHJlcGVhdGluZworICAgICAgICB0aGUgc2FtZSBjb2RlIHdpdGgg
ZGlmZmVyZW50IHR5cGVzLgorCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2o6Cisg
ICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oOgorICAgICAg
ICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJp
bmdDb21tb24uaDogQWRkZWQuCisgICAgICAgIChXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2Up
OgorICAgICAgICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKToKKyAgICAgICAg
KiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6Y29udGFpbnNPbmx5QVND
SUlBbHBoYUxvd2VyKToKKyAgICAgICAgKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSk6Cisg
ICAgICAgIChXVEY6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2VOb25OdWxsKToKKyAgICAgICAgKiB3
dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nVmlldy5oOgor
ICAgICAgICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKToKKyAgICAgICAgKiB3dGYvdGV4
dC9XVEZTdHJpbmcuaDoKKyAgICAgICAgKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSk6CisK
IDIwMTUtMDMtMDYgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaXggY3Jhc2hlcyBzZWVuIG9uIHRoZSB0aGUgV2luZG93cyBidWlsZGJvdHMgYWZ0ZXIgbXkg
bGFzdCBwYXRjaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOGViMWVmZTc0ZGUzNTc3OGQ0MjI4MzVkZTZiNWQy
YWQzYmMzMTg3Li5lNDkyZjI1MWUwNjQ4MTkyMzQ3MWVlMzYwNGY0ZDMwNjEyMjgzN2RhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMDMtMTEgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIHRoZSBleGFjdCBhdHRyaWJ1dGUg
bWF0Y2hpbmcgdG8gYmUgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gQ1NTLCB0ZXN0aW5nIGF0dHJpYnV0ZSB2
YWx1ZXMgc2hvdWxkIGJlIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUsCisgICAgICAgIHByZXZpb3Vz
bHkgd2Ugd2VyZSB1c2luZyBmdWxsIHVuaWNvZGUgY2FzZSBjb252ZXJzaW9uLgorCisgICAgICAg
IFRlc3Q6IGZhc3Qvc2VsZWN0b3JzL2F0dHJpYnV0ZS1leGFjdC12YWx1ZS1tYXRjaC1pcy1hc2Np
aS1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUtleWZyYW1lU2VsZWN0b3IpOgorICAg
ICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmg6CisgICAgICAgIChXZWJD
b3JlOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3NqaXQv
U2VsZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVy
OjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudEF0dHJpYnV0ZVZhbHVlRXhh
Y3RNYXRjaGluZyk6CisKIDIwMTUtMDMtMDYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBNb3ZlIGNvbXBpbGluZyBvZiBjb250ZW50
IGV4dGVuc2lvbnMgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oK
aW5kZXggNWVlZDEzZDgwNjBkYjQ0MTY3MTE1Y2U5MjBjMGFlYWQ5NmFhOTNlZi4uYzU2NzRlZjI4
YTc4MDNjYmViYWUyOTdmMmEyMWMwNmQzNjUxMDVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYudmN4cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52
Y3hwcm9qCkBAIC0yODgsNiArMjg4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
Zlx0ZXh0XExDaGFyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdGV4dFxT
dHJpbmdCdWZmZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0
cmluZ0J1aWxkZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0
cmluZ0NvbW1vbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRleHRcU3Ry
aW5nQ29uY2F0ZW5hdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0
XFN0cmluZ0hhc2guaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0
cmluZ0ltcGwuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZj
eHByb2ouZmlsdGVycyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVy
cwppbmRleCBiNWE2N2EzMjUxNzkwYjEwOWZlZTdjYTA3ODM4ZjM4MzVjNjc4MmE0Li4xZjczNWU0
MDg2MDgwNDIwYjI4M2MwNzU5NmU3YzcxY2QxMmY2MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dURi9XVEYudmN4
cHJvai9XVEYudmN4cHJvai5maWx0ZXJzCkBAIC0zMTgsNiArMzE4LDkgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0Zlx0ZXh0XFN0cmluZ0J1aWxkZXIuaCI+CiAgICAgICA8RmlsdGVy
PnRleHQ8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHd0Zlx0ZXh0XFN0cmluZ0NvbW1vbi5oIj4KKyAgICAgIDxGaWx0ZXI+dGV4dDwvRmlsdGVy
PgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRleHRc
U3RyaW5nQ29uY2F0ZW5hdGUuaCI+CiAgICAgICA8RmlsdGVyPnRleHQ8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGY3ZGYyZWE4NmE2ZDAyY2E0NGJjZWMyMTg0MjVkYTE5ZjA5MmZmYmEuLjlmMzlhYjYxYzhmYmZk
NTViNTY2MWUwMGMxNDQ1ZDliNWJmODMzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNzMsNiArNzMsNyBAQAogCQkyQ0RFRDBFRjE4MTE1QzM4MDA0REJB
NzAgLyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovOyB9
OwogCQkyQ0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMTE4MTE1Qzg1MDA0REJB
NzAgLyogUnVuTG9vcC5jcHAgKi87IH07CiAJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAvKiBS
dW5Mb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
Q0RFRDBGMjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovOyB9OworCQk0MzBCNDc4OTFB
QUFBQzFBMDAxMjIzREEgLyogU3RyaW5nQ29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzBCNDc4NzFBQUFBQzFBMDAxMjIzREEgLyogU3RyaW5n
Q29tbW9uLmggKi87IH07CiAJCTdDQkJBMDc0MTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCQkEw
NzMxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggKi87IH07CiAJCTdDREQ3RkY4MTg2
RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogSXRl
cmF0b3JBZGFwdG9ycy5oICovOyB9OwogCQk3Q0REN0ZGQTE4NkQyQTU0MDA3NDMzQ0QgLyogSXRl
cmF0b3JSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCAqLzsgfTsKQEAg
LTM1Nyw2ICszNTgsNyBAQAogCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENG
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BDRi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDREVEMEYxMTgxMTVDODUwMDREQkE3MCAv
KiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxv
b3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0RFRDBGMjE4MTE1Qzg1MDA0
REJBNzAgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdW5M
b29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMEI0Nzg3MUFBQUFDMUEwMDEy
MjNEQSAvKiBTdHJpbmdDb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RyaW5nQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYyMTQ2
ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
bGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVEMjQ3QjZF
MTQ2ODlDNDcwMEU3OEI3NiAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjcwMTQ2ODlDNDcwMEU3
OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVidWdSZWxlYXNl
LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTQ5LDYgKzk1MSw3IEBA
CiAJCQkJQThBNDczMjMxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0J1ZmZlci5oICovLAogCQkJ
CUE4QTQ3MzI0MTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLywKIAkJCQlB
OEE0NzMyNTE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nQnVpbGRlci5oICovLAorCQkJCTQzMEI0
Nzg3MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJpbmdDb21tb24uaCAqLywKIAkJCQlBOEE0NzMyNjE1
MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nQ29uY2F0ZW5hdGUuaCAqLywKIAkJCQlBOEE0NzMyNzE1
MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFzaC5oICovLAogCQkJCUE4QTQ3MzI4MTUxQTgyNUIw
MDQxMjNGRiAvKiBTdHJpbmdJbXBsLmNwcCAqLywKQEAgLTExOTYsNiArMTE5OSw3IEBACiAJCQkJ
ODNGQkE5MzIxOURGNDU5NzAwRjMwQURCIC8qIFR5cGVDYXN0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE2RUIxRTAxODdEMEJEMzAwMzAxMjZGIC8qIFN0cmluZ1ZpZXcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3NDMzMTUxQTgyNUIwMDQxMjNGRiAvKiBUZW1wb3JhcnlDaGFuZ2UuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQzMEI0Nzg5MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJpbmdDb21tb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ0MTUxQTgyNUIwMDQxMjNGRiAvKiBUZXh0UG9z
aXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ3MTUxQTgyNUIwMDQxMjNGRiAvKiBU
aHJlYWRGdW5jdGlvbkludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ5MTUx
QTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZTNmOTJmZTQwMzFlMjZmNjUyOGJkZTI0OGQx
YzFiOGI2Y2M3ODBlNC4uZWMwMTg4MDkxZDE4YzNhZGE5MmI1NjNjMDIwY2NjNjkzYmM0NWFmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dU
Ri93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTEyOSw2ICsxMjksNyBAQCBzZXQoV1RGX0hFQURFUlMK
ICAgICB0ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaAogICAgIHRleHQvTENoYXIuaAog
ICAgIHRleHQvU3RyaW5nQnVmZmVyLmgKKyAgICB0ZXh0L1N0cmluZ0NvbW1vbi5oCiAgICAgdGV4
dC9TdHJpbmdIYXNoLmgKICAgICB0ZXh0L1N0cmluZ0ltcGwuaAogICAgIHRleHQvU3RyaW5nVmll
dy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oIGIvU291
cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaAppbmRleCBiYWU5ZDM2MmQyNzUxZTVhNzNj
ZTBiMWI3ZTJhNDExYjAxODM3ZjMzLi5jOWNkZDY4MDkyZWQ1N2UwMDBkMjUyZWJiZjE2YTc4YzI0
ZmYxODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgKQEAgLTI0Nyw2ICsyNDcsMTAg
QEAgaW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2UoY29uc3QgTENoYXIqIGEsIGNvbnN0IEF0
b21pY1N0cmluZyYgYikgeyByZXR1cm4gZXEKIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNl
KGNvbnN0IGNoYXIqIGEsIGNvbnN0IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJZ25v
cmluZ0Nhc2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGEpLCBiLmltcGwoKSk7IH0K
IGlubGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgQXRv
bWljU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShhLmltcGwoKSwgYi5pbXBs
KCkpOyB9CiAKK2lubGluZSBib29sIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0dXJuIGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQoraW5saW5lIGJvb2wgZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1
cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmltcGwoKSwgYi5pbXBsKCkpOyB9CitpbmxpbmUg
Ym9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuaW1wbCgpLCBiLmlt
cGwoKSk7IH0KKwogLy8gRGVmaW5lIGV4dGVybmFsIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHRoZSBj
b21tb25seSB1c2VkIGF0b21pYyBzdHJpbmdzLgogLy8gVGhlc2UgYXJlIG9ubHkgdXNhYmxlIGZy
b20gdGhlIG1haW4gdGhyZWFkLgogI2lmbmRlZiBBVE9NSUNTVFJJTkdfSElERV9HTE9CQUxTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1vbi5oIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdDb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTBkYzc3ZThhOThmOTdjYTJk
MjgxMTNiZmQwOTdkNGNhY2E3ODhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdDb21tb24uaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU3RyaW5nQ29tbW9uX2gKKyNkZWZpbmUgU3RyaW5nQ29tbW9uX2gKKworI2luY2x1ZGUgPHVu
aWNvZGUvdWNoYXIuaD4KKyNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0xDaGFyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjb25zdCBVQ2hhciBhc2NpaUNh
c2VGb2xkVGFibGVbMjU2XSA9IHsKKyAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAw
eDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAweDBhLCAweDBiLCAweDBjLCAweDBkLCAweDBl
LCAweDBmLAorICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4
MTcsIDB4MTgsIDB4MTksIDB4MWEsIDB4MWIsIDB4MWMsIDB4MWQsIDB4MWUsIDB4MWYsCisgICAg
MHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwgMHgyNSwgMHgyNiwgMHgyNywgMHgyOCwgMHgy
OSwgMHgyYSwgMHgyYiwgMHgyYywgMHgyZCwgMHgyZSwgMHgyZiwKKyAgICAweDMwLCAweDMxLCAw
eDMyLCAweDMzLCAweDM0LCAweDM1LCAweDM2LCAweDM3LCAweDM4LCAweDM5LCAweDNhLCAweDNi
LCAweDNjLCAweDNkLCAweDNlLCAweDNmLAorICAgIDB4NDAsIDB4NjEsIDB4NjIsIDB4NjMsIDB4
NjQsIDB4NjUsIDB4NjYsIDB4NjcsIDB4NjgsIDB4NjksIDB4NmEsIDB4NmIsIDB4NmMsIDB4NmQs
IDB4NmUsIDB4NmYsCisgICAgMHg3MCwgMHg3MSwgMHg3MiwgMHg3MywgMHg3NCwgMHg3NSwgMHg3
NiwgMHg3NywgMHg3OCwgMHg3OSwgMHg3YSwgMHg1YiwgMHg1YywgMHg1ZCwgMHg1ZSwgMHg1ZiwK
KyAgICAweDYwLCAweDYxLCAweDYyLCAweDYzLCAweDY0LCAweDY1LCAweDY2LCAweDY3LCAweDY4
LCAweDY5LCAweDZhLCAweDZiLCAweDZjLCAweDZkLCAweDZlLCAweDZmLAorICAgIDB4NzAsIDB4
NzEsIDB4NzIsIDB4NzMsIDB4NzQsIDB4NzUsIDB4NzYsIDB4NzcsIDB4NzgsIDB4NzksIDB4N2Es
IDB4N2IsIDB4N2MsIDB4N2QsIDB4N2UsIDB4N2YsCisgICAgMHg4MCwgMHg4MSwgMHg4MiwgMHg4
MywgMHg4NCwgMHg4NSwgMHg4NiwgMHg4NywgMHg4OCwgMHg4OSwgMHg4YSwgMHg4YiwgMHg4Yywg
MHg4ZCwgMHg4ZSwgMHg4ZiwKKyAgICAweDkwLCAweDkxLCAweDkyLCAweDkzLCAweDk0LCAweDk1
LCAweDk2LCAweDk3LCAweDk4LCAweDk5LCAweDlhLCAweDliLCAweDljLCAweDlkLCAweDllLCAw
eDlmLAorICAgIDB4YTAsIDB4YTEsIDB4YTIsIDB4YTMsIDB4YTQsIDB4YTUsIDB4YTYsIDB4YTcs
IDB4YTgsIDB4YTksIDB4YWEsIDB4YWIsIDB4YWMsIDB4YWQsIDB4YWUsIDB4YWYsCisgICAgMHhi
MCwgMHhiMSwgMHhiMiwgMHhiMywgMHhiNCwgMHhiNSwgMHhiNiwgMHhiNywgMHhiOCwgMHhiOSwg
MHhiYSwgMHhiYiwgMHhiYywgMHhiZCwgMHhiZSwgMHhiZiwKKyAgICAweGMwLCAweGMxLCAweGMy
LCAweGMzLCAweGM0LCAweGM1LCAweGM2LCAweGM3LCAweGM4LCAweGM5LCAweGNhLCAweGNiLCAw
eGNjLCAweGNkLCAweGNlLCAweGNmLAorICAgIDB4ZDAsIDB4ZDEsIDB4ZDIsIDB4ZDMsIDB4ZDQs
IDB4ZDUsIDB4ZDYsIDB4ZDcsIDB4ZDgsIDB4ZDksIDB4ZGEsIDB4ZGIsIDB4ZGMsIDB4ZGQsIDB4
ZGUsIDB4ZGYsCisgICAgMHhlMCwgMHhlMSwgMHhlMiwgMHhlMywgMHhlNCwgMHhlNSwgMHhlNiwg
MHhlNywgMHhlOCwgMHhlOSwgMHhlYSwgMHhlYiwgMHhlYywgMHhlZCwgMHhlZSwgMHhlZiwKKyAg
ICAweGYwLCAweGYxLCAweGYyLCAweGYzLCAweGY0LCAweGY1LCAweGY2LCAweGY3LCAweGY4LCAw
eGY5LCAweGZhLCAweGZiLCAweGZjLCAweGZkLCAweGZlLCAweGZmCit9OworCit0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlQSwgdHlwZW5hbWUgQ2hhcmFjdGVyVHlwZUI+CitzdGF0aWMg
aW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBDaGFyYWN0ZXJUeXBlQSog
YSwgY29uc3QgQ2hhcmFjdGVyVHlwZUIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHRvQVNDSUlM
b3dlcihhW2ldKSAhPSB0b0FTQ0lJTG93ZXIoYltpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0ZTw+CitpbmxpbmUgYm9v
bCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IExDaGFyKiBhLCBjb25zdCBMQ2hhciogYiwg
dW5zaWduZWQgbGVuZ3RoKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkgeworICAgICAgICBpZiAoYXNjaWlDYXNlRm9sZFRhYmxlW2FbaV1dICE9IGFzY2lpQ2Fz
ZUZvbGRUYWJsZVtiW2ldXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBib29sIGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UoY29uc3QgVUNoYXIqIGEsIGNvbnN0IExDaGFyKiBiLCB1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAg
IGlmICh0b0FTQ0lJTG93ZXIoYVtpXSkgIT0gYXNjaWlDYXNlRm9sZFRhYmxlW2JbaV1dKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordGVt
cGxhdGU8PgoraW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBMQ2hhciog
YSwgY29uc3QgVUNoYXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShiLCBhLCBsZW5ndGgpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBT
dHJpbmdDbGFzcz4KK2Jvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZUNvbW1vbihjb25zdCBTdHJp
bmdDbGFzcyYgYSwgY29uc3QgU3RyaW5nQ2xhc3MmIGIpCit7CisgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gYS5sZW5ndGgoKTsKKyAgICBpZiAobGVuZ3RoICE9IGIubGVuZ3RoKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmIChhLmlzOEJpdCgpKSB7CisgICAgICAgIGlmIChiLmlzOEJp
dCgpKQorICAgICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5jaGFyYWN0
ZXJzOCgpLCBiLmNoYXJhY3RlcnM4KCksIGxlbmd0aCk7CisKKyAgICAgICAgcmV0dXJuIGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UoYS5jaGFyYWN0ZXJzOCgpLCBiLmNoYXJhY3RlcnMxNigpLCBsZW5n
dGgpOworICAgIH0KKworICAgIGlmIChiLmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShhLmNoYXJhY3RlcnMxNigpLCBiLmNoYXJhY3RlcnM4KCksIGxlbmd0
aCk7CisKKyAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmNoYXJhY3RlcnMxNigp
LCBiLmNoYXJhY3RlcnMxNigpLCBsZW5ndGgpOworfQorCit9CisKKyNlbmRpZiAvLyBTdHJpbmdD
b21tb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggMGI3NzQ5YWY4ZjkyZmJl
NjU5NjRkY2M4M2RlMWNlYzU4NzNjMDkyZi4uODE4YTYxNWNhOTc5MTFkNjJlMTE5ODI3MjdmMDY5
ZjZlN2MyNmZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0yOTYsNiArMjk2
LDE2IEBAIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVVbmlxdWUoUGFzc1JlZlB0
cjxTdHJpbmdJbXBsPiByZXApCiAgICAgcmV0dXJuIHN0cmluZzsKIH0KIAordGVtcGxhdGU8dHlw
ZW5hbWUgQ2hhcmFjdGVyVHlwZT4KK3N0YXRpYyBib29sIGNvbnRhaW5zT25seUFTQ0lJQWxwaGFM
b3dlcihjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCit7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGlm
ICghaXNBU0NJSUxvd2VyKGNoYXJhY3RlcnNbaV0pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBTdHJpbmdJbXBsOjpjb250YWlu
c09ubHlXaGl0ZXNwYWNlKCkKIHsKICAgICAvLyBGSVhNRTogVGhlIGRlZmluaXRpb24gb2Ygd2hp
dGVzcGFjZSBoZXJlIGluY2x1ZGVzIGEgbnVtYmVyIG9mIGNoYXJhY3RlcnMKQEAgLTIwMTgsNiAr
MjAyOCwyOSBAQCBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KFN0cmluZ0ltcGwqIGEsIFN0cmlu
Z0ltcGwqIGIpCiAgICAgcmV0dXJuIGVxdWFsKGEsIGIpOwogfQogCitBTFdBWVNfSU5MSU5FIGJv
b2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsJiBhLCBjb25zdCBTdHJp
bmdJbXBsJiBiKQoreworICAgIGlmICgmYSA9PSAmYikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2VDb21tb24oYSwgYik7Cit9CisKK2Jv
b2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsKiBhLCBjb25zdCBTdHJp
bmdJbXBsKmIpCit7CisgICAgaWYgKGEgPT0gYikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
aWYgKCFhIHx8ICFiKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2VDb21tb24oKmEsICpiKTsKK30KKworYm9vbCBlcXVhbElnbm9yaW5nQVND
SUlDYXNlTm9uTnVsbChjb25zdCBTdHJpbmdJbXBsKiBhLCBjb25zdCBTdHJpbmdJbXBsKiBiKQor
eworICAgIEFTU0VSVChhICYmIGIpOworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNl
Q29tbW9uKCphLCAqYik7Cit9CisKIFVDaGFyRGlyZWN0aW9uIFN0cmluZ0ltcGw6OmRlZmF1bHRX
cml0aW5nRGlyZWN0aW9uKGJvb2wqIGhhc1N0cm9uZ0RpcmVjdGlvbmFsaXR5KQogewogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
SW1wbC5oCmluZGV4IDY2NzIyM2U2ZGE3NWQxMmI1MzE3NDQxMDkwM2EzYjNhNzYzMWE0NzYuLmQw
NzQwNjRmNjVjNDI2NTY3MzUwMzI3NDg0ZTU1YTE5ODdiNjU3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5oCkBAIC0xMTMyLDYgKzExMzIsMTAgQEAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJv
b2wgZXF1YWxJZ25vcmluZ0Nhc2VOb25OdWxsKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBTdHIK
IFdURl9FWFBPUlRfU1RSSU5HX0FQSSBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KFN0cmluZ0lt
cGwqLCBTdHJpbmdJbXBsKik7CiBXVEZfRVhQT1JUX1NUUklOR19BUEkgYm9vbCBlcXVhbElnbm9y
aW5nTnVsbGl0eShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFN0cmluZ0ltcGwqKTsKIAor
V1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBT
dHJpbmdJbXBsJiwgY29uc3QgU3RyaW5nSW1wbCYpOworV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJv
b2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsKiwgY29uc3QgU3RyaW5n
SW1wbCopOworV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZU5vbk51bGwoY29uc3QgU3RyaW5nSW1wbCosIGNvbnN0IFN0cmluZ0ltcGwqKTsKKwogdGVtcGxh
dGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBzaXplX3QgZmluZChjb25zdCBDaGFy
YWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENoYXJhY3RlclR5cGUgbWF0
Y2hDaGFyYWN0ZXIsIHVuc2lnbmVkIGluZGV4ID0gMCkKIHsKQEAgLTEzNzQsNiArMTM3OCw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFJlZlB0cjxTdHJpbmdJbXBsPj4gewogCiB1
c2luZyBXVEY6OlN0cmluZ0ltcGw7CiB1c2luZyBXVEY6OmVxdWFsOwordXNpbmcgV1RGOjplcXVh
bElnbm9yaW5nQVNDSUlDYXNlOwogdXNpbmcgV1RGOjpUZXh0Q2FzZVNlbnNpdGl2aXR5OwogdXNp
bmcgV1RGOjpUZXh0Q2FzZVNlbnNpdGl2ZTsKIHVzaW5nIFdURjo6VGV4dENhc2VJbnNlbnNpdGl2
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKaW5kZXggNmY5NGJmODkzZmFlZjY5ODNiZjAzOGUz
NGU4ZjAwMjNjMjAwNWJjOS4uNWNjYjNhZDdlMTMyOGEwNTZjN2U3NmFlY2JmMDYzMTRhZmE1Zjg0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0xDaGFyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29tbW9uLmg+CiAKIC8v
IEZJWE1FOiBFbmFibGluZyB0aGUgU3RyaW5nVmlldyBsaWZldGltZSBjaGVja2luZyBjYXVzZXMg
dGhlIE1TVkMgYnVpbGQgdG8gZmFpbC4gRmlndXJlIG91dCB3aHkuCiAvLyBGSVhNRTogRW5hYmxl
IFN0cmluZ1ZpZXcgbGlmZXRpbWUgY2hlY2tpbmcgb25jZSB0aGUgdW5kZXJseWluZyBhc3NlcnRp
b25zIGhhdmUgYmVlbiBmaXhlZC4KQEAgLTUwNSwxNCArNTA2LDcgQEAgaW5saW5lIGJvb2wgZXF1
YWwoU3RyaW5nVmlldyBhLCBjb25zdCBjaGFyKiBiKQogCiBpbmxpbmUgYm9vbCBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKFN0cmluZ1ZpZXcgYSwgU3RyaW5nVmlldyBiKQogewotICAgIHVuc2lnbmVk
IGFMZW5ndGggPSBhLmxlbmd0aCgpOwotICAgIGlmIChhTGVuZ3RoICE9IGIubGVuZ3RoKCkpIAot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhTGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihhW2ldKSAhPSB0b0FTQ0lJTG93ZXIo
YltpXSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVl
OworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKGEsIGIpOwogfQogCiBj
bGFzcyBTdHJpbmdWaWV3OjpDb2RlUG9pbnRzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4
IDg0YjYwNWY2MTcyZmNkZmM3YmUzMmZkODkzZTg3N2NlYWMyMGQ0ODkuLjYwOWEwMDI0NGE1ZGNh
ODEwODA2YWM1NWMyNTE0YTYyZTJiZDgwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAt
NDkyLDYgKzQ5Miw4IEBAIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IFN0cmlu
ZyYgYSwgY29uc3QgY2hhciogYikgeyByZXR1cm4gZXF1YWxJZ25vCiBpbmxpbmUgYm9vbCBlcXVh
bElnbm9yaW5nQ2FzZShjb25zdCBMQ2hhciogYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiBl
cXVhbElnbm9yaW5nQ2FzZShhLCBiLmltcGwoKSk7IH0KIGlubGluZSBib29sIGVxdWFsSWdub3Jp
bmdDYXNlKGNvbnN0IGNoYXIqIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJZ25v
cmluZ0Nhc2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGEpLCBiLmltcGwoKSk7IH0K
IAoraW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmcmIGEsIGNv
bnN0IFN0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmltcGwoKSwg
Yi5pbXBsKCkpOyB9CisKIGlubGluZSBib29sIGVxdWFsUG9zc2libHlJZ25vcmluZ0Nhc2UoY29u
c3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIsIGJvb2wgaWdub3JlQ2FzZSkgCiB7CiAgICAg
cmV0dXJuIGlnbm9yZUNhc2UgPyBlcXVhbElnbm9yaW5nQ2FzZShhLCBiKSA6IChhID09IGIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjYjA2ZGQwNzFkZDU0NGM5ZDQ2Y2NmMzhhNzBk
MjQ1Nzg5OTg2M2U2Li5jZmRhMDZiNmZlOWMwZTJiNmUxY2VjZGI2OGJjYWNhM2FlM2NlMmU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDc1Niw5ICs0NzU2LDkgQEAgVmVjdG9yPGRv
dWJsZT4gQ1NTUGFyc2VyOjpwYXJzZUtleWZyYW1lU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxl
Y3RvcikgewogICAgICAgICBTdHJpbmcgY3VyID0gc3RyaW5nc1tpXS5zdHJpcFdoaXRlU3BhY2Uo
KTsKIAogICAgICAgICAvLyBGb3Igbm93IHRoZSBzeW50YXggTVVTVCBiZSAneHh4JScgb3IgJ2Zy
b20nIG9yICd0bycsIHdoZXJlIHh4eCBpcyBhIGxlZ2FsIGZsb2F0aW5nIHBvaW50IG51bWJlcgot
ICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjdXIsICJmcm9tIikpCisgICAgICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShjdXIsICJmcm9tIikpCiAgICAgICAgICAgICBrZXkgPSAw
OwotICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGN1ciwgInRvIikpCisg
ICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGN1ciwgInRvIikpCiAgICAgICAgICAg
ICBrZXkgPSAxOwogICAgICAgICBlbHNlIGlmIChjdXIuZW5kc1dpdGgoJyUnKSkgewogICAgICAg
ICAgICAgZG91YmxlIGsgPSBjdXIuc3Vic3RyaW5nKDAsIGN1ci5sZW5ndGgoKSAtIDEpLnRvRG91
YmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVz
dEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RGdW5j
dGlvbnMuaAppbmRleCBkNWUwOTY1M2JjNWMzYThmYzQ1YzAyNmI3NDdhMjc1MjZjOGExNzE4Li42
YWJkMDhiNzNjMzgxOGNkZWRkNDQ2M2ZhZGRiZWNjMDVmYmFlMjI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmgKQEAgLTEyMCwxNyAr
MTIwLDYgQEAgQUxXQVlTX0lOTElORSBib29sIGlzV2luZG93SW5hY3RpdmUoY29uc3QgRWxlbWVu
dCogZWxlbWVudCkKICAgICByZXR1cm4gIWVsZW1lbnQtPmRvY3VtZW50KCkucGFnZSgpLT5mb2N1
c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOwogfQogCi1BTFdBWVNfSU5MSU5FIGJvb2wgZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikKLXsKLSAg
ICBpZiAoYS5sZW5ndGgoKSAhPSBiLmxlbmd0aCgpKSAKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYS5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIGlm
ICh0b0FTQ0lJTG93ZXIoYVtpXSkgIT0gdG9BU0NJSUxvd2VyKGJbaV0pKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogQUxXQVlTX0lOTElO
RSBib29sIGNvbnRhaW5zbGFuZ3VhZ2VTdWJ0YWdNYXRjaGluZ1JhbmdlKFN0cmluZ1ZpZXcgbGFu
Z3VhZ2UsIFN0cmluZ1ZpZXcgcmFuZ2UsIHVuc2lnbmVkIGxhbmd1YWdlTGVuZ3RoLCB1bnNpZ25l
ZCYgcG9zaXRpb24pCiB7CiAgICAgdW5zaWduZWQgbGFuZ3VhZ2VTdWJ0YWdzU3RhcnRJbmRleCA9
IHBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmlu
ZGV4IDExZjNmMmJkYTdjNzYzYTFkZmY0Njg1YmZjZWEzZGM5YWVlMjFmMWYuLjg2NGQyOGU0NWU5
NzdjYjJjMTY0Zjg1YjExNTg2M2JhMmMzZTE3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQv
U2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTI5MzAsNyArMjkzMCw3IEBAIHZvaWQgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZUV4YWN0TWF0Y2hpbmco
QXNzZW1ibGVyCiAgICAgICAgIG1fYXNzZW1ibGVyLmxvYWRQdHIoQXNzZW1ibGVyOjpBZGRyZXNz
KGN1cnJlbnRBdHRyaWJ1dGVBZGRyZXNzLCBBdHRyaWJ1dGU6OnZhbHVlTWVtb3J5T2Zmc2V0KCkp
LCB2YWx1ZVN0cmluZ0ltcGwpOwogCiAgICAgICAgIEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbkNhbGwo
bV9hc3NlbWJsZXIsIG1fcmVnaXN0ZXJBbGxvY2F0b3IsIG1fc3RhY2tBbGxvY2F0b3IsIG1fZnVu
Y3Rpb25DYWxscyk7Ci0gICAgICAgIGZ1bmN0aW9uQ2FsbC5zZXRGdW5jdGlvbkFkZHJlc3MoV1RG
OjplcXVhbElnbm9yaW5nQ2FzZU5vbk51bGwpOworICAgICAgICBmdW5jdGlvbkNhbGwuc2V0RnVu
Y3Rpb25BZGRyZXNzKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwpOwogICAgICAg
ICBmdW5jdGlvbkNhbGwuc2V0VHdvQXJndW1lbnRzKHZhbHVlU3RyaW5nSW1wbCwgZXhwZWN0ZWRW
YWx1ZVJlZ2lzdGVyKTsKICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChmdW5jdGlvbkNhbGwu
Y2FsbEFuZEJyYW5jaE9uQm9vbGVhblJldHVyblZhbHVlKEFzc2VtYmxlcjo6WmVybykpOwogCkBA
IC0yOTQzLDcgKzI5NDMsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVF
bGVtZW50QXR0cmlidXRlVmFsdWVFeGFjdE1hdGNoaW5nKEFzc2VtYmxlcgogCiAgICAgICAgIEFz
c2VtYmxlcjo6SnVtcCBza2lwQ2FzZUluc2Vuc2l0aXZlQ29tcGFyaXNvbiA9IG1fYXNzZW1ibGVy
LmJyYW5jaFB0cihBc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZVN0cmluZ0ltcGwsIGV4cGVjdGVkVmFs
dWVSZWdpc3Rlcik7CiAgICAgICAgIEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbkNhbGwobV9hc3NlbWJs
ZXIsIG1fcmVnaXN0ZXJBbGxvY2F0b3IsIG1fc3RhY2tBbGxvY2F0b3IsIG1fZnVuY3Rpb25DYWxs
cyk7Ci0gICAgICAgIGZ1bmN0aW9uQ2FsbC5zZXRGdW5jdGlvbkFkZHJlc3MoV1RGOjplcXVhbEln
bm9yaW5nQ2FzZU5vbk51bGwpOworICAgICAgICBmdW5jdGlvbkNhbGwuc2V0RnVuY3Rpb25BZGRy
ZXNzKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwpOwogICAgICAgICBmdW5jdGlv
bkNhbGwuc2V0VHdvQXJndW1lbnRzKHZhbHVlU3RyaW5nSW1wbCwgZXhwZWN0ZWRWYWx1ZVJlZ2lz
dGVyKTsKICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChmdW5jdGlvbkNhbGwuY2FsbEFuZEJy
YW5jaE9uQm9vbGVhblJldHVyblZhbHVlKEFzc2VtYmxlcjo6WmVybykpOwogICAgICAgICBza2lw
Q2FzZUluc2Vuc2l0aXZlQ29tcGFyaXNvbi5saW5rKCZtX2Fzc2VtYmxlcik7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzU3MjgzOWU2YTgzYjIx
ODJiNmVhZWY3ZTk4Y2FhMDAzMWJhYmMzNi4uMWU3ZjU2ZTJmYTkwYWQyYWI0ZTM5YWRlYzJkNmMz
MDhlYjg5NzIyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTAzLTExICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZSB0aGUgZXhhY3QgYXR0cmlidXRlIG1h
dGNoaW5nIHRvIGJlIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjYwOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nSW1wbC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorCiAyMDE1LTAzLTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0NvbnRlbnQgRXh0ZW5zaW9uc10gTW92ZSBjb21waWxpbmcgb2YgY29udGVu
dCBleHRlbnNpb25zIHRvIHRoZSBVSVByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nSW1wbC5jcHAKaW5kZXggYzJhMzMyYTFjNTBhODMyYzkyNTg5ZDY0YjJiMTFk
NjYzNTIxMGY3NC4uOTk1ZDBkNDIyYjFmMWIyNGRjYTNjNDU4Njk5MjUxNGM0ODYyNTU2YiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTk5LDQg
Kzk5LDY5IEBAIFRFU1QoV1RGLCBTdHJpbmdJbXBsUmVwbGFjZVdpdGhMaXRlcmFsKQogICAgIEFT
U0VSVF9UUlVFKGVxdWFsKHRlc3RTdHJpbmdJbXBsLmdldCgpLCAicjU1NXN1bTU1NSIpKTsKIH0K
IAorVEVTVChXVEYsIFN0cmluZ0ltcGxFcXVhbElnbm9yaW5nQVNDSUlDYXNlQmFzaWMpCit7Cisg
ICAgUmVmUHRyPFN0cmluZ0ltcGw+IGEgPSBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCgi
YUJjRGVGRyIpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBiID0gU3RyaW5nSW1wbDo6Y3JlYXRl
RnJvbUxpdGVyYWwoIkFCQ0RFRkciKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYyA9IFN0cmlu
Z0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKCJhYmNkZWZnIik7CisgICAgUmVmUHRyPFN0cmluZ0lt
cGw+IGVtcHR5ID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBzaG9ydGVyID0gU3RyaW5nSW1wbDo6
Y3JlYXRlRnJvbUxpdGVyYWwoImFiY2RlZiIpOworCisgICAgLy8gSWRlbnRpdHkuCisgICAgQVNT
RVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmdldCgpLCBhLmdldCgpKSk7CisgICAg
QVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShiLmdldCgpLCBiLmdldCgpKSk7Cisg
ICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjLmdldCgpLCBjLmdldCgpKSk7
CisKKyAgICAvLyBUcmFuc2l0aXZpdHkuCisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShhLmdldCgpLCBiLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShiLmdldCgpLCBjLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShhLmdldCgpLCBjLmdldCgpKSk7CisKKyAgICAvLyBOZWdhdGl2ZSBjYXNl
cy4KKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmdldCgpLCBlbXB0
eS5nZXQoKSkpOworICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGIuZ2V0
KCksIGVtcHR5LmdldCgpKSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UoYy5nZXQoKSwgZW1wdHkuZ2V0KCkpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShhLmdldCgpLCBzaG9ydGVyLmdldCgpKSk7CisgICAgQVNTRVJUX0ZBTFNFKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UoYi5nZXQoKSwgc2hvcnRlci5nZXQoKSkpOworICAgIEFTU0VS
VF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGMuZ2V0KCksIHNob3J0ZXIuZ2V0KCkpKTsK
K30KKworVEVTVChXVEYsIFN0cmluZ0ltcGxFcXVhbElnbm9yaW5nQVNDSUlDYXNlV2l0aE51bGwp
Cit7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHJlZmVyZW5jZSA9IFN0cmluZ0ltcGw6OmNyZWF0
ZUZyb21MaXRlcmFsKCJhQmNEZUZHIik7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobnVsbHB0ciwgcmVmZXJlbmNlLmdldCgpKSk7CisgICAgQVNTRVJUX0ZBTFNFKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UocmVmZXJlbmNlLmdldCgpLCBudWxscHRyKSk7CisgICAgQVNT
RVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShudWxscHRyLCBudWxscHRyKSk7Cit9CisK
K1RFU1QoV1RGLCBTdHJpbmdJbXBsRXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKK3sK
KyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYSA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9IFN0
cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAg
ICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGIuZ2V0KCkpKTsK
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGIuZ2V0KCksIGEuZ2V0KCkp
KTsKK30KKworVEVTVChXVEYsIFN0cmluZ0ltcGxFcXVhbElnbm9yaW5nQVNDSUlDYXNlV2l0aExh
dGluMUNoYXJhY3RlcnMpCit7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGEgPSBTdHJpbmdJbXBs
OjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJhQmPDqWVGRyIpKTsKKyAg
ICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIkFCQ8OJRUZHIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBj
ID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiQUJD
w6lFRkciKSk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGQgPSBTdHJpbmdJbXBsOjpjcmVhdGUo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJhYmPDqWVmZyIpKTsKKworICAgIC8vIElk
ZW50aXR5LgorICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5nZXQoKSwg
YS5nZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYi5nZXQo
KSwgYi5nZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYy5n
ZXQoKSwgYy5nZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
ZC5nZXQoKSwgZC5nZXQoKSkpOworCisgICAgLy8gQWxsIGNvbWJpbmF0aW9uLgorICAgIEFTU0VS
VF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGIuZ2V0KCkpKTsKKyAgICBB
U1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGMuZ2V0KCkpKTsKKyAg
ICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGQuZ2V0KCkpKTsK
KyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShiLmdldCgpLCBjLmdldCgp
KSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYi5nZXQoKSwgZC5n
ZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYy5nZXQoKSwg
ZC5nZXQoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdWaWV3LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwCmluZGV4IGRjNTU0NDZmZjg0NmNi
OGM4ZDFiMGQzNzkwNDAzNmZjZGUxNjZhZjcuLjRkN2Q5NmM3MThmMTc5NmZmYzRiNzBhZGI2YmI0
YWU5MjMzOWE4MDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0
cmluZ1ZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1Zp
ZXcuY3BwCkBAIC0xNDIsNCArMTQyLDc3IEBAIFRFU1QoV1RGLCBTdHJpbmdWaWV3SXRlcmF0b3Jz
KQogICAgIEVYUEVDVF9UUlVFKGNvbXBhcmVMb29wSXRlcmF0aW9ucyhTdHJpbmdWaWV3KGIudG9T
dHJpbmcoKSkuY29kZVVuaXRzKCksIHsweDAzMDYsIDB4RDgwMCwgMHhERDU1LCAnaCcsICdlJywg
J2wnLCAnbyd9KSk7CiB9CiAKK1RFU1QoV1RGLCBTdHJpbmdWaWV3RXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZUJhc2ljKQoreworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBhID0gU3RyaW5nSW1wbDo6Y3Jl
YXRlRnJvbUxpdGVyYWwoImFCY0RlRkciKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9IFN0
cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKCJBQkNERUZHIik7CisgICAgUmVmUHRyPFN0cmlu
Z0ltcGw+IGMgPSBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCgiYWJjZGVmZyIpOworICAg
IFJlZlB0cjxTdHJpbmdJbXBsPiBlbXB0eSA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gc2hvcnRl
ciA9IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKCJhYmNkZWYiKTsKKworICAgIFN0cmlu
Z1ZpZXcgc3RyaW5nVmlld0EoKmEuZ2V0KCkpOworICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlld0Io
KmIuZ2V0KCkpOworICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlld0MoKmMuZ2V0KCkpOworICAgIFN0
cmluZ1ZpZXcgZW1wdHlTdHJpbmdWaWV3KCplbXB0eS5nZXQoKSk7CisgICAgU3RyaW5nVmlldyBz
aG9ydGVyU3RyaW5nVmlldygqc2hvcnRlci5nZXQoKSk7CisKKyAgICBBU1NFUlRfVFJVRShlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJpbmdWaWV3QikpOworICAgIEFTU0VS
VF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0IsIHN0cmluZ1ZpZXdDKSk7
CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3Ry
aW5nVmlld0MpKTsKKworICAgIC8vIElkZW50aXR5LgorICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdBKSk7CisgICAgQVNTRVJUX1RS
VUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3RyaW5nVmlld0IpKTsKKyAg
ICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdDLCBzdHJpbmdW
aWV3QykpOworCisgICAgLy8gVHJhbnNpdGl2aXR5LgorICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdCKSk7CisgICAgQVNTRVJUX1RS
VUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3RyaW5nVmlld0MpKTsKKyAg
ICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJpbmdW
aWV3QykpOworCisgICAgLy8gTmVnYXRpdmUgY2FzZXMuCisgICAgQVNTRVJUX0ZBTFNFKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIGVtcHR5U3RyaW5nVmlldykpOworICAgIEFT
U0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdCLCBlbXB0eVN0cmlu
Z1ZpZXcpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdW
aWV3QywgZW1wdHlTdHJpbmdWaWV3KSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2Uoc3RyaW5nVmlld0EsIHNob3J0ZXJTdHJpbmdWaWV3KSk7CisgICAgQVNTRVJUX0ZB
TFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0IsIHNob3J0ZXJTdHJpbmdWaWV3
KSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0Ms
IHNob3J0ZXJTdHJpbmdWaWV3KSk7Cit9CisKK1RFU1QoV1RGLCBTdHJpbmdWaWV3RXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZVdpdGhFbXB0eSkKK3sKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYSA9IFN0
cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAg
ICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIiIpKTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXdBKCphLmdl
dCgpKTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXdCKCpiLmdldCgpKTsKKyAgICBBU1NFUlRf
VFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJpbmdWaWV3QikpOwor
ICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0IsIHN0cmlu
Z1ZpZXdBKSk7Cit9CisKK1RFU1QoV1RGLCBTdHJpbmdWaWV3RXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZVdpdGhMYXRpbjFDaGFyYWN0ZXJzKQoreworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBhID0gU3Ry
aW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiYUJjw6llRkci
KSk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGIgPSBTdHJpbmdJbXBsOjpjcmVhdGUocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJBQkPDiUVGRyIpKTsKKyAgICBSZWZQdHI8U3RyaW5n
SW1wbD4gYyA9IFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIkFCQ8OpRUZHIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBkID0gU3RyaW5nSW1wbDo6
Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiYWJjw6llZmciKSk7CisgICAg
U3RyaW5nVmlldyBzdHJpbmdWaWV3QSgqYS5nZXQoKSk7CisgICAgU3RyaW5nVmlldyBzdHJpbmdW
aWV3QigqYi5nZXQoKSk7CisgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3QygqYy5nZXQoKSk7Cisg
ICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3RCgqZC5nZXQoKSk7CisKKyAgICAvLyBJZGVudGl0eS4K
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJp
bmdWaWV3QSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5n
Vmlld0IsIHN0cmluZ1ZpZXdCKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShzdHJpbmdWaWV3Qywgc3RyaW5nVmlld0MpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdELCBzdHJpbmdWaWV3RCkpOworCisgICAgLy8gQWxs
IGNvbWJpbmF0aW9uLgorICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0
cmluZ1ZpZXdBLCBzdHJpbmdWaWV3QikpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdDKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3QSwgc3RyaW5nVmlld0QpKTsKKyAgICBBU1NF
UlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3RyaW5nVmlld0Mp
KTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwg
c3RyaW5nVmlld0QpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0
cmluZ1ZpZXdDLCBzdHJpbmdWaWV3RCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNTI4Y2E0N2QyZjlhZjM0NGRmOWEyMzk2YTBlZjFhMDExYTkzYjI2MS4uZDIx
NDBiZDc4NGQ0ODRjYzE2ZjVjMjM1NTA2YjgxZWMxY2QzZTUzNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE1LTAzLTExICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgor
CisgICAgICAgIENoYW5nZSB0aGUgZXhhY3QgYXR0cmlidXRlIG1hdGNoaW5nIHRvIGJlIEFTQ0lJ
IGNhc2UtaW5zZW5zaXRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZhbHVlLW1hdGNoLWlz
LWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUtbWF0Y2gtaXMtYXNjaWktY2FzZS1p
bnNlbnNpdGl2ZS5odG1sOiBBZGRlZC4KKwogMjAxNS0wMy0wNiAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmlu
ZyBvbiA3dGggTWFyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYXR0
cmlidXRlLWV4YWN0LXZhbHVlLW1hdGNoLWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZhbHVl
LW1hdGNoLWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZmYjVmOGE3ZDlmZTU2YTA0MTk1ZTdmNzYxZjkyY2JlOGYwYTM2YTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUtbWF0
Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMTMg
QEAKK1doZW4gbWF0Y2hpbmcgYXR0cmlidXRlcyBjYXNlIGluc2Vuc2l0aXZlbHksIGl0IHNob3Vs
ZCBiZSBBU0NJSSBjYXNlIGluc2Vuc2l0aXZlLiBUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGJlaGF2
aW9yIGZvciBleGFjdCB2YWx1ZSBtYXRjaGluZyAoZS5nLiBbYT0iYiJdKQorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyAiW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DiV0i
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmli
dXRlPVdlYktpdC3DiV0nKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw4ldJylbMF0uaWQgaXMgInRh
cmdldDEiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
I3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCki
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qt
cm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilb
Ml0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJpYnV0ZT13ZWJraXQt
w4ldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0
dHJpYnV0ZT13ZWJraXQtw4ldJykubGVuZ3RoIGlzIDEKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOJXScpWzBdLmlkIGlz
ICJ0YXJnZXQyIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDAp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0
LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3Qg
KiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbZGF0YS1hdHRyaWJ1dGU9V0VC
S0lULcOJXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0
YS1hdHRyaWJ1dGU9V0VCS0lULcOJXScpLmxlbmd0aCBpcyAxCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdFQktJVC3DiV0nKVswXS5p
ZCBpcyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAw
LCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIj
dGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290
ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsz
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW2RhdGEtYXR0cmlidXRl
PVdlYktpdC3DqV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3Qg
W2RhdGEtYXR0cmlidXRlPVdlYktpdC3DqV0nKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw6ldJylb
MF0uaWQgaXMgInRhcmdldDQiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1
NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCki
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qt
cm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilb
M10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJp
YnV0ZT13ZWJraXQtw6ldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1y
b290IFtkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw6ldJykubGVuZ3RoIGlzIDEKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOp
XScpWzBdLmlkIGlzICJ0YXJnZXQ1IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAs
IDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3Qg
KiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorCitUZXN0aW5nICJbZGF0YS1h
dHRyaWJ1dGU9V2ViS2l0LcOJIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcj
dGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw4kgaV0nKS5sZW5ndGggaXMgMworUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1X
ZWJLaXQtw4kgaV0nKVswXS5pZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOJIGldJylbMV0uaWQg
aXMgInRhcmdldDIiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3Qg
W2RhdGEtYXR0cmlidXRlPVdlYktpdC3DiSBpXScpWzJdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIp
WzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOJIGldIgor
UEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0
ZT13ZWJraXQtw4kgaV0nKS5sZW5ndGggaXMgMworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw4kgaV0nKVswXS5pZCBpcyAi
dGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0
YS1hdHRyaWJ1dGU9d2Via2l0LcOJIGldJylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPXdlYmtpdC3D
iSBpXScpWzJdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigx
MCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAw
LCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJv
b3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5n
ICJbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XRUJLSVQtw4kgaV0nKS5sZW5ndGgg
aXMgMworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0
dHJpYnV0ZT1XRUJLSVQtw4kgaV0nKVswXS5pZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJIGld
JylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0
ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdFQktJVC3DiSBpXScpWzJdLmlkIGlzICJ0YXJnZXQz
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0
LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3Qg
KiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJd
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0
LcOpIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRh
LWF0dHJpYnV0ZT1XZWJLaXQtw6kgaV0nKS5sZW5ndGggaXMgMgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw6kgaV0nKVsw
XS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qt
cm9vdCBbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOpIGldJylbMV0uaWQgaXMgInRhcmdldDUiCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9v
dCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0p
LmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tncm91
bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xvciBp
cyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDEwLCAxMDAsIDIwMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw6kgaV0i
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmli
dXRlPXdlYmtpdC3DqSBpXScpLmxlbmd0aCBpcyAyCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPXdlYmtpdC3DqSBpXScpWzBdLmlkIGlz
ICJ0YXJnZXQ0IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtk
YXRhLWF0dHJpYnV0ZT13ZWJraXQtw6kgaV0nKVsxXS5pZCBpcyAidGFyZ2V0NSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsw
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9y
IGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
MTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEw
MCwgMjAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdFQktJVC3DqV0iCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdFQktJVC3DqV0nKS5sZW5n
dGggaXMgMworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0
aXBsZT1XRUJLSVQtw6ldJylbMF0uaWQgaXMgInRhcmdldDEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdFQktJVC3DqV0nKVsxXS5pZCBpcyAi
dGFyZ2V0MiIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVs
dGlwbGU9V0VCS0lULcOpXScpWzJdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigy
NTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDAp
IgorCitUZXN0aW5nICJbbXVsdGlwbGU9V2ViS2l0LcOpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2ViS2l0LcOpXScpLmxlbmd0aCBpcyAz
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdl
YktpdC3DqV0nKVswXS5pZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2ViS2l0LcOpXScpWzFdLmlkIGlzICJ0YXJnZXQy
IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1X
ZWJLaXQtw6ldJylbMl0uaWQgaXMgInRhcmdldDMiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAi
cmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEw
LCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwg
MCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rl
c3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rl
c3RpbmcgIlttdWx0aXBsZT1XZWJraXQtw6ldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJraXQtw6ldJykubGVuZ3RoIGlzIDMKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2Via2l0LcOp
XScpWzBdLmlkIGlzICJ0YXJnZXQxIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcj
dGVzdC1yb290IFttdWx0aXBsZT1XZWJraXQtw6ldJylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNT
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdlYmtpdC3D
qV0nKVsyXS5pZCBpcyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJy
Z2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAs
IDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwg
MjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIj
dGVzdC1yb290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290
ICoiKVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAi
W211bHRpcGxlPXdlYmtpdC3DiV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0
ZXN0LXJvb3QgW211bHRpcGxlPXdlYmtpdC3DiV0nKS5sZW5ndGggaXMgMgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT13ZWJraXQtw4ldJylbMF0u
aWQgaXMgInRhcmdldDQiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJv
b3QgW211bHRpcGxlPXdlYmtpdC3DiV0nKVsxXS5pZCBpcyAidGFyZ2V0NSIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3Vu
ZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAs
IDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwg
MjAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPXdlYktpdC3DiV0iCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPXdlYktpdC3DiV0nKS5sZW5ndGgg
aXMgMgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBs
ZT13ZWJLaXQtw4ldJylbMF0uaWQgaXMgInRhcmdldDQiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPXdlYktpdC3DiV0nKVsxXS5pZCBpcyAidGFy
Z2V0NSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIj
dGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290
ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3Vu
ZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9y
IGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdFQktJVC3DqSBp
XSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9
V0VCS0lULcOpIGldJykubGVuZ3RoIGlzIDMKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V0VCS0lULcOpIGldJylbMF0uaWQgaXMgInRhcmdldDEi
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdF
QktJVC3DqSBpXScpWzFdLmlkIGlzICJ0YXJnZXQyIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XRUJLSVQtw6kgaV0nKVsyXS5pZCBpcyAidGFy
Z2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIj
dGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoi
KVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3Vu
ZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdlYktpdC3D
qSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlw
bGU9V2ViS2l0LcOpIGldJykubGVuZ3RoIGlzIDMKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2ViS2l0LcOpIGldJylbMF0uaWQgaXMgInRhcmdl
dDEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxl
PVdlYktpdC3DqSBpXScpWzFdLmlkIGlzICJ0YXJnZXQyIgorUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJLaXQtw6kgaV0nKVsyXS5pZCBpcyAi
dGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAw
KSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVz
dC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290
ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsz
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPVdlYmtp
dC3DqSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVs
dGlwbGU9V2Via2l0LcOpIGldJykubGVuZ3RoIGlzIDMKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V2Via2l0LcOpIGldJylbMF0uaWQgaXMgInRh
cmdldDEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRp
cGxlPVdlYmtpdC3DqSBpXScpWzFdLmlkIGlzICJ0YXJnZXQyIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJraXQtw6kgaV0nKVsyXS5pZCBp
cyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwg
MjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIj
dGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoi
KVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW211bHRpcGxlPXdl
YmtpdC3DiSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBb
bXVsdGlwbGU9d2Via2l0LcOJIGldJykubGVuZ3RoIGlzIDIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2Via2l0LcOJIGldJylbMF0uaWQgaXMg
InRhcmdldDQiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211
bHRpcGxlPXdlYmtpdC3DiSBpXScpWzFdLmlkIGlzICJ0YXJnZXQ1IgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNr
Z3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAw
LCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDAp
IgorCitUZXN0aW5nICJbbXVsdGlwbGU9d2ViS2l0LcOJIGldIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT13ZWJLaXQtw4kgaV0nKS5sZW5ndGgg
aXMgMgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBs
ZT13ZWJLaXQtw4kgaV0nKVswXS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2ViS2l0LcOJIGldJylbMV0uaWQgaXMg
InRhcmdldDUiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCki
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qt
cm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilb
Ml0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRD
b2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUtbWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNp
dGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZh
bHVlLW1hdGNoLWlzLWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjYw
MDQ1YTM1Yzg2MjM3ZTQzMWYwYmI1NTE3NzI3Y2UyYTNhMDYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZhbHVlLW1hdGNoLWlz
LWFzY2lpLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0
ZXN0LXJvb3QgKiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorPC9zdHlsZT4KKzxz
dHlsZSBpZD0ic3R5bGUiPgorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5
bGU9ImRpc3BsYXk6bm9uZSIgaWQ9InRlc3Qtcm9vdCI+CisgICAgICAgIDxkaXYgZGF0YS1hdHRy
aWJ1dGU9IldlYktpdC3DiSIgbXVsdGlwbGU9IldFQktJVC3DqSIgaWQ9InRhcmdldDEiPjwvZGl2
PgorICAgICAgICA8ZGl2IGRhdGEtYXR0cmlidXRlPSJ3ZWJraXQtw4kiIG11bHRpcGxlPSJXZWJL
aXQtw6kiIGlkPSJ0YXJnZXQyIj48L2Rpdj4KKyAgICAgICAgPGRpdiBkYXRhLWF0dHJpYnV0ZT0i
V0VCS0lULcOJIiBtdWx0aXBsZT0iV2Via2l0LcOpIiBpZD0idGFyZ2V0MyI+PC9kaXY+CisgICAg
ICAgIDxkaXYgZGF0YS1hdHRyaWJ1dGU9IldlYktpdC3DqSIgbXVsdGlwbGU9IndlYmtpdC3DiSIg
aWQ9InRhcmdldDQiPjwvZGl2PgorICAgICAgICA8ZGl2IGRhdGEtYXR0cmlidXRlPSJ3ZWJraXQt
w6kiIG11bHRpcGxlPSJ3ZWJLaXQtw4kiIGlkPSJ0YXJnZXQ1Ij48L2Rpdj4KKyAgICA8L2Rpdj4K
KzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignV2hlbiBtYXRjaGluZyBhdHRyaWJ1dGVz
IGNhc2UgaW5zZW5zaXRpdmVseSwgaXQgc2hvdWxkIGJlIEFTQ0lJIGNhc2UgaW5zZW5zaXRpdmUu
IFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgYmVoYXZpb3IgZm9yIGV4YWN0IHZhbHVlIG1hdGNoaW5n
IChlLmcuIFthPSJiIl0pJyk7CisKK2Z1bmN0aW9uIHRlc3RRdWVyeVNlbGVjdG9yKHNlbGVjdG9y
LCBleHBlY3RlZElkcykgeworICAgIHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCciICsgc2VsZWN0b3IgKyAiJykubGVuZ3RoIiwgJycgKyBleHBlY3RlZElkcy5sZW5ndGgpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRJZHMubGVuZ3RoOyArK2kpCisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnIiArIHNl
bGVjdG9yICsgIicpWyIgKyBpICsgIl0uaWQiLCAndGFyZ2V0JyArIGV4cGVjdGVkSWRzW2ldKTsK
K30KKworZnVuY3Rpb24gdGVzdFN0eWxpbmcoc2VsZWN0b3IsIGV4cGVjdGVkSWRzKSB7CisgICAg
dmFyIHN0eWxpbmdFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlIik7Cisg
ICAgc3R5bGluZ0VsZW1lbnQuaW5uZXJIVE1MID0gJycgKyBzZWxlY3RvciArICcgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2IoMTAsIDEwMCwgMjAwKTsgfSc7CisKKyAgICB2YXIgYWxsVGVzdENhc2Vz
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIik7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBhbGxUZXN0Q2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIGV4
cGVjdE1hdGNoID0gZXhwZWN0ZWRJZHMuaW5kZXhPZihwYXJzZUludChhbGxUZXN0Q2FzZXNbaV0u
aWQucmVwbGFjZSgndGFyZ2V0JywgJycpKSkgPj0gMDsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0
LXJvb3QgKiIpWycgKyBpICsgJ10pLmJhY2tncm91bmRDb2xvcicsIGV4cGVjdE1hdGNoID8gJ3Jn
YigxMCwgMTAwLCAyMDApJyA6ICdyZ2IoMjU1LCAwLCAwKScpOworICAgIH0KKworICAgIHN0eWxp
bmdFbGVtZW50LmlubmVySFRNTCA9ICcnOworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0b3Ioc2Vs
ZWN0b3IsIGV4cGVjdGVkSWRzKSB7CisgICAgZGVidWcoIlRlc3RpbmcgXCIiICsgc2VsZWN0b3Ig
KyAiXCIiKTsKKyAgICB0ZXN0UXVlcnlTZWxlY3RvcigiI3Rlc3Qtcm9vdCAiICsgc2VsZWN0b3Is
IGV4cGVjdGVkSWRzKTsKKyAgICB0ZXN0U3R5bGluZygiI3Rlc3Qtcm9vdCAiICsgc2VsZWN0b3Is
IGV4cGVjdGVkSWRzKTsKKyAgICBkZWJ1ZygiIik7Cit9CisKK3ZhciB0ZXN0Q2FzZXMgPSBbCisg
ICAgLy8gUmVndWxhciBhdHRyaWJ1dGUgbWF0Y2hpbmcgaXMgY2FzZSBzZW5zaXRpdmUuCisgICAg
WydbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOJXScsIFsxXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1
dGU9d2Via2l0LcOJXScsIFsyXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJXScs
IFszXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOpXScsIFs0XV0sCisgICAgWydb
ZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOpXScsIFs1XV0sCisKKyAgICAvLyBTYW1lIHNlbGVjdG9y
cyB3aXRoIHRoZSBjYXNlLWluc2Vuc2l0aXZpZSBmbGFnLgorICAgIFsnW2RhdGEtYXR0cmlidXRl
PVdlYktpdC3DiSBpXScsIFsxLCAyLCAzXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9d2Via2l0
LcOJIGldJywgWzEsIDIsIDNdXSwKKyAgICBbJ1tkYXRhLWF0dHJpYnV0ZT1XRUJLSVQtw4kgaV0n
LCBbMSwgMiwgM11dLAorICAgIFsnW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DqSBpXScsIFs0LCA1
XV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOpIGldJywgWzQsIDVdXSwKKworICAg
IC8vICJtdWx0aXBsZSIgaXMgb25lIG9mIHRob3NlIHdlaXJkIGxlZ2FjeSBleGNlcHRpb246IGl0
IGlzIGFsd2F5cyBjYXNlIGluc2Vuc2l0aXZlIGluIEhUTUwuCisgICAgWydbbXVsdGlwbGU9V0VC
S0lULcOpXScsIFsxLCAyLCAzXV0sCisgICAgWydbbXVsdGlwbGU9V2ViS2l0LcOpXScsIFsxLCAy
LCAzXV0sCisgICAgWydbbXVsdGlwbGU9V2Via2l0LcOpXScsIFsxLCAyLCAzXV0sCisgICAgWydb
bXVsdGlwbGU9d2Via2l0LcOJXScsIFs0LCA1XV0sCisgICAgWydbbXVsdGlwbGU9d2ViS2l0LcOJ
XScsIFs0LCA1XV0sCisgICAgWydbbXVsdGlwbGU9V0VCS0lULcOpIGldJywgWzEsIDIsIDNdXSwK
KyAgICBbJ1ttdWx0aXBsZT1XZWJLaXQtw6kgaV0nLCBbMSwgMiwgM11dLAorICAgIFsnW211bHRp
cGxlPVdlYmtpdC3DqSBpXScsIFsxLCAyLCAzXV0sCisgICAgWydbbXVsdGlwbGU9d2Via2l0LcOJ
IGldJywgWzQsIDVdXSwKKyAgICBbJ1ttdWx0aXBsZT13ZWJLaXQtw4kgaV0nLCBbNCwgNV1dLAor
XTsKKworZm9yICh2YXIgdGVzdENhc2Ugb2YgdGVzdENhc2VzKSB7CisgICAgdGVzdFNlbGVjdG9y
KHRlc3RDYXNlWzBdLCB0ZXN0Q2FzZVsxXSk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248638</attachid>
            <date>2015-03-13 20:52:49 -0700</date>
            <delta_ts>2015-03-15 09:59:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142609-20150313205221.patch</filename>
            <type>text/plain</type>
            <size>53525</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFiNjJlYWM3Yzk5MjgyNzdkN2MyMWY0
MzdjZDY5YzRiYmEzMWU0ZDcuLjA4MTE2OGJkZjZmMzZlOGUwNGY4ZTk4NWE5MGI0MWZmNjM4N2Y1
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTUtMDMtMTMgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIHRoZSBleGFjdCBhdHRyaWJ1dGUg
bWF0Y2hpbmcgdG8gYmUgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEFTQ0lJIGNhc2Ug
aW5zZW5zaXRpdmUgY29tcGFyaXNvbnMgdG8gYWxsIHRoZSBzdHJpbmcKKyAgICAgICAgY2xhc3Nl
cy4KKworICAgICAgICBUaGUgbmV3IGZpbGUgU3RyaW5nQ29tbW9uLmggaGFzIHRoZSBjb21tb24g
YWxnb3JpdGhtIHRvIGF2b2lkIHJlcGVhdGluZworICAgICAgICB0aGUgc2FtZSBjb2RlIHdpdGgg
ZGlmZmVyZW50IHR5cGVzLgorCisgICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2o6Cisg
ICAgICAgICogV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiB3dGYv
QVNDSUlDVHlwZS5oOgorICAgICAgICAoV1RGOjp0b0FTQ0lJTG93ZXIpOgorICAgICAgICAqIHd0
Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuaDoKKyAg
ICAgICAgKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSk6CisgICAgICAgICogd3RmL3RleHQv
U3RyaW5nQ29tbW9uLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlD
YXNlKToKKyAgICAgICAgKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZUNvbW1vbik6CisgICAg
ICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OmVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UpOgorICAgICAgICAoV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlTm9uTnVs
bCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnV0ZjhJbXBsKToKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6ZGVmYXVsdFdyaXRpbmdEaXJlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpTdHJpbmdJbXBsOjphZG9wdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OlN0cmluZ0lt
cGw6OnNpemVJbkJ5dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6cHV0VVRGOFRyaXBsZSk6
IERlbGV0ZWQuCisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnV0ZjgpOiBEZWxldGVkLgorICAg
ICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6
aXNTdWJTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpmaW5kKTogRGVsZXRlZC4KKwog
MjAxNS0wMy0wNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBjcmFzaGVzIHNlZW4gb24gdGhlIHRoZSBXaW5kb3dzIGJ1aWxkYm90cyBhZnRlciBteSBs
YXN0IHBhdGNoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4ZWIxZWZlNzRkZTM1Nzc4ZDQyMjgzNWRlNmI1ZDJh
ZDNiYzMxODcuLjkyZDQ5ZDI5MDBjMzU4ZDM0M2RhMjkxODNjNzNlNzFlYjhjYTNlNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNS0wMy0xMSAgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFuZ2UgdGhlIGV4YWN0IGF0dHJpYnV0ZSBt
YXRjaGluZyB0byBiZSBBU0NJSSBjYXNlLWluc2Vuc2l0aXZlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2MDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBDU1MsIHRlc3RpbmcgYXR0cmlidXRlIHZh
bHVlcyBzaG91bGQgYmUgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZSwKKyAgICAgICAgcHJldmlvdXNs
eSB3ZSB3ZXJlIHVzaW5nIGZ1bGwgdW5pY29kZSBjYXNlIGNvbnZlcnNpb24uCisKKyAgICAgICAg
VGVzdDogZmFzdC9zZWxlY3RvcnMvYXR0cmlidXRlLWV4YWN0LXZhbHVlLW1hdGNoLWlzLWFzY2lp
LWNhc2UtaW5zZW5zaXRpdmUuaHRtbAorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlS2V5ZnJhbWVTZWxlY3Rvcik6CisgICAg
ICAgIFRoZSBDU1MgcGFyc2VyIGhhcyBpdHMgb3duIGZhc3QgdmVyc2lvbiBmb3IgQVNDSUkgY2Fz
ZSBpbnNlbnNpdGl2ZS4KKyAgICAgICAgVGhpcyBjb2RlIHdhcyB1c2luZyB0aGUgZ2VuZXJhbCBl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKCkgd2hpY2ggd2FzIGNhdXNpbmcgbmFtZSBjb25mbGljdHMs
CisgICAgICAgIGNoYW5nZSB0aGF0IHRvIHRoZSBub3JtYWwgQ1NTIHBhcnNlciB2ZXJzaW9uLgor
CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlclRlc3RGdW5jdGlvbnMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmVxdWFsSWdub3JpbmdBU0NJSUNhc2UpOiBEZWxldGVkLgorICAgICAgICAqIGNz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29t
cGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50QXR0cmlidXRlVmFs
dWVFeGFjdE1hdGNoaW5nKToKKwogMjAxNS0wMy0wNiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtDb250ZW50IEV4dGVuc2lvbnNdIE1vdmUgY29tcGlsaW5nIG9mIGNv
bnRlbnQgZXh0ZW5zaW9ucyB0byB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi52Y3hwcm9qL1dURi52Y3hwcm9qIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4
cHJvagppbmRleCA1ZWVkMTNkODA2MGRiNDQxNjcxMTVjZTkyMGMwYWVhZDk2YWE5M2VmLi5jNTY3
NGVmMjhhNzgwM2NiZWJhZTI5N2YyYTIxYzA2ZDM2NTEwNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ov
V1RGLnZjeHByb2oKQEAgLTI4OCw2ICsyODgsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd3RmXHRleHRcTENoYXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0Zlx0
ZXh0XFN0cmluZ0J1ZmZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRl
eHRcU3RyaW5nQnVpbGRlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRl
eHRcU3RyaW5nQ29tbW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcdGV4
dFxTdHJpbmdDb25jYXRlbmF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XHRleHRcU3RyaW5nSGFzaC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRl
eHRcU3RyaW5nSW1wbC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmN4cHJvai9X
VEYudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvai5m
aWx0ZXJzCmluZGV4IGI1YTY3YTMyNTE3OTBiMTA5ZmVlN2NhMDc4MzhmMzgzNWM2NzgyYTQuLjFm
NzM1ZTQwODYwODA0MjBiMjgzYzA3NTk2ZTdjNzFjZDEyZjYzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV1RGL1dU
Ri52Y3hwcm9qL1dURi52Y3hwcm9qLmZpbHRlcnMKQEAgLTMxOCw2ICszMTgsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXHRleHRcU3RyaW5nQnVpbGRlci5oIj4KICAgICAgIDxG
aWx0ZXI+dGV4dDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXHRleHRcU3RyaW5nQ29tbW9uLmgiPgorICAgICAgPEZpbHRlcj50ZXh0PC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
dGV4dFxTdHJpbmdDb25jYXRlbmF0ZS5oIj4KICAgICAgIDxGaWx0ZXI+dGV4dDwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZjdkZjJlYTg2YTZkMDJjYTQ0YmNlYzIxODQyNWRhMTlmMDkyZmZiYS4uOWYzOWFiNjFj
OGZiZmQ1NWI1NjYxZTAwYzE0NDVkOWI1YmY4MzNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC03Myw2ICs3Myw3IEBACiAJCTJDREVEMEVGMTgxMTVDMzgw
MDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkNERUQwRUUxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAg
Ki87IH07CiAJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDREVEMEYxMTgxMTVDODUw
MDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKIAkJMkNERUQwRjQxODExNUM4NTAwNERCQTcw
IC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDREVEMEYyMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmggKi87IH07CisJCTQzMEI0
Nzg5MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJpbmdDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMEI0Nzg3MUFBQUFDMUEwMDEyMjNEQSAvKiBT
dHJpbmdDb21tb24uaCAqLzsgfTsKIAkJN0NCQkEwNzQxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2Jq
ZWN0UHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIuaCAqLzsgfTsKIAkJN0NERDdG
RjgxODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJhdG9yQWRhcHRvcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAv
KiBJdGVyYXRvckFkYXB0b3JzLmggKi87IH07CiAJCTdDREQ3RkZBMTg2RDJBNTQwMDc0MzNDRCAv
KiBJdGVyYXRvclJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3Q0REN0ZGOTE4NkQyQTU0MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oICovOyB9
OwpAQCAtMzU3LDYgKzM1OCw3IEBACiAJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5M
b29wQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcENG
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkNERUQwRjExODExNUM4NTAwNERC
QTcwIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDREVEMEYyMTgxMTVD
ODUwMDREQkE3MCAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDMwQjQ3ODcxQUFBQUMx
QTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHJpbmdDb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdC
NjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBsaWJXVEYuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNUQy
NDdCNkUxNDY4OUM0NzAwRTc4Qjc2IC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFz
ZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdCNzAxNDY4OUM0
NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1Jl
bGVhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDksNiArOTUx
LDcgQEAKIAkJCQlBOEE0NzMyMzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nQnVmZmVyLmggKi8s
CiAJCQkJQThBNDczMjQxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0J1aWxkZXIuY3BwICovLAog
CQkJCUE4QTQ3MzI1MTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdCdWlsZGVyLmggKi8sCisJCQkJ
NDMwQjQ3ODcxQUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5oICovLAogCQkJCUE4QTQ3
MzI2MTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdDb25jYXRlbmF0ZS5oICovLAogCQkJCUE4QTQ3
MzI3MTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdIYXNoLmggKi8sCiAJCQkJQThBNDczMjgxNTFB
ODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0ltcGwuY3BwICovLApAQCAtMTE5Niw2ICsxMTk5LDcgQEAK
IAkJCQk4M0ZCQTkzMjE5REY0NTk3MDBGMzBBREIgLyogVHlwZUNhc3RzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTZFQjFFMDE4N0QwQkQzMDAzMDEyNkYgLyogU3RyaW5nVmlldy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDc0MzMxNTFBODI1QjAwNDEyM0ZGIC8qIFRlbXBvcmFyeUNoYW5nZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDMwQjQ3ODkxQUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0Nv
bW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0NDQxNTFBODI1QjAwNDEyM0ZGIC8qIFRl
eHRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0NDcxNTFBODI1QjAwNDEyM0ZG
IC8qIFRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0
NDkxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQVNDSUlDVHlwZS5oIGIvU291
cmNlL1dURi93dGYvQVNDSUlDVHlwZS5oCmluZGV4IDM0NDVkMmIwNDRhMWViNzMyMzE3OGIxYTZh
YzdiOTcxMDA4NjQ0ZDIuLjNkYjc0MGU4OWI0YTkwZDA4OTk3ZjgzNjE3NGIyY2I2NTA5OTg2NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0FTQ0lJQ1R5cGUuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9BU0NJSUNUeXBlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNkZWZpbmUgV1RGX0FTQ0lJQ1R5
cGVfaAogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9M
Q2hhci5oPgogCiAvLyBUaGUgYmVoYXZpb3Igb2YgbWFueSBvZiB0aGUgZnVuY3Rpb25zIGluIHRo
ZSA8Y3R5cGUuaD4gaGVhZGVyIGlzIGRlcGVuZGVudAogLy8gb24gdGhlIGN1cnJlbnQgbG9jYWxl
LiBCdXQgaW4gdGhlIFdlYktpdCBwcm9qZWN0LCBhbGwgdXNlcyBvZiB0aG9zZSBmdW5jdGlvbnMK
QEAgLTQzLDYgKzQ0LDI1IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitjb25zdCB1bnNpZ25lZCBj
aGFyIGFzY2lpQ2FzZUZvbGRUYWJsZVsyNTZdID0geworICAgIDB4MDAsIDB4MDEsIDB4MDIsIDB4
MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMs
IDB4MGQsIDB4MGUsIDB4MGYsCisgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgx
NSwgMHgxNiwgMHgxNywgMHgxOCwgMHgxOSwgMHgxYSwgMHgxYiwgMHgxYywgMHgxZCwgMHgxZSwg
MHgxZiwKKyAgICAweDIwLCAweDIxLCAweDIyLCAweDIzLCAweDI0LCAweDI1LCAweDI2LCAweDI3
LCAweDI4LCAweDI5LCAweDJhLCAweDJiLCAweDJjLCAweDJkLCAweDJlLCAweDJmLAorICAgIDB4
MzAsIDB4MzEsIDB4MzIsIDB4MzMsIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsIDB4MzgsIDB4Mzks
IDB4M2EsIDB4M2IsIDB4M2MsIDB4M2QsIDB4M2UsIDB4M2YsCisgICAgMHg0MCwgMHg2MSwgMHg2
MiwgMHg2MywgMHg2NCwgMHg2NSwgMHg2NiwgMHg2NywgMHg2OCwgMHg2OSwgMHg2YSwgMHg2Yiwg
MHg2YywgMHg2ZCwgMHg2ZSwgMHg2ZiwKKyAgICAweDcwLCAweDcxLCAweDcyLCAweDczLCAweDc0
LCAweDc1LCAweDc2LCAweDc3LCAweDc4LCAweDc5LCAweDdhLCAweDViLCAweDVjLCAweDVkLCAw
eDVlLCAweDVmLAorICAgIDB4NjAsIDB4NjEsIDB4NjIsIDB4NjMsIDB4NjQsIDB4NjUsIDB4NjYs
IDB4NjcsIDB4NjgsIDB4NjksIDB4NmEsIDB4NmIsIDB4NmMsIDB4NmQsIDB4NmUsIDB4NmYsCisg
ICAgMHg3MCwgMHg3MSwgMHg3MiwgMHg3MywgMHg3NCwgMHg3NSwgMHg3NiwgMHg3NywgMHg3OCwg
MHg3OSwgMHg3YSwgMHg3YiwgMHg3YywgMHg3ZCwgMHg3ZSwgMHg3ZiwKKyAgICAweDgwLCAweDgx
LCAweDgyLCAweDgzLCAweDg0LCAweDg1LCAweDg2LCAweDg3LCAweDg4LCAweDg5LCAweDhhLCAw
eDhiLCAweDhjLCAweDhkLCAweDhlLCAweDhmLAorICAgIDB4OTAsIDB4OTEsIDB4OTIsIDB4OTMs
IDB4OTQsIDB4OTUsIDB4OTYsIDB4OTcsIDB4OTgsIDB4OTksIDB4OWEsIDB4OWIsIDB4OWMsIDB4
OWQsIDB4OWUsIDB4OWYsCisgICAgMHhhMCwgMHhhMSwgMHhhMiwgMHhhMywgMHhhNCwgMHhhNSwg
MHhhNiwgMHhhNywgMHhhOCwgMHhhOSwgMHhhYSwgMHhhYiwgMHhhYywgMHhhZCwgMHhhZSwgMHhh
ZiwKKyAgICAweGIwLCAweGIxLCAweGIyLCAweGIzLCAweGI0LCAweGI1LCAweGI2LCAweGI3LCAw
eGI4LCAweGI5LCAweGJhLCAweGJiLCAweGJjLCAweGJkLCAweGJlLCAweGJmLAorICAgIDB4YzAs
IDB4YzEsIDB4YzIsIDB4YzMsIDB4YzQsIDB4YzUsIDB4YzYsIDB4YzcsIDB4YzgsIDB4YzksIDB4
Y2EsIDB4Y2IsIDB4Y2MsIDB4Y2QsIDB4Y2UsIDB4Y2YsCisgICAgMHhkMCwgMHhkMSwgMHhkMiwg
MHhkMywgMHhkNCwgMHhkNSwgMHhkNiwgMHhkNywgMHhkOCwgMHhkOSwgMHhkYSwgMHhkYiwgMHhk
YywgMHhkZCwgMHhkZSwgMHhkZiwKKyAgICAweGUwLCAweGUxLCAweGUyLCAweGUzLCAweGU0LCAw
eGU1LCAweGU2LCAweGU3LCAweGU4LCAweGU5LCAweGVhLCAweGViLCAweGVjLCAweGVkLCAweGVl
LCAweGVmLAorICAgIDB4ZjAsIDB4ZjEsIDB4ZjIsIDB4ZjMsIDB4ZjQsIDB4ZjUsIDB4ZjYsIDB4
ZjcsIDB4ZjgsIDB4ZjksIDB4ZmEsIDB4ZmIsIDB4ZmMsIDB4ZmQsIDB4ZmUsIDB4ZmYKK307CisK
IHRlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPiBpbmxpbmUgYm9vbCBpc0FTQ0lJKENoYXJUeXBl
IGMpCiB7CiAgICAgcmV0dXJuICEoYyAmIH4weDdGKTsKQEAgLTExMSw2ICsxMzEsMTggQEAgdGVt
cGxhdGU8dHlwZW5hbWUgQ2hhclR5cGU+IGlubGluZSBDaGFyVHlwZSB0b0FTQ0lJTG93ZXIoQ2hh
clR5cGUgYykKICAgICByZXR1cm4gYyB8ICgoYyA+PSAnQScgJiYgYyA8PSAnWicpIDw8IDUpOwog
fQogCit0ZW1wbGF0ZTw+CitpbmxpbmUgY2hhciB0b0FTQ0lJTG93ZXIoY2hhciBjKQoreworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjaGFyPihhc2NpaUNhc2VGb2xkVGFibGVbc3RhdGljX2Nhc3Q8
dW5zaWduZWQgY2hhcj4oYyldKTsKK30KKwordGVtcGxhdGU8PgoraW5saW5lIExDaGFyIHRvQVND
SUlMb3dlcihMQ2hhciBjKQoreworICAgIHJldHVybiBhc2NpaUNhc2VGb2xkVGFibGVbY107Cit9
CisKIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPiBpbmxpbmUgQ2hhclR5cGUgdG9BU0NJSUxv
d2VyVW5jaGVja2VkKENoYXJUeXBlIGNoYXJhY3RlcikKIHsKICAgICAvLyBUaGlzIGZ1bmN0aW9u
IGNhbiBiZSB1c2VkIGZvciBjb21wYXJpbmcgYW55IGlucHV0IGNoYXJhY3RlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxp
c3RzLnR4dAppbmRleCBlM2Y5MmZlNDAzMWUyNmY2NTI4YmRlMjQ4ZDFjMWI4YjZjYzc4MGU0Li5l
YzAxODgwOTFkMThjM2FkYTkyYjU2M2MwMjBjY2M2OTNiYzQ1YWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dApAQCAtMTI5LDYgKzEyOSw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIHRleHQvSW50ZWdl
clRvU3RyaW5nQ29udmVyc2lvbi5oCiAgICAgdGV4dC9MQ2hhci5oCiAgICAgdGV4dC9TdHJpbmdC
dWZmZXIuaAorICAgIHRleHQvU3RyaW5nQ29tbW9uLmgKICAgICB0ZXh0L1N0cmluZ0hhc2guaAog
ICAgIHRleHQvU3RyaW5nSW1wbC5oCiAgICAgdGV4dC9TdHJpbmdWaWV3LmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0F0b21pY1N0cmluZy5oCmluZGV4IGJhZTlkMzYyZDI3NTFlNWE3M2NlMGIxYjdlMmE0MTFiMDE4
MzdmMzMuLmM5Y2RkNjgwOTJlZDU3ZTAwMGQyNTJlYmJmMTZhNzhjMjRmZjE4ODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9BdG9taWNTdHJpbmcuaApAQCAtMjQ3LDYgKzI0NywxMCBAQCBpbmxpbmUgYm9vbCBl
cXVhbElnbm9yaW5nQ2FzZShjb25zdCBMQ2hhciogYSwgY29uc3QgQXRvbWljU3RyaW5nJiBiKSB7
IHJldHVybiBlcQogaW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2UoY29uc3QgY2hhciogYSwg
Y29uc3QgQXRvbWljU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYSksIGIuaW1wbCgpKTsgfQogaW5saW5lIGJvb2wgZXF1
YWxJZ25vcmluZ0Nhc2UoY29uc3QgU3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsg
cmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKGEuaW1wbCgpLCBiLmltcGwoKSk7IH0KIAoraW5saW5l
IGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBBdG9taWNTdHJpbmcmIGEsIGNvbnN0
IEF0b21pY1N0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmltcGwo
KSwgYi5pbXBsKCkpOyB9CitpbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0
IEF0b21pY1N0cmluZyYgYSwgY29uc3QgU3RyaW5nJiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGEuaW1wbCgpLCBiLmltcGwoKSk7IH0KK2lubGluZSBib29sIGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nJiBhLCBjb25zdCBBdG9taWNTdHJpbmcmIGIpIHsgcmV0
dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5pbXBsKCksIGIuaW1wbCgpKTsgfQorCiAvLyBE
ZWZpbmUgZXh0ZXJuYWwgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgdGhlIGNvbW1vbmx5IHVzZWQgYXRv
bWljIHN0cmluZ3MuCiAvLyBUaGVzZSBhcmUgb25seSB1c2FibGUgZnJvbSB0aGUgbWFpbiB0aHJl
YWQuCiAjaWZuZGVmIEFUT01JQ1NUUklOR19ISURFX0dMT0JBTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29tbW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwODE5NDY3YzE4OWE5NzBiOWQ3NmJhMjBiNjc2N2NmYTQy
ZjI4NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbW1v
bi5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0cmluZ0NvbW1vbl9o
CisjZGVmaW5lIFN0cmluZ0NvbW1vbl9oCisKKyNpbmNsdWRlIDx1bmljb2RlL3VjaGFyLmg+Cisj
aW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9MQ2hhci5oPgor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZUEsIHR5
cGVuYW1lIENoYXJhY3RlclR5cGVCPgoraW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShjb25zdCBDaGFyYWN0ZXJUeXBlQSogYSwgY29uc3QgQ2hhcmFjdGVyVHlwZUIqIGIsIHVuc2ln
bmVkIGxlbmd0aCkKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihhW2ldKSAhPSB0b0FTQ0lJTG93ZXIoYltpXSkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQor
Cit0ZW1wbGF0ZTw+CitpbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNvbnN0IExD
aGFyKiBhLCBjb25zdCBMQ2hhciogYiwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBpZiAodG9BU0NJSUxvd2Vy
KGFbaV0pICE9IHRvQVNDSUlMb3dlcihiW2ldKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ0Ns
YXNzPgorYm9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKGNvbnN0IFN0cmluZ0NsYXNz
JiBhLCBjb25zdCBTdHJpbmdDbGFzcyYgYikKK3sKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBhLmxl
bmd0aCgpOworICAgIGlmIChsZW5ndGggIT0gYi5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKGEuaXM4Qml0KCkpIHsKKyAgICAgICAgaWYgKGIuaXM4Qml0KCkpCisg
ICAgICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhLmNoYXJhY3RlcnM4KCks
IGIuY2hhcmFjdGVyczgoKSwgbGVuZ3RoKTsKKworICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShhLmNoYXJhY3RlcnM4KCksIGIuY2hhcmFjdGVyczE2KCksIGxlbmd0aCk7Cisg
ICAgfQorCisgICAgaWYgKGIuaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKGEuY2hhcmFjdGVyczE2KCksIGIuY2hhcmFjdGVyczgoKSwgbGVuZ3RoKTsKKwor
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuY2hhcmFjdGVyczE2KCksIGIuY2hh
cmFjdGVyczE2KCksIGxlbmd0aCk7Cit9CisKK30KKworI2VuZGlmIC8vIFN0cmluZ0NvbW1vbl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwIGIvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAppbmRleCAwYjc3NDlhZjhmOTJmYmU2NTk2NGRj
YzgzZGUxY2VjNTg3M2MwOTJmLi5lNzg2ZDljZDRiYTViYTdiZDJlNjI0ZTE1NTA0YTRhNjc2Mjk5
ZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKQEAgLTIwMTgsNiArMjAxOCwyNyBA
QCBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KFN0cmluZ0ltcGwqIGEsIFN0cmluZ0ltcGwqIGIp
CiAgICAgcmV0dXJuIGVxdWFsKGEsIGIpOwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsJiBhLCBjb25zdCBTdHJpbmdJbXBsJiBi
KQoreworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKGEsIGIpOworfQor
Citib29sIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY29uc3QgU3RyaW5nSW1wbCogYSwgY29uc3Qg
U3RyaW5nSW1wbCpiKQoreworICAgIGlmIChhID09IGIpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGlmICghYSB8fCAhYikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlQ29tbW9uKCphLCAqYik7Cit9CisKK2Jvb2wgZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZU5vbk51bGwoY29uc3QgU3RyaW5nSW1wbCogYSwgY29uc3QgU3RyaW5nSW1wbCog
YikKK3sKKyAgICBBU1NFUlQoYSk7CisgICAgQVNTRVJUKGIpOworICAgIHJldHVybiBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlQ29tbW9uKCphLCAqYik7Cit9CisKIFVDaGFyRGlyZWN0aW9uIFN0cmlu
Z0ltcGw6OmRlZmF1bHRXcml0aW5nRGlyZWN0aW9uKGJvb2wqIGhhc1N0cm9uZ0RpcmVjdGlvbmFs
aXR5KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xlbmd0aDsgKytpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IDY2NzIyM2U2ZGE3NWQxMmI1MzE3NDQxMDkwM2Ez
YjNhNzYzMWE0NzYuLmQwNzQwNjRmNjVjNDI2NTY3MzUwMzI3NDg0ZTU1YTE5ODdiNjU3ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC0xMTMyLDYgKzExMzIsMTAgQEAgV1RGX0VYUE9S
VF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJZ25vcmluZ0Nhc2VOb25OdWxsKGNvbnN0IFN0cmluZ0lt
cGwqLCBjb25zdCBTdHIKIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBib29sIGVxdWFsSWdub3JpbmdO
dWxsaXR5KFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7CiBXVEZfRVhQT1JUX1NUUklOR19BUEkg
Ym9vbCBlcXVhbElnbm9yaW5nTnVsbGl0eShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFN0
cmluZ0ltcGwqKTsKIAorV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShjb25zdCBTdHJpbmdJbXBsJiwgY29uc3QgU3RyaW5nSW1wbCYpOworV1RGX0VYUE9S
VF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmdJbXBs
KiwgY29uc3QgU3RyaW5nSW1wbCopOworV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwoY29uc3QgU3RyaW5nSW1wbCosIGNvbnN0IFN0cmluZ0lt
cGwqKTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBzaXplX3Qg
ZmluZChjb25zdCBDaGFyYWN0ZXJUeXBlKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENo
YXJhY3RlclR5cGUgbWF0Y2hDaGFyYWN0ZXIsIHVuc2lnbmVkIGluZGV4ID0gMCkKIHsKQEAgLTEz
NzQsNiArMTM3OCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFJlZlB0cjxTdHJp
bmdJbXBsPj4gewogCiB1c2luZyBXVEY6OlN0cmluZ0ltcGw7CiB1c2luZyBXVEY6OmVxdWFsOwor
dXNpbmcgV1RGOjplcXVhbElnbm9yaW5nQVNDSUlDYXNlOwogdXNpbmcgV1RGOjpUZXh0Q2FzZVNl
bnNpdGl2aXR5OwogdXNpbmcgV1RGOjpUZXh0Q2FzZVNlbnNpdGl2ZTsKIHVzaW5nIFdURjo6VGV4
dENhc2VJbnNlbnNpdGl2ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
Vmlldy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKaW5kZXggNmY5NGJmODkz
ZmFlZjY5ODNiZjAzOGUzNGU4ZjAwMjNjMjAwNWJjOS4uNWNjYjNhZDdlMTMyOGEwNTZjN2U3NmFl
Y2JmMDYzMTRhZmE1Zjg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdW
aWV3LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0xDaGFyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29tbW9uLmg+CiAKIC8vIEZJWE1FOiBFbmFibGluZyB0aGUgU3RyaW5nVmlldyBsaWZldGltZSBj
aGVja2luZyBjYXVzZXMgdGhlIE1TVkMgYnVpbGQgdG8gZmFpbC4gRmlndXJlIG91dCB3aHkuCiAv
LyBGSVhNRTogRW5hYmxlIFN0cmluZ1ZpZXcgbGlmZXRpbWUgY2hlY2tpbmcgb25jZSB0aGUgdW5k
ZXJseWluZyBhc3NlcnRpb25zIGhhdmUgYmVlbiBmaXhlZC4KQEAgLTUwNSwxNCArNTA2LDcgQEAg
aW5saW5lIGJvb2wgZXF1YWwoU3RyaW5nVmlldyBhLCBjb25zdCBjaGFyKiBiKQogCiBpbmxpbmUg
Ym9vbCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKFN0cmluZ1ZpZXcgYSwgU3RyaW5nVmlldyBiKQog
ewotICAgIHVuc2lnbmVkIGFMZW5ndGggPSBhLmxlbmd0aCgpOwotICAgIGlmIChhTGVuZ3RoICE9
IGIubGVuZ3RoKCkpIAotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBhTGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihhW2ldKSAh
PSB0b0FTQ0lJTG93ZXIoYltpXSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlQ29tbW9u
KGEsIGIpOwogfQogCiBjbGFzcyBTdHJpbmdWaWV3OjpDb2RlUG9pbnRzIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dU
RlN0cmluZy5oCmluZGV4IDg0YjYwNWY2MTcyZmNkZmM3YmUzMmZkODkzZTg3N2NlYWMyMGQ0ODku
LjYwOWEwMDI0NGE1ZGNhODEwODA2YWM1NWMyNTE0YTYyZTJiZDgwZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9X
VEZTdHJpbmcuaApAQCAtNDkyLDYgKzQ5Miw4IEBAIGlubGluZSBib29sIGVxdWFsSWdub3JpbmdD
YXNlKGNvbnN0IFN0cmluZyYgYSwgY29uc3QgY2hhciogYikgeyByZXR1cm4gZXF1YWxJZ25vCiBp
bmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nQ2FzZShjb25zdCBMQ2hhciogYSwgY29uc3QgU3RyaW5n
JiBiKSB7IHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShhLCBiLmltcGwoKSk7IH0KIGlubGluZSBi
b29sIGVxdWFsSWdub3JpbmdDYXNlKGNvbnN0IGNoYXIqIGEsIGNvbnN0IFN0cmluZyYgYikgeyBy
ZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGEp
LCBiLmltcGwoKSk7IH0KIAoraW5saW5lIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25z
dCBTdHJpbmcmIGEsIGNvbnN0IFN0cmluZyYgYikgeyByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShhLmltcGwoKSwgYi5pbXBsKCkpOyB9CisKIGlubGluZSBib29sIGVxdWFsUG9zc2libHlJ
Z25vcmluZ0Nhc2UoY29uc3QgU3RyaW5nJiBhLCBjb25zdCBTdHJpbmcmIGIsIGJvb2wgaWdub3Jl
Q2FzZSkgCiB7CiAgICAgcmV0dXJuIGlnbm9yZUNhc2UgPyBlcXVhbElnbm9yaW5nQ2FzZShhLCBi
KSA6IChhID09IGIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjYjA2ZGQwNzFkZDU0
NGM5ZDQ2Y2NmMzhhNzBkMjQ1Nzg5OTg2M2U2Li5jZmRhMDZiNmZlOWMwZTJiNmUxY2VjZGI2OGJj
YWNhM2FlM2NlMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDc1Niw5ICs0NzU2
LDkgQEAgVmVjdG9yPGRvdWJsZT4gQ1NTUGFyc2VyOjpwYXJzZUtleWZyYW1lU2VsZWN0b3IoY29u
c3QgU3RyaW5nJiBzZWxlY3RvcikgewogICAgICAgICBTdHJpbmcgY3VyID0gc3RyaW5nc1tpXS5z
dHJpcFdoaXRlU3BhY2UoKTsKIAogICAgICAgICAvLyBGb3Igbm93IHRoZSBzeW50YXggTVVTVCBi
ZSAneHh4JScgb3IgJ2Zyb20nIG9yICd0bycsIHdoZXJlIHh4eCBpcyBhIGxlZ2FsIGZsb2F0aW5n
IHBvaW50IG51bWJlcgotICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjdXIsICJm
cm9tIikpCisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShjdXIsICJmcm9tIikpCiAgICAg
ICAgICAgICBrZXkgPSAwOwotICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KGN1ciwgInRvIikpCisgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGN1ciwgInRv
IikpCiAgICAgICAgICAgICBrZXkgPSAxOwogICAgICAgICBlbHNlIGlmIChjdXIuZW5kc1dpdGgo
JyUnKSkgewogICAgICAgICAgICAgZG91YmxlIGsgPSBjdXIuc3Vic3RyaW5nKDAsIGN1ci5sZW5n
dGgoKSAtIDEpLnRvRG91YmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlclRlc3RGdW5jdGlvbnMuaAppbmRleCBkNWUwOTY1M2JjNWMzYThmYzQ1YzAyNmI3NDdh
Mjc1MjZjOGExNzE4Li42YWJkMDhiNzNjMzgxOGNkZWRkNDQ2M2ZhZGRiZWNjMDVmYmFlMjI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9u
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25z
LmgKQEAgLTEyMCwxNyArMTIwLDYgQEAgQUxXQVlTX0lOTElORSBib29sIGlzV2luZG93SW5hY3Rp
dmUoY29uc3QgRWxlbWVudCogZWxlbWVudCkKICAgICByZXR1cm4gIWVsZW1lbnQtPmRvY3VtZW50
KCkucGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOwogfQogCi1BTFdBWVNfSU5M
SU5FIGJvb2wgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjb25zdCBTdHJpbmcmIGEsIGNvbnN0IFN0
cmluZyYgYikKLXsKLSAgICBpZiAoYS5sZW5ndGgoKSAhPSBiLmxlbmd0aCgpKSAKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYS5sZW5ndGgoKTsgKytp
KSB7Ci0gICAgICAgIGlmICh0b0FTQ0lJTG93ZXIoYVtpXSkgIT0gdG9BU0NJSUxvd2VyKGJbaV0p
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQogQUxXQVlTX0lOTElORSBib29sIGNvbnRhaW5zbGFuZ3VhZ2VTdWJ0YWdNYXRjaGluZ1Jhbmdl
KFN0cmluZ1ZpZXcgbGFuZ3VhZ2UsIFN0cmluZ1ZpZXcgcmFuZ2UsIHVuc2lnbmVkIGxhbmd1YWdl
TGVuZ3RoLCB1bnNpZ25lZCYgcG9zaXRpb24pCiB7CiAgICAgdW5zaWduZWQgbGFuZ3VhZ2VTdWJ0
YWdzU3RhcnRJbmRleCA9IHBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9y
Q29tcGlsZXIuY3BwCmluZGV4IDExZjNmMmJkYTdjNzYzYTFkZmY0Njg1YmZjZWEzZGM5YWVlMjFm
MWYuLjg2NGQyOGU0NWU5NzdjYjJjMTY0Zjg1YjExNTg2M2JhMmMzZTE3YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTI5MzAsNyArMjkzMCw3IEBA
IHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRBdHRyaWJ1dGVWYWx1
ZUV4YWN0TWF0Y2hpbmcoQXNzZW1ibGVyCiAgICAgICAgIG1fYXNzZW1ibGVyLmxvYWRQdHIoQXNz
ZW1ibGVyOjpBZGRyZXNzKGN1cnJlbnRBdHRyaWJ1dGVBZGRyZXNzLCBBdHRyaWJ1dGU6OnZhbHVl
TWVtb3J5T2Zmc2V0KCkpLCB2YWx1ZVN0cmluZ0ltcGwpOwogCiAgICAgICAgIEZ1bmN0aW9uQ2Fs
bCBmdW5jdGlvbkNhbGwobV9hc3NlbWJsZXIsIG1fcmVnaXN0ZXJBbGxvY2F0b3IsIG1fc3RhY2tB
bGxvY2F0b3IsIG1fZnVuY3Rpb25DYWxscyk7Ci0gICAgICAgIGZ1bmN0aW9uQ2FsbC5zZXRGdW5j
dGlvbkFkZHJlc3MoV1RGOjplcXVhbElnbm9yaW5nQ2FzZU5vbk51bGwpOworICAgICAgICBmdW5j
dGlvbkNhbGwuc2V0RnVuY3Rpb25BZGRyZXNzKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5v
bk51bGwpOwogICAgICAgICBmdW5jdGlvbkNhbGwuc2V0VHdvQXJndW1lbnRzKHZhbHVlU3RyaW5n
SW1wbCwgZXhwZWN0ZWRWYWx1ZVJlZ2lzdGVyKTsKICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVu
ZChmdW5jdGlvbkNhbGwuY2FsbEFuZEJyYW5jaE9uQm9vbGVhblJldHVyblZhbHVlKEFzc2VtYmxl
cjo6WmVybykpOwogCkBAIC0yOTQzLDcgKzI5NDMsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVy
YXRvcjo6Z2VuZXJhdGVFbGVtZW50QXR0cmlidXRlVmFsdWVFeGFjdE1hdGNoaW5nKEFzc2VtYmxl
cgogCiAgICAgICAgIEFzc2VtYmxlcjo6SnVtcCBza2lwQ2FzZUluc2Vuc2l0aXZlQ29tcGFyaXNv
biA9IG1fYXNzZW1ibGVyLmJyYW5jaFB0cihBc3NlbWJsZXI6OkVxdWFsLCB2YWx1ZVN0cmluZ0lt
cGwsIGV4cGVjdGVkVmFsdWVSZWdpc3Rlcik7CiAgICAgICAgIEZ1bmN0aW9uQ2FsbCBmdW5jdGlv
bkNhbGwobV9hc3NlbWJsZXIsIG1fcmVnaXN0ZXJBbGxvY2F0b3IsIG1fc3RhY2tBbGxvY2F0b3Is
IG1fZnVuY3Rpb25DYWxscyk7Ci0gICAgICAgIGZ1bmN0aW9uQ2FsbC5zZXRGdW5jdGlvbkFkZHJl
c3MoV1RGOjplcXVhbElnbm9yaW5nQ2FzZU5vbk51bGwpOworICAgICAgICBmdW5jdGlvbkNhbGwu
c2V0RnVuY3Rpb25BZGRyZXNzKFdURjo6ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZU5vbk51bGwpOwog
ICAgICAgICBmdW5jdGlvbkNhbGwuc2V0VHdvQXJndW1lbnRzKHZhbHVlU3RyaW5nSW1wbCwgZXhw
ZWN0ZWRWYWx1ZVJlZ2lzdGVyKTsKICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChmdW5jdGlv
bkNhbGwuY2FsbEFuZEJyYW5jaE9uQm9vbGVhblJldHVyblZhbHVlKEFzc2VtYmxlcjo6WmVybykp
OwogICAgICAgICBza2lwQ2FzZUluc2Vuc2l0aXZlQ29tcGFyaXNvbi5saW5rKCZtX2Fzc2VtYmxl
cik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
YzU3MjgzOWU2YTgzYjIxODJiNmVhZWY3ZTk4Y2FhMDAzMWJhYmMzNi4uN2EwNjY0NGU0YmRkZjFm
MDNkNjI4MDllNmJjYWNiZjBmZDhlOWIwYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAzLTExICBCZW5qYW1p
biBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZSB0aGUgZXhh
Y3QgYXR0cmlidXRlIG1hdGNoaW5nIHRvIGJlIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjYwOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nVmlldy5jcHA6CisKIDIwMTUtMDMtMDYgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBNb3ZlIGNvbXBpbGluZyBv
ZiBjb250ZW50IGV4dGVuc2lvbnMgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcAppbmRleCBjMmEzMzJhMWM1MGE4MzJjOTI1ODlk
NjRiMmIxMWQ2NjM1MjEwZjc0Li45OTVkMGQ0MjJiMWYxYjI0ZGNhM2M0NTg2OTkyNTE0YzQ4NjI1
NTZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBs
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJbXBsLmNwcApA
QCAtOTksNCArOTksNjkgQEAgVEVTVChXVEYsIFN0cmluZ0ltcGxSZXBsYWNlV2l0aExpdGVyYWwp
CiAgICAgQVNTRVJUX1RSVUUoZXF1YWwodGVzdFN0cmluZ0ltcGwuZ2V0KCksICJyNTU1c3VtNTU1
IikpOwogfQogCitURVNUKFdURiwgU3RyaW5nSW1wbEVxdWFsSWdub3JpbmdBU0NJSUNhc2VCYXNp
YykKK3sKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYSA9IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21M
aXRlcmFsKCJhQmNEZUZHIik7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGIgPSBTdHJpbmdJbXBs
OjpjcmVhdGVGcm9tTGl0ZXJhbCgiQUJDREVGRyIpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBj
ID0gU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoImFiY2RlZmciKTsKKyAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gZW1wdHkgPSBTdHJpbmdJbXBsOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCIiKSk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHNob3J0ZXIgPSBTdHJp
bmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCgiYWJjZGVmIik7CisKKyAgICAvLyBJZGVudGl0eS4K
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGEuZ2V0KCkp
KTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGIuZ2V0KCksIGIuZ2V0
KCkpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGMuZ2V0KCksIGMu
Z2V0KCkpKTsKKworICAgIC8vIFRyYW5zaXRpdml0eS4KKyAgICBBU1NFUlRfVFJVRShlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGIuZ2V0KCkpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGIuZ2V0KCksIGMuZ2V0KCkpKTsKKyAgICBBU1NFUlRfVFJVRShl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIGMuZ2V0KCkpKTsKKworICAgIC8vIE5lZ2F0
aXZlIGNhc2VzLgorICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0
KCksIGVtcHR5LmdldCgpKSk7CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UoYi5nZXQoKSwgZW1wdHkuZ2V0KCkpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShjLmdldCgpLCBlbXB0eS5nZXQoKSkpOworICAgIEFTU0VSVF9GQUxTRShlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGEuZ2V0KCksIHNob3J0ZXIuZ2V0KCkpKTsKKyAgICBBU1NFUlRf
RkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShiLmdldCgpLCBzaG9ydGVyLmdldCgpKSk7Cisg
ICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYy5nZXQoKSwgc2hvcnRlci5n
ZXQoKSkpOworfQorCitURVNUKFdURiwgU3RyaW5nSW1wbEVxdWFsSWdub3JpbmdBU0NJSUNhc2VX
aXRoTnVsbCkKK3sKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gcmVmZXJlbmNlID0gU3RyaW5nSW1w
bDo6Y3JlYXRlRnJvbUxpdGVyYWwoImFCY0RlRkciKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShudWxscHRyLCByZWZlcmVuY2UuZ2V0KCkpKTsKKyAgICBBU1NFUlRf
RkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShyZWZlcmVuY2UuZ2V0KCksIG51bGxwdHIpKTsK
KyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG51bGxwdHIsIG51bGxwdHIp
KTsKK30KKworVEVTVChXVEYsIFN0cmluZ0ltcGxFcXVhbElnbm9yaW5nQVNDSUlDYXNlV2l0aEVt
cHR5KQoreworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBhID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBs
PiBiID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
IikpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5nZXQoKSwgYi5n
ZXQoKSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYi5nZXQoKSwg
YS5nZXQoKSkpOworfQorCitURVNUKFdURiwgU3RyaW5nSW1wbEVxdWFsSWdub3JpbmdBU0NJSUNh
c2VXaXRoTGF0aW4xQ2hhcmFjdGVycykKK3sKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYSA9IFN0
cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImFCY8OpZUZH
IikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBiID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiQUJDw4lFRkciKSk7CisgICAgUmVmUHRyPFN0cmlu
Z0ltcGw+IGMgPSBTdHJpbmdJbXBsOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJBQkPDqUVGRyIpKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gZCA9IFN0cmluZ0ltcGw6
OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImFiY8OpZWZnIikpOworCisg
ICAgLy8gSWRlbnRpdHkuCisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShh
LmdldCgpLCBhLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShiLmdldCgpLCBiLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShjLmdldCgpLCBjLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShkLmdldCgpLCBkLmdldCgpKSk7CisKKyAgICAvLyBBbGwgY29tYmluYXRpb24uCisg
ICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5nZXQoKSwgYi5nZXQoKSkp
OworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5nZXQoKSwgYy5nZXQo
KSkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYS5nZXQoKSwgZC5n
ZXQoKSkpOworICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGIuZ2V0KCks
IGMuZ2V0KCkpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShiLmdl
dCgpLCBkLmdldCgpKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShj
LmdldCgpLCBkLmdldCgpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ1ZpZXcuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nVmlldy5jcHAKaW5kZXggZGM1NTQ0
NmZmODQ2Y2I4YzhkMWIwZDM3OTA0MDM2ZmNkZTE2NmFmNy4uNGQ3ZDk2YzcxOGYxNzk2ZmZjNGI3
MGFkYjZiYjRhZTkyMzM5YTgwNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nVmlldy5jcHAKQEAgLTE0Miw0ICsxNDIsNzcgQEAgVEVTVChXVEYsIFN0cmluZ1ZpZXdJ
dGVyYXRvcnMpCiAgICAgRVhQRUNUX1RSVUUoY29tcGFyZUxvb3BJdGVyYXRpb25zKFN0cmluZ1Zp
ZXcoYi50b1N0cmluZygpKS5jb2RlVW5pdHMoKSwgezB4MDMwNiwgMHhEODAwLCAweERENTUsICdo
JywgJ2UnLCAnbCcsICdvJ30pKTsKIH0KIAorVEVTVChXVEYsIFN0cmluZ1ZpZXdFcXVhbElnbm9y
aW5nQVNDSUlDYXNlQmFzaWMpCit7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGEgPSBTdHJpbmdJ
bXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCgiYUJjRGVGRyIpOworICAgIFJlZlB0cjxTdHJpbmdJbXBs
PiBiID0gU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoIkFCQ0RFRkciKTsKKyAgICBSZWZQ
dHI8U3RyaW5nSW1wbD4gYyA9IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKCJhYmNkZWZn
Iik7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGVtcHR5ID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiIikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBs
PiBzaG9ydGVyID0gU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoImFiY2RlZiIpOworCisg
ICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3QSgqYS5nZXQoKSk7CisgICAgU3RyaW5nVmlldyBzdHJp
bmdWaWV3QigqYi5nZXQoKSk7CisgICAgU3RyaW5nVmlldyBzdHJpbmdWaWV3QygqYy5nZXQoKSk7
CisgICAgU3RyaW5nVmlldyBlbXB0eVN0cmluZ1ZpZXcoKmVtcHR5LmdldCgpKTsKKyAgICBTdHJp
bmdWaWV3IHNob3J0ZXJTdHJpbmdWaWV3KCpzaG9ydGVyLmdldCgpKTsKKworICAgIEFTU0VSVF9U
UlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdCKSk7Cisg
ICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc3RyaW5n
Vmlld0MpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1Zp
ZXdCLCBzdHJpbmdWaWV3QykpOworCisgICAgLy8gSWRlbnRpdHkuCisgICAgQVNTRVJUX1RSVUUo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3QSwgc3RyaW5nVmlld0EpKTsKKyAgICBB
U1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdCLCBzdHJpbmdWaWV3
QikpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0Ms
IHN0cmluZ1ZpZXdDKSk7CisKKyAgICAvLyBUcmFuc2l0aXZpdHkuCisgICAgQVNTRVJUX1RSVUUo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3QSwgc3RyaW5nVmlld0IpKTsKKyAgICBB
U1NFUlRfVFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdCLCBzdHJpbmdWaWV3
QykpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0Es
IHN0cmluZ1ZpZXdDKSk7CisKKyAgICAvLyBOZWdhdGl2ZSBjYXNlcy4KKyAgICBBU1NFUlRfRkFM
U0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3QSwgZW1wdHlTdHJpbmdWaWV3KSk7
CisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0IsIGVt
cHR5U3RyaW5nVmlldykpOworICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KHN0cmluZ1ZpZXdDLCBlbXB0eVN0cmluZ1ZpZXcpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3QSwgc2hvcnRlclN0cmluZ1ZpZXcpKTsKKyAgICBB
U1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3Qiwgc2hvcnRlclN0
cmluZ1ZpZXcpKTsKKyAgICBBU1NFUlRfRkFMU0UoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJp
bmdWaWV3Qywgc2hvcnRlclN0cmluZ1ZpZXcpKTsKK30KKworVEVTVChXVEYsIFN0cmluZ1ZpZXdF
cXVhbElnbm9yaW5nQVNDSUlDYXNlV2l0aEVtcHR5KQoreworICAgIFJlZlB0cjxTdHJpbmdJbXBs
PiBhID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
IikpOworICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBiID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiIikpOworICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmll
d0EoKmEuZ2V0KCkpOworICAgIFN0cmluZ1ZpZXcgc3RyaW5nVmlld0IoKmIuZ2V0KCkpOworICAg
IEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1Zp
ZXdCKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3
Qiwgc3RyaW5nVmlld0EpKTsKK30KKworVEVTVChXVEYsIFN0cmluZ1ZpZXdFcXVhbElnbm9yaW5n
QVNDSUlDYXNlV2l0aExhdGluMUNoYXJhY3RlcnMpCit7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+
IGEgPSBTdHJpbmdJbXBsOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJh
QmPDqWVGRyIpKTsKKyAgICBSZWZQdHI8U3RyaW5nSW1wbD4gYiA9IFN0cmluZ0ltcGw6OmNyZWF0
ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkFCQ8OJRUZHIikpOworICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBjID0gU3RyaW5nSW1wbDo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiQUJDw6lFRkciKSk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IGQgPSBTdHJp
bmdJbXBsOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJhYmPDqWVmZyIp
KTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXdBKCphLmdldCgpKTsKKyAgICBTdHJpbmdWaWV3
IHN0cmluZ1ZpZXdCKCpiLmdldCgpKTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXdDKCpjLmdl
dCgpKTsKKyAgICBTdHJpbmdWaWV3IHN0cmluZ1ZpZXdEKCpkLmdldCgpKTsKKworICAgIC8vIElk
ZW50aXR5LgorICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmll
d0EsIHN0cmluZ1ZpZXdBKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShzdHJpbmdWaWV3Qiwgc3RyaW5nVmlld0IpKTsKKyAgICBBU1NFUlRfVFJVRShlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdDLCBzdHJpbmdWaWV3QykpOworICAgIEFTU0VSVF9UUlVF
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc3RyaW5nVmlld0QsIHN0cmluZ1ZpZXdEKSk7CisKKyAg
ICAvLyBBbGwgY29tYmluYXRpb24uCisgICAgQVNTRVJUX0ZBTFNFKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nVmlld0EsIHN0cmluZ1ZpZXdCKSk7CisgICAgQVNTRVJUX1RSVUUoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShzdHJpbmdWaWV3QSwgc3RyaW5nVmlld0MpKTsKKyAgICBBU1NFUlRf
VFJVRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdBLCBzdHJpbmdWaWV3RCkpOwor
ICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmluZ1ZpZXdCLCBzdHJp
bmdWaWV3QykpOworICAgIEFTU0VSVF9GQUxTRShlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHN0cmlu
Z1ZpZXdCLCBzdHJpbmdWaWV3RCkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2Uoc3RyaW5nVmlld0MsIHN0cmluZ1ZpZXdEKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA1MjhjYTQ3ZDJmOWFmMzQ0ZGY5YTIzOTZhMGVmMWEwMTFhOTNi
MjYxLi5kMjE0MGJkNzg0ZDQ4NGNjMTZmNWMyMzU1MDZiODFlYzFjZDNlNTM2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTUtMDMtMTEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ2hhbmdlIHRoZSBleGFjdCBhdHRyaWJ1dGUgbWF0Y2hpbmcgdG8g
YmUgQVNDSUkgY2FzZS1pbnNlbnNpdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUt
bWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3Qvc2VsZWN0b3JzL2F0dHJpYnV0ZS1leGFjdC12YWx1ZS1tYXRjaC1pcy1hc2Np
aS1jYXNlLWluc2Vuc2l0aXZlLmh0bWw6IEFkZGVkLgorCiAyMDE1LTAzLTA2ICBHeXV5b3VuZyBL
aW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBFRkwg
Z2FyZGVuaW5nIG9uIDd0aCBNYXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVj
dG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUtbWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNpdGl2
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhh
Y3QtdmFsdWUtbWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmZiNWY4YTdkOWZlNTZhMDQxOTVlN2Y3NjFmOTJjYmU4ZjBhMzZhNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2F0dHJpYnV0ZS1leGFjdC12
YWx1ZS1tYXRjaC1pcy1hc2NpaS1jYXNlLWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIxMyBAQAorV2hlbiBtYXRjaGluZyBhdHRyaWJ1dGVzIGNhc2UgaW5zZW5zaXRpdmVseSwg
aXQgc2hvdWxkIGJlIEFTQ0lJIGNhc2UgaW5zZW5zaXRpdmUuIFRoaXMgdGVzdCB2ZXJpZmllcyB0
aGUgYmVoYXZpb3IgZm9yIGV4YWN0IHZhbHVlIG1hdGNoaW5nIChlLmcuIFthPSJiIl0pCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nICJbZGF0YS1hdHRyaWJ1dGU9V2Vi
S2l0LcOJXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0
YS1hdHRyaWJ1dGU9V2ViS2l0LcOJXScpLmxlbmd0aCBpcyAxCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DiV0nKVswXS5p
ZCBpcyAidGFyZ2V0MSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEw
MCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsz
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW2RhdGEtYXR0cmlidXRl
PXdlYmtpdC3DiV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3Qg
W2RhdGEtYXR0cmlidXRlPXdlYmtpdC3DiV0nKS5sZW5ndGggaXMgMQorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw4ldJylb
MF0uaWQgaXMgInRhcmdldDIiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1
NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIw
MCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rl
c3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAq
IilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJh
Y2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJp
YnV0ZT1XRUJLSVQtw4ldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1y
b290IFtkYXRhLWF0dHJpYnV0ZT1XRUJLSVQtw4ldJykubGVuZ3RoIGlzIDEKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJ
XScpWzBdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAs
IDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJv
b3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRd
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbZGF0YS1h
dHRyaWJ1dGU9V2ViS2l0LcOpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rl
c3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOpXScpLmxlbmd0aCBpcyAxCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdlYktp
dC3DqV0nKVswXS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1
LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoi
KVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKKworVGVzdGluZyAiW2Rh
dGEtYXR0cmlidXRlPXdlYmtpdC3DqV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
JyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPXdlYmtpdC3DqV0nKS5sZW5ndGggaXMgMQorUEFT
UyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT13
ZWJraXQtw6ldJylbMF0uaWQgaXMgInRhcmdldDUiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwg
MCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rl
c3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAq
IilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCisKK1Rlc3Rpbmcg
IltkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw4kgaV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DiSBpXScpLmxlbmd0aCBp
cyAzCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0
cmlidXRlPVdlYktpdC3DiSBpXScpWzBdLmlkIGlzICJ0YXJnZXQxIgorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw4kgaV0n
KVsxXS5pZCBpcyAidGFyZ2V0MiIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rl
c3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOJIGldJylbMl0uaWQgaXMgInRhcmdldDMi
CitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qt
cm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAq
IilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0p
LmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJpYnV0ZT13ZWJraXQt
w4kgaV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEt
YXR0cmlidXRlPXdlYmtpdC3DiSBpXScpLmxlbmd0aCBpcyAzCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPXdlYmtpdC3DiSBpXScpWzBd
LmlkIGlzICJ0YXJnZXQxIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1y
b290IFtkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw4kgaV0nKVsxXS5pZCBpcyAidGFyZ2V0MiIKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9
d2Via2l0LcOJIGldJylbMl0uaWQgaXMgInRhcmdldDMiCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRD
b2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBp
cyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwg
MCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
I3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisK
K1Rlc3RpbmcgIltkYXRhLWF0dHJpYnV0ZT1XRUJLSVQtw4kgaV0iCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdFQktJVC3DiSBpXScp
Lmxlbmd0aCBpcyAzCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3Qg
W2RhdGEtYXR0cmlidXRlPVdFQktJVC3DiSBpXScpWzBdLmlkIGlzICJ0YXJnZXQxIgorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XRUJL
SVQtw4kgaV0nKVsxXS5pZCBpcyAidGFyZ2V0MiIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9V0VCS0lULcOJIGldJylbMl0uaWQgaXMg
InRhcmdldDMiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiI3Rlc3Qtcm9vdCAqIilbMF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIw
MCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rl
c3Qtcm9vdCAqIilbMV0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9v
dCAqIilbMl0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilb
M10pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCisKK1Rlc3RpbmcgIltkYXRhLWF0dHJpYnV0
ZT1XZWJLaXQtw6kgaV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJv
b3QgW2RhdGEtYXR0cmlidXRlPVdlYktpdC3DqSBpXScpLmxlbmd0aCBpcyAyCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW2RhdGEtYXR0cmlidXRlPVdlYktpdC3D
qSBpXScpWzBdLmlkIGlzICJ0YXJnZXQ0IgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCcjdGVzdC1yb290IFtkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw6kgaV0nKVsxXS5pZCBpcyAidGFy
Z2V0NSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIj
dGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BB
U1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290
ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSku
YmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3Vu
ZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9y
IGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKKworVGVzdGluZyAiW2RhdGEtYXR0cmlidXRlPXdlYmtp
dC3DqSBpXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0
YS1hdHRyaWJ1dGU9d2Via2l0LcOpIGldJykubGVuZ3RoIGlzIDIKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbZGF0YS1hdHRyaWJ1dGU9d2Via2l0LcOpIGldJylb
MF0uaWQgaXMgInRhcmdldDQiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0
LXJvb3QgW2RhdGEtYXR0cmlidXRlPXdlYmtpdC3DqSBpXScpWzFdLmlkIGlzICJ0YXJnZXQ1Igor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJv
b3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFd
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3Ig
aXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJn
YigxMCwgMTAwLCAyMDApIgorCitUZXN0aW5nICJbbXVsdGlwbGU9V0VCS0lULcOpXSIKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V0VCS0lULcOp
XScpLmxlbmd0aCBpcyAzCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJv
b3QgW211bHRpcGxlPVdFQktJVC3DqV0nKVswXS5pZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9V0VCS0lULcOpXScpWzFd
LmlkIGlzICJ0YXJnZXQyIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1y
b290IFttdWx0aXBsZT1XRUJLSVQtw6ldJylbMl0uaWQgaXMgInRhcmdldDMiCitQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMF0p
LmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRD
b2xvciBpcyAicmdiKDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xvciBp
cyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1
NSwgMCwgMCkiCisKK1Rlc3RpbmcgIlttdWx0aXBsZT1XZWJLaXQtw6ldIgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJLaXQtw6ldJykubGVu
Z3RoIGlzIDMKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVs
dGlwbGU9V2ViS2l0LcOpXScpWzBdLmlkIGlzICJ0YXJnZXQxIgorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJLaXQtw6ldJylbMV0uaWQgaXMg
InRhcmdldDIiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211
bHRpcGxlPVdlYktpdC3DqV0nKVsyXS5pZCBpcyAidGFyZ2V0MyIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dy
b3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENv
bG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlz
ICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVszXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2Io
MjU1LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAw
KSIKKworVGVzdGluZyAiW211bHRpcGxlPVdlYmtpdC3DqV0iCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdlYmtpdC3DqV0nKS5sZW5ndGggaXMg
MworUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1X
ZWJraXQtw6ldJylbMF0uaWQgaXMgInRhcmdldDEiCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdlYmtpdC3DqV0nKVsxXS5pZCBpcyAidGFyZ2V0
MiIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9
V2Via2l0LcOpXScpWzJdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigx
MCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAs
IDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitU
ZXN0aW5nICJbbXVsdGlwbGU9d2Via2l0LcOJXSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2Via2l0LcOJXScpLmxlbmd0aCBpcyAyCitQQVNT
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPXdlYmtpdC3D
iV0nKVswXS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
I3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2Via2l0LcOJXScpWzFdLmlkIGlzICJ0YXJnZXQ1IgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3Qg
KiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5k
Q29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMg
InJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigx
MCwgMTAwLCAyMDApIgorCitUZXN0aW5nICJbbXVsdGlwbGU9d2ViS2l0LcOJXSIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2ViS2l0LcOJXScp
Lmxlbmd0aCBpcyAyCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3Qg
W211bHRpcGxlPXdlYktpdC3DiV0nKVswXS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVsdGlwbGU9d2ViS2l0LcOJXScpWzFdLmlk
IGlzICJ0YXJnZXQ1IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAs
IDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3Qg
KiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzNdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5iYWNrZ3Jv
dW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorCitUZXN0aW5nICJbbXVsdGlwbGU9V0VC
S0lULcOpIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFtt
dWx0aXBsZT1XRUJLSVQtw6kgaV0nKS5sZW5ndGggaXMgMworUEFTUyBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XRUJLSVQtw6kgaV0nKVswXS5pZCBpcyAi
dGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBbbXVs
dGlwbGU9V0VCS0lULcOpIGldJylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNTIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdFQktJVC3DqSBpXScpWzJdLmlk
IGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAw
LCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDAp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0
LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgorUEFT
UyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3Qg
KiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRdKS5i
YWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbbXVsdGlwbGU9
V2ViS2l0LcOpIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290
IFttdWx0aXBsZT1XZWJLaXQtw6kgaV0nKS5sZW5ndGggaXMgMworUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJLaXQtw6kgaV0nKVswXS5pZCBp
cyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9vdCBb
bXVsdGlwbGU9V2ViS2l0LcOpIGldJylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNTIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdlYktpdC3DqSBpXScpWzJd
LmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwg
MTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAy
MDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0
ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDApIgor
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJv
b3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzRd
KS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbbXVsdGlw
bGU9V2Via2l0LcOpIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1y
b290IFttdWx0aXBsZT1XZWJraXQtw6kgaV0nKS5sZW5ndGggaXMgMworUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT1XZWJraXQtw6kgaV0nKVswXS5p
ZCBpcyAidGFyZ2V0MSIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qtcm9v
dCBbbXVsdGlwbGU9V2Via2l0LcOpIGldJylbMV0uaWQgaXMgInRhcmdldDIiCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPVdlYmtpdC3DqSBpXScp
WzJdLmlkIGlzICJ0YXJnZXQzIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzBdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigx
MCwgMTAwLCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3JBbGwoIiN0ZXN0LXJvb3QgKiIpWzFdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAw
LCAyMDApIgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
IiN0ZXN0LXJvb3QgKiIpWzJdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigxMCwgMTAwLCAyMDAp
IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0
LXJvb3QgKiIpWzNdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiN0ZXN0LXJvb3QgKiIp
WzRdKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigyNTUsIDAsIDApIgorCitUZXN0aW5nICJbbXVs
dGlwbGU9d2Via2l0LcOJIGldIgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVz
dC1yb290IFttdWx0aXBsZT13ZWJraXQtw4kgaV0nKS5sZW5ndGggaXMgMgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT13ZWJraXQtw4kgaV0nKVsw
XS5pZCBpcyAidGFyZ2V0NCIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3Rlc3Qt
cm9vdCBbbXVsdGlwbGU9d2Via2l0LcOJIGldJylbMV0uaWQgaXMgInRhcmdldDUiCitQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilb
MF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVk
U3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMV0pLmJhY2tn
cm91bmRDb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbMl0pLmJhY2tncm91bmRDb2xv
ciBpcyAicmdiKDI1NSwgMCwgMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbM10pLmJhY2tncm91bmRDb2xvciBpcyAicmdi
KDEwLCAxMDAsIDIwMCkiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiI3Rlc3Qtcm9vdCAqIilbNF0pLmJhY2tncm91bmRDb2xvciBpcyAicmdiKDEwLCAx
MDAsIDIwMCkiCisKK1Rlc3RpbmcgIlttdWx0aXBsZT13ZWJLaXQtw4kgaV0iCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3QgW211bHRpcGxlPXdlYktpdC3DiSBpXScp
Lmxlbmd0aCBpcyAyCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyN0ZXN0LXJvb3Qg
W211bHRpcGxlPXdlYktpdC3DiSBpXScpWzBdLmlkIGlzICJ0YXJnZXQ0IgorUEFTUyBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCcjdGVzdC1yb290IFttdWx0aXBsZT13ZWJLaXQtw4kgaV0nKVsx
XS5pZCBpcyAidGFyZ2V0NSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVswXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1
LCAwLCAwKSIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCIjdGVzdC1yb290ICoiKVsxXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIK
K1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1y
b290ICoiKVsyXSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMjU1LCAwLCAwKSIKK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVsz
XSkuYmFja2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKVs0XSkuYmFj
a2dyb3VuZENvbG9yIGlzICJyZ2IoMTAsIDEwMCwgMjAwKSIKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2VsZWN0b3JzL2F0dHJpYnV0ZS1leGFjdC12YWx1ZS1tYXRjaC1pcy1hc2NpaS1jYXNl
LWluc2Vuc2l0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUt
ZXhhY3QtdmFsdWUtbWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNpdGl2ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIyNjAwNDVhMzVjODYyMzdlNDMxZjBiYjU1MTc3MjdjZTJhM2EwNjIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9hdHRyaWJ1dGUtZXhhY3QtdmFsdWUt
bWF0Y2gtaXMtYXNjaWktY2FzZS1pbnNlbnNpdGl2ZS5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0
eWxlPgorI3Rlc3Qtcm9vdCAqIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cit9Cis8L3N0
eWxlPgorPHN0eWxlIGlkPSJzdHlsZSI+Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBzdHlsZT0iZGlzcGxheTpub25lIiBpZD0idGVzdC1yb290Ij4KKyAgICAgICAgPGRpdiBk
YXRhLWF0dHJpYnV0ZT0iV2ViS2l0LcOJIiBtdWx0aXBsZT0iV0VCS0lULcOpIiBpZD0idGFyZ2V0
MSI+PC9kaXY+CisgICAgICAgIDxkaXYgZGF0YS1hdHRyaWJ1dGU9IndlYmtpdC3DiSIgbXVsdGlw
bGU9IldlYktpdC3DqSIgaWQ9InRhcmdldDIiPjwvZGl2PgorICAgICAgICA8ZGl2IGRhdGEtYXR0
cmlidXRlPSJXRUJLSVQtw4kiIG11bHRpcGxlPSJXZWJraXQtw6kiIGlkPSJ0YXJnZXQzIj48L2Rp
dj4KKyAgICAgICAgPGRpdiBkYXRhLWF0dHJpYnV0ZT0iV2ViS2l0LcOpIiBtdWx0aXBsZT0id2Vi
a2l0LcOJIiBpZD0idGFyZ2V0NCI+PC9kaXY+CisgICAgICAgIDxkaXYgZGF0YS1hdHRyaWJ1dGU9
IndlYmtpdC3DqSIgbXVsdGlwbGU9IndlYktpdC3DiSIgaWQ9InRhcmdldDUiPjwvZGl2PgorICAg
IDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdXaGVuIG1hdGNoaW5nIGF0
dHJpYnV0ZXMgY2FzZSBpbnNlbnNpdGl2ZWx5LCBpdCBzaG91bGQgYmUgQVNDSUkgY2FzZSBpbnNl
bnNpdGl2ZS4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBiZWhhdmlvciBmb3IgZXhhY3QgdmFsdWUg
bWF0Y2hpbmcgKGUuZy4gW2E9ImIiXSknKTsKKworZnVuY3Rpb24gdGVzdFF1ZXJ5U2VsZWN0b3Io
c2VsZWN0b3IsIGV4cGVjdGVkSWRzKSB7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoJyIgKyBzZWxlY3RvciArICInKS5sZW5ndGgiLCAnJyArIGV4cGVjdGVkSWRzLmxl
bmd0aCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZElkcy5sZW5ndGg7ICsraSkK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCciICsgc2VsZWN0b3IgKyAiJylbIiArIGkgKyAiXS5pZCIsICd0YXJnZXQnICsgZXhwZWN0ZWRJ
ZHNbaV0pOworfQorCitmdW5jdGlvbiB0ZXN0U3R5bGluZyhzZWxlY3RvciwgZXhwZWN0ZWRJZHMp
IHsKKyAgICB2YXIgc3R5bGluZ0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5
bGUiKTsKKyAgICBzdHlsaW5nRWxlbWVudC5pbm5lckhUTUwgPSAnJyArIHNlbGVjdG9yICsgJyB7
IGJhY2tncm91bmQtY29sb3I6IHJnYigxMCwgMTAwLCAyMDApOyB9JzsKKworICAgIHZhciBhbGxU
ZXN0Q2FzZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjdGVzdC1yb290ICoiKTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbFRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICB2YXIgZXhwZWN0TWF0Y2ggPSBleHBlY3RlZElkcy5pbmRleE9mKHBhcnNlSW50KGFsbFRlc3RD
YXNlc1tpXS5pZC5yZXBsYWNlKCd0YXJnZXQnLCAnJykpKSA+PSAwOworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2dldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiI3Rlc3Qtcm9vdCAqIilbJyArIGkgKyAnXSkuYmFja2dyb3VuZENvbG9yJywgZXhwZWN0TWF0
Y2ggPyAncmdiKDEwLCAxMDAsIDIwMCknIDogJ3JnYigyNTUsIDAsIDApJyk7CisgICAgfQorCisg
ICAgc3R5bGluZ0VsZW1lbnQuaW5uZXJIVE1MID0gJyc7Cit9CisKK2Z1bmN0aW9uIHRlc3RTZWxl
Y3RvcihzZWxlY3RvciwgZXhwZWN0ZWRJZHMpIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBcIiIgKyBz
ZWxlY3RvciArICJcIiIpOworICAgIHRlc3RRdWVyeVNlbGVjdG9yKCIjdGVzdC1yb290ICIgKyBz
ZWxlY3RvciwgZXhwZWN0ZWRJZHMpOworICAgIHRlc3RTdHlsaW5nKCIjdGVzdC1yb290ICIgKyBz
ZWxlY3RvciwgZXhwZWN0ZWRJZHMpOworICAgIGRlYnVnKCIiKTsKK30KKwordmFyIHRlc3RDYXNl
cyA9IFsKKyAgICAvLyBSZWd1bGFyIGF0dHJpYnV0ZSBtYXRjaGluZyBpcyBjYXNlIHNlbnNpdGl2
ZS4KKyAgICBbJ1tkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw4ldJywgWzFdXSwKKyAgICBbJ1tkYXRh
LWF0dHJpYnV0ZT13ZWJraXQtw4ldJywgWzJdXSwKKyAgICBbJ1tkYXRhLWF0dHJpYnV0ZT1XRUJL
SVQtw4ldJywgWzNdXSwKKyAgICBbJ1tkYXRhLWF0dHJpYnV0ZT1XZWJLaXQtw6ldJywgWzRdXSwK
KyAgICBbJ1tkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw6ldJywgWzVdXSwKKworICAgIC8vIFNhbWUg
c2VsZWN0b3JzIHdpdGggdGhlIGNhc2UtaW5zZW5zaXRpdmllIGZsYWcuCisgICAgWydbZGF0YS1h
dHRyaWJ1dGU9V2ViS2l0LcOJIGldJywgWzEsIDIsIDNdXSwKKyAgICBbJ1tkYXRhLWF0dHJpYnV0
ZT13ZWJraXQtw4kgaV0nLCBbMSwgMiwgM11dLAorICAgIFsnW2RhdGEtYXR0cmlidXRlPVdFQktJ
VC3DiSBpXScsIFsxLCAyLCAzXV0sCisgICAgWydbZGF0YS1hdHRyaWJ1dGU9V2ViS2l0LcOpIGld
JywgWzQsIDVdXSwKKyAgICBbJ1tkYXRhLWF0dHJpYnV0ZT13ZWJraXQtw6kgaV0nLCBbNCwgNV1d
LAorCisgICAgLy8gIm11bHRpcGxlIiBpcyBvbmUgb2YgdGhvc2Ugd2VpcmQgbGVnYWN5IGV4Y2Vw
dGlvbjogaXQgaXMgYWx3YXlzIGNhc2UgaW5zZW5zaXRpdmUgaW4gSFRNTC4KKyAgICBbJ1ttdWx0
aXBsZT1XRUJLSVQtw6ldJywgWzEsIDIsIDNdXSwKKyAgICBbJ1ttdWx0aXBsZT1XZWJLaXQtw6ld
JywgWzEsIDIsIDNdXSwKKyAgICBbJ1ttdWx0aXBsZT1XZWJraXQtw6ldJywgWzEsIDIsIDNdXSwK
KyAgICBbJ1ttdWx0aXBsZT13ZWJraXQtw4ldJywgWzQsIDVdXSwKKyAgICBbJ1ttdWx0aXBsZT13
ZWJLaXQtw4ldJywgWzQsIDVdXSwKKyAgICBbJ1ttdWx0aXBsZT1XRUJLSVQtw6kgaV0nLCBbMSwg
MiwgM11dLAorICAgIFsnW211bHRpcGxlPVdlYktpdC3DqSBpXScsIFsxLCAyLCAzXV0sCisgICAg
WydbbXVsdGlwbGU9V2Via2l0LcOpIGldJywgWzEsIDIsIDNdXSwKKyAgICBbJ1ttdWx0aXBsZT13
ZWJraXQtw4kgaV0nLCBbNCwgNV1dLAorICAgIFsnW211bHRpcGxlPXdlYktpdC3DiSBpXScsIFs0
LCA1XV0sCitdOworCitmb3IgKHZhciB0ZXN0Q2FzZSBvZiB0ZXN0Q2FzZXMpIHsKKyAgICB0ZXN0
U2VsZWN0b3IodGVzdENhc2VbMF0sIHRlc3RDYXNlWzFdKTsKK30KKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1s
Pgo=
</data>
<flag name="review"
          id="273514"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>