<?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>151380</bug_id>
          
          <creation_ts>2015-11-17 21:52:21 -0800</creation_ts>
          <short_desc>Selection should work across shadow boundary when initiated by a mouse drag</short_desc>
          <delta_ts>2019-02-14 01:40:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>koivisto</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1142761</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-11-17 21:52:21 -0800</bug_when>
    <thetext>User should be able to select contents across a shadow boundary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159234</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-26 23:51:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/24363872&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463115</commentid>
    <comment_count>2</comment_count>
      <attachid>350744</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-25 02:09:27 -0700</bug_when>
    <thetext>Created attachment 350744
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463118</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-25 02:34:45 -0700</bug_when>
    <thetext>Attachment 350744 did not pass style-queue:


ERROR: Source/WebCore/editing/VisibleSelection.cpp:533:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 1 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463539</commentid>
    <comment_count>4</comment_count>
      <attachid>350851</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 02:16:10 -0700</bug_when>
    <thetext>Created attachment 350851
Adds new behavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463540</commentid>
    <comment_count>5</comment_count>
      <attachid>350851</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-26 02:46:56 -0700</bug_when>
    <thetext>Comment on attachment 350851
Adds new behavior

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

&gt; Source/WebCore/editing/VisibleSelection.cpp:525
&gt; +/*
&gt; +    for (RefPtr&lt;Element&gt; host = shadowRoot-&gt;host(); host; ) {
&gt; +        if (host-&gt;hasEditableStyle())
&gt; +            return true;
&gt; +        auto* nextRoot = host-&gt;containingShadowRoot();
&gt; +        if (!nextRoot)
&gt; +            break;
&gt; +        host = nextRoot-&gt;host();
&gt; +    }
&gt; +*/

Why is this code commented out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463541</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 02:53:19 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; Comment on attachment 350851 [details]
&gt; Adds new behavior
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350851&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:525
&gt; &gt; +/*
&gt; &gt; +    for (RefPtr&lt;Element&gt; host = shadowRoot-&gt;host(); host; ) {
&gt; &gt; +        if (host-&gt;hasEditableStyle())
&gt; &gt; +            return true;
&gt; &gt; +        auto* nextRoot = host-&gt;containingShadowRoot();
&gt; &gt; +        if (!nextRoot)
&gt; &gt; +            break;
&gt; &gt; +        host = nextRoot-&gt;host();
&gt; &gt; +    }
&gt; &gt; +*/
&gt; 
&gt; Why is this code commented out?

Oh oops, that code was there to make sure a test catches a bug. This commented out code is wrong in some edge case, and needs to be removed. Sorry, forgot to remove it :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463543</commentid>
    <comment_count>7</comment_count>
      <attachid>350851</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-26 02:54:13 -0700</bug_when>
    <thetext>Comment on attachment 350851
Adds new behavior

Ok, r=me without the commented out part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463544</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 02:54:30 -0700</bug_when>
    <thetext>I should actually turn this off by default since supporting selecting across shadow boundaries is useless until copy &amp; paste or JS API support is added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463545</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 02:54:56 -0700</bug_when>
    <thetext>Thanks for the review! Would you still stand by your r=me if I disabled the feature by default??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463546</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-26 02:58:46 -0700</bug_when>
    <thetext>Sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463682</commentid>
    <comment_count>11</comment_count>
      <attachid>350881</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 12:27:11 -0700</bug_when>
    <thetext>Created attachment 350881
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463683</commentid>
    <comment_count>12</comment_count>
      <attachid>350881</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 12:27:50 -0700</bug_when>
    <thetext>Comment on attachment 350881
Patch for landing

Wait for EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463686</commentid>
    <comment_count>13</comment_count>
      <attachid>350882</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 12:30:25 -0700</bug_when>
    <thetext>Created attachment 350882
Removed the dead code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463688</commentid>
    <comment_count>14</comment_count>
      <attachid>350882</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 12:32:14 -0700</bug_when>
    <thetext>Comment on attachment 350882
Removed the dead code

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

&gt; Source/WebCore/editing/VisibleSelection.cpp:541
&gt; -        m_extent = adjustPositionForEnd(m_end, m_start.containerNode());
&gt; +        m_extent = adjustPositionForEnd(m_end, startNode.ptr());

Hm... on my second thought, this change is probably not right. containerNode of a position isn&apos;t always anchorNode.

&gt; Source/WebCore/editing/VisibleSelection.cpp:544
&gt; -        m_extent = adjustPositionForStart(m_start, m_end.containerNode());
&gt; +        m_extent = adjustPositionForStart(m_start, endNode.ptr());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463692</commentid>
    <comment_count>15</comment_count>
      <attachid>350882</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-09-26 12:43:56 -0700</bug_when>
    <thetext>Comment on attachment 350882
Removed the dead code

r=me (and antti)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463705</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 13:02:59 -0700</bug_when>
    <thetext>Committed r236519: &lt;https://trac.webkit.org/changeset/236519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463729</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-09-26 13:33:37 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #14)
&gt; Comment on attachment 350882 [details]
&gt; Removed the dead code
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350882&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:541
&gt; &gt; -        m_extent = adjustPositionForEnd(m_end, m_start.containerNode());
&gt; &gt; +        m_extent = adjustPositionForEnd(m_end, startNode.ptr());
&gt; 
&gt; Hm... on my second thought, this change is probably not right. containerNode
&gt; of a position isn&apos;t always anchorNode.
&gt; 
&gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:544
&gt; &gt; -        m_extent = adjustPositionForStart(m_start, m_end.containerNode());
&gt; &gt; +        m_extent = adjustPositionForStart(m_start, endNode.ptr());
&gt; 
&gt; Ditto.

Fixed these in Fixedhttps://trac.webkit.org/changeset/236522.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506095</commentid>
    <comment_count>18</comment_count>
      <attachid>350882</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2019-02-14 01:19:28 -0800</bug_when>
    <thetext>Comment on attachment 350882
Removed the dead code

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

&gt; Source/WebKit/Shared/WebPreferences.yaml:1349
&gt;  AriaReflectionEnabled:
&gt;    type: bool
&gt; -  defaultValue: true
&gt; +  defaultValue: false

Why did this patch disable ARIA Reflection? Seems unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506096</commentid>
    <comment_count>19</comment_count>
      <attachid>350882</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-02-14 01:22:42 -0800</bug_when>
    <thetext>Comment on attachment 350882
Removed the dead code

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

&gt;&gt; Source/WebKit/Shared/WebPreferences.yaml:1349
&gt;&gt; +  defaultValue: false
&gt; 
&gt; Why did this patch disable ARIA Reflection? Seems unrelated.

Indeed it doesn&apos;t seem related. I don&apos;t know how that happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506104</commentid>
    <comment_count>20</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2019-02-14 01:40:48 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #19)
&gt; Comment on attachment 350882 [details]
&gt; Removed the dead code
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350882&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/Shared/WebPreferences.yaml:1349
&gt; &gt;&gt; +  defaultValue: false
&gt; &gt; 
&gt; &gt; Why did this patch disable ARIA Reflection? Seems unrelated.
&gt; 
&gt; Indeed it doesn&apos;t seem related. I don&apos;t know how that happened.

Put up a patch

https://bugs.webkit.org/show_bug.cgi?id=194647</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350744</attachid>
            <date>2018-09-25 02:09:27 -0700</date>
            <delta_ts>2018-09-26 02:16:09 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip151380.patch</filename>
            <type>text/plain</type>
            <size>2346</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAkocmV2
aXNpb24gMjM2NDQ3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA0LDIzICs1MDQsNDkgQEAKICAgICByZXR1cm4gUG9z
aXRpb24oKTsKIH0KIAorLypzdGF0aWMgUmVmPE5vZGU+IG1vdmVPdXRPZlVzZXJBZ2VudFNoYWRv
d1RyZWVzKE5vZGUmIHN0YXJ0aW5nTm9kZSkKK3sKKyAgICBSZWY8Tm9kZT4gY3VycmVudE5vZGUg
PSBzdGFydGluZ05vZGU7CisgICAgd2hpbGUgKGF1dG8qIHNoYWRvd1Jvb3QgPSBjdXJyZW50Tm9k
ZS0+Y29udGFpbmluZ1NoYWRvd1Jvb3QoKSkgeworICAgICAgICBpZiAoc2hhZG93Um9vdC0+bW9k
ZSgpICE9IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdlbnQpCisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgYXV0byogaG9zdCA9IHNoYWRvd1Jvb3QtPmhvc3QoKTsKKyAgICAgICAgQVNTRVJUKGhv
c3QpOworICAgICAgICBjdXJyZW50Tm9kZSA9ICpob3N0OworICAgIH0KKyAgICByZXR1cm4gY3Vy
cmVudE5vZGU7Cit9Ki8KKwogdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25U
b0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKCkKIHsKICAgICBpZiAobV9iYXNlLmlzTnVs
bCgpIHx8IG1fc3RhcnQuaXNOdWxsKCkgfHwgbV9lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmICgmbV9zdGFydC5hbmNob3JOb2RlKCktPnRyZWVTY29wZSgpID09ICZtX2Vu
ZC5hbmNob3JOb2RlKCktPnRyZWVTY29wZSgpKQorICAgIGF1dG8mIHN0YXJ0Tm9kZSA9ICptX3N0
YXJ0LmFuY2hvck5vZGUoKTsKKyAgICBhdXRvJiBlbmROb2RlID0gKm1fZW5kLmFuY2hvck5vZGUo
KTsKKyAgICBpZiAoJnN0YXJ0Tm9kZS50cmVlU2NvcGUoKSA9PSAmZW5kTm9kZS50cmVlU2NvcGUo
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byogc3RhcnRTaGFkb3dSb290ID0gc3RhcnRO
b2RlLmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CisgICAgYXV0byogZW5kU2hhZG93Um9vdCA9IGVu
ZE5vZGUuY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsKKyAgICBpZiAoKCFzdGFydFNoYWRvd1Jvb3Qg
fHwgc3RhcnRTaGFkb3dSb290LT5tb2RlKCkgIT0gU2hhZG93Um9vdE1vZGU6OlVzZXJBZ2VudCkK
KyAgICAgICAgICYmICghZW5kU2hhZG93Um9vdCB8fCBlbmRTaGFkb3dSb290LT5tb2RlKCkgIT0g
U2hhZG93Um9vdE1vZGU6OlVzZXJBZ2VudCkpCisgICAgICAgIHJldHVybjsKKworLyogICAgYXV0
byBzdGFydE5vZGUgPSBtb3ZlT3V0T2ZVc2VyQWdlbnRTaGFkb3dUcmVlcygqbV9zdGFydC5hbmNo
b3JOb2RlKCkpOworICAgIGF1dG8gZW5kTm9kZSA9IG1vdmVPdXRPZlVzZXJBZ2VudFNoYWRvd1Ry
ZWVzKCptX2VuZC5hbmNob3JOb2RlKCkpOworICAgIGJvb2wgc3RhcnROZWVkc0FkanVzdG1lbnQg
PSBzdGFydE5vZGUucHRyKCkgIT0gbV9zdGFydC5hbmNob3JOb2RlKCk7CisgICAgYm9vbCBlbmRO
ZWVkc0FkanVzdG1lbnQgPSBlbmROb2RlLnB0cigpICE9IG1fZW5kLmFuY2hvck5vZGUoKTsKKyAg
ICBpZiAoIXN0YXJ0TmVlZHNBZGp1c3RtZW50ICYmICFlbmROZWVkc0FkanVzdG1lbnQpCisgICAg
ICAgIHJldHVybjsqLworCiAgICAgaWYgKG1fYmFzZUlzRmlyc3QpIHsKLSAgICAgICAgbV9leHRl
bnQgPSBhZGp1c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgbV9zdGFydC5jb250YWluZXJOb2RlKCkp
OworICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yRW5kKG1fZW5kLCBtX3N0YXJ0
LmFuY2hvck5vZGUoKSk7CiAgICAgICAgIG1fZW5kID0gbV9leHRlbnQ7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvclN0YXJ0KG1fc3RhcnQsIG1fZW5k
LmNvbnRhaW5lck5vZGUoKSk7CisgICAgICAgIG1fZXh0ZW50ID0gYWRqdXN0UG9zaXRpb25Gb3JT
dGFydChtX3N0YXJ0LCBtX2VuZC5hbmNob3JOb2RlKCkpOwogICAgICAgICBtX3N0YXJ0ID0gbV9l
eHRlbnQ7CiAgICAgfQotCi0gICAgQVNTRVJUKCZtX3N0YXJ0LmFuY2hvck5vZGUoKS0+dHJlZVNj
b3BlKCkgPT0gJm1fZW5kLmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCkpOwogfQogCiB2b2lkIFZp
c2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdCb3Vu
ZGFyaWVzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350851</attachid>
            <date>2018-09-26 02:16:10 -0700</date>
            <delta_ts>2018-09-26 12:27:08 -0700</delta_ts>
            <desc>Adds new behavior</desc>
            <filename>bug-151380-20180926021609.patch</filename>
            <type>text/plain</type>
            <size>36411</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA5LTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFNlbGVjdGlvbiBzaG91bGQgd29y
ayBhY3Jvc3Mgc2hhZG93IGJvdW5kYXJ5IHdoZW4gaW5pdGlhdGVkIGJ5IGEgbW91c2UgZHJhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDM2Mzg3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGJhc2ljIHN1cHBv
cnQgZm9yIHNlbGVjdGluZyBjb250ZW50IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgdG8g
VmlzaWJsZVNlbGVjdGlvbiwKKyAgICAgICAgd2hpY2ggaXMgZW5vdWdoIHRvIGFsbG93IHVzZXJz
IHRvIHNlbGVjdCBjb250ZW50IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgdmlhIGEgbW91
c2UgZHJhZy4KKworICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIGFsbG93aW5nIHVz
ZXJzIHRvIHNlbGVjdCwgY29weSBhbmQgcGFzdGUgY29udGVudCBhY3Jvc3Mgc2hhZG93IERPTSBi
b3VuZGFyaWVzLAorICAgICAgICB3aGljaCBpcyBhIHNlcmlvdXMgdXNlciBleHBlcmllbmNlIHJl
Z3Jlc3Npb24gcmlnaHQgbm93LiBUaGUgbmV3IGJlaGF2aW9yIGlzIGVuYWJsZWQgYnkgZGVmYXVs
dCB1bmRlcgorICAgICAgICBhbiBpbnRlcmFsIGRlYnVnIGZlYXR1cmUgZmxhZzogc2VsZWN0aW9u
QWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQuCisKKyAgICAgICAgTGlrZSBDaHJvbWUsIHdl
IGFyZSBub3QgZ29pbmcgdG8gc3VwcG9ydCBzZWxlY3RpbmcgZWRpdGFibGUgY29udGVudCBhY3Jv
c3Mgc2hhZG93IERPTSBib3VuZGFyaWVzIHNpbmNlCisgICAgICAgIHdlJ2QgaGF2ZSB0byBnZW5l
cmFsaXplIGV2ZXJ5IGVkaXRpbmcgY29tbWFuZHMgdG8gbWFrZSB0aGF0IHdvcmssIGFuZCB0aGVy
ZSBhcmVuJ3QgYW55IEhUTUwgZWRpdG9ycyB0aGF0CisgICAgICAgIHVzZSBzaGFkb3cgRE9NIGJv
dW5kYXJpZXMgd2l0aGluIGFuIGVkaXRhYmxlIHJlZ2lvbiB5ZXQuIEZvciBzaW1wbGljaXR5LCB3
ZSBhbHNvIGRvbid0IHN1cHBvcnQgZXh0ZW5kaW5nCisgICAgICAgIGEgc2VsZWN0aW9uIG91dCBv
ZiBhIHNoYWRvdyByb290IHdoaWNoIHJlc2lkZXMgaW5zaWRlIGFuIGVkaXRpbmcgcmVnaW9uLgor
CisgICAgICAgIFRoZSBrZXlib2FyZCBiYXNlZCBuYXZpZ2F0aW9uICYgbWFuaXB1bGF0aW9uIG9m
IHNlbGVjdGlvbiBhcyB3ZWxsIGFzIGFsbG93aW5nIGNvcHkgJiBwYXN0ZSBvZiBjb250ZW50Cisg
ICAgICAgIGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgd2lsbCBiZSBpbXBsZW1lbnRlZCBi
eSBzZXBhcmF0ZSBwYXRjaGVzLiBET01TZWxlY3Rpb24gd2lsbCBub3QgZXhwb3NlIHRoaXMgbmV3
CisgICAgICAgIGJlaGF2aW9yIGVpdGhlci4gVGhpcyBpcyB0cmFja2VkIGluIHRoZSBzcGVjIGFz
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViY29tcG9uZW50cy9pc3N1ZXMvNzkKKworICAgICAg
ICBUZXN0czogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRh
cmllcy1taXhlZC1lZGl0YWJpbGl0eS0xLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxp
dHktMi5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNy
b3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMuaHRtbAorICAgICAgICAg
ICAgICAgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmll
cy1taXhlZC1lZGl0YWJpbGl0eS00Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHkt
NS5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3Nz
LXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEuaHRtbAorICAgICAgICAgICAgICAgZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0y
Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0
LWFsbC0xLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFk
b3dBbmNlc3Rvcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6
YWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcyk6IFdoZW4gdGhl
IGZlYXR1cmUgaXMgZW5hYmxlZCwKKyAgICAgICAgYWxsb3cgY3Jvc3Npbmcgc2hhZG93IERPTSBi
b3VuZGFyaWVzIGV4Y2VwdCB3aGVuIGVpdGhlciBlbmQgaXMgaW5zaWRlIGFuIHVzZXIgYWdlbnQg
c2hhZG93IHJvb3QsIG9yIG9uZSBvZgorICAgICAgICBpdHMgc2hhZG93IGluY2x1ZGlnbiBhbmNl
c3RvciBpcyBpbnNpZGUgYW4gZWRpdGFibGUgcmVnaW9uLiBUaGUgbGF0dGVyIGNoZWNrIGlzIG5l
ZWRlZCB0byBkaXNhbGxvdworICAgICAgICBhbiBleHRlbnNpb24gb2YgYSBzZWxlY3Rpb24gc3Rh
cnRpbmcgaW4gYSBzaGFkb3cgdHJlZSBpbnNpZGUgYSBub24tZWRpdGFibGUgcmVnaW9uIGluc2lk
ZSBhbiBlZGl0YWJsZSByZWdpb24KKyAgICAgICAgdG8gb3V0c2lkZSB0aGUgZWRpdGFibGUgcmVn
aW9uLiBUaGUgcmVzdCBvZiB0aGUgZWRpdGluZyBjb2RlIGlzIG5vdCByZWFkeSB0byBkZWFsIHdp
dGggc2VsZWN0aW9uIGxpa2UgdGhhdC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IEFk
ZGVkIGFuIGludGVybmFsIGRlYnVnIGZlYXR1cmUgdG8gZW5hYmxlIHRoaXMgbmV3IGJlaGF2aW9y
LgorCiAyMDE4LTA5LTI1ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViR0wgMiBDb25mb3JtYW5jZTogcHJpbWl0aXZlIHJlc3RhcnQgYW5kIGRyYXdfcHJp
bWl0aXZlX3Jlc3RhcnQgV2ViR0wyIHNhbXBsZQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCShyZXZpc2lvbiAyMzY0OTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRl
IDxzdGRpby5oPgpAQCAtNTA0LDIzICs1MDUsNTQgQEAgUG9zaXRpb24gVmlzaWJsZVNlbGVjdGlv
bjo6YWRqdXN0UG9zaXRpbwogICAgIHJldHVybiBQb3NpdGlvbigpOwogfQogCitzdGF0aWMgYm9v
bCBpc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFkb3dBbmNlc3RvcihOb2Rl
JiBub2RlKQoreworICAgIGF1dG8qIHNoYWRvd1Jvb3QgPSBub2RlLmNvbnRhaW5pbmdTaGFkb3dS
b290KCk7CisgICAgaWYgKCFzaGFkb3dSb290KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoc2hhZG93Um9vdC0+bW9kZSgpID09IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdlbnQpCisg
ICAgICAgIHJldHVybiB0cnVlOworLyoKKyAgICBmb3IgKFJlZlB0cjxFbGVtZW50PiBob3N0ID0g
c2hhZG93Um9vdC0+aG9zdCgpOyBob3N0OyApIHsKKyAgICAgICAgaWYgKGhvc3QtPmhhc0VkaXRh
YmxlU3R5bGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBhdXRvKiBuZXh0
Um9vdCA9IGhvc3QtPmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CisgICAgICAgIGlmICghbmV4dFJv
b3QpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaG9zdCA9IG5leHRSb290LT5ob3N0KCk7
CisgICAgfQorKi8KKyAgICBmb3IgKFJlZlB0cjxOb2RlPiBjdXJyZW50Tm9kZSA9ICZub2RlOyBj
dXJyZW50Tm9kZTsgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+cGFyZW50T3JTaGFkb3dIb3N0
Tm9kZSgpKSB7CisgICAgICAgIGlmIChjdXJyZW50Tm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFk
b3dCb3VuZGFyaWVzKCkKIHsKICAgICBpZiAobV9iYXNlLmlzTnVsbCgpIHx8IG1fc3RhcnQuaXNO
dWxsKCkgfHwgbV9lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICgmbV9z
dGFydC5hbmNob3JOb2RlKCktPnRyZWVTY29wZSgpID09ICZtX2VuZC5hbmNob3JOb2RlKCktPnRy
ZWVTY29wZSgpKQorICAgIGF1dG8gc3RhcnROb2RlID0gbWFrZVJlZigqbV9zdGFydC5hbmNob3JO
b2RlKCkpOworICAgIGF1dG8gZW5kTm9kZSA9IG1ha2VSZWYoKm1fZW5kLmFuY2hvck5vZGUoKSk7
CisgICAgaWYgKCZzdGFydE5vZGUtPnRyZWVTY29wZSgpID09ICZlbmROb2RlLT50cmVlU2NvcGUo
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHN0YXJ0Tm9kZS0+ZG9jdW1lbnQoKS5zZXR0
aW5ncygpLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkKCkpIHsKKyAgICAg
ICAgaWYgKCFpc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFkb3dBbmNlc3Rv
cihzdGFydE5vZGUpCisgICAgICAgICAgICAmJiAhaXNJblVzZXJBZ2VudFNoYWRvd1Jvb3RPckhh
c0VkaXRhYmxlU2hhZG93QW5jZXN0b3IoZW5kTm9kZSkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKG1fYmFzZUlzRmlyc3QpIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1
c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgbV9zdGFydC5jb250YWluZXJOb2RlKCkpOworICAgICAg
ICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yRW5kKG1fZW5kLCBzdGFydE5vZGUucHRyKCkp
OwogICAgICAgICBtX2VuZCA9IG1fZXh0ZW50OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fZXh0
ZW50ID0gYWRqdXN0UG9zaXRpb25Gb3JTdGFydChtX3N0YXJ0LCBtX2VuZC5jb250YWluZXJOb2Rl
KCkpOworICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yU3RhcnQobV9zdGFydCwg
ZW5kTm9kZS5wdHIoKSk7CiAgICAgICAgIG1fc3RhcnQgPSBtX2V4dGVudDsKICAgICB9Ci0KLSAg
ICBBU1NFUlQoJm1fc3RhcnQuYW5jaG9yTm9kZSgpLT50cmVlU2NvcGUoKSA9PSAmbV9lbmQuYW5j
aG9yTm9kZSgpLT50cmVlU2NvcGUoKSk7CiB9CiAKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRq
dXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nRWRpdGluZ0JvdW5kYXJpZXMoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkocmV2aXNpb24gMjM2NDkzKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0zODksNiArMzg5LDggQEAg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkOgogICBpbml0aWFsOiBkZWZhdWx0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkCiBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOgogICBpbml0aWFs
OiBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAorc2VsZWN0aW9uQWNyb3Nz
U2hhZG93Qm91bmRhcmllc0VuYWJsZWQ6CisgIGluaXRpYWw6IHRydWUKIAogdXNlTGVnYWN5QmFj
a2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcjoKICAgaW5pdGlhbDogZmFsc2UKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMzY0OTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA5LTI2ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIFNlbGVjdGlvbiBzaG91bGQgd29yayBhY3Jvc3Mgc2hh
ZG93IGJvdW5kYXJ5IHdoZW4gaW5pdGlhdGVkIGJ5IGEgbW91c2UgZHJhZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzgwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNDM2Mzg3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxl
ZCBhcyBhbiBpbnRlcm5hbCBkZWJ1ZyBmZWF0dXJlLAorICAgICAgICBhbmQgbW92ZWQgQ1NTQ3Vz
dG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQgdG8gd2hlcmUgb3RoZXIgZXhwZXJpbWVudGFs
IGZlYXR1cmVzIGFyZSBsb2NhdGVkLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWw6CisKIDIwMTgtMDktMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgTWFrZSBmcmFtZSBmbGF0dGVuaW5nIGFuIGludGVybmFsIGRlYnVnIGZlYXR1cmUK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAkocmV2aXNpb24g
MjM2NDkzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAkod29y
a2luZyBjb3B5KQpAQCAtMTI1NCw2ICsxMjU0LDE0IEBAIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAg
IHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIHdlYmNvcmVOYW1lOiBz
ZXJ2ZXJUaW1pbmdFbmFibGVkCiAKK0NTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVk
OgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5h
bWU6ICJDU1MgQ3VzdG9tIFByb3BlcnRpZXMgYW5kIFZhbHVlcyBBUEkiCisgIGh1bWFuUmVhZGFi
bGVEZXNjcmlwdGlvbjogIkVuYWJsZSBDU1MgQ3VzdG9tIFByb3BlcnRpZXMgYW5kIFZhbHVlcyBB
UEkiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCisgIGNhdGVnb3J5
OiBleHBlcmltZW50YWwKKwogIyBGb3IgaW50ZXJuYWwgZmVhdHVyZXM6CiAjIFRoZSB0eXBlIHNo
b3VsZCBiZSBib29sZWFuLgogIyBZb3UgbXVzdCBwcm92aWRlIGEgaHVtYW5SZWFkYWJsZU5hbWUg
YW5kIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbiBmb3IgYWxsIGRlYnVnIGZlYXR1cmVzLiBUaGV5
CkBAIC0xMzUyLDEwICsxMzYwLDEwIEBAIFdlYkFQSVN0YXRpc3RpY3NFbmFibGVkOgogICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjYXRlZ29yeTogaW50ZXJuYWwK
IAotQ1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlc0VuYWJsZWQ6CitTZWxlY3Rpb25BY3Jvc3NT
aGFkb3dCb3VuZGFyaWVzRW5hYmxlZDoKICAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6IGZh
bHNlCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAiQ1NTIEN1c3RvbSBQcm9wZXJ0aWVzIGFuZCBWYWx1
ZXMgQVBJIgotICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQ1NTIEN1c3RvbSBQ
cm9wZXJ0aWVzIGFuZCBWYWx1ZXMgQVBJIgotICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJs
ZWRGZWF0dXJlcwotICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisgIGRlZmF1bHRWYWx1ZTogdHJ1
ZQorICBodW1hblJlYWRhYmxlTmFtZTogIlNlbGVjdGlvbiBhY3Jvc3Mgc2hhZG93IERPTSIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQWxsb3cgdXNlci1pbml0aWF0ZWQgc2VsZWN0aW9u
IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMiCisgIGNhdGVnb3J5OiBpbnRlcm5hbAorICB3
ZWJjb3JlTmFtZTogc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIzNjQ5MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE4LTA5LTI2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgorCisgICAgICAgIFNlbGVjdGlvbiBzaG91bGQgd29yayBhY3Jvc3Mgc2hhZG93
IGJvdW5kYXJ5IHdoZW4gaW5pdGlhdGVkIGJ5IGEgbW91c2UgZHJhZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzgwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yNDM2Mzg3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCByZWdyZXNzaW9uIHRlc3RzIHVzaW5nIHJlZiB0ZXN0cyBzaW5jZSBn
ZXRTZWxlY3Rpb24oKSBkb2Vzbid0IGV4cG9zZSBhbnkgbm9kZSBpbnNpZGUgYSBzaGFkb3cgdHJl
ZS4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93
LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFy
aWVzLW1peGVkLWVkaXRhYmlsaXR5LTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJp
bGl0eS0yLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3Nz
LXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ct
Ym91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQt
ZWRpdGFiaWxpdHktNC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmls
aXR5LTQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9u
LWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS01LWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVz
LXJlYWRvbmx5LTEtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0xLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hh
ZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJl
YWRvbmx5LTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0
aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0zLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93
LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0LWFs
bC0xLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3QtYWxsLTEuaHRtbDog
QWRkZWQuCisKIDIwMTgtMDktMjUgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWJHTCAyIENvbmZvcm1hbmNlOiBwcmltaXRpdmUgcmVzdGFydCBhbmQgZHJh
d19wcmltaXRpdmVfcmVzdGFydCBXZWJHTDIgc2FtcGxlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVk
aXRhYmlsaXR5LTEtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVk
aXRhYmlsaXR5LTEtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVk
LWVkaXRhYmlsaXR5LTEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVj
dGluZyBjb250ZW50IHN0YXJ0aW5nIGluIGFuIGVkaXRhYmxlIGVsZW1lbnQgdG8gYSBzaGFkb3cg
dHJlZS48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBi
eSBhIG1vdXNlIGRyYWcgZnJvbSAiaCIgdG8gImQiLiBXZWJLaXQgc2hvdWxkIG9ubHkgc2VsZWN0
ICJoZWxsbyIuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFibGU+aGVsbG8g
PGRpdj53b3JsZDwvZGl2PjwvZGl2PgorPHNjcmlwdD4KK2NvbnRhaW5lci5mb2N1cygpOworZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChjb250YWluZXIsIDAsIGNvbnRhaW5lciwgMSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFi
aWxpdHktMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMS5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYW4gZWRp
dGFibGUgZWxlbWVudCB0byBhIHNoYWRvdyB0cmVlLjxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNl
bGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZyBmcm9tICJoIiB0byAiZCIu
IFdlYktpdCBzaG91bGQgb25seSBzZWxlY3QgImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJjb250YWlu
ZXIiIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyA8L2Rpdj4KKzxzY3JpcHQ+CisKK2NvbnN0IGhvc3Qg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnRhaW5lci5hcHBlbmRDaGlsZCho
b3N0KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3Nl
ZCd9KTsKK3NoYWRvd1Jvb3QudGV4dENvbnRlbnQgPSAnd29ybGQnOworCitpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIDEsIGNvbnRhaW5lci5v
ZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIGNvbnRhaW5lci5vZmZzZXRX
aWR0aCAtIDUsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyBjb250YWluZXIub2Zmc2V0SGVpZ2h0IC0g
NSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5z
dGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVu
dC53cml0ZSgiVGhlIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1
bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lciAhPSBnZXRTZWxl
Y3Rpb24oKS5lbmRDb250YWluZXIpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgZW5kIGNv
bnRhaW5lciB3YXMgZGlmZmVyZW50IGZyb20gdGhlIHN0YXJ0IGNvbnRhaW5lciIpOworICAgIGlm
IChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2Rl
KCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBzdGFy
dCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAo
Z2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIgIT0gZ2V0U2VsZWN0aW9u
KCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lcikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUo
IlRoZSByYW5nZSdzIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVudCBmcm9tIGl0cyBzdGFydCBj
b250YWluZXIiKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFy
aWVzLW1peGVkLWVkaXRhYmlsaXR5LTItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFy
aWVzLW1peGVkLWVkaXRhYmlsaXR5LTItZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3Vu
ZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTItZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5nIGluIGEgc2hhZG93IHRyZWUgb3V0IHRv
IGFuIGVkaXRhYmxlIGVsZW1lbnQuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxs
byB3b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gImgiIHRvICJkIi4gV2ViS2l0IHNo
b3VsZCBvbmx5IHNlbGVjdCAiaGVsbG8iLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVu
dGVkaXRhYmxlPmhlbGxvIDxkaXY+d29ybGQ8L2Rpdj48L2Rpdj4KKzxzY3JpcHQ+Citjb250YWlu
ZXIuZm9jdXMoKTsKK2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoY29udGFpbmVyLCAw
LCBjb250YWluZXIsIDEpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFy
aWVzLW1peGVkLWVkaXRhYmlsaXR5LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVk
LWVkaXRhYmlsaXR5LTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRh
YmlsaXR5LTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0
YXJ0aW5nIGluIGEgc2hhZG93IHRyZWUgb3V0IHRvIGFuIGVkaXRhYmxlIGVsZW1lbnQuPGJyPgor
VG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBk
cmFnIGZyb20gImgiIHRvICJkIi4gV2ViS2l0IHNob3VsZCBvbmx5IHNlbGVjdCAiaGVsbG8iLjwv
cD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPndvcmxkPC9kaXY+Cis8c2Ny
aXB0PgorCitjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb250
YWluZXIucHJlcGVuZChob3N0KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRv
dyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QudGV4dENvbnRlbnQgPSAnaGVsbG8gJzsK
KworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0g
ZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQg
KyAxLCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyBj
b250YWluZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgY29udGFpbmVy
Lm9mZnNldEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBpZiAo
Z2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkK
KyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBjb250YWluZXIncyByb290IG5vZGUg
d2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250
YWluZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZW5kQ29udGFpbmVyKQorICAgICAgICBkb2N1bWVudC53
cml0ZSgiVGhlIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVudCBmcm9tIHRoZSBzdGFydCBjb250
YWluZXIiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRh
aW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgi
VGhlIHJhbmdlJ3Mgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3Vt
ZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVy
ICE9IGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIpCisgICAgICAg
IGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQg
ZnJvbSBpdHMgc3RhcnQgY29udGFpbmVyIik7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9z
cy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0zLWV4cGVjdGVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9z
cy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0zLWV4cGVjdGVkLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFj
cm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0zLWV4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhbiBl
ZGl0YWJsZSByZWdpb24gaW4gYSBzaGFkb3cgdHJlZSB0byBhbiBlZGl0YWJsZSByZWdpb24gaW4g
dGhlIGRvY3VtZW50IHRyZWUuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3
b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gImgiIHRvICJkIi4gV2ViS2l0IHNob3Vs
ZCBvbmx5IHNlbGVjdCAiaGVsbG8iLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PGRpdiBjb250
ZW50ZWRpdGFibGU+aGVsbG88L2Rpdj4gd29ybGQ8L2Rpdj4KKzxzY3JpcHQ+Citjb250YWluZXIu
Zm9jdXMoKTsKK2dldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvbnRhaW5lci5maXJz
dENoaWxkKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhl
ZC1lZGl0YWJpbGl0eS0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJp
bGl0eS0zLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0z
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBp
biBhbiBlZGl0YWJsZSByZWdpb24gaW4gYSBzaGFkb3cgdHJlZSB0byBhbiBlZGl0YWJsZSByZWdp
b24gaW4gdGhlIGRvY3VtZW50IHRyZWUuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJo
ZWxsbyB3b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gImgiIHRvICJkIi4gV2ViS2l0
IHNob3VsZCBvbmx5IHNlbGVjdCAiaGVsbG8iLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29u
dGVudGVkaXRhYmxlPndvcmxkPC9kaXY+Cis8c2NyaXB0PgorCitjb25zdCBob3N0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb250YWluZXIucHJlcGVuZChob3N0KTsKK2NvbnN0
IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRv
d1Jvb3QuaW5uZXJIVE1MID0gJzxkaXYgY29udGVudGVkaXRhYmxlPmhlbGxvIDwvZGl2Pic7CisK
K2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5kcmFnTW9kZSA9IGZh
bHNlOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsg
MSwgY29udGFpbmVyLm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsgY29u
dGFpbmVyLm9mZnNldFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCArIGNvbnRhaW5lci5v
ZmZzZXRIZWlnaHQgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgaWYgKGdl
dFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisg
ICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdh
cyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFp
bmVyICE9IGdldFNlbGVjdGlvbigpLmVuZENvbnRhaW5lcikKKyAgICAgICAgZG9jdW1lbnQud3Jp
dGUoIlRoZSBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSB0aGUgc3RhcnQgY29udGFp
bmVyIik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWlu
ZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRo
ZSByYW5nZSdzIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVu
dCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVuZENvbnRhaW5lciAh
PSBnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyKQorICAgICAgICBk
b2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lciB3YXMgZGlmZmVyZW50IGZy
b20gaXRzIHN0YXJ0IGNvbnRhaW5lciIpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNC1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNC1leHBlY3RlZC5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jv
c3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNC1leHBlY3RlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYSBzaGFk
b3cgdHJlZSBpbnNpZGUgYW4gZWRpdGFibGUgcmVnaW9uIHRvIHRoZSBvdXRzaWRlLjxicj4KK1Rv
IG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJh
ZyBmcm9tIHRoZSBib3R0b20gcmlnaHQgdG8gdGhlIHRvcCBsZWZ0Ljxicj4KK1dlYktpdCBzaG91
bGQgbm90IGV4dGVuZCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBlZGl0YWJsZSByZWdpb24gb3V0c2lk
ZSB0aGUgc2hhZG93IHRyZWUuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFi
bGU+aGVsbG8gPGRpdj53b3JsZDwvZGl2PjwvZGl2PgorPHNjcmlwdD4KK2NvbnRhaW5lci5mb2N1
cygpOworZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29udGFpbmVyLmxhc3RDaGls
ZCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRp
dGFiaWxpdHktNC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHkt
NC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYSBz
aGFkb3cgdHJlZSBpbnNpZGUgYW4gZWRpdGFibGUgcmVnaW9uIHRvIHRoZSBvdXRzaWRlLjxicj4K
K1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2Ug
ZHJhZyBmcm9tIHRoZSBib3R0b20gcmlnaHQgdG8gdGhlIHRvcCBsZWZ0Ljxicj4KK1dlYktpdCBz
aG91bGQgbm90IGV4dGVuZCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBlZGl0YWJsZSByZWdpb24gb3V0
c2lkZSB0aGUgc2hhZG93IHRyZWUuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRp
dGFibGU+aGVsbG8gPC9kaXY+Cis8c2NyaXB0PgorCitjb25zdCBob3N0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Citjb250YWluZXIuYXBwZW5kQ2hpbGQoaG9zdCk7Citjb25zdCBz
aGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CitzaGFkb3dS
b290LnRleHRDb250ZW50ID0gJ3dvcmxkJzsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewor
ICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyBjb250YWluZXIub2Zmc2V0V2lkdGggLSA1LCBj
b250YWluZXIub2Zmc2V0VG9wICsgY29udGFpbmVyLm9mZnNldEhlaWdodCAtIDUpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRh
aW5lci5vZmZzZXRMZWZ0IC0gMSwgY29udGFpbmVyLm9mZnNldFRvcCAtIDUpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIu
Z2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBz
dGFydCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBp
ZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZW5kQ29u
dGFpbmVyKQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIGVuZCBjb250YWluZXIgd2FzIGRp
ZmZlcmVudCBmcm9tIHRoZSBzdGFydCBjb250YWluZXIiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9u
KCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50
KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3Mgc3RhcnQgY29udGFpbmVyJ3Mg
cm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigp
LmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVyICE9IGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQo
MCkuc3RhcnRDb250YWluZXIpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBl
bmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSBpdHMgc3RhcnQgY29udGFpbmVyIik7Cit9
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0
YWJpbGl0eS01LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0
YWJpbGl0eS01LWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1l
ZGl0YWJpbGl0eS01LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3Rp
bmcgY29udGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0cmVlIGluc2lkZSBhIG5vbi1lZGl0YWJs
ZSByZWdpb24gaW4gYW4gZWRpdGFibGUgcmVnaW9uIHRvIG91dHNpZGUgdGhlIGVkaXRhYmxlIHJl
Z2lvbi48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIFdlYktpdCIg
YmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gdGhlIGJvdHRvbSByaWdodCB0byB0aGUgdG9wIGxl
ZnQuPGJyPgorV2ViS2l0IHNob3VsZCBub3QgZXh0ZW5kIHRoZSBzZWxlY3Rpb24gdG8gb3V0c2lk
ZSB0aGUgc2hhZG93IHRyZWUuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFi
bGU+aGVsbG88YnI+d29ybGQ8ZGl2PldlYktpdDwvZGl2PjwvZGl2PgorPHNjcmlwdD4KK2NvbnRh
aW5lci5mb2N1cygpOworZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29udGFpbmVy
Lmxhc3RDaGlsZCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMt
bWl4ZWQtZWRpdGFiaWxpdHktNS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRp
dGFiaWxpdHktNS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxp
dHktNS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRp
bmcgaW4gYSBzaGFkb3cgdHJlZSBpbnNpZGUgYSBub24tZWRpdGFibGUgcmVnaW9uIGluIGFuIGVk
aXRhYmxlIHJlZ2lvbiB0byBvdXRzaWRlIHRoZSBlZGl0YWJsZSByZWdpb24uPGJyPgorVG8gbWFu
dWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCBXZWJLaXQiIGJlbG93IGJ5IGEgbW91c2Ug
ZHJhZyBmcm9tIHRoZSBib3R0b20gcmlnaHQgdG8gdGhlIHRvcCBsZWZ0Ljxicj4KK1dlYktpdCBz
aG91bGQgbm90IGV4dGVuZCB0aGUgc2VsZWN0aW9uIHRvIG91dHNpZGUgdGhlIHNoYWRvdyB0cmVl
LjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPmhlbGxvIDxkaXYgY29u
dGVudGVkaXRhYmxlPSJmYWxzZSI+d29ybGQ8L2Rpdj48L2Rpdj4KKzxzY3JpcHQ+CisKK2NvbnN0
IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnRhaW5lci5sYXN0Q2hp
bGQuYXBwZW5kKGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC50ZXh0Q29udGVudCA9ICcgV2ViS2l0JzsKKwor
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFs
c2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyBj
b250YWluZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgY29udGFpbmVy
Lm9mZnNldEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsgMSwgY29udGFpbmVy
Lm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBpZiAoZ2V0
U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAg
ICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBjb250YWluZXIncyByb290IG5vZGUgd2Fz
IG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWlu
ZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZW5kQ29udGFpbmVyKQorICAgICAgICBkb2N1bWVudC53cml0
ZSgiVGhlIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVudCBmcm9tIHRoZSBzdGFydCBjb250YWlu
ZXIiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5l
ci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhl
IHJhbmdlJ3Mgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50
Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVyICE9
IGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIpCisgICAgICAgIGRv
Y3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJv
bSBpdHMgc3RhcnQgY29udGFpbmVyIik7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1z
aGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0xLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91
bmRhcmllcy1yZWFkb25seS0xLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmll
cy1yZWFkb25seS0xLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3Rp
bmcgY29udGVudCBzdGFydGluZyBpbiB0aGUgZG9jdW1lbnQgaW50byBhIHNoYWRvdyB0cmVlLjxi
cj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91
c2UgZHJhZy4gV2ViS2l0IHNob3VsZCBzZWxlY3QgdGhlIHBocmFzZS48L3A+Cis8ZGl2IGlkPSJj
b250YWluZXIiPmhlbGxvIDxkaXY+d29ybGQ8L2Rpdj48L2Rpdj4KKzxzY3JpcHQ+CitnZXRTZWxl
Y3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb250YWluZXIpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24t
YWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3Vu
ZGFyaWVzLXJlYWRvbmx5LTEuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5
LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5n
IGluIHRoZSBkb2N1bWVudCBpbnRvIGEgc2hhZG93IHRyZWUuPGJyPgorVG8gbWFudWFsbHkgdGVz
dCwgc2VsZWN0ICJoZWxsbyB3b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnLiBXZWJLaXQgc2hv
dWxkIHNlbGVjdCB0aGUgcGhyYXNlLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+aGVsbG8gPC9k
aXY+Cis8c2NyaXB0PgorCitjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Citjb250YWluZXIuYXBwZW5kQ2hpbGQoaG9zdCk7Citjb25zdCBzaGFkb3dSb290ID0gaG9z
dC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CitzaGFkb3dSb290LnRleHRDb250ZW50
ID0gJ3dvcmxkJzsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVy
LmRyYWdNb2RlID0gZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVy
Lm9mZnNldExlZnQgLSAyLCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9m
ZnNldExlZnQgKyBjb250YWluZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIub2Zmc2V0VG9w
ICsgY29udGFpbmVyLm9mZnNldEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAh
PSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBjb250YWluZXIn
cyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9u
KCkuZW5kQ29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3Vt
ZW50LndyaXRlKCJUaGUgZW5kIGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1
bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFp
bmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJU
aGUgcmFuZ2UncyBzdGFydCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1l
bnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIu
Z2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBy
YW5nZSdzIGVuZCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsK
K30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5
LTItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTItZXhwZWN0
ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
ZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTItZXhwZWN0ZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5nIGluIGEg
c2hhZG93IHRyZWUgb3V0IHRvIHRoZSBkb2N1bWVudC48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBz
ZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcuIFdlYktpdCBzaG91bGQg
c2VsZWN0IHRoZSBwaHJhc2UuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj5oZWxsbyA8ZGl2Pndv
cmxkPC9kaXY+PC9kaXY+Cis8c2NyaXB0PgorZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRy
ZW4oY29udGFpbmVyKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmll
cy1yZWFkb25seS0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0yLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9u
LWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0yLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0cmVlIG91dCB0
byB0aGUgZG9jdW1lbnQuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3Js
ZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnLiBXZWJLaXQgc2hvdWxkIHNlbGVjdCB0aGUgcGhyYXNl
LjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+d29ybGQ8L2Rpdj4KKzxzY3JpcHQ+CisKK2NvbnN0
IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnRhaW5lci5wcmVwZW5k
KGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xv
c2VkJ30pOworc2hhZG93Um9vdC50ZXh0Q29udGVudCA9ICdoZWxsbyAnOworCitpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCAtIDIsIGNvbnRhaW5l
ci5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIGNvbnRhaW5lci5vZmZz
ZXRXaWR0aCAtIDUsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyBjb250YWluZXIub2Zmc2V0SGVpZ2h0
IC0gNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGlmIChnZXRTZWxlY3Rpb24o
KS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1
bWVudC53cml0ZSgiVGhlIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBk
b2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5lbmRDb250YWluZXIuZ2V0Um9vdE5v
ZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBlbmQgY29udGFp
bmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVj
dGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1
bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIHN0YXJ0IGNvbnRhaW5l
cidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rp
b24oKS5nZXRSYW5nZUF0KDApLmVuZENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50
KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lcidzIHJv
b3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1h
Y3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hh
ZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJv
dW5kYXJpZXMtcmVhZG9ubHktMy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMg
c2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gb25lIHNoYWRvdyB0cmVlIGFuZCBlbmRpbmcg
YW5vdGhlciBzaGFkb3cgdHJlZS48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxv
IHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcuIFdlYktpdCBzaG91bGQgc2VsZWN0IHRoZSBw
aHJhc2UuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj5oZWxsbyA8ZGl2PndvcmxkPC9kaXY+PC9k
aXY+Cis8c2NyaXB0PgorZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29udGFpbmVy
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0
aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0zLmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFk
b3ctYm91bmRhcmllcy1yZWFkb25seS0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxl
Y3RpbmcgY29udGVudCBzdGFydGluZyBpbiBvbmUgc2hhZG93IHRyZWUgYW5kIGVuZGluZyBhbm90
aGVyIHNoYWRvdyB0cmVlLjxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29y
bGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZy4gV2ViS2l0IHNob3VsZCBzZWxlY3QgdGhlIHBocmFz
ZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorPHNjcmlwdD4KKworY29uc3QgaG9z
dDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnN0IHNoYWRvd1Jvb3QxID0g
aG9zdDEuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdDEudGV4dENv
bnRlbnQgPSAnaGVsbG8gJzsKKworY29uc3QgaG9zdDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKK2NvbnN0IHNoYWRvd1Jvb3QyID0gaG9zdDIuYXR0YWNoU2hhZG93KHttb2RlOiAn
Y2xvc2VkJ30pOworc2hhZG93Um9vdDIudGV4dENvbnRlbnQgPSAnd29ybGQnOworY29udGFpbmVy
LmFwcGVuZChob3N0MSwgaG9zdDIpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
ZXZlbnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhjb250YWluZXIub2Zmc2V0TGVmdCAtIDIsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyA1KTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhj
b250YWluZXIub2Zmc2V0TGVmdCArIGNvbnRhaW5lci5vZmZzZXRXaWR0aCAtIDUsIGNvbnRhaW5l
ci5vZmZzZXRUb3AgKyBjb250YWluZXIub2Zmc2V0SGVpZ2h0IC0gNSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VVcCgpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lci5nZXRS
b290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHN0YXJ0
IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChn
ZXRTZWxlY3Rpb24oKS5lbmRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAg
ICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBlbmQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBu
b3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCku
c3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1l
bnQud3JpdGUoIlRoZSByYW5nZSdzIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90
IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVu
ZENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53
cml0ZSgiVGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBk
b2N1bWVudCIpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJp
ZXMtdXNlci1zZWxlY3QtYWxsLTEtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVz
LXVzZXItc2VsZWN0LWFsbC0xLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmll
cy11c2VyLXNlbGVjdC1hbGwtMS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMg
c2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYSBzaGFkb3cgdHJlZSBpbnNpZGUgYSA8Y29k
ZT51c2VyLXNlbGVjdDogYWxsPC9jb2RlPiBpbiBhbiBlZGl0YWJsZSByZWdpb24gaW4gdG8gb3V0
c2lkZSB0aGUgZWRpdGFibGUgcmVnaW9uLjxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAi
aGVsbG8gd29ybGQgV2ViS2l0IHJvY2tzIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcgZnJvbSAiaCIg
dG8gInMiLiBXZWJLaXQgc2hvdWxkIHNlbGVjdCAiaGVsbG8iLjwvcD4KKzxkaXYgaWQ9ImNvbnRh
aW5lciI+PGRpdiBjb250ZW50ZWRpdGFibGU+PGRpdiBpZD0ic2VsZWN0ZWQiPmhlbGxvPC9kaXY+
d29ybGQ8YnI+V2ViS2l0PC9kaXY+cm9ja3M8L2Rpdj4KKzxzY3JpcHQ+CitnZXRTZWxlY3Rpb24o
KS5zZWxlY3RBbGxDaGlsZHJlbihzZWxlY3RlZCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3QtYWxsLTEuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3Vu
ZGFyaWVzLXVzZXItc2VsZWN0LWFsbC0xLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy11
c2VyLXNlbGVjdC1hbGwtMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNv
bnRlbnQgc3RhcnRpbmcgaW4gYSBzaGFkb3cgdHJlZSBpbnNpZGUgYSA8Y29kZT51c2VyLXNlbGVj
dDogYWxsPC9jb2RlPiBpbiBhbiBlZGl0YWJsZSByZWdpb24gaW4gdG8gb3V0c2lkZSB0aGUgZWRp
dGFibGUgcmVnaW9uLjxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQg
V2ViS2l0IHJvY2tzIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcgZnJvbSAiaCIgdG8gInMiLiBXZWJL
aXQgc2hvdWxkIHNlbGVjdCAiaGVsbG8iLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PGRpdiBj
b250ZW50ZWRpdGFibGU+PGRpdiBzdHlsZT0idXNlci1zZWxlY3Q6IGFsbCI+d29ybGQ8L2Rpdj4g
V2ViS2l0PC9kaXY+cm9ja3M8L2Rpdj4KKzxzY3JpcHQ+CisKK2NvbnN0IGhvc3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnRhaW5lci5maXJzdENoaWxkLnByZXBlbmQoaG9z
dCk7Citjb25zdCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQn
fSk7CitzaGFkb3dSb290LnRleHRDb250ZW50ID0gJ2hlbGxvICc7CisKK2lmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5kcmFnTW9kZSA9IGZhbHNlOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsgMSwgY29udGFpbmVyLm9m
ZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsgY29udGFpbmVyLm9mZnNldFdp
ZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCArIGNvbnRhaW5lci5vZmZzZXRIZWlnaHQgLSA1
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0
YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50
LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3Vt
ZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyICE9IGdldFNlbGVj
dGlvbigpLmVuZENvbnRhaW5lcikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBlbmQgY29u
dGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSB0aGUgc3RhcnQgY29udGFpbmVyIik7CisgICAgaWYg
KGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUo
KSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIHN0YXJ0
IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChn
ZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVuZENvbnRhaW5lciAhPSBnZXRTZWxlY3Rpb24o
KS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyKQorICAgICAgICBkb2N1bWVudC53cml0ZSgi
VGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lciB3YXMgZGlmZmVyZW50IGZyb20gaXRzIHN0YXJ0IGNv
bnRhaW5lciIpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350881</attachid>
            <date>2018-09-26 12:27:11 -0700</date>
            <delta_ts>2018-09-26 12:30:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-151380-20180926122711.patch</filename>
            <type>text/plain</type>
            <size>46854</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA5LTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFNlbGVjdGlvbiBzaG91bGQgd29y
ayBhY3Jvc3Mgc2hhZG93IGJvdW5kYXJ5IHdoZW4gaW5pdGlhdGVkIGJ5IGEgbW91c2UgZHJhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDM2Mzg3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGJhc2ljIHN1cHBv
cnQgZm9yIHNlbGVjdGluZyBjb250ZW50IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgdG8g
VmlzaWJsZVNlbGVjdGlvbiwKKyAgICAgICAgd2hpY2ggaXMgZW5vdWdoIHRvIGFsbG93IHVzZXJz
IHRvIHNlbGVjdCBjb250ZW50IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgdmlhIGEgbW91
c2UgZHJhZy4KKworICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIGFsbG93aW5nIHVz
ZXJzIHRvIHNlbGVjdCwgY29weSBhbmQgcGFzdGUgY29udGVudCBhY3Jvc3Mgc2hhZG93IERPTSBi
b3VuZGFyaWVzLAorICAgICAgICB3aGljaCBpcyBhIHNlcmlvdXMgdXNlciBleHBlcmllbmNlIHJl
Z3Jlc3Npb24gcmlnaHQgbm93LiBUaGUgbmV3IGJlaGF2aW9yIGlzIGVuYWJsZWQgYnkgZGVmYXVs
dCB1bmRlcgorICAgICAgICBhbiBpbnRlcmFsIGRlYnVnIGZlYXR1cmUgZmxhZzogc2VsZWN0aW9u
QWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQuCisKKyAgICAgICAgTGlrZSBDaHJvbWUsIHdl
IGFyZSBub3QgZ29pbmcgdG8gc3VwcG9ydCBzZWxlY3RpbmcgZWRpdGFibGUgY29udGVudCBhY3Jv
c3Mgc2hhZG93IERPTSBib3VuZGFyaWVzIHNpbmNlCisgICAgICAgIHdlJ2QgaGF2ZSB0byBnZW5l
cmFsaXplIGV2ZXJ5IGVkaXRpbmcgY29tbWFuZHMgdG8gbWFrZSB0aGF0IHdvcmssIGFuZCB0aGVy
ZSBhcmVuJ3QgYW55IEhUTUwgZWRpdG9ycyB0aGF0CisgICAgICAgIHVzZSBzaGFkb3cgRE9NIGJv
dW5kYXJpZXMgd2l0aGluIGFuIGVkaXRhYmxlIHJlZ2lvbiB5ZXQuIEZvciBzaW1wbGljaXR5LCB3
ZSBhbHNvIGRvbid0IHN1cHBvcnQgZXh0ZW5kaW5nCisgICAgICAgIGEgc2VsZWN0aW9uIG91dCBv
ZiBhIHNoYWRvdyByb290IHdoaWNoIHJlc2lkZXMgaW5zaWRlIGFuIGVkaXRpbmcgcmVnaW9uLgor
CisgICAgICAgIFRoZSBrZXlib2FyZCBiYXNlZCBuYXZpZ2F0aW9uICYgbWFuaXB1bGF0aW9uIG9m
IHNlbGVjdGlvbiBhcyB3ZWxsIGFzIGFsbG93aW5nIGNvcHkgJiBwYXN0ZSBvZiBjb250ZW50Cisg
ICAgICAgIGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgd2lsbCBiZSBpbXBsZW1lbnRlZCBi
eSBzZXBhcmF0ZSBwYXRjaGVzLiBET01TZWxlY3Rpb24gd2lsbCBub3QgZXhwb3NlIHRoaXMgbmV3
CisgICAgICAgIGJlaGF2aW9yIGVpdGhlci4gVGhpcyBpcyB0cmFja2VkIGluIHRoZSBzcGVjIGFz
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViY29tcG9uZW50cy9pc3N1ZXMvNzkKKworICAgICAg
ICBUZXN0czogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRh
cmllcy1taXhlZC1lZGl0YWJpbGl0eS0xLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxp
dHktMi5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNy
b3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMuaHRtbAorICAgICAgICAg
ICAgICAgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmll
cy1taXhlZC1lZGl0YWJpbGl0eS00Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHkt
NS5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3Nz
LXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEuaHRtbAorICAgICAgICAgICAgICAgZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0y
Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0
LWFsbC0xLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFk
b3dBbmNlc3Rvcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6
YWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcyk6IFdoZW4gdGhl
IGZlYXR1cmUgaXMgZW5hYmxlZCwKKyAgICAgICAgYWxsb3cgY3Jvc3Npbmcgc2hhZG93IERPTSBi
b3VuZGFyaWVzIGV4Y2VwdCB3aGVuIGVpdGhlciBlbmQgaXMgaW5zaWRlIGFuIHVzZXIgYWdlbnQg
c2hhZG93IHJvb3QsIG9yIG9uZSBvZgorICAgICAgICBpdHMgc2hhZG93IGluY2x1ZGlnbiBhbmNl
c3RvciBpcyBpbnNpZGUgYW4gZWRpdGFibGUgcmVnaW9uLiBUaGUgbGF0dGVyIGNoZWNrIGlzIG5l
ZWRlZCB0byBkaXNhbGxvdworICAgICAgICBhbiBleHRlbnNpb24gb2YgYSBzZWxlY3Rpb24gc3Rh
cnRpbmcgaW4gYSBzaGFkb3cgdHJlZSBpbnNpZGUgYSBub24tZWRpdGFibGUgcmVnaW9uIGluc2lk
ZSBhbiBlZGl0YWJsZSByZWdpb24KKyAgICAgICAgdG8gb3V0c2lkZSB0aGUgZWRpdGFibGUgcmVn
aW9uLiBUaGUgcmVzdCBvZiB0aGUgZWRpdGluZyBjb2RlIGlzIG5vdCByZWFkeSB0byBkZWFsIHdp
dGggc2VsZWN0aW9uIGxpa2UgdGhhdC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IEFk
ZGVkIGFuIGludGVybmFsIGRlYnVnIGZlYXR1cmUgdG8gZW5hYmxlIHRoaXMgbmV3IGJlaGF2aW9y
LgorCiAyMDE4LTA5LTI1ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViR0wgMiBDb25mb3JtYW5jZTogcHJpbWl0aXZlIHJlc3RhcnQgYW5kIGRyYXdfcHJp
bWl0aXZlX3Jlc3RhcnQgV2ViR0wyIHNhbXBsZQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCShyZXZpc2lvbiAyMzY0OTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRl
IDxzdGRpby5oPgpAQCAtNTA0LDIzICs1MDUsNTQgQEAgUG9zaXRpb24gVmlzaWJsZVNlbGVjdGlv
bjo6YWRqdXN0UG9zaXRpbwogICAgIHJldHVybiBQb3NpdGlvbigpOwogfQogCitzdGF0aWMgYm9v
bCBpc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFkb3dBbmNlc3RvcihOb2Rl
JiBub2RlKQoreworICAgIGF1dG8qIHNoYWRvd1Jvb3QgPSBub2RlLmNvbnRhaW5pbmdTaGFkb3dS
b290KCk7CisgICAgaWYgKCFzaGFkb3dSb290KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoc2hhZG93Um9vdC0+bW9kZSgpID09IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdlbnQpCisg
ICAgICAgIHJldHVybiB0cnVlOworLyoKKyAgICBmb3IgKFJlZlB0cjxFbGVtZW50PiBob3N0ID0g
c2hhZG93Um9vdC0+aG9zdCgpOyBob3N0OyApIHsKKyAgICAgICAgaWYgKGhvc3QtPmhhc0VkaXRh
YmxlU3R5bGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBhdXRvKiBuZXh0
Um9vdCA9IGhvc3QtPmNvbnRhaW5pbmdTaGFkb3dSb290KCk7CisgICAgICAgIGlmICghbmV4dFJv
b3QpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaG9zdCA9IG5leHRSb290LT5ob3N0KCk7
CisgICAgfQorKi8KKyAgICBmb3IgKFJlZlB0cjxOb2RlPiBjdXJyZW50Tm9kZSA9ICZub2RlOyBj
dXJyZW50Tm9kZTsgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+cGFyZW50T3JTaGFkb3dIb3N0
Tm9kZSgpKSB7CisgICAgICAgIGlmIChjdXJyZW50Tm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFk
b3dCb3VuZGFyaWVzKCkKIHsKICAgICBpZiAobV9iYXNlLmlzTnVsbCgpIHx8IG1fc3RhcnQuaXNO
dWxsKCkgfHwgbV9lbmQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICgmbV9z
dGFydC5hbmNob3JOb2RlKCktPnRyZWVTY29wZSgpID09ICZtX2VuZC5hbmNob3JOb2RlKCktPnRy
ZWVTY29wZSgpKQorICAgIGF1dG8gc3RhcnROb2RlID0gbWFrZVJlZigqbV9zdGFydC5hbmNob3JO
b2RlKCkpOworICAgIGF1dG8gZW5kTm9kZSA9IG1ha2VSZWYoKm1fZW5kLmFuY2hvck5vZGUoKSk7
CisgICAgaWYgKCZzdGFydE5vZGUtPnRyZWVTY29wZSgpID09ICZlbmROb2RlLT50cmVlU2NvcGUo
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHN0YXJ0Tm9kZS0+ZG9jdW1lbnQoKS5zZXR0
aW5ncygpLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkKCkpIHsKKyAgICAg
ICAgaWYgKCFpc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFkb3dBbmNlc3Rv
cihzdGFydE5vZGUpCisgICAgICAgICAgICAmJiAhaXNJblVzZXJBZ2VudFNoYWRvd1Jvb3RPckhh
c0VkaXRhYmxlU2hhZG93QW5jZXN0b3IoZW5kTm9kZSkpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKG1fYmFzZUlzRmlyc3QpIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1
c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgbV9zdGFydC5jb250YWluZXJOb2RlKCkpOworICAgICAg
ICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yRW5kKG1fZW5kLCBzdGFydE5vZGUucHRyKCkp
OwogICAgICAgICBtX2VuZCA9IG1fZXh0ZW50OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fZXh0
ZW50ID0gYWRqdXN0UG9zaXRpb25Gb3JTdGFydChtX3N0YXJ0LCBtX2VuZC5jb250YWluZXJOb2Rl
KCkpOworICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yU3RhcnQobV9zdGFydCwg
ZW5kTm9kZS5wdHIoKSk7CiAgICAgICAgIG1fc3RhcnQgPSBtX2V4dGVudDsKICAgICB9Ci0KLSAg
ICBBU1NFUlQoJm1fc3RhcnQuYW5jaG9yTm9kZSgpLT50cmVlU2NvcGUoKSA9PSAmbV9lbmQuYW5j
aG9yTm9kZSgpLT50cmVlU2NvcGUoKSk7CiB9CiAKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRq
dXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nRWRpdGluZ0JvdW5kYXJpZXMoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkocmV2aXNpb24gMjM2NDkzKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0zODksNiArMzg5LDggQEAg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkOgogICBpbml0aWFsOiBkZWZhdWx0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkCiBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOgogICBpbml0aWFs
OiBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAorc2VsZWN0aW9uQWNyb3Nz
U2hhZG93Qm91bmRhcmllc0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCiAKIHVzZUxlZ2FjeUJh
Y2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3I6CiAgIGluaXRpYWw6IGZhbHNlCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkocmV2aXNpb24gMjM2NDk4KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wOS0yNiAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KKworICAgICAgICBTZWxlY3Rpb24gc2hvdWxkIHdvcmsgYWNyb3NzIHNo
YWRvdyBib3VuZGFyeSB3aGVuIGluaXRpYXRlZCBieSBhIG1vdXNlIGRyYWcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM4MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjQzNjM4NzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlz
dG8uCisKKyAgICAgICAgQWRkZWQgU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJs
ZWQgYXMgYW4gaW50ZXJuYWwgZGVidWcgZmVhdHVyZSwKKyAgICAgICAgYW5kIG1vdmVkIENTU0N1
c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkIHRvIHdoZXJlIG90aGVyIGV4cGVyaW1lbnRh
bCBmZWF0dXJlcyBhcmUgbG9jYXRlZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sOgorCiAyMDE4LTA5LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIE1ha2UgZnJhbWUgZmxhdHRlbmluZyBhbiBpbnRlcm5hbCBkZWJ1ZyBmZWF0dXJl
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwJKHJldmlzaW9u
IDIzNjQ5MykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwJKHdv
cmtpbmcgY29weSkKQEAgLTEyNTQsNiArMTI1NCwxNCBAQCBTZXJ2ZXJUaW1pbmdFbmFibGVkOgog
ICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICB3ZWJjb3JlTmFtZTog
c2VydmVyVGltaW5nRW5hYmxlZAogCitDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxl
ZDoKKyAgdHlwZTogYm9vbAorICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVO
YW1lOiAiQ1NTIEN1c3RvbSBQcm9wZXJ0aWVzIGFuZCBWYWx1ZXMgQVBJIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJFbmFibGUgQ1NTIEN1c3RvbSBQcm9wZXJ0aWVzIGFuZCBWYWx1ZXMg
QVBJIgorICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcworICBjYXRlZ29y
eTogZXhwZXJpbWVudGFsCisKICMgRm9yIGludGVybmFsIGZlYXR1cmVzOgogIyBUaGUgdHlwZSBz
aG91bGQgYmUgYm9vbGVhbi4KICMgWW91IG11c3QgcHJvdmlkZSBhIGh1bWFuUmVhZGFibGVOYW1l
IGFuZCBodW1hblJlYWRhYmxlRGVzY3JpcHRpb24gZm9yIGFsbCBkZWJ1ZyBmZWF0dXJlcy4gVGhl
eQpAQCAtMTMzOCw3ICsxMzQ2LDcgQEAgRnVsbFNjcmVlbkVuYWJsZWQ6CiAKIEFyaWFSZWZsZWN0
aW9uRW5hYmxlZDoKICAgdHlwZTogYm9vbAotICBkZWZhdWx0VmFsdWU6IHRydWUKKyAgZGVmYXVs
dFZhbHVlOiBmYWxzZQogICBodW1hblJlYWRhYmxlTmFtZTogIkFSSUEgUmVmbGVjdGlvbiIKICAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiQVJJQSBSZWZsZWN0aW9uIHN1cHBvcnQiCiAgIGNh
dGVnb3J5OiBpbnRlcm5hbApAQCAtMTM1MiwxMCArMTM2MCwxMCBAQCBXZWJBUElTdGF0aXN0aWNz
RW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY2F0
ZWdvcnk6IGludGVybmFsCiAKLUNTU0N1c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXNFbmFibGVkOgor
U2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKLSAg
ZGVmYXVsdFZhbHVlOiBmYWxzZQotICBodW1hblJlYWRhYmxlTmFtZTogIkNTUyBDdXN0b20gUHJv
cGVydGllcyBhbmQgVmFsdWVzIEFQSSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5h
YmxlIENTUyBDdXN0b20gUHJvcGVydGllcyBhbmQgVmFsdWVzIEFQSSIKLSAgd2ViY29yZUJpbmRp
bmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKLSAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorICBk
ZWZhdWx0VmFsdWU6IHRydWUKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTZWxlY3Rpb24gYWNyb3Nz
IHNoYWRvdyBET00iCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFsbG93IHVzZXItaW5p
dGlhdGVkIHNlbGVjdGlvbiBhY3Jvc3Mgc2hhZG93IERPTSBib3VuZGFyaWVzIgorICBjYXRlZ29y
eTogaW50ZXJuYWwKKyAgd2ViY29yZU5hbWU6IHNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJp
ZXNFbmFibGVkCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY0
OTMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMiBAQAorMjAxOC0wOS0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBTZWxlY3Rpb24gc2hvdWxkIHdvcmsgYWNyb3NzIHNoYWRvdyBib3Vu
ZGFyeSB3aGVuIGluaXRpYXRlZCBieSBhIG1vdXNlIGRyYWcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM4MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjQzNjM4NzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAg
ICAgICAgQWRkZWQgc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQgYXMgYSBw
cmVmZXJlbmNlIHRvIGJlIHVzZWQgaW4gRHVtcFJlbmRlclRyZWUuCisKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0Vu
YWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U2VsZWN0aW9uQWNyb3NzU2hh
ZG93Qm91bmRhcmllc0VuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dl
YlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxOC0wOS0yNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBFZGl0b3I6OmZv
bnRBdHRyaWJ1dGVzRm9yU2VsZWN0aW9uU3RhcnQgdG8gYmUgcGxhdGZvcm0tYWdub3N0aWMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkocmV2aXNpb24gMjM2NDkzKQorKysgU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjYyLDMgKzI2Miw0IEBACiAjZGVmaW5lIFdlYktpdEFyaWFSZWZsZWN0aW9uRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRBcmlhUmVmbGVjdGlvbkVuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZWRp
YUNhcGFiaWxpdGllc0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFNlcnZlclRpbWluZ0VuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0U2VydmVyVGltaW5nRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0
U2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0U2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQiCkluZGV4OiBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJldmlz
aW9uIDIzNjQ5MykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTY2NCw2ICs2NjQsNyBAQCArICh2b2lkKWluaXRp
YWxpemUKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhC
b29sOllFU10sIFdlYktpdFBlZXJDb25uZWN0aW9uRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5k
aWYKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2ViS2l0U2VsZWN0aW9u
QWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogI2lmIEVOQUJMRShJ
TlRFUlNFQ1RJT05fT0JTRVJWRVIpCiAgICAgICAgIEBOTywgV2ViS2l0SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJFbmFibGVkUHJlZmVyZW5jZUtleSwKICNlbmRpZgpAQCAtMzM2NSw2ICszMzY2LDE2IEBA
IC0gKHZvaWQpc2V0U2VydmVyVGltaW5nRW5hYmxlZDooQk9PTClmbGEKICAgICBbc2VsZiBfc2V0
Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKIH0KIAorLSAoQk9PTClzZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxl
ZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFNlbGVjdGlvbkFj
cm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQp
c2V0U2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ6KEJPT0wpZmxhZworewor
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0U2VsZWN0aW9uQWNyb3Nz
U2hhZG93Qm91bmRhcmllc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogQGVuZAogCiBAaW1w
bGVtZW50YXRpb24gV2ViUHJlZmVyZW5jZXMgKFdlYkludGVybmFsKQpJbmRleDogU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCShyZXZpc2lvbiAyMzY0OTMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01ODIsNiArNTgyLDkg
QEAgQGludGVyZmFjZSBXZWJQcmVmZXJlbmNlcyAoV2ViUHJpdmF0ZSkKIC0gKHZvaWQpc2V0U2Vy
dmVyVGltaW5nRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTClzZXJ2ZXJUaW1pbmdFbmFibGVk
OwogCistICh2b2lkKXNldFNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkOihC
T09MKWZsYWc7CistIChCT09MKXNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVk
OworCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB2aXN1YWxWaWV3cG9ydEFQSUVuYWJsZWQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkOwpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24g
MjM2NDkzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0zMTcwLDYgKzMxNzAsOCBAQCAtICh2b2lkKV9wcmVmZXJlbmNlc0No
YW5nZWQ6KFdlYlByZWZlcmVuCiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDYXBhYmlsaXRpZXNFbmFi
bGVkKFtwcmVmZXJlbmNlcyBtZWRpYUNhcGFiaWxpdGllc0VuYWJsZWRdKTsKIAogICAgIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0U2VydmVyVGltaW5nRW5hYmxl
ZChbcHJlZmVyZW5jZXMgc2VydmVyVGltaW5nRW5hYmxlZF0pOworCisgICAgc2V0dGluZ3Muc2V0
U2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQocHJlZmVyZW5jZXMuc2VsZWN0
aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQpOwogfQogCiBzdGF0aWMgaW5saW5lIElN
UCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY1MTYpCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wOS0yNiAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBTZWxlY3Rpb24gc2hvdWxkIHdvcmsg
YWNyb3NzIHNoYWRvdyBib3VuZGFyeSB3aGVuIGluaXRpYXRlZCBieSBhIG1vdXNlIGRyYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM4MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjQzNjM4NzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50
dGkgS29pdmlzdG8uCisKKyAgICAgICAgQWRkZWQgdGhlIHN1cHBvcnQgZm9yIGludGVybmFsOnNl
bGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkIHRlc3Qgb3B0aW9uLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlv
bnM6OlRlc3RPcHRpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5o
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAg
ICAgKHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoc2V0
V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyk6CisKIDIwMTgtMDktMjYgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtGbGF0cGFrXSBCdW1wIHRv
IGFwciAxLjYuNQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAkocmV2aXNp
b24gMjM2NDkzKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNv
bnN0IHN0ZDo6c3RyaQogICAgICAgICAgICAgYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1Rv
QXNrRm9yQ3JlZGVudGlhbHMgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwog
ICAgICAgICBlbHNlIGlmIChrZXkgPT0gImV4cGVyaW1lbnRhbDpXZWJBbmltYXRpb25zQ1NTSW50
ZWdyYXRpb25FbmFibGVkIikKICAgICAgICAgICAgIGVuYWJsZVdlYkFuaW1hdGlvbnNDU1NJbnRl
Z3JhdGlvbiA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVs
c2UgaWYgKGtleSA9PSAiaW50ZXJuYWw6c2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0Vu
YWJsZWQiKQorICAgICAgICAgICAgZW5hYmxlU2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmll
cyA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAiZW5hYmxlQ29sb3JGaWx0ZXIiKQogICAgICAgICAgICAgZW5hYmxlQ29sb3JGaWx0
ZXIgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlm
IChrZXkgPT0gImpzY09wdGlvbnMiKQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5o
CShyZXZpc2lvbiAyMzY0OTMpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAg
ICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgeyBmYWxzZSB9OwogICAgIGJvb2wgYWxs
b3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMgeyBmYWxzZSB9Owog
ICAgIGJvb2wgZW5hYmxlQ29sb3JGaWx0ZXIgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlU2Vs
ZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllcyB7IGZhbHNlIH07CiAgICAgc3RkOjpzdHJpbmcg
anNjT3B0aW9uczsKIAogICAgIFRlc3RPcHRpb25zKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JV
UkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHV0ZVBhdGgpOwpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNpb24gMjM2NDkzKQorKysgVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC05OTAsNiArOTkwLDggQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lz
dAogICAgIFtwcmVmZXJlbmNlcyBzZXRDYWNoZUFQSUVuYWJsZWQ6Tk9dOwogICAgIHByZWZlcmVu
Y2VzLm1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZCA9IFlFUzsKIAorICAgIHByZWZlcmVuY2VzLnNl
bGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkID0gTk87CisKICAgICBbV2ViUHJl
ZmVyZW5jZXMgX2NsZWFyTmV0d29ya0xvYWRlclNlc3Npb25dOwogICAgIFtXZWJQcmVmZXJlbmNl
cyBfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0UG9saWN5Ok5TSFRU
UENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluXTsKIH0KQEAgLTEw
MDgsNiArMTAxMCw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGkK
ICAgICBwcmVmZXJlbmNlcy5hbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVk
ZW50aWFscyA9IG9wdGlvbnMuYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3Jl
ZGVudGlhbHM7CiAgICAgcHJlZmVyZW5jZXMud2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5h
YmxlZCA9IG9wdGlvbnMuZW5hYmxlV2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uOwogICAgIHBy
ZWZlcmVuY2VzLmNvbG9yRmlsdGVyRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0ZXI7
CisgICAgcHJlZmVyZW5jZXMuc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQg
PSBvcHRpb25zLmVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXM7CiB9CiAKIC8v
IENhbGxlZCBvbmNlIG9uIER1bXBSZW5kZXJUcmVlIHN0YXJ0dXAuCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMzY0OTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwzMiBAQAorMjAxOC0wOS0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBTZWxlY3Rpb24gc2hvdWxkIHdvcmsgYWNyb3NzIHNoYWRvdyBib3VuZGFyeSB3
aGVuIGluaXRpYXRlZCBieSBhIG1vdXNlIGRyYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQz
NjM4NzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAg
QWRkZWQgcmVncmVzc2lvbiB0ZXN0cyB1c2luZyByZWYgdGVzdHMgc2luY2UgZ2V0U2VsZWN0aW9u
KCkgZG9lc24ndCBleHBvc2UgYW55IG5vZGUgaW5zaWRlIGEgc2hhZG93IHRyZWUuCisKKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVz
LW1peGVkLWVkaXRhYmlsaXR5LTEtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1l
ZGl0YWJpbGl0eS0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24t
YWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91
bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0zLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMt
bWl4ZWQtZWRpdGFiaWxpdHktMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5
LTQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS00Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hh
ZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNS1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3Vu
ZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTUuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0x
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFy
aWVzLXJlYWRvbmx5LTItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0yLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVz
LXJlYWRvbmx5LTMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy11c2VyLXNlbGVjdC1hbGwtMS1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNy
b3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0LWFsbC0xLmh0bWw6IEFkZGVkLgorCiAy
MDE4LTA5LTI1ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViR0wgMiBDb25mb3JtYW5jZTogcHJpbWl0aXZlIHJlc3RhcnQgYW5kIGRyYXdfcHJpbWl0aXZl
X3Jlc3RhcnQgV2ViR0wyIHNhbXBsZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0x
LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0x
LWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0
eS0xLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVu
dCBzdGFydGluZyBpbiBhbiBlZGl0YWJsZSBlbGVtZW50IHRvIGEgc2hhZG93IHRyZWUuPGJyPgor
VG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBk
cmFnIGZyb20gImgiIHRvICJkIi4gV2ViS2l0IHNob3VsZCBvbmx5IHNlbGVjdCAiaGVsbG8iLjwv
cD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPmhlbGxvIDxkaXY+d29ybGQ8
L2Rpdj48L2Rpdj4KKzxzY3JpcHQ+Citjb250YWluZXIuZm9jdXMoKTsKK2dldFNlbGVjdGlvbigp
LnNldEJhc2VBbmRFeHRlbnQoY29udGFpbmVyLCAwLCBjb250YWluZXIsIDEpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
ZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTEuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24t
YWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTEuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3Nz
LXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTEuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGludGVybmFsOnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkPXRydWUg
XSAtLT4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0
YXJ0aW5nIGluIGFuIGVkaXRhYmxlIGVsZW1lbnQgdG8gYSBzaGFkb3cgdHJlZS48YnI+CitUbyBt
YW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcg
ZnJvbSAiaCIgdG8gImQiLiBXZWJLaXQgc2hvdWxkIG9ubHkgc2VsZWN0ICJoZWxsbyIuPC9wPgor
PGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFibGU+aGVsbG8gPC9kaXY+Cis8c2NyaXB0
PgorCitjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb250YWlu
ZXIuYXBwZW5kQ2hpbGQoaG9zdCk7Citjb25zdCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFk
b3coe21vZGU6ICdjbG9zZWQnfSk7CitzaGFkb3dSb290LnRleHRDb250ZW50ID0gJ3dvcmxkJzsK
KworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0g
ZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQg
KyAxLCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyBj
b250YWluZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgY29udGFpbmVy
Lm9mZnNldEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBpZiAo
Z2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkK
KyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBjb250YWluZXIncyByb290IG5vZGUg
d2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250
YWluZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZW5kQ29udGFpbmVyKQorICAgICAgICBkb2N1bWVudC53
cml0ZSgiVGhlIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVudCBmcm9tIHRoZSBzdGFydCBjb250
YWluZXIiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRh
aW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgi
VGhlIHJhbmdlJ3Mgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3Vt
ZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVy
ICE9IGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIpCisgICAgICAg
IGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQg
ZnJvbSBpdHMgc3RhcnQgY29udGFpbmVyIik7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9z
cy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0yLWV4cGVjdGVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9z
cy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0yLWV4cGVjdGVkLmh0bWwJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFj
cm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0yLWV4cGVjdGVkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhIHNo
YWRvdyB0cmVlIG91dCB0byBhbiBlZGl0YWJsZSBlbGVtZW50Ljxicj4KK1RvIG1hbnVhbGx5IHRl
c3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZyBmcm9tICJoIiB0
byAiZCIuIFdlYktpdCBzaG91bGQgb25seSBzZWxlY3QgImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJj
b250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyA8ZGl2PndvcmxkPC9kaXY+PC9kaXY+Cis8
c2NyaXB0PgorY29udGFpbmVyLmZvY3VzKCk7CitnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0
ZW50KGNvbnRhaW5lciwgMCwgY29udGFpbmVyLCAxKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9z
cy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0yLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ct
Ym91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRh
cmllcy1taXhlZC1lZGl0YWJpbGl0eS0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
MiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpz
ZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4K
Kzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhIHNo
YWRvdyB0cmVlIG91dCB0byBhbiBlZGl0YWJsZSBlbGVtZW50Ljxicj4KK1RvIG1hbnVhbGx5IHRl
c3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZyBmcm9tICJoIiB0
byAiZCIuIFdlYktpdCBzaG91bGQgb25seSBzZWxlY3QgImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJj
b250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT53b3JsZDwvZGl2PgorPHNjcmlwdD4KKworY29uc3Qg
aG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29udGFpbmVyLnByZXBlbmQo
aG9zdCk7Citjb25zdCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9z
ZWQnfSk7CitzaGFkb3dSb290LnRleHRDb250ZW50ID0gJ2hlbGxvICc7CisKK2lmICh3aW5kb3cu
ZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5kcmFnTW9kZSA9IGZhbHNlOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsgMSwgY29udGFpbmVy
Lm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsgY29udGFpbmVyLm9mZnNl
dFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCArIGNvbnRhaW5lci5vZmZzZXRIZWlnaHQg
LSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgaWYgKGdldFNlbGVjdGlvbigp
LnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3Vt
ZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRv
Y3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyICE9IGdldFNl
bGVjdGlvbigpLmVuZENvbnRhaW5lcikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBlbmQg
Y29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSB0aGUgc3RhcnQgY29udGFpbmVyIik7CisgICAg
aWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5v
ZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIHN0
YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlm
IChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVuZENvbnRhaW5lciAhPSBnZXRTZWxlY3Rp
b24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyKQorICAgICAgICBkb2N1bWVudC53cml0
ZSgiVGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lciB3YXMgZGlmZmVyZW50IGZyb20gaXRzIHN0YXJ0
IGNvbnRhaW5lciIpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5k
YXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5k
YXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJv
dW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYW4gZWRpdGFibGUgcmVnaW9u
IGluIGEgc2hhZG93IHRyZWUgdG8gYW4gZWRpdGFibGUgcmVnaW9uIGluIHRoZSBkb2N1bWVudCB0
cmVlLjxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5
IGEgbW91c2UgZHJhZyBmcm9tICJoIiB0byAiZCIuIFdlYktpdCBzaG91bGQgb25seSBzZWxlY3Qg
ImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPjxkaXYgY29udGVudGVkaXRhYmxlPmhl
bGxvPC9kaXY+IHdvcmxkPC9kaXY+Cis8c2NyaXB0PgorY29udGFpbmVyLmZvY3VzKCk7CitnZXRT
ZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb250YWluZXIuZmlyc3RDaGlsZCk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHkt
My5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1h
Y3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgaW50ZXJuYWw6c2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ9
dHJ1ZSBdIC0tPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRl
bnQgc3RhcnRpbmcgaW4gYW4gZWRpdGFibGUgcmVnaW9uIGluIGEgc2hhZG93IHRyZWUgdG8gYW4g
ZWRpdGFibGUgcmVnaW9uIGluIHRoZSBkb2N1bWVudCB0cmVlLjxicj4KK1RvIG1hbnVhbGx5IHRl
c3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZyBmcm9tICJoIiB0
byAiZCIuIFdlYktpdCBzaG91bGQgb25seSBzZWxlY3QgImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJj
b250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT53b3JsZDwvZGl2PgorPHNjcmlwdD4KKworY29uc3Qg
aG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29udGFpbmVyLnByZXBlbmQo
aG9zdCk7Citjb25zdCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9z
ZWQnfSk7CitzaGFkb3dSb290LmlubmVySFRNTCA9ICc8ZGl2IGNvbnRlbnRlZGl0YWJsZT5oZWxs
byA8L2Rpdj4nOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIu
ZHJhZ01vZGUgPSBmYWxzZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIu
b2Zmc2V0TGVmdCArIDEsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zm
c2V0TGVmdCArIGNvbnRhaW5lci5vZmZzZXRXaWR0aCAtIDUsIGNvbnRhaW5lci5vZmZzZXRUb3Ag
KyBjb250YWluZXIub2Zmc2V0SGVpZ2h0IC0gNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9
IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHN0YXJ0IGNvbnRhaW5lcidz
IHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24o
KS5zdGFydENvbnRhaW5lciAhPSBnZXRTZWxlY3Rpb24oKS5lbmRDb250YWluZXIpCisgICAgICAg
IGRvY3VtZW50LndyaXRlKCJUaGUgZW5kIGNvbnRhaW5lciB3YXMgZGlmZmVyZW50IGZyb20gdGhl
IHN0YXJ0IGNvbnRhaW5lciIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDAp
LnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3Vt
ZW50LndyaXRlKCJUaGUgcmFuZ2UncyBzdGFydCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5v
dCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5l
bmRDb250YWluZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5l
cikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIGVuZCBjb250YWluZXIgd2Fz
IGRpZmZlcmVudCBmcm9tIGl0cyBzdGFydCBjb250YWluZXIiKTsKK30KKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTQtZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTQtZXhwZWN0
ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
ZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTQtZXhw
ZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0
aW5nIGluIGEgc2hhZG93IHRyZWUgaW5zaWRlIGFuIGVkaXRhYmxlIHJlZ2lvbiB0byB0aGUgb3V0
c2lkZS48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBi
eSBhIG1vdXNlIGRyYWcgZnJvbSB0aGUgYm90dG9tIHJpZ2h0IHRvIHRoZSB0b3AgbGVmdC48YnI+
CitXZWJLaXQgc2hvdWxkIG5vdCBleHRlbmQgdGhlIHNlbGVjdGlvbiB0byB0aGUgZWRpdGFibGUg
cmVnaW9uIG91dHNpZGUgdGhlIHNoYWRvdyB0cmVlLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIg
Y29udGVudGVkaXRhYmxlPmhlbGxvIDxkaXY+d29ybGQ8L2Rpdj48L2Rpdj4KKzxzY3JpcHQ+Citj
b250YWluZXIuZm9jdXMoKTsKK2dldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvbnRh
aW5lci5sYXN0Q2hpbGQpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFy
aWVzLW1peGVkLWVkaXRhYmlsaXR5LTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVk
LWVkaXRhYmlsaXR5LTQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRh
YmlsaXR5LTQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOnNlbGVjdGlvbkFjcm9zc1No
YWRvd0JvdW5kYXJpZXNFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5nIGluIGEgc2hhZG93IHRyZWUgaW5zaWRl
IGFuIGVkaXRhYmxlIHJlZ2lvbiB0byB0aGUgb3V0c2lkZS48YnI+CitUbyBtYW51YWxseSB0ZXN0
LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcgZnJvbSB0aGUgYm90
dG9tIHJpZ2h0IHRvIHRoZSB0b3AgbGVmdC48YnI+CitXZWJLaXQgc2hvdWxkIG5vdCBleHRlbmQg
dGhlIHNlbGVjdGlvbiB0byB0aGUgZWRpdGFibGUgcmVnaW9uIG91dHNpZGUgdGhlIHNoYWRvdyB0
cmVlLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPmhlbGxvIDwvZGl2
PgorPHNjcmlwdD4KKworY29uc3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3Qu
YXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC50ZXh0Q29udGVudCA9
ICd3b3JsZCc7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5k
cmFnTW9kZSA9IGZhbHNlOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5v
ZmZzZXRMZWZ0ICsgY29udGFpbmVyLm9mZnNldFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRv
cCArIGNvbnRhaW5lci5vZmZzZXRIZWlnaHQgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCAt
IDEsIGNvbnRhaW5lci5vZmZzZXRUb3AgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0g
ZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mg
cm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigp
LnN0YXJ0Q29udGFpbmVyICE9IGdldFNlbGVjdGlvbigpLmVuZENvbnRhaW5lcikKKyAgICAgICAg
ZG9jdW1lbnQud3JpdGUoIlRoZSBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSB0aGUg
c3RhcnQgY29udGFpbmVyIik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCku
c3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1l
bnQud3JpdGUoIlRoZSByYW5nZSdzIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90
IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVu
ZENvbnRhaW5lciAhPSBnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVy
KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lciB3YXMg
ZGlmZmVyZW50IGZyb20gaXRzIHN0YXJ0IGNvbnRhaW5lciIpOworfQorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNS1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNS1leHBlY3Rl
ZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNS1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRp
bmcgaW4gYSBzaGFkb3cgdHJlZSBpbnNpZGUgYSBub24tZWRpdGFibGUgcmVnaW9uIGluIGFuIGVk
aXRhYmxlIHJlZ2lvbiB0byBvdXRzaWRlIHRoZSBlZGl0YWJsZSByZWdpb24uPGJyPgorVG8gbWFu
dWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCBXZWJLaXQiIGJlbG93IGJ5IGEgbW91c2Ug
ZHJhZyBmcm9tIHRoZSBib3R0b20gcmlnaHQgdG8gdGhlIHRvcCBsZWZ0Ljxicj4KK1dlYktpdCBz
aG91bGQgbm90IGV4dGVuZCB0aGUgc2VsZWN0aW9uIHRvIG91dHNpZGUgdGhlIHNoYWRvdyB0cmVl
LjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPmhlbGxvPGJyPndvcmxk
PGRpdj5XZWJLaXQ8L2Rpdj48L2Rpdj4KKzxzY3JpcHQ+Citjb250YWluZXIuZm9jdXMoKTsKK2dl
dFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvbnRhaW5lci5sYXN0Q2hpbGQpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5
LTUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTUuaHRtbAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24t
YWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGludGVybmFsOnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVk
PXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250
ZW50IHN0YXJ0aW5nIGluIGEgc2hhZG93IHRyZWUgaW5zaWRlIGEgbm9uLWVkaXRhYmxlIHJlZ2lv
biBpbiBhbiBlZGl0YWJsZSByZWdpb24gdG8gb3V0c2lkZSB0aGUgZWRpdGFibGUgcmVnaW9uLjxi
cj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQgV2ViS2l0IiBiZWxvdyBi
eSBhIG1vdXNlIGRyYWcgZnJvbSB0aGUgYm90dG9tIHJpZ2h0IHRvIHRoZSB0b3AgbGVmdC48YnI+
CitXZWJLaXQgc2hvdWxkIG5vdCBleHRlbmQgdGhlIHNlbGVjdGlvbiB0byBvdXRzaWRlIHRoZSBz
aGFkb3cgdHJlZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT5oZWxs
byA8ZGl2IGNvbnRlbnRlZGl0YWJsZT0iZmFsc2UiPndvcmxkPC9kaXY+PC9kaXY+Cis8c2NyaXB0
PgorCitjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb250YWlu
ZXIubGFzdENoaWxkLmFwcGVuZChob3N0KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFj
aFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QudGV4dENvbnRlbnQgPSAnIFdl
YktpdCc7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5kcmFn
TW9kZSA9IGZhbHNlOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZz
ZXRMZWZ0ICsgY29udGFpbmVyLm9mZnNldFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCAr
IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIDEs
IGNvbnRhaW5lci5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgaWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9j
dW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mgcm9v
dCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0
YXJ0Q29udGFpbmVyICE9IGdldFNlbGVjdGlvbigpLmVuZENvbnRhaW5lcikKKyAgICAgICAgZG9j
dW1lbnQud3JpdGUoIlRoZSBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSB0aGUgc3Rh
cnQgY29udGFpbmVyIik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3Rh
cnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQu
d3JpdGUoIlRoZSByYW5nZSdzIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRo
ZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVuZENv
bnRhaW5lciAhPSBnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyKQor
ICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lciB3YXMgZGlm
ZmVyZW50IGZyb20gaXRzIHN0YXJ0IGNvbnRhaW5lciIpOworfQorCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlv
bi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMS1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMS1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93
LWJvdW5kYXJpZXMtcmVhZG9ubHktMS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVz
dHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gdGhlIGRvY3VtZW50IGludG8gYSBzaGFk
b3cgdHJlZS48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxv
dyBieSBhIG1vdXNlIGRyYWcuIFdlYktpdCBzaG91bGQgc2VsZWN0IHRoZSBwaHJhc2UuPC9wPgor
PGRpdiBpZD0iY29udGFpbmVyIj5oZWxsbyA8ZGl2PndvcmxkPC9kaXY+PC9kaXY+Cis8c2NyaXB0
PgorZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29udGFpbmVyKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0xLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1z
aGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0xLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmll
cy1yZWFkb25seS0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpzZWxlY3Rpb25BY3Jv
c3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiB0aGUgZG9jdW1lbnQgaW50
byBhIHNoYWRvdyB0cmVlLjxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29y
bGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZy4gV2ViS2l0IHNob3VsZCBzZWxlY3QgdGhlIHBocmFz
ZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPmhlbGxvIDwvZGl2PgorPHNjcmlwdD4KKworY29u
c3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29udGFpbmVyLmFwcGVu
ZENoaWxkKGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2Rl
OiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC50ZXh0Q29udGVudCA9ICd3b3JsZCc7CisKK2lmICh3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5kcmFnTW9kZSA9IGZhbHNlOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0IC0gMiwgY29u
dGFpbmVyLm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0ICsgY29udGFpbmVy
Lm9mZnNldFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCArIGNvbnRhaW5lci5vZmZzZXRI
ZWlnaHQgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgaWYgKGdldFNlbGVj
dGlvbigpLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAg
IGRvY3VtZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3Qg
dGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmVuZENvbnRhaW5lci5nZXRS
b290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIGVuZCBj
b250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0
U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9
IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3Mgc3RhcnQgY29u
dGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNl
bGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9j
dW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBlbmQgY29udGFpbmVy
J3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7Cit9CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0
aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0yLWV4cGVjdGVkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9z
cy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0yLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFk
b3ctYm91bmRhcmllcy1yZWFkb25seS0yLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0cmVlIG91dCB0byB0
aGUgZG9jdW1lbnQuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCIg
YmVsb3cgYnkgYSBtb3VzZSBkcmFnLiBXZWJLaXQgc2hvdWxkIHNlbGVjdCB0aGUgcGhyYXNlLjwv
cD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+aGVsbG8gPGRpdj53b3JsZDwvZGl2PjwvZGl2PgorPHNj
cmlwdD4KK2dldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvbnRhaW5lcik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jv
c3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMi5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5k
YXJpZXMtcmVhZG9ubHktMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6c2VsZWN0aW9u
QWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYSBzaGFkb3cgdHJl
ZSBvdXQgdG8gdGhlIGRvY3VtZW50Ljxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVs
bG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZy4gV2ViS2l0IHNob3VsZCBzZWxlY3QgdGhl
IHBocmFzZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPndvcmxkPC9kaXY+Cis8c2NyaXB0Pgor
Citjb25zdCBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb250YWluZXIu
cHJlcGVuZChob3N0KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9k
ZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QudGV4dENvbnRlbnQgPSAnaGVsbG8gJzsKKworaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7
CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgLSAyLCBj
b250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyBjb250YWlu
ZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgY29udGFpbmVyLm9mZnNl
dEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBpZiAoZ2V0U2Vs
ZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAg
ICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5v
dCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZW5kQ29udGFpbmVyLmdl
dFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgZW5k
IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChn
ZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkg
IT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBzdGFydCBj
b250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0
U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBk
b2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIGVuZCBjb250YWlu
ZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKK30KKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTMtZXhwZWN0ZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNy
b3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTMtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNo
YWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5nIGluIG9uZSBzaGFkb3cgdHJlZSBhbmQg
ZW5kaW5nIGFub3RoZXIgc2hhZG93IHRyZWUuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0
ICJoZWxsbyB3b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnLiBXZWJLaXQgc2hvdWxkIHNlbGVj
dCB0aGUgcGhyYXNlLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+aGVsbG8gPGRpdj53b3JsZDwv
ZGl2PjwvZGl2PgorPHNjcmlwdD4KK2dldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNv
bnRhaW5lcik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVh
ZG9ubHktMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jv
c3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50
ZXJuYWw6c2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcg
aW4gb25lIHNoYWRvdyB0cmVlIGFuZCBlbmRpbmcgYW5vdGhlciBzaGFkb3cgdHJlZS48YnI+CitU
byBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRy
YWcuIFdlYktpdCBzaG91bGQgc2VsZWN0IHRoZSBwaHJhc2UuPC9wPgorPGRpdiBpZD0iY29udGFp
bmVyIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2NvbnN0IGhvc3QxID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Citjb25zdCBzaGFkb3dSb290MSA9IGhvc3QxLmF0dGFjaFNoYWRvdyh7bW9k
ZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QxLnRleHRDb250ZW50ID0gJ2hlbGxvICc7CisKK2Nv
bnN0IGhvc3QyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb25zdCBzaGFkb3dS
b290MiA9IGhvc3QyLmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3Qy
LnRleHRDb250ZW50ID0gJ3dvcmxkJzsKK2NvbnRhaW5lci5hcHBlbmQoaG9zdDEsIGhvc3QyKTsK
KworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0g
ZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQg
LSAyLCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyBj
b250YWluZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgY29udGFpbmVy
Lm9mZnNldEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBpZiAo
Z2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkK
KyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBjb250YWluZXIncyByb290IG5vZGUg
d2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZW5kQ29udGFp
bmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJU
aGUgZW5kIGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAg
IGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLmdldFJvb3RO
b2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBz
dGFydCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBp
ZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIuZ2V0Um9vdE5vZGUo
KSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIGVuZCBj
b250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKK30KKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0LWFsbC0xLWV4
cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy11c2VyLXNlbGVjdC1hbGwtMS1leHBl
Y3RlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3QtYWxsLTEtZXhw
ZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0
aW5nIGluIGEgc2hhZG93IHRyZWUgaW5zaWRlIGEgPGNvZGU+dXNlci1zZWxlY3Q6IGFsbDwvY29k
ZT4gaW4gYW4gZWRpdGFibGUgcmVnaW9uIGluIHRvIG91dHNpZGUgdGhlIGVkaXRhYmxlIHJlZ2lv
bi48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIFdlYktpdCByb2Nr
cyIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gImgiIHRvICJzIi4gV2ViS2l0IHNob3VsZCBz
ZWxlY3QgImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPjxkaXYgY29udGVudGVkaXRh
YmxlPjxkaXYgaWQ9InNlbGVjdGVkIj5oZWxsbzwvZGl2PndvcmxkPGJyPldlYktpdDwvZGl2PnJv
Y2tzPC9kaXY+Cis8c2NyaXB0PgorZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oc2Vs
ZWN0ZWQpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXIt
c2VsZWN0LWFsbC0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy11c2VyLXNlbGVjdC1hbGwt
MS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3QtYWxsLTEuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGludGVybmFsOnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNF
bmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGlu
ZyBjb250ZW50IHN0YXJ0aW5nIGluIGEgc2hhZG93IHRyZWUgaW5zaWRlIGEgPGNvZGU+dXNlci1z
ZWxlY3Q6IGFsbDwvY29kZT4gaW4gYW4gZWRpdGFibGUgcmVnaW9uIGluIHRvIG91dHNpZGUgdGhl
IGVkaXRhYmxlIHJlZ2lvbi48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdv
cmxkIFdlYktpdCByb2NrcyIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gImgiIHRvICJzIi4g
V2ViS2l0IHNob3VsZCBzZWxlY3QgImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPjxk
aXYgY29udGVudGVkaXRhYmxlPjxkaXYgc3R5bGU9InVzZXItc2VsZWN0OiBhbGwiPndvcmxkPC9k
aXY+IFdlYktpdDwvZGl2PnJvY2tzPC9kaXY+Cis8c2NyaXB0PgorCitjb25zdCBob3N0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citjb250YWluZXIuZmlyc3RDaGlsZC5wcmVwZW5k
KGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xv
c2VkJ30pOworc2hhZG93Um9vdC50ZXh0Q29udGVudCA9ICdoZWxsbyAnOworCitpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIDEsIGNvbnRhaW5l
ci5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIGNvbnRhaW5lci5vZmZz
ZXRXaWR0aCAtIDUsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyBjb250YWluZXIub2Zmc2V0SGVpZ2h0
IC0gNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGlmIChnZXRTZWxlY3Rpb24o
KS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1
bWVudC53cml0ZSgiVGhlIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBk
b2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lciAhPSBnZXRT
ZWxlY3Rpb24oKS5lbmRDb250YWluZXIpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgZW5k
IGNvbnRhaW5lciB3YXMgZGlmZmVyZW50IGZyb20gdGhlIHN0YXJ0IGNvbnRhaW5lciIpOworICAg
IGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLmdldFJvb3RO
b2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBz
dGFydCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBp
ZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIgIT0gZ2V0U2VsZWN0
aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lcikKKyAgICAgICAgZG9jdW1lbnQud3Jp
dGUoIlRoZSByYW5nZSdzIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVudCBmcm9tIGl0cyBzdGFy
dCBjb250YWluZXIiKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjM2NDkz
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMSw2ICsxMDEsMTYgQEAgd2Via2l0Lm9yZy9iLzE3MzI4MSBodHRwL3Rlc3Rz
L3NlY3VyaXR5Lwogd2Via2l0Lm9yZy9iLzE3MzI4MSBlZGl0aW5nL3N0eWxlL3NldC1mb3JlQ29s
b3Itd2l0aC1jb2xvci1maWx0ZXIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE3MzI4MSBl
ZGl0aW5nL3N0eWxlL3NldC1iYWNrQ29sb3Itd2l0aC1jb2xvci1maWx0ZXIuaHRtbCBbIFNraXAg
XQogd2Via2l0Lm9yZy9iLzE3MzI4MSBlZGl0aW5nL3N0eWxlL2ludmVyc2UtY29sb3ItZmlsdGVy
Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNzMyODEgZWRpdGluZy9zdHlsZS9pbnZlcnNl
LWNvbG9yLWZpbHRlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcv
c2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFi
aWxpdHktMS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHkt
Mi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy5odG1s
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlv
bi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNC5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jv
c3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNS5odG1sIFsgU2tpcCBdCit3
ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hh
ZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTcz
MjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMt
cmVhZG9ubHktMi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1s
IFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlv
bi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3QtYWxsLTEuaHRtbCBbIFNraXAg
XQogCiAjIFRPRE8gSFcgZmlsdGVycyBub3QgeWV0IHN1cHBvcnRlZCBvbiBXaW5kb3dzCiB3ZWJr
aXQub3JnL2IvNzQ3MTYgY3NzMy9maWx0ZXJzL2VmZmVjdC1ibHVyLWh3Lmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350882</attachid>
            <date>2018-09-26 12:30:25 -0700</date>
            <delta_ts>2018-09-26 12:43:56 -0700</delta_ts>
            <desc>Removed the dead code</desc>
            <filename>bug-151380-20180926123024.patch</filename>
            <type>text/plain</type>
            <size>46509</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTA5LTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFNlbGVjdGlvbiBzaG91bGQgd29y
ayBhY3Jvc3Mgc2hhZG93IGJvdW5kYXJ5IHdoZW4gaW5pdGlhdGVkIGJ5IGEgbW91c2UgZHJhZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDM2Mzg3Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGJhc2ljIHN1cHBv
cnQgZm9yIHNlbGVjdGluZyBjb250ZW50IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgdG8g
VmlzaWJsZVNlbGVjdGlvbiwKKyAgICAgICAgd2hpY2ggaXMgZW5vdWdoIHRvIGFsbG93IHVzZXJz
IHRvIHNlbGVjdCBjb250ZW50IGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgdmlhIGEgbW91
c2UgZHJhZy4KKworICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIGFsbG93aW5nIHVz
ZXJzIHRvIHNlbGVjdCwgY29weSBhbmQgcGFzdGUgY29udGVudCBhY3Jvc3Mgc2hhZG93IERPTSBi
b3VuZGFyaWVzLAorICAgICAgICB3aGljaCBpcyBhIHNlcmlvdXMgdXNlciBleHBlcmllbmNlIHJl
Z3Jlc3Npb24gcmlnaHQgbm93LiBUaGUgbmV3IGJlaGF2aW9yIGlzIGVuYWJsZWQgYnkgZGVmYXVs
dCB1bmRlcgorICAgICAgICBhbiBpbnRlcmFsIGRlYnVnIGZlYXR1cmUgZmxhZzogc2VsZWN0aW9u
QWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQuCisKKyAgICAgICAgTGlrZSBDaHJvbWUsIHdl
IGFyZSBub3QgZ29pbmcgdG8gc3VwcG9ydCBzZWxlY3RpbmcgZWRpdGFibGUgY29udGVudCBhY3Jv
c3Mgc2hhZG93IERPTSBib3VuZGFyaWVzIHNpbmNlCisgICAgICAgIHdlJ2QgaGF2ZSB0byBnZW5l
cmFsaXplIGV2ZXJ5IGVkaXRpbmcgY29tbWFuZHMgdG8gbWFrZSB0aGF0IHdvcmssIGFuZCB0aGVy
ZSBhcmVuJ3QgYW55IEhUTUwgZWRpdG9ycyB0aGF0CisgICAgICAgIHVzZSBzaGFkb3cgRE9NIGJv
dW5kYXJpZXMgd2l0aGluIGFuIGVkaXRhYmxlIHJlZ2lvbiB5ZXQuIEZvciBzaW1wbGljaXR5LCB3
ZSBhbHNvIGRvbid0IHN1cHBvcnQgZXh0ZW5kaW5nCisgICAgICAgIGEgc2VsZWN0aW9uIG91dCBv
ZiBhIHNoYWRvdyByb290IHdoaWNoIHJlc2lkZXMgaW5zaWRlIGFuIGVkaXRpbmcgcmVnaW9uLgor
CisgICAgICAgIFRoZSBrZXlib2FyZCBiYXNlZCBuYXZpZ2F0aW9uICYgbWFuaXB1bGF0aW9uIG9m
IHNlbGVjdGlvbiBhcyB3ZWxsIGFzIGFsbG93aW5nIGNvcHkgJiBwYXN0ZSBvZiBjb250ZW50Cisg
ICAgICAgIGFjcm9zcyBzaGFkb3cgRE9NIGJvdW5kYXJpZXMgd2lsbCBiZSBpbXBsZW1lbnRlZCBi
eSBzZXBhcmF0ZSBwYXRjaGVzLiBET01TZWxlY3Rpb24gd2lsbCBub3QgZXhwb3NlIHRoaXMgbmV3
CisgICAgICAgIGJlaGF2aW9yIGVpdGhlci4gVGhpcyBpcyB0cmFja2VkIGluIHRoZSBzcGVjIGFz
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViY29tcG9uZW50cy9pc3N1ZXMvNzkKKworICAgICAg
ICBUZXN0czogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRh
cmllcy1taXhlZC1lZGl0YWJpbGl0eS0xLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxp
dHktMi5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNy
b3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMuaHRtbAorICAgICAgICAg
ICAgICAgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmll
cy1taXhlZC1lZGl0YWJpbGl0eS00Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHkt
NS5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3Nz
LXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEuaHRtbAorICAgICAgICAgICAgICAgZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0y
Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0
LWFsbC0xLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFk
b3dBbmNlc3Rvcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6
YWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcyk6IFdoZW4gdGhl
IGZlYXR1cmUgaXMgZW5hYmxlZCwKKyAgICAgICAgYWxsb3cgY3Jvc3Npbmcgc2hhZG93IERPTSBi
b3VuZGFyaWVzIGV4Y2VwdCB3aGVuIGVpdGhlciBlbmQgaXMgaW5zaWRlIGFuIHVzZXIgYWdlbnQg
c2hhZG93IHJvb3QsIG9yIG9uZSBvZgorICAgICAgICBpdHMgc2hhZG93IGluY2x1ZGlnbiBhbmNl
c3RvciBpcyBpbnNpZGUgYW4gZWRpdGFibGUgcmVnaW9uLiBUaGUgbGF0dGVyIGNoZWNrIGlzIG5l
ZWRlZCB0byBkaXNhbGxvdworICAgICAgICBhbiBleHRlbnNpb24gb2YgYSBzZWxlY3Rpb24gc3Rh
cnRpbmcgaW4gYSBzaGFkb3cgdHJlZSBpbnNpZGUgYSBub24tZWRpdGFibGUgcmVnaW9uIGluc2lk
ZSBhbiBlZGl0YWJsZSByZWdpb24KKyAgICAgICAgdG8gb3V0c2lkZSB0aGUgZWRpdGFibGUgcmVn
aW9uLiBUaGUgcmVzdCBvZiB0aGUgZWRpdGluZyBjb2RlIGlzIG5vdCByZWFkeSB0byBkZWFsIHdp
dGggc2VsZWN0aW9uIGxpa2UgdGhhdC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IEFk
ZGVkIGFuIGludGVybmFsIGRlYnVnIGZlYXR1cmUgdG8gZW5hYmxlIHRoaXMgbmV3IGJlaGF2aW9y
LgorCiAyMDE4LTA5LTI1ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViR0wgMiBDb25mb3JtYW5jZTogcHJpbWl0aXZlIHJlc3RhcnQgYW5kIGRyYXdfcHJp
bWl0aXZlX3Jlc3RhcnQgV2ViR0wyIHNhbXBsZQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCShyZXZpc2lvbiAyMzY0OTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiRWRpdGluZy5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRl
IDxzdGRpby5oPgpAQCAtNTA0LDIzICs1MDUsNDUgQEAgUG9zaXRpb24gVmlzaWJsZVNlbGVjdGlv
bjo6YWRqdXN0UG9zaXRpbwogICAgIHJldHVybiBQb3NpdGlvbigpOwogfQogCitzdGF0aWMgYm9v
bCBpc0luVXNlckFnZW50U2hhZG93Um9vdE9ySGFzRWRpdGFibGVTaGFkb3dBbmNlc3RvcihOb2Rl
JiBub2RlKQoreworICAgIGF1dG8qIHNoYWRvd1Jvb3QgPSBub2RlLmNvbnRhaW5pbmdTaGFkb3dS
b290KCk7CisgICAgaWYgKCFzaGFkb3dSb290KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoc2hhZG93Um9vdC0+bW9kZSgpID09IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdlbnQpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgZm9yIChSZWZQdHI8Tm9kZT4gY3VycmVudE5vZGUg
PSAmbm9kZTsgY3VycmVudE5vZGU7IGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnBhcmVudE9y
U2hhZG93SG9zdE5vZGUoKSkgeworICAgICAgICBpZiAoY3VycmVudE5vZGUtPmhhc0VkaXRhYmxl
U3R5bGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENy
b3NzaW5nU2hhZG93Qm91bmRhcmllcygpCiB7CiAgICAgaWYgKG1fYmFzZS5pc051bGwoKSB8fCBt
X3N0YXJ0LmlzTnVsbCgpIHx8IG1fZW5kLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoJm1fc3RhcnQuYW5jaG9yTm9kZSgpLT50cmVlU2NvcGUoKSA9PSAmbV9lbmQuYW5jaG9y
Tm9kZSgpLT50cmVlU2NvcGUoKSkKKyAgICBhdXRvIHN0YXJ0Tm9kZSA9IG1ha2VSZWYoKm1fc3Rh
cnQuYW5jaG9yTm9kZSgpKTsKKyAgICBhdXRvIGVuZE5vZGUgPSBtYWtlUmVmKCptX2VuZC5hbmNo
b3JOb2RlKCkpOworICAgIGlmICgmc3RhcnROb2RlLT50cmVlU2NvcGUoKSA9PSAmZW5kTm9kZS0+
dHJlZVNjb3BlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChzdGFydE5vZGUtPmRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5zZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCgp
KSB7CisgICAgICAgIGlmICghaXNJblVzZXJBZ2VudFNoYWRvd1Jvb3RPckhhc0VkaXRhYmxlU2hh
ZG93QW5jZXN0b3Ioc3RhcnROb2RlKQorICAgICAgICAgICAgJiYgIWlzSW5Vc2VyQWdlbnRTaGFk
b3dSb290T3JIYXNFZGl0YWJsZVNoYWRvd0FuY2VzdG9yKGVuZE5vZGUpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGlmIChtX2Jhc2VJc0ZpcnN0KSB7Ci0gICAgICAgIG1fZXh0
ZW50ID0gYWRqdXN0UG9zaXRpb25Gb3JFbmQobV9lbmQsIG1fc3RhcnQuY29udGFpbmVyTm9kZSgp
KTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgc3RhcnRO
b2RlLnB0cigpKTsKICAgICAgICAgbV9lbmQgPSBtX2V4dGVudDsKICAgICB9IGVsc2UgewotICAg
ICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yU3RhcnQobV9zdGFydCwgbV9lbmQuY29u
dGFpbmVyTm9kZSgpKTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvclN0YXJ0
KG1fc3RhcnQsIGVuZE5vZGUucHRyKCkpOwogICAgICAgICBtX3N0YXJ0ID0gbV9leHRlbnQ7CiAg
ICAgfQotCi0gICAgQVNTRVJUKCZtX3N0YXJ0LmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCkgPT0g
Jm1fZW5kLmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCkpOwogfQogCiB2b2lkIFZpc2libGVTZWxl
Y3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdCb3VuZGFyaWVzKCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwJKHJldmlzaW9uIDIzNjQ5MykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMzg5LDYg
KzM4OSw4IEBAIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDoKICAgaW5pdGlhbDogZGVmYXVsdFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAogc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDoK
ICAgaW5pdGlhbDogZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQKK3NlbGVj
dGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQogCiB1
c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yOgogICBpbml0aWFsOiBmYWxz
ZQpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNjQ5OCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDktMjYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2VsZWN0aW9uIHNob3VsZCB3b3Jr
IGFjcm9zcyBzaGFkb3cgYm91bmRhcnkgd2hlbiBpbml0aWF0ZWQgYnkgYSBtb3VzZSBkcmFnCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEzODAKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0MzYzODcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
dHRpIEtvaXZpc3RvLgorCisgICAgICAgIEFkZGVkIFNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5k
YXJpZXNFbmFibGVkIGFzIGFuIGludGVybmFsIGRlYnVnIGZlYXR1cmUsCisgICAgICAgIGFuZCBt
b3ZlZCBDU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVzRW5hYmxlZCB0byB3aGVyZSBvdGhlciBl
eHBlcmltZW50YWwgZmVhdHVyZXMgYXJlIGxvY2F0ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKwogMjAxOC0wOS0yNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBNYWtlIGZyYW1lIGZsYXR0ZW5pbmcgYW4gaW50ZXJuYWwgZGVi
dWcgZmVhdHVyZQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1s
CShyZXZpc2lvbiAyMzY0OTMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMjU0LDYgKzEyNTQsMTQgQEAgU2VydmVyVGltaW5n
RW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgd2Vi
Y29yZU5hbWU6IHNlcnZlclRpbWluZ0VuYWJsZWQKIAorQ1NTQ3VzdG9tUHJvcGVydGllc0FuZFZh
bHVlc0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICBodW1h
blJlYWRhYmxlTmFtZTogIkNTUyBDdXN0b20gUHJvcGVydGllcyBhbmQgVmFsdWVzIEFQSSIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIENTUyBDdXN0b20gUHJvcGVydGllcyBh
bmQgVmFsdWVzIEFQSSIKKyAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMK
KyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAorCiAjIEZvciBpbnRlcm5hbCBmZWF0dXJlczoKICMg
VGhlIHR5cGUgc2hvdWxkIGJlIGJvb2xlYW4uCiAjIFlvdSBtdXN0IHByb3ZpZGUgYSBodW1hblJl
YWRhYmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uIGZvciBhbGwgZGVidWcgZmVh
dHVyZXMuIFRoZXkKQEAgLTEzMzgsNyArMTM0Niw3IEBAIEZ1bGxTY3JlZW5FbmFibGVkOgogCiBB
cmlhUmVmbGVjdGlvbkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKLSAgZGVmYXVsdFZhbHVlOiB0cnVl
CisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJBUklBIFJlZmxl
Y3Rpb24iCiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkFSSUEgUmVmbGVjdGlvbiBzdXBw
b3J0IgogICBjYXRlZ29yeTogaW50ZXJuYWwKQEAgLTEzNTIsMTAgKzEzNjAsMTAgQEAgV2ViQVBJ
U3RhdGlzdGljc0VuYWJsZWQ6CiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzCiAgIGNhdGVnb3J5OiBpbnRlcm5hbAogCi1DU1NDdXN0b21Qcm9wZXJ0aWVzQW5kVmFsdWVz
RW5hYmxlZDoKK1NlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkOgogICB0eXBl
OiBib29sCi0gIGRlZmF1bHRWYWx1ZTogZmFsc2UKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1Mg
Q3VzdG9tIFByb3BlcnRpZXMgYW5kIFZhbHVlcyBBUEkiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlw
dGlvbjogIkVuYWJsZSBDU1MgQ3VzdG9tIFByb3BlcnRpZXMgYW5kIFZhbHVlcyBBUEkiCi0gIHdl
YmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCi0gIGNhdGVnb3J5OiBleHBlcmlt
ZW50YWwKKyAgZGVmYXVsdFZhbHVlOiB0cnVlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2VsZWN0
aW9uIGFjcm9zcyBzaGFkb3cgRE9NIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBbGxv
dyB1c2VyLWluaXRpYXRlZCBzZWxlY3Rpb24gYWNyb3NzIHNoYWRvdyBET00gYm91bmRhcmllcyIK
KyAgY2F0ZWdvcnk6IGludGVybmFsCisgIHdlYmNvcmVOYW1lOiBzZWxlY3Rpb25BY3Jvc3NTaGFk
b3dCb3VuZGFyaWVzRW5hYmxlZApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMjM2NDkzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgtMDktMjYgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2VsZWN0aW9uIHNob3VsZCB3b3JrIGFjcm9zcyBz
aGFkb3cgYm91bmRhcnkgd2hlbiBpbml0aWF0ZWQgYnkgYSBtb3VzZSBkcmFnCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEzODAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI0MzYzODcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZp
c3RvLgorCisgICAgICAgIEFkZGVkIHNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFi
bGVkIGFzIGEgcHJlZmVyZW5jZSB0byBiZSB1c2VkIGluIER1bXBSZW5kZXJUcmVlLgorCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFs
aXplXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNlbGVjdGlvbkFjcm9zc1NoYWRvd0Jv
dW5kYXJpZXNFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFNlbGVjdGlv
bkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTgtMDktMjQgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3Ig
RWRpdG9yOjpmb250QXR0cmlidXRlc0ZvclNlbGVjdGlvblN0YXJ0IHRvIGJlIHBsYXRmb3JtLWFn
bm9zdGljCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDIzNjQ5MykKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2MiwzICsyNjIsNCBAQAogI2RlZmluZSBXZWJLaXRBcmlhUmVm
bGVjdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QXJpYVJlZmxlY3Rpb25FbmFibGVk
IgogI2RlZmluZSBXZWJLaXRNZWRpYUNhcGFiaWxpdGllc0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0TWVkaWFDYXBhYmlsaXRpZXNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTZXJ2ZXJUaW1p
bmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFNlcnZlclRpbWluZ0VuYWJsZWQiCisjZGVm
aW5lIFdlYktpdFNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdFNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkIgpJbmRl
eDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCShyZXZpc2lvbiAyMzY0OTMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NjQsNiArNjY0LDcgQEAgKyAo
dm9pZClpbml0aWFsaXplCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXRQZWVyQ29ubmVjdGlvbkVuYWJsZWRQcmVmZXJlbmNl
S2V5LAogI2VuZGlmCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktp
dFNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkUHJlZmVyZW5jZUtleSwKICNp
ZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQogICAgICAgICBATk8sIFdlYktpdEludGVy
c2VjdGlvbk9ic2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKQEAgLTMzNjUsNiAr
MzM2NiwxNiBAQCAtICh2b2lkKXNldFNlcnZlclRpbWluZ0VuYWJsZWQ6KEJPT0wpZmxhCiAgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRTZXJ2ZXJUaW1pbmdFbmFibGVk
UHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpc2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRh
cmllc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRT
ZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQor
CistICh2b2lkKXNldFNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkOihCT09M
KWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFNlbGVj
dGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIEBl
bmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVuY2VzIChXZWJJbnRlcm5hbCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAkocmV2aXNpb24gMjM2NDkzKQorKysgU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTgy
LDYgKzU4Miw5IEBAIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGUpCiAtICh2
b2lkKXNldFNlcnZlclRpbWluZ0VuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpc2VydmVyVGlt
aW5nRW5hYmxlZDsKIAorLSAodm9pZClzZXRTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVz
RW5hYmxlZDooQk9PTClmbGFnOworLSAoQk9PTClzZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFy
aWVzRW5hYmxlZDsKKwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRF
bmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRBUElFbmFi
bGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgQ1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5h
YmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0J
KHJldmlzaW9uIDIzNjQ5MykKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzE3MCw2ICszMTcwLDggQEAgLSAodm9pZClfcHJl
ZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbgogICAgIHNldHRpbmdzLnNldE1lZGlhQ2FwYWJp
bGl0aWVzRW5hYmxlZChbcHJlZmVyZW5jZXMgbWVkaWFDYXBhYmlsaXRpZXNFbmFibGVkXSk7CiAK
ICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNlcnZlclRp
bWluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIHNlcnZlclRpbWluZ0VuYWJsZWRdKTsKKworICAgIHNl
dHRpbmdzLnNldFNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkKHByZWZlcmVu
Y2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkKTsKIH0KIAogc3RhdGlj
IGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjM2NTE2KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDktMjYg
IFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2VsZWN0aW9uIHNo
b3VsZCB3b3JrIGFjcm9zcyBzaGFkb3cgYm91bmRhcnkgd2hlbiBpbml0aWF0ZWQgYnkgYSBtb3Vz
ZSBkcmFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTEzODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0MzYzODcyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEFkZGVkIHRoZSBzdXBwb3J0IGZvciBp
bnRlcm5hbDpzZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCB0ZXN0IG9wdGlv
bi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAg
KFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW06CisgICAgICAgIChyZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAg
ICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorCiAyMDE4LTA5LTI2ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRmxhdHBh
a10gQnVtcCB0byBhcHIgMS42LjUKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHAJKHJldmlzaW9uIDIzNjQ5MykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSw4IEBAIFRlc3RPcHRpb25zOjpUZXN0
T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmkKICAgICAgICAgICAgIGFsbG93Q3Jvc3NPcmlnaW5TdWJy
ZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVl
KHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJleHBlcmltZW50YWw6V2ViQW5pbWF0
aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCIpCiAgICAgICAgICAgICBlbmFibGVXZWJBbmltYXRp
b25zQ1NTSW50ZWdyYXRpb24gPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwor
ICAgICAgICBlbHNlIGlmIChrZXkgPT0gImludGVybmFsOnNlbGVjdGlvbkFjcm9zc1NoYWRvd0Jv
dW5kYXJpZXNFbmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRv
d0JvdW5kYXJpZXMgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAg
ICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZUNvbG9yRmlsdGVyIikKICAgICAgICAgICAgIGVuYWJs
ZUNvbG9yRmlsdGVyID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAg
ICAgZWxzZSBpZiAoa2V5ID09ICJqc2NPcHRpb25zIikKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaAkocmV2aXNpb24gMjM2NDkzKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQCBzdHJ1Y3QgVGVzdE9w
dGlvbnMgewogICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKICAg
ICBib29sIGFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzIHsg
ZmFsc2UgfTsKICAgICBib29sIGVuYWJsZUNvbG9yRmlsdGVyIHsgZmFsc2UgfTsKKyAgICBib29s
IGVuYWJsZVNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXMgeyBmYWxzZSB9OwogICAgIHN0
ZDo6c3RyaW5nIGpzY09wdGlvbnM7CiAKICAgICBUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmlu
ZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1dGVQYXRoKTsKSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlzaW9uIDIzNjQ5
MykKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtOTkwLDYgKzk5MCw4IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5j
ZXNUb0NvbnNpc3QKICAgICBbcHJlZmVyZW5jZXMgc2V0Q2FjaGVBUElFbmFibGVkOk5PXTsKICAg
ICBwcmVmZXJlbmNlcy5tZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQgPSBZRVM7CiAKKyAgICBwcmVm
ZXJlbmNlcy5zZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZCA9IE5POworCiAg
ICAgW1dlYlByZWZlcmVuY2VzIF9jbGVhck5ldHdvcmtMb2FkZXJTZXNzaW9uXTsKICAgICBbV2Vi
UHJlZmVyZW5jZXMgX3NldEN1cnJlbnROZXR3b3JrTG9hZGVyU2Vzc2lvbkNvb2tpZUFjY2VwdFBv
bGljeTpOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbl07
CiB9CkBAIC0xMDA4LDYgKzEwMTAsNyBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0Zv
clRlc3RPcHRpCiAgICAgcHJlZmVyZW5jZXMuYWxsb3dDcm9zc09yaWdpblN1YnJlc291cmNlc1Rv
QXNrRm9yQ3JlZGVudGlhbHMgPSBvcHRpb25zLmFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNU
b0Fza0ZvckNyZWRlbnRpYWxzOwogICAgIHByZWZlcmVuY2VzLndlYkFuaW1hdGlvbnNDU1NJbnRl
Z3JhdGlvbkVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlv
bjsKICAgICBwcmVmZXJlbmNlcy5jb2xvckZpbHRlckVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUNv
bG9yRmlsdGVyOworICAgIHByZWZlcmVuY2VzLnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJp
ZXNFbmFibGVkID0gb3B0aW9ucy5lbmFibGVTZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVz
OwogfQogCiAvLyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjM2NDkzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTgtMDktMjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgU2VsZWN0aW9uIHNob3VsZCB3b3JrIGFjcm9zcyBzaGFkb3cg
Ym91bmRhcnkgd2hlbiBpbml0aWF0ZWQgYnkgYSBtb3VzZSBkcmFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEzODAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI0MzYzODcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgor
CisgICAgICAgIEFkZGVkIHJlZ3Jlc3Npb24gdGVzdHMgdXNpbmcgcmVmIHRlc3RzIHNpbmNlIGdl
dFNlbGVjdGlvbigpIGRvZXNuJ3QgZXhwb3NlIGFueSBub2RlIGluc2lkZSBhIHNoYWRvdyB0cmVl
LgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ct
Ym91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0xLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJp
ZXMtbWl4ZWQtZWRpdGFiaWxpdHktMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmls
aXR5LTItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24v
c2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0yLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1i
b3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1l
ZGl0YWJpbGl0eS00LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxp
dHktNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24t
YWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTUtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1z
aGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS01Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMt
cmVhZG9ubHktMS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEuaHRtbDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFk
b3ctYm91bmRhcmllcy1yZWFkb25seS0yLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVh
ZG9ubHktMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rp
b24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTMtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ct
Ym91bmRhcmllcy1yZWFkb25seS0zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3QtYWxs
LTEtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy11c2VyLXNlbGVjdC1hbGwtMS5odG1sOiBB
ZGRlZC4KKwogMjAxOC0wOS0yNSAgSnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYkdMIDIgQ29uZm9ybWFuY2U6IHByaW1pdGl2ZSByZXN0YXJ0IGFuZCBkcmF3
X3ByaW1pdGl2ZV9yZXN0YXJ0IFdlYkdMMiBzYW1wbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRp
dGFiaWxpdHktMS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRp
dGFiaWxpdHktMS1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQt
ZWRpdGFiaWxpdHktMS1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0
aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYW4gZWRpdGFibGUgZWxlbWVudCB0byBhIHNoYWRvdyB0
cmVlLjxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5
IGEgbW91c2UgZHJhZyBmcm9tICJoIiB0byAiZCIuIFdlYktpdCBzaG91bGQgb25seSBzZWxlY3Qg
ImhlbGxvIi48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyA8
ZGl2PndvcmxkPC9kaXY+PC9kaXY+Cis8c2NyaXB0PgorY29udGFpbmVyLmZvY3VzKCk7CitnZXRT
ZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGNvbnRhaW5lciwgMCwgY29udGFpbmVyLCAxKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJp
bGl0eS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0xLmh0
bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0
aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS0xLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpzZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5h
YmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3Rpbmcg
Y29udGVudCBzdGFydGluZyBpbiBhbiBlZGl0YWJsZSBlbGVtZW50IHRvIGEgc2hhZG93IHRyZWUu
PGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCIgYmVsb3cgYnkgYSBt
b3VzZSBkcmFnIGZyb20gImgiIHRvICJkIi4gV2ViS2l0IHNob3VsZCBvbmx5IHNlbGVjdCAiaGVs
bG8iLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciIgY29udGVudGVkaXRhYmxlPmhlbGxvIDwvZGl2
PgorPHNjcmlwdD4KKworY29uc3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3Qu
YXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC50ZXh0Q29udGVudCA9
ICd3b3JsZCc7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5k
cmFnTW9kZSA9IGZhbHNlOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5v
ZmZzZXRMZWZ0ICsgMSwgY29udGFpbmVyLm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZz
ZXRMZWZ0ICsgY29udGFpbmVyLm9mZnNldFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCAr
IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0g
ZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mg
cm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigp
LnN0YXJ0Q29udGFpbmVyICE9IGdldFNlbGVjdGlvbigpLmVuZENvbnRhaW5lcikKKyAgICAgICAg
ZG9jdW1lbnQud3JpdGUoIlRoZSBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSB0aGUg
c3RhcnQgY29udGFpbmVyIik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCku
c3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1l
bnQud3JpdGUoIlRoZSByYW5nZSdzIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90
IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVu
ZENvbnRhaW5lciAhPSBnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVy
KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3MgZW5kIGNvbnRhaW5lciB3YXMg
ZGlmZmVyZW50IGZyb20gaXRzIHN0YXJ0IGNvbnRhaW5lciIpOworfQorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi1leHBlY3Rl
ZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nl
bGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi1leHBl
Y3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRp
bmcgaW4gYSBzaGFkb3cgdHJlZSBvdXQgdG8gYW4gZWRpdGFibGUgZWxlbWVudC48YnI+CitUbyBt
YW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcg
ZnJvbSAiaCIgdG8gImQiLiBXZWJLaXQgc2hvdWxkIG9ubHkgc2VsZWN0ICJoZWxsbyIuPC9wPgor
PGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFibGU+aGVsbG8gPGRpdj53b3JsZDwvZGl2
PjwvZGl2PgorPHNjcmlwdD4KK2NvbnRhaW5lci5mb2N1cygpOworZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudChjb250YWluZXIsIDAsIGNvbnRhaW5lciwgMSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jv
c3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hh
ZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
aW50ZXJuYWw6c2VsZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ9dHJ1ZSBdIC0t
PgorPGh0bWw+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRp
bmcgaW4gYSBzaGFkb3cgdHJlZSBvdXQgdG8gYW4gZWRpdGFibGUgZWxlbWVudC48YnI+CitUbyBt
YW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcg
ZnJvbSAiaCIgdG8gImQiLiBXZWJLaXQgc2hvdWxkIG9ubHkgc2VsZWN0ICJoZWxsbyIuPC9wPgor
PGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFibGU+d29ybGQ8L2Rpdj4KKzxzY3JpcHQ+
CisKK2NvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnRhaW5l
ci5wcmVwZW5kKGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC50ZXh0Q29udGVudCA9ICdoZWxsbyAnOworCitp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxz
ZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIDEs
IGNvbnRhaW5lci5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCArIGNvbnRh
aW5lci5vZmZzZXRXaWR0aCAtIDUsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyBjb250YWluZXIub2Zm
c2V0SGVpZ2h0IC0gNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGlmIChnZXRT
ZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAg
ICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMg
bm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5l
ciAhPSBnZXRTZWxlY3Rpb24oKS5lbmRDb250YWluZXIpCisgICAgICAgIGRvY3VtZW50LndyaXRl
KCJUaGUgZW5kIGNvbnRhaW5lciB3YXMgZGlmZmVyZW50IGZyb20gdGhlIHN0YXJ0IGNvbnRhaW5l
ciIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVy
LmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUg
cmFuZ2UncyBzdGFydCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQi
KTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5lbmRDb250YWluZXIgIT0g
Z2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lcikKKyAgICAgICAgZG9j
dW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVudCBmcm9t
IGl0cyBzdGFydCBjb250YWluZXIiKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNo
YWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMtZXhwZWN0ZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNo
YWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMtZXhwZWN0ZWQuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3Nz
LXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMtZXhwZWN0ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5nIGluIGFuIGVkaXRh
YmxlIHJlZ2lvbiBpbiBhIHNoYWRvdyB0cmVlIHRvIGFuIGVkaXRhYmxlIHJlZ2lvbiBpbiB0aGUg
ZG9jdW1lbnQgdHJlZS48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxk
IiBiZWxvdyBieSBhIG1vdXNlIGRyYWcgZnJvbSAiaCIgdG8gImQiLiBXZWJLaXQgc2hvdWxkIG9u
bHkgc2VsZWN0ICJoZWxsbyIuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj48ZGl2IGNvbnRlbnRl
ZGl0YWJsZT5oZWxsbzwvZGl2PiB3b3JsZDwvZGl2PgorPHNjcmlwdD4KK2NvbnRhaW5lci5mb2N1
cygpOworZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29udGFpbmVyLmZpcnN0Q2hp
bGQpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVk
aXRhYmlsaXR5LTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5
LTMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
ZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5LTMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJp
ZXNFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVj
dGluZyBjb250ZW50IHN0YXJ0aW5nIGluIGFuIGVkaXRhYmxlIHJlZ2lvbiBpbiBhIHNoYWRvdyB0
cmVlIHRvIGFuIGVkaXRhYmxlIHJlZ2lvbiBpbiB0aGUgZG9jdW1lbnQgdHJlZS48YnI+CitUbyBt
YW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcg
ZnJvbSAiaCIgdG8gImQiLiBXZWJLaXQgc2hvdWxkIG9ubHkgc2VsZWN0ICJoZWxsbyIuPC9wPgor
PGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRpdGFibGU+d29ybGQ8L2Rpdj4KKzxzY3JpcHQ+
CisKK2NvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnRhaW5l
ci5wcmVwZW5kKGhvc3QpOworY29uc3Qgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiAnY2xvc2VkJ30pOworc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPGRpdiBjb250ZW50ZWRp
dGFibGU+aGVsbG8gPC9kaXY+JzsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2
ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
Y29udGFpbmVyLm9mZnNldExlZnQgKyAxLCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29u
dGFpbmVyLm9mZnNldExlZnQgKyBjb250YWluZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIu
b2Zmc2V0VG9wICsgY29udGFpbmVyLm9mZnNldEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9v
dE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBj
b250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0
U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZW5kQ29udGFpbmVy
KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVu
dCBmcm9tIHRoZSBzdGFydCBjb250YWluZXIiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0
UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAg
ICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3Mgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBu
b2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJh
bmdlQXQoMCkuZW5kQ29udGFpbmVyICE9IGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3Rh
cnRDb250YWluZXIpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBlbmQgY29u
dGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJvbSBpdHMgc3RhcnQgY29udGFpbmVyIik7Cit9CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0
eS00LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0
eS00LWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJp
bGl0eS00LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29u
dGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0cmVlIGluc2lkZSBhbiBlZGl0YWJsZSByZWdpb24g
dG8gdGhlIG91dHNpZGUuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3Js
ZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gdGhlIGJvdHRvbSByaWdodCB0byB0aGUgdG9w
IGxlZnQuPGJyPgorV2ViS2l0IHNob3VsZCBub3QgZXh0ZW5kIHRoZSBzZWxlY3Rpb24gdG8gdGhl
IGVkaXRhYmxlIHJlZ2lvbiBvdXRzaWRlIHRoZSBzaGFkb3cgdHJlZS48L3A+Cis8ZGl2IGlkPSJj
b250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyA8ZGl2PndvcmxkPC9kaXY+PC9kaXY+Cis8
c2NyaXB0PgorY29udGFpbmVyLmZvY3VzKCk7CitnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGls
ZHJlbihjb250YWluZXIubGFzdENoaWxkKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFk
b3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS00Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRh
cmllcy1taXhlZC1lZGl0YWJpbGl0eS00Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1t
aXhlZC1lZGl0YWJpbGl0eS00Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpzZWxlY3Rp
b25BY3Jvc3NTaGFkb3dCb3VuZGFyaWVzRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0
cmVlIGluc2lkZSBhbiBlZGl0YWJsZSByZWdpb24gdG8gdGhlIG91dHNpZGUuPGJyPgorVG8gbWFu
dWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZy
b20gdGhlIGJvdHRvbSByaWdodCB0byB0aGUgdG9wIGxlZnQuPGJyPgorV2ViS2l0IHNob3VsZCBu
b3QgZXh0ZW5kIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGVkaXRhYmxlIHJlZ2lvbiBvdXRzaWRlIHRo
ZSBzaGFkb3cgdHJlZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT5o
ZWxsbyA8L2Rpdj4KKzxzY3JpcHQ+CisKK2NvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKK2NvbnRhaW5lci5hcHBlbmRDaGlsZChob3N0KTsKK2NvbnN0IHNoYWRvd1Jv
b3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QudGV4
dENvbnRlbnQgPSAnd29ybGQnOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZl
bnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhj
b250YWluZXIub2Zmc2V0TGVmdCArIGNvbnRhaW5lci5vZmZzZXRXaWR0aCAtIDUsIGNvbnRhaW5l
ci5vZmZzZXRUb3AgKyBjb250YWluZXIub2Zmc2V0SGVpZ2h0IC0gNSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9m
ZnNldExlZnQgLSAxLCBjb250YWluZXIub2Zmc2V0VG9wIC0gNSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lci5nZXRSb290
Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHN0YXJ0IGNv
bnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRT
ZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lciAhPSBnZXRTZWxlY3Rpb24oKS5lbmRDb250YWluZXIp
CisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgZW5kIGNvbnRhaW5lciB3YXMgZGlmZmVyZW50
IGZyb20gdGhlIHN0YXJ0IGNvbnRhaW5lciIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRS
YW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAg
ICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBzdGFydCBjb250YWluZXIncyByb290IG5v
ZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFu
Z2VBdCgwKS5lbmRDb250YWluZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFy
dENvbnRhaW5lcikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIGVuZCBjb250
YWluZXIgd2FzIGRpZmZlcmVudCBmcm9tIGl0cyBzdGFydCBjb250YWluZXIiKTsKK30KKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5
LTUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmlsaXR5
LTUtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLW1peGVkLWVkaXRhYmls
aXR5LTUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250
ZW50IHN0YXJ0aW5nIGluIGEgc2hhZG93IHRyZWUgaW5zaWRlIGEgbm9uLWVkaXRhYmxlIHJlZ2lv
biBpbiBhbiBlZGl0YWJsZSByZWdpb24gdG8gb3V0c2lkZSB0aGUgZWRpdGFibGUgcmVnaW9uLjxi
cj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVsbG8gd29ybGQgV2ViS2l0IiBiZWxvdyBi
eSBhIG1vdXNlIGRyYWcgZnJvbSB0aGUgYm90dG9tIHJpZ2h0IHRvIHRoZSB0b3AgbGVmdC48YnI+
CitXZWJLaXQgc2hvdWxkIG5vdCBleHRlbmQgdGhlIHNlbGVjdGlvbiB0byBvdXRzaWRlIHRoZSBz
aGFkb3cgdHJlZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiIGNvbnRlbnRlZGl0YWJsZT5oZWxs
bzxicj53b3JsZDxkaXY+V2ViS2l0PC9kaXY+PC9kaXY+Cis8c2NyaXB0PgorY29udGFpbmVyLmZv
Y3VzKCk7CitnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb250YWluZXIubGFzdENo
aWxkKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1l
ZGl0YWJpbGl0eS01Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0
eS01Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1taXhlZC1lZGl0YWJpbGl0eS01Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpzZWxlY3Rpb25BY3Jvc3NTaGFkb3dCb3VuZGFy
aWVzRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxl
Y3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0cmVlIGluc2lkZSBhIG5vbi1lZGl0
YWJsZSByZWdpb24gaW4gYW4gZWRpdGFibGUgcmVnaW9uIHRvIG91dHNpZGUgdGhlIGVkaXRhYmxl
IHJlZ2lvbi48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3QgImhlbGxvIHdvcmxkIFdlYktp
dCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnIGZyb20gdGhlIGJvdHRvbSByaWdodCB0byB0aGUgdG9w
IGxlZnQuPGJyPgorV2ViS2l0IHNob3VsZCBub3QgZXh0ZW5kIHRoZSBzZWxlY3Rpb24gdG8gb3V0
c2lkZSB0aGUgc2hhZG93IHRyZWUuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIiBjb250ZW50ZWRp
dGFibGU+aGVsbG8gPGRpdiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj53b3JsZDwvZGl2PjwvZGl2
PgorPHNjcmlwdD4KKworY29uc3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworY29udGFpbmVyLmxhc3RDaGlsZC5hcHBlbmQoaG9zdCk7Citjb25zdCBzaGFkb3dSb290ID0g
aG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CitzaGFkb3dSb290LnRleHRDb250
ZW50ID0gJyBXZWJLaXQnOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRT
ZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250
YWluZXIub2Zmc2V0TGVmdCArIGNvbnRhaW5lci5vZmZzZXRXaWR0aCAtIDUsIGNvbnRhaW5lci5v
ZmZzZXRUb3AgKyBjb250YWluZXIub2Zmc2V0SGVpZ2h0IC0gNSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNl
dExlZnQgKyAxLCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9k
ZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHN0YXJ0IGNvbnRh
aW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxl
Y3Rpb24oKS5zdGFydENvbnRhaW5lciAhPSBnZXRTZWxlY3Rpb24oKS5lbmRDb250YWluZXIpCisg
ICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgZW5kIGNvbnRhaW5lciB3YXMgZGlmZmVyZW50IGZy
b20gdGhlIHN0YXJ0IGNvbnRhaW5lciIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5n
ZUF0KDApLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAg
IGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBzdGFydCBjb250YWluZXIncyByb290IG5vZGUg
d2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VB
dCgwKS5lbmRDb250YWluZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENv
bnRhaW5lcikKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdzIGVuZCBjb250YWlu
ZXIgd2FzIGRpZmZlcmVudCBmcm9tIGl0cyBzdGFydCBjb250YWluZXIiKTsKK30KKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEtZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rp
b24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEtZXhwZWN0ZWQuaHRtbAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNy
b3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTEtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5nIGluIHRoZSBkb2N1bWVudCBp
bnRvIGEgc2hhZG93IHRyZWUuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3
b3JsZCIgYmVsb3cgYnkgYSBtb3VzZSBkcmFnLiBXZWJLaXQgc2hvdWxkIHNlbGVjdCB0aGUgcGhy
YXNlLjwvcD4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+aGVsbG8gPGRpdj53b3JsZDwvZGl2PjwvZGl2
PgorPHNjcmlwdD4KK2dldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvbnRhaW5lcik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlv
bi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMS5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93
LWJvdW5kYXJpZXMtcmVhZG9ubHktMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIg
QEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6c2Vs
ZWN0aW9uQWNyb3NzU2hhZG93Qm91bmRhcmllc0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gdGhlIGRv
Y3VtZW50IGludG8gYSBzaGFkb3cgdHJlZS48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBzZWxlY3Qg
ImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcuIFdlYktpdCBzaG91bGQgc2VsZWN0
IHRoZSBwaHJhc2UuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj5oZWxsbyA8L2Rpdj4KKzxzY3Jp
cHQ+CisKK2NvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2NvbnRh
aW5lci5hcHBlbmRDaGlsZChob3N0KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNo
YWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QudGV4dENvbnRlbnQgPSAnd29ybGQn
OworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUg
PSBmYWxzZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVm
dCAtIDIsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIub2Zmc2V0TGVmdCAr
IGNvbnRhaW5lci5vZmZzZXRXaWR0aCAtIDUsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyBjb250YWlu
ZXIub2Zmc2V0SGVpZ2h0IC0gNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGlm
IChnZXRTZWxlY3Rpb24oKS5zdGFydENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50
KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9k
ZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAgIGlmIChnZXRTZWxlY3Rpb24oKS5lbmRDb250
YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUo
IlRoZSBlbmQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7Cisg
ICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIuZ2V0Um9v
dE5vZGUoKSAhPSBkb2N1bWVudCkKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSByYW5nZSdz
IHN0YXJ0IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworICAg
IGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmVuZENvbnRhaW5lci5nZXRSb290Tm9k
ZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdlJ3MgZW5k
IGNvbnRhaW5lcidzIHJvb3Qgbm9kZSB3YXMgbm90IHRoZSBkb2N1bWVudCIpOworfQorCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMi1leHBlY3Rl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMi1leHBlY3RlZC5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1h
Y3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMi1leHBlY3RlZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdHMgc2VsZWN0aW5nIGNvbnRlbnQgc3RhcnRpbmcgaW4gYSBzaGFkb3cgdHJl
ZSBvdXQgdG8gdGhlIGRvY3VtZW50Ljxicj4KK1RvIG1hbnVhbGx5IHRlc3QsIHNlbGVjdCAiaGVs
bG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZy4gV2ViS2l0IHNob3VsZCBzZWxlY3QgdGhl
IHBocmFzZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPmhlbGxvIDxkaXY+d29ybGQ8L2Rpdj48
L2Rpdj4KKzxzY3JpcHQ+CitnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb250YWlu
ZXIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTIuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNo
YWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDMyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFs
OnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50IHN0YXJ0aW5nIGluIGEg
c2hhZG93IHRyZWUgb3V0IHRvIHRoZSBkb2N1bWVudC48YnI+CitUbyBtYW51YWxseSB0ZXN0LCBz
ZWxlY3QgImhlbGxvIHdvcmxkIiBiZWxvdyBieSBhIG1vdXNlIGRyYWcuIFdlYktpdCBzaG91bGQg
c2VsZWN0IHRoZSBwaHJhc2UuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj53b3JsZDwvZGl2Pgor
PHNjcmlwdD4KKworY29uc3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
Y29udGFpbmVyLnByZXBlbmQoaG9zdCk7Citjb25zdCBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hT
aGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CitzaGFkb3dSb290LnRleHRDb250ZW50ID0gJ2hlbGxv
ICc7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5kcmFnTW9k
ZSA9IGZhbHNlOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRM
ZWZ0IC0gMiwgY29udGFpbmVyLm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0
ICsgY29udGFpbmVyLm9mZnNldFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCArIGNvbnRh
aW5lci5vZmZzZXRIZWlnaHQgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAg
aWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0gZG9jdW1l
bnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBu
b2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmVuZENv
bnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0
ZSgiVGhlIGVuZCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1lbnQiKTsK
KyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lci5nZXRS
b290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhlIHJhbmdl
J3Mgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7Cisg
ICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVyLmdldFJvb3RO
b2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBl
bmQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7Cit9CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0zLWV4cGVj
dGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0zLWV4cGVjdGVkLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9u
LWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy1yZWFkb25seS0zLWV4cGVjdGVkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBvbmUgc2hhZG93
IHRyZWUgYW5kIGVuZGluZyBhbm90aGVyIHNoYWRvdyB0cmVlLjxicj4KK1RvIG1hbnVhbGx5IHRl
c3QsIHNlbGVjdCAiaGVsbG8gd29ybGQiIGJlbG93IGJ5IGEgbW91c2UgZHJhZy4gV2ViS2l0IHNo
b3VsZCBzZWxlY3QgdGhlIHBocmFzZS48L3A+Cis8ZGl2IGlkPSJjb250YWluZXIiPmhlbGxvIDxk
aXY+d29ybGQ8L2Rpdj48L2Rpdj4KKzxzY3JpcHQ+CitnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxD
aGlsZHJlbihjb250YWluZXIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3Vu
ZGFyaWVzLXJlYWRvbmx5LTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTMu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXJlYWRvbmx5LTMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGludGVybmFsOnNlbGVjdGlvbkFjcm9zc1NoYWRvd0JvdW5kYXJpZXNFbmFibGVkPXRy
dWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHNlbGVjdGluZyBjb250ZW50
IHN0YXJ0aW5nIGluIG9uZSBzaGFkb3cgdHJlZSBhbmQgZW5kaW5nIGFub3RoZXIgc2hhZG93IHRy
ZWUuPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCIgYmVsb3cgYnkg
YSBtb3VzZSBkcmFnLiBXZWJLaXQgc2hvdWxkIHNlbGVjdCB0aGUgcGhyYXNlLjwvcD4KKzxkaXYg
aWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8c2NyaXB0PgorCitjb25zdCBob3N0MSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29uc3Qgc2hhZG93Um9vdDEgPSBob3N0MS5hdHRhY2hT
aGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CitzaGFkb3dSb290MS50ZXh0Q29udGVudCA9ICdoZWxs
byAnOworCitjb25zdCBob3N0MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29u
c3Qgc2hhZG93Um9vdDIgPSBob3N0Mi5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7Citz
aGFkb3dSb290Mi50ZXh0Q29udGVudCA9ICd3b3JsZCc7Citjb250YWluZXIuYXBwZW5kKGhvc3Qx
LCBob3N0Mik7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBldmVudFNlbmRlci5k
cmFnTW9kZSA9IGZhbHNlOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5v
ZmZzZXRMZWZ0IC0gMiwgY29udGFpbmVyLm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZz
ZXRMZWZ0ICsgY29udGFpbmVyLm9mZnNldFdpZHRoIC0gNSwgY29udGFpbmVyLm9mZnNldFRvcCAr
IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQgLSA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgaWYgKGdldFNlbGVjdGlvbigpLnN0YXJ0Q29udGFpbmVyLmdldFJvb3ROb2RlKCkgIT0g
ZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgc3RhcnQgY29udGFpbmVyJ3Mg
cm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigp
LmVuZENvbnRhaW5lci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVu
dC53cml0ZSgiVGhlIGVuZCBjb250YWluZXIncyByb290IG5vZGUgd2FzIG5vdCB0aGUgZG9jdW1l
bnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5l
ci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhl
IHJhbmdlJ3Mgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50
Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVyLmdl
dFJvb3ROb2RlKCkgIT0gZG9jdW1lbnQpCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGUgcmFu
Z2UncyBlbmQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50Iik7Cit9
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy11c2VyLXNlbGVj
dC1hbGwtMS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3Qt
YWxsLTEtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0
LWFsbC0xLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBzZWxlY3RpbmcgY29u
dGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0cmVlIGluc2lkZSBhIDxjb2RlPnVzZXItc2VsZWN0
OiBhbGw8L2NvZGU+IGluIGFuIGVkaXRhYmxlIHJlZ2lvbiBpbiB0byBvdXRzaWRlIHRoZSBlZGl0
YWJsZSByZWdpb24uPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0ICJoZWxsbyB3b3JsZCBX
ZWJLaXQgcm9ja3MiIGJlbG93IGJ5IGEgbW91c2UgZHJhZyBmcm9tICJoIiB0byAicyIuIFdlYktp
dCBzaG91bGQgc2VsZWN0ICJoZWxsbyIuPC9wPgorPGRpdiBpZD0iY29udGFpbmVyIj48ZGl2IGNv
bnRlbnRlZGl0YWJsZT48ZGl2IGlkPSJzZWxlY3RlZCI+aGVsbG88L2Rpdj53b3JsZDxicj5XZWJL
aXQ8L2Rpdj5yb2NrczwvZGl2PgorPHNjcmlwdD4KK2dldFNlbGVjdGlvbigpLnNlbGVjdEFsbENo
aWxkcmVuKHNlbGVjdGVkKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWFjcm9zcy1zaGFkb3ctYm91bmRh
cmllcy11c2VyLXNlbGVjdC1hbGwtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1z
ZWxlY3QtYWxsLTEuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zZWxlY3Rpb24tYWNyb3NzLXNoYWRvdy1ib3VuZGFyaWVzLXVzZXItc2VsZWN0LWFs
bC0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpzZWxlY3Rpb25BY3Jvc3NTaGFkb3dC
b3VuZGFyaWVzRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
cyBzZWxlY3RpbmcgY29udGVudCBzdGFydGluZyBpbiBhIHNoYWRvdyB0cmVlIGluc2lkZSBhIDxj
b2RlPnVzZXItc2VsZWN0OiBhbGw8L2NvZGU+IGluIGFuIGVkaXRhYmxlIHJlZ2lvbiBpbiB0byBv
dXRzaWRlIHRoZSBlZGl0YWJsZSByZWdpb24uPGJyPgorVG8gbWFudWFsbHkgdGVzdCwgc2VsZWN0
ICJoZWxsbyB3b3JsZCBXZWJLaXQgcm9ja3MiIGJlbG93IGJ5IGEgbW91c2UgZHJhZyBmcm9tICJo
IiB0byAicyIuIFdlYktpdCBzaG91bGQgc2VsZWN0ICJoZWxsbyIuPC9wPgorPGRpdiBpZD0iY29u
dGFpbmVyIj48ZGl2IGNvbnRlbnRlZGl0YWJsZT48ZGl2IHN0eWxlPSJ1c2VyLXNlbGVjdDogYWxs
Ij53b3JsZDwvZGl2PiBXZWJLaXQ8L2Rpdj5yb2NrczwvZGl2PgorPHNjcmlwdD4KKworY29uc3Qg
aG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworY29udGFpbmVyLmZpcnN0Q2hp
bGQucHJlcGVuZChob3N0KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7
bW9kZTogJ2Nsb3NlZCd9KTsKK3NoYWRvd1Jvb3QudGV4dENvbnRlbnQgPSAnaGVsbG8gJzsKKwor
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFs
c2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyAx
LCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVyLm9mZnNldExlZnQgKyBjb250
YWluZXIub2Zmc2V0V2lkdGggLSA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgY29udGFpbmVyLm9m
ZnNldEhlaWdodCAtIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBpZiAoZ2V0
U2VsZWN0aW9uKCkuc3RhcnRDb250YWluZXIuZ2V0Um9vdE5vZGUoKSAhPSBkb2N1bWVudCkKKyAg
ICAgICAgZG9jdW1lbnQud3JpdGUoIlRoZSBzdGFydCBjb250YWluZXIncyByb290IG5vZGUgd2Fz
IG5vdCB0aGUgZG9jdW1lbnQiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuc3RhcnRDb250YWlu
ZXIgIT0gZ2V0U2VsZWN0aW9uKCkuZW5kQ29udGFpbmVyKQorICAgICAgICBkb2N1bWVudC53cml0
ZSgiVGhlIGVuZCBjb250YWluZXIgd2FzIGRpZmZlcmVudCBmcm9tIHRoZSBzdGFydCBjb250YWlu
ZXIiKTsKKyAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5l
ci5nZXRSb290Tm9kZSgpICE9IGRvY3VtZW50KQorICAgICAgICBkb2N1bWVudC53cml0ZSgiVGhl
IHJhbmdlJ3Mgc3RhcnQgY29udGFpbmVyJ3Mgcm9vdCBub2RlIHdhcyBub3QgdGhlIGRvY3VtZW50
Iik7CisgICAgaWYgKGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuZW5kQ29udGFpbmVyICE9
IGdldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoMCkuc3RhcnRDb250YWluZXIpCisgICAgICAgIGRv
Y3VtZW50LndyaXRlKCJUaGUgcmFuZ2UncyBlbmQgY29udGFpbmVyIHdhcyBkaWZmZXJlbnQgZnJv
bSBpdHMgc3RhcnQgY29udGFpbmVyIik7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlz
aW9uIDIzNjQ5MykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDE1IEBAIHdlYmtpdC5vcmcvYi8xNzMyODEg
aHR0cC90ZXN0cy9zZWN1cml0eS8KIHdlYmtpdC5vcmcvYi8xNzMyODEgZWRpdGluZy9zdHlsZS9z
ZXQtZm9yZUNvbG9yLXdpdGgtY29sb3ItZmlsdGVyLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8xNzMyODEgZWRpdGluZy9zdHlsZS9zZXQtYmFja0NvbG9yLXdpdGgtY29sb3ItZmlsdGVyLmh0
bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNzMyODEgZWRpdGluZy9zdHlsZS9pbnZlcnNlLWNv
bG9yLWZpbHRlci5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxp
dHktMS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9u
L3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMi5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktMy5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1h
Y3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNC5odG1sIFsgU2tpcCBd
Cit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mt
c2hhZG93LWJvdW5kYXJpZXMtbWl4ZWQtZWRpdGFiaWxpdHktNS5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93
LWJvdW5kYXJpZXMtcmVhZG9ubHktMS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgx
IGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVh
ZG9ubHktMi5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0
aW9uL3NlbGVjdGlvbi1hY3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtcmVhZG9ubHktMy5odG1sIFsg
U2tpcCBdCit3ZWJraXQub3JnL2IvMTczMjgxIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1h
Y3Jvc3Mtc2hhZG93LWJvdW5kYXJpZXMtdXNlci1zZWxlY3QtYWxsLTEuaHRtbCBbIFNraXAgXQog
CiAjIFRPRE8gSFcgZmlsdGVycyBub3QgeWV0IHN1cHBvcnRlZCBvbiBXaW5kb3dzCiB3ZWJraXQu
b3JnL2IvNzQ3MTYgY3NzMy9maWx0ZXJzL2VmZmVjdC1ibHVyLWh3Lmh0bWwgWyBTa2lwIF0K
</data>
<flag name="review"
          id="368264"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
      

    </bug>

</bugzilla>