<?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>137418</bug_id>
          
          <creation_ts>2014-10-03 22:16:14 -0700</creation_ts>
          <short_desc>Implement Element.closest() API</short_desc>
          <delta_ts>2014-10-04 15:24:27 -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="Dhi Aurrahman">diorahman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1039454</commentid>
    <comment_count>0</comment_count>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-03 22:16:14 -0700</bug_when>
    <thetext>Implement closest() API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039455</commentid>
    <comment_count>1</comment_count>
      <attachid>239265</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-03 22:18:48 -0700</bug_when>
    <thetext>Created attachment 239265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039463</commentid>
    <comment_count>2</comment_count>
      <attachid>239265</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-03 23:33:48 -0700</bug_when>
    <thetext>Comment on attachment 239265
Patch

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

review- because of the bad cast

&gt; Source/WebCore/dom/Element.cpp:2329
&gt; +    SelectorQuery* selectorQuery = document().selectorQueryForString(selector, ec);
&gt; +    if (selectorQuery)
&gt; +        return selectorQuery-&gt;closest(*this);
&gt; +    return nullptr;

WebKit coding style prefers early return, meaning:

    if (!selectorQuery)
        return nullptr;

&gt; Source/WebCore/dom/SelectorQuery.cpp:128
&gt; +    Element* currentNode = (Element *) &amp;rootNode;

The formatting here isn’t right, but more importantly this is a bad cast if the root node is a document node. That needs to be fixed.

&gt; Source/WebCore/dom/SelectorQuery.cpp:151
&gt; +    unsigned selectorCount = m_selectors.size();
&gt; +    for (unsigned i = 0; i &lt; selectorCount; ++i) {
&gt; +        Element* closestElement = selectorClosest(m_selectors[i], targetElement, targetElement);

This should use a modern for loop:

    for (auto&amp; selector : m_selectors) {
        if (Element* closestElement = selectorClosest(selector, targetElement, targetElement))
            return closestElement;
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039470</commentid>
    <comment_count>3</comment_count>
      <attachid>239265</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-04 00:26:49 -0700</bug_when>
    <thetext>Comment on attachment 239265
Patch

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

The patch is in good shape. There is a bug not mentioned by Darin or I but I would prefer you to discover it through tests. Good test coverage is extremely important to validate a feature.

&gt; LayoutTests/fast/selectors/closest-general.html:43
&gt; +shouldBe(&apos;theTarget.closest(&quot;#theTarget&quot;)&apos;, &quot;theTarget&quot;);
&gt; +shouldBe(&apos;theTarget.closest(&quot;ancestor&quot;)&apos;, &quot;ancestor&quot;);
&gt; +shouldBeNull(&apos;theTarget.closest(&quot;hihi&quot;)&apos;, &quot;ancestor&quot;);

You need a few more test cases to be sure everything works properly.

First, you need to test all the combinators:
    a b
    a+b
    a&gt;b
    a~b
Ideally, you should test a use case that finds an ancestor, and one that does not.

The other kind of use case you need to test is coma separated selectors.
For example:
    a, b
    b, a

Finally, it would be good to have negative and positive cases for the big kind of matching: 
    #id
    .class
    [attribute]
    tagname

&gt; LayoutTests/fast/selectors/closest-general.html:50
&gt; +shouldBeTrue(&apos;failOnEmptyArguments()&apos;);
&gt; +shouldBeTrue(&apos;failOnEmptyStringArgument()&apos;);

You should use shouldThrow() to test the exceptions.

There are other cases to cover here, invalid selectors for example &quot;.123&quot;, &quot;    &quot;, &quot;)&quot;, &quot;()&quot;, &quot;}&quot;, etc, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039500</commentid>
    <comment_count>4</comment_count>
      <attachid>239279</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-04 06:22:15 -0700</bug_when>
    <thetext>Created attachment 239279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039524</commentid>
    <comment_count>5</comment_count>
      <attachid>239279</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-04 12:12:46 -0700</bug_when>
    <thetext>Comment on attachment 239279
Patch

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

The tests are great.

You should look into one more improvement to your algorithm:

Currently, the algorithm has to evaluate each selectors for all ancestors before knowing which one matches.

For example, given a selector &quot;foo, bar&quot;, if &quot;foo&quot; is not one of the ancestor, all the parents need to be evaluated for &quot;foo&quot; before looking for &quot;bar&quot;.

What you could do instead is go up the parents and test for both &quot;foo&quot; and &quot;bar&quot; at each step.

&gt; Source/WebCore/ChangeLog:5
&gt; +

In the changelog, authors generally explain their change. (see the other changelogs for an example).

Here your patch is pretty self explanatory so you do not necessarily need to explain it in the changelog.
It would be good to add a link to the specification you are implementing though.

&gt; Source/WebCore/dom/Element.cpp:2328
&gt; +    SelectorQuery* selectorQuery = document().selectorQueryForString(selector, ec);
&gt; +    if (selectorQuery)
&gt; +        return selectorQuery-&gt;closest(*this);

You can scope this one in the if()
    if (SelectorQuery* selectorQuery = document().selectorQueryForString(selector, ec))
        return selectorQuery-&gt;closest(*this);

&gt; LayoutTests/ChangeLog:9
&gt; +        * fast/selectors/closest-general-expected.txt: Added.
&gt; +        * fast/selectors/closest-general.html: Added.

The new tests are great, very wide coverage.

&gt; LayoutTests/fast/selectors/closest-general.html:21
&gt; +	    &lt;/ancestor&gt;

The indentation is wrong here.

&gt; LayoutTests/fast/selectors/closest-general.html:116
&gt; +shouldThrow(&apos;theTarget.closest(&quot;^_^&quot;)&apos;);

:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039532</commentid>
    <comment_count>6</comment_count>
      <attachid>239285</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-04 12:50:14 -0700</bug_when>
    <thetext>Created attachment 239285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039533</commentid>
    <comment_count>7</comment_count>
      <attachid>239285</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-04 12:57:36 -0700</bug_when>
    <thetext>Comment on attachment 239285
Patch

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

&gt; Source/WebCore/dom/SelectorQuery.cpp:149
&gt; +            Element* candidateElement = selectorClosest(selector, *currentNode, *currentNode);

Shouldn&apos;t the scope be targetElement instead of currentNode?

&gt; LayoutTests/fast/selectors/closest-scope.html:24
&gt; +shouldBe(&apos;theTarget.closest(&quot;body&gt;:scope&quot;)&apos;, &apos;theTarget&apos;);

Let&apos;s add a test for the :scope bug.

theTarget.closest(&apos;body:scope&apos;) should be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039536</commentid>
    <comment_count>8</comment_count>
      <attachid>239286</attachid>
    <who name="Dhi Aurrahman">diorahman</who>
    <bug_when>2014-10-04 13:14:55 -0700</bug_when>
    <thetext>Created attachment 239286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039539</commentid>
    <comment_count>9</comment_count>
      <attachid>239286</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-04 14:47:02 -0700</bug_when>
    <thetext>Comment on attachment 239286
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039546</commentid>
    <comment_count>10</comment_count>
      <attachid>239286</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-04 15:24:25 -0700</bug_when>
    <thetext>Comment on attachment 239286
Patch

Clearing flags on attachment: 239286

Committed r174324: &lt;http://trac.webkit.org/changeset/174324&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039547</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-04 15:24:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239265</attachid>
            <date>2014-10-03 22:18:48 -0700</date>
            <delta_ts>2014-10-04 06:22:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137418-20141004121848.patch</filename>
            <type>text/plain</type>
            <size>13343</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM0ODFjMDk1MWNlMzk2
OGEzZjkwM2U1NDMwMDAwYTY0NDRiNmUwYS4uMzM5YTM0YzFkZTc3ODJjNzJiMjRiZDc2ODU3YjJl
ZjA2MTIwNGJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTEwLTAzICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGNsb3Nlc3QoKSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNzQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzOiBmYXN0L3NlbGVjdG9ycy9jbG9zZXN0LWdlbmVyYWwuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1zY29wZS5odG1sCisKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjbG9zZXN0KToKKyAg
ICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBkb20vU2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRh
dGFMaXN0OjpzZWxlY3RvckNsb3Nlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRh
TGlzdDo6Y2xvc2VzdCk6CisgICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlbGVjdG9yUXVlcnk6OmNsb3Nlc3QpOgorCiAyMDE0LTA5LTI2ICBDaHJpc3Rv
cGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIGxlZ2Fj
eSBOT0RFX1RZUEVfQ0FTVFMoKSBtYWNybyBmb3IgSFRNTCBFbGVtZW50cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDZhOWY4NzA5OGU2ZDQ3MDVlNjViZDE0ODQ0YzJkNGFiMzVlM2IwMWIuLjM1
OWQzNmM3MmY2MDA3ZmIxMDM4MjVlZTUyZmIxNDIzNjNkYTUxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTIzMjEsNiArMjMyMSwxNCBAQCBib29sIEVsZW1lbnQ6Om1hdGNoZXMoY29uc3Qg
U3RyaW5nJiBzZWxlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIHNlbGVjdG9y
UXVlcnkgJiYgc2VsZWN0b3JRdWVyeS0+bWF0Y2hlcygqdGhpcyk7CiB9CiAKK0VsZW1lbnQqIEVs
ZW1lbnQ6OmNsb3Nlc3QoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgU2VsZWN0b3JRdWVyeSogc2VsZWN0b3JRdWVyeSA9IGRvY3VtZW50KCkuc2VsZWN0
b3JRdWVyeUZvclN0cmluZyhzZWxlY3RvciwgZWMpOworICAgIGlmIChzZWxlY3RvclF1ZXJ5KQor
ICAgICAgICByZXR1cm4gc2VsZWN0b3JRdWVyeS0+Y2xvc2VzdCgqdGhpcyk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKIGJvb2wgRWxlbWVudDo6c2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNTIzOTM1
NTQ0YWU2NGRlZTQxNTA4NjFiOWZiY2M4NjZiOTExNTkzOC4uOTgwNjNjNmRkOGU3NWU5OTBiMGZk
NWU2OWM0NzkxYTc4MzFiMTAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00NTIsNiArNDUyLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFz
cygpIGNvbnN0OwogICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhj
ZXB0aW9uQ29kZSYpOworICAgIEVsZW1lbnQqIGNsb3Nlc3QoY29uc3QgU3RyaW5nJiBzZWxlY3Rv
cnMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwZWFySW5kZXRl
cm1pbmF0ZSgpIGNvbnN0OwogCiAgICAgRE9NVG9rZW5MaXN0JiBjbGFzc0xpc3QoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmlkbAppbmRleCA3ZjE1ODY5NTVlYWNhYzEzODZhYWRkZTFkMWIyZmMyMDM5NmYy
MTg5Li5iYjkzMjdjMmNjMWZmZWQ2OWRhM2JlZDBkZGE3NmRkZTA2MjJlYTYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaWRsCkBAIC0xMjEsNiArMTIxLDcgQEAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBO
b2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKERPTVN0cmluZyBzZWxlY3RvcnMpOwogCiAgICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiBtYXRjaGVzKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9u
YWwgRE9NU3RyaW5nIHNlbGVjdG9ycyk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gRWxlbWVudCBj
bG9zZXN0KERPTVN0cmluZyBzZWxlY3RvcnMpOyAgICAKICAgICBbSW1wbGVtZW50ZWRBcz1tYXRj
aGVzLCBSYWlzZXNFeGNlcHRpb25dIGJvb2xlYW4gd2Via2l0TWF0Y2hlc1NlbGVjdG9yKFtEZWZh
dWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIHNlbGVjdG9ycyk7CiAKICAgICAvLyBF
bGVtZW50VHJhdmVyc2FsIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVj
dG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmluZGV4
IDVhYjdhNmExZGY5ZDA4NjQ5YzBjOTk5NjdkN2Y3OTA1YjA4MmQ0NDUuLjEyYTI3YmUwZWM2ZmY3
NDA3YWFiNTQwYWE4N2U2YWRjYWZlNjUyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3RvclF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVy
eS5jcHAKQEAgLTEyMCw2ICsxMjAsMjAgQEAgaW5saW5lIGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6
c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhLAogICAgIHJl
dHVybiBzZWxlY3RvckNoZWNrZXIubWF0Y2goc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCAmZWxlbWVu
dCwgc2VsZWN0b3JDaGVja2luZ0NvbnRleHQpOwogfQogCitpbmxpbmUgRWxlbWVudCogU2VsZWN0
b3JEYXRhTGlzdDo6c2VsZWN0b3JDbG9zZXN0KGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JE
YXRhLCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29u
c3QKK3sKKyAgICBTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyKGVsZW1lbnQuZG9jdW1l
bnQoKSk7CisgICAgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVj
a2luZ0NvbnRleHQoU2VsZWN0b3JDaGVja2VyOjpNb2RlOjpRdWVyeWluZ1J1bGVzKTsKKyAgICBz
ZWxlY3RvckNoZWNraW5nQ29udGV4dC5zY29wZSA9IHJvb3ROb2RlLmlzRG9jdW1lbnROb2RlKCkg
PyBudWxscHRyIDogJnJvb3ROb2RlOworICAgIEVsZW1lbnQqIGN1cnJlbnROb2RlID0gKEVsZW1l
bnQgKikgJnJvb3ROb2RlOworICAgIGRvIHsKKyAgICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tlci5t
YXRjaChzZWxlY3RvckRhdGEuc2VsZWN0b3IsIGN1cnJlbnROb2RlLCBzZWxlY3RvckNoZWNraW5n
Q29udGV4dCkpCisgICAgICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7CisgICAgICAgIGN1cnJl
bnROb2RlID0gY3VycmVudE5vZGUtPnBhcmVudEVsZW1lbnQoKTsKKyAgICB9IHdoaWxlIChjdXJy
ZW50Tm9kZSk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJvb2wgU2VsZWN0b3JEYXRhTGlz
dDo6bWF0Y2hlcyhFbGVtZW50JiB0YXJnZXRFbGVtZW50KSBjb25zdAogewogICAgIHVuc2lnbmVk
IHNlbGVjdG9yQ291bnQgPSBtX3NlbGVjdG9ycy5zaXplKCk7CkBAIC0xMzAsNiArMTQ0LDE3IEBA
IGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6bWF0Y2hlcyhFbGVtZW50JiB0YXJnZXRFbGVtZW50KSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRWxlbWVudCogU2VsZWN0b3JEYXRhTGlzdDo6
Y2xvc2VzdChFbGVtZW50JiB0YXJnZXRFbGVtZW50KSBjb25zdAoreworICAgIHVuc2lnbmVkIHNl
bGVjdG9yQ291bnQgPSBtX3NlbGVjdG9ycy5zaXplKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHNlbGVjdG9yQ291bnQ7ICsraSkgeworICAgICAgICBFbGVtZW50KiBjbG9zZXN0RWxl
bWVudCA9IHNlbGVjdG9yQ2xvc2VzdChtX3NlbGVjdG9yc1tpXSwgdGFyZ2V0RWxlbWVudCwgdGFy
Z2V0RWxlbWVudCk7CisgICAgICAgIGlmIChjbG9zZXN0RWxlbWVudCkKKyAgICAgICAgICAgIHJl
dHVybiBjbG9zZXN0RWxlbWVudDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHN0
cnVjdCBBbGxFbGVtZW50RXh0cmFjdG9yU2VsZWN0b3JRdWVyeVRyYWl0IHsKICAgICB0eXBlZGVm
IFZlY3RvcjxSZWY8RWxlbWVudD4+IE91dHB1dFR5cGU7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2hvdWxkT25seU1hdGNoRmlyc3RFbGVtZW50ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9y
UXVlcnkuaAppbmRleCBhMGY0YmJjNTQ5ODE4YjRjY2U0NjE3YTk1OTEyODAzODViY2FiZWQ2Li42
MWYwNzdhN2Q5ODVmMTgyYjNlOWZmNDVhZDgxOWU5YzdmNTA0YTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgU2VsZWN0b3JEYXRhTGlzdCB7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2VsZWN0b3JEYXRhTGlzdChjb25zdCBDU1NTZWxlY3Rv
ckxpc3QmKTsKICAgICBib29sIG1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OworICAgIEVsZW1lbnQq
IGNsb3Nlc3QoRWxlbWVudCYpIGNvbnN0OwogICAgIFJlZlB0cjxOb2RlTGlzdD4gcXVlcnlBbGwo
Q29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0OwogICAgIEVsZW1lbnQqIHF1ZXJ5Rmlyc3Qo
Q29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0OwogCkBAIC03OSw2ICs4MCw3IEBAIHByaXZh
dGU6CiAgICAgfTsKIAogICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0
YSYsIEVsZW1lbnQmLCBjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CisgICAg
RWxlbWVudCogc2VsZWN0b3JDbG9zZXN0KGNvbnN0IFNlbGVjdG9yRGF0YSYsIEVsZW1lbnQmLCBj
b25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAKICAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGUoQ29udGFpbmVyTm9kZSYgcm9v
dE5vZGUsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0Owog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUZh
c3RQYXRoRm9ySWRTZWxlY3Rvcihjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3Qg
U2VsZWN0b3JEYXRhJiwgY29uc3QgQ1NTU2VsZWN0b3IqIGlkU2VsZWN0b3IsIHR5cGVuYW1lIFNl
bGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0OwpAQCAtMTE2LDYgKzExOCw3IEBA
IGNsYXNzIFNlbGVjdG9yUXVlcnkgewogcHVibGljOgogICAgIGV4cGxpY2l0IFNlbGVjdG9yUXVl
cnkoQ1NTU2VsZWN0b3JMaXN0JiYpOwogICAgIGJvb2wgbWF0Y2hlcyhFbGVtZW50JikgY29uc3Q7
CisgICAgRWxlbWVudCogY2xvc2VzdChFbGVtZW50JikgY29uc3Q7CiAgICAgUmVmUHRyPE5vZGVM
aXN0PiBxdWVyeUFsbChDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAgICAgRWxlbWVu
dCogcXVlcnlGaXJzdChDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAKQEAgLTEzOSw2
ICsxNDIsMTEgQEAgaW5saW5lIGJvb2wgU2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhFbGVtZW50JiBl
bGVtZW50KSBjb25zdAogICAgIHJldHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKGVsZW1lbnQpOwog
fQogCitpbmxpbmUgRWxlbWVudCogU2VsZWN0b3JRdWVyeTo6Y2xvc2VzdChFbGVtZW50JiBlbGVt
ZW50KSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdG9ycy5jbG9zZXN0KGVsZW1lbnQpOwor
fQorCiBpbmxpbmUgUmVmUHRyPE5vZGVMaXN0PiBTZWxlY3RvclF1ZXJ5OjpxdWVyeUFsbChDb250
YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zZWxlY3RvcnMucXVl
cnlBbGwocm9vdE5vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQyZDE2OGZhNDAzZjllYmRjYWUwODk3Y2RmYzM4MjJl
ZjFjZWIwZWUuLjI2NmJhMWI5NDQ1YmUwODBhYTQ4NWM5NDAyMDA0YzBkNTdkY2Y1MjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxNC0xMC0wMyAgRGhpIEF1cnJhaG1hbiAgPGRpb3JhaG1hbkBy
b2NreWJhcnMuY29tPgorCisgICAgICAgIEltcGxlbWVudCBjbG9zZXN0KCkgQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc0MTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc2VsZWN0b3Jz
L2Nsb3Nlc3QtZ2VuZXJhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Vs
ZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVj
dG9ycy9jbG9zZXN0LXNjb3BlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
ZWxlY3RvcnMvY2xvc2VzdC1zY29wZS5odG1sOiBBZGRlZC4KKwogMjAxNC0wOS0yNiAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBNYXJrIGZhc3Qvc2Vs
ZWN0b3JzL250aC1jaGlsZC1vZi1iYXNpY3MgYXMgU2xvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGI3MTRmNjgwMGRiNTkyMWFkODk4MDRjODNlNjZkNzAwZDRhODliYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhlIGNsb3Nlc3Qo
KSBBUEkgd29ya3MgY29ycmVjdGx5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHRoZVRhcmdldC5jbG9zZXN0KCIjdGhlVGFyZ2V0IikgaXMgdGhlVGFyZ2V0CitQQVNTIHRo
ZVRhcmdldC5jbG9zZXN0KCJhbmNlc3RvciIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdldC5j
bG9zZXN0KCJoaWhpIikgaXMgbnVsbAorUEFTUyBkb2N1bWVudC5jbG9zZXN0IGlzIHVuZGVmaW5l
ZAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdChudWxsKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5j
bG9zZXN0KHVuZGVmaW5lZCkgaXMgbnVsbAorUEFTUyBmYWlsT25FbXB0eUFyZ3VtZW50cygpIGlz
IHRydWUKK1BBU1MgZmFpbE9uRW1wdHlTdHJpbmdBcmd1bWVudCgpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LWdlbmVyYWwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZTVj
ZDk1NmFlMzBkMzJlNzU1NDhiZjhiNWI0MTIwZjcyZGRmZGMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LWdlbmVyYWwuaHRtbApAQCAtMCwwICsx
LDU0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorCTxhbmNlc3Rvcj4KKwkgICAgPHNpYmxpbmc+PC9zaWJsaW5nPgor
CSAgICA8dGFyZ2V0IGlkPSJ0aGVUYXJnZXQiIHdlYmtpdD0iZmFzdCI+PC90YXJnZXQ+CisgICAg
PC9hbmNlc3Rvcj4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IG1h
a2VzIHN1cmUgdGhlIGNsb3Nlc3QoKSBBUEkgd29ya3MgY29ycmVjdGx5Jyk7CisKK3ZhciB0aGVU
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlVGFyZ2V0Jyk7Cit2YXIgYW5jZXN0
b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhbmNlc3RvcicpOwordmFyIGJvZHkgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7CisKK2Z1bmN0aW9uIGZhaWxPbkVtcHR5QXJndW1l
bnRzKCl7CisJdHJ5eworCQl0aGVUYXJnZXQuY2xvc2VzdCgpOworCX0gY2F0Y2ggKGV4KXsKKwkJ
cmV0dXJuIGV4Lm5hbWUgPT0gJ1R5cGVFcnJvcicgJiYgZXgubWVzc2FnZSA9PSAnTm90IGVub3Vn
aCBhcmd1bWVudHMnCisJfQorCXJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gZmFpbE9uRW1w
dHlTdHJpbmdBcmd1bWVudCgpeworCXRyeXsKKwkJdGhlVGFyZ2V0LmNsb3Nlc3QoIiIpOworCX0g
Y2F0Y2ggKGV4KXsKKwkJcmV0dXJuIGV4Lm5hbWUgPT0gJ1N5bnRheEVycm9yJyAmJiBleC5tZXNz
YWdlID09ICdTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMicKKwl9CisJcmV0dXJuIGZhbHNl
OwkKK30KKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCIjdGhlVGFyZ2V0IiknLCAidGhl
VGFyZ2V0Iik7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoImFuY2VzdG9yIiknLCAiYW5j
ZXN0b3IiKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoImhpaGkiKScsICJhbmNl
c3RvciIpOworCitzaG91bGRCZSgnZG9jdW1lbnQuY2xvc2VzdCcsICd1bmRlZmluZWQnKTsKK3No
b3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QobnVsbCknKTsKK3Nob3VsZEJlTnVsbCgndGhl
VGFyZ2V0LmNsb3Nlc3QodW5kZWZpbmVkKScpOworCitzaG91bGRCZVRydWUoJ2ZhaWxPbkVtcHR5
QXJndW1lbnRzKCknKTsKK3Nob3VsZEJlVHJ1ZSgnZmFpbE9uRW1wdHlTdHJpbmdBcmd1bWVudCgp
Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
ZWxlY3RvcnMvY2xvc2VzdC1zY29wZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9jbG9zZXN0LXNjb3BlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmQ3OWU5YTkw
ZWU5ZTMwMDRmMjBkYTE2N2ZiOTkyYzY4ZjUxMzJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1zY29wZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNyBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCA6c2NvcGUgd29ya3MgY29ycmVjdGx5
IHdpdGggdGhlIGNsb3Nlc3QoKSBBUEkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUiKSBpcyB0aGVUYXJnZXQKK1BBU1MgdGhl
VGFyZ2V0LmNsb3Nlc3QoIjpub3QoOnNjb3BlKSIpIGlzIGJvZHkKK1BBU1MgdGhlVGFyZ2V0LmNs
b3Nlc3QoImJvZHkgOnNjb3BlIikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRhcmdldC5jbG9zZXN0
KCJib2R5PjpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgic2li
bGluZyArIDpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgic2li
bGluZyB+IDpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiI3Ro
ZVRhcmdldDpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNj
b3BlI3RoZVRhcmdldCIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiW3dl
YmtpdF06c2NvcGUjdGhlVGFyZ2V0IikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRhcmdldC5jbG9z
ZXN0KCI6bm90KFt3ZWJraXQ9ZmFzdF0pOnNjb3BlI3RoZVRhcmdldCIpIGlzIG51bGwKK1BBU1Mg
dGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdl
dC5jbG9zZXN0KCI6c2NvcGUgPiB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9z
ZXN0KCI6c2NvcGUgKyB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6
c2NvcGUgfiB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUg
KiIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSA+ICoiKSBpcyBudWxs
CitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgKyAqIikgaXMgbnVsbAorUEFTUyB0aGVU
YXJnZXQuY2xvc2VzdCgiOnNjb3BlIH4gKiIpIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVj
dG9ycy9jbG9zZXN0LXNjb3BlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ5OTQ1NTZiZDU0M2ZlMmJlNzFk
YjZlMmQxZmRhZmM2Y2Q5ZTc2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxzaWJsaW5nPjwvc2libGluZz4KKyAgICA8dGFyZ2V0IGlkPSJ0aGVUYXJnZXQiIHdlYmtp
dD0iZmFzdCI+PC90YXJnZXQ+Cis8L2JvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1RoaXMg
dGVzdCBtYWtlcyBzdXJlIHRoYXQgOnNjb3BlIHdvcmtzIGNvcnJlY3RseSB3aXRoIHRoZSBjbG9z
ZXN0KCkgQVBJLicpOworCit2YXIgdGhlVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RoZVRhcmdldCcpOwordmFyIGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7
CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSIpJywgJ3RoZVRhcmdldCcpOwor
c2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCI6bm90KDpzY29wZSkiKScsICdib2R5Jyk7CisK
K3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiYm9keSA6c2NvcGUiKScsICd0aGVUYXJnZXQn
KTsKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiYm9keT46c2NvcGUiKScsICd0aGVUYXJn
ZXQnKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJzaWJsaW5nICsgOnNjb3BlIikn
LCAndGhlVGFyZ2V0Jyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoInNpYmxpbmcgfiA6
c2NvcGUiKScsICd0aGVUYXJnZXQnKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCIj
dGhlVGFyZ2V0OnNjb3BlIiknLCAndGhlVGFyZ2V0Jyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNs
b3Nlc3QoIjpzY29wZSN0aGVUYXJnZXQiKScsICd0aGVUYXJnZXQnKTsKKworc2hvdWxkQmUoJ3Ro
ZVRhcmdldC5jbG9zZXN0KCJbd2Via2l0XTpzY29wZSN0aGVUYXJnZXQiKScsICd0aGVUYXJnZXQn
KTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpub3QoW3dlYmtpdD1mYXN0XSk6
c2NvcGUjdGhlVGFyZ2V0IiknKTsKKworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgi
OnNjb3BlIHRhcmdldCIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCI6c2Nv
cGUgPiB0YXJnZXQiKScpOworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3Bl
ICsgdGFyZ2V0IiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSB+
IHRhcmdldCIpJyk7CisKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSAq
IiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSA+ICoiKScpOwor
c2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlICsgKiIpJyk7CitzaG91bGRC
ZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgfiAqIiknKTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239279</attachid>
            <date>2014-10-04 06:22:15 -0700</date>
            <delta_ts>2014-10-04 12:50:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137418-20141004202214.patch</filename>
            <type>text/plain</type>
            <size>19080</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM0ODFjMDk1MWNlMzk2
OGEzZjkwM2U1NDMwMDAwYTY0NDRiNmUwYS4uN2E5NDU2MGQ5MDkwODBlMTJlNzg1Y2ZlOWQ3Y2Q2
NmRjYmMzMjhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTEwLTA0ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IEVsZW1lbnQuY2xvc2VzdCgpIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM3NDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC5odG1s
CisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLmh0bWwKKworICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNsb3Nl
c3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRs
OgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yQ2xvc2VzdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpjbG9zZXN0KToKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVyeS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JRdWVyeTo6Y2xvc2VzdCk6CisKIDIwMTQtMDktMjYg
IENocmlzdG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNp
bmcgbGVnYWN5IE5PREVfVFlQRV9DQVNUUygpIG1hY3JvIGZvciBIVE1MIEVsZW1lbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKaW5kZXggNmE5Zjg3MDk4ZTZkNDcwNWU2NWJkMTQ4NDRjMmQ0YWIzNWUz
YjAxYi4uMzU5ZDM2YzcyZjYwMDdmYjEwMzgyNWVlNTJmYjE0MjM2M2RhNTFmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcApAQCAtMjMyMSw2ICsyMzIxLDE0IEBAIGJvb2wgRWxlbWVudDo6bWF0Y2hl
cyhjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4g
c2VsZWN0b3JRdWVyeSAmJiBzZWxlY3RvclF1ZXJ5LT5tYXRjaGVzKCp0aGlzKTsKIH0KIAorRWxl
bWVudCogRWxlbWVudDo6Y2xvc2VzdChjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBTZWxlY3RvclF1ZXJ5KiBzZWxlY3RvclF1ZXJ5ID0gZG9jdW1lbnQo
KS5zZWxlY3RvclF1ZXJ5Rm9yU3RyaW5nKHNlbGVjdG9yLCBlYyk7CisgICAgaWYgKHNlbGVjdG9y
UXVlcnkpCisgICAgICAgIHJldHVybiBzZWxlY3RvclF1ZXJ5LT5jbG9zZXN0KCp0aGlzKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBFbGVtZW50OjpzaG91bGRBcHBlYXJJbmRldGVy
bWluYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRl
eCA1MjM5MzU1NDRhZTY0ZGVlNDE1MDg2MWI5ZmJjYzg2NmI5MTE1OTM4Li45ODA2M2M2ZGQ4ZTc1
ZTk5MGIwZmQ1ZTY5YzQ3OTFhNzgzMWIxMDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQ1Miw2
ICs0NTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBz
ZXVkb0NsYXNzKCkgY29uc3Q7CiAgICAgYm9vbCBtYXRjaGVzKGNvbnN0IFN0cmluZyYgc2VsZWN0
b3JzLCBFeGNlcHRpb25Db2RlJik7CisgICAgRWxlbWVudCogY2xvc2VzdChjb25zdCBTdHJpbmcm
IHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBl
YXJJbmRldGVybWluYXRlKCkgY29uc3Q7CiAKICAgICBET01Ub2tlbkxpc3QmIGNsYXNzTGlzdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDdmMTU4Njk1NWVhY2FjMTM4NmFhZGRlMWQxYjJm
YzIwMzk2ZjIxODkuLmJiOTMyN2MyY2MxZmZlZDY5ZGEzYmVkMGRkYTc2ZGRlMDYyMmVhNjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTEyMSw2ICsxMjEsNyBAQAogICAgIFtSYWlzZXNFeGNl
cHRpb25dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3RyaW5nIHNlbGVjdG9ycyk7CiAK
ICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIG1hdGNoZXMoW0RlZmF1bHQ9VW5kZWZpbmVk
XSBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0b3JzKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBF
bGVtZW50IGNsb3Nlc3QoRE9NU3RyaW5nIHNlbGVjdG9ycyk7ICAgIAogICAgIFtJbXBsZW1lbnRl
ZEFzPW1hdGNoZXMsIFJhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiB3ZWJraXRNYXRjaGVzU2VsZWN0
b3IoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0b3JzKTsKIAog
ICAgIC8vIEVsZW1lbnRUcmF2ZXJzYWwgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5j
cHAKaW5kZXggNWFiN2E2YTFkZjlkMDg2NDljMGM5OTk2N2Q3Zjc5MDViMDgyZDQ0NS4uOWZjZWYx
ZTE1NWU5MjJiODFmNzlhMGVlNzZhYjBkZTlmNzkxYWFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxl
Y3RvclF1ZXJ5LmNwcApAQCAtMTIwLDYgKzEyMCwyNiBAQCBpbmxpbmUgYm9vbCBTZWxlY3RvckRh
dGFMaXN0OjpzZWxlY3Rvck1hdGNoZXMoY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEs
CiAgICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvckRhdGEuc2VsZWN0b3Is
ICZlbGVtZW50LCBzZWxlY3RvckNoZWNraW5nQ29udGV4dCk7CiB9CiAKK2lubGluZSBFbGVtZW50
KiBTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3RvckNsb3Nlc3QoY29uc3QgU2VsZWN0b3JEYXRhJiBz
ZWxlY3RvckRhdGEsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3RO
b2RlLCBpbnQmIG1pbmltdW1EaXN0YW5jZSkgY29uc3QKK3sKKyAgICBTZWxlY3RvckNoZWNrZXIg
c2VsZWN0b3JDaGVja2VyKGVsZW1lbnQuZG9jdW1lbnQoKSk7CisgICAgU2VsZWN0b3JDaGVja2Vy
OjpDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2luZ0NvbnRleHQoU2VsZWN0b3JDaGVja2Vy
OjpNb2RlOjpRdWVyeWluZ1J1bGVzKTsKKyAgICBzZWxlY3RvckNoZWNraW5nQ29udGV4dC5zY29w
ZSA9IHJvb3ROb2RlLmlzRG9jdW1lbnROb2RlKCkgPyBudWxscHRyIDogJnJvb3ROb2RlOworICAg
IEVsZW1lbnQqIGN1cnJlbnROb2RlID0gJmVsZW1lbnQ7CisgICAgaW50IGN1cnJlbnREaXN0YW5j
ZSA9IDA7CisgICAgZG8geworICAgICAgICBpZiAoc2VsZWN0b3JDaGVja2VyLm1hdGNoKHNlbGVj
dG9yRGF0YS5zZWxlY3RvciwgY3VycmVudE5vZGUsIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0KSkg
eworICAgICAgICAgICAgaWYgKG1pbmltdW1EaXN0YW5jZSA+PSAwICYmIGN1cnJlbnREaXN0YW5j
ZSA+IG1pbmltdW1EaXN0YW5jZSkgCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgICAgICBtaW5pbXVtRGlzdGFuY2UgPSBjdXJyZW50RGlzdGFuY2U7CisgICAgICAgICAg
ICByZXR1cm4gY3VycmVudE5vZGU7CisgICAgICAgIH0KKyAgICAgICAgY3VycmVudE5vZGUgPSBj
dXJyZW50Tm9kZS0+cGFyZW50RWxlbWVudCgpOworICAgICAgICBjdXJyZW50RGlzdGFuY2UrKzsK
KyAgICB9IHdoaWxlIChjdXJyZW50Tm9kZSk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJv
b2wgU2VsZWN0b3JEYXRhTGlzdDo6bWF0Y2hlcyhFbGVtZW50JiB0YXJnZXRFbGVtZW50KSBjb25z
dAogewogICAgIHVuc2lnbmVkIHNlbGVjdG9yQ291bnQgPSBtX3NlbGVjdG9ycy5zaXplKCk7CkBA
IC0xMzAsNiArMTUwLDE4IEBAIGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6bWF0Y2hlcyhFbGVtZW50
JiB0YXJnZXRFbGVtZW50KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRWxlbWVudCog
U2VsZWN0b3JEYXRhTGlzdDo6Y2xvc2VzdChFbGVtZW50JiB0YXJnZXRFbGVtZW50KSBjb25zdAor
eworICAgIGludCBtaW5pbXVtRGlzdGFuY2UgPSAtMTsKKyAgICBFbGVtZW50KiBjbG9zZXN0RWxl
bWVudCA9IG51bGxwdHI7CisgICAgZm9yIChhdXRvJiBzZWxlY3RvciA6IG1fc2VsZWN0b3JzKSB7
CisgICAgICAgIEVsZW1lbnQqIGNhbmRpZGF0ZUVsZW1lbnQgPSBzZWxlY3RvckNsb3Nlc3Qoc2Vs
ZWN0b3IsIHRhcmdldEVsZW1lbnQsIHRhcmdldEVsZW1lbnQsIG1pbmltdW1EaXN0YW5jZSk7Cisg
ICAgICAgIGlmIChjYW5kaWRhdGVFbGVtZW50KQorICAgICAgICAgICAgY2xvc2VzdEVsZW1lbnQg
PSBjYW5kaWRhdGVFbGVtZW50OworICAgIH0KKyAgICByZXR1cm4gY2xvc2VzdEVsZW1lbnQ7Cit9
CisKIHN0cnVjdCBBbGxFbGVtZW50RXh0cmFjdG9yU2VsZWN0b3JRdWVyeVRyYWl0IHsKICAgICB0
eXBlZGVmIFZlY3RvcjxSZWY8RWxlbWVudD4+IE91dHB1dFR5cGU7CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2hvdWxkT25seU1hdGNoRmlyc3RFbGVtZW50ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaAppbmRleCBhMGY0YmJjNTQ5ODE4YjRjY2U0NjE3YTk1OTEyODAzODViY2Fi
ZWQ2Li5jNjk5YjJhNTRhMGU4OWEwZWE1MTEyMGVjYjY3MmU5MDFlNDI2NTk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3RvclF1ZXJ5LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgU2VsZWN0b3JEYXRh
TGlzdCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2VsZWN0b3JEYXRhTGlzdChjb25zdCBDU1NT
ZWxlY3Rvckxpc3QmKTsKICAgICBib29sIG1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OworICAgIEVs
ZW1lbnQqIGNsb3Nlc3QoRWxlbWVudCYpIGNvbnN0OwogICAgIFJlZlB0cjxOb2RlTGlzdD4gcXVl
cnlBbGwoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0OwogICAgIEVsZW1lbnQqIHF1ZXJ5
Rmlyc3QoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0OwogCkBAIC03OSw2ICs4MCw3IEBA
IHByaXZhdGU6CiAgICAgfTsKIAogICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVj
dG9yRGF0YSYsIEVsZW1lbnQmLCBjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7
CisgICAgRWxlbWVudCogc2VsZWN0b3JDbG9zZXN0KGNvbnN0IFNlbGVjdG9yRGF0YSYsIEVsZW1l
bnQmLCBjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgaW50JiBtaW5pbXVtRGlzdGFuY2Up
IGNvbnN0OwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9p
ZCBleGVjdXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5
VHJhaXQ6Ok91dHB1dFR5cGUmKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0
b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVGYXN0UGF0aEZvcklkU2VsZWN0b3IoY29uc3QgQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IFNlbGVjdG9yRGF0YSYsIGNvbnN0IENTU1NlbGVj
dG9yKiBpZFNlbGVjdG9yLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUm
KSBjb25zdDsKQEAgLTExNiw2ICsxMTgsNyBAQCBjbGFzcyBTZWxlY3RvclF1ZXJ5IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBTZWxlY3RvclF1ZXJ5KENTU1NlbGVjdG9yTGlzdCYmKTsKICAgICBi
b29sIG1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OworICAgIEVsZW1lbnQqIGNsb3Nlc3QoRWxlbWVu
dCYpIGNvbnN0OwogICAgIFJlZlB0cjxOb2RlTGlzdD4gcXVlcnlBbGwoQ29udGFpbmVyTm9kZSYg
cm9vdE5vZGUpIGNvbnN0OwogICAgIEVsZW1lbnQqIHF1ZXJ5Rmlyc3QoQ29udGFpbmVyTm9kZSYg
cm9vdE5vZGUpIGNvbnN0OwogCkBAIC0xMzksNiArMTQyLDExIEBAIGlubGluZSBib29sIFNlbGVj
dG9yUXVlcnk6Om1hdGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKICAgICByZXR1cm4gbV9z
ZWxlY3RvcnMubWF0Y2hlcyhlbGVtZW50KTsKIH0KIAoraW5saW5lIEVsZW1lbnQqIFNlbGVjdG9y
UXVlcnk6OmNsb3Nlc3QoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
ZWxlY3RvcnMuY2xvc2VzdChlbGVtZW50KTsKK30KKwogaW5saW5lIFJlZlB0cjxOb2RlTGlzdD4g
U2VsZWN0b3JRdWVyeTo6cXVlcnlBbGwoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fc2VsZWN0b3JzLnF1ZXJ5QWxsKHJvb3ROb2RlKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MmQx
NjhmYTQwM2Y5ZWJkY2FlMDg5N2NkZmMzODIyZWYxY2ViMGVlLi4zZWZmM2VjNzBiZTM4ZDJhNmRi
ZWVkZWMxNWRjMTM3MDhhZDBjMTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMTAtMDQg
IERoaSBBdXJyYWhtYW4gIDxkaW9yYWhtYW5Acm9ja3liYXJzLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgRWxlbWVudC5jbG9zZXN0KCkgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJh
bC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1zY29w
ZS5odG1sOiBBZGRlZC4KKwogMjAxNC0wOS0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBNYXJrIGZhc3Qvc2VsZWN0b3JzL250aC1jaGlsZC1vZi1i
YXNpY3MgYXMgU2xvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xv
c2VzdC1nZW5lcmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Ns
b3Nlc3QtZ2VuZXJhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBjNmIyMjY4MjA4Zjg3ZDZl
ZjA3ZWZhMTM3ZjFmOGRmZTFiMTNkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MSBA
QAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhlIGNsb3Nlc3QoKSBBUEkgd29ya3MgY29ycmVjdGx5
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0
KCIjdGhlVGFyZ2V0IikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJhbmNl
c3RvciIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSBhbmNlc3Rv
ciIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSA+IGFuY2VzdG9y
IikgaXMgYW5jZXN0b3IKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoInJlYWxtICsgYW5jZXN0b3Ii
KSBpcyBhbmNlc3RvcgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgicmVhbG0gfiBhbmNlc3RvciIp
IGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSwgYW5jZXN0b3IiKSBp
cyBhbmNlc3RvcgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiYW5jZXN0b3IsIHRyaWJlIikgaXMg
YW5jZXN0b3IKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoInRyaWJlIHJlYWxtIikgaXMgbnVsbAor
UEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgidHJpYmUgcmVhbG0gdGhyb25lIikgaXMgbnVsbAorUEFT
UyB0aGVUYXJnZXQuY2xvc2VzdCgidHJpYmUgcmVhbG0gYW5jZXN0b3IiKSBpcyBudWxsCitQQVNT
IHRoZVRhcmdldC5jbG9zZXN0KCJyZWFsbSA+IGFuY2VzdG9yIikgaXMgbnVsbAorUEFTUyB0aGVU
YXJnZXQuY2xvc2VzdCgidGhyb25lICsgYW5jZXN0b3IiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdl
dC5jbG9zZXN0KCJ0aHJvbmUgfiBhbmNlc3RvciIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNs
b3Nlc3QoIi5jbGFzc2ljIikgaXMgYW5jZXN0b3IKK0ZBSUwgdGhlVGFyZ2V0LmNsb3Nlc3QoImpv
aG4iKSBzaG91bGQgYmUgW29iamVjdCBIVE1MVW5rbm93bkVsZW1lbnRdLiBXYXMgbnVsbC4KK1BB
U1MgdGhlVGFyZ2V0LmNsb3Nlc3QoImRvZSIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nl
c3QoImFuY2VzdG9yW25hbWU9b2xkXSIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdldC5jbG9z
ZXN0KCJhbmNlc3RvcltuYW1lPXlvdW5nXSIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nl
c3QobnVsbCkgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCh1bmRlZmluZWQpIGlzIG51
bGwKK1BBU1Mgc291ci5jbG9zZXN0KCJsZW1vbiIpIGlzIHNvdXIKK1BBU1Mgc291ci5jbG9zZXN0
KCJhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpIikgaXMgaQorUEFTUyBzb3VyLmNsb3Nlc3QoImEs
IGIsIGMsIGQsIGUsIGYsIGcsIGgiKSBpcyBoCitQQVNTIHNvdXIuY2xvc2VzdCgiYSwgYiwgYywg
ZCwgZSwgZiwgZyIpIGlzIGcKK1BBU1Mgc291ci5jbG9zZXN0KCJhLCBiLCBjLCBkLCBlLCBmIikg
aXMgZgorUEFTUyBzb3VyLmNsb3Nlc3QoImEsIGIsIGMsIGQsIGUiKSBpcyBlCitQQVNTIHNvdXIu
Y2xvc2VzdCgiYSwgYiwgYyIpIGlzIGMKK1BBU1Mgc291ci5jbG9zZXN0KCJhLCBiIikgaXMgYgor
UEFTUyBzb3VyLmNsb3Nlc3QoImEiKSBpcyBhCitQQVNTIHNvdXIuY2xvc2VzdCgiaSwgaCwgZywg
ZiwgZSwgZCwgYywgYiwgYSIpIGlzIGkKK1BBU1Mgc291ci5jbG9zZXN0KCJoLCBnLCBmLCBlLCBk
LCBjLCBiLCBhIikgaXMgaAorUEFTUyBzb3VyLmNsb3Nlc3QoImcsIGYsIGUsIGQsIGMsIGIsIGEi
KSBpcyBnCitQQVNTIHNvdXIuY2xvc2VzdCgiZiwgZSwgZCwgYywgYiwgYSIpIGlzIGYKK1BBU1Mg
c291ci5jbG9zZXN0KCJlLCBkLCBjLCBiLCBhIikgaXMgZQorUEFTUyBzb3VyLmNsb3Nlc3QoImQs
IGMsIGIsIGEiKSBpcyBkCitQQVNTIHNvdXIuY2xvc2VzdCgiYywgYiwgYSIpIGlzIGMKK1BBU1Mg
c291ci5jbG9zZXN0KCJiLCBhIikgaXMgYgorUEFTUyBzb3VyLmNsb3Nlc3QoImEiKSBpcyBhCitQ
QVNTIGRvY3VtZW50LmNsb3Nlc3QgaXMgdW5kZWZpbmVkCitQQVNTIGRvY3VtZW50LmNsb3Nlc3Qo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24g
KGV2YWx1YXRpbmcgJ2RvY3VtZW50LmNsb3Nlc3QoKScpLgorUEFTUyB0aGVUYXJnZXQuY2xvc2Vz
dCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyB0aGVUYXJnZXQuY2xvc2VzdCgiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJv
cjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIi4xMjMiKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0
aGVUYXJnZXQuY2xvc2VzdCgiICAgICIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJy
b3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCIpIikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgdGhl
VGFyZ2V0LmNsb3Nlc3QoIigiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBE
T00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiKCkiKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJn
ZXQuY2xvc2VzdCgiXl9eIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9N
IEV4Y2VwdGlvbiAxMi4KK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoInsiKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJnZXQu
Y2xvc2VzdCgifSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNl
cHRpb24gMTIuCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ7fSIpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9jbG9zZXN0LWdlbmVyYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2NmYTRjZGFmYWVhMzE3
YzdkMWNkZWU0YzdhMTJkOGM5M2VmN2M3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFsLmh0bWwKQEAgLTAsMCArMSwxMjIgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisJPHRyaWJlPgorCQk8cmVhbG0+CisJCQk8dGhyb25lPjwvdGhyb25lPgorCQkJPGFu
Y2VzdG9yIGlkPSJkb2UiIG5hbWU9InlvdW5nIiBjbGFzcz0iY2xhc3NpYyI+CisJCQkJPHRhcmdl
dCBpZD0iYW5vdGhlclRhcmdldCI+PHRhcmdldD4KKwkJCTwvYW5jZXN0b3I+CisJCTwvcmVhbG0+
CisJCTxhbmNlc3RvciBpZD0iam9obiIgbmFtZT0ib2xkIiBjbGFzcz0iY2xhc3NpYyI+CisJCSAg
ICA8c2libGluZz48L3NpYmxpbmc+CisJCSAgICA8dGFyZ2V0IGlkPSJ0aGVUYXJnZXQiIHdlYmtp
dD0iZmFzdCI+PC90YXJnZXQ+CisJICAgIDwvYW5jZXN0b3I+CisgICAgPC90cmliZT4KKyAgICA8
Zm9vPgorICAgIAk8YmFyPgorICAgIAkJPGEgaWQ9ImEiPgorICAgIAkJCTxiIGlkPSJiIj4KKyAg
ICAJCQkJPGMgaWQ9ImMiPgorICAgIAkJCQkJPGQgaWQ9ImQiPgorICAgIAkJCQkJCTxlIGlkPSJl
Ij4KKyAgICAJCQkJCQkJPGYgaWQ9ImYiPgorICAgIAkJCQkJCQkJPGcgaWQ9ImciPgorICAgIAkJ
CQkJCQkJCTxoIGlkPSJoIj4KKyAgICAJCQkJCQkJCQkJPGkgaWQ9ImkiPgorICAgIAkJCQkJCQkJ
CQkJPGxlbW9uIGlkPSJzb3VyIj48L2xlbW9uPgorICAgIAkJCQkJCQkJCQk8L2k+CisgICAgCQkJ
CQkJCQkJPC9oPgorICAgIAkJCQkJCQkJPC9nPgorICAgIAkJCQkJCQk8Zi8+CisgICAgCQkJCQkJ
PGUvPgorICAgIAkJCQkJPC9kPgorICAgIAkJCQk8Yy8+CisgICAgCQkJPC9iPgorICAgIAkJPC9h
PgorICAgIAk8L2Jhcj4KKyAgICA8L2Zvbz4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhlIGNsb3Nlc3QoKSBBUEkgd29ya3MgY29ycmVjdGx5
Jyk7CisKK3ZhciB0aGVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlVGFyZ2V0
Jyk7Cit2YXIgYW5jZXN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnam9obicpOwordmFy
IHNvdXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc291cicpOwordmFyIGEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnYScpOwordmFyIGIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
YicpOwordmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpOwordmFyIGQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZCcpOwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZScpOwordmFyIGYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZicpOwordmFyIGcgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZycpOwordmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaCcpOwordmFyIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaScpOworCitzaG91
bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoIiN0aGVUYXJnZXQiKScsICd0aGVUYXJnZXQnKTsKK3No
b3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiYW5jZXN0b3IiKScsICdhbmNlc3RvcicpOworc2hv
dWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSBhbmNlc3RvciIpJywgJ2FuY2VzdG9yJyk7
CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoInRyaWJlID4gYW5jZXN0b3IiKScsICdhbmNl
c3RvcicpOworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJyZWFsbSArIGFuY2VzdG9yIikn
LCAnYW5jZXN0b3InKTsKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgicmVhbG0gfiBhbmNl
c3RvciIpJywgJ2FuY2VzdG9yJyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoInRyaWJl
LCBhbmNlc3RvciIpJywgJ2FuY2VzdG9yJyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3Qo
ImFuY2VzdG9yLCB0cmliZSIpJywgJ2FuY2VzdG9yJyk7CisKK3Nob3VsZEJlTnVsbCgndGhlVGFy
Z2V0LmNsb3Nlc3QoInRyaWJlIHJlYWxtIiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNs
b3Nlc3QoInRyaWJlIHJlYWxtIHRocm9uZSIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5j
bG9zZXN0KCJ0cmliZSByZWFsbSBhbmNlc3RvciIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdl
dC5jbG9zZXN0KCJyZWFsbSA+IGFuY2VzdG9yIiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0
LmNsb3Nlc3QoInRocm9uZSArIGFuY2VzdG9yIiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0
LmNsb3Nlc3QoInRocm9uZSB+IGFuY2VzdG9yIiknKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5j
bG9zZXN0KCIuY2xhc3NpYyIpJywgJ2FuY2VzdG9yJyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNs
b3Nlc3QoImpvaG4iKScsICdhbmNlc3RvcicpOworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xv
c2VzdCgiZG9lIiknKTsKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiYW5jZXN0b3JbbmFt
ZT1vbGRdIiknLCAnYW5jZXN0b3InKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3Qo
ImFuY2VzdG9yW25hbWU9eW91bmddIiknLCAnYW5jZXN0b3InKTsKKworc2hvdWxkQmVOdWxsKCd0
aGVUYXJnZXQuY2xvc2VzdChudWxsKScpOworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2Vz
dCh1bmRlZmluZWQpJyk7CisKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImxlbW9uIiknLCAnc291
cicpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSIp
JywgJ2knKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImEsIGIsIGMsIGQsIGUsIGYsIGcsIGgi
KScsICdoJyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0KCJhLCBiLCBjLCBkLCBlLCBmLCBnIikn
LCAnZycpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiYSwgYiwgYywgZCwgZSwgZiIpJywgJ2Yn
KTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImEsIGIsIGMsIGQsIGUiKScsICdlJyk7CitzaG91
bGRCZSgnc291ci5jbG9zZXN0KCJhLCBiLCBjIiknLCAnYycpOworc2hvdWxkQmUoJ3NvdXIuY2xv
c2VzdCgiYSwgYiIpJywgJ2InKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImEiKScsICdhJyk7
CitzaG91bGRCZSgnc291ci5jbG9zZXN0KCJpLCBoLCBnLCBmLCBlLCBkLCBjLCBiLCBhIiknLCAn
aScpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiaCwgZywgZiwgZSwgZCwgYywgYiwgYSIpJywg
J2gnKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImcsIGYsIGUsIGQsIGMsIGIsIGEiKScsICdn
Jyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0KCJmLCBlLCBkLCBjLCBiLCBhIiknLCAnZicpOwor
c2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiZSwgZCwgYywgYiwgYSIpJywgJ2UnKTsKK3Nob3VsZEJl
KCdzb3VyLmNsb3Nlc3QoImQsIGMsIGIsIGEiKScsICdkJyk7CitzaG91bGRCZSgnc291ci5jbG9z
ZXN0KCJjLCBiLCBhIiknLCAnYycpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiYiwgYSIpJywg
J2InKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImEiKScsICdhJyk7CisKK3Nob3VsZEJlKCdk
b2N1bWVudC5jbG9zZXN0JywgJ3VuZGVmaW5lZCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LmNs
b3Nlc3QoKScpOworc2hvdWxkVGhyb3coJ3RoZVRhcmdldC5jbG9zZXN0KCknKTsKK3Nob3VsZFRo
cm93KCd0aGVUYXJnZXQuY2xvc2VzdCgiIiknKTsKK3Nob3VsZFRocm93KCd0aGVUYXJnZXQuY2xv
c2VzdCgiLjEyMyIpJyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3QoIiAgICAiKScp
Oworc2hvdWxkVGhyb3coJ3RoZVRhcmdldC5jbG9zZXN0KCIpIiknKTsKK3Nob3VsZFRocm93KCd0
aGVUYXJnZXQuY2xvc2VzdCgiKCIpJyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3Qo
IigpIiknKTsKK3Nob3VsZFRocm93KCd0aGVUYXJnZXQuY2xvc2VzdCgiXl9eIiknKTsKK3Nob3Vs
ZFRocm93KCd0aGVUYXJnZXQuY2xvc2VzdCgieyIpJyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0
LmNsb3Nlc3QoIn0iKScpOworc2hvdWxkVGhyb3coJ3RoZVRhcmdldC5jbG9zZXN0KCJ7fSIpJyk7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0
b3JzL2Nsb3Nlc3Qtc2NvcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3Rv
cnMvY2xvc2VzdC1zY29wZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJkNzllOWE5MGVlOWUz
MDA0ZjIwZGExNjdmYjk5MmM2OGY1MTMyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcg
QEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgOnNjb3BlIHdvcmtzIGNvcnJlY3RseSB3aXRo
IHRoZSBjbG9zZXN0KCkgQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlIikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRhcmdl
dC5jbG9zZXN0KCI6bm90KDpzY29wZSkiKSBpcyBib2R5CitQQVNTIHRoZVRhcmdldC5jbG9zZXN0
KCJib2R5IDpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiYm9k
eT46c2NvcGUiKSBpcyB0aGVUYXJnZXQKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoInNpYmxpbmcg
KyA6c2NvcGUiKSBpcyB0aGVUYXJnZXQKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoInNpYmxpbmcg
fiA6c2NvcGUiKSBpcyB0aGVUYXJnZXQKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIiN0aGVUYXJn
ZXQ6c2NvcGUiKSBpcyB0aGVUYXJnZXQKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSN0
aGVUYXJnZXQiKSBpcyB0aGVUYXJnZXQKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIlt3ZWJraXRd
OnNjb3BlI3RoZVRhcmdldCIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgi
Om5vdChbd2Via2l0PWZhc3RdKTpzY29wZSN0aGVUYXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCI6c2NvcGUgdGFyZ2V0IikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xv
c2VzdCgiOnNjb3BlID4gdGFyZ2V0IikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgi
OnNjb3BlICsgdGFyZ2V0IikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3Bl
IH4gdGFyZ2V0IikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlICoiKSBp
cyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgPiAqIikgaXMgbnVsbAorUEFT
UyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlICsgKiIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0
LmNsb3Nlc3QoIjpzY29wZSB+ICoiKSBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
ZWxlY3RvcnMvY2xvc2VzdC1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMv
Y2xvc2VzdC1zY29wZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNzUxNTQ0ZmJhYTIyN2Q1YTY5NGY1MjQ4
MjRhODQzNGUzYzE0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVj
dG9ycy9jbG9zZXN0LXNjb3BlLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
c2libGluZz48L3NpYmxpbmc+CisgICAgPHRhcmdldCBpZD0idGhlVGFyZ2V0IiB3ZWJraXQ9ImZh
c3QiPjwvdGFyZ2V0PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3Qg
bWFrZXMgc3VyZSB0aGF0IDpzY29wZSB3b3JrcyBjb3JyZWN0bHkgd2l0aCB0aGUgY2xvc2VzdCgp
IEFQSS4nKTsKKwordmFyIHRoZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0aGVU
YXJnZXQnKTsKK3ZhciBib2R5ID0gZG9jdW1lbnQuYm9keTsKKworc2hvdWxkQmUoJ3RoZVRhcmdl
dC5jbG9zZXN0KCI6c2NvcGUiKScsICd0aGVUYXJnZXQnKTsKK3Nob3VsZEJlKCd0aGVUYXJnZXQu
Y2xvc2VzdCgiOm5vdCg6c2NvcGUpIiknLCAnYm9keScpOworCitzaG91bGRCZSgndGhlVGFyZ2V0
LmNsb3Nlc3QoImJvZHkgOnNjb3BlIiknLCAndGhlVGFyZ2V0Jyk7CitzaG91bGRCZSgndGhlVGFy
Z2V0LmNsb3Nlc3QoImJvZHk+OnNjb3BlIiknLCAndGhlVGFyZ2V0Jyk7CisKK3Nob3VsZEJlKCd0
aGVUYXJnZXQuY2xvc2VzdCgic2libGluZyArIDpzY29wZSIpJywgJ3RoZVRhcmdldCcpOworc2hv
dWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJzaWJsaW5nIH4gOnNjb3BlIiknLCAndGhlVGFyZ2V0
Jyk7CisKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiI3RoZVRhcmdldDpzY29wZSIpJywg
J3RoZVRhcmdldCcpOworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUjdGhlVGFy
Z2V0IiknLCAndGhlVGFyZ2V0Jyk7CisKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiW3dl
YmtpdF06c2NvcGUjdGhlVGFyZ2V0IiknLCAndGhlVGFyZ2V0Jyk7CitzaG91bGRCZU51bGwoJ3Ro
ZVRhcmdldC5jbG9zZXN0KCI6bm90KFt3ZWJraXQ9ZmFzdF0pOnNjb3BlI3RoZVRhcmdldCIpJyk7
CisKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSB0YXJnZXQiKScpOwor
c2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlID4gdGFyZ2V0IiknKTsKK3No
b3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSArIHRhcmdldCIpJyk7CitzaG91
bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgfiB0YXJnZXQiKScpOworCitzaG91
bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgKiIpJyk7CitzaG91bGRCZU51bGwo
J3RoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgPiAqIiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFy
Z2V0LmNsb3Nlc3QoIjpzY29wZSArICoiKScpOworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xv
c2VzdCgiOnNjb3BlIH4gKiIpJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239285</attachid>
            <date>2014-10-04 12:50:14 -0700</date>
            <delta_ts>2014-10-04 13:14:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137418-20141005025014.patch</filename>
            <type>text/plain</type>
            <size>18968</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM0ODFjMDk1MWNlMzk2
OGEzZjkwM2U1NDMwMDAwYTY0NDRiNmUwYS4uNjE2NTZlOTJmMjRkY2Q0OTQzNTMxNTcwYjNmZDhl
ZjdiNjlkNWY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTEwLTA0ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IEVsZW1lbnQuY2xvc2VzdCgpIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM3NDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IEVsZW1lbnQuY2xvc2VzdCgpIEFQSSBhcyBzcGVjaWZp
ZWQgaW4gWzFdLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNk
b20tZWxlbWVudC1jbG9zZXN0CisKKyAgICAgICAgVGVzdHM6IGZhc3Qvc2VsZWN0b3JzL2Nsb3Nl
c3QtZ2VuZXJhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNj
b3BlLmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmNsb3Nlc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yQ2xvc2VzdCk6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpjbG9zZXN0KToKKyAgICAgICAgKiBkb20vU2Vs
ZWN0b3JRdWVyeS5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JRdWVyeTo6Y2xvc2VzdCk6
CisKIDIwMTQtMDktMjYgIENocmlzdG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN0b3AgdXNpbmcgbGVnYWN5IE5PREVfVFlQRV9DQVNUUygpIG1hY3JvIGZvciBIVE1M
IEVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNmE5Zjg3MDk4ZTZkNDcwNWU2NWJk
MTQ4NDRjMmQ0YWIzNWUzYjAxYi4uMzU5ZDM2YzcyZjYwMDdmYjEwMzgyNWVlNTJmYjE0MjM2M2Rh
NTFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjMyMSw2ICsyMzIxLDE0IEBAIGJvb2wg
RWxlbWVudDo6bWF0Y2hlcyhjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gc2VsZWN0b3JRdWVyeSAmJiBzZWxlY3RvclF1ZXJ5LT5tYXRjaGVzKCp0
aGlzKTsKIH0KIAorRWxlbWVudCogRWxlbWVudDo6Y2xvc2VzdChjb25zdCBTdHJpbmcmIHNlbGVj
dG9yLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBTZWxlY3RvclF1ZXJ5KiBzZWxlY3RvclF1
ZXJ5ID0gZG9jdW1lbnQoKS5zZWxlY3RvclF1ZXJ5Rm9yU3RyaW5nKHNlbGVjdG9yLCBlYyk7Cisg
ICAgaWYgKHNlbGVjdG9yUXVlcnkpCisgICAgICAgIHJldHVybiBzZWxlY3RvclF1ZXJ5LT5jbG9z
ZXN0KCp0aGlzKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBFbGVtZW50OjpzaG91
bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaAppbmRleCA1MjM5MzU1NDRhZTY0ZGVlNDE1MDg2MWI5ZmJjYzg2NmI5MTE1OTM4
Li45ODA2M2M2ZGQ4ZTc1ZTk5MGIwZmQ1ZTY5YzQ3OTFhNzgzMWIxMDJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTQ1Miw2ICs0NTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgbWF0
Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3Q7CiAgICAgYm9vbCBtYXRjaGVzKGNvbnN0
IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHRpb25Db2RlJik7CisgICAgRWxlbWVudCogY2xvc2Vz
dChjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29uc3Q7CiAKICAgICBET01Ub2tlbkxp
c3QmIGNsYXNzTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDdmMTU4Njk1NWVhY2Fj
MTM4NmFhZGRlMWQxYjJmYzIwMzk2ZjIxODkuLmJiOTMyN2MyY2MxZmZlZDY5ZGEzYmVkMGRkYTc2
ZGRlMDYyMmVhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTEyMSw2ICsxMjEsNyBAQAog
ICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3RyaW5n
IHNlbGVjdG9ycyk7CiAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIG1hdGNoZXMoW0Rl
ZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0b3JzKTsKKyAgICBbUmFp
c2VzRXhjZXB0aW9uXSBFbGVtZW50IGNsb3Nlc3QoRE9NU3RyaW5nIHNlbGVjdG9ycyk7ICAgIAog
ICAgIFtJbXBsZW1lbnRlZEFzPW1hdGNoZXMsIFJhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiB3ZWJr
aXRNYXRjaGVzU2VsZWN0b3IoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcg
c2VsZWN0b3JzKTsKIAogICAgIC8vIEVsZW1lbnRUcmF2ZXJzYWwgQVBJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VsZWN0b3JRdWVyeS5jcHAKaW5kZXggNWFiN2E2YTFkZjlkMDg2NDljMGM5OTk2N2Q3Zjc5MDVi
MDgyZDQ0NS4uMDI3NmYyN2QzZTUyZmJmMzE3ZTgxNDhjMGMyNDNkOGM0OTIwY2VkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcApAQCAtMTIwLDYgKzEyMCwxNyBAQCBpbmxpbmUg
Ym9vbCBTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3Rvck1hdGNoZXMoY29uc3QgU2VsZWN0b3JEYXRh
JiBzZWxlY3RvckRhdGEsCiAgICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3Rv
ckRhdGEuc2VsZWN0b3IsICZlbGVtZW50LCBzZWxlY3RvckNoZWNraW5nQ29udGV4dCk7CiB9CiAK
K2lubGluZSBFbGVtZW50KiBTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3RvckNsb3Nlc3QoY29uc3Qg
U2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdAoreworICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3Rv
ckNoZWNrZXIoZWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICBTZWxlY3RvckNoZWNrZXI6OkNoZWNr
aW5nQ29udGV4dCBzZWxlY3RvckNoZWNraW5nQ29udGV4dChTZWxlY3RvckNoZWNrZXI6Ok1vZGU6
OlF1ZXJ5aW5nUnVsZXMpOworICAgIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9v
dE5vZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxwdHIgOiAmcm9vdE5vZGU7CisgICAgRWxlbWVu
dCogY3VycmVudE5vZGUgPSAmZWxlbWVudDsKKyAgICBpZiAoIXNlbGVjdG9yQ2hlY2tlci5tYXRj
aChzZWxlY3RvckRhdGEuc2VsZWN0b3IsIGN1cnJlbnROb2RlLCBzZWxlY3RvckNoZWNraW5nQ29u
dGV4dCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjdXJyZW50Tm9kZTsK
K30KKwogYm9vbCBTZWxlY3RvckRhdGFMaXN0OjptYXRjaGVzKEVsZW1lbnQmIHRhcmdldEVsZW1l
bnQpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgc2VsZWN0b3JDb3VudCA9IG1fc2VsZWN0b3JzLnNp
emUoKTsKQEAgLTEzMCw2ICsxNDEsMjAgQEAgYm9vbCBTZWxlY3RvckRhdGFMaXN0OjptYXRjaGVz
KEVsZW1lbnQmIHRhcmdldEVsZW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitF
bGVtZW50KiBTZWxlY3RvckRhdGFMaXN0OjpjbG9zZXN0KEVsZW1lbnQmIHRhcmdldEVsZW1lbnQp
IGNvbnN0Cit7CisgICAgRWxlbWVudCogY3VycmVudE5vZGUgPSAmdGFyZ2V0RWxlbWVudDsKKyAg
ICBkbyB7CisgICAgICAgIGZvciAoYXV0byYgc2VsZWN0b3IgOiBtX3NlbGVjdG9ycykgeworICAg
ICAgICAgICAgRWxlbWVudCogY2FuZGlkYXRlRWxlbWVudCA9IHNlbGVjdG9yQ2xvc2VzdChzZWxl
Y3RvciwgKmN1cnJlbnROb2RlLCAqY3VycmVudE5vZGUpOworICAgICAgICAgICAgaWYgKGNhbmRp
ZGF0ZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZUVsZW1lbnQ7Cisg
ICAgICAgIH0KKyAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+cGFyZW50RWxlbWVu
dCgpOworICAgIH0gd2hpbGUgKGN1cnJlbnROb2RlKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
Kwogc3RydWN0IEFsbEVsZW1lbnRFeHRyYWN0b3JTZWxlY3RvclF1ZXJ5VHJhaXQgewogICAgIHR5
cGVkZWYgVmVjdG9yPFJlZjxFbGVtZW50Pj4gT3V0cHV0VHlwZTsKICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzaG91bGRPbmx5TWF0Y2hGaXJzdEVsZW1lbnQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Vs
ZWN0b3JRdWVyeS5oCmluZGV4IGEwZjRiYmM1NDk4MThiNGNjZTQ2MTdhOTU5MTI4MDM4NWJjYWJl
ZDYuLjYxZjA3N2E3ZDk4NWYxODJiM2U5ZmY0NWFkODE5ZTljN2Y1MDRhMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NlbGVjdG9yUXVlcnkuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBTZWxlY3RvckRhdGFM
aXN0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTZWxlY3RvckRhdGFMaXN0KGNvbnN0IENTU1Nl
bGVjdG9yTGlzdCYpOwogICAgIGJvb2wgbWF0Y2hlcyhFbGVtZW50JikgY29uc3Q7CisgICAgRWxl
bWVudCogY2xvc2VzdChFbGVtZW50JikgY29uc3Q7CiAgICAgUmVmUHRyPE5vZGVMaXN0PiBxdWVy
eUFsbChDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAgICAgRWxlbWVudCogcXVlcnlG
aXJzdChDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAKQEAgLTc5LDYgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICB9OwogCiAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMoY29uc3QgU2VsZWN0
b3JEYXRhJiwgRWxlbWVudCYsIGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdDsK
KyAgICBFbGVtZW50KiBzZWxlY3RvckNsb3Nlc3QoY29uc3QgU2VsZWN0b3JEYXRhJiwgRWxlbWVu
dCYsIGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdDsKIAogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZShDb250YWluZXJOb2Rl
JiByb290Tm9kZSwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJikgY29u
c3Q7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVj
dXRlRmFzdFBhdGhGb3JJZFNlbGVjdG9yKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBj
b25zdCBTZWxlY3RvckRhdGEmLCBjb25zdCBDU1NTZWxlY3RvciogaWRTZWxlY3RvciwgdHlwZW5h
bWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7CkBAIC0xMTYsNiArMTE4
LDcgQEAgY2xhc3MgU2VsZWN0b3JRdWVyeSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2VsZWN0
b3JRdWVyeShDU1NTZWxlY3Rvckxpc3QmJik7CiAgICAgYm9vbCBtYXRjaGVzKEVsZW1lbnQmKSBj
b25zdDsKKyAgICBFbGVtZW50KiBjbG9zZXN0KEVsZW1lbnQmKSBjb25zdDsKICAgICBSZWZQdHI8
Tm9kZUxpc3Q+IHF1ZXJ5QWxsKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdDsKICAgICBF
bGVtZW50KiBxdWVyeUZpcnN0KENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdDsKIApAQCAt
MTM5LDYgKzE0MiwxMSBAQCBpbmxpbmUgYm9vbCBTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKEVsZW1l
bnQmIGVsZW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VsZWN0b3JzLm1hdGNoZXMoZWxlbWVu
dCk7CiB9CiAKK2lubGluZSBFbGVtZW50KiBTZWxlY3RvclF1ZXJ5OjpjbG9zZXN0KEVsZW1lbnQm
IGVsZW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0b3JzLmNsb3Nlc3QoZWxlbWVu
dCk7Cit9CisKIGlubGluZSBSZWZQdHI8Tm9kZUxpc3Q+IFNlbGVjdG9yUXVlcnk6OnF1ZXJ5QWxs
KENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdAogewogICAgIHJldHVybiBtX3NlbGVjdG9y
cy5xdWVyeUFsbChyb290Tm9kZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDJkMTY4ZmE0MDNmOWViZGNhZTA4OTdjZGZj
MzgyMmVmMWNlYjBlZS4uODA2Zjc5YmM5ZjUyMTEzNTYwMzQxNjgwM2YxYmIxMjkzZmVlZmNjNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTA0ICBEaGkgQXVycmFobWFuICA8ZGlvcmFo
bWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEVsZW1lbnQuY2xvc2VzdCgp
IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3
NDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHRlc3QgY2FzZXMgZm9yIEVsZW1lbnQuY2xvc2VzdCgpIEFQSQorCisgICAgICAgICogZmFzdC9z
ZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA5LTI2
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIE1hcmsg
ZmFzdC9zZWxlY3RvcnMvbnRoLWNoaWxkLW9mLWJhc2ljcyBhcyBTbG93CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LWdlbmVyYWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFsLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MGM2YjIyNjgyMDhmODdkNmVmMDdlZmExMzdmMWY4ZGZlMWIxM2Q2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYxIEBACitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGUg
Y2xvc2VzdCgpIEFQSSB3b3JrcyBjb3JyZWN0bHkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIiN0aGVUYXJnZXQiKSBpcyB0aGVUYXJnZXQK
K1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoImFuY2VzdG9yIikgaXMgYW5jZXN0b3IKK1BBU1MgdGhl
VGFyZ2V0LmNsb3Nlc3QoInRyaWJlIGFuY2VzdG9yIikgaXMgYW5jZXN0b3IKK1BBU1MgdGhlVGFy
Z2V0LmNsb3Nlc3QoInRyaWJlID4gYW5jZXN0b3IiKSBpcyBhbmNlc3RvcgorUEFTUyB0aGVUYXJn
ZXQuY2xvc2VzdCgicmVhbG0gKyBhbmNlc3RvciIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdl
dC5jbG9zZXN0KCJyZWFsbSB+IGFuY2VzdG9yIikgaXMgYW5jZXN0b3IKK1BBU1MgdGhlVGFyZ2V0
LmNsb3Nlc3QoInRyaWJlLCBhbmNlc3RvciIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdldC5j
bG9zZXN0KCJhbmNlc3RvciwgdHJpYmUiKSBpcyBhbmNlc3RvcgorUEFTUyB0aGVUYXJnZXQuY2xv
c2VzdCgidHJpYmUgcmVhbG0iKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ0cmli
ZSByZWFsbSB0aHJvbmUiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSBy
ZWFsbSBhbmNlc3RvciIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoInJlYWxtID4g
YW5jZXN0b3IiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ0aHJvbmUgKyBhbmNl
c3RvciIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoInRocm9uZSB+IGFuY2VzdG9y
IikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiLmNsYXNzaWMiKSBpcyBhbmNlc3Rv
cgorRkFJTCB0aGVUYXJnZXQuY2xvc2VzdCgiam9obiIpIHNob3VsZCBiZSBbb2JqZWN0IEhUTUxV
bmtub3duRWxlbWVudF0uIFdhcyBudWxsLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiZG9lIikg
aXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiYW5jZXN0b3JbbmFtZT1vbGRdIikgaXMg
YW5jZXN0b3IKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoImFuY2VzdG9yW25hbWU9eW91bmddIikg
aXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdChudWxsKSBpcyBudWxsCitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KHVuZGVmaW5lZCkgaXMgbnVsbAorUEFTUyBzb3VyLmNsb3Nlc3QoImxlbW9u
IikgaXMgc291cgorUEFTUyBzb3VyLmNsb3Nlc3QoImEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGki
KSBpcyBpCitQQVNTIHNvdXIuY2xvc2VzdCgiYSwgYiwgYywgZCwgZSwgZiwgZywgaCIpIGlzIGgK
K1BBU1Mgc291ci5jbG9zZXN0KCJhLCBiLCBjLCBkLCBlLCBmLCBnIikgaXMgZworUEFTUyBzb3Vy
LmNsb3Nlc3QoImEsIGIsIGMsIGQsIGUsIGYiKSBpcyBmCitQQVNTIHNvdXIuY2xvc2VzdCgiYSwg
YiwgYywgZCwgZSIpIGlzIGUKK1BBU1Mgc291ci5jbG9zZXN0KCJhLCBiLCBjIikgaXMgYworUEFT
UyBzb3VyLmNsb3Nlc3QoImEsIGIiKSBpcyBiCitQQVNTIHNvdXIuY2xvc2VzdCgiYSIpIGlzIGEK
K1BBU1Mgc291ci5jbG9zZXN0KCJpLCBoLCBnLCBmLCBlLCBkLCBjLCBiLCBhIikgaXMgaQorUEFT
UyBzb3VyLmNsb3Nlc3QoImgsIGcsIGYsIGUsIGQsIGMsIGIsIGEiKSBpcyBoCitQQVNTIHNvdXIu
Y2xvc2VzdCgiZywgZiwgZSwgZCwgYywgYiwgYSIpIGlzIGcKK1BBU1Mgc291ci5jbG9zZXN0KCJm
LCBlLCBkLCBjLCBiLCBhIikgaXMgZgorUEFTUyBzb3VyLmNsb3Nlc3QoImUsIGQsIGMsIGIsIGEi
KSBpcyBlCitQQVNTIHNvdXIuY2xvc2VzdCgiZCwgYywgYiwgYSIpIGlzIGQKK1BBU1Mgc291ci5j
bG9zZXN0KCJjLCBiLCBhIikgaXMgYworUEFTUyBzb3VyLmNsb3Nlc3QoImIsIGEiKSBpcyBiCitQ
QVNTIHNvdXIuY2xvc2VzdCgiYSIpIGlzIGEKK1BBU1MgZG9jdW1lbnQuY2xvc2VzdCBpcyB1bmRl
ZmluZWQKK1BBU1MgZG9jdW1lbnQuY2xvc2VzdCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnZG9jdW1lbnQuY2xvc2Vz
dCgpJykuCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCIiKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0
aGVUYXJnZXQuY2xvc2VzdCgiLjEyMyIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJy
b3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCIgICAgIikgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mg
dGhlVGFyZ2V0LmNsb3Nlc3QoIikiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9y
OiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiKCIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCIoKSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERP
TSBFeGNlcHRpb24gMTIuCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJeX14iKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJn
ZXQuY2xvc2VzdCgieyIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBF
eGNlcHRpb24gMTIuCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ9IikgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgdGhlVGFyZ2V0LmNs
b3Nlc3QoInt9IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAxMi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LWdlbmVy
YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFhZTMzNWJlM2ZkYmE2MWFlYzFmNzA2MTJhMjQxODE4ZWNiNzIzNGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LWdlbmVy
YWwuaHRtbApAQCAtMCwwICsxLDEyMiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKwk8dHJpYmU+CisJCTxyZWFsbT4K
KwkJCTx0aHJvbmU+PC90aHJvbmU+CisJCQk8YW5jZXN0b3IgaWQ9ImRvZSIgbmFtZT0ieW91bmci
IGNsYXNzPSJjbGFzc2ljIj4KKwkJCQk8dGFyZ2V0IGlkPSJhbm90aGVyVGFyZ2V0Ij48L3Rhcmdl
dD4KKwkJCTwvYW5jZXN0b3I+CisJCTwvcmVhbG0+CisJCTxhbmNlc3RvciBpZD0iam9obiIgbmFt
ZT0ib2xkIiBjbGFzcz0iY2xhc3NpYyI+CisJCSAgICA8c2libGluZz48L3NpYmxpbmc+CisJCSAg
ICA8dGFyZ2V0IGlkPSJ0aGVUYXJnZXQiIHdlYmtpdD0iZmFzdCI+PC90YXJnZXQ+CisJICAgIDwv
YW5jZXN0b3I+CisgICAgPC90cmliZT4KKyAgICA8Zm9vPgorICAgIAk8YmFyPgorICAgIAkJPGEg
aWQ9ImEiPgorICAgIAkJCTxiIGlkPSJiIj4KKyAgICAJCQkJPGMgaWQ9ImMiPgorICAgIAkJCQkJ
PGQgaWQ9ImQiPgorICAgIAkJCQkJCTxlIGlkPSJlIj4KKyAgICAJCQkJCQkJPGYgaWQ9ImYiPgor
ICAgIAkJCQkJCQkJPGcgaWQ9ImciPgorICAgIAkJCQkJCQkJCTxoIGlkPSJoIj4KKyAgICAJCQkJ
CQkJCQkJPGkgaWQ9ImkiPgorICAgIAkJCQkJCQkJCQkJPGxlbW9uIGlkPSJzb3VyIj48L2xlbW9u
PgorICAgIAkJCQkJCQkJCQk8L2k+CisgICAgCQkJCQkJCQkJPC9oPgorICAgIAkJCQkJCQkJPC9n
PgorICAgIAkJCQkJCQk8Zi8+CisgICAgCQkJCQkJPGUvPgorICAgIAkJCQkJPC9kPgorICAgIAkJ
CQk8Yy8+CisgICAgCQkJPC9iPgorICAgIAkJPC9hPgorICAgIAk8L2Jhcj4KKyAgICA8L2Zvbz4K
KzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhl
IGNsb3Nlc3QoKSBBUEkgd29ya3MgY29ycmVjdGx5Jyk7CisKK3ZhciB0aGVUYXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGhlVGFyZ2V0Jyk7Cit2YXIgYW5jZXN0b3IgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnam9obicpOwordmFyIHNvdXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc291cicpOwordmFyIGEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYScpOwordmFy
IGIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpOwordmFyIGMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYycpOwordmFyIGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZCcpOwor
dmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZScpOwordmFyIGYgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZicpOwordmFyIGcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZycp
OwordmFyIGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaCcpOwordmFyIGkgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaScpOworCitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoIiN0
aGVUYXJnZXQiKScsICd0aGVUYXJnZXQnKTsKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgi
YW5jZXN0b3IiKScsICdhbmNlc3RvcicpOworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0
cmliZSBhbmNlc3RvciIpJywgJ2FuY2VzdG9yJyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nl
c3QoInRyaWJlID4gYW5jZXN0b3IiKScsICdhbmNlc3RvcicpOworc2hvdWxkQmUoJ3RoZVRhcmdl
dC5jbG9zZXN0KCJyZWFsbSArIGFuY2VzdG9yIiknLCAnYW5jZXN0b3InKTsKK3Nob3VsZEJlKCd0
aGVUYXJnZXQuY2xvc2VzdCgicmVhbG0gfiBhbmNlc3RvciIpJywgJ2FuY2VzdG9yJyk7CitzaG91
bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoInRyaWJlLCBhbmNlc3RvciIpJywgJ2FuY2VzdG9yJyk7
CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoImFuY2VzdG9yLCB0cmliZSIpJywgJ2FuY2Vz
dG9yJyk7CisKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoInRyaWJlIHJlYWxtIikn
KTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoInRyaWJlIHJlYWxtIHRocm9uZSIp
Jyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSByZWFsbSBhbmNlc3Rv
ciIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJyZWFsbSA+IGFuY2VzdG9y
IiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoInRocm9uZSArIGFuY2VzdG9y
IiknKTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoInRocm9uZSB+IGFuY2VzdG9y
IiknKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCIuY2xhc3NpYyIpJywgJ2FuY2Vz
dG9yJyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoImpvaG4iKScsICdhbmNlc3Rvcicp
Oworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiZG9lIiknKTsKK3Nob3VsZEJlKCd0
aGVUYXJnZXQuY2xvc2VzdCgiYW5jZXN0b3JbbmFtZT1vbGRdIiknLCAnYW5jZXN0b3InKTsKK3No
b3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoImFuY2VzdG9yW25hbWU9eW91bmddIiknLCAn
YW5jZXN0b3InKTsKKworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdChudWxsKScpOwor
c2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCh1bmRlZmluZWQpJyk7CisKK3Nob3VsZEJl
KCdzb3VyLmNsb3Nlc3QoImxlbW9uIiknLCAnc291cicpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2Vz
dCgiYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSIpJywgJ2knKTsKK3Nob3VsZEJlKCdzb3VyLmNs
b3Nlc3QoImEsIGIsIGMsIGQsIGUsIGYsIGcsIGgiKScsICdoJyk7CitzaG91bGRCZSgnc291ci5j
bG9zZXN0KCJhLCBiLCBjLCBkLCBlLCBmLCBnIiknLCAnZycpOworc2hvdWxkQmUoJ3NvdXIuY2xv
c2VzdCgiYSwgYiwgYywgZCwgZSwgZiIpJywgJ2YnKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3Qo
ImEsIGIsIGMsIGQsIGUiKScsICdlJyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0KCJhLCBiLCBj
IiknLCAnYycpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiYSwgYiIpJywgJ2InKTsKK3Nob3Vs
ZEJlKCdzb3VyLmNsb3Nlc3QoImEiKScsICdhJyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0KCJp
LCBoLCBnLCBmLCBlLCBkLCBjLCBiLCBhIiknLCAnaScpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2Vz
dCgiaCwgZywgZiwgZSwgZCwgYywgYiwgYSIpJywgJ2gnKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nl
c3QoImcsIGYsIGUsIGQsIGMsIGIsIGEiKScsICdnJyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0
KCJmLCBlLCBkLCBjLCBiLCBhIiknLCAnZicpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiZSwg
ZCwgYywgYiwgYSIpJywgJ2UnKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImQsIGMsIGIsIGEi
KScsICdkJyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0KCJjLCBiLCBhIiknLCAnYycpOworc2hv
dWxkQmUoJ3NvdXIuY2xvc2VzdCgiYiwgYSIpJywgJ2InKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nl
c3QoImEiKScsICdhJyk7CisKK3Nob3VsZEJlKCdkb2N1bWVudC5jbG9zZXN0JywgJ3VuZGVmaW5l
ZCcpOworc2hvdWxkVGhyb3coJ2RvY3VtZW50LmNsb3Nlc3QoKScpOworc2hvdWxkVGhyb3coJ3Ro
ZVRhcmdldC5jbG9zZXN0KCknKTsKK3Nob3VsZFRocm93KCd0aGVUYXJnZXQuY2xvc2VzdCgiIikn
KTsKK3Nob3VsZFRocm93KCd0aGVUYXJnZXQuY2xvc2VzdCgiLjEyMyIpJyk7CitzaG91bGRUaHJv
dygndGhlVGFyZ2V0LmNsb3Nlc3QoIiAgICAiKScpOworc2hvdWxkVGhyb3coJ3RoZVRhcmdldC5j
bG9zZXN0KCIpIiknKTsKK3Nob3VsZFRocm93KCd0aGVUYXJnZXQuY2xvc2VzdCgiKCIpJyk7Citz
aG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3QoIigpIiknKTsKK3Nob3VsZFRocm93KCd0aGVU
YXJnZXQuY2xvc2VzdCgiXl9eIiknKTsKK3Nob3VsZFRocm93KCd0aGVUYXJnZXQuY2xvc2VzdCgi
eyIpJyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3QoIn0iKScpOworc2hvdWxkVGhy
b3coJ3RoZVRhcmdldC5jbG9zZXN0KCJ7fSIpJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1zY29wZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzQxMDJiNTk1ODRhMjBlOGExMjljMmY4MDIxMjAzNzQ1ZDhlNmU5ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2Nv
cGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRo
YXQgOnNjb3BlIHdvcmtzIGNvcnJlY3RseSB3aXRoIHRoZSBjbG9zZXN0KCkgQVBJLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3Bl
IikgaXMgdGhlVGFyZ2V0CitGQUlMIHRoZVRhcmdldC5jbG9zZXN0KCI6bm90KDpzY29wZSkiKSBz
aG91bGQgYmUgW29iamVjdCBIVE1MQm9keUVsZW1lbnRdLiBXYXMgbnVsbC4KK1BBU1MgdGhlVGFy
Z2V0LmNsb3Nlc3QoImJvZHkgOnNjb3BlIikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRhcmdldC5j
bG9zZXN0KCJib2R5PjpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2Vz
dCgic2libGluZyArIDpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2Vz
dCgic2libGluZyB+IDpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2Vz
dCgiI3RoZVRhcmdldDpzY29wZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2Vz
dCgiOnNjb3BlI3RoZVRhcmdldCIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2Vz
dCgiW3dlYmtpdF06c2NvcGUjdGhlVGFyZ2V0IikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRhcmdl
dC5jbG9zZXN0KCI6bm90KFt3ZWJraXQ9ZmFzdF0pOnNjb3BlI3RoZVRhcmdldCIpIGlzIG51bGwK
K1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRo
ZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgPiB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdl
dC5jbG9zZXN0KCI6c2NvcGUgKyB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9z
ZXN0KCI6c2NvcGUgfiB0YXJnZXQiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6
c2NvcGUgKiIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSA+ICoiKSBp
cyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgKyAqIikgaXMgbnVsbAorUEFT
UyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlIH4gKiIpIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ2MjZkNDg3ZmQwNTdm
OTQxM2VjZmYzYTFhOWViYWUxN2U5ZTQ2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorCTxzaWJsaW5nPjwvc2libGluZz4KKwk8dGFyZ2V0IGlkPSJ0aGVUYXJnZXQiIHdlYmtpdD0i
ZmFzdCI+PC90YXJnZXQ+Cis8L2JvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1RoaXMgdGVz
dCBtYWtlcyBzdXJlIHRoYXQgOnNjb3BlIHdvcmtzIGNvcnJlY3RseSB3aXRoIHRoZSBjbG9zZXN0
KCkgQVBJLicpOworCit2YXIgdGhlVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Ro
ZVRhcmdldCcpOwordmFyIGJvZHkgPSBkb2N1bWVudC5ib2R5OworCitzaG91bGRCZSgndGhlVGFy
Z2V0LmNsb3Nlc3QoIjpzY29wZSIpJywgJ3RoZVRhcmdldCcpOworc2hvdWxkQmUoJ3RoZVRhcmdl
dC5jbG9zZXN0KCI6bm90KDpzY29wZSkiKScsICdib2R5Jyk7CisKK3Nob3VsZEJlKCd0aGVUYXJn
ZXQuY2xvc2VzdCgiYm9keSA6c2NvcGUiKScsICd0aGVUYXJnZXQnKTsKK3Nob3VsZEJlKCd0aGVU
YXJnZXQuY2xvc2VzdCgiYm9keT46c2NvcGUiKScsICd0aGVUYXJnZXQnKTsKKworc2hvdWxkQmUo
J3RoZVRhcmdldC5jbG9zZXN0KCJzaWJsaW5nICsgOnNjb3BlIiknLCAndGhlVGFyZ2V0Jyk7Citz
aG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoInNpYmxpbmcgfiA6c2NvcGUiKScsICd0aGVUYXJn
ZXQnKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCIjdGhlVGFyZ2V0OnNjb3BlIikn
LCAndGhlVGFyZ2V0Jyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSN0aGVU
YXJnZXQiKScsICd0aGVUYXJnZXQnKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJb
d2Via2l0XTpzY29wZSN0aGVUYXJnZXQiKScsICd0aGVUYXJnZXQnKTsKK3Nob3VsZEJlTnVsbCgn
dGhlVGFyZ2V0LmNsb3Nlc3QoIjpub3QoW3dlYmtpdD1mYXN0XSk6c2NvcGUjdGhlVGFyZ2V0Iikn
KTsKKworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlIHRhcmdldCIpJyk7
CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgPiB0YXJnZXQiKScpOwor
c2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlICsgdGFyZ2V0IiknKTsKK3No
b3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSB+IHRhcmdldCIpJyk7CisKK3No
b3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSAqIiknKTsKK3Nob3VsZEJlTnVs
bCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSA+ICoiKScpOworc2hvdWxkQmVOdWxsKCd0aGVU
YXJnZXQuY2xvc2VzdCgiOnNjb3BlICsgKiIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5j
bG9zZXN0KCI6c2NvcGUgfiAqIiknKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239286</attachid>
            <date>2014-10-04 13:14:55 -0700</date>
            <delta_ts>2014-10-04 15:24:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137418-20141005031455.patch</filename>
            <type>text/plain</type>
            <size>19031</size>
            <attacher name="Dhi Aurrahman">diorahman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM0ODFjMDk1MWNlMzk2
OGEzZjkwM2U1NDMwMDAwYTY0NDRiNmUwYS4uNjE2NTZlOTJmMjRkY2Q0OTQzNTMxNTcwYjNmZDhl
ZjdiNjlkNWY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTEwLTA0ICBEaGkg
QXVycmFobWFuICA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IEVsZW1lbnQuY2xvc2VzdCgpIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM3NDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IEVsZW1lbnQuY2xvc2VzdCgpIEFQSSBhcyBzcGVjaWZp
ZWQgaW4gWzFdLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNk
b20tZWxlbWVudC1jbG9zZXN0CisKKyAgICAgICAgVGVzdHM6IGZhc3Qvc2VsZWN0b3JzL2Nsb3Nl
c3QtZ2VuZXJhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNj
b3BlLmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmNsb3Nlc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yQ2xvc2VzdCk6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpjbG9zZXN0KToKKyAgICAgICAgKiBkb20vU2Vs
ZWN0b3JRdWVyeS5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JRdWVyeTo6Y2xvc2VzdCk6
CisKIDIwMTQtMDktMjYgIENocmlzdG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN0b3AgdXNpbmcgbGVnYWN5IE5PREVfVFlQRV9DQVNUUygpIG1hY3JvIGZvciBIVE1M
IEVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNmE5Zjg3MDk4ZTZkNDcwNWU2NWJk
MTQ4NDRjMmQ0YWIzNWUzYjAxYi4uMzU5ZDM2YzcyZjYwMDdmYjEwMzgyNWVlNTJmYjE0MjM2M2Rh
NTFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjMyMSw2ICsyMzIxLDE0IEBAIGJvb2wg
RWxlbWVudDo6bWF0Y2hlcyhjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gc2VsZWN0b3JRdWVyeSAmJiBzZWxlY3RvclF1ZXJ5LT5tYXRjaGVzKCp0
aGlzKTsKIH0KIAorRWxlbWVudCogRWxlbWVudDo6Y2xvc2VzdChjb25zdCBTdHJpbmcmIHNlbGVj
dG9yLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBTZWxlY3RvclF1ZXJ5KiBzZWxlY3RvclF1
ZXJ5ID0gZG9jdW1lbnQoKS5zZWxlY3RvclF1ZXJ5Rm9yU3RyaW5nKHNlbGVjdG9yLCBlYyk7Cisg
ICAgaWYgKHNlbGVjdG9yUXVlcnkpCisgICAgICAgIHJldHVybiBzZWxlY3RvclF1ZXJ5LT5jbG9z
ZXN0KCp0aGlzKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogYm9vbCBFbGVtZW50OjpzaG91
bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaAppbmRleCA1MjM5MzU1NDRhZTY0ZGVlNDE1MDg2MWI5ZmJjYzg2NmI5MTE1OTM4
Li45ODA2M2M2ZGQ4ZTc1ZTk5MGIwZmQ1ZTY5YzQ3OTFhNzgzMWIxMDJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKQEAgLTQ1Miw2ICs0NTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgbWF0
Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3Q7CiAgICAgYm9vbCBtYXRjaGVzKGNvbnN0
IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHRpb25Db2RlJik7CisgICAgRWxlbWVudCogY2xvc2Vz
dChjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29uc3Q7CiAKICAgICBET01Ub2tlbkxp
c3QmIGNsYXNzTGlzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDdmMTU4Njk1NWVhY2Fj
MTM4NmFhZGRlMWQxYjJmYzIwMzk2ZjIxODkuLmJiOTMyN2MyY2MxZmZlZDY5ZGEzYmVkMGRkYTc2
ZGRlMDYyMmVhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTEyMSw2ICsxMjEsNyBAQAog
ICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoRE9NU3RyaW5n
IHNlbGVjdG9ycyk7CiAKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIG1hdGNoZXMoW0Rl
ZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0b3JzKTsKKyAgICBbUmFp
c2VzRXhjZXB0aW9uXSBFbGVtZW50IGNsb3Nlc3QoRE9NU3RyaW5nIHNlbGVjdG9ycyk7ICAgIAog
ICAgIFtJbXBsZW1lbnRlZEFzPW1hdGNoZXMsIFJhaXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiB3ZWJr
aXRNYXRjaGVzU2VsZWN0b3IoW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBET01TdHJpbmcg
c2VsZWN0b3JzKTsKIAogICAgIC8vIEVsZW1lbnRUcmF2ZXJzYWwgQVBJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VsZWN0b3JRdWVyeS5jcHAKaW5kZXggNWFiN2E2YTFkZjlkMDg2NDljMGM5OTk2N2Q3Zjc5MDVi
MDgyZDQ0NS4uNGU5MjUwZmMwYzFkNTY1ZjMxMjBmNmMwZTJjOGE3MTE2YTk5YTczNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcApAQCAtMTIwLDYgKzEyMCwxNyBAQCBpbmxpbmUg
Ym9vbCBTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3Rvck1hdGNoZXMoY29uc3QgU2VsZWN0b3JEYXRh
JiBzZWxlY3RvckRhdGEsCiAgICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3Rv
ckRhdGEuc2VsZWN0b3IsICZlbGVtZW50LCBzZWxlY3RvckNoZWNraW5nQ29udGV4dCk7CiB9CiAK
K2lubGluZSBFbGVtZW50KiBTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3RvckNsb3Nlc3QoY29uc3Qg
U2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdAoreworICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3Rv
ckNoZWNrZXIoZWxlbWVudC5kb2N1bWVudCgpKTsKKyAgICBTZWxlY3RvckNoZWNrZXI6OkNoZWNr
aW5nQ29udGV4dCBzZWxlY3RvckNoZWNraW5nQ29udGV4dChTZWxlY3RvckNoZWNrZXI6Ok1vZGU6
OlF1ZXJ5aW5nUnVsZXMpOworICAgIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9v
dE5vZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxwdHIgOiAmcm9vdE5vZGU7CisgICAgRWxlbWVu
dCogY3VycmVudE5vZGUgPSAmZWxlbWVudDsKKyAgICBpZiAoIXNlbGVjdG9yQ2hlY2tlci5tYXRj
aChzZWxlY3RvckRhdGEuc2VsZWN0b3IsIGN1cnJlbnROb2RlLCBzZWxlY3RvckNoZWNraW5nQ29u
dGV4dCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjdXJyZW50Tm9kZTsK
K30KKwogYm9vbCBTZWxlY3RvckRhdGFMaXN0OjptYXRjaGVzKEVsZW1lbnQmIHRhcmdldEVsZW1l
bnQpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgc2VsZWN0b3JDb3VudCA9IG1fc2VsZWN0b3JzLnNp
emUoKTsKQEAgLTEzMCw2ICsxNDEsMjAgQEAgYm9vbCBTZWxlY3RvckRhdGFMaXN0OjptYXRjaGVz
KEVsZW1lbnQmIHRhcmdldEVsZW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitF
bGVtZW50KiBTZWxlY3RvckRhdGFMaXN0OjpjbG9zZXN0KEVsZW1lbnQmIHRhcmdldEVsZW1lbnQp
IGNvbnN0Cit7CisgICAgRWxlbWVudCogY3VycmVudE5vZGUgPSAmdGFyZ2V0RWxlbWVudDsKKyAg
ICBkbyB7CisgICAgICAgIGZvciAoYXV0byYgc2VsZWN0b3IgOiBtX3NlbGVjdG9ycykgeworICAg
ICAgICAgICAgRWxlbWVudCogY2FuZGlkYXRlRWxlbWVudCA9IHNlbGVjdG9yQ2xvc2VzdChzZWxl
Y3RvciwgKmN1cnJlbnROb2RlLCB0YXJnZXRFbGVtZW50KTsKKyAgICAgICAgICAgIGlmIChjYW5k
aWRhdGVFbGVtZW50KQorICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGVFbGVtZW50Owor
ICAgICAgICB9CisgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnBhcmVudEVsZW1l
bnQoKTsKKyAgICB9IHdoaWxlIChjdXJyZW50Tm9kZSk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKIHN0cnVjdCBBbGxFbGVtZW50RXh0cmFjdG9yU2VsZWN0b3JRdWVyeVRyYWl0IHsKICAgICB0
eXBlZGVmIFZlY3RvcjxSZWY8RWxlbWVudD4+IE91dHB1dFR5cGU7CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgc2hvdWxkT25seU1hdGNoRmlyc3RFbGVtZW50ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaAppbmRleCBhMGY0YmJjNTQ5ODE4YjRjY2U0NjE3YTk1OTEyODAzODViY2Fi
ZWQ2Li42MWYwNzdhN2Q5ODVmMTgyYjNlOWZmNDVhZDgxOWU5YzdmNTA0YTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3RvclF1ZXJ5LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgU2VsZWN0b3JEYXRh
TGlzdCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgU2VsZWN0b3JEYXRhTGlzdChjb25zdCBDU1NT
ZWxlY3Rvckxpc3QmKTsKICAgICBib29sIG1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OworICAgIEVs
ZW1lbnQqIGNsb3Nlc3QoRWxlbWVudCYpIGNvbnN0OwogICAgIFJlZlB0cjxOb2RlTGlzdD4gcXVl
cnlBbGwoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0OwogICAgIEVsZW1lbnQqIHF1ZXJ5
Rmlyc3QoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0OwogCkBAIC03OSw2ICs4MCw3IEBA
IHByaXZhdGU6CiAgICAgfTsKIAogICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVj
dG9yRGF0YSYsIEVsZW1lbnQmLCBjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7
CisgICAgRWxlbWVudCogc2VsZWN0b3JDbG9zZXN0KGNvbnN0IFNlbGVjdG9yRGF0YSYsIEVsZW1l
bnQmLCBjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGUoQ29udGFpbmVyTm9k
ZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNv
bnN0OwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhl
Y3V0ZUZhc3RQYXRoRm9ySWRTZWxlY3Rvcihjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwg
Y29uc3QgU2VsZWN0b3JEYXRhJiwgY29uc3QgQ1NTU2VsZWN0b3IqIGlkU2VsZWN0b3IsIHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0OwpAQCAtMTE2LDYgKzEx
OCw3IEBAIGNsYXNzIFNlbGVjdG9yUXVlcnkgewogcHVibGljOgogICAgIGV4cGxpY2l0IFNlbGVj
dG9yUXVlcnkoQ1NTU2VsZWN0b3JMaXN0JiYpOwogICAgIGJvb2wgbWF0Y2hlcyhFbGVtZW50Jikg
Y29uc3Q7CisgICAgRWxlbWVudCogY2xvc2VzdChFbGVtZW50JikgY29uc3Q7CiAgICAgUmVmUHRy
PE5vZGVMaXN0PiBxdWVyeUFsbChDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAgICAg
RWxlbWVudCogcXVlcnlGaXJzdChDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3Q7CiAKQEAg
LTEzOSw2ICsxNDIsMTEgQEAgaW5saW5lIGJvb2wgU2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhFbGVt
ZW50JiBlbGVtZW50KSBjb25zdAogICAgIHJldHVybiBtX3NlbGVjdG9ycy5tYXRjaGVzKGVsZW1l
bnQpOwogfQogCitpbmxpbmUgRWxlbWVudCogU2VsZWN0b3JRdWVyeTo6Y2xvc2VzdChFbGVtZW50
JiBlbGVtZW50KSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdG9ycy5jbG9zZXN0KGVsZW1l
bnQpOworfQorCiBpbmxpbmUgUmVmUHRyPE5vZGVMaXN0PiBTZWxlY3RvclF1ZXJ5OjpxdWVyeUFs
bChDb250YWluZXJOb2RlJiByb290Tm9kZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zZWxlY3Rv
cnMucXVlcnlBbGwocm9vdE5vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQyZDE2OGZhNDAzZjllYmRjYWUwODk3Y2Rm
YzM4MjJlZjFjZWIwZWUuLjgwNmY3OWJjOWY1MjExMzU2MDM0MTY4MDNmMWJiMTI5M2ZlZWZjYzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0xMC0wNCAgRGhpIEF1cnJhaG1hbiAgPGRpb3Jh
aG1hbkByb2NreWJhcnMuY29tPgorCisgICAgICAgIEltcGxlbWVudCBFbGVtZW50LmNsb3Nlc3Qo
KSBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NzQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0ZXN0IGNhc2VzIGZvciBFbGVtZW50LmNsb3Nlc3QoKSBBUEkKKworICAgICAgICAqIGZhc3Qv
c2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1zY29wZS5odG1sOiBBZGRlZC4KKwogMjAxNC0wOS0y
NiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBNYXJr
IGZhc3Qvc2VsZWN0b3JzL250aC1jaGlsZC1vZi1iYXNpY3MgYXMgU2xvdwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5lcmFsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJhbC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTBjNmIyMjY4MjA4Zjg3ZDZlZjA3ZWZhMTM3ZjFmOGRmZTFiMTNkNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3QtZ2VuZXJh
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MSBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhl
IGNsb3Nlc3QoKSBBUEkgd29ya3MgY29ycmVjdGx5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCIjdGhlVGFyZ2V0IikgaXMgdGhlVGFyZ2V0
CitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJhbmNlc3RvciIpIGlzIGFuY2VzdG9yCitQQVNTIHRo
ZVRhcmdldC5jbG9zZXN0KCJ0cmliZSBhbmNlc3RvciIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCJ0cmliZSA+IGFuY2VzdG9yIikgaXMgYW5jZXN0b3IKK1BBU1MgdGhlVGFy
Z2V0LmNsb3Nlc3QoInJlYWxtICsgYW5jZXN0b3IiKSBpcyBhbmNlc3RvcgorUEFTUyB0aGVUYXJn
ZXQuY2xvc2VzdCgicmVhbG0gfiBhbmNlc3RvciIpIGlzIGFuY2VzdG9yCitQQVNTIHRoZVRhcmdl
dC5jbG9zZXN0KCJ0cmliZSwgYW5jZXN0b3IiKSBpcyBhbmNlc3RvcgorUEFTUyB0aGVUYXJnZXQu
Y2xvc2VzdCgiYW5jZXN0b3IsIHRyaWJlIikgaXMgYW5jZXN0b3IKK1BBU1MgdGhlVGFyZ2V0LmNs
b3Nlc3QoInRyaWJlIHJlYWxtIikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgidHJp
YmUgcmVhbG0gdGhyb25lIikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgidHJpYmUg
cmVhbG0gYW5jZXN0b3IiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJyZWFsbSA+
IGFuY2VzdG9yIikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgidGhyb25lICsgYW5j
ZXN0b3IiKSBpcyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJ0aHJvbmUgfiBhbmNlc3Rv
ciIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIi5jbGFzc2ljIikgaXMgYW5jZXN0
b3IKK0ZBSUwgdGhlVGFyZ2V0LmNsb3Nlc3QoImpvaG4iKSBzaG91bGQgYmUgW29iamVjdCBIVE1M
VW5rbm93bkVsZW1lbnRdLiBXYXMgbnVsbC4KK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoImRvZSIp
IGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoImFuY2VzdG9yW25hbWU9b2xkXSIpIGlz
IGFuY2VzdG9yCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCJhbmNlc3RvcltuYW1lPXlvdW5nXSIp
IGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QobnVsbCkgaXMgbnVsbAorUEFTUyB0aGVU
YXJnZXQuY2xvc2VzdCh1bmRlZmluZWQpIGlzIG51bGwKK1BBU1Mgc291ci5jbG9zZXN0KCJsZW1v
biIpIGlzIHNvdXIKK1BBU1Mgc291ci5jbG9zZXN0KCJhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBp
IikgaXMgaQorUEFTUyBzb3VyLmNsb3Nlc3QoImEsIGIsIGMsIGQsIGUsIGYsIGcsIGgiKSBpcyBo
CitQQVNTIHNvdXIuY2xvc2VzdCgiYSwgYiwgYywgZCwgZSwgZiwgZyIpIGlzIGcKK1BBU1Mgc291
ci5jbG9zZXN0KCJhLCBiLCBjLCBkLCBlLCBmIikgaXMgZgorUEFTUyBzb3VyLmNsb3Nlc3QoImEs
IGIsIGMsIGQsIGUiKSBpcyBlCitQQVNTIHNvdXIuY2xvc2VzdCgiYSwgYiwgYyIpIGlzIGMKK1BB
U1Mgc291ci5jbG9zZXN0KCJhLCBiIikgaXMgYgorUEFTUyBzb3VyLmNsb3Nlc3QoImEiKSBpcyBh
CitQQVNTIHNvdXIuY2xvc2VzdCgiaSwgaCwgZywgZiwgZSwgZCwgYywgYiwgYSIpIGlzIGkKK1BB
U1Mgc291ci5jbG9zZXN0KCJoLCBnLCBmLCBlLCBkLCBjLCBiLCBhIikgaXMgaAorUEFTUyBzb3Vy
LmNsb3Nlc3QoImcsIGYsIGUsIGQsIGMsIGIsIGEiKSBpcyBnCitQQVNTIHNvdXIuY2xvc2VzdCgi
ZiwgZSwgZCwgYywgYiwgYSIpIGlzIGYKK1BBU1Mgc291ci5jbG9zZXN0KCJlLCBkLCBjLCBiLCBh
IikgaXMgZQorUEFTUyBzb3VyLmNsb3Nlc3QoImQsIGMsIGIsIGEiKSBpcyBkCitQQVNTIHNvdXIu
Y2xvc2VzdCgiYywgYiwgYSIpIGlzIGMKK1BBU1Mgc291ci5jbG9zZXN0KCJiLCBhIikgaXMgYgor
UEFTUyBzb3VyLmNsb3Nlc3QoImEiKSBpcyBhCitQQVNTIGRvY3VtZW50LmNsb3Nlc3QgaXMgdW5k
ZWZpbmVkCitQQVNTIGRvY3VtZW50LmNsb3Nlc3QoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2RvY3VtZW50LmNsb3Nl
c3QoKScpLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiIikgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1Mg
dGhlVGFyZ2V0LmNsb3Nlc3QoIi4xMjMiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVy
cm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiICAgICIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNT
IHRoZVRhcmdldC5jbG9zZXN0KCIpIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJv
cjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIigiKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVU
YXJnZXQuY2xvc2VzdCgiKCkiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBE
T00gRXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiXl9eIikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgdGhlVGFy
Z2V0LmNsb3Nlc3QoInsiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00g
RXhjZXB0aW9uIDEyLgorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgifSIpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCitQQVNTIHRoZVRhcmdldC5j
bG9zZXN0KCJ7fSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNl
cHRpb24gMTIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5l
cmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LWdlbmVyYWwuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYWUzMzViZTNmZGJhNjFhZWMxZjcwNjEyYTI0MTgxOGVjYjcyMzRmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1nZW5l
cmFsLmh0bWwKQEAgLTAsMCArMSwxMjIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisJPHRyaWJlPgorCQk8cmVhbG0+
CisJCQk8dGhyb25lPjwvdGhyb25lPgorCQkJPGFuY2VzdG9yIGlkPSJkb2UiIG5hbWU9InlvdW5n
IiBjbGFzcz0iY2xhc3NpYyI+CisJCQkJPHRhcmdldCBpZD0iYW5vdGhlclRhcmdldCI+PC90YXJn
ZXQ+CisJCQk8L2FuY2VzdG9yPgorCQk8L3JlYWxtPgorCQk8YW5jZXN0b3IgaWQ9ImpvaG4iIG5h
bWU9Im9sZCIgY2xhc3M9ImNsYXNzaWMiPgorCQkgICAgPHNpYmxpbmc+PC9zaWJsaW5nPgorCQkg
ICAgPHRhcmdldCBpZD0idGhlVGFyZ2V0IiB3ZWJraXQ9ImZhc3QiPjwvdGFyZ2V0PgorCSAgICA8
L2FuY2VzdG9yPgorICAgIDwvdHJpYmU+CisgICAgPGZvbz4KKyAgICAJPGJhcj4KKyAgICAJCTxh
IGlkPSJhIj4KKyAgICAJCQk8YiBpZD0iYiI+CisgICAgCQkJCTxjIGlkPSJjIj4KKyAgICAJCQkJ
CTxkIGlkPSJkIj4KKyAgICAJCQkJCQk8ZSBpZD0iZSI+CisgICAgCQkJCQkJCTxmIGlkPSJmIj4K
KyAgICAJCQkJCQkJCTxnIGlkPSJnIj4KKyAgICAJCQkJCQkJCQk8aCBpZD0iaCI+CisgICAgCQkJ
CQkJCQkJCTxpIGlkPSJpIj4KKyAgICAJCQkJCQkJCQkJCTxsZW1vbiBpZD0ic291ciI+PC9sZW1v
bj4KKyAgICAJCQkJCQkJCQkJPC9pPgorICAgIAkJCQkJCQkJCTwvaD4KKyAgICAJCQkJCQkJCTwv
Zz4KKyAgICAJCQkJCQkJPGYvPgorICAgIAkJCQkJCTxlLz4KKyAgICAJCQkJCTwvZD4KKyAgICAJ
CQkJPGMvPgorICAgIAkJCTwvYj4KKyAgICAJCTwvYT4KKyAgICAJPC9iYXI+CisgICAgPC9mb28+
Cis8L2JvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRo
ZSBjbG9zZXN0KCkgQVBJIHdvcmtzIGNvcnJlY3RseScpOworCit2YXIgdGhlVGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoZVRhcmdldCcpOwordmFyIGFuY2VzdG9yID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2pvaG4nKTsKK3ZhciBzb3VyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3NvdXInKTsKK3ZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2EnKTsKK3Zh
ciBiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2InKTsKK3ZhciBjID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2MnKTsKK3ZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2QnKTsK
K3ZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2UnKTsKK3ZhciBmID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2YnKTsKK3ZhciBnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2cn
KTsKK3ZhciBoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2gnKTsKK3ZhciBpID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2knKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCIj
dGhlVGFyZ2V0IiknLCAndGhlVGFyZ2V0Jyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3Qo
ImFuY2VzdG9yIiknLCAnYW5jZXN0b3InKTsKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgi
dHJpYmUgYW5jZXN0b3IiKScsICdhbmNlc3RvcicpOworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9z
ZXN0KCJ0cmliZSA+IGFuY2VzdG9yIiknLCAnYW5jZXN0b3InKTsKK3Nob3VsZEJlKCd0aGVUYXJn
ZXQuY2xvc2VzdCgicmVhbG0gKyBhbmNlc3RvciIpJywgJ2FuY2VzdG9yJyk7CitzaG91bGRCZSgn
dGhlVGFyZ2V0LmNsb3Nlc3QoInJlYWxtIH4gYW5jZXN0b3IiKScsICdhbmNlc3RvcicpOworc2hv
dWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSwgYW5jZXN0b3IiKScsICdhbmNlc3Rvcicp
Oworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJhbmNlc3RvciwgdHJpYmUiKScsICdhbmNl
c3RvcicpOworCitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSByZWFsbSIp
Jyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0cmliZSByZWFsbSB0aHJvbmUi
KScpOworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgidHJpYmUgcmVhbG0gYW5jZXN0
b3IiKScpOworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgicmVhbG0gPiBhbmNlc3Rv
ciIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0aHJvbmUgKyBhbmNlc3Rv
ciIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJ0aHJvbmUgfiBhbmNlc3Rv
ciIpJyk7CisKK3Nob3VsZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiLmNsYXNzaWMiKScsICdhbmNl
c3RvcicpOworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJqb2huIiknLCAnYW5jZXN0b3In
KTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoImRvZSIpJyk7CitzaG91bGRCZSgn
dGhlVGFyZ2V0LmNsb3Nlc3QoImFuY2VzdG9yW25hbWU9b2xkXSIpJywgJ2FuY2VzdG9yJyk7Citz
aG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJhbmNlc3RvcltuYW1lPXlvdW5nXSIpJywg
J2FuY2VzdG9yJyk7CisKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QobnVsbCknKTsK
K3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QodW5kZWZpbmVkKScpOworCitzaG91bGRC
ZSgnc291ci5jbG9zZXN0KCJsZW1vbiIpJywgJ3NvdXInKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nl
c3QoImEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGkiKScsICdpJyk7CitzaG91bGRCZSgnc291ci5j
bG9zZXN0KCJhLCBiLCBjLCBkLCBlLCBmLCBnLCBoIiknLCAnaCcpOworc2hvdWxkQmUoJ3NvdXIu
Y2xvc2VzdCgiYSwgYiwgYywgZCwgZSwgZiwgZyIpJywgJ2cnKTsKK3Nob3VsZEJlKCdzb3VyLmNs
b3Nlc3QoImEsIGIsIGMsIGQsIGUsIGYiKScsICdmJyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0
KCJhLCBiLCBjLCBkLCBlIiknLCAnZScpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiYSwgYiwg
YyIpJywgJ2MnKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImEsIGIiKScsICdiJyk7CitzaG91
bGRCZSgnc291ci5jbG9zZXN0KCJhIiknLCAnYScpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgi
aSwgaCwgZywgZiwgZSwgZCwgYywgYiwgYSIpJywgJ2knKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nl
c3QoImgsIGcsIGYsIGUsIGQsIGMsIGIsIGEiKScsICdoJyk7CitzaG91bGRCZSgnc291ci5jbG9z
ZXN0KCJnLCBmLCBlLCBkLCBjLCBiLCBhIiknLCAnZycpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2Vz
dCgiZiwgZSwgZCwgYywgYiwgYSIpJywgJ2YnKTsKK3Nob3VsZEJlKCdzb3VyLmNsb3Nlc3QoImUs
IGQsIGMsIGIsIGEiKScsICdlJyk7CitzaG91bGRCZSgnc291ci5jbG9zZXN0KCJkLCBjLCBiLCBh
IiknLCAnZCcpOworc2hvdWxkQmUoJ3NvdXIuY2xvc2VzdCgiYywgYiwgYSIpJywgJ2MnKTsKK3No
b3VsZEJlKCdzb3VyLmNsb3Nlc3QoImIsIGEiKScsICdiJyk7CitzaG91bGRCZSgnc291ci5jbG9z
ZXN0KCJhIiknLCAnYScpOworCitzaG91bGRCZSgnZG9jdW1lbnQuY2xvc2VzdCcsICd1bmRlZmlu
ZWQnKTsKK3Nob3VsZFRocm93KCdkb2N1bWVudC5jbG9zZXN0KCknKTsKK3Nob3VsZFRocm93KCd0
aGVUYXJnZXQuY2xvc2VzdCgpJyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3QoIiIp
Jyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3QoIi4xMjMiKScpOworc2hvdWxkVGhy
b3coJ3RoZVRhcmdldC5jbG9zZXN0KCIgICAgIiknKTsKK3Nob3VsZFRocm93KCd0aGVUYXJnZXQu
Y2xvc2VzdCgiKSIpJyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3QoIigiKScpOwor
c2hvdWxkVGhyb3coJ3RoZVRhcmdldC5jbG9zZXN0KCIoKSIpJyk7CitzaG91bGRUaHJvdygndGhl
VGFyZ2V0LmNsb3Nlc3QoIl5fXiIpJyk7CitzaG91bGRUaHJvdygndGhlVGFyZ2V0LmNsb3Nlc3Qo
InsiKScpOworc2hvdWxkVGhyb3coJ3RoZVRhcmdldC5jbG9zZXN0KCJ9IiknKTsKK3Nob3VsZFRo
cm93KCd0aGVUYXJnZXQuY2xvc2VzdCgie30iKScpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNjb3BlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZmN2Y1Zjg2ZjJkODY3YzE3YmZjZjg3ZTk5YzFlNTQ5MWU4MGU2N2EK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9jbG9zZXN0LXNj
b3BlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0
aGF0IDpzY29wZSB3b3JrcyBjb3JyZWN0bHkgd2l0aCB0aGUgY2xvc2VzdCgpIEFQSS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29w
ZSIpIGlzIHRoZVRhcmdldAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiOm5vdCg6c2NvcGUpIikg
aXMgYm9keQorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiYm9keSA6c2NvcGUiKSBpcyB0aGVUYXJn
ZXQKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoImJvZHkgPiA6c2NvcGUiKSBpcyB0aGVUYXJnZXQK
K1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoImJvZHk6c2NvcGUiKSBpcyBudWxsCitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCJzaWJsaW5nICsgOnNjb3BlIikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCJzaWJsaW5nIH4gOnNjb3BlIikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCIjdGhlVGFyZ2V0OnNjb3BlIikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCI6c2NvcGUjdGhlVGFyZ2V0IikgaXMgdGhlVGFyZ2V0CitQQVNTIHRoZVRh
cmdldC5jbG9zZXN0KCJbd2Via2l0XTpzY29wZSN0aGVUYXJnZXQiKSBpcyB0aGVUYXJnZXQKK1BB
U1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpub3QoW3dlYmtpdD1mYXN0XSk6c2NvcGUjdGhlVGFyZ2V0
IikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlIHRhcmdldCIpIGlzIG51
bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSA+IHRhcmdldCIpIGlzIG51bGwKK1BB
U1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSArIHRhcmdldCIpIGlzIG51bGwKK1BBU1MgdGhl
VGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSB+IHRhcmdldCIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0
LmNsb3Nlc3QoIjpzY29wZSAqIikgaXMgbnVsbAorUEFTUyB0aGVUYXJnZXQuY2xvc2VzdCgiOnNj
b3BlID4gKiIpIGlzIG51bGwKK1BBU1MgdGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSArICoiKSBp
cyBudWxsCitQQVNTIHRoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgfiAqIikgaXMgbnVsbAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2Nsb3Nlc3Qtc2NvcGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmMw
ZGQ1NDI5NWRlZGJhY2I1Njc5NDExODhmZDNkZjdhNGYwMGVkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvY2xvc2VzdC1zY29wZS5odG1sCkBAIC0wLDAgKzEs
NDcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKwl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisJPHNpYmxpbmc+PC9zaWJsaW5nPgorCTx0YXJnZXQgaWQ9InRoZVRhcmdl
dCIgd2Via2l0PSJmYXN0Ij48L3RhcmdldD4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bignVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCA6c2NvcGUgd29ya3MgY29ycmVjdGx5IHdpdGgg
dGhlIGNsb3Nlc3QoKSBBUEkuJyk7CisKK3ZhciB0aGVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGhlVGFyZ2V0Jyk7Cit2YXIgYm9keSA9IGRvY3VtZW50LmJvZHk7CisKK3Nob3Vs
ZEJlKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlIiknLCAndGhlVGFyZ2V0Jyk7CitzaG91bGRC
ZSgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpub3QoOnNjb3BlKSIpJywgJ2JvZHknKTsKKworc2hvdWxk
QmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJib2R5IDpzY29wZSIpJywgJ3RoZVRhcmdldCcpOworc2hv
dWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJib2R5ID4gOnNjb3BlIiknLCAndGhlVGFyZ2V0Jyk7
CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCJib2R5OnNjb3BlIiknKTsKKworc2hv
dWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCJzaWJsaW5nICsgOnNjb3BlIiknLCAndGhlVGFyZ2V0
Jyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoInNpYmxpbmcgfiA6c2NvcGUiKScsICd0
aGVUYXJnZXQnKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9zZXN0KCIjdGhlVGFyZ2V0OnNj
b3BlIiknLCAndGhlVGFyZ2V0Jyk7CitzaG91bGRCZSgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29w
ZSN0aGVUYXJnZXQiKScsICd0aGVUYXJnZXQnKTsKKworc2hvdWxkQmUoJ3RoZVRhcmdldC5jbG9z
ZXN0KCJbd2Via2l0XTpzY29wZSN0aGVUYXJnZXQiKScsICd0aGVUYXJnZXQnKTsKK3Nob3VsZEJl
TnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpub3QoW3dlYmtpdD1mYXN0XSk6c2NvcGUjdGhlVGFy
Z2V0IiknKTsKKworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlIHRhcmdl
dCIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRhcmdldC5jbG9zZXN0KCI6c2NvcGUgPiB0YXJnZXQi
KScpOworc2hvdWxkQmVOdWxsKCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlICsgdGFyZ2V0Iikn
KTsKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSB+IHRhcmdldCIpJyk7
CisKK3Nob3VsZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSAqIiknKTsKK3Nob3Vs
ZEJlTnVsbCgndGhlVGFyZ2V0LmNsb3Nlc3QoIjpzY29wZSA+ICoiKScpOworc2hvdWxkQmVOdWxs
KCd0aGVUYXJnZXQuY2xvc2VzdCgiOnNjb3BlICsgKiIpJyk7CitzaG91bGRCZU51bGwoJ3RoZVRh
cmdldC5jbG9zZXN0KCI6c2NvcGUgfiAqIiknKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>