<?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>244972</bug_id>
          
          <creation_ts>2022-09-09 06:34:13 -0700</creation_ts>
          <short_desc>Integrate ARIA element reflection in the Accessibility Tree</short_desc>
          <delta_ts>2022-09-28 22:05:03 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>245762</dependson>
          <blocked>196843</blocked>
    
    <blocked>245301</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rackler</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1897222</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-09-09 06:34:13 -0700</bug_when>
    <thetext>IDREF element reflection hasn&apos;t been hooked up with AccessibilityObject.

Right now if you do something like the following example, the a11y tree doesn&apos;t know anything about the label you&apos;re assigning to the custom input:
        &lt;label id=&quot;anotherLabel&quot;&gt;Another label&lt;/label&gt;
        &lt;x-input-idref id=&quot;myxinput&quot;&gt;&lt;/x-input-idref&gt;

        &lt;script&gt;
          class XInputIDREF extends HTMLElement {
            constructor() {
              super();
              this.attachShadow({ mode: &quot;open&quot; });
              let input = document.createElement(&quot;input&quot;);
              input.id = &quot;innerbutton&quot;;
              this.shadowRoot.appendChild(input);
              input.ariaLabelledByElements = [anotherLabel];
            }
          }
          customElements.define(&quot;x-input-idref&quot;, XInputIDREF);

If you use the accessibility info in the inspector, you&apos;ll see the inner &lt;input&gt; doesn&apos;t have the label associated to it.
This is because as the attribute is not reflected, as the label is not in the shadow tree, and we need to update AccessibilityObject::elementsFromAttribute() to return the explicitly set elements in that scenario.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1897224</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-09-09 06:34:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/99742765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1897881</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-09-12 09:07:23 -0700</bug_when>
    <thetext>I think this is also broken when the referenced element doesn&apos;t have an ID</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1898140</commentid>
    <comment_count>3</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-09-12 22:40:04 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/4299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1900020</commentid>
    <comment_count>4</comment_count>
      <attachid>462484</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-09-20 22:08:46 -0700</bug_when>
    <thetext>Created attachment 462484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1900021</commentid>
    <comment_count>5</comment_count>
      <attachid>462484</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-09-20 22:09:14 -0700</bug_when>
    <thetext>Comment on attachment 462484
Patch

Sorry wrong command to upload patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901454</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-09-27 04:19:40 -0700</bug_when>
    <thetext>Committed 254905@main (5a61ea9a8257): &lt;https://commits.webkit.org/254905@main&gt;

Reviewed commits have been landed. Closing PR #4299 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901656</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-09-27 17:29:03 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 245762</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901683</commentid>
    <comment_count>8</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-09-27 22:24:47 -0700</bug_when>
    <thetext>*** Bug 245761 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901694</commentid>
    <comment_count>9</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-09-27 23:47:25 -0700</bug_when>
    <thetext>New pull request: https://github.com/WebKit/WebKit/pull/4784</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901955</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-09-28 22:05:00 -0700</bug_when>
    <thetext>Committed 254985@main (fa51d4c1048c): &lt;https://commits.webkit.org/254985@main&gt;

Reviewed commits have been landed. Closing PR #4784 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462484</attachid>
            <date>2022-09-20 22:08:46 -0700</date>
            <delta_ts>2022-09-20 22:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-244972-20220921070844.patch</filename>
            <type>text/plain</type>
            <size>35892</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">RnJvbSBiMTBmOWMzZDM2YTQ0YmI2NDNkMDAxOGJmMDc3ZTQzOTU4ZTMyZGY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYW51ZWwgUmVnbyBDYXNhc25vdmFzIDxyZWdvQGlnYWxpYS5j
b20+CkRhdGU6IE1vbiwgMTIgU2VwIDIwMjIgMjI6MTU6MTUgLTA3MDAKU3ViamVjdDogW1BBVENI
XSBJbnRlZ3JhdGUgQVJJQSBlbGVtZW50IHJlZmxlY3Rpb24gaW4gdGhlIEFjY2Vzc2liaWxpdHkg
VHJlZQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDk3MgoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCi0tLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcCAgIHwgMTIgKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgICAgIHwgMTcgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgICAgICAgICAgICAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aCAgICAgICAgICAgICAgICAgIHwgIDIgKwogLi4uZmxlY3Rpb24tYXJpYWFjdGl2ZWRlc2NlbmRh
bnQtZXhwZWN0ZWQudHh0IHwgMTUgKysrKysKIC4uLmVtZW50LXJlZmxlY3Rpb24tYXJpYWFjdGl2
ZWRlc2NlbmRhbnQuaHRtbCB8IDM0ICsrKysrKysrKysrKwogLi4uZW1lbnQtcmVmbGVjdGlvbi1h
cmlhY29udHJvbHMtZXhwZWN0ZWQudHh0IHwgMjIgKysrKysrKysKIC4uLi9lbGVtZW50LXJlZmxl
Y3Rpb24tYXJpYWNvbnRyb2xzLmh0bWwgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysKIC4u
Lm50LXJlZmxlY3Rpb24tYXJpYWRlc2NyaWJlZGJ5LWV4cGVjdGVkLnR4dCB8IDIwICsrKysrKysK
IC4uLi9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWRlc2NyaWJlZGJ5Lmh0bWwgICB8IDQ3ICsrKysr
KysrKysrKysrKysKIC4uLmxlbWVudC1yZWZsZWN0aW9uLWFyaWFkZXRhaWxzLWV4cGVjdGVkLnR4
dCB8IDIyICsrKysrKysrCiAuLi4vZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFkZXRhaWxzLmh0bWwg
ICAgICAgfCA1NCArKysrKysrKysrKysrKysrKysKIC4uLnQtcmVmbGVjdGlvbi1hcmlhZXJyb3Jt
ZXNzYWdlLWV4cGVjdGVkLnR4dCB8IDIyICsrKysrKysrCiAuLi4vZWxlbWVudC1yZWZsZWN0aW9u
LWFyaWFlcnJvcm1lc3NhZ2UuaHRtbCAgfCA1NCArKysrKysrKysrKysrKysrKysKIC4uLmVsZW1l
bnQtcmVmbGVjdGlvbi1hcmlhZmxvd3RvLWV4cGVjdGVkLnR4dCB8IDIyICsrKysrKysrCiAuLi4v
ZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFmbG93dG8uaHRtbCAgICAgICAgfCA1NCArKysrKysrKysr
KysrKysrKysKIC4uLmVudC1yZWZsZWN0aW9uLWFyaWFsYWJlbGxlZGJ5LWV4cGVjdGVkLnR4dCB8
IDEzICsrKysrCiAuLi4vZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFsYWJlbGxlZGJ5Lmh0bWwgICAg
fCA0MiArKysrKysrKysrKysrKwogLi4uL2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhb3ducy1leHBl
Y3RlZC50eHQgIHwgMjIgKysrKysrKysKIC4uLi9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYW93bnMu
aHRtbCAgICAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKwogMjAgZmlsZXMgY2hhbmdlZCwg
NTg1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWFjdGl2ZWRlc2Nl
bmRhbnQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWFjdGl2ZWRlc2NlbmRhbnQuaHRtbAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0
aW9uLWFyaWFjb250cm9scy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhY29udHJvbHMuaHRtbAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZs
ZWN0aW9uLWFyaWFkZXNjcmliZWRieS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhZGVzY3JpYmVk
YnkuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxl
bWVudC1yZWZsZWN0aW9uLWFyaWFkZXRhaWxzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFkZXRh
aWxzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2Vs
ZW1lbnQtcmVmbGVjdGlvbi1hcmlhZXJyb3JtZXNzYWdlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFy
aWFlcnJvcm1lc3NhZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFmbG93dG8tZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rp
b24tYXJpYWZsb3d0by5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWxhYmVsbGVkYnktZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxl
Y3Rpb24tYXJpYWxhYmVsbGVkYnkuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFvd25zLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZs
ZWN0aW9uLWFyaWFvd25zLmh0bWwKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAppbmRleCBkZWMzNzAzMmU2OTYuLjJlMGEyZTA5YzZjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC00MDQy
LDYgKzQwNDIsMTggQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVSZWxhdGlvbnNJZk5lZWRl
ZCgpCiAgICAgICAgIC8vIENvbGxlY3QgYWxsIHBvc3NpYmxlIG9yaWdpbnMsIGkuZS4sIGVsZW1l
bnRzIHdpdGggbm9uLWVtcHR5IHJlbGF0aW9uIGF0dHJpYnV0ZXMuCiAgICAgICAgIGZvciAoY29u
c3QgYXV0byYgYXR0cmlidXRlIDogcmVsYXRpb25BdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgICAg
IGF1dG8mIGlkc1N0cmluZyA9IGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihhdHRyaWJ1dGUpOworICAgICAgICAgICAgaWYgKGlkc1N0cmluZy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoRWxlbWVudDo6aXNFbGVtZW50UmVmbGVjdGlvbkF0dHJpYnV0ZShh
dHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHJlZmxlY3RlZEVsZW1l
bnQgPSBlbGVtZW50LmdldEVsZW1lbnRBdHRyaWJ1dGUoYXR0cmlidXRlKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFkZFJlbGF0aW9uKCZlbGVtZW50LCByZWZsZWN0ZWRFbGVtZW50LCBhdHRy
aWJ1dGVUb1JlbGF0aW9uVHlwZShhdHRyaWJ1dGUpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKEVsZW1lbnQ6OmlzRWxlbWVudHNBcnJheVJlZmxlY3Rpb25BdHRyaWJ1dGUoYXR0cmlidXRl
KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byByZWZsZWN0ZWRFbGVtZW50cyA9IGVs
ZW1lbnQuZ2V0RWxlbWVudHNBcnJheUF0dHJpYnV0ZShhdHRyaWJ1dGUpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgKGF1dG8gcmVmbGVjdGVkRWxlbWVudCA6IHJlZmxlY3RlZEVsZW1l
bnRzLnZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkUmVsYXRpb24oJmVs
ZW1lbnQsIHJlZmxlY3RlZEVsZW1lbnQuZ2V0KCksIGF0dHJpYnV0ZVRvUmVsYXRpb25UeXBlKGF0
dHJpYnV0ZSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQogICAgICAgICAgICAgU3BhY2VT
cGxpdFN0cmluZyBpZHMoaWRzU3RyaW5nLCBTcGFjZVNwbGl0U3RyaW5nOjpTaG91bGRGb2xkQ2Fz
ZTo6Tm8pOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpZHMuc2l6ZSgpOyAr
K2kpCiAgICAgICAgICAgICAgICAgb3JpZ2lucy5hcHBlbmQoeyAmZWxlbWVudCwgaWRzW2ldLCBh
dHRyaWJ1dGVUb1JlbGF0aW9uVHlwZShhdHRyaWJ1dGUpIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNTM0MDli
NTU4ZGYyLi45NDQ3ODliZWI1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMzczOSw2ICszNzM5LDIzIEBAIFZl
Y3RvcjxFbGVtZW50Kj4gQWNjZXNzaWJpbGl0eU9iamVjdDo6ZWxlbWVudHNGcm9tQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0VsZW1lbnRO
b2RlKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKKyAgICBpZiAoYXV0byogZWxlbWVudCA9IHRo
aXMtPmVsZW1lbnQoKSkgeworICAgICAgICBpZiAoRWxlbWVudDo6aXNFbGVtZW50UmVmbGVjdGlv
bkF0dHJpYnV0ZShhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICBpZiAoYXV0byByZWZsZWN0ZWRF
bGVtZW50ID0gZWxlbWVudC0+Z2V0RWxlbWVudEF0dHJpYnV0ZShhdHRyaWJ1dGUpKSB7CisgICAg
ICAgICAgICAgICAgVmVjdG9yPEVsZW1lbnQqPiBlbGVtZW50czsKKyAgICAgICAgICAgICAgICBl
bGVtZW50cy5hcHBlbmQocmVmbGVjdGVkRWxlbWVudCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGVsZW1lbnRzOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKEVsZW1lbnQ6Omlz
RWxlbWVudHNBcnJheVJlZmxlY3Rpb25BdHRyaWJ1dGUoYXR0cmlidXRlKSkgeworICAgICAgICAg
ICAgaWYgKGF1dG8gcmVmbGVjdGVkRWxlbWVudHMgPSBlbGVtZW50LT5nZXRFbGVtZW50c0FycmF5
QXR0cmlidXRlKGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8RWxlbWVudCo+
IGVsZW1lbnRzOworICAgICAgICAgICAgICAgIGZvciAoYXV0byByZWZsZWN0ZWRFbGVtZW50IDog
cmVmbGVjdGVkRWxlbWVudHMudmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMu
YXBwZW5kKHJlZmxlY3RlZEVsZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgICAgIHJldHVybiBl
bGVtZW50czsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIGF1dG8mIGlk
c1N0cmluZyA9IGdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogICAgIGlmIChpZHNTdHJpbmcuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDE5
YzI0NWRhNzk5Ny4uZWRhMjM0YjI5YTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xOTM0
LDEyICsxOTM0LDEyIEBAIHN0YXRpYyBpbmxpbmUgQXRvbVN0cmluZyBtYWtlSWRGb3JTdHlsZVJl
c29sdXRpb24oY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIGJvb2wKICAgICByZXR1cm4gdmFsdWU7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0VsZW1lbnRSZWZsZWN0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCitib29sIEVsZW1lbnQ6OmlzRWxlbWVudFJlZmxlY3Rp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKIHsKICAgICByZXR1cm4gbmFt
ZSA9PSBIVE1MTmFtZXM6OmFyaWFfYWN0aXZlZGVzY2VuZGFudEF0dHI7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBpc0VsZW1lbnRzQXJyYXlSZWZsZWN0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUpCitib29sIEVsZW1lbnQ6OmlzRWxlbWVudHNBcnJheVJlZmxlY3Rpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKIHsKICAgICByZXR1cm4gbmFtZSA9
PSBIVE1MTmFtZXM6OmFyaWFfY29udHJvbHNBdHRyCiAgICAgICAgIHx8IG5hbWUgPT0gSFRNTE5h
bWVzOjphcmlhX2Rlc2NyaWJlZGJ5QXR0cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggZDY0OTk0M2Ez
MTFiLi42OWVjMGQ5M2UxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMTMxLDYgKzEzMSw4IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEVsZW1lbnRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgRWxlbWVudCogdmFsdWUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4+IGdldEVs
ZW1lbnRzQXJyYXlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkg
Y29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbGVtZW50c0FycmF5QXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFJlZlB0cjxFbGVtZW50Pj4+JiYgdmFsdWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBi
b29sIGlzRWxlbWVudFJlZmxlY3Rpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzRWxlbWVudHNBcnJheVJlZmxlY3Rpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiAgICAgLy8gQ2FsbCB0aGlzIHRvIGdl
dCB0aGUgdmFsdWUgb2YgYW4gYXR0cmlidXRlIHRoYXQgaXMga25vd24gbm90IHRvIGJlIHRoZSBz
dHlsZQogICAgIC8vIGF0dHJpYnV0ZSBvciBvbmUgb2YgdGhlIFNWRyBhbmltYXRhYmxlIGF0dHJp
YnV0ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVm
bGVjdGlvbi1hcmlhYWN0aXZlZGVzY2VuZGFudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhYWN0aXZlZGVzY2VuZGFudC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZmM0ZTcy
NTZmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1l
bnQtcmVmbGVjdGlvbi1hcmlhYWN0aXZlZGVzY2VuZGFudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorQ2hlY2tzIHRoYXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4cG9zZWQgdG8gdGhl
IGExMXkgdHJlZSBmb3IgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXhUYXJnZXQxLnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCBpcyAxCitQQVNTIGF4VGFyZ2V0MS5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKGF4
RGVzY2VuZGFudDEpIGlzIHRydWUKK1BBU1MgYXhUYXJnZXQyLnNlbGVjdGVkQ2hpbGRyZW5Db3Vu
dCBpcyAxCitQQVNTIGF4VGFyZ2V0Mi5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5pc0VxdWFsKGF4
RGVzY2VuZGFudEZpcnN0Q2hpbGQpIGlzIHRydWUKK1BBU1MgYXhUYXJnZXQyLnNlbGVjdGVkQ2hp
bGRyZW5Db3VudCBpcyAxCitQQVNTIGF4VGFyZ2V0Mi5zZWxlY3RlZENoaWxkQXRJbmRleCgwKS5p
c0VxdWFsKGF4RGVzY2VuZGFudDIpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhYWN0aXZlZGVzY2VuZGFudC5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWFjdGl2ZWRlc2Nl
bmRhbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI1OTM2
NjA4NzA0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxl
bWVudC1yZWZsZWN0aW9uLWFyaWFhY3RpdmVkZXNjZW5kYW50Lmh0bWwKQEAgLTAsMCArMSwzNCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Cis8dWwgaWQ9InRhcmdldDEiIHJvbGU9Im1lbnViYXIiPgorICA8bGkg
aWQ9ImRlc2NlbmRhbnQxIj48L2xpPgorPC91bD4KKzx1bCBpZD0idGFyZ2V0MiIgcm9sZT0ibWVu
dWJhciI+CisgIDxsaT48L2xpPgorICA8bGkgaWQ9ImRlc2NlbmRhbnQyIj48L2xpPgorPC91bD4K
KworPHNjcmlwdD4KKyAgdGFyZ2V0MS5hcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQgPSBkZXNj
ZW5kYW50MTsKKyAgdGFyZ2V0Mi5hcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQgPSB0YXJnZXQy
LmZpcnN0RWxlbWVudENoaWxkOworCisgIGRlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBlbGVtZW50
IHJlZmxlY3Rpb24gaXMgZXhwb3NlZCB0byB0aGUgYTExeSB0cmVlIGZvciAnYXJpYUFjdGl2ZURl
c2NlbmRhbnRFbGVtZW50JyIpOworICBpZiAoIXdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cikgeworICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIiKTsKKyAgfSBlbHNlIHsKKyAgICB2YXIgYXhUYXJnZXQxID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YXJnZXQxIik7CisgICAgdmFyIGF4RGVzY2Vu
ZGFudDEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImRl
c2NlbmRhbnQxIik7CisgICAgc2hvdWxkQmUoImF4VGFyZ2V0MS5zZWxlY3RlZENoaWxkcmVuQ291
bnQiLCAiMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYXJnZXQxLnNlbGVjdGVkQ2hpbGRBdElu
ZGV4KDApLmlzRXF1YWwoYXhEZXNjZW5kYW50MSkiKTsKKworICAgIHZhciBheFRhcmdldDIgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRhcmdldDIiKTsK
KyAgICB2YXIgYXhEZXNjZW5kYW50MiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgiZGVzY2VuZGFudDIiKTsKKyAgICB2YXIgYXhEZXNjZW5kYW50Rmlyc3RD
aGlsZCA9IGF4VGFyZ2V0Mi5jaGlsZEF0SW5kZXgoMCk7CisgICAgc2hvdWxkQmUoImF4VGFyZ2V0
Mi5zZWxlY3RlZENoaWxkcmVuQ291bnQiLCAiMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYXJn
ZXQyLnNlbGVjdGVkQ2hpbGRBdEluZGV4KDApLmlzRXF1YWwoYXhEZXNjZW5kYW50Rmlyc3RDaGls
ZCkiKTsKKyAgICB0YXJnZXQyLnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50Iiwg
ImRlc2NlbmRhbnQyIik7CisgICAgc2hvdWxkQmUoImF4VGFyZ2V0Mi5zZWxlY3RlZENoaWxkcmVu
Q291bnQiLCAiMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYXJnZXQyLnNlbGVjdGVkQ2hpbGRB
dEluZGV4KDApLmlzRXF1YWwoYXhEZXNjZW5kYW50MikiKTsKKyAgfQorPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlh
Y29udHJvbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50
LXJlZmxlY3Rpb24tYXJpYWNvbnRyb2xzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjE0YzJhYTM0OTI1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFjb250cm9scy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorQ2hlY2tzIHRoYXQgZWxlbWVudCByZWZsZWN0
aW9uIGlzIGV4cG9zZWQgdG8gdGhlIGExMXkgdHJlZSBmb3IgJ2FyaWFDb250cm9sc0VsZW1lbnRz
JworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBheFRhYjEuYXJpYUNvbnRy
b2xzRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheFBhbmVsMSkgaXMgdHJ1ZQorUEFTUyBheFRh
YjIuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheFBhbmVsMikgaXMgdHJ1
ZQorUEFTUyBheFRhYjIuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheFBh
bmVsMSkgaXMgdHJ1ZQorRkFJTCBheFRhYjMuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgoMCku
aXNFcXVhbChheFBhbmVsMykgc2hvdWxkIGJlIHRydWUuIFRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnYXhUYWIzLmFyaWFDb250cm9s
c0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwnKQorUEFTUyBheFRhYjIuYXJpYUNvbnRyb2xzRWxl
bWVudEF0SW5kZXgoMCkuaXNFcXVhbChheFBhbmVsMSkgaXMgdHJ1ZQorUEFTUyBheFRhYjIuYXJp
YUNvbnRyb2xzRWxlbWVudEF0SW5kZXgoMSkuaXNFcXVhbChheFBhbmVsMikgaXMgdHJ1ZQorUEFT
UyBheFRhYjIuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgoMikuaXNFcXVhbChheFBhbmVsMykg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorU29tZSB0ZXN0cyBmYWls
ZWQuCisKK1RFU1QgQ09NUExFVEUKK0ZpcnN0IHBhbmVsCitUYWIgMQorU2Vjb25kIHBhbmVsCitU
YWIgMgorVGhpcmQgcGFuZWwKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWNvbnRyb2xzLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhY29udHJvbHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ4ZDEzYjg2MTkwZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFj
b250cm9scy5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0icGFu
ZWwxIj5GaXJzdCBwYW5lbDwvZGl2PgorPGRpdiBpZD0idGFiMSIgcm9sZT0idGFiIj5UYWIgMTwv
ZGl2PgorPGRpdiBpZD0id3JhcHBlciIgdGFiaW5kZXg9IjAiPgorICA8ZGl2IGNsYXNzPSJwYW5l
bCI+U2Vjb25kIHBhbmVsPC9sYWJlbD4KKzwvZGl2PgorPGRpdiBpZD0idGFiMiIgcm9sZT0idGFi
Ij5UYWIgMjwvZGl2PgorPGRpdiBpZD0icGFuZWwzIj5UaGlyZCBwYW5lbDwvZGl2PgorPHgtcGFu
ZWw+PC94LXBhbmVsPgorCis8c2NyaXB0PgorICBjbGFzcyBYUGFuZWwgZXh0ZW5kcyBIVE1MRWxl
bWVudCB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICBzdXBlcigpOworICAgICAgdGhpcy5h
dHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7CisgICAgICBsZXQgdGFiID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICB0YWIuaWQgPSAiaW5uZXJ0YWIiOworICAgICAg
dGFiLnJvbGUgPSAidGFiIjsKKyAgICAgIHRhYi50ZXh0Q29udGVudCA9ICJUYWIgMyI7CisgICAg
ICB0YWIuYXJpYUNvbnRyb2xzRWxlbWVudHMgPSBbcGFuZWwzXTsKKyAgICAgIHRoaXMuc2hhZG93
Um9vdC5hcHBlbmRDaGlsZCh0YWIpOworICAgIH0KKyAgfQorICBjdXN0b21FbGVtZW50cy5kZWZp
bmUoIngtcGFuZWwiLCBYUGFuZWwpOworCisgIHRhYjEuYXJpYUNvbnRyb2xzRWxlbWVudHMgPSBb
cGFuZWwxXTsKKyAgdGFiMi5hcmlhQ29udHJvbHNFbGVtZW50cyA9IFtkb2N1bWVudC5nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lKCJwYW5lbCIpWzBdXTsKKworICBkZXNjcmlwdGlvbigiQ2hlY2tzIHRo
YXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4cG9zZWQgdG8gdGhlIGExMXkgdHJlZSBmb3IgJ2Fy
aWFDb250cm9sc0VsZW1lbnRzJyIpOworICBpZiAoIXdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIiKTsKKyAgfSBlbHNlIHsKKyAgICB2YXIgYXhQYW5lbDEgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInBhbmVsMSIpOworICAgIHZhciBheFRhYjEg
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRhYjEiKTsK
KyAgICBzaG91bGRCZVRydWUoImF4VGFiMS5hcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCgwKS5p
c0VxdWFsKGF4UGFuZWwxKSIpOworCisgICAgdmFyIHdyYXBwZXIgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIndyYXBwZXIiKTsKKyAgICB2YXIgYXhQYW5l
bDIgPSB3cmFwcGVyLmNoaWxkQXRJbmRleCgwKTsKKyAgICB2YXIgYXhUYWIyID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YWIyIik7CisgICAgc2hvdWxk
QmVUcnVlKCJheFRhYjIuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheFBh
bmVsMikiKTsKKyAgICB0YWIyLnNldEF0dHJpYnV0ZSgiYXJpYS1jb250cm9scyIsICJwYW5lbDEi
KTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFiMi5hcmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCgw
KS5pc0VxdWFsKGF4UGFuZWwxKSIpOworCisgICAgdmFyIGF4UGFuZWwzID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJwYW5lbDMiKTsKKyAgICB2YXIgYXhU
YWIzID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbm5l
cnRhYiIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYWIzLmFyaWFDb250cm9sc0VsZW1lbnRBdElu
ZGV4KDApLmlzRXF1YWwoYXhQYW5lbDMpIik7CisKKyAgICB0YWIyLmFyaWFDb250cm9sc0VsZW1l
bnRzID0gW3BhbmVsMSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgicGFuZWwiKVsw
XSwgcGFuZWwzXTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFiMi5hcmlhQ29udHJvbHNFbGVtZW50
QXRJbmRleCgwKS5pc0VxdWFsKGF4UGFuZWwxKSIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYWIy
LmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KDEpLmlzRXF1YWwoYXhQYW5lbDIpIik7CisgICAg
c2hvdWxkQmVUcnVlKCJheFRhYjIuYXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgoMikuaXNFcXVh
bChheFBhbmVsMykiKTsKKyAgfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhZGVzY3JpYmVkYnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWRl
c2NyaWJlZGJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjcxNjExYTZlN2RjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFkZXNjcmliZWRieS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorQ2hlY2tzIHRoYXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4cG9z
ZWQgdG8gdGhlIGExMXkgdHJlZSBmb3IgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBheFRhcmdldDEuaGVscFRleHQgaXMgIkFY
SGVscDogRmlyc3QgZGVzY3JpcHRpb24iCitQQVNTIGF4VGFyZ2V0Mi5oZWxwVGV4dCBpcyAiQVhI
ZWxwOiBTZWNvbmQgZGVzY3JpcHRpb24iCitQQVNTIGF4VGFyZ2V0Mi5oZWxwVGV4dCBpcyAiQVhI
ZWxwOiBGaXJzdCBkZXNjcmlwdGlvbiIKK0ZBSUwgYXhJbm5lclRhcmdldC5oZWxwVGV4dCBzaG91
bGQgYmUgQVhIZWxwOiBUaGlyZCBkZXNjcmlwdGlvbi4gV2FzIC4KK1BBU1MgYXhUYXJnZXQyLmhl
bHBUZXh0IGlzICJBWEhlbHA6IEZpcnN0IGRlc2NyaXB0aW9uIFNlY29uZCBkZXNjcmlwdGlvbiBU
aGlyZCBkZXNjcmlwdGlvbiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKK1NvbWUg
dGVzdHMgZmFpbGVkLgorCitURVNUIENPTVBMRVRFCitGaXJzdCBkZXNjcmlwdGlvbgorVGFyZ2V0
IDEKK1NlY29uZCBkZXNjcmlwdGlvbgorVGFyZ2V0IDIKK1RoaXJkIGRlc2NyaXB0aW9uCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFy
aWFkZXNjcmliZWRieS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJl
ZmxlY3Rpb24tYXJpYWRlc2NyaWJlZGJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi4xNGZjNzI4YWIyODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhZGVzY3JpYmVkYnkuaHRtbApA
QCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vz
c2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0iZGVzYzEiPkZpcnN0IGRl
c2NyaXB0aW9uPC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQxIj5UYXJnZXQgMTwvZGl2PgorPGRpdiBj
bGFzcz0iZGVzYyI+U2Vjb25kIGRlc2NyaXB0aW9uPC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQyIj5U
YXJnZXQgMjwvZGl2PgorPGRpdiBpZD0iZGVzYzMiPlRoaXJkIGRlc2NyaXB0aW9uPC9kaXY+Cis8
eC10YXJnZXQ+PC94LXRhcmdldD4KKworPHNjcmlwdD4KKyAgY2xhc3MgWFRhcmdldCBleHRlbmRz
IEhUTUxFbGVtZW50IHsKKyAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgIHN1cGVyKCk7CisgICAg
ICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJvcGVuIiB9KTsKKyAgICAgIGxldCB0YXJnZXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgIHRhcmdldC5pZCA9ICJpbm5l
cnRhcmdldCI7CisgICAgICB0YXJnZXQudGV4dENvbnRlbnQgPSAiVGFyZ2V0IDMiOworICAgICAg
dGFyZ2V0LmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gW2Rlc2MzXTsKKyAgICAgIHRoaXMuc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIH0KKyAgfQorICBjdXN0b21FbGVtZW50
cy5kZWZpbmUoIngtdGFyZ2V0IiwgWFRhcmdldCk7CisKKyAgdGFyZ2V0MS5hcmlhRGVzY3JpYmVk
QnlFbGVtZW50cyA9IFtkZXNjMV07CisgIHRhcmdldDIuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMg
PSBbZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZGVzYyIpWzBdXTsKKworICBkZXNj
cmlwdGlvbigiQ2hlY2tzIHRoYXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4cG9zZWQgdG8gdGhl
IGExMXkgdHJlZSBmb3IgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyIpOworICBpZiAoIXdpbmRv
dy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWly
ZXMgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIiKTsKKyAgfSBlbHNlIHsKKyAgICB2YXIgYXhUYXJn
ZXQxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YXJn
ZXQxIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJheFRhcmdldDEuaGVscFRleHQiLCAi
QVhIZWxwOiBGaXJzdCBkZXNjcmlwdGlvbiIpOworCisgICAgdmFyIGF4VGFyZ2V0MiA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGFyZ2V0MiIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiYXhUYXJnZXQyLmhlbHBUZXh0IiwgIkFYSGVscDogU2Vj
b25kIGRlc2NyaXB0aW9uIik7CisgICAgdGFyZ2V0Mi5zZXRBdHRyaWJ1dGUoImFyaWEtZGVzY3Jp
YmVkYnkiLCAiZGVzYzEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImF4VGFyZ2V0Mi5o
ZWxwVGV4dCIsICJBWEhlbHA6IEZpcnN0IGRlc2NyaXB0aW9uIik7CisKKyAgICB2YXIgYXhJbm5l
clRhcmdldCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgi
aW5uZXJ0YXJnZXQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImF4SW5uZXJUYXJnZXQu
aGVscFRleHQiLCAiQVhIZWxwOiBUaGlyZCBkZXNjcmlwdGlvbiIpOworCisgICAgdGFyZ2V0Mi5h
cmlhRGVzY3JpYmVkQnlFbGVtZW50cyA9IFtkZXNjMSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgiZGVzYyIpWzBdLCBkZXNjM107CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJh
eFRhcmdldDIuaGVscFRleHQiLCAiQVhIZWxwOiBGaXJzdCBkZXNjcmlwdGlvbiBTZWNvbmQgZGVz
Y3JpcHRpb24gVGhpcmQgZGVzY3JpcHRpb24iKTsKKyAgfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhZGV0YWls
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVj
dGlvbi1hcmlhZGV0YWlscy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi4yY2M3OTkzZjBmNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhZGV0YWlscy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMiBAQAorQ2hlY2tzIHRoYXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4
cG9zZWQgdG8gdGhlIGExMXkgdHJlZSBmb3IgJ2FyaWFEZXRhaWxzRWxlbWVudHMnCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGF4VGFyZ2V0MS5hcmlhRGV0YWlsc0VsZW1l
bnRBdEluZGV4KDApLmlzRXF1YWwoYXhEZXRhaWwxKSBpcyB0cnVlCitQQVNTIGF4VGFyZ2V0Mi5h
cmlhRGV0YWlsc0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhEZXRhaWwyKSBpcyB0cnVlCitQ
QVNTIGF4VGFyZ2V0Mi5hcmlhRGV0YWlsc0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhEZXRh
aWwxKSBpcyB0cnVlCitGQUlMIGF4SW5uZXJUYXJnZXQuYXJpYURldGFpbHNFbGVtZW50QXRJbmRl
eCgwKS5pc0VxdWFsKGF4RGV0YWlsMykgc2hvdWxkIGJlIHRydWUuIFRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnYXhJbm5lclRhcmdl
dC5hcmlhRGV0YWlsc0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwnKQorUEFTUyBheFRhcmdldDIu
YXJpYURldGFpbHNFbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKGF4RGV0YWlsMSkgaXMgdHJ1ZQor
UEFTUyBheFRhcmdldDIuYXJpYURldGFpbHNFbGVtZW50QXRJbmRleCgxKS5pc0VxdWFsKGF4RGV0
YWlsMikgaXMgdHJ1ZQorUEFTUyBheFRhcmdldDIuYXJpYURldGFpbHNFbGVtZW50QXRJbmRleCgy
KS5pc0VxdWFsKGF4RGV0YWlsMykgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorU29tZSB0ZXN0cyBmYWlsZWQuCisKK1RFU1QgQ09NUExFVEUKK0ZpcnN0IGRldGFpbAor
VGFyZ2V0IDEKK1NlY29uZCBkZXRhaWwKK1RhcmdldCAyCitUaGlyZCBkZXRhaWwKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWRl
dGFpbHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9u
LWFyaWFkZXRhaWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li5iZWMwYjgzYTg0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhZGV0YWlscy5odG1sCkBAIC0wLDAgKzEsNTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPGRpdiBpZD0iZGV0YWlsMSI+Rmlyc3QgZGV0YWlsPC9kaXY+Cis8ZGl2
IGlkPSJ0YXJnZXQxIj5UYXJnZXQgMTwvZGl2PgorPGRpdiBpZD0id3JhcHBlciIgdGFiaW5kZXg9
IjAiPgorICA8ZGl2IGNsYXNzPSJkZXRhaWwiPlNlY29uZCBkZXRhaWw8L2Rpdj4KKzwvZGl2Pgor
PGRpdiBpZD0idGFyZ2V0MiI+VGFyZ2V0IDI8L2Rpdj4KKzxkaXYgaWQ9ImRldGFpbDMiPlRoaXJk
IGRldGFpbDwvZGl2PgorPHgtdGFyZ2V0PjwveC10YXJnZXQ+CisKKzxzY3JpcHQ+CisgIGNsYXNz
IFhUYXJnZXQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAg
ICBzdXBlcigpOworICAgICAgdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7Cisg
ICAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICB0
YXJnZXQuaWQgPSAiaW5uZXJ0YXJnZXQiOworICAgICAgdGFyZ2V0LnRleHRDb250ZW50ID0gIlRh
cmdldCAzIjsKKyAgICAgIHRhcmdldC5hcmlhRGV0YWlsc0VsZW1lbnRzID0gW2RldGFpbDNdOwor
ICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgfQorICB9Cisg
IGN1c3RvbUVsZW1lbnRzLmRlZmluZSgieC10YXJnZXQiLCBYVGFyZ2V0KTsKKworICB0YXJnZXQx
LmFyaWFEZXRhaWxzRWxlbWVudHMgPSBbZGV0YWlsMV07CisgIHRhcmdldDIuYXJpYURldGFpbHNF
bGVtZW50cyA9IFtkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJkZXRhaWwiKVswXV07
CisKKyAgZGVzY3JpcHRpb24oIkNoZWNrcyB0aGF0IGVsZW1lbnQgcmVmbGVjdGlvbiBpcyBleHBv
c2VkIHRvIHRoZSBhMTF5IHRyZWUgZm9yICdhcmlhRGV0YWlsc0VsZW1lbnRzJyIpOworICBpZiAo
IXdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgIGRlYnVnKCJUaGlzIHRlc3Qg
cmVxdWlyZXMgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIiKTsKKyAgfSBlbHNlIHsKKyAgICB2YXIg
YXhEZXRhaWwxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJkZXRhaWwxIik7CisgICAgdmFyIGF4VGFyZ2V0MSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGFyZ2V0MSIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhU
YXJnZXQxLmFyaWFEZXRhaWxzRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheERldGFpbDEpIik7
CisKKyAgICB2YXIgd3JhcHBlciA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVF
bGVtZW50QnlJZCgid3JhcHBlciIpOworICAgIHZhciBheERldGFpbDIgPSB3cmFwcGVyLmNoaWxk
QXRJbmRleCgwKTsKKyAgICB2YXIgYXhUYXJnZXQyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YXJnZXQyIik7CisgICAgc2hvdWxkQmVUcnVlKCJheFRh
cmdldDIuYXJpYURldGFpbHNFbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKGF4RGV0YWlsMikiKTsK
KyAgICB0YXJnZXQyLnNldEF0dHJpYnV0ZSgiYXJpYS1kZXRhaWxzIiwgImRldGFpbDEiKTsKKyAg
ICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5hcmlhRGV0YWlsc0VsZW1lbnRBdEluZGV4KDApLmlz
RXF1YWwoYXhEZXRhaWwxKSIpOworCisgICAgdmFyIGF4RGV0YWlsMyA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiZGV0YWlsMyIpOworICAgIHZhciBheElu
bmVyVGFyZ2V0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCJpbm5lcnRhcmdldCIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhJbm5lclRhcmdldC5hcmlhRGV0
YWlsc0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhEZXRhaWwzKSIpOworCisgICAgdGFyZ2V0
Mi5hcmlhRGV0YWlsc0VsZW1lbnRzID0gW2RldGFpbDEsIGRvY3VtZW50LmdldEVsZW1lbnRzQnlD
bGFzc05hbWUoImRldGFpbCIpWzBdLCBkZXRhaWwzXTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFy
Z2V0Mi5hcmlhRGV0YWlsc0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhEZXRhaWwxKSIpOwor
ICAgIHNob3VsZEJlVHJ1ZSgiYXhUYXJnZXQyLmFyaWFEZXRhaWxzRWxlbWVudEF0SW5kZXgoMSku
aXNFcXVhbChheERldGFpbDIpIik7CisgICAgc2hvdWxkQmVUcnVlKCJheFRhcmdldDIuYXJpYURl
dGFpbHNFbGVtZW50QXRJbmRleCgyKS5pc0VxdWFsKGF4RGV0YWlsMykiKTsKKyAgfQorPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVj
dGlvbi1hcmlhZXJyb3JtZXNzYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFlcnJvcm1lc3NhZ2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmNkYjZkNDQ3N2ZhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rp
b24tYXJpYWVycm9ybWVzc2FnZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorQ2hlY2tz
IHRoYXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4cG9zZWQgdG8gdGhlIGExMXkgdHJlZSBmb3Ig
J2FyaWFFcnJvck1lc3NhZ2VFbGVtZW50cycKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgYXhUYXJnZXQxLmFyaWFFcnJvck1lc3NhZ2VFbGVtZW50QXRJbmRleCgwKS5pc0Vx
dWFsKGF4RXJyb3IxKSBpcyB0cnVlCitQQVNTIGF4VGFyZ2V0Mi5hcmlhRXJyb3JNZXNzYWdlRWxl
bWVudEF0SW5kZXgoMCkuaXNFcXVhbChheEVycm9yMikgaXMgdHJ1ZQorUEFTUyBheFRhcmdldDIu
YXJpYUVycm9yTWVzc2FnZUVsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhFcnJvcjEpIGlzIHRy
dWUKK0ZBSUwgYXhJbm5lclRhcmdldC5hcmlhRXJyb3JNZXNzYWdlRWxlbWVudEF0SW5kZXgoMCku
aXNFcXVhbChheEVycm9yMykgc2hvdWxkIGJlIHRydWUuIFRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnYXhJbm5lclRhcmdldC5hcmlh
RXJyb3JNZXNzYWdlRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbCcpCitQQVNTIGF4VGFyZ2V0Mi5h
cmlhRXJyb3JNZXNzYWdlRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheEVycm9yMSkgaXMgdHJ1
ZQorUEFTUyBheFRhcmdldDIuYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRBdEluZGV4KDEpLmlzRXF1
YWwoYXhFcnJvcjIpIGlzIHRydWUKK1BBU1MgYXhUYXJnZXQyLmFyaWFFcnJvck1lc3NhZ2VFbGVt
ZW50QXRJbmRleCgyKS5pc0VxdWFsKGF4RXJyb3IzKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCitTb21lIHRlc3RzIGZhaWxlZC4KKworVEVTVCBDT01QTEVURQorRmly
c3QgZXJyb3IKK1RhcmdldCAxCitTZWNvbmQgZXJyb3IKK1RhcmdldCAyCitUaGlyZCBlcnJvcgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlv
bi1hcmlhZXJyb3JtZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1l
bnQtcmVmbGVjdGlvbi1hcmlhZXJyb3JtZXNzYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5mNDkyYjQwMDU5M2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhZXJyb3JtZXNzYWdl
Lmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJlcnJvcjEiPkZp
cnN0IGVycm9yPC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQxIj5UYXJnZXQgMTwvZGl2PgorPGRpdiBp
ZD0id3JhcHBlciIgdGFiaW5kZXg9IjAiPgorICA8ZGl2IGNsYXNzPSJlcnJvciI+U2Vjb25kIGVy
cm9yPC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9InRhcmdldDIiPlRhcmdldCAyPC9kaXY+Cis8ZGl2
IGlkPSJlcnJvcjMiPlRoaXJkIGVycm9yPC9kaXY+Cis8eC10YXJnZXQ+PC94LXRhcmdldD4KKwor
PHNjcmlwdD4KKyAgY2xhc3MgWFRhcmdldCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBjb25z
dHJ1Y3RvcigpIHsKKyAgICAgIHN1cGVyKCk7CisgICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1v
ZGU6ICJvcGVuIiB9KTsKKyAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICAgIHRhcmdldC5pZCA9ICJpbm5lcnRhcmdldCI7CisgICAgICB0YXJnZXQu
dGV4dENvbnRlbnQgPSAiVGFyZ2V0IDMiOworICAgICAgdGFyZ2V0LmFyaWFFcnJvck1lc3NhZ2VF
bGVtZW50cyA9IFtlcnJvcjNdOworICAgICAgdGhpcy5zaGFkb3dSb290LmFwcGVuZENoaWxkKHRh
cmdldCk7CisgICAgfQorICB9CisgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgieC10YXJnZXQiLCBY
VGFyZ2V0KTsKKworICB0YXJnZXQxLmFyaWFFcnJvck1lc3NhZ2VFbGVtZW50cyA9IFtlcnJvcjFd
OworICB0YXJnZXQyLmFyaWFFcnJvck1lc3NhZ2VFbGVtZW50cyA9IFtkb2N1bWVudC5nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lKCJlcnJvciIpWzBdXTsKKworICBkZXNjcmlwdGlvbigiQ2hlY2tzIHRo
YXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4cG9zZWQgdG8gdGhlIGExMXkgdHJlZSBmb3IgJ2Fy
aWFFcnJvck1lc3NhZ2VFbGVtZW50cyciKTsKKyAgaWYgKCF3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyIik7CisgIH0gZWxzZSB7CisgICAgdmFyIGF4RXJyb3IxID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJlcnJvcjEiKTsKKyAgICB2YXIgYXhU
YXJnZXQxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0
YXJnZXQxIik7CisgICAgc2hvdWxkQmVUcnVlKCJheFRhcmdldDEuYXJpYUVycm9yTWVzc2FnZUVs
ZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhFcnJvcjEpIik7CisKKyAgICB2YXIgd3JhcHBlciA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgid3JhcHBlciIp
OworICAgIHZhciBheEVycm9yMiA9IHdyYXBwZXIuY2hpbGRBdEluZGV4KDApOworICAgIHZhciBh
eFRhcmdldDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
InRhcmdldDIiKTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5hcmlhRXJyb3JNZXNzYWdl
RWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheEVycm9yMikiKTsKKyAgICB0YXJnZXQyLnNldEF0
dHJpYnV0ZSgiYXJpYS1lcnJvcm1lc3NhZ2UiLCAiZXJyb3IxIik7CisgICAgc2hvdWxkQmVUcnVl
KCJheFRhcmdldDIuYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhF
cnJvcjEpIik7CisKKyAgICB2YXIgYXhFcnJvcjMgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoImVycm9yMyIpOworICAgIHZhciBheElubmVyVGFyZ2V0ID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJpbm5lcnRhcmdl
dCIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhJbm5lclRhcmdldC5hcmlhRXJyb3JNZXNzYWdlRWxl
bWVudEF0SW5kZXgoMCkuaXNFcXVhbChheEVycm9yMykiKTsKKworICAgIHRhcmdldDIuYXJpYUVy
cm9yTWVzc2FnZUVsZW1lbnRzID0gW2Vycm9yMSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgiZXJyb3IiKVswXSwgZXJyb3IzXTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5h
cmlhRXJyb3JNZXNzYWdlRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheEVycm9yMSkiKTsKKyAg
ICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5hcmlhRXJyb3JNZXNzYWdlRWxlbWVudEF0SW5kZXgo
MSkuaXNFcXVhbChheEVycm9yMikiKTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5hcmlh
RXJyb3JNZXNzYWdlRWxlbWVudEF0SW5kZXgoMikuaXNFcXVhbChheEVycm9yMykiKTsKKyAgfQor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQt
cmVmbGVjdGlvbi1hcmlhZmxvd3RvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFmbG93dG8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODNlNDZmZmVmYWMwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJp
YWZsb3d0by1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorQ2hlY2tzIHRoYXQgZWxlbWVu
dCByZWZsZWN0aW9uIGlzIGV4cG9zZWQgdG8gdGhlIGExMXkgdHJlZSBmb3IgJ2FyaWFGbG93VG9F
bGVtZW50cycKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXhUYXJnZXQx
LmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKGF4RmxvdzEpIGlzIHRydWUKK1BB
U1MgYXhUYXJnZXQyLmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKGF4RmxvdzIp
IGlzIHRydWUKK1BBU1MgYXhUYXJnZXQyLmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCgwKS5pc0Vx
dWFsKGF4RmxvdzEpIGlzIHRydWUKK0ZBSUwgYXhJbm5lclRhcmdldC5hcmlhRmxvd1RvRWxlbWVu
dEF0SW5kZXgoMCkuaXNFcXVhbChheEZsb3czKSBzaG91bGQgYmUgdHJ1ZS4gVGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdheElubmVy
VGFyZ2V0LmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsJykKK1BBU1MgYXhUYXJn
ZXQyLmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKGF4RmxvdzEpIGlzIHRydWUK
K1BBU1MgYXhUYXJnZXQyLmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCgxKS5pc0VxdWFsKGF4Rmxv
dzIpIGlzIHRydWUKK1BBU1MgYXhUYXJnZXQyLmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCgyKS5p
c0VxdWFsKGF4RmxvdzMpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
K1NvbWUgdGVzdHMgZmFpbGVkLgorCitURVNUIENPTVBMRVRFCitGaXJzdCBmbG93CitUYXJnZXQg
MQorU2Vjb25kIGZsb3cKK1RhcmdldCAyCitUaGlyZCBmbG93CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFmbG93dG8uaHRtbCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFmbG93dG8u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjk5YWJhMWNkNGRi
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1y
ZWZsZWN0aW9uLWFyaWFmbG93dG8uaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9ImZsb3cxIj5GaXJzdCBmbG93PC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQxIj5UYXJn
ZXQgMTwvZGl2PgorPGRpdiBpZD0id3JhcHBlciIgdGFiaW5kZXg9IjAiPgorICA8ZGl2IGNsYXNz
PSJmbG93Ij5TZWNvbmQgZmxvdzwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQyIj5UYXJn
ZXQgMjwvZGl2PgorPGRpdiBpZD0iZmxvdzMiPlRoaXJkIGZsb3c8L2Rpdj4KKzx4LXRhcmdldD48
L3gtdGFyZ2V0PgorCis8c2NyaXB0PgorICBjbGFzcyBYVGFyZ2V0IGV4dGVuZHMgSFRNTEVsZW1l
bnQgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgc3VwZXIoKTsKKyAgICAgIHRoaXMuYXR0
YWNoU2hhZG93KHsgbW9kZTogIm9wZW4iIH0pOworICAgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgdGFyZ2V0LmlkID0gImlubmVydGFyZ2V0IjsK
KyAgICAgIHRhcmdldC50ZXh0Q29udGVudCA9ICJUYXJnZXQgMyI7CisgICAgICB0YXJnZXQuYXJp
YUZsb3dUb0VsZW1lbnRzID0gW2Zsb3czXTsKKyAgICAgIHRoaXMuc2hhZG93Um9vdC5hcHBlbmRD
aGlsZCh0YXJnZXQpOworICAgIH0KKyAgfQorICBjdXN0b21FbGVtZW50cy5kZWZpbmUoIngtdGFy
Z2V0IiwgWFRhcmdldCk7CisKKyAgdGFyZ2V0MS5hcmlhRmxvd1RvRWxlbWVudHMgPSBbZmxvdzFd
OworICB0YXJnZXQyLmFyaWFGbG93VG9FbGVtZW50cyA9IFtkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCJmbG93IilbMF1dOworCisgIGRlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBlbGVt
ZW50IHJlZmxlY3Rpb24gaXMgZXhwb3NlZCB0byB0aGUgYTExeSB0cmVlIGZvciAnYXJpYUZsb3dU
b0VsZW1lbnRzJyIpOworICBpZiAoIXdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewor
ICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIiKTsK
KyAgfSBlbHNlIHsKKyAgICB2YXIgYXhGbG93MSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgiZmxvdzEiKTsKKyAgICB2YXIgYXhUYXJnZXQxID0gYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YXJnZXQxIik7CisgICAg
c2hvdWxkQmVUcnVlKCJheFRhcmdldDEuYXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KDApLmlzRXF1
YWwoYXhGbG93MSkiKTsKKworICAgIHZhciB3cmFwcGVyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ3cmFwcGVyIik7CisgICAgdmFyIGF4RmxvdzIgPSB3
cmFwcGVyLmNoaWxkQXRJbmRleCgwKTsKKyAgICB2YXIgYXhUYXJnZXQyID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0YXJnZXQyIik7CisgICAgc2hvdWxk
QmVUcnVlKCJheFRhcmdldDIuYXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhG
bG93MikiKTsKKyAgICB0YXJnZXQyLnNldEF0dHJpYnV0ZSgiYXJpYS1mbG93dG8iLCAiZmxvdzEi
KTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5hcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgo
MCkuaXNFcXVhbChheEZsb3cxKSIpOworCisgICAgdmFyIGF4RmxvdzMgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImZsb3czIik7CisgICAgdmFyIGF4SW5u
ZXJUYXJnZXQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
ImlubmVydGFyZ2V0Iik7CisgICAgc2hvdWxkQmVUcnVlKCJheElubmVyVGFyZ2V0LmFyaWFGbG93
VG9FbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKGF4RmxvdzMpIik7CisKKyAgICB0YXJnZXQyLmFy
aWFGbG93VG9FbGVtZW50cyA9IFtmbG93MSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSgiZmxvdyIpWzBdLCBmbG93M107CisgICAgc2hvdWxkQmVUcnVlKCJheFRhcmdldDIuYXJpYUZs
b3dUb0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhGbG93MSkiKTsKKyAgICBzaG91bGRCZVRy
dWUoImF4VGFyZ2V0Mi5hcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgoMSkuaXNFcXVhbChheEZsb3cy
KSIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYXJnZXQyLmFyaWFGbG93VG9FbGVtZW50QXRJbmRl
eCgyKS5pc0VxdWFsKGF4RmxvdzMpIik7CisgIH0KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWxhYmVsbGVkYnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rp
b24tYXJpYWxhYmVsbGVkYnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uZDZhMGI5YWJmM2M2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWxhYmVsbGVkYnktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0NoZWNrcyB0aGF0IGVsZW1lbnQgcmVmbGVjdGlvbiBp
cyBleHBvc2VkIHRvIHRoZSBhMTF5IHRyZWUgZm9yICdhcmlhTGFiZWxsZWRCeUVsZW1lbnRzJwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwbGF0Zm9ybVZhbHVlRm9yVzND
TmFtZShheElucHV0MSkgaXMgIkZpcnN0IGxhYmVsIgorUEFTUyBwbGF0Zm9ybVZhbHVlRm9yVzND
TmFtZShheElucHV0MikgaXMgIlNlY29uZCBsYWJlbCIKK1BBU1MgcGxhdGZvcm1WYWx1ZUZvclcz
Q05hbWUoYXhJbnB1dDIpIGlzICJGaXJzdCBsYWJlbCIKK1BBU1MgcGxhdGZvcm1WYWx1ZUZvclcz
Q05hbWUoYXhJbm5lcklucHV0KSBpcyAiVGhpcmQgbGFiZWwiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0ZpcnN0IGxhYmVsICBTZWNvbmQgbGFiZWwg
IFRoaXJkIGxhYmVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1l
bnQtcmVmbGVjdGlvbi1hcmlhbGFiZWxsZWRieS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYWxhYmVsbGVkYnkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg3NzdiOWNmNmJlYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFsYWJl
bGxlZGJ5Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8bGFiZWwgaWQ9Imxh
YmVsMSI+Rmlyc3QgbGFiZWw8L2xhYmVsPgorPGlucHV0IGlkPSJpbnB1dDEiPjwvaW5wdXQ+Cis8
bGFiZWw+U2Vjb25kIGxhYmVsPC9sYWJlbD4KKzxpbnB1dCBpZD0iaW5wdXQyIj48L2lucHV0Pgor
PGxhYmVsIGlkPSJsYWJlbDMiPlRoaXJkIGxhYmVsPC9sYWJlbD4KKzx4LWlucHV0PjwveC1pbnB1
dD4KKworPHNjcmlwdD4KKyAgY2xhc3MgWElucHV0IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICAg
IGNvbnN0cnVjdG9yKCkgeworICAgICAgc3VwZXIoKTsKKyAgICAgIHRoaXMuYXR0YWNoU2hhZG93
KHsgbW9kZTogIm9wZW4iIH0pOworICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTsKKyAgICAgIGlucHV0LmlkID0gImlubmVyaW5wdXQiOworICAgICAgaW5w
dXQuYXJpYUxhYmVsbGVkQnlFbGVtZW50cyA9IFtsYWJlbDNdOworICAgICAgdGhpcy5zaGFkb3dS
b290LmFwcGVuZENoaWxkKGlucHV0KTsKKyAgICB9CisgIH0KKyAgY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCJ4LWlucHV0IiwgWElucHV0KTsKKworICBpbnB1dDEuYXJpYUxhYmVsbGVkQnlFbGVtZW50
cyA9IFtsYWJlbDFdOworICBpbnB1dDIuYXJpYUxhYmVsbGVkQnlFbGVtZW50cyA9IFtkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGFiZWwiKVsxXV07CisKKyAgZGVzY3JpcHRpb24oIkNo
ZWNrcyB0aGF0IGVsZW1lbnQgcmVmbGVjdGlvbiBpcyBleHBvc2VkIHRvIHRoZSBhMTF5IHRyZWUg
Zm9yICdhcmlhTGFiZWxsZWRCeUVsZW1lbnRzJyIpOworICBpZiAoIXdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgeworICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIiKTsKKyAgfSBlbHNlIHsKKyAgICB2YXIgYXhJbnB1dDEgPSBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImlucHV0MSIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicGxhdGZvcm1WYWx1ZUZvclczQ05hbWUoYXhJbnB1dDEpIiwg
IkZpcnN0IGxhYmVsIik7CisKKyAgICB2YXIgYXhJbnB1dDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImlucHV0MiIpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicGxhdGZvcm1WYWx1ZUZvclczQ05hbWUoYXhJbnB1dDIpIiwgIlNlY29uZCBsYWJl
bCIpOworICAgIGlucHV0Mi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsICJsYWJlbDEi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBsYXRmb3JtVmFsdWVGb3JXM0NOYW1lKGF4
SW5wdXQyKSIsICJGaXJzdCBsYWJlbCIpOworCisgICAgdmFyIGF4SW5uZXJJbnB1dCA9IGFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiaW5uZXJpbnB1dCIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGxhdGZvcm1WYWx1ZUZvclczQ05hbWUoYXhJbm5l
cklucHV0KSIsICJUaGlyZCBsYWJlbCIpOworICB9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFvd25zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFy
aWFvd25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLjRlMTcxMWI1YTY5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvZWxlbWVudC1yZWZsZWN0aW9uLWFyaWFvd25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIyIEBACitDaGVja3MgdGhhdCBlbGVtZW50IHJlZmxlY3Rpb24gaXMgZXhwb3NlZCB0byB0aGUg
YTExeSB0cmVlIGZvciAnYXJpYU93bnNFbGVtZW50cycKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgYXhUYXJnZXQxLmFyaWFPd25zRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVh
bChheE93bjEpIGlzIHRydWUKK1BBU1MgYXhUYXJnZXQyLmFyaWFPd25zRWxlbWVudEF0SW5kZXgo
MCkuaXNFcXVhbChheE93bjIpIGlzIHRydWUKK1BBU1MgYXhUYXJnZXQyLmFyaWFPd25zRWxlbWVu
dEF0SW5kZXgoMCkuaXNFcXVhbChheE93bjEpIGlzIHRydWUKK0ZBSUwgYXhJbm5lclRhcmdldC5h
cmlhT3duc0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhPd24zKSBzaG91bGQgYmUgdHJ1ZS4g
VGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdheElubmVyVGFyZ2V0LmFyaWFPd25zRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbCcpCitQ
QVNTIGF4VGFyZ2V0Mi5hcmlhT3duc0VsZW1lbnRBdEluZGV4KDApLmlzRXF1YWwoYXhPd24xKSBp
cyB0cnVlCitQQVNTIGF4VGFyZ2V0Mi5hcmlhT3duc0VsZW1lbnRBdEluZGV4KDEpLmlzRXF1YWwo
YXhPd24yKSBpcyB0cnVlCitQQVNTIGF4VGFyZ2V0Mi5hcmlhT3duc0VsZW1lbnRBdEluZGV4KDIp
LmlzRXF1YWwoYXhPd24zKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CitTb21lIHRlc3RzIGZhaWxlZC4KKworVEVTVCBDT01QTEVURQorRmlyc3Qgb3duCitUYXJnZXQg
MQorU2Vjb25kIG93bgorVGFyZ2V0IDIKK1RoaXJkIG93bgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2VsZW1lbnQtcmVmbGVjdGlvbi1hcmlhb3ducy5odG1sIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9lbGVtZW50LXJlZmxlY3Rpb24tYXJpYW93bnMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhZDE2ZTNlNjJmNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZWxlbWVudC1yZWZsZWN0
aW9uLWFyaWFvd25zLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlk
PSJvd24xIj5GaXJzdCBvd248L2Rpdj4KKzxkaXYgaWQ9InRhcmdldDEiPlRhcmdldCAxPC9kaXY+
Cis8ZGl2IGlkPSJ3cmFwcGVyIiB0YWJpbmRleD0iMCI+CisgIDxkaXYgY2xhc3M9Im93biI+U2Vj
b25kIG93bjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJ0YXJnZXQyIj5UYXJnZXQgMjwvZGl2Pgor
PGRpdiBpZD0ib3duMyI+VGhpcmQgb3duPC9kaXY+Cis8eC10YXJnZXQ+PC94LXRhcmdldD4KKwor
PHNjcmlwdD4KKyAgY2xhc3MgWFRhcmdldCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBjb25z
dHJ1Y3RvcigpIHsKKyAgICAgIHN1cGVyKCk7CisgICAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1v
ZGU6ICJvcGVuIiB9KTsKKyAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICAgIHRhcmdldC5pZCA9ICJpbm5lcnRhcmdldCI7CisgICAgICB0YXJnZXQu
dGV4dENvbnRlbnQgPSAiVGFyZ2V0IDMiOworICAgICAgdGFyZ2V0LmFyaWFPd25zRWxlbWVudHMg
PSBbb3duM107CisgICAgICB0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKKyAg
ICB9CisgIH0KKyAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCJ4LXRhcmdldCIsIFhUYXJnZXQpOwor
CisgIHRhcmdldDEuYXJpYU93bnNFbGVtZW50cyA9IFtvd24xXTsKKyAgdGFyZ2V0Mi5hcmlhT3du
c0VsZW1lbnRzID0gW2RvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm93biIpWzBdXTsK
KworICBkZXNjcmlwdGlvbigiQ2hlY2tzIHRoYXQgZWxlbWVudCByZWZsZWN0aW9uIGlzIGV4cG9z
ZWQgdG8gdGhlIGExMXkgdHJlZSBmb3IgJ2FyaWFPd25zRWxlbWVudHMnIik7CisgIGlmICghd2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1
aXJlcyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIpOworICB9IGVsc2UgeworICAgIHZhciBheE93
bjEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoIm93bjEi
KTsKKyAgICB2YXIgYXhUYXJnZXQxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCJ0YXJnZXQxIik7CisgICAgc2hvdWxkQmVUcnVlKCJheFRhcmdldDEuYXJp
YU93bnNFbGVtZW50QXRJbmRleCgwKS5pc0VxdWFsKGF4T3duMSkiKTsKKworICAgIHZhciB3cmFw
cGVyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ3cmFw
cGVyIik7CisgICAgdmFyIGF4T3duMiA9IHdyYXBwZXIuY2hpbGRBdEluZGV4KDApOworICAgIHZh
ciBheFRhcmdldDIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5
SWQoInRhcmdldDIiKTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5hcmlhT3duc0VsZW1l
bnRBdEluZGV4KDApLmlzRXF1YWwoYXhPd24yKSIpOworICAgIHRhcmdldDIuc2V0QXR0cmlidXRl
KCJhcmlhLW93bnMiLCAib3duMSIpOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYXJnZXQyLmFyaWFP
d25zRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheE93bjEpIik7CisKKyAgICB2YXIgYXhPd24z
ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJvd24zIik7
CisgICAgdmFyIGF4SW5uZXJUYXJnZXQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3Np
YmxlRWxlbWVudEJ5SWQoImlubmVydGFyZ2V0Iik7CisgICAgc2hvdWxkQmVUcnVlKCJheElubmVy
VGFyZ2V0LmFyaWFPd25zRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheE93bjMpIik7CisKKyAg
ICB0YXJnZXQyLmFyaWFPd25zRWxlbWVudHMgPSBbb3duMSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgib3duIilbMF0sIG93bjNdOworICAgIHNob3VsZEJlVHJ1ZSgiYXhUYXJnZXQy
LmFyaWFPd25zRWxlbWVudEF0SW5kZXgoMCkuaXNFcXVhbChheE93bjEpIik7CisgICAgc2hvdWxk
QmVUcnVlKCJheFRhcmdldDIuYXJpYU93bnNFbGVtZW50QXRJbmRleCgxKS5pc0VxdWFsKGF4T3du
MikiKTsKKyAgICBzaG91bGRCZVRydWUoImF4VGFyZ2V0Mi5hcmlhT3duc0VsZW1lbnRBdEluZGV4
KDIpLmlzRXF1YWwoYXhPd24zKSIpOworICB9Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>