<?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>26816</bug_id>
          
          <creation_ts>2009-06-29 14:40:48 -0700</creation_ts>
          <short_desc>Selection changed by indent</short_desc>
          <delta_ts>2009-07-21 15:25:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>27038</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julie Parent">jparent</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>eric</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128896</commentid>
    <comment_count>0</comment_count>
    <who name="Julie Parent">jparent</who>
    <bug_when>2009-06-29 14:40:48 -0700</bug_when>
    <thetext>This is a follow up from https://bugs.webkit.org/show_bug.cgi?id=21712, so just repeating those repro steps here.

Repro steps: Go to http://www.mozilla.org/editor/midasdemo/
1. Type one&lt;enter&gt;two&lt;enter&gt;three&lt;enter&gt;four
2. Select all, click on ordered list
3. Select &quot;two&quot; and &quot;three&quot; and click indent, forming a sublist.
4. Select &quot;three&quot; and click outdent, joining three back with the outer list.
5. Select &quot;three&quot; by double clicking and click indent, bringing three back into the sublist.

Result: &quot;three&quot; is no longer selected, instead the last &quot;e&quot; from three is selected, and the &quot;fou&quot; in four on the next line is selected
Expected result: Selection should be unchanged, &quot;three&quot; should still be selected.

I think this was a result of http://trac.webkit.org/changeset/45316</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128897</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-06-29 14:50:20 -0700</bug_when>
    <thetext>Yes, I have become aware of this problem right after submitting the patch.  This is due to changeset 45316.  The fact that indentRegion stores the index of selection and restores it later is to with selection being changed.  I believe restoring selection is only needed because of what moveParagraph does.  Right now, I&apos;m trying to avoid using moveParagraph at all since this function is causing a lot of problems.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130087</commentid>
    <comment_count>2</comment_count>
      <attachid>32347</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-06 18:40:12 -0700</bug_when>
    <thetext>Created attachment 32347
Refactors indentRegion further, and fixes the bug 26816 and 25317</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130153</commentid>
    <comment_count>3</comment_count>
      <attachid>32347</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-07 00:39:21 -0700</bug_when>
    <thetext>Comment on attachment 32347
Refactors indentRegion further, and fixes the bug 26816 and 25317

This patch is rather large to review.  I certainly can&apos;t do so tonight, and I think you&apos;ll have trouble finding a reviewer for a patch of this size. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130169</commentid>
    <comment_count>4</comment_count>
      <attachid>32367</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-07 01:51:51 -0700</bug_when>
    <thetext>Created attachment 32367
Refactors indentRegion and fixes the bugs 26816 and 25317 (a minor change on the prototype of indentListItem)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130391</commentid>
    <comment_count>5</comment_count>
      <attachid>32436</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-08 00:55:39 -0700</bug_when>
    <thetext>Created attachment 32436
fixes the bug

This patch may be committed only after the patch for https://bugs.webkit.org/show_bug.cgi?id=27038 is committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130568</commentid>
    <comment_count>6</comment_count>
      <attachid>32487</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-08 16:41:35 -0700</bug_when>
    <thetext>Created attachment 32487
change due to the resubmission for 27038</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131695</commentid>
    <comment_count>7</comment_count>
      <attachid>32487</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-14 15:09:24 -0700</bug_when>
    <thetext>Comment on attachment 32487
change due to the resubmission for 27038

Should have a bug:
+    // FIXME: we need to deal with the case where there is no li (malformed HTML)
+    if (!selectedListItem-&gt;hasTagName(liTag))
+        return false;


024 \ No newline at end of file

Needs an arg name for the Node*:
 59     void indentIntoBlockquote(const VisiblePosition&amp;, const VisiblePosition&amp;, RefPtr&lt;Element&gt;&amp;, Node*);

Looks fine otherwise.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133078</commentid>
    <comment_count>8</comment_count>
      <attachid>33073</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-19 23:32:28 -0700</bug_when>
    <thetext>Created attachment 33073
5th submission

The followup bug is filed as the bug 27441.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133240</commentid>
    <comment_count>9</comment_count>
      <attachid>33073</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-20 14:58:05 -0700</bug_when>
    <thetext>Comment on attachment 33073
5th submission

Looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133616</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2009-07-21 15:25:34 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/46142</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32347</attachid>
            <date>2009-07-06 18:40:12 -0700</date>
            <delta_ts>2009-07-07 01:51:51 -0700</delta_ts>
            <desc>Refactors indentRegion further, and fixes the bug 26816 and 25317</desc>
            <filename>fix26816</filename>
            <type>text/plain</type>
            <size>59193</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTU3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjIgQEAKKzIwMDktMDctMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmcgb2YgaW5kZW50UmVnaW9uIHRvIGZpeCBidWdzIDI2ODE2IGFuZCAyNTMxNworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MTYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzE3CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk5NSAocGFydGlhbGx5
KQorCisgICAgICAgIEZ1cnRoZXIgcmVmYWN0b3Jpbmcgb2YgaW5kZW50UmVnaW9uLiAgVGhpcyBw
YXRjaCBpbXBsZW1lbnRzIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlLAorICAgICAgICBhIG11Y2gg
c2ltcGxlciwgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBtb3ZlUGFyYWdyYXBoIGFuZCByZXBsYWNl
cyB0aGUgYWxsIHVzYWdlIGluc2lkZSBpbmRlbnRSZWdpb24uCisgICAgICAgIEJ5IGRvaW5nIHRo
aXMsIGluZGVudFJlZ2lvbiBiZWNhbWUgbXVjaCBtb3JlIHN0YWJsZSwgYW5kIHNvbHZlZCBhIG51
bWJlciBvZiBwcm9ibGVtcy4KKyAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0aGUgbmV3IGJlaGF2
aW9yIG9mIGluZGVudFJlZ2lvbgorCisgICAgICAgIDEuIFdlIHRyeSB0byBpbmRlbnQgYXMgbWFu
eSB3cmFwcGluZyBub2RlcyBhcyBwb3NzaWJsZS4KKyAgICAgICAgICAgZS5nLiB3aGVuIGluZGVu
dGluZyAiaGVsbG8iIGluIDxkaXY+aGVsbG88L2Rpdj4sIHRyeSBpbmRlbnQgdGhlIHdob2xlIGRp
diBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgc3R5bGUuCisgICAgICAgICAgIFRoaXMgYmVoYXZpcm9h
bCBjaGFuZ2UgaXMgdGhlIHByaW1hcmlseSBtb3RpdmF0aW9uIHRvIGltcGxlbWVudCBhcHBlbmRQ
YXJhZ3JhcGhJbnRvTm9kZS4KKyAgICAgICAgMi4gV2UgZG8gbm90IGRlbGV0ZSBhbnkgd3JhcHBp
bmcgZWxlbWVudHMKKyAgICAgICAgICAgV2l0aCBtb3ZlUGFyYWdyYXBoLCB3ZSB1c2VkIHRvIHJl
bW92ZSBhbGwgd3JhcHBpbmcgbm9kZXMsIGFuZCByZXBsYWNlZCB3aXRoIGEgYmxvY2txdW90ZS4K
KyAgICAgICAgICAgVGhpcyB3YXMgY2F1c2VpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzOTk1IGZvciBpZGVudGF0aW9uLgorICAgICAgICAgICBXaXRoIGFwcGVu
ZFBhcmFncmFwaEludG9Ob2RlLCB3ZSBjYW4gcHJlc2VydmUgYWxsIHdyYXBwaW5nIG5vZGVzLgor
ICAgICAgICAzLiBXZSBvbmx5IHNwbGl0IHRoZSB0cmVlIHVudGlsIHRoZSBjbG9zZXN0IGJsb2Nr
IG5vZGUgaW5zdGVhZCBvZiB1bnRpbCB0aGUgcm9vdCBlZGl0YWJsZSBub2RlLgorICAgICAgICAg
ICBUaGlzIGJlaGF2aW9yYWwgY2hhbmdlIGlzIHRvIGZpeCAyNTMxNywgYW5kIGFsc28gZml4ZXMg
dGhlIG51bWJlciBvZiBvdGhlciBwcm9ibGVtcy4KKyAgICAgICAgNC4gV2hlbiBtdWx0aXBsZSBw
YXJhZ3JhcGhzIGFyZSBpbmRlbnRlZCwgd2UgdHJ5IHRvIGluZGVudCB0aGUgY2xvc2VzdCBjb21t
b24gYW5jZXN0b3Igd2l0aGluIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgICAgSW5zdGVhZCBvZiBp
bmRlbnRpbmcgZWFjaCBwYXJhZ3JhcGgsIGFuZCB0cnkgdG8gY29tYmluZSBhdCB0aGUgZW5kICh3
aGljaCByZXN1bHRzIGluIG1pc3NpbmcgYXR0cmlidXRlcyksCisgICAgICAgICAgIHdlIHRyeSB0
byBmaW5kIHRoZSBjb21tb24gYW5jZXN0b3Igb2YgYWxsIHBhcmFncmFwaHMgdGhhdCBhcmUgYmVp
bmcgaW5kZW50ZWQuCisgICAgICAgICAgIElmIHRoZSBhbmNlc3RvciBpcyB3aXRoaW4gdGhlIHNl
bGVjdGlvbiwgd2UgaW5kZW50IGJsb2NrcXVvdGUgdGhlIGFuY2VzdG9yIG9uY2UuCisKKyAgICAg
ICAgTm90ZSB0aGF0IG5ldyBiZWhhdmlvciBpcyBtdWNoIG1vcmUgY29uc2lzdGVudCB3aXRoIHRo
YXQgb2YgSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEZpcmVmb3guCisgICAgICAgIFRvIGRlbW9uc3Ry
YXRlIHRoaXMsIHRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIGFkZGVkLgorCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QuaHRtbAorICAgICAg
ICAgICAgICAgZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLmh0
bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYu
aHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBh
cmFncmFwaC1pbi1ibG9ja3F1b3RlLmh0bWwKKworICAgICAgICAqIGRvbS9SYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Y29tcGFyZVBvaW50KTogYmVjYW1lIGNvbnN0CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZTo6Y29tcGFyZU5vZGUpOiBiZWNhbWUgY29uc3QKKyAgICAgICAg
KiBkb20vUmFuZ2UuaDogdXBkYXRlZCBwcm90b3R5cGUKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcDogCisgICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6aW5kZW50
TGlzdEl0ZW0pOiB0cnlJbmRlbnRpbmdBc0xpc3RJdGVtIGlzIHJlcGxhY2VkIGJ5IHRoaXMgZnVu
Y3Rpb24KKyAgICAgICAgKFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRv
QmxvY2txdW90ZSk6IHVwZGF0ZSBkdWUgdG8gYXBwZW5kUGFyYWdyYXBoSW50b05vZGUKKyAgICAg
ICAgKFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5kOjphcHBlbmRQYXJhZ3JhcGhJbnRvTm9k
ZSk6IGFwcGVuZHMgYSBwcmFncmFwaCwgYW5kIHJlbW92ZXMgdW5uZWNlc3NhcnkgYnIgZnJvbSB0
aGUgc291cmNlCisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6cmVtb3Zl
VW5uZWNlc3NhcnlMaW5lQnJlYWtBdCk6IHJlbW92ZXMgdW5uZWNlc3NhcnkgYnIgYXQgdGhlIHNw
ZWNpZmllZCBwb3NpdGlvbgorICAgICAgICAoV2ViQ29yZTo6SW5kZW50T3V0ZGVudENvbW1hbmQ6
OmluZGVudFJlZ2lvbik6IHJlZmFjdG9yaW5nCisgICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRk
ZW50Q29tbWFuZC5oOiB1cGRhdGVkIHByb3RvdHlwZQorICAgICAgICAqIGVkaXRpbmcvaHRtbGVk
aXRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dW5zcGxpdHRhYmxlRWxlbWVudEZvclBvc2l0
aW9uKTogZmluZCB0aGUgdW5zcGxpdHRhYmxlIGVsZW1lbnQgKHJvb3QgZWRpdGFibGUgJiB0YWJs
ZSBjZWxsKQorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmFuZ2UpOiBjcmVhdGUgYSByYW5nZSBv
YmplY3QgZnJvbSB0d28gdmlzaWJsZSBwb3NpdGlvbnMKKyAgICAgICAgKFdlYkNvcmU6OmV4bnRl
bmRSYW5nZVRvV3JhcHBpbmdOb2Rlcyk6IGV4dGVuZCB0aGUgc3BlY2lmaWVkIHJhbmdlIHRvIGlu
Y2x1ZGUgd3JhcHBpbmcgbm9kZXMKKyAgICAgICAgKFdlYkNvcmU6OmNhbk1lcmdlTGlzdHMpOiB0
eXBvCisgICAgICAgIChXZWJDb3JlOjppbmRleEZvclZpc2libGVQb3NpdGlvbik6IHR5cG8KKyAg
ICAgICAgKFdlYkNvcmU6OmlzVmlzaWJseUFkamFjZW50KTogdHlwbworICAgICAgICAoV2ViQ29y
ZTo6aXNOb2RlVmlzaWJseUNvbnRhaW5lZFdpdGhpbik6IGRldGVybWluZXMgd2hldGhlciBhIG5v
ZGUgaXMgaW5zaWRlIGEgcmFuZ2Ugb3Igc3BhbnMgdGhlIHJhbmdlCisgICAgICAgIChXZWJDb3Jl
OjpnZXRWaXNpYmxlUmFuZ2VPZk5vZGUpOiBvYnRhaW5zIHRoZSB2aXNpYmxlIHN0YXJ0aW5nIGFu
ZCBlbmRpbmcgcG9zaXRpb25zIGZvciBhIHJhbmdlCisgICAgICAgICogZWRpdGluZy9odG1sZWRp
dGluZy5oOiB1cGRhdGVkIHByb3RvdHlwZQorCiAyMDA5LTA3LTA2ICBOYXRlIENoYXBpbiAgPGph
cGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4LgpJbmRl
eDogV2ViQ29yZS9kb20vUmFuZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1Jhbmdl
LmNwcAkocmV2aXNpb24gNDU1NjQpCisrKyBXZWJDb3JlL2RvbS9SYW5nZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5NCw3ICsyOTQsNyBAQCBib29sIFJhbmdlOjppc1BvaW50SW5SYW5nZShOb2Rl
KiByZWZOb2RlCiAgICAgICAgICYmIGNvbXBhcmVCb3VuZGFyeVBvaW50cyhyZWZOb2RlLCBvZmZz
ZXQsIG1fZW5kLmNvbnRhaW5lcigpLCBtX2VuZC5vZmZzZXQoKSkgPD0gMDsKIH0KIAotc2hvcnQg
UmFuZ2U6OmNvbXBhcmVQb2ludChOb2RlKiByZWZOb2RlLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25D
b2RlJiBlYykKK3Nob3J0IFJhbmdlOjpjb21wYXJlUG9pbnQoTm9kZSogcmVmTm9kZSwgaW50IG9m
ZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgLy8gaHR0cDovL2RldmVsb3Bl
ci5tb3ppbGxhLm9yZy9lbi9kb2NzL0RPTTpyYW5nZS5jb21wYXJlUG9pbnQKICAgICAvLyBUaGlz
IG1ldGhvZCByZXR1cm5zIC0xLCAwIG9yIDEgZGVwZW5kaW5nIG9uIGlmIHRoZSBwb2ludCBkZXNj
cmliZWQgYnkgdGhlIApAQCAtMzMyLDcgKzMzMiw3IEBAIHNob3J0IFJhbmdlOjpjb21wYXJlUG9p
bnQoTm9kZSogcmVmTm9kZSwKICAgICByZXR1cm4gMDsKIH0KIAotUmFuZ2U6OkNvbXBhcmVSZXN1
bHRzIFJhbmdlOjpjb21wYXJlTm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykK
K1JhbmdlOjpDb21wYXJlUmVzdWx0cyBSYW5nZTo6Y29tcGFyZU5vZGUoTm9kZSogcmVmTm9kZSwg
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgLy8gaHR0cDovL2RldmVsb3Blci5tb3pp
bGxhLm9yZy9lbi9kb2NzL0RPTTpyYW5nZS5jb21wYXJlTm9kZQogICAgIC8vIFRoaXMgbWV0aG9k
IHJldHVybnMgMCwgMSwgMiwgb3IgMyBiYXNlZCBvbiBpZiB0aGUgbm9kZSBpcyBiZWZvcmUsIGFm
dGVyLApJbmRleDogV2ViQ29yZS9kb20vUmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9SYW5nZS5oCShyZXZpc2lvbiA0NTU2NCkKKysrIFdlYkNvcmUvZG9tL1JhbmdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYwLDkgKzYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5kKFBhc3NS
ZWZQdHI8Tm9kZT4gY29udGFpbmVyLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBjb2xsYXBzZShib29sIHRvU3RhcnQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIGlz
UG9pbnRJblJhbmdlKE5vZGUqIHJlZk5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVj
KTsKLSAgICBzaG9ydCBjb21wYXJlUG9pbnQoTm9kZSogcmVmTm9kZSwgaW50IG9mZnNldCwgRXhj
ZXB0aW9uQ29kZSYgZWMpOworICAgIHNob3J0IGNvbXBhcmVQb2ludChOb2RlKiByZWZOb2RlLCBp
bnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3Q7CiAgICAgZW51bSBDb21wYXJlUmVz
dWx0cyB7IE5PREVfQkVGT1JFLCBOT0RFX0FGVEVSLCBOT0RFX0JFRk9SRV9BTkRfQUZURVIsIE5P
REVfSU5TSURFIH07Ci0gICAgQ29tcGFyZVJlc3VsdHMgY29tcGFyZU5vZGUoTm9kZSogcmVmTm9k
ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIENvbXBhcmVSZXN1bHRzIGNvbXBhcmVOb2RlKE5vZGUq
IHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBlbnVtIENvbXBhcmVIb3cgeyBT
VEFSVF9UT19TVEFSVCwgU1RBUlRfVE9fRU5ELCBFTkRfVE9fRU5ELCBFTkRfVE9fU1RBUlQgfTsK
ICAgICBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoQ29tcGFyZUhvdywgY29uc3QgUmFuZ2Uq
IHNvdXJjZVJhbmdlLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgc3RhdGljIHNob3J0IGNv
bXBhcmVCb3VuZGFyeVBvaW50cyhOb2RlKiBjb250YWluZXJBLCBpbnQgb2Zmc2V0QSwgTm9kZSog
Y29udGFpbmVyQiwgaW50IG9mZnNldEIpOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCShyZXZpc2lvbiA0NTU2NCkKKysrIFdlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0Nyw2ICs3NDcsOCBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBoCiAgICAgbW92ZVBhcmFncmFw
aHMoc3RhcnRPZlBhcmFncmFwaFRvTW92ZSwgZW5kT2ZQYXJhZ3JhcGhUb01vdmUsIGRlc3RpbmF0
aW9uLCBwcmVzZXJ2ZVNlbGVjdGlvbiwgcHJlc2VydmVTdHlsZSk7CiB9CiAKKy8vIEZJWE1FOiBt
b3ZlUGFyYWdyYXBoIGlzIG92ZXJseSBjb21wbGljYXRlZC4gIFdlIG5lZWQgdG8gY2xlYW4gdXAg
bW92ZVBhcmFncmFwaCBzbyB0aGF0IGl0IHVzZXMgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUKKy8v
IG9yIG1ha2UgbW9yZSBzcGVjaWFsaXplZCBmdW5jdGlvbnMgYW5kIHJlbW92ZSBtb3ZlUGFyYWdy
YXBoCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3JhcGhUb01vdmUsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgZW5kT2ZQYXJhZ3JhcGhUb01vdmUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgZGVzdGluYXRp
b24sIGJvb2wgcHJlc2VydmVTZWxlY3Rpb24sIGJvb2wgcHJlc2VydmVTdHlsZSkKIHsKICAgICBp
ZiAoc3RhcnRPZlBhcmFncmFwaFRvTW92ZSA9PSBkZXN0aW5hdGlvbikKSW5kZXg6IFdlYkNvcmUv
ZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNwcAkocmV2aXNpb24gNDU1NjQpCisrKyBXZWJD
b3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkluc2VydExpc3RDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJE
b2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiU3BsaXRFbGVtZW50Q29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCkBAIC03Niw5
MSArNzcsOTkgQEAgSW5kZW50T3V0ZGVudENvbW1hbmQ6OkluZGVudE91dGRlbnRDb21tYQogewog
fQogCi0vLyBUaGlzIGZ1bmN0aW9uIGlzIGEgd29ya2Fyb3VuZCBmb3IgbW92ZVBhcmFncmFwaCdz
IHRlbmRlbmN5IHRvIHN0cmlwIGJsb2NrcXVvdGVzLiBJdCB1cGRhdGVzIGxhc3RCbG9ja3F1b3Rl
IHRvIHBvaW50IHRvIHRoZQotLy8gY29ycmVjdCBsZXZlbCBmb3IgdGhlIGN1cnJlbnQgcGFyYWdy
YXBoLCBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gYSBwbGFjZWhvbGRlciBiciB3aGVyZSB0aGUg
aW5zZXJ0aW9uIHNob3VsZCBiZSBwZXJmb3JtZWQuCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IEluZGVu
dE91dGRlbnRDb21tYW5kOjpwcmVwYXJlQmxvY2txdW90ZUxldmVsRm9ySW5zZXJ0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgY3VycmVudFBhcmFncmFwaCwgUmVmUHRyPEVsZW1lbnQ+JiBsYXN0
QmxvY2txdW90ZSkKLXsKLSAgICBpbnQgY3VycmVudEJsb2NrcXVvdGVMZXZlbCA9IDA7Ci0gICAg
aW50IGxhc3RCbG9ja3F1b3RlTGV2ZWwgPSAwOwotICAgIE5vZGUqIG5vZGUgPSBjdXJyZW50UGFy
YWdyYXBoLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOwotICAgIHdoaWxlICgobm9kZSA9IGVuY2xv
c2luZ05vZGVPZlR5cGUoUG9zaXRpb24obm9kZS0+cGFyZW50Tm9kZSgpLCAwKSwgJmlzSW5kZW50
QmxvY2txdW90ZSkpKQotICAgICAgICBjdXJyZW50QmxvY2txdW90ZUxldmVsKys7Ci0gICAgbm9k
ZSA9IGxhc3RCbG9ja3F1b3RlLmdldCgpOwotICAgIHdoaWxlICgobm9kZSA9IGVuY2xvc2luZ05v
ZGVPZlR5cGUoUG9zaXRpb24obm9kZS0+cGFyZW50Tm9kZSgpLCAwKSwgJmlzSW5kZW50QmxvY2tx
dW90ZSkpKQotICAgICAgICBsYXN0QmxvY2txdW90ZUxldmVsKys7Ci0gICAgd2hpbGUgKGN1cnJl
bnRCbG9ja3F1b3RlTGV2ZWwgPiBsYXN0QmxvY2txdW90ZUxldmVsKSB7Ci0gICAgICAgIFJlZlB0
cjxFbGVtZW50PiBuZXdCbG9ja3F1b3RlID0gY3JlYXRlSW5kZW50QmxvY2txdW90ZUVsZW1lbnQo
ZG9jdW1lbnQoKSk7Ci0gICAgICAgIGFwcGVuZE5vZGUobmV3QmxvY2txdW90ZSwgbGFzdEJsb2Nr
cXVvdGUpOwotICAgICAgICBsYXN0QmxvY2txdW90ZSA9IG5ld0Jsb2NrcXVvdGU7Ci0gICAgICAg
IGxhc3RCbG9ja3F1b3RlTGV2ZWwrKzsKLSAgICB9Ci0gICAgd2hpbGUgKGN1cnJlbnRCbG9ja3F1
b3RlTGV2ZWwgPCBsYXN0QmxvY2txdW90ZUxldmVsKSB7Ci0gICAgICAgIGxhc3RCbG9ja3F1b3Rl
ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGVuY2xvc2luZ05vZGVPZlR5cGUoUG9zaXRpb24obGFz
dEJsb2NrcXVvdGUtPnBhcmVudE5vZGUoKSwgMCksIGlzSW5kZW50QmxvY2txdW90ZSkpOwotICAg
ICAgICBsYXN0QmxvY2txdW90ZUxldmVsLS07Ci0gICAgfQotICAgIFJlZlB0cjxFbGVtZW50PiBw
bGFjZWhvbGRlciA9IGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKTsKLSAgICBhcHBlbmRO
b2RlKHBsYWNlaG9sZGVyLCBsYXN0QmxvY2txdW90ZSk7Ci0gICAgLy8gQWRkIGFub3RoZXIgYnIg
YmVmb3JlIHRoZSBwbGFjZWhvbGRlciBpZiBpdCBjb2xsYXBzZWQuCi0gICAgVmlzaWJsZVBvc2l0
aW9uIHZpc2libGVQb3MoUG9zaXRpb24ocGxhY2Vob2xkZXIuZ2V0KCksIDApKTsKLSAgICBpZiAo
IWlzU3RhcnRPZlBhcmFncmFwaCh2aXNpYmxlUG9zKSkKLSAgICAgICAgaW5zZXJ0Tm9kZUJlZm9y
ZShjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIHBsYWNlaG9sZGVyKTsKLSAgICByZXR1
cm4gcGxhY2Vob2xkZXIucmVsZWFzZSgpOwotfQotCi1ib29sIEluZGVudE91dGRlbnRDb21tYW5k
Ojp0cnlJbmRlbnRpbmdBc0xpc3RJdGVtKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgZW5kT2ZDdXJy
ZW50UGFyYWdyYXBoKQotewotICAgIC8vIElmIG91ciBzZWxlY3Rpb24gaXMgbm90IGluc2lkZSBh
IGxpc3QsIGJhaWwgb3V0LgotICAgIE5vZGUqIGxhc3ROb2RlSW5TZWxlY3RlZFBhcmFncmFwaCA9
IGVuZE9mQ3VycmVudFBhcmFncmFwaC5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKTsKLSAgICBSZWZQ
dHI8RWxlbWVudD4gbGlzdE5vZGUgPSBlbmNsb3NpbmdMaXN0KGxhc3ROb2RlSW5TZWxlY3RlZFBh
cmFncmFwaCk7Ci0gICAgaWYgKCFsaXN0Tm9kZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgSFRNTEVsZW1lbnQqIHNlbGVjdGVkTGlzdEl0ZW0gPSBlbmNsb3NpbmdMaXN0Q2hpbGQobGFz
dE5vZGVJblNlbGVjdGVkUGFyYWdyYXBoKTsKK3ZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6Omlu
ZGVudExpc3RJdGVtKEhUTUxFbGVtZW50KiBzZWxlY3RlZExpc3RJdGVtLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IGVuZE9mQ3VycmVudFBhcmFncmFwaCkKK3sKKyAgICBSZWZQdHI8RWxlbWVudD4gbGlzdE5vZGUg
PSBlbmNsb3NpbmdMaXN0KHNlbGVjdGVkTGlzdEl0ZW0pOworICAgIEFTU0VSVChsaXN0Tm9kZSk7
CiAKICAgICAvLyBGSVhNRTogcHJldmlvdXNFbGVtZW50U2libGluZyBkb2VzIG5vdCBpZ25vcmUg
bm9uLXJlbmRlcmVkIGNvbnRlbnQgbGlrZSA8c3Bhbj48L3NwYW4+LiAgU2hvdWxkIHdlPwogICAg
IEVsZW1lbnQqIHByZXZpb3VzTGlzdCA9IHNlbGVjdGVkTGlzdEl0ZW0tPnByZXZpb3VzRWxlbWVu
dFNpYmxpbmcoKTsKICAgICBFbGVtZW50KiBuZXh0TGlzdCA9IHNlbGVjdGVkTGlzdEl0ZW0tPm5l
eHRFbGVtZW50U2libGluZygpOwogCiAgICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0xpc3QgPSBkb2N1
bWVudCgpLT5jcmVhdGVFbGVtZW50KGxpc3ROb2RlLT50YWdRTmFtZSgpLCBmYWxzZSk7Ci0gICAg
UmVmUHRyPEVsZW1lbnQ+IG5ld0xpc3RJdGVtID0gc2VsZWN0ZWRMaXN0SXRlbS0+Y2xvbmVFbGVt
ZW50V2l0aG91dENoaWxkcmVuKCk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHBsYWNlaG9sZGVyID0g
Y3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpOwogICAgIGluc2VydE5vZGVCZWZvcmUobmV3
TGlzdCwgc2VsZWN0ZWRMaXN0SXRlbSk7Ci0gICAgYXBwZW5kTm9kZShuZXdMaXN0SXRlbSwgbmV3
TGlzdCk7Ci0gICAgYXBwZW5kTm9kZShwbGFjZWhvbGRlciwgbmV3TGlzdEl0ZW0pOwogCi0gICAg
bW92ZVBhcmFncmFwaChzdGFydE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCksIGVu
ZE9mQ3VycmVudFBhcmFncmFwaCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHBsYWNlaG9sZGVy
LCAwKSksIHRydWUpOworICAgIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlKG5ld0xpc3QuZ2V0KCks
IHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgpOwogCiAgICAg
aWYgKGNhbk1lcmdlTGlzdHMocHJldmlvdXNMaXN0LCBuZXdMaXN0LmdldCgpKSkKICAgICAgICAg
bWVyZ2VJZGVudGljYWxFbGVtZW50cyhwcmV2aW91c0xpc3QsIG5ld0xpc3QpOwogICAgIGlmIChj
YW5NZXJnZUxpc3RzKG5ld0xpc3QuZ2V0KCksIG5leHRMaXN0KSkKICAgICAgICAgbWVyZ2VJZGVu
dGljYWxFbGVtZW50cyhuZXdMaXN0LCBuZXh0TGlzdCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKIH0K
LSAgICAKLXZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmluZGVudEludG9CbG9ja3F1b3RlKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIGVuZE9mTmV4dFBhcmFncmFwaCwgUmVmUHRyPEVsZW1lbnQ+JiB0YXJnZXRCbG9j
a3F1b3RlKQorCit2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRvQmxvY2txdW90
ZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBlbmRPZk5leHRQYXJhZ3JhcGgsIFJlZlB0cjxIVE1MRWxlbWVudD4mIHRhcmdldEJsb2Nr
cXVvdGUsIE5vZGUqIG5vZGVUb1NwbGl0VG8pCiB7CiAgICAgTm9kZSogZW5jbG9zaW5nQ2VsbCA9
IDA7CiAKICAgICBpZiAoIXRhcmdldEJsb2NrcXVvdGUpIHsKLSAgICAgICAgLy8gQ3JlYXRlIGEg
bmV3IGJsb2NrcXVvdGUgYW5kIGluc2VydCBpdCBhcyBhIGNoaWxkIG9mIHRoZSByb290IGVkaXRh
YmxlIGVsZW1lbnQuIFdlIGFjY29tcGxpc2gKKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGJsb2Nr
cXVvdGUgYW5kIGluc2VydCBpdCBhcyBhIGNoaWxkIG9mIHRoZSBlbmNsb3NpbmcgYmxvY2sgZWxl
bWVudC4gV2UgYWNjb21wbGlzaAogICAgICAgICAvLyB0aGlzIGJ5IHNwbGl0dGluZyBhbGwgcGFy
ZW50cyBvZiB0aGUgY3VycmVudCBwYXJhZ3JhcGggdXAgdG8gdGhhdCBwb2ludC4KICAgICAgICAg
dGFyZ2V0QmxvY2txdW90ZSA9IGNyZWF0ZUluZGVudEJsb2NrcXVvdGVFbGVtZW50KGRvY3VtZW50
KCkpOwotICAgICAgICBQb3NpdGlvbiBzdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZDdXJy
ZW50UGFyYWdyYXBoKS5kZWVwRXF1aXZhbGVudCgpOwotICAgICAgICBlbmNsb3NpbmdDZWxsID0g
ZW5jbG9zaW5nTm9kZU9mVHlwZShzdGFydCwgJmlzVGFibGVDZWxsKTsKLSAgICAgICAgTm9kZSog
bm9kZVRvU3BsaXRUbyA9IGVuY2xvc2luZ0NlbGwgPyBlbmNsb3NpbmdDZWxsIDogZWRpdGFibGVS
b290Rm9yUG9zaXRpb24oc3RhcnQpOwotICAgICAgICBSZWZQdHI8Tm9kZT4gc3RhcnRPZk5ld0Js
b2NrID0gc3BsaXRUcmVlVG9Ob2RlKHN0YXJ0Lm5vZGUoKSwgbm9kZVRvU3BsaXRUbyk7CisgICAg
ICAgIGlmIChpc1RhYmxlQ2VsbChub2RlVG9TcGxpdFRvKSkKKyAgICAgICAgICAgIGVuY2xvc2lu
Z0NlbGwgPSBub2RlVG9TcGxpdFRvOworICAgICAgICBSZWZQdHI8Tm9kZT4gc3RhcnRPZk5ld0Js
b2NrID0gc3BsaXRUcmVlVG9Ob2RlKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLmRlZXBFcXVpdmFs
ZW50KCkubm9kZSgpLCBub2RlVG9TcGxpdFRvKTsKICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9yZSh0
YXJnZXRCbG9ja3F1b3RlLCBzdGFydE9mTmV3QmxvY2spOwogICAgIH0KIAotICAgIFJlZlB0cjxF
bGVtZW50PiBpbnNlcnRpb25Qb2ludCA9IHByZXBhcmVCbG9ja3F1b3RlTGV2ZWxGb3JJbnNlcnRp
b24oZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCB0YXJnZXRCbG9ja3F1b3RlKTsKKyAgICBhcHBlbmRQ
YXJhZ3JhcGhJbnRvTm9kZSh0YXJnZXRCbG9ja3F1b3RlLmdldCgpLCBzdGFydE9mQ3VycmVudFBh
cmFncmFwaCwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoKTsKIAogICAgIC8vIERvbid0IHB1dCB0aGUg
bmV4dCBwYXJhZ3JhcGggaW4gdGhlIGJsb2NrcXVvdGUgd2UganVzdCBjcmVhdGVkIGZvciB0aGlz
IHBhcmFncmFwaCB1bmxlc3MgCiAgICAgLy8gdGhlIG5leHQgcGFyYWdyYXBoIGlzIGluIHRoZSBz
YW1lIGNlbGwuCiAgICAgaWYgKGVuY2xvc2luZ0NlbGwgJiYgZW5jbG9zaW5nQ2VsbCAhPSBlbmNs
b3NpbmdOb2RlT2ZUeXBlKGVuZE9mTmV4dFBhcmFncmFwaC5kZWVwRXF1aXZhbGVudCgpLCAmaXNU
YWJsZUNlbGwpKQogICAgICAgICB0YXJnZXRCbG9ja3F1b3RlID0gMDsKK30KKworLy8gRW5jbG9z
ZSBhbGwgbm9kZXMgYmV0d2VlbiBzdGFydCBhbmQgZW5kIGJ5IG5ld1BhcmVudCwgd2hpY2ggaXMg
YSBzaWJsaW5nIG5vZGUgb2Ygbm9kZXMgYmV0d2VlbiBzdGFydCBhbmQgZW5kCisvLyBGSVhNRTog
bW92ZVBhcmFncmFwaCBpcyBvdmVybHkgY29tcGxpY2F0ZWQuICBXZSBuZWVkIHRvIGNsZWFuIHVw
IG1vdmVQYXJhZ3JhcGggc28gdGhhdCBpdCB1c2VzIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlCisv
LyBvciBwcmVwYXJlIG1vcmUgc3BlY2lhbGl6ZWQgZnVuY3Rpb25zIGFuZCBkZWxldGUgbW92ZVBh
cmFncmFwaAordm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6YXBwZW5kUGFyYWdyYXBoSW50b05v
ZGUoTm9kZSogbmV3UGFyZW50LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIGVuZCkKK3sKKyAgICBBU1NFUlQobmV3UGFyZW50KTsKKyAgICBBU1NF
UlQobmV3UGFyZW50LT5pc0NvbnRlbnRFZGl0YWJsZSgpKTsKKyAgICBBU1NFUlQoaXNTdGFydE9m
UGFyYWdyYXBoKHN0YXJ0KSAmJiBpc0VuZE9mUGFyYWdyYXBoKGVuZCkpOworCisgICAgUG9zaXRp
b24gZW5kT2ZQYXJhZ3JhcGggPSBlbmQuZGVlcEVxdWl2YWxlbnQoKS5kb3duc3RyZWFtKCk7Cisg
ICAgLy8gU2luY2UgdGhlcmUgaXMgbm8gZ29vZCB3YXkgb2Yga25vd2luZyB3aGVuIHRvIGluc2Vy
dCBiciwgd2UgYXBwZW5kIG5vZGVzIGZpcnN0IGFuZCBzZWUgaWYgdGhlIHN0YXJ0IG9mIHBhcmFn
cmFwaCBjaGFuZ2VzCisgICAgTm9kZSogaW5zZXJ0aW9uUG9pbnQgPSBuZXdQYXJlbnQtPmxhc3RD
aGlsZCgpOworICAgIE5vZGUqIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFw
aChQb3NpdGlvbihuZXdQYXJlbnQsIG5ld1BhcmVudC0+Y2hpbGROb2RlQ291bnQoKSkpLmRlZXBF
cXVpdmFsZW50KCkubm9kZSgpOworICAgIGlmIChzdGFydE9mTGFzdFBhcmFncmFwaCAmJiAhc3Rh
cnRPZkxhc3RQYXJhZ3JhcGgtPmlzRGVzY2VuZGFudE9mKG5ld1BhcmVudCkpCisgICAgICAgIHN0
YXJ0T2ZMYXN0UGFyYWdyYXBoID0gMDsvLyBpZiB0aGUgc3RhcnQgaXMgb3V0c2lkZSBvZiBuZXdQ
YXJlbnQsIHRoZW4gZm9yZ2V0IGFib3V0IGl0LgorCisgICAgLy8gRXh0ZW5kIHRoZSByYW5nZSBz
byB0aGF0IHdlIGNhbiBhcHBlbmQgd3JhcHBpbmcgbm9kZXMgYXMgd2VsbCBpZiB0aGV5J3JlIGNv
bnRhaW5kIHdpdGhpbiB0aGUgcGFyYWdyYXBoCisgICAgRXhjZXB0aW9uQ29kZSBlYz0wOworICAg
IFJlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9IGNyZWF0ZVJhbmdlKGRvY3VtZW50KCksIHN0
YXJ0LCBlbmQsIGVjKTsKKyAgICBSZWZQdHI8UmFuZ2U+IGV4dGVuZGVkUmFuZ2UgPSBleG50ZW5k
UmFuZ2VUb1dyYXBwaW5nTm9kZXMoc2VsZWN0ZWRSYW5nZSwgc2VsZWN0ZWRSYW5nZSwgbmV3UGFy
ZW50LT5wYXJlbnROb2RlKCkpOworICAgIG5ld1BhcmVudC0+YXBwZW5kQ2hpbGQoZXh0ZW5kZWRS
YW5nZS0+ZXh0cmFjdENvbnRlbnRzKGVjKSwgZWMpOworCisgICAgLy8gSWYgdGhlIHN0YXJ0IG9m
IHBhcmFncmFwaCBkaWRuJ3QgY2hhbmdlIGJ5IGFwcGVuZGluZyBub2RlcywgdGhlbiB3ZSBzaG91
bGQgaW5zZXJ0IGJyIHRvIHNlcGVyYXRlIHRoZSBwYXJhZ3JhcGhzLgorICAgIE5vZGUqIHN0YXJ0
T2ZOZXdQYXJhZ3JhcGggPSBzdGFydE9mUGFyYWdyYXBoKFBvc2l0aW9uKG5ld1BhcmVudCwgbmV3
UGFyZW50LT5jaGlsZE5vZGVDb3VudCgpKSkuZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCk7CisgICAg
aWYgKHN0YXJ0T2ZOZXdQYXJhZ3JhcGggPT0gc3RhcnRPZkxhc3RQYXJhZ3JhcGgpIHsKKyAgICAg
ICAgRXhjZXB0aW9uQ29kZSBlYz0wOworICAgICAgICBpZiAoaW5zZXJ0aW9uUG9pbnQpCisgICAg
ICAgICAgICBuZXdQYXJlbnQtPmluc2VydEJlZm9yZShjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1l
bnQoKSksIGluc2VydGlvblBvaW50LT5uZXh0U2libGluZygpLCBlYyk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG5ld1BhcmVudC0+YXBwZW5kQ2hpbGQoY3JlYXRlQnJlYWtFbGVtZW50KGRv
Y3VtZW50KCkpLCBlYyk7CisgICAgfQogCi0gICAgbW92ZVBhcmFncmFwaChzdGFydE9mUGFyYWdy
YXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCksIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgVmlzaWJs
ZVBvc2l0aW9uKFBvc2l0aW9uKGluc2VydGlvblBvaW50LCAwKSksIHRydWUpOworICAgIC8vIFJl
bW92ZSB1bm5lY2Vzc2FyeSBiciBmcm9tIHRoZSBwbGFjZSB3aGVyZSB3ZSBtb3ZlZCB0aGUgcGFy
YWdyYXBoIGZyb20KKyAgICByZW1vdmVVbm5lY2Vzc2FyeUxpbmVCcmVha0F0KGVuZE9mUGFyYWdy
YXBoKTsKK30KKwordm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6cmVtb3ZlVW5uZWNlc3NhcnlM
aW5lQnJlYWtBdChjb25zdCBQb3NpdGlvbiYgZW5kT2ZQYXJhZ3JhcGgpCit7CisgICAgLy8gSWYg
dGhlcmUgaXMgc29tZXRoaW5nIGluIHRoaXMgcGFyYWdyYXBoLCB0aGVuIGRvbid0IHJlbW92ZSBi
ci4KKyAgICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChlbmRPZlBhcmFncmFwaCkgfHwgIWlzRW5k
T2ZQYXJhZ3JhcGgoZW5kT2ZQYXJhZ3JhcGgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBX
ZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGJyIGF0IHRoZSBlbmQgb2YgcGFyYWdyYXBoCisgICAgTm9k
ZSogYnIgPSBlbmRPZlBhcmFncmFwaC5ub2RlKCk7CisgICAgTm9kZSogcGFyZW50Tm9kZSA9IGJy
LT5wYXJlbnROb2RlKCk7CisKKyAgICAvLyBJZiB0aGUgbm9kZSBpc24ndCBiciBvciB0aGUgcGFy
ZW50IG5vZGUgaXMgZW1wdHksIHRoZW4gZG9uJ3QgcmVtb3ZlLgorICAgIGlmICghYnItPmhhc1Rh
Z05hbWUoYnJUYWcpIHx8IGlzVmlzaWJseUFkamFjZW50KHBvc2l0aW9uQmVmb3JlTm9kZShwYXJl
bnROb2RlKSwgcG9zaXRpb25BZnRlck5vZGUocGFyZW50Tm9kZSkpKQorICAgICAgICByZXR1cm47
CisKKyAgICByZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoYnIpOwogfQogCiBib29sIEluZGVu
dE91dGRlbnRDb21tYW5kOjppc0F0VW5zcGxpdHRhYmxlRWxlbWVudChjb25zdCBQb3NpdGlvbiYg
cG9zKSBjb25zdApAQCAtMTc0LDggKzE4Myw2IEBAIHZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6
OmluZGVudFJlZ2lvbigKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IHNlbGVjdGlv
bkZvclBhcmFncmFwaEl0ZXJhdGlvbihlbmRpbmdTZWxlY3Rpb24oKSk7CiAgICAgVmlzaWJsZVBv
c2l0aW9uIHN0YXJ0T2ZTZWxlY3Rpb24gPSBzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCk7CiAgICAg
VmlzaWJsZVBvc2l0aW9uIGVuZE9mU2VsZWN0aW9uID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsK
LSAgICBpbnQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHN0YXJ0T2ZTZWxl
Y3Rpb24pOwotICAgIGludCBlbmRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGVuZE9m
U2VsZWN0aW9uKTsKIAogICAgIEFTU0VSVCghc3RhcnRPZlNlbGVjdGlvbi5pc051bGwoKSk7CiAg
ICAgQVNTRVJUKCFlbmRPZlNlbGVjdGlvbi5pc051bGwoKSk7CkBAIC0xODQsMjcgKzE5MSw1MSBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRSZWdpb24oCiAgICAgLy8gYW5kIHRo
ZXJlJ3Mgbm90aGluZyB0byBtb3ZlLgogICAgIFBvc2l0aW9uIHN0YXJ0ID0gc3RhcnRPZlNlbGVj
dGlvbi5kZWVwRXF1aXZhbGVudCgpLmRvd25zdHJlYW0oKTsKICAgICBpZiAoaXNBdFVuc3BsaXR0
YWJsZUVsZW1lbnQoc3RhcnQpKSB7Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBibG9ja3F1b3Rl
ID0gY3JlYXRlSW5kZW50QmxvY2txdW90ZUVsZW1lbnQoZG9jdW1lbnQoKSk7CisgICAgICAgIFJl
ZlB0cjxIVE1MRWxlbWVudD4gYmxvY2txdW90ZSA9IGNyZWF0ZUluZGVudEJsb2NrcXVvdGVFbGVt
ZW50KGRvY3VtZW50KCkpOwogICAgICAgICBpbnNlcnROb2RlQXQoYmxvY2txdW90ZSwgc3RhcnQp
OwotICAgICAgICBSZWZQdHI8RWxlbWVudD4gcGxhY2Vob2xkZXIgPSBjcmVhdGVCcmVha0VsZW1l
bnQoZG9jdW1lbnQoKSk7CisgICAgICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gcGxhY2Vob2xkZXIg
PSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSk7CiAgICAgICAgIGFwcGVuZE5vZGUocGxh
Y2Vob2xkZXIsIGJsb2NrcXVvdGUpOwogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihQb3NpdGlvbihwbGFjZWhvbGRlci5nZXQoKSwgMCksIERPV05TVFJFQU0pKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxFbGVtZW50PiBibG9ja3F1b3Rl
Rm9yTmV4dEluZGVudDsKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGJsb2NrcXVvdGVGb3JOZXh0
SW5kZW50OwogICAgIFZpc2libGVQb3NpdGlvbiBlbmRPZkN1cnJlbnRQYXJhZ3JhcGggPSBlbmRP
ZlBhcmFncmFwaChzdGFydE9mU2VsZWN0aW9uKTsKICAgICBWaXNpYmxlUG9zaXRpb24gZW5kQWZ0
ZXJTZWxlY3Rpb24gPSBlbmRPZlBhcmFncmFwaChlbmRPZlBhcmFncmFwaChlbmRPZlNlbGVjdGlv
bikubmV4dCgpKTsKLSAgICB3aGlsZSAoZW5kT2ZDdXJyZW50UGFyYWdyYXBoICE9IGVuZEFmdGVy
U2VsZWN0aW9uKSB7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gc2VsZWN0aW9u
LmZpcnN0UmFuZ2UoKTsKKyAgICB3aGlsZSAoIWVuZE9mQ3VycmVudFBhcmFncmFwaC5pc051bGwo
KSAmJiBlbmRPZkN1cnJlbnRQYXJhZ3JhcGggIT0gZW5kQWZ0ZXJTZWxlY3Rpb24pIHsKICAgICAg
ICAgLy8gSXRlcmF0ZSBhY3Jvc3MgdGhlIHNlbGVjdGVkIHBhcmFncmFwaHMuLi4KLSAgICAgICAg
VmlzaWJsZVBvc2l0aW9uIGVuZE9mTmV4dFBhcmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGVuZE9m
Q3VycmVudFBhcmFncmFwaC5uZXh0KCkpOwotICAgICAgICBpZiAodHJ5SW5kZW50aW5nQXNMaXN0
SXRlbShlbmRPZkN1cnJlbnRQYXJhZ3JhcGgpKQorICAgICAgICAvLyBCZWNhdXNlIHdlIG1heSBs
b3NlIGVuZE9mQ3VycmVudFBhcmFncmFwaCBkdWUgdG8gb3VyIGlkZW50YXRpb24sIHdlIHVzZSBl
bmRPZk5leHRQYXJhZ3JhcGggdG8ga2VlcCB0cmFjayBvZiB0aGUgcG9zaXRpb24gb2Ygb3VyIGl0
ZXJhdGlvbi4KKyAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBo
ID0gc3RhcnRPZlBhcmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgpOworICAgICAgICBWaXNp
YmxlUG9zaXRpb24gZW5kT2ZOZXh0UGFyYWdyYXBoOworICAgICAgICBOb2RlKiBibG9ja05vZGUg
PSBlbmNsb3NpbmdCbG9jayhlbmRPZkN1cnJlbnRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKS5u
b2RlKCkpOworICAgICAgICBpZiAoYmxvY2tOb2RlLT5oYXNUYWdOYW1lKGxpVGFnKSkgeworICAg
ICAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gZGVhbCB3aXRoIG1hbGZvcm1lZCBIVE1MIHdpdGhv
dXQgYSBsaTsgKGkuZS4gaGFzVGFnTmFtZShvbFRhZykgb3IgaGFzVGFnTmFtZSh1bFRhZykpCisg
ICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBsaXN0IGl0ZW0gYW5kIGVuY2xv
c2UgdGhlIGNvbnRlbnQgaWYgdGhlcmUgaXMgbm8gbGkgaW1tZWRpYXRlbHkgYWJvdmUuCisgICAg
ICAgICAgICAvLyBPdGhlcndpc2UgbWVyZ2Ugd2l0aCB0aGUgcHJlY2VkaW5nIGxpc3QgaXRlbS4K
KyAgICAgICAgICAgIGdldFZpc2libGVSYW5nZU9mTm9kZShibG9ja05vZGUsIHN0YXJ0T2ZDdXJy
ZW50UGFyYWdyYXBoLCBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgpOworICAgICAgICAgICAgZW5kT2ZD
dXJyZW50UGFyYWdyYXBoID0gZW5kT2ZQYXJhZ3JhcGgoZW5kT2ZDdXJyZW50UGFyYWdyYXBoKTsK
KyAgICAgICAgICAgIHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChz
dGFydE9mQ3VycmVudFBhcmFncmFwaCk7CisKKyAgICAgICAgICAgIGVuZE9mTmV4dFBhcmFncmFw
aCA9IGVuZE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaC5uZXh0KCkpOworICAgICAg
ICAgICAgaW5kZW50TGlzdEl0ZW0oc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihibG9ja05vZGUp
LCBzdGFydE9mQ3VycmVudFBhcmFncmFwaCwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoKTsKICAgICAg
ICAgICAgIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBlbmRPZk5l
eHRQYXJhZ3JhcGgsIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50KTsKLSAgICAgICAgICAgIC8vIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50IG1heWJlIHVwZGF0ZWQKLSAgICAgICAgICAgIC8vIHRoaXMg
aXMgZHVlIHRvIHRoZSB3YXkgcHJlcGFyZUJsb2NrcXVvdGVMZXZlbEZvckluc2VydGlvbiB3YXMg
ZGVzaWduZWQuCi0gICAgICAgIC8vIFNhbml0eSBjaGVjazogTWFrZSBzdXJlIG91ciBtb3ZlUGFy
YWdyYXBoIGNhbGxzIGRpZG4ndCByZW1vdmUgZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFs
ZW50KCkubm9kZSgpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBleHRlbmQgdGhl
IHJlZ2lvbiBzbyB0aGF0IGl0IGNvbnRhaW5zIGFsbCB0aGUgYW5jZXN0b3IgYmxvY2tzIHdpdGhp
biB0aGUgc2VsZWN0aW9uCisgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOworICAgICAgICAg
ICAgRWxlbWVudCogdW5zcGxpdHRhYmxlTm9kZSA9IHVuc3BsaXR0YWJsZUVsZW1lbnRGb3JQb3Np
dGlvbihlbmRPZkN1cnJlbnRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKSk7CisgICAgICAgICAg
ICBSZWZQdHI8UmFuZ2U+IG9yaWdpbmFsUmFuZ2UgPSBjcmVhdGVSYW5nZShkb2N1bWVudCgpLCBl
bmRPZkN1cnJlbnRQYXJhZ3JhcGgsIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgZWMpOworICAgICAg
ICAgICAgUmVmUHRyPFJhbmdlPiBleHRlbmRlZFJhbmdlID0gZXhudGVuZFJhbmdlVG9XcmFwcGlu
Z05vZGVzKG9yaWdpbmFsUmFuZ2UsIHNlbGVjdGVkUmFuZ2UsIHVuc3BsaXR0YWJsZU5vZGUpOwor
ICAgICAgICAgICAgaWYgKG9yaWdpbmFsUmFuZ2UgIT0gZXh0ZW5kZWRSYW5nZSkgeworICAgICAg
ICAgICAgICAgIGVuZE9mQ3VycmVudFBhcmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGV4dGVuZGVk
UmFuZ2UtPmVuZFBvc2l0aW9uKCkucHJldmlvdXMoKSk7CisgICAgICAgICAgICAgICAgYmxvY2tO
b2RlID0gZW5jbG9zaW5nQmxvY2soUmFuZ2U6OmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKGV4dGVu
ZGVkUmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5ub2RlKCksIGV4dGVuZGVkUmFuZ2UtPmVuZFBvc2l0
aW9uKCkubm9kZSgpKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVuZE9mTmV4dFBh
cmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaC5uZXh0KCkpOwor
ICAgICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgs
IGVuZE9mQ3VycmVudFBhcmFncmFwaCwgZW5kT2ZOZXh0UGFyYWdyYXBoLCBibG9ja3F1b3RlRm9y
TmV4dEluZGVudCwgYmxvY2tOb2RlKTsKKyAgICAgICAgICAgIC8vIGJsb2NrcXVvdGVGb3JOZXh0
SW5kZW50IHdpbGwgYmUgdXBkYXRlZCBpbiB0aGUgZnVuY3Rpb24KKyAgICAgICAgfQorICAgICAg
ICAvLyBTYW5pdHkgY2hlY2s6IE1ha2Ugc3VyZSBvdXIgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUg
Y2FsbHMgZGlkbid0IHJlbW92ZSBlbmRPZk5leHRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKS5u
b2RlKCkKICAgICAgICAgLy8gSWYgc29tZWhvdyB3ZSBkaWQsIHJldHVybiB0byBwcmV2ZW50IGNy
YXNoZXMuCiAgICAgICAgIGlmIChlbmRPZk5leHRQYXJhZ3JhcGguaXNOb3ROdWxsKCkgJiYgIWVu
ZE9mTmV4dFBhcmFncmFwaC5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKS0+aW5Eb2N1bWVudCgpKSB7
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTIxMiwxMSArMjQzLDcgQEAg
dm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6aW5kZW50UmVnaW9uKAogICAgICAgICB9CiAgICAg
ICAgIGVuZE9mQ3VycmVudFBhcmFncmFwaCA9IGVuZE9mTmV4dFBhcmFncmFwaDsKICAgICB9Ci0g
ICAgCi0gICAgUmVmUHRyPFJhbmdlPiBzdGFydFJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZy
b21Mb2NhdGlvbkFuZExlbmd0aChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSwgc3RhcnRJ
bmRleCwgMCwgdHJ1ZSk7Ci0gICAgUmVmUHRyPFJhbmdlPiBlbmRSYW5nZSA9IFRleHRJdGVyYXRv
cjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50
KCksIGVuZEluZGV4LCAwLCB0cnVlKTsKLSAgICBpZiAoc3RhcnRSYW5nZSAmJiBlbmRSYW5nZSkK
LSAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oc3RhcnRSYW5nZS0+
c3RhcnRQb3NpdGlvbigpLCBlbmRSYW5nZS0+c3RhcnRQb3NpdGlvbigpLCBET1dOU1RSRUFNKSk7
CisKIH0KIAogdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6b3V0ZGVudFBhcmFncmFwaCgpCklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaAkocmV2aXNpb24gNDU1NjQp
CisrKyBXZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuaAkod29ya2luZyBjb3B5
KQpAQCAtNTIsOSArNTIsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluZGVudFJlZ2lvbigpOwog
ICAgIHZvaWQgb3V0ZGVudFJlZ2lvbigpOwogICAgIHZvaWQgb3V0ZGVudFBhcmFncmFwaCgpOwot
ICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gcHJlcGFyZUJsb2NrcXVvdGVMZXZlbEZvckluc2VydGlv
bihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBSZWZQdHI8RWxlbWVudD4mKTsKLSAgICBib29sIHRy
eUluZGVudGluZ0FzTGlzdEl0ZW0oY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Ci0gICAgdm9pZCBp
bmRlbnRJbnRvQmxvY2txdW90ZShjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mLCBSZWZQdHI8RWxlbWVudD4mKTsKKyAgICB2b2lkIGluZGVudExpc3RJdGVtKEhU
TUxFbGVtZW50KiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
Jik7CisgICAgdm9pZCBpbmRlbnRJbnRvQmxvY2txdW90ZShjb25zdCBWaXNpYmxlUG9zaXRpb24m
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBSZWZQdHI8
SFRNTEVsZW1lbnQ+JiwgTm9kZSopOworICAgIHZvaWQgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUo
Tm9kZSogbmV3UGFyZW50LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mIGVuZCk7CisgICAgdm9pZCByZW1vdmVVbm5lY2Vzc2FyeUxpbmVCcmVha0F0
KCBjb25zdCBQb3NpdGlvbiYgZW5kT2ZQYXJhZ3JhcGggKTsKIAogICAgIEVJbmRlbnRUeXBlIG1f
dHlwZU9mQWN0aW9uOwogICAgIGludCBtX21hcmdpbkluUGl4ZWxzOwpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCShyZXZpc2lvbiA0NTU2NCkKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNyw2ICsyMDcsMTMgQEAgRWxlbWVudCogZWRp
dGFibGVSb290Rm9yUG9zaXRpb24oY29uc3QgUAogICAgIHJldHVybiBub2RlLT5yb290RWRpdGFi
bGVFbGVtZW50KCk7CiB9CiAKK0VsZW1lbnQqIHVuc3BsaXR0YWJsZUVsZW1lbnRGb3JQb3NpdGlv
bihjb25zdCBQb3NpdGlvbiYgcCkKK3sKKyAgICBFbGVtZW50KiBlbmNsb3NpbmdDZWxsID0gc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KGVuY2xvc2luZ05vZGVPZlR5cGUocCwgJmlzVGFibGVDZWxsKSk7
CisgICAgCisgICAgcmV0dXJuIGVuY2xvc2luZ0NlbGwgPyBlbmNsb3NpbmdDZWxsIDogZWRpdGFi
bGVSb290Rm9yUG9zaXRpb24ocCk7Cit9CisKIGJvb2wgaXNDb250ZW50RWRpdGFibGUoY29uc3Qg
Tm9kZSogbm9kZSkKIHsKICAgICByZXR1cm4gbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKTsKQEAg
LTU3NSw2ICs1ODIsNDEgQEAgUG9zaXRpb24gcG9zaXRpb25BZnRlck5vZGUoY29uc3QgTm9kZSog
bgogICAgIHJldHVybiBQb3NpdGlvbihub2RlLT5wYXJlbnROb2RlKCksIG5vZGUtPm5vZGVJbmRl
eCgpICsgMSk7CiB9CiAKK1Bhc3NSZWZQdHI8UmFuZ2U+IGNyZWF0ZVJhbmdlKFBhc3NSZWZQdHI8
RG9jdW1lbnQ+IGRvY3VtZW50LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIGVuZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgZWM9MDsKKyAg
ICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGRvY3VtZW50KTsK
KyAgICBzZWxlY3RlZFJhbmdlLT5zZXRTdGFydCggc3RhcnQuZGVlcEVxdWl2YWxlbnQoKS5jb250
YWluZXJOb2RlKCksIHN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29tcHV0ZU9mZnNldEluQ29udGFp
bmVyTm9kZSgpLCBlYyk7CisgICAgaWYgKCFlYykKKyAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c2V0
RW5kKCBlbmQuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2RlKCksIGVuZC5kZWVwRXF1aXZh
bGVudCgpLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5vZGUoKSwgZWMpOworICAgIHJldHVybiBz
ZWxlY3RlZFJhbmdlLnJlbGVhc2UoKTsKK30KKworLy8gRXh0ZW5kIHJhbmdlVG9FeHRlbmQgdG8g
aW5jbHVkZSB3cmFwcGluZyBub2Rlcy4KKy8vIFRoZSByZXN1bHRhbnQgcmFuZ2UgaXMgY29udGFp
bmVkIHdpdGhpbiAoc2VlIGFsc28gaXNOb2RlVmlzaWJseUNvbnRhaW5lZFdpdGhpbikgbWF4aW11
bVJhbmdlIGFuZCBiZWxvdyByb290Tm9kZQorUGFzc1JlZlB0cjxSYW5nZT4gZXhudGVuZFJhbmdl
VG9XcmFwcGluZ05vZGVzKFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlVG9FeHRlbmQsIFBhc3NSZWZQ
dHI8UmFuZ2U+IG1heGltdW1SYW5nZSwgTm9kZSogcm9vdE5vZGUpCit7CisgICAgQVNTRVJUKHJh
bmdlVG9FeHRlbmQpOworICAgIEFTU0VSVChtYXhpbXVtUmFuZ2UpOworICAgIAorICAgIEV4Y2Vw
dGlvbkNvZGUgZWM9MDsKKyAgICBOb2RlKiBhbmNlc3RvciA9IHJhbmdlVG9FeHRlbmQtPmNvbW1v
bkFuY2VzdG9yQ29udGFpbmVyKGVjKTsvLyBmaW5kIHRoZSBjbG9lc2V0IGNvbW1vbiBhbmNlc3Rv
cgorICAgIE5vZGUqIGhpZ2hlc3ROb2RlID0gMDsKKyAgICAvLyB0cmF2ZXJzZSB0aHJvdWdoIGFu
Y2VzdG9ycyBhcyBsb25nIGFzIHRoZXkgYXJlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJhbmdlLCBj
b250ZW50LWVkaXRhYmxlLCBhbmQgYmVsb3cgcm9vdE5vZGUgKGNvdWxkIGJlID0wKS4KKyAgICB3
aGlsZSAoYW5jZXN0b3IgJiYgYW5jZXN0b3ItPmlzQ29udGVudEVkaXRhYmxlKCkgJiYgaXNOb2Rl
VmlzaWJseUNvbnRhaW5lZFdpdGhpbihhbmNlc3RvciwgKm1heGltdW1SYW5nZSkgJiYgYW5jZXN0
b3IgIT0gcm9vdE5vZGUpIHsKKyAgICAgICAgaGlnaGVzdE5vZGUgPSBhbmNlc3RvcjsKKyAgICAg
ICAgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50Tm9kZSgpOworICAgIH0KKworICAgIGlmICgh
aGlnaGVzdE5vZGUpCisgICAgICAgIHJldHVybiByYW5nZVRvRXh0ZW5kOworCisgICAgLy8gQ3Jl
YXRlIG5ldyByYW5nZSB3aXRoIHRoZSBoaWdoZXN0IGVkaXRhYmxlIG5vZGUgY29udGFpbmVkIHdp
dGhpbiB0aGUgcmFuZ2UKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShy
YW5nZVRvRXh0ZW5kLT5vd25lckRvY3VtZW50KCkpOworICAgIHJhbmdlLT5zZWxlY3ROb2RlKGhp
Z2hlc3ROb2RlLCBlYyk7CisgICAgcmV0dXJuIHJhbmdlLnJlbGVhc2UoKTsKK30KKwogYm9vbCBp
c0xpc3RFbGVtZW50KE5vZGUgKm4pCiB7CiAgICAgcmV0dXJuIChuICYmIChuLT5oYXNUYWdOYW1l
KHVsVGFnKSB8fCBuLT5oYXNUYWdOYW1lKG9sVGFnKSB8fCBuLT5oYXNUYWdOYW1lKGRsVGFnKSkp
OwpAQCAtNzQ2LDcgKzc4OCw3IEBAIGJvb2wgY2FuTWVyZ2VMaXN0cyhFbGVtZW50KiBmaXJzdExp
c3QsIEUKICAgICByZXR1cm4gZmlyc3RMaXN0LT5oYXNUYWdOYW1lKHNlY29uZExpc3QtPnRhZ1FO
YW1lKCkpLy8gbWFrZSBzdXJlIHRoZSBsaXN0IHR5cGVzIG1hdGNoIChvbCB2cy4gdWwpCiAgICAg
JiYgaXNDb250ZW50RWRpdGFibGUoZmlyc3RMaXN0KSAmJiBpc0NvbnRlbnRFZGl0YWJsZShzZWNv
bmRMaXN0KS8vIGJvdGggbGlzdHMgYXJlIGVkaXRhYmxlCiAgICAgJiYgZmlyc3RMaXN0LT5yb290
RWRpdGFibGVFbGVtZW50KCkgPT0gc2Vjb25kTGlzdC0+cm9vdEVkaXRhYmxlRWxlbWVudCgpLy8g
ZG9uJ3QgY3Jvc3MgZWRpdGluZyBib3VuZGFyaWVzCi0gICAgJiYgaXNWaXNpYmlseUFkamFjZW50
KHBvc2l0aW9uQWZ0ZXJOb2RlKGZpcnN0TGlzdCksIHBvc2l0aW9uQmVmb3JlTm9kZShzZWNvbmRM
aXN0KSk7CisgICAgJiYgaXNWaXNpYmx5QWRqYWNlbnQocG9zaXRpb25BZnRlck5vZGUoZmlyc3RM
aXN0KSwgcG9zaXRpb25CZWZvcmVOb2RlKHNlY29uZExpc3QpKTsKICAgICAvLyBNYWtlIHN1cmUg
dGhlcmUgaXMgbm8gdmlzaWJsZSBjb250ZW50IGJldHdlZW4gdGhpcyBsaSBhbmQgdGhlIHByZXZp
b3VzIGxpc3QKIH0KIApAQCAtOTc0LDcgKzEwMTYsNyBAQCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVj
dGlvbkZvclBhcmFncmFwaEl0CiB9CiAKIAotaW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKFZp
c2libGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uKQoraW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0
aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgdmlzaWJsZVBvc2l0aW9uKQogewogICAgIGlmICh2
aXNpYmxlUG9zaXRpb24uaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtOTgzLDExICsx
MDI1LDM4IEBAIGludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihWaXNpYmxlUG9zaXQKICAgICBy
ZXR1cm4gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChyYW5nZS5nZXQoKSwgdHJ1ZSk7CiB9CiAK
LWJvb2wgaXNWaXNpYmlseUFkamFjZW50KGNvbnN0IFBvc2l0aW9uJiBmaXJzdCwgY29uc3QgUG9z
aXRpb24mIHNlY29uZCkKK2Jvb2wgaXNWaXNpYmx5QWRqYWNlbnQoY29uc3QgUG9zaXRpb24mIGZp
cnN0LCBjb25zdCBQb3NpdGlvbiYgc2Vjb25kKQogewogICAgIHJldHVybiBWaXNpYmxlUG9zaXRp
b24oZmlyc3QpID09IFZpc2libGVQb3NpdGlvbihzZWNvbmQudXBzdHJlYW0oKSk7CiB9CiAKKy8v
IFdlIHNheSBhIG5vZGUgaXMgdmlzaWJseSBjb250YWluZWQgd2l0aGluIGEgcmFuZ2UgaWYgdGhl
IG5vZGUgaXMgaW5zaWRlIGEgcmFuZ2Ugb3IgaWYgdGhlIG5vZGUgdmlzaWJseSBzdGFydHMgYW5k
IGVuZHMgYXQgdGhlIGJvdW5kYXJpZXMgb2YgcmFuZ2UuCitib29sIGlzTm9kZVZpc2libHlDb250
YWluZWRXaXRoaW4oTm9kZSogbm9kZSwgY29uc3QgUmFuZ2UmIHNlbGVjdGVkUmFuZ2UpCit7Cisg
ICAgQVNTRVJUKG5vZGUpOworICAgIC8vIElmIHRoZSBub2RlIGlzIGluc2lkZSB0aGUgcmFuZ2Us
IHRoZW4gaXQgc3VyZWx5IGlzIGNvbnRhaW5lZCB3aXRoaW4KKyAgICBFeGNlcHRpb25Db2RlIGVj
PTA7CisgICAgaWYgKHNlbGVjdGVkUmFuZ2UuY29tcGFyZU5vZGUobm9kZSwgZWMpID09IFJhbmdl
OjpOT0RFX0lOU0lERSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBJZiB0aGUgbm9k
ZSBzdGFydHMgYW5kIGVuZHMgYXQgd2hlcmUgc2VsZWN0ZWRSYW5nZSBzdGFydHMgYW5kIGVuZHMs
IHRoZSBub2RlIGlzIGNvbnRhaW5lZCB3aXRoaW4KKyAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQ7
CisgICAgVmlzaWJsZVBvc2l0aW9uIGVuZDsKKyAgICBnZXRWaXNpYmxlUmFuZ2VPZk5vZGUobm9k
ZSwgc3RhcnQsIGVuZCk7CisgICAgcmV0dXJuIHN0YXJ0ID09IFZpc2libGVQb3NpdGlvbihzZWxl
Y3RlZFJhbmdlLnN0YXJ0UG9zaXRpb24oKSkgJiYgZW5kID09IFZpc2libGVQb3NpdGlvbihzZWxl
Y3RlZFJhbmdlLmVuZFBvc2l0aW9uKCkpOworfQorCit2b2lkIGdldFZpc2libGVSYW5nZU9mTm9k
ZShOb2RlKiBub2RlICwgVmlzaWJsZVBvc2l0aW9uJiBzdGFydCAsIFZpc2libGVQb3NpdGlvbiYg
ZW5kICkKK3sKKyAgICBpZiAobm9kZS0+Y2hpbGROb2RlQ291bnQoKSkgeworICAgICAgICBzdGFy
dCA9IFZpc2libGVQb3NpdGlvbihub2RlLCAwLCBET1dOU1RSRUFNKTsKKyAgICAgICAgZW5kID0g
VmlzaWJsZVBvc2l0aW9uKG5vZGUsIG5vZGUtPmNoaWxkTm9kZUNvdW50KCksIERPV05TVFJFQU0p
OworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXJ0ID0gVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9u
QmVmb3JlTm9kZShub2RlKSk7CisgICAgICAgIGVuZCA9IFZpc2libGVQb3NpdGlvbihwb3NpdGlv
bkFmdGVyTm9kZShub2RlKSk7CisgICAgfQorfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBhdm9pZElu
dGVyc2VjdGlvbldpdGhOb2RlKGNvbnN0IFJhbmdlKiByYW5nZSwgTm9kZSogbm9kZSkKIHsKICAg
ICBpZiAoIXJhbmdlKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHJldmlzaW9uIDQ1NTY0KQor
KysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1hbmQuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02MSw2ICs2Miw3IEBAIFBvc2l0aW9uIHByZXZpb3VzVmlzdWFsbHlEaXN0aW5j
dENhbmRpZGEKIGJvb2wgaXNFZGl0YWJsZVBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJik7CiBib29s
IGlzUmljaGx5RWRpdGFibGVQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYpOwogRWxlbWVudCogZWRp
dGFibGVSb290Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mKTsKKyAgICBFbGVtZW50KiB1bnNw
bGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mIHApOwogYm9vbCBpc0Js
b2NrKGNvbnN0IE5vZGUqKTsKIE5vZGUqIGVuY2xvc2luZ0Jsb2NrKE5vZGUqKTsKIApAQCAtNzEs
NiArNzMsOCBAQCBjb25zdCBTdHJpbmcmIG5vbkJyZWFraW5nU3BhY2VTdHJpbmcoKTsKIAogUG9z
aXRpb24gcG9zaXRpb25CZWZvcmVOb2RlKGNvbnN0IE5vZGUqKTsKIFBvc2l0aW9uIHBvc2l0aW9u
QWZ0ZXJOb2RlKGNvbnN0IE5vZGUqKTsKK1Bhc3NSZWZQdHI8UmFuZ2U+IGNyZWF0ZVJhbmdlKFBh
c3NSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0
LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZCwgRXhjZXB0aW9uQ29kZSYgZWMpOworUGFzc1Jl
ZlB0cjxSYW5nZT4gZXhudGVuZFJhbmdlVG9XcmFwcGluZ05vZGVzKFBhc3NSZWZQdHI8UmFuZ2U+
IHJhbmdlVG9FeHRlbmQsIFBhc3NSZWZQdHI8UmFuZ2U+IG1heGltdW1SYW5nZSwgTm9kZSogcm9v
dE5vZGUpOwogCiBQYXNzUmVmUHRyPFJhbmdlPiBhdm9pZEludGVyc2VjdGlvbldpdGhOb2RlKGNv
bnN0IFJhbmdlKiwgTm9kZSopOwogVmlzaWJsZVNlbGVjdGlvbiBhdm9pZEludGVyc2VjdGlvbldp
dGhOb2RlKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBOb2RlKik7CkBAIC0xMzQsOCArMTM4LDEw
IEBAIGJvb2wgbGluZUJyZWFrRXhpc3RzQXRWaXNpYmxlUG9zaXRpb24oY28KIAogVmlzaWJsZVNl
bGVjdGlvbiBzZWxlY3Rpb25Gb3JQYXJhZ3JhcGhJdGVyYXRpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYpOwogCi1pbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oVmlzaWJsZVBvc2l0aW9uJik7
Ci1ib29sIGlzVmlzaWJpbHlBZGphY2VudChjb25zdCBQb3NpdGlvbiYgZmlyc3QsIGNvbnN0IFBv
c2l0aW9uJiBzZWNvbmQpOworaW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYpOworYm9vbCBpc1Zpc2libHlBZGphY2VudChjb25zdCBQb3NpdGlvbiYgZmly
c3QsIGNvbnN0IFBvc2l0aW9uJiBzZWNvbmQpOworYm9vbCBpc05vZGVWaXNpYmx5Q29udGFpbmVk
V2l0aGluKE5vZGUqIG5vZGUsIGNvbnN0IFJhbmdlJiBzZWxlY3RlZFJhbmdlKTsKK3ZvaWQgZ2V0
VmlzaWJsZVJhbmdlT2ZOb2RlKE5vZGUqIG5vZGUgLCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0ICwg
VmlzaWJsZVBvc2l0aW9uJiBlbmQgKTsKIH0KIAogI2VuZGlmCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
NTU3NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDUzIEBACisyMDA5LTA3LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5n
IG9mIGluZGVudFJlZ2lvbiB0byBmaXggYnVncyAyNjgxNiBhbmQgMjUzMTcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODE2CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMxNworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5OTUgKHBhcnRpYWxseSkKKworICAg
ICAgICBGdXJ0aGVyIHJlZmFjdG9yaW5nIG9mIGluZGVudFJlZ2lvbi4gIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZSwKKyAgICAgICAgYSBtdWNoIHNpbXBsZXIs
IHNwZWNpYWxpemVkIHZlcnNpb24gb2YgbW92ZVBhcmFncmFwaCBhbmQgcmVwbGFjZXMgdGhlIGFs
bCB1c2FnZSBpbnNpZGUgaW5kZW50UmVnaW9uLgorICAgICAgICBCeSBkb2luZyB0aGlzLCBpbmRl
bnRSZWdpb24gYmVjYW1lIG11Y2ggbW9yZSBzdGFibGUsIGFuZCBzb2x2ZWQgYSBudW1iZXIgb2Yg
cHJvYmxlbXMuCisgICAgICAgIFRoZSBmb2xsb3dpbmcgaXMgdGhlIG5ldyBiZWhhdmlvciBvZiBp
bmRlbnRSZWdpb24KKworICAgICAgICAxLiBXZSB0cnkgdG8gaW5kZW50IGFzIG1hbnkgd3JhcHBp
bmcgbm9kZXMgYXMgcG9zc2libGUuCisgICAgICAgICAgIGUuZy4gd2hlbiBpbmRlbnRpbmcgImhl
bGxvIiBpbiA8ZGl2PmhlbGxvPC9kaXY+LCB0cnkgaW5kZW50IHRoZSB3aG9sZSBkaXYgc28gYXMg
dG8gcHJlc2VydmUgdGhlIHN0eWxlLgorICAgICAgICAgICBUaGlzIGJlaGF2aXJvYWwgY2hhbmdl
IGlzIHRoZSBwcmltYXJpbHkgbW90aXZhdGlvbiB0byBpbXBsZW1lbnQgYXBwZW5kUGFyYWdyYXBo
SW50b05vZGUuCisgICAgICAgIDIuIFdlIGRvIG5vdCBkZWxldGUgYW55IHdyYXBwaW5nIGVsZW1l
bnRzCisgICAgICAgICAgIFdpdGggbW92ZVBhcmFncmFwaCwgd2UgdXNlZCB0byByZW1vdmUgYWxs
IHdyYXBwaW5nIG5vZGVzLCBhbmQgcmVwbGFjZWQgd2l0aCBhIGJsb2NrcXVvdGUuCisgICAgICAg
ICAgIFRoaXMgd2FzIGNhdXNlaW5nIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzk5NSBmb3IgaWRlbnRhdGlvbi4KKyAgICAgICAgICAgV2l0aCBhcHBlbmRQYXJhZ3Jh
cGhJbnRvTm9kZSwgd2UgY2FuIHByZXNlcnZlIGFsbCB3cmFwcGluZyBub2Rlcy4KKyAgICAgICAg
My4gV2Ugb25seSBzcGxpdCB0aGUgdHJlZSB1bnRpbCB0aGUgY2xvc2VzdCBibG9jayBub2RlIGlu
c3RlYWQgb2YgdW50aWwgdGhlIHJvb3QgZWRpdGFibGUgbm9kZS4KKyAgICAgICAgICAgVGhpcyBi
ZWhhdmlvcmFsIGNoYW5nZSBpcyB0byBmaXggMjUzMTcsIGFuZCBhbHNvIGZpeGVzIHRoZSBudW1i
ZXIgb2Ygb3RoZXIgcHJvYmxlbXMuCisgICAgICAgIDQuIFdoZW4gbXVsdGlwbGUgcGFyYWdyYXBo
cyBhcmUgaW5kZW50ZWQsIHdlIHRyeSB0byBpbmRlbnQgdGhlIGNsb3Nlc3QgY29tbW9uIGFuY2Vz
dG9yIHdpdGhpbiB0aGUgc2VsZWN0aW9uCisgICAgICAgICAgIEluc3RlYWQgb2YgaW5kZW50aW5n
IGVhY2ggcGFyYWdyYXBoLCBhbmQgdHJ5IHRvIGNvbWJpbmUgYXQgdGhlIGVuZCAod2hpY2ggcmVz
dWx0cyBpbiBtaXNzaW5nIGF0dHJpYnV0ZXMpLAorICAgICAgICAgICB3ZSB0cnkgdG8gZmluZCB0
aGUgY29tbW9uIGFuY2VzdG9yIG9mIGFsbCBwYXJhZ3JhcGhzIHRoYXQgYXJlIGJlaW5nIGluZGVu
dGVkLgorICAgICAgICAgICBJZiB0aGUgYW5jZXN0b3IgaXMgd2l0aGluIHRoZSBzZWxlY3Rpb24s
IHdlIGluZGVudCBibG9ja3F1b3RlIHRoZSBhbmNlc3RvciBvbmNlLgorCisgICAgICAgIE5vdGUg
dGhhdCBuZXcgYmVoYXZpb3IgaXMgbXVjaCBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIElu
dGVybmV0IEV4cGxvcmVyIGFuZCBGaXJlZm94LgorICAgICAgICBUbyBkZW1vbnN0cmF0ZSB0aGlz
LCB0aGUgc29tZSB0ZXN0cyBhcmUgYWRkZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21t
YW5kLzE5NjUzLTEtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAobm8gbG9uZ2VyIHJlbW92aW5n
IHdyYXBwaW5nIGRpdikKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYt
aW5zaWRlLWxpc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2Nr
cXVvdGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0yLWV4cGVjdGVkLnR4dDogcmViYXNlbGlu
ZWQgKHNlbGVjdGlvbiBjb3JyZWN0ZWQpCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbmVzdGVkLWxpc3RzLTMtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAoc2VsZWN0aW9u
IGNvcnJlY3RlZCkKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQt
bGlzdHMtNC1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChzZWxlY3Rpb24gY29ycmVjdGVkKQor
ICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy01LWV4cGVj
dGVkLnR4dDogcmViYXNlbGluZWQgKHNlbGVjdGlvbiBjb3JyZWN0ZWQpCisgICAgICAgICogZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
c2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1leHBlY3RlZC50eHQ6IHJl
YmFzZWxpbmVkCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNDkx
NjU0MS1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChubyBsb25nZXIgcmVtb3Zpbmcgd3JhcHBp
bmcgc3BhbikKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81MTM4
NDQxLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9leGVjQ29tbWFuZC81NDgxNTIzLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2VsZWN0aW9uLWV4
cGVjdGVkLnR4dDogcmViYXNlbGluZWQKKwogMjAwOS0wNy0wNiAgU2hpbmljaGlybyBIYW1hamkg
IDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0
LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC8xOTY1My0xLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kLzE5NjUz
LTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvMTk2NTMtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsNyAr
NSw3IEBAIFRoaXMgdGVzdHMgY3JlYXRpbmcgYSBsaXN0IGZyb20gYW4gZW1wdHkKIDx1bD48bGk+
PGI+Qm9sZDwvYj48L2xpPjwvdWw+CiAKIFRoaXMgdGVzdHMgaW5kZW50aW5nIGFuIGVtcHR5IHBh
cmFncmFwaCB3aXRoIGJvbGQgYWxyZWFkeSBhcHBsaWVkIHRvIGl0LiBUaGUgd29yZCBiZWxvdyBz
aG91bGQgYmUgYm9sZC4KLTxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVv
dGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4
OyI+PGI+Qm9sZDwvYj48L2Jsb2NrcXVvdGU+Cis8YmxvY2txdW90ZSBjbGFzcz0id2Via2l0LWlu
ZGVudC1ibG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7
IHBhZGRpbmc6IDBweDsiPjxkaXY+PGI+Qm9sZDwvYj48L2Rpdj48L2Jsb2NrcXVvdGU+CiAKIFRo
aXMgdGVzdHMgaW5kZW50aW5nIGFuIGVtcHR5IHBhcmFncmFwaCB3aGVuIHRoZSB0eXBpbmcgc3R5
bGUgd2FzIEJvbGQuIFRoZSB3b3JkIGJlbG93IHNob3VsZCBiZSBib2xkLgogPGJsb2NrcXVvdGUg
Y2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBw
eDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7Ij48Yj5Cb2xkPC9iPjwvYmxvY2txdW90ZT4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1pbnNpZGUt
bGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1pbnNpZGUtbGlz
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0ZXN0cyBp
bmRlbnRpbmcgYSBkaXYgaW5zaWRlIGEgbGlzdCBpdGVtLiBCeSBpbmRlbnRpbmcgIndvcmxkIiwg
d2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYXJvdW5kIHdvcmxkIGluc2lkZSB0
aGUgbGlzdCBpdGVtLgorCithCitoZWxsbword29ybGQKK2IKK2EgPHVsPiA8bGk+aGVsbG88Ymxv
Y2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAw
IDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiPjxkaXYgaWQ9InRlc3QiPiB3
b3JsZCA8L2Rpdj48L2Jsb2NrcXVvdGU+PC9saT48L3VsPiBiCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxp
c3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LWRpdi1pbnNpZGUtbGlzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBA
Cis8cD5UaGlzIHRlc3RzIGluZGVudGluZyBhIGRpdiBpbnNpZGUgYSBsaXN0IGl0ZW0uICBCeSBp
bmRlbnRpbmcgIndvcmxkIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYXJv
dW5kIHdvcmxkIGluc2lkZSB0aGUgbGlzdCBpdGVtLjwvcD4KKzxkaXYgaWQ9ImRpdiIgY29udGVu
dGVkaXRhYmxlPSJ0cnVlIj4KK2EKKzx1bD4KKzxsaT5oZWxsbzxkaXYgaWQ9InRlc3QiPgord29y
bGQKKzwvbGk+Cis8L2Jsb2NrcXVvdGU+Cis8L3VsPgorYgorPC9kaXY+Cis8ZGl2IGlkPSJjIj48
L2Rpdj4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXN0Iik7Cit2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKK3Zh
ciByID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3Iuc2V0U3RhcnQoZSwwKTsKK3Iuc2V0RW5k
KGUsMSk7CitzLmFkZFJhbmdlKHIpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluZGVudCIsIGZh
bHNlLCBudWxsKTsKK3RleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZGl2JykuaW5uZXJIVE1MKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
JykuYXBwZW5kQ2hpbGQoIHRleHQgKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3Rl
ZC1ibG9ja3F1b3Rlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5l
c3RlZC1ibG9ja3F1b3Rlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBA
QAorVGhpcyB0ZXN0cyBpbmRlbnRpbmcgbmVzdGVkIGJsb2NrcXVvdGVzLiBCeSBpbmRlbnRpbmcg
IndlYmtpdCIiIiIsIHdlIHNob3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGJldHdlZW4g
YnIgdGFnIGFuZCB0aGUgZW5kIG9mIHRoZSBpbm5lciBibG9ja3F1b3RlLgorCitoZWxsbword29y
bGQKK3dlYmtpdAoraXMgZ3JlYXQKKzxibG9ja3F1b3RlIGlkPSJvdXRlciI+IGhlbGxvIDxibG9j
a3F1b3RlIGlkPSJpbm5lciI+IHdvcmxkPGJyPjxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQtaW5k
ZW50LWJsb2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsg
cGFkZGluZzogMHB4OyI+IHdlYmtpdCA8L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPiBpcyBncmVh
dCA8L2Jsb2NrcXVvdGU+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lu
ZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1i
bG9ja3F1b3Rlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACis8cD5UaGlzIHRl
c3RzIGluZGVudGluZyBuZXN0ZWQgYmxvY2txdW90ZXMuICBCeSBpbmRlbnRpbmcgIndlYmtpdCIi
IiIsIHdlIHNob3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGJldHdlZW4gYnIgdGFnIGFu
ZCB0aGUgZW5kIG9mIHRoZSBpbm5lciBibG9ja3F1b3RlLjwvcD4KKzxkaXYgaWQ9ImRpdiIgY29u
dGVudGVkaXRhYmxlPSJ0cnVlIj4KKzxibG9ja3F1b3RlIGlkPSJvdXRlciI+CitoZWxsbworPGJs
b2NrcXVvdGUgaWQ9ImlubmVyIj4KK3dvcmxkPGJyPgord2Via2l0Cis8L2Jsb2NrcXVvdGU+Citp
cyBncmVhdAorPC9ibG9ja3F1b3RlPgorPC9kaXY+Cis8ZGl2IGlkPSJjIj48L2Rpdj4KKzxzY3Jp
cHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJpbm5lciIpOwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Cit2YXIgciA9IGRvY3Vt
ZW50LmNyZWF0ZVJhbmdlKCk7CityLnNldFN0YXJ0KGUsMik7CityLnNldEVuZChlLDMpOworcy5h
ZGRSYW5nZShyKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJJbmRlbnQiLCBmYWxzZSwgbnVsbCk7
Cit0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RpdicpLmlubmVySFRNTCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpLmFwcGVuZENo
aWxkKCB0ZXh0ICk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lu
ZGVudC1uZXN0ZWQtZGl2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdHMgaW5kZW50aW5nIG5lc3RlZCBkaXZz
LiBCeSBpbmRlbnRpbmcgImhlbGxvIiwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZW5jbG9zZSBhbGwg
dGhyZWUgYmxvY2tzIDEgdGhyb3VnaCAzIGJ5IGEgYmxvY2txdW90ZQorCitoZWxsbworPGJsb2Nr
cXVvdGUgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAw
IDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7Ij48ZGl2IGlkPSJibG9jazEiPjxk
aXYgaWQ9ImJsb2NrMiI+PGRpdiBpZD0iYmxvY2szIj5oZWxsbzwvZGl2PjwvZGl2PjwvZGl2Pjwv
YmxvY2txdW90ZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LW5lc3RlZC1kaXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjAgQEAKKzxwPlRoaXMgdGVzdHMgaW5kZW50aW5nIG5lc3RlZCBkaXZzLiAg
QnkgaW5kZW50aW5nICJoZWxsbyIsIHdlIHNob3VsZCBiZSBhYmxlIHRvIGVuY2xvc2UgYWxsIHRo
cmVlIGJsb2NrcyAxIHRocm91Z2ggMyBieSBhIGJsb2NrcXVvdGU8L3A+Cis8ZGl2IGlkPSJkaXYi
IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+Cis8ZGl2IGlkPSJibG9jazEiPjxkaXYgaWQ9ImJsb2Nr
MiI+PGRpdiBpZD0iYmxvY2szIj5oZWxsbzwvZGl2PjwvZGl2PjwvZGl2PgorPC9kaXY+Cis8ZGl2
IGlkPSJjIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9jazMiKTsKK3ZhciBzID0gd2luZG93LmdldFNlbGVj
dGlvbigpOwordmFyIHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworci5zZXRTdGFydChlLDAp
Oworci5zZXRFbmQoZSwxKTsKK3MuYWRkUmFuZ2Uocik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgi
SW5kZW50IiwgZmFsc2UsIG51bGwpOwordGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKS5pbm5lckhUTUwpOworZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2MnKS5hcHBlbmRDaGlsZCggdGV4dCApOworPC9zY3JpcHQ+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbmVzdGVkLWxpc3RzLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0yLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lu
ZGVudC1uZXN0ZWQtbGlzdHMtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyAr
Miw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE8KIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05v
dGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51
bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gTEkgPiBPTCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBMSSA+IE9MID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4g
TEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4
dCA+IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6
V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0cyBpbmRlbnRpbmcgInRocmVl
Ii4gWW91IHNob3VsZCBzZWUgbnVtYmVycyAxIGFuZCAyIGJlZm9yZSAidHdvIiBhbmQgInRocmVl
IiByZXNwZWN0aXZlbHkuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lu
ZGVudC1uZXN0ZWQtbGlzdHMtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5k
ZW50LW5lc3RlZC1saXN0cy0zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsy
LDcgQEAgRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ETwogRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90
aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVs
bCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBMSSA+IFVMID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IFNQQU4gPiBMSSA+IFVMID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gTEkgPiBP
TCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IExJ
ID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmll
d0RpZENoYW5nZU5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0cyBpbmRlbnRpbmcgInRocmVlIi4gWW91
IHNob3VsZCBzZWUgMSwgMiwgYW5kIDMgYmVmb3JlICJ0d28iLCAidGhyZWUiLCBhbmQgImZvdXIi
IHJlc3BlY3RpdmVseS4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5k
ZW50LW5lc3RlZC1saXN0cy00LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtbmVzdGVkLWxpc3RzLTQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIs
NyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPCiBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3Rp
ZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxs
KSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IExJID4gVUwgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gU1BBTiA+IExJID4gVUwgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGls
bFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRE
T01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBMSSA+IE9M
ID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gTEkg
PiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3
RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBUaGlzIHRlc3RzIGluZGVudGluZyAidGhyZWUiIGFuZCAi
Zm91ciIuIFlvdSBzaG91bGQgc2VlIDEgdGhyb3VnaCA0IGluIG9yZGVyIGJlZm9yZSBudW1iZXJz
ICJ0d28iIHRocm91Z2ggImZpdmUiLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy01LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTIsNyArMiw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE8KIEVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRp
dGluZ05vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gTEkgPiBVTCA+IE9M
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IExJID4gVUwg
PiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gMCBvZiAjdGV4dCA+IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDUgb2YgI3RleHQgPiBMSSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVj
dGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIFRoaXMgdGVzdHMg
aW5kZW50aW5nICJ0aHJlZSIuIFlvdSBzaG91bGQgc2VlIDEsIDIsIGFuZCB0aGVuIGEgYnVsbGV0
IGJlZm9yZSBudW1iZXJzICJ0d28iLCAidGhyZWUiLCBhbmQgImZvdXIiIHJlc3BlY3RpdmVseS4K
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJh
Z3JhcGgtaW4tYmxvY2txdW90ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1
b3RlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyBpbmRlbnRpbmcgdGhl
IHNlY29uZCBwYXJhZ3JhcGggaW4gYSBibG9ja3F1b3RlLiBCeSBpbmRlbnRpbmcgIndvcmxkIiwg
d2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYXJvdW5kIHdvcmxkIGluc2lkZSB0
aGUgInRlc3QiIGJsb2NrcXVvdGUuCisKK2hlbGxvCit3b3JsZAorPGJsb2NrcXVvdGUgaWQ9InRl
c3QiPiBoZWxsbzxicj48YmxvY2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3Rl
IiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsi
PiB3b3JsZCA8L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
c2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWluLWJs
b2NrcXVvdGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorPHA+VGhpcyB0ZXN0
cyBpbmRlbnRpbmcgdGhlIHNlY29uZCBwYXJhZ3JhcGggaW4gYSBibG9ja3F1b3RlLiAgQnkgaW5k
ZW50aW5nICJ3b3JsZCIsIHdlIHNob3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGFyb3Vu
ZCB3b3JsZCBpbnNpZGUgdGhlICJ0ZXN0IiBibG9ja3F1b3RlLjwvcD4KKzxkaXYgaWQ9ImRpdiIg
Y29udGVudGVkaXRhYmxlPSJ0cnVlIj4KKzxibG9ja3F1b3RlIGlkPSJ0ZXN0Ij4KK2hlbGxvPGJy
Pgord29ybGQKKzwvYmxvY2txdW90ZT4KKzwvZGl2PgorPGRpdiBpZD0iYyI+PC9kaXY+Cis8c2Ny
aXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdCIpOwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Cit2YXIgciA9IGRvY3Vt
ZW50LmNyZWF0ZVJhbmdlKCk7CityLnNldFN0YXJ0KGUsMik7CityLnNldEVuZChlLDMpOworcy5h
ZGRSYW5nZShyKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJJbmRlbnQiLCBmYWxzZSwgbnVsbCk7
Cit0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RpdicpLmlubmVySFRNTCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpLmFwcGVuZENo
aWxkKCB0ZXh0ICk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80NjQxODgwLTIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0
aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ1NTY0KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0y
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAgRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZwogRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBCTE9DS1FVT1RFID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMzQgb2YgI3RleHQgPiBCTE9DS1FVT1RFID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4gQkxPQ0tR
VU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDM1IG9mICN0ZXh0ID4gQkxP
Q0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0
aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0Rp
ZENoYW5nZU5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCkBAIC0yNCw1
ICsyNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0NngxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMjQ2OiAiVGhpcyBwYXJhZ3JhcGggc2hvdWxkIG5vdCBiZSBpbmRlbnRlZC4i
CiAgICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjQ2LDE0KSBzaXplIDB4MAotc2VsZWN0aW9u
IHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtCTE9DS1FV
T1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9
IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDM0IG9mIGNoaWxkIDAgeyN0
ZXh0fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEg
e0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3RhcnQ6IHBv
c2l0aW9uIDEgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNo
aWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1l
bnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMzUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2Yg
Y2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ5MTY1NDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ5MTY1NDEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9l
ZGl0aW5nL2V4ZWNDb21tYW5kLzQ5MTY1NDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xMCwxMSArMTAsMTMgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDMyMDogIidmb28nIGFuZCAnYmFyJyBiZWZvcmUgYW5k
IGFmdGVyIHRoZSBpbmRlbnQgb3BlcmF0aW9uLiIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDUyKSBzaXplIDc4NHgzNgogICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQg
KDQwLDApIHNpemUgNzQ0eDM2Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMjF4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIxOiAiZm9v
IgorICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMXgxOAorICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjF4MTgKKyAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjE6ICJmb28iCiAgICAgICAgICAgUmVuZGVy
QlIge0JSfSBhdCAoMjEsMTQpIHNpemUgMHgwCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDE4KSBzaXplIDIweDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lk
dGggMjA6ICJiYXIiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDIweDE4CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTgpIHNpemUgMjB4
MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDIwOiAiYmFyIgogICAg
ICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwzNikgc2l6ZSA3ODR4MAotc2VsZWN0
aW9uIHN0YXJ0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtCTE9D
S1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hU
TUx9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDIgb2YgY2hpbGQgMiB7
I3RleHR9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQg
MSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDog
cG9zaXRpb24gMSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7U1BBTn0gb2YgY2hpbGQg
MCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGls
ZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAyIG9mIGNo
aWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAyIHtTUEFOfSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBv
ZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRv
Y3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFu
ZC81MTM4NDQxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81MTM4NDQxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
NDU1NjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81
MTM4NDQxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAsMTAgKzEwLDEyIEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3
aWR0aCA3NzY6ICJGb3JtYXRCbG9jayB0byBpbXBsZW1lbnQgYSBcIlF1b3RlIFRleHRcIiBmZWF0
dXJlLCBhbmQgc3R5bGUgcnVsZXMgZm9yIGJsb2NrcXVvdGVzIGFwcGVhcmVkIG9uIHRoZSBibG9j
a3F1b3RlcyB0aGF0IHdlIHVzZSIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikgd2lkdGgg
MTQ5OiAidG8gaW1wbGVtZW50IGluZGVudGluZy4iCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw3MCkgc2l6ZSA3ODR4NjIKLSAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0
ICg0MCwwKSBzaXplIDc0NHgxOAotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDIzMHgxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjMwOiAi
VGhpcyBzaG91bGQgYmUgaW5kZW50ZWQsIG5vdCBxdW90ZWQuIgorICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICAgIFJlbmRlckJsb2NrIHtCTE9D
S1FVT1RFfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTgKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDIzMHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAyMzA6ICJUaGlzIHNob3VsZCBiZSBpbmRlbnRlZCwgbm90IHF1b3RlZC4iCisgICAg
ICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTgpIHNpemUgNzg0eDAKICAgICAg
ICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg4LDI2KSBzaXplIDc2OHgzNiBbYm9yZGVy
OiAoMXB4IGRhc2hlZCAjQUFBQUFBKV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDksOSkgc2l6ZSAxNzV4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg5LDkpIHdpZHRoIDE3
NTogIlRoaXMgdGV4dCBzaG91bGQgYmUgUXVvdGVkLiIKLWNhcmV0OiBwb3NpdGlvbiAwIG9mIGNo
aWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAzIHtESVZ9IG9m
IGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitjYXJldDogcG9z
aXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hp
bGQgMSB7RElWfSBvZiBjaGlsZCAzIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAg
e0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9leGVjQ29tbWFuZC81NDgxNTIzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81NDgxNTIzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9l
eGVjQ29tbWFuZC81NDgxNTIzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyAr
MjcsNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgICAgICAgIFJl
bmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NSwyNikgc2l6ZSAzNHgyMiBbYm9yZGVyOiAoMXB4IGlu
c2V0ICM4MDgwODApXSBbcj0xIGM9MSBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDMweDE4CiAgICAgICAgICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMzA6ICJGb3VyIgotICAgICAgICAgICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDAsNTIpIHNpemUgNzA0eDAKLSAgICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsNTIpIHNpemUgNzg0eDAKIHNlbGVjdGlvbiBzdGFydDogcG9z
aXRpb24gMCBvZiBjaGlsZCAwIHtUQUJMRX0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hp
bGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBj
aGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxIG9m
IGNoaWxkIDAge1RBQkxFfSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAxIHtCTE9D
S1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hU
TUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDIgb2YgY2hpbGQgMCB7
VEFCTEV9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDEge0JMT0NLUVVPVEV9IG9m
IGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9j
dW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2luZGVudC1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWxlY3Rpb24tZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0
aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0zLDcgKzMsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0
aW5nCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgog
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+
IEJMT0NLUVVPVEUgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0
ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdl
OnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IFNQQU4gPiBCTE9DS1FVT1RFID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IFNQQU4gPiBCTE9DS1FVT1RFID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgog
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKQEAgLTE3LDQyICsxNyw0MyBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgwLDE4KSBzaXplIDc4NHgxOAogICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNp
emUgMHgxOAogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0eDE5NAot
ICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDApIHNpemUgNzQ0eDU0Cisg
ICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTk0CiAg
ICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3NDR4MzYKLSAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQyeDE4Ci0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQyOiAiTG9yZW0iCisgICAgICAgICAgICBS
ZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDJ4MTgKKyAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDJ4MTgKKyAgICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA0MjogIkxvcmVtIgogICAgICAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoNDIsMTQpIHNpemUgMHgwCiAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMTgpIHNpemUgODN4MTgKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRo
IDgzOiAibW9yZSBMb3JlbSEiCi0gICAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0
ICg0MCwzNikgc2l6ZSA3MDR4MTgKLSAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDM4eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM4
OiAiaXBzdW0iCi0gICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDU0KSBzaXpl
IDc4NHgwCi0gICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsNzApIHNpemUg
NzQ0eDU0Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoMCwwKSBzaXplIDc0NHg1NAot
ICAgICAgICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoNDAsMCkgc2l6ZSA3MDR4NTQKKyAgICAg
ICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDM2KSBzaXplIDcwNHgxMjIKKyAg
ICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzA0eDE4Cisg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM4eDE4CisgICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzg6ICJpcHN1bSIKKyAgICAgICAg
ICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMzgsMTQpIHNpemUgMHgwCisgICAgICAgICAgICBSZW5k
ZXJCbG9jayB7VUx9IGF0ICgwLDM0KSBzaXplIDcwNHg1NAogICAgICAgICAgICAgICBSZW5kZXJM
aXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXplIDY2NHgxOAotICAgICAgICAgICAgICAgIFJlbmRl
ckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IHdoaXRlIGJ1bGxldAorICAgICAgICAg
ICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IGJ1bGxldAogICAg
ICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1eDE4CiAgICAg
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNTogIkZvbyIKICAgICAgICAg
ICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMTgpIHNpemUgNjY0eDE4Ci0gICAgICAg
ICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODogd2hpdGUgYnVs
bGV0CisgICAgICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gx
ODogYnVsbGV0CiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMjN4MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIzOiAi
QmFyIgogICAgICAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwzNikgc2l6ZSA2
NjR4MTgKLSAgICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3
eDE4OiB3aGl0ZSBidWxsZXQKKyAgICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgt
MTcsMCkgc2l6ZSA3eDE4OiBidWxsZXQKICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAyNXgxOAogICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMjU6ICJCYXoiCi0gICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAo
NDAsMTQwKSBzaXplIDc0NHg1NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBh
dCAoNDAsMCkgc2l6ZSA3MDR4MTgKLSAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDM3eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3
OiAiRG9sb3IiCi0gICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTgpIHNp
emUgNzQ0eDM2CisgICAgICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxMDQp
IHNpemUgNzA0eDE4CisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDM3eDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzc6ICJE
b2xvciIKKyAgICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxNTgpIHNpemUg
NzQ0eDM2CiAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNHgx
OAogICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNDogIlN1bSEiCiAgICAg
ICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgzNCwxNCkgc2l6ZSAweDAKLSAgICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAzOHgxOAotICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwxOCkgd2lkdGggMzg6ICJUaGluZyIKKyAgICAgICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAzOHgxOAorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMTgpIHNpemUgMzh4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwxOCkgd2lkdGggMzg6ICJUaGluZyIKICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykg
YXQgKDAsMTk0KSBzaXplIDc4NHgwCi1zZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hp
bGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDQge0RJVn0gb2Yg
Y2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBl
bmQ6ICAgcG9zaXRpb24gNSBvZiBjaGlsZCAzIHsjdGV4dH0gb2YgY2hpbGQgMyB7QkxPQ0tRVU9U
RX0gb2YgY2hpbGQgNCB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBv
ZiBkb2N1bWVudAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGls
ZCAwIHtTUEFOfSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCA0IHtESVZ9IG9mIGNo
aWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5k
OiAgIHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDYge1NQQU59IG9mIGNo
aWxkIDEge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDQge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2Yg
Y2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32367</attachid>
            <date>2009-07-07 01:51:51 -0700</date>
            <delta_ts>2009-07-08 00:55:39 -0700</delta_ts>
            <desc>Refactors indentRegion and fixes the bugs 26816 and 25317 (a minor change on the prototype of indentListItem)</desc>
            <filename>fix26816b</filename>
            <type>text/plain</type>
            <size>59188</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTU3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjIgQEAKKzIwMDktMDctMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmcgb2YgaW5kZW50UmVnaW9uIHRvIGZpeCBidWdzIDI2ODE2IGFuZCAyNTMxNworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MTYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzE3CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk5NSAocGFydGlhbGx5
KQorCisgICAgICAgIEZ1cnRoZXIgcmVmYWN0b3Jpbmcgb2YgaW5kZW50UmVnaW9uLiAgVGhpcyBw
YXRjaCBpbXBsZW1lbnRzIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlLAorICAgICAgICBhIG11Y2gg
c2ltcGxlciwgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBtb3ZlUGFyYWdyYXBoIGFuZCByZXBsYWNl
cyB0aGUgYWxsIHVzYWdlIGluc2lkZSBpbmRlbnRSZWdpb24uCisgICAgICAgIEJ5IGRvaW5nIHRo
aXMsIGluZGVudFJlZ2lvbiBiZWNhbWUgbXVjaCBtb3JlIHN0YWJsZSwgYW5kIHNvbHZlZCBhIG51
bWJlciBvZiBwcm9ibGVtcy4KKyAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0aGUgbmV3IGJlaGF2
aW9yIG9mIGluZGVudFJlZ2lvbgorCisgICAgICAgIDEuIFdlIHRyeSB0byBpbmRlbnQgYXMgbWFu
eSB3cmFwcGluZyBub2RlcyBhcyBwb3NzaWJsZS4KKyAgICAgICAgICAgZS5nLiB3aGVuIGluZGVu
dGluZyAiaGVsbG8iIGluIDxkaXY+aGVsbG88L2Rpdj4sIHRyeSBpbmRlbnQgdGhlIHdob2xlIGRp
diBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgc3R5bGUuCisgICAgICAgICAgIFRoaXMgYmVoYXZpcm9h
bCBjaGFuZ2UgaXMgdGhlIHByaW1hcmlseSBtb3RpdmF0aW9uIHRvIGltcGxlbWVudCBhcHBlbmRQ
YXJhZ3JhcGhJbnRvTm9kZS4KKyAgICAgICAgMi4gV2UgZG8gbm90IGRlbGV0ZSBhbnkgd3JhcHBp
bmcgZWxlbWVudHMKKyAgICAgICAgICAgV2l0aCBtb3ZlUGFyYWdyYXBoLCB3ZSB1c2VkIHRvIHJl
bW92ZSBhbGwgd3JhcHBpbmcgbm9kZXMsIGFuZCByZXBsYWNlZCB3aXRoIGEgYmxvY2txdW90ZS4K
KyAgICAgICAgICAgVGhpcyB3YXMgY2F1c2VpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzOTk1IGZvciBpZGVudGF0aW9uLgorICAgICAgICAgICBXaXRoIGFwcGVu
ZFBhcmFncmFwaEludG9Ob2RlLCB3ZSBjYW4gcHJlc2VydmUgYWxsIHdyYXBwaW5nIG5vZGVzLgor
ICAgICAgICAzLiBXZSBvbmx5IHNwbGl0IHRoZSB0cmVlIHVudGlsIHRoZSBjbG9zZXN0IGJsb2Nr
IG5vZGUgaW5zdGVhZCBvZiB1bnRpbCB0aGUgcm9vdCBlZGl0YWJsZSBub2RlLgorICAgICAgICAg
ICBUaGlzIGJlaGF2aW9yYWwgY2hhbmdlIGlzIHRvIGZpeCAyNTMxNywgYW5kIGFsc28gZml4ZXMg
dGhlIG51bWJlciBvZiBvdGhlciBwcm9ibGVtcy4KKyAgICAgICAgNC4gV2hlbiBtdWx0aXBsZSBw
YXJhZ3JhcGhzIGFyZSBpbmRlbnRlZCwgd2UgdHJ5IHRvIGluZGVudCB0aGUgY2xvc2VzdCBjb21t
b24gYW5jZXN0b3Igd2l0aGluIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgICAgSW5zdGVhZCBvZiBp
bmRlbnRpbmcgZWFjaCBwYXJhZ3JhcGgsIGFuZCB0cnkgdG8gY29tYmluZSBhdCB0aGUgZW5kICh3
aGljaCByZXN1bHRzIGluIG1pc3NpbmcgYXR0cmlidXRlcyksCisgICAgICAgICAgIHdlIHRyeSB0
byBmaW5kIHRoZSBjb21tb24gYW5jZXN0b3Igb2YgYWxsIHBhcmFncmFwaHMgdGhhdCBhcmUgYmVp
bmcgaW5kZW50ZWQuCisgICAgICAgICAgIElmIHRoZSBhbmNlc3RvciBpcyB3aXRoaW4gdGhlIHNl
bGVjdGlvbiwgd2UgaW5kZW50IGJsb2NrcXVvdGUgdGhlIGFuY2VzdG9yIG9uY2UuCisKKyAgICAg
ICAgTm90ZSB0aGF0IG5ldyBiZWhhdmlvciBpcyBtdWNoIG1vcmUgY29uc2lzdGVudCB3aXRoIHRo
YXQgb2YgSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEZpcmVmb3guCisgICAgICAgIFRvIGRlbW9uc3Ry
YXRlIHRoaXMsIHRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIGFkZGVkLgorCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QuaHRtbAorICAgICAg
ICAgICAgICAgZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLmh0
bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYu
aHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBh
cmFncmFwaC1pbi1ibG9ja3F1b3RlLmh0bWwKKworICAgICAgICAqIGRvbS9SYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Y29tcGFyZVBvaW50KTogYmVjYW1lIGNvbnN0CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZTo6Y29tcGFyZU5vZGUpOiBiZWNhbWUgY29uc3QKKyAgICAgICAg
KiBkb20vUmFuZ2UuaDogdXBkYXRlZCBwcm90b3R5cGUKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmNwcDogCisgICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6aW5kZW50
TGlzdEl0ZW0pOiB0cnlJbmRlbnRpbmdBc0xpc3RJdGVtIGlzIHJlcGxhY2VkIGJ5IHRoaXMgZnVu
Y3Rpb24KKyAgICAgICAgKFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRv
QmxvY2txdW90ZSk6IHVwZGF0ZSBkdWUgdG8gYXBwZW5kUGFyYWdyYXBoSW50b05vZGUKKyAgICAg
ICAgKFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5kOjphcHBlbmRQYXJhZ3JhcGhJbnRvTm9k
ZSk6IGFwcGVuZHMgYSBwcmFncmFwaCwgYW5kIHJlbW92ZXMgdW5uZWNlc3NhcnkgYnIgZnJvbSB0
aGUgc291cmNlCisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6cmVtb3Zl
VW5uZWNlc3NhcnlMaW5lQnJlYWtBdCk6IHJlbW92ZXMgdW5uZWNlc3NhcnkgYnIgYXQgdGhlIHNw
ZWNpZmllZCBwb3NpdGlvbgorICAgICAgICAoV2ViQ29yZTo6SW5kZW50T3V0ZGVudENvbW1hbmQ6
OmluZGVudFJlZ2lvbik6IHJlZmFjdG9yaW5nCisgICAgICAgICogZWRpdGluZy9JbmRlbnRPdXRk
ZW50Q29tbWFuZC5oOiB1cGRhdGVkIHByb3RvdHlwZQorICAgICAgICAqIGVkaXRpbmcvaHRtbGVk
aXRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dW5zcGxpdHRhYmxlRWxlbWVudEZvclBvc2l0
aW9uKTogZmluZCB0aGUgdW5zcGxpdHRhYmxlIGVsZW1lbnQgKHJvb3QgZWRpdGFibGUgJiB0YWJs
ZSBjZWxsKQorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmFuZ2UpOiBjcmVhdGUgYSByYW5nZSBv
YmplY3QgZnJvbSB0d28gdmlzaWJsZSBwb3NpdGlvbnMKKyAgICAgICAgKFdlYkNvcmU6OmV4bnRl
bmRSYW5nZVRvV3JhcHBpbmdOb2Rlcyk6IGV4dGVuZCB0aGUgc3BlY2lmaWVkIHJhbmdlIHRvIGlu
Y2x1ZGUgd3JhcHBpbmcgbm9kZXMKKyAgICAgICAgKFdlYkNvcmU6OmNhbk1lcmdlTGlzdHMpOiB0
eXBvCisgICAgICAgIChXZWJDb3JlOjppbmRleEZvclZpc2libGVQb3NpdGlvbik6IHR5cG8KKyAg
ICAgICAgKFdlYkNvcmU6OmlzVmlzaWJseUFkamFjZW50KTogdHlwbworICAgICAgICAoV2ViQ29y
ZTo6aXNOb2RlVmlzaWJseUNvbnRhaW5lZFdpdGhpbik6IGRldGVybWluZXMgd2hldGhlciBhIG5v
ZGUgaXMgaW5zaWRlIGEgcmFuZ2Ugb3Igc3BhbnMgdGhlIHJhbmdlCisgICAgICAgIChXZWJDb3Jl
OjpnZXRWaXNpYmxlUmFuZ2VPZk5vZGUpOiBvYnRhaW5zIHRoZSB2aXNpYmxlIHN0YXJ0aW5nIGFu
ZCBlbmRpbmcgcG9zaXRpb25zIGZvciBhIHJhbmdlCisgICAgICAgICogZWRpdGluZy9odG1sZWRp
dGluZy5oOiB1cGRhdGVkIHByb3RvdHlwZQorCiAyMDA5LTA3LTA2ICBOYXRlIENoYXBpbiAgPGph
cGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4LgpJbmRl
eDogV2ViQ29yZS9kb20vUmFuZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1Jhbmdl
LmNwcAkocmV2aXNpb24gNDU1NjQpCisrKyBXZWJDb3JlL2RvbS9SYW5nZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5NCw3ICsyOTQsNyBAQCBib29sIFJhbmdlOjppc1BvaW50SW5SYW5nZShOb2Rl
KiByZWZOb2RlCiAgICAgICAgICYmIGNvbXBhcmVCb3VuZGFyeVBvaW50cyhyZWZOb2RlLCBvZmZz
ZXQsIG1fZW5kLmNvbnRhaW5lcigpLCBtX2VuZC5vZmZzZXQoKSkgPD0gMDsKIH0KIAotc2hvcnQg
UmFuZ2U6OmNvbXBhcmVQb2ludChOb2RlKiByZWZOb2RlLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25D
b2RlJiBlYykKK3Nob3J0IFJhbmdlOjpjb21wYXJlUG9pbnQoTm9kZSogcmVmTm9kZSwgaW50IG9m
ZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgLy8gaHR0cDovL2RldmVsb3Bl
ci5tb3ppbGxhLm9yZy9lbi9kb2NzL0RPTTpyYW5nZS5jb21wYXJlUG9pbnQKICAgICAvLyBUaGlz
IG1ldGhvZCByZXR1cm5zIC0xLCAwIG9yIDEgZGVwZW5kaW5nIG9uIGlmIHRoZSBwb2ludCBkZXNj
cmliZWQgYnkgdGhlIApAQCAtMzMyLDcgKzMzMiw3IEBAIHNob3J0IFJhbmdlOjpjb21wYXJlUG9p
bnQoTm9kZSogcmVmTm9kZSwKICAgICByZXR1cm4gMDsKIH0KIAotUmFuZ2U6OkNvbXBhcmVSZXN1
bHRzIFJhbmdlOjpjb21wYXJlTm9kZShOb2RlKiByZWZOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykK
K1JhbmdlOjpDb21wYXJlUmVzdWx0cyBSYW5nZTo6Y29tcGFyZU5vZGUoTm9kZSogcmVmTm9kZSwg
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgLy8gaHR0cDovL2RldmVsb3Blci5tb3pp
bGxhLm9yZy9lbi9kb2NzL0RPTTpyYW5nZS5jb21wYXJlTm9kZQogICAgIC8vIFRoaXMgbWV0aG9k
IHJldHVybnMgMCwgMSwgMiwgb3IgMyBiYXNlZCBvbiBpZiB0aGUgbm9kZSBpcyBiZWZvcmUsIGFm
dGVyLApJbmRleDogV2ViQ29yZS9kb20vUmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9SYW5nZS5oCShyZXZpc2lvbiA0NTU2NCkKKysrIFdlYkNvcmUvZG9tL1JhbmdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYwLDkgKzYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5kKFBhc3NS
ZWZQdHI8Tm9kZT4gY29udGFpbmVyLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBjb2xsYXBzZShib29sIHRvU3RhcnQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIGlz
UG9pbnRJblJhbmdlKE5vZGUqIHJlZk5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVj
KTsKLSAgICBzaG9ydCBjb21wYXJlUG9pbnQoTm9kZSogcmVmTm9kZSwgaW50IG9mZnNldCwgRXhj
ZXB0aW9uQ29kZSYgZWMpOworICAgIHNob3J0IGNvbXBhcmVQb2ludChOb2RlKiByZWZOb2RlLCBp
bnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3Q7CiAgICAgZW51bSBDb21wYXJlUmVz
dWx0cyB7IE5PREVfQkVGT1JFLCBOT0RFX0FGVEVSLCBOT0RFX0JFRk9SRV9BTkRfQUZURVIsIE5P
REVfSU5TSURFIH07Ci0gICAgQ29tcGFyZVJlc3VsdHMgY29tcGFyZU5vZGUoTm9kZSogcmVmTm9k
ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIENvbXBhcmVSZXN1bHRzIGNvbXBhcmVOb2RlKE5vZGUq
IHJlZk5vZGUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBlbnVtIENvbXBhcmVIb3cgeyBT
VEFSVF9UT19TVEFSVCwgU1RBUlRfVE9fRU5ELCBFTkRfVE9fRU5ELCBFTkRfVE9fU1RBUlQgfTsK
ICAgICBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoQ29tcGFyZUhvdywgY29uc3QgUmFuZ2Uq
IHNvdXJjZVJhbmdlLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgc3RhdGljIHNob3J0IGNv
bXBhcmVCb3VuZGFyeVBvaW50cyhOb2RlKiBjb250YWluZXJBLCBpbnQgb2Zmc2V0QSwgTm9kZSog
Y29udGFpbmVyQiwgaW50IG9mZnNldEIpOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuY3BwCShyZXZpc2lvbiA0NTU2NCkKKysrIFdlYkNvcmUvZWRpdGluZy9Db21w
b3NpdGVFZGl0Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0Nyw2ICs3NDcsOCBAQCB2
b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBoCiAgICAgbW92ZVBhcmFncmFw
aHMoc3RhcnRPZlBhcmFncmFwaFRvTW92ZSwgZW5kT2ZQYXJhZ3JhcGhUb01vdmUsIGRlc3RpbmF0
aW9uLCBwcmVzZXJ2ZVNlbGVjdGlvbiwgcHJlc2VydmVTdHlsZSk7CiB9CiAKKy8vIEZJWE1FOiBt
b3ZlUGFyYWdyYXBoIGlzIG92ZXJseSBjb21wbGljYXRlZC4gIFdlIG5lZWQgdG8gY2xlYW4gdXAg
bW92ZVBhcmFncmFwaCBzbyB0aGF0IGl0IHVzZXMgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUKKy8v
IG9yIG1ha2UgbW9yZSBzcGVjaWFsaXplZCBmdW5jdGlvbnMgYW5kIHJlbW92ZSBtb3ZlUGFyYWdy
YXBoCiB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3JhcGhUb01vdmUsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgZW5kT2ZQYXJhZ3JhcGhUb01vdmUsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgZGVzdGluYXRp
b24sIGJvb2wgcHJlc2VydmVTZWxlY3Rpb24sIGJvb2wgcHJlc2VydmVTdHlsZSkKIHsKICAgICBp
ZiAoc3RhcnRPZlBhcmFncmFwaFRvTW92ZSA9PSBkZXN0aW5hdGlvbikKSW5kZXg6IFdlYkNvcmUv
ZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNwcAkocmV2aXNpb24gNDU1NjQpCisrKyBXZWJD
b3JlL2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oIgogI2luY2x1
ZGUgIkluc2VydExpc3RDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJE
b2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiU3BsaXRFbGVtZW50Q29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCkBAIC03Niw5
MSArNzcsMTAyIEBAIEluZGVudE91dGRlbnRDb21tYW5kOjpJbmRlbnRPdXRkZW50Q29tbWEKIHsK
IH0KIAotLy8gVGhpcyBmdW5jdGlvbiBpcyBhIHdvcmthcm91bmQgZm9yIG1vdmVQYXJhZ3JhcGgn
cyB0ZW5kZW5jeSB0byBzdHJpcCBibG9ja3F1b3Rlcy4gSXQgdXBkYXRlcyBsYXN0QmxvY2txdW90
ZSB0byBwb2ludCB0byB0aGUKLS8vIGNvcnJlY3QgbGV2ZWwgZm9yIHRoZSBjdXJyZW50IHBhcmFn
cmFwaCwgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGEgcGxhY2Vob2xkZXIgYnIgd2hlcmUgdGhl
IGluc2VydGlvbiBzaG91bGQgYmUgcGVyZm9ybWVkLgotUGFzc1JlZlB0cjxFbGVtZW50PiBJbmRl
bnRPdXRkZW50Q29tbWFuZDo6cHJlcGFyZUJsb2NrcXVvdGVMZXZlbEZvckluc2VydGlvbihjb25z
dCBWaXNpYmxlUG9zaXRpb24mIGN1cnJlbnRQYXJhZ3JhcGgsIFJlZlB0cjxFbGVtZW50PiYgbGFz
dEJsb2NrcXVvdGUpCi17Ci0gICAgaW50IGN1cnJlbnRCbG9ja3F1b3RlTGV2ZWwgPSAwOwotICAg
IGludCBsYXN0QmxvY2txdW90ZUxldmVsID0gMDsKLSAgICBOb2RlKiBub2RlID0gY3VycmVudFBh
cmFncmFwaC5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKTsKLSAgICB3aGlsZSAoKG5vZGUgPSBlbmNs
b3NpbmdOb2RlT2ZUeXBlKFBvc2l0aW9uKG5vZGUtPnBhcmVudE5vZGUoKSwgMCksICZpc0luZGVu
dEJsb2NrcXVvdGUpKSkKLSAgICAgICAgY3VycmVudEJsb2NrcXVvdGVMZXZlbCsrOwotICAgIG5v
ZGUgPSBsYXN0QmxvY2txdW90ZS5nZXQoKTsKLSAgICB3aGlsZSAoKG5vZGUgPSBlbmNsb3NpbmdO
b2RlT2ZUeXBlKFBvc2l0aW9uKG5vZGUtPnBhcmVudE5vZGUoKSwgMCksICZpc0luZGVudEJsb2Nr
cXVvdGUpKSkKLSAgICAgICAgbGFzdEJsb2NrcXVvdGVMZXZlbCsrOwotICAgIHdoaWxlIChjdXJy
ZW50QmxvY2txdW90ZUxldmVsID4gbGFzdEJsb2NrcXVvdGVMZXZlbCkgewotICAgICAgICBSZWZQ
dHI8RWxlbWVudD4gbmV3QmxvY2txdW90ZSA9IGNyZWF0ZUluZGVudEJsb2NrcXVvdGVFbGVtZW50
KGRvY3VtZW50KCkpOwotICAgICAgICBhcHBlbmROb2RlKG5ld0Jsb2NrcXVvdGUsIGxhc3RCbG9j
a3F1b3RlKTsKLSAgICAgICAgbGFzdEJsb2NrcXVvdGUgPSBuZXdCbG9ja3F1b3RlOwotICAgICAg
ICBsYXN0QmxvY2txdW90ZUxldmVsKys7Ci0gICAgfQotICAgIHdoaWxlIChjdXJyZW50QmxvY2tx
dW90ZUxldmVsIDwgbGFzdEJsb2NrcXVvdGVMZXZlbCkgewotICAgICAgICBsYXN0QmxvY2txdW90
ZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihlbmNsb3NpbmdOb2RlT2ZUeXBlKFBvc2l0aW9uKGxh
c3RCbG9ja3F1b3RlLT5wYXJlbnROb2RlKCksIDApLCBpc0luZGVudEJsb2NrcXVvdGUpKTsKLSAg
ICAgICAgbGFzdEJsb2NrcXVvdGVMZXZlbC0tOwotICAgIH0KLSAgICBSZWZQdHI8RWxlbWVudD4g
cGxhY2Vob2xkZXIgPSBjcmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSk7Ci0gICAgYXBwZW5k
Tm9kZShwbGFjZWhvbGRlciwgbGFzdEJsb2NrcXVvdGUpOwotICAgIC8vIEFkZCBhbm90aGVyIGJy
IGJlZm9yZSB0aGUgcGxhY2Vob2xkZXIgaWYgaXQgY29sbGFwc2VkLgotICAgIFZpc2libGVQb3Np
dGlvbiB2aXNpYmxlUG9zKFBvc2l0aW9uKHBsYWNlaG9sZGVyLmdldCgpLCAwKSk7Ci0gICAgaWYg
KCFpc1N0YXJ0T2ZQYXJhZ3JhcGgodmlzaWJsZVBvcykpCi0gICAgICAgIGluc2VydE5vZGVCZWZv
cmUoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLCBwbGFjZWhvbGRlcik7Ci0gICAgcmV0
dXJuIHBsYWNlaG9sZGVyLnJlbGVhc2UoKTsKLX0KLQotYm9vbCBJbmRlbnRPdXRkZW50Q29tbWFu
ZDo6dHJ5SW5kZW50aW5nQXNMaXN0SXRlbShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZE9mQ3Vy
cmVudFBhcmFncmFwaCkKLXsKLSAgICAvLyBJZiBvdXIgc2VsZWN0aW9uIGlzIG5vdCBpbnNpZGUg
YSBsaXN0LCBiYWlsIG91dC4KLSAgICBOb2RlKiBsYXN0Tm9kZUluU2VsZWN0ZWRQYXJhZ3JhcGgg
PSBlbmRPZkN1cnJlbnRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCk7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IGxpc3ROb2RlID0gZW5jbG9zaW5nTGlzdChsYXN0Tm9kZUluU2VsZWN0ZWRQ
YXJhZ3JhcGgpOwotICAgIGlmICghbGlzdE5vZGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIEhUTUxFbGVtZW50KiBzZWxlY3RlZExpc3RJdGVtID0gZW5jbG9zaW5nTGlzdENoaWxkKGxh
c3ROb2RlSW5TZWxlY3RlZFBhcmFncmFwaCk7Cit2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpp
bmRlbnRMaXN0SXRlbShIVE1MRWxlbWVudCogc2VsZWN0ZWRMaXN0SXRlbSkKK3sKKyAgICBSZWZQ
dHI8RWxlbWVudD4gbGlzdE5vZGUgPSBlbmNsb3NpbmdMaXN0KHNlbGVjdGVkTGlzdEl0ZW0pOwor
ICAgIEFTU0VSVChsaXN0Tm9kZSk7CiAKICAgICAvLyBGSVhNRTogcHJldmlvdXNFbGVtZW50U2li
bGluZyBkb2VzIG5vdCBpZ25vcmUgbm9uLXJlbmRlcmVkIGNvbnRlbnQgbGlrZSA8c3Bhbj48L3Nw
YW4+LiAgU2hvdWxkIHdlPwogICAgIEVsZW1lbnQqIHByZXZpb3VzTGlzdCA9IHNlbGVjdGVkTGlz
dEl0ZW0tPnByZXZpb3VzRWxlbWVudFNpYmxpbmcoKTsKICAgICBFbGVtZW50KiBuZXh0TGlzdCA9
IHNlbGVjdGVkTGlzdEl0ZW0tPm5leHRFbGVtZW50U2libGluZygpOwogCiAgICAgUmVmUHRyPEVs
ZW1lbnQ+IG5ld0xpc3QgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGxpc3ROb2RlLT50YWdR
TmFtZSgpLCBmYWxzZSk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0xpc3RJdGVtID0gc2VsZWN0
ZWRMaXN0SXRlbS0+Y2xvbmVFbGVtZW50V2l0aG91dENoaWxkcmVuKCk7Ci0gICAgUmVmUHRyPEVs
ZW1lbnQ+IHBsYWNlaG9sZGVyID0gY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpOwogICAg
IGluc2VydE5vZGVCZWZvcmUobmV3TGlzdCwgc2VsZWN0ZWRMaXN0SXRlbSk7Ci0gICAgYXBwZW5k
Tm9kZShuZXdMaXN0SXRlbSwgbmV3TGlzdCk7Ci0gICAgYXBwZW5kTm9kZShwbGFjZWhvbGRlciwg
bmV3TGlzdEl0ZW0pOwogCi0gICAgbW92ZVBhcmFncmFwaChzdGFydE9mUGFyYWdyYXBoKGVuZE9m
Q3VycmVudFBhcmFncmFwaCksIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgVmlzaWJsZVBvc2l0aW9u
KFBvc2l0aW9uKHBsYWNlaG9sZGVyLCAwKSksIHRydWUpOworICAgIFZpc2libGVQb3NpdGlvbiBz
dGFydE9mQ3VycmVudFBhcmFncmFwaDsKKyAgICBWaXNpYmxlUG9zaXRpb24gZW5kT2ZDdXJyZW50
UGFyYWdyYXBoOworICAgIGdldFZpc2libGVSYW5nZU9mTm9kZShzZWxlY3RlZExpc3RJdGVtLCBz
dGFydE9mQ3VycmVudFBhcmFncmFwaCwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoKTsKKyAgICBhcHBl
bmRQYXJhZ3JhcGhJbnRvTm9kZShuZXdMaXN0LmdldCgpLCBzdGFydE9mQ3VycmVudFBhcmFncmFw
aCwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoKTsKIAogICAgIGlmIChjYW5NZXJnZUxpc3RzKHByZXZp
b3VzTGlzdCwgbmV3TGlzdC5nZXQoKSkpCiAgICAgICAgIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMo
cHJldmlvdXNMaXN0LCBuZXdMaXN0KTsKICAgICBpZiAoY2FuTWVyZ2VMaXN0cyhuZXdMaXN0Lmdl
dCgpLCBuZXh0TGlzdCkpCiAgICAgICAgIG1lcmdlSWRlbnRpY2FsRWxlbWVudHMobmV3TGlzdCwg
bmV4dExpc3QpOwotCi0gICAgcmV0dXJuIHRydWU7CiB9Ci0gICAgCi12b2lkIEluZGVudE91dGRl
bnRDb21tYW5kOjppbmRlbnRJbnRvQmxvY2txdW90ZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVu
ZE9mQ3VycmVudFBhcmFncmFwaCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZk5leHRQYXJh
Z3JhcGgsIFJlZlB0cjxFbGVtZW50PiYgdGFyZ2V0QmxvY2txdW90ZSkKKwordm9pZCBJbmRlbnRP
dXRkZW50Q29tbWFuZDo6aW5kZW50SW50b0Jsb2NrcXVvdGUoY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBzdGFydE9mQ3VycmVudFBhcmFncmFwaCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZkN1
cnJlbnRQYXJhZ3JhcGgsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgZW5kT2ZOZXh0UGFyYWdyYXBo
LCBSZWZQdHI8SFRNTEVsZW1lbnQ+JiB0YXJnZXRCbG9ja3F1b3RlLCBOb2RlKiBub2RlVG9TcGxp
dFRvKQogewogICAgIE5vZGUqIGVuY2xvc2luZ0NlbGwgPSAwOwogCiAgICAgaWYgKCF0YXJnZXRC
bG9ja3F1b3RlKSB7Ci0gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBibG9ja3F1b3RlIGFuZCBpbnNl
cnQgaXQgYXMgYSBjaGlsZCBvZiB0aGUgcm9vdCBlZGl0YWJsZSBlbGVtZW50LiBXZSBhY2NvbXBs
aXNoCisgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBibG9ja3F1b3RlIGFuZCBpbnNlcnQgaXQgYXMg
YSBjaGlsZCBvZiB0aGUgZW5jbG9zaW5nIGJsb2NrIGVsZW1lbnQuIFdlIGFjY29tcGxpc2gKICAg
ICAgICAgLy8gdGhpcyBieSBzcGxpdHRpbmcgYWxsIHBhcmVudHMgb2YgdGhlIGN1cnJlbnQgcGFy
YWdyYXBoIHVwIHRvIHRoYXQgcG9pbnQuCiAgICAgICAgIHRhcmdldEJsb2NrcXVvdGUgPSBjcmVh
dGVJbmRlbnRCbG9ja3F1b3RlRWxlbWVudChkb2N1bWVudCgpKTsKLSAgICAgICAgUG9zaXRpb24g
c3RhcnQgPSBzdGFydE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCkuZGVlcEVxdWl2
YWxlbnQoKTsKLSAgICAgICAgZW5jbG9zaW5nQ2VsbCA9IGVuY2xvc2luZ05vZGVPZlR5cGUoc3Rh
cnQsICZpc1RhYmxlQ2VsbCk7Ci0gICAgICAgIE5vZGUqIG5vZGVUb1NwbGl0VG8gPSBlbmNsb3Np
bmdDZWxsID8gZW5jbG9zaW5nQ2VsbCA6IGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKHN0YXJ0KTsK
LSAgICAgICAgUmVmUHRyPE5vZGU+IHN0YXJ0T2ZOZXdCbG9jayA9IHNwbGl0VHJlZVRvTm9kZShz
dGFydC5ub2RlKCksIG5vZGVUb1NwbGl0VG8pOworICAgICAgICBpZiAoaXNUYWJsZUNlbGwobm9k
ZVRvU3BsaXRUbykpCisgICAgICAgICAgICBlbmNsb3NpbmdDZWxsID0gbm9kZVRvU3BsaXRUbzsK
KyAgICAgICAgUmVmUHRyPE5vZGU+IHN0YXJ0T2ZOZXdCbG9jayA9IHNwbGl0VHJlZVRvTm9kZShz
dGFydE9mQ3VycmVudFBhcmFncmFwaC5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKSwgbm9kZVRvU3Bs
aXRUbyk7CiAgICAgICAgIGluc2VydE5vZGVCZWZvcmUodGFyZ2V0QmxvY2txdW90ZSwgc3RhcnRP
Zk5ld0Jsb2NrKTsKICAgICB9CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gaW5zZXJ0aW9uUG9pbnQg
PSBwcmVwYXJlQmxvY2txdW90ZUxldmVsRm9ySW5zZXJ0aW9uKGVuZE9mQ3VycmVudFBhcmFncmFw
aCwgdGFyZ2V0QmxvY2txdW90ZSk7CisgICAgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUodGFyZ2V0
QmxvY2txdW90ZS5nZXQoKSwgc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgsIGVuZE9mQ3VycmVudFBh
cmFncmFwaCk7CiAKICAgICAvLyBEb24ndCBwdXQgdGhlIG5leHQgcGFyYWdyYXBoIGluIHRoZSBi
bG9ja3F1b3RlIHdlIGp1c3QgY3JlYXRlZCBmb3IgdGhpcyBwYXJhZ3JhcGggdW5sZXNzIAogICAg
IC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBjZWxsLgogICAgIGlmIChlbmNs
b3NpbmdDZWxsICYmIGVuY2xvc2luZ0NlbGwgIT0gZW5jbG9zaW5nTm9kZU9mVHlwZShlbmRPZk5l
eHRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKSwgJmlzVGFibGVDZWxsKSkKICAgICAgICAgdGFy
Z2V0QmxvY2txdW90ZSA9IDA7Cit9CisKKy8vIEVuY2xvc2UgYWxsIG5vZGVzIGJldHdlZW4gc3Rh
cnQgYW5kIGVuZCBieSBuZXdQYXJlbnQsIHdoaWNoIGlzIGEgc2libGluZyBub2RlIG9mIG5vZGVz
IGJldHdlZW4gc3RhcnQgYW5kIGVuZAorLy8gRklYTUU6IG1vdmVQYXJhZ3JhcGggaXMgb3Zlcmx5
IGNvbXBsaWNhdGVkLiAgV2UgbmVlZCB0byBjbGVhbiB1cCBtb3ZlUGFyYWdyYXBoIHNvIHRoYXQg
aXQgdXNlcyBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZQorLy8gb3IgcHJlcGFyZSBtb3JlIHNwZWNp
YWxpemVkIGZ1bmN0aW9ucyBhbmQgZGVsZXRlIG1vdmVQYXJhZ3JhcGgKK3ZvaWQgSW5kZW50T3V0
ZGVudENvbW1hbmQ6OmFwcGVuZFBhcmFncmFwaEludG9Ob2RlKE5vZGUqIG5ld1BhcmVudCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmQpCit7
CisgICAgQVNTRVJUKG5ld1BhcmVudCk7CisgICAgQVNTRVJUKG5ld1BhcmVudC0+aXNDb250ZW50
RWRpdGFibGUoKSk7CisgICAgQVNTRVJUKGlzU3RhcnRPZlBhcmFncmFwaChzdGFydCkgJiYgaXNF
bmRPZlBhcmFncmFwaChlbmQpKTsKKworICAgIFBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoID0gZW5k
LmRlZXBFcXVpdmFsZW50KCkuZG93bnN0cmVhbSgpOworICAgIC8vIFNpbmNlIHRoZXJlIGlzIG5v
IGdvb2Qgd2F5IG9mIGtub3dpbmcgd2hlbiB0byBpbnNlcnQgYnIsIHdlIGFwcGVuZCBub2RlcyBm
aXJzdCBhbmQgc2VlIGlmIHRoZSBzdGFydCBvZiBwYXJhZ3JhcGggY2hhbmdlcworICAgIE5vZGUq
IGluc2VydGlvblBvaW50ID0gbmV3UGFyZW50LT5sYXN0Q2hpbGQoKTsKKyAgICBOb2RlKiBzdGFy
dE9mTGFzdFBhcmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoUG9zaXRpb24obmV3UGFyZW50LCBu
ZXdQYXJlbnQtPmNoaWxkTm9kZUNvdW50KCkpKS5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKTsKKyAg
ICBpZiAoc3RhcnRPZkxhc3RQYXJhZ3JhcGggJiYgIXN0YXJ0T2ZMYXN0UGFyYWdyYXBoLT5pc0Rl
c2NlbmRhbnRPZihuZXdQYXJlbnQpKQorICAgICAgICBzdGFydE9mTGFzdFBhcmFncmFwaCA9IDA7
Ly8gaWYgdGhlIHN0YXJ0IGlzIG91dHNpZGUgb2YgbmV3UGFyZW50LCB0aGVuIGZvcmdldCBhYm91
dCBpdC4KKworICAgIC8vIEV4dGVuZCB0aGUgcmFuZ2Ugc28gdGhhdCB3ZSBjYW4gYXBwZW5kIHdy
YXBwaW5nIG5vZGVzIGFzIHdlbGwgaWYgdGhleSdyZSBjb250YWluZCB3aXRoaW4gdGhlIHBhcmFn
cmFwaAorICAgIEV4Y2VwdGlvbkNvZGUgZWM9MDsKKyAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVk
UmFuZ2UgPSBjcmVhdGVSYW5nZShkb2N1bWVudCgpLCBzdGFydCwgZW5kLCBlYyk7CisgICAgUmVm
UHRyPFJhbmdlPiBleHRlbmRlZFJhbmdlID0gZXhudGVuZFJhbmdlVG9XcmFwcGluZ05vZGVzKHNl
bGVjdGVkUmFuZ2UsIHNlbGVjdGVkUmFuZ2UsIG5ld1BhcmVudC0+cGFyZW50Tm9kZSgpKTsKKyAg
ICBuZXdQYXJlbnQtPmFwcGVuZENoaWxkKGV4dGVuZGVkUmFuZ2UtPmV4dHJhY3RDb250ZW50cyhl
YyksIGVjKTsKKworICAgIC8vIElmIHRoZSBzdGFydCBvZiBwYXJhZ3JhcGggZGlkbid0IGNoYW5n
ZSBieSBhcHBlbmRpbmcgbm9kZXMsIHRoZW4gd2Ugc2hvdWxkIGluc2VydCBiciB0byBzZXBlcmF0
ZSB0aGUgcGFyYWdyYXBocy4KKyAgICBOb2RlKiBzdGFydE9mTmV3UGFyYWdyYXBoID0gc3RhcnRP
ZlBhcmFncmFwaChQb3NpdGlvbihuZXdQYXJlbnQsIG5ld1BhcmVudC0+Y2hpbGROb2RlQ291bnQo
KSkpLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgIGlmIChzdGFydE9mTmV3UGFyYWdyYXBo
ID09IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoKSB7CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM9MDsK
KyAgICAgICAgaWYgKGluc2VydGlvblBvaW50KQorICAgICAgICAgICAgbmV3UGFyZW50LT5pbnNl
cnRCZWZvcmUoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLCBpbnNlcnRpb25Qb2ludC0+
bmV4dFNpYmxpbmcoKSwgZWMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdQYXJlbnQt
PmFwcGVuZENoaWxkKGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKSwgZWMpOworICAgIH0K
IAotICAgIG1vdmVQYXJhZ3JhcGgoc3RhcnRPZlBhcmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3Jh
cGgpLCBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihpbnNl
cnRpb25Qb2ludCwgMCkpLCB0cnVlKTsKKyAgICAvLyBSZW1vdmUgdW5uZWNlc3NhcnkgYnIgZnJv
bSB0aGUgcGxhY2Ugd2hlcmUgd2UgbW92ZWQgdGhlIHBhcmFncmFwaCBmcm9tCisgICAgcmVtb3Zl
VW5uZWNlc3NhcnlMaW5lQnJlYWtBdChlbmRPZlBhcmFncmFwaCk7Cit9CisKK3ZvaWQgSW5kZW50
T3V0ZGVudENvbW1hbmQ6OnJlbW92ZVVubmVjZXNzYXJ5TGluZUJyZWFrQXQoY29uc3QgUG9zaXRp
b24mIGVuZE9mUGFyYWdyYXBoKQoreworICAgIC8vIElmIHRoZXJlIGlzIHNvbWV0aGluZyBpbiB0
aGlzIHBhcmFncmFwaCwgdGhlbiBkb24ndCByZW1vdmUgYnIuCisgICAgaWYgKCFpc1N0YXJ0T2ZQ
YXJhZ3JhcGgoZW5kT2ZQYXJhZ3JhcGgpIHx8ICFpc0VuZE9mUGFyYWdyYXBoKGVuZE9mUGFyYWdy
YXBoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IHRoZSBi
ciBhdCB0aGUgZW5kIG9mIHBhcmFncmFwaAorICAgIE5vZGUqIGJyID0gZW5kT2ZQYXJhZ3JhcGgu
bm9kZSgpOworICAgIE5vZGUqIHBhcmVudE5vZGUgPSBici0+cGFyZW50Tm9kZSgpOworCisgICAg
Ly8gSWYgdGhlIG5vZGUgaXNuJ3QgYnIgb3IgdGhlIHBhcmVudCBub2RlIGlzIGVtcHR5LCB0aGVu
IGRvbid0IHJlbW92ZS4KKyAgICBpZiAoIWJyLT5oYXNUYWdOYW1lKGJyVGFnKSB8fCBpc1Zpc2li
bHlBZGphY2VudChwb3NpdGlvbkJlZm9yZU5vZGUocGFyZW50Tm9kZSksIHBvc2l0aW9uQWZ0ZXJO
b2RlKHBhcmVudE5vZGUpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVtb3ZlTm9kZUFuZFBy
dW5lQW5jZXN0b3JzKGJyKTsKIH0KIAogYm9vbCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6aXNBdFVu
c3BsaXR0YWJsZUVsZW1lbnQoY29uc3QgUG9zaXRpb24mIHBvcykgY29uc3QKQEAgLTE3NCw4ICsx
ODYsNiBAQCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRSZWdpb24oCiAgICAgVmlz
aWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBzZWxlY3Rpb25Gb3JQYXJhZ3JhcGhJdGVyYXRpb24o
ZW5kaW5nU2VsZWN0aW9uKCkpOwogICAgIFZpc2libGVQb3NpdGlvbiBzdGFydE9mU2VsZWN0aW9u
ID0gc2VsZWN0aW9uLnZpc2libGVTdGFydCgpOwogICAgIFZpc2libGVQb3NpdGlvbiBlbmRPZlNl
bGVjdGlvbiA9IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7Ci0gICAgaW50IHN0YXJ0SW5kZXggPSBp
bmRleEZvclZpc2libGVQb3NpdGlvbihzdGFydE9mU2VsZWN0aW9uKTsKLSAgICBpbnQgZW5kSW5k
ZXggPSBpbmRleEZvclZpc2libGVQb3NpdGlvbihlbmRPZlNlbGVjdGlvbik7CiAKICAgICBBU1NF
UlQoIXN0YXJ0T2ZTZWxlY3Rpb24uaXNOdWxsKCkpOwogICAgIEFTU0VSVCghZW5kT2ZTZWxlY3Rp
b24uaXNOdWxsKCkpOwpAQCAtMTg0LDI3ICsxOTQsNTEgQEAgdm9pZCBJbmRlbnRPdXRkZW50Q29t
bWFuZDo6aW5kZW50UmVnaW9uKAogICAgIC8vIGFuZCB0aGVyZSdzIG5vdGhpbmcgdG8gbW92ZS4K
ICAgICBQb3NpdGlvbiBzdGFydCA9IHN0YXJ0T2ZTZWxlY3Rpb24uZGVlcEVxdWl2YWxlbnQoKS5k
b3duc3RyZWFtKCk7CiAgICAgaWYgKGlzQXRVbnNwbGl0dGFibGVFbGVtZW50KHN0YXJ0KSkgewot
ICAgICAgICBSZWZQdHI8RWxlbWVudD4gYmxvY2txdW90ZSA9IGNyZWF0ZUluZGVudEJsb2NrcXVv
dGVFbGVtZW50KGRvY3VtZW50KCkpOworICAgICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGJsb2Nr
cXVvdGUgPSBjcmVhdGVJbmRlbnRCbG9ja3F1b3RlRWxlbWVudChkb2N1bWVudCgpKTsKICAgICAg
ICAgaW5zZXJ0Tm9kZUF0KGJsb2NrcXVvdGUsIHN0YXJ0KTsKLSAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IHBsYWNlaG9sZGVyID0gY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpOworICAgICAg
ICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHBsYWNlaG9sZGVyID0gY3JlYXRlQnJlYWtFbGVtZW50KGRv
Y3VtZW50KCkpOwogICAgICAgICBhcHBlbmROb2RlKHBsYWNlaG9sZGVyLCBibG9ja3F1b3RlKTsK
ICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24ocGxh
Y2Vob2xkZXIuZ2V0KCksIDApLCBET1dOU1RSRUFNKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gYmxvY2txdW90ZUZvck5leHRJbmRlbnQ7CisgICAgUmVm
UHRyPEhUTUxFbGVtZW50PiBibG9ja3F1b3RlRm9yTmV4dEluZGVudDsKICAgICBWaXNpYmxlUG9z
aXRpb24gZW5kT2ZDdXJyZW50UGFyYWdyYXBoID0gZW5kT2ZQYXJhZ3JhcGgoc3RhcnRPZlNlbGVj
dGlvbik7CiAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZEFmdGVyU2VsZWN0aW9uID0gZW5kT2ZQYXJh
Z3JhcGgoZW5kT2ZQYXJhZ3JhcGgoZW5kT2ZTZWxlY3Rpb24pLm5leHQoKSk7Ci0gICAgd2hpbGUg
KGVuZE9mQ3VycmVudFBhcmFncmFwaCAhPSBlbmRBZnRlclNlbGVjdGlvbikgeworICAgIFJlZlB0
cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9IHNlbGVjdGlvbi5maXJzdFJhbmdlKCk7CisgICAgd2hp
bGUgKCFlbmRPZkN1cnJlbnRQYXJhZ3JhcGguaXNOdWxsKCkgJiYgZW5kT2ZDdXJyZW50UGFyYWdy
YXBoICE9IGVuZEFmdGVyU2VsZWN0aW9uKSB7CiAgICAgICAgIC8vIEl0ZXJhdGUgYWNyb3NzIHRo
ZSBzZWxlY3RlZCBwYXJhZ3JhcGhzLi4uCi0gICAgICAgIFZpc2libGVQb3NpdGlvbiBlbmRPZk5l
eHRQYXJhZ3JhcGggPSBlbmRPZlBhcmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgubmV4dCgp
KTsKLSAgICAgICAgaWYgKHRyeUluZGVudGluZ0FzTGlzdEl0ZW0oZW5kT2ZDdXJyZW50UGFyYWdy
YXBoKSkKKyAgICAgICAgLy8gQmVjYXVzZSB3ZSBtYXkgbG9zZSBlbmRPZkN1cnJlbnRQYXJhZ3Jh
cGggZHVlIHRvIG91ciBpZGVudGF0aW9uLCB3ZSB1c2UgZW5kT2ZOZXh0UGFyYWdyYXBoIHRvIGtl
ZXAgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIG91ciBpdGVyYXRpb24uCisgICAgICAgIFZpc2li
bGVQb3NpdGlvbiBzdGFydE9mQ3VycmVudFBhcmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5k
T2ZDdXJyZW50UGFyYWdyYXBoKTsKKyAgICAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZE9mTmV4dFBh
cmFncmFwaDsKKyAgICAgICAgTm9kZSogYmxvY2tOb2RlID0gZW5jbG9zaW5nQmxvY2soZW5kT2ZD
dXJyZW50UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpKTsKKyAgICAgICAgaWYgKGJs
b2NrTm9kZS0+aGFzVGFnTmFtZShsaVRhZykpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBuZWVk
IHRvIGRlYWwgd2l0aCBtYWxmb3JtZWQgSFRNTCB3aXRob3V0IGEgbGk7IChpLmUuIGhhc1RhZ05h
bWUob2xUYWcpIG9yIGhhc1RhZ05hbWUodWxUYWcpKQorICAgICAgICAgICAgLy8gd2UgbmVlZCB0
byBjcmVhdGUgYSBuZXcgbGlzdCBpdGVtIGFuZCBlbmNsb3NlIHRoZSBjb250ZW50IGlmIHRoZXJl
IGlzIG5vIGxpIGltbWVkaWF0ZWx5IGFib3ZlLgorICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIG1l
cmdlIHdpdGggdGhlIHByZWNlZGluZyBsaXN0IGl0ZW0uCisgICAgICAgICAgICBnZXRWaXNpYmxl
UmFuZ2VPZk5vZGUoYmxvY2tOb2RlLCBzdGFydE9mQ3VycmVudFBhcmFncmFwaCwgZW5kT2ZDdXJy
ZW50UGFyYWdyYXBoKTsKKyAgICAgICAgICAgIGVuZE9mQ3VycmVudFBhcmFncmFwaCA9IGVuZE9m
UGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCk7CisgICAgICAgICAgICBzdGFydE9mQ3Vy
cmVudFBhcmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgp
OworCisgICAgICAgICAgICBlbmRPZk5leHRQYXJhZ3JhcGggPSBlbmRPZlBhcmFncmFwaChlbmRP
ZkN1cnJlbnRQYXJhZ3JhcGgubmV4dCgpKTsKKyAgICAgICAgICAgIGluZGVudExpc3RJdGVtKHN0
YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oYmxvY2tOb2RlKSk7CiAgICAgICAgICAgICBibG9ja3F1
b3RlRm9yTmV4dEluZGVudCA9IDA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGluZGVudElu
dG9CbG9ja3F1b3RlKGVuZE9mQ3VycmVudFBhcmFncmFwaCwgZW5kT2ZOZXh0UGFyYWdyYXBoLCBi
bG9ja3F1b3RlRm9yTmV4dEluZGVudCk7Ci0gICAgICAgICAgICAvLyBibG9ja3F1b3RlRm9yTmV4
dEluZGVudCBtYXliZSB1cGRhdGVkCi0gICAgICAgICAgICAvLyB0aGlzIGlzIGR1ZSB0byB0aGUg
d2F5IHByZXBhcmVCbG9ja3F1b3RlTGV2ZWxGb3JJbnNlcnRpb24gd2FzIGRlc2lnbmVkLgotICAg
ICAgICAvLyBTYW5pdHkgY2hlY2s6IE1ha2Ugc3VyZSBvdXIgbW92ZVBhcmFncmFwaCBjYWxscyBk
aWRuJ3QgcmVtb3ZlIGVuZE9mTmV4dFBhcmFncmFwaC5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKQor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gZXh0ZW5kIHRoZSByZWdpb24gc28gdGhh
dCBpdCBjb250YWlucyBhbGwgdGhlIGFuY2VzdG9yIGJsb2NrcyB3aXRoaW4gdGhlIHNlbGVjdGlv
bgorICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICAgICAgICAgIEVsZW1lbnQqIHVu
c3BsaXR0YWJsZU5vZGUgPSB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oZW5kT2ZDdXJy
ZW50UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCkpOworICAgICAgICAgICAgUmVmUHRyPFJhbmdl
PiBvcmlnaW5hbFJhbmdlID0gY3JlYXRlUmFuZ2UoZG9jdW1lbnQoKSwgZW5kT2ZDdXJyZW50UGFy
YWdyYXBoLCBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgsIGVjKTsKKyAgICAgICAgICAgIFJlZlB0cjxS
YW5nZT4gZXh0ZW5kZWRSYW5nZSA9IGV4bnRlbmRSYW5nZVRvV3JhcHBpbmdOb2RlcyhvcmlnaW5h
bFJhbmdlLCBzZWxlY3RlZFJhbmdlLCB1bnNwbGl0dGFibGVOb2RlKTsKKyAgICAgICAgICAgIGlm
IChvcmlnaW5hbFJhbmdlICE9IGV4dGVuZGVkUmFuZ2UpIHsKKyAgICAgICAgICAgICAgICBlbmRP
ZkN1cnJlbnRQYXJhZ3JhcGggPSBlbmRPZlBhcmFncmFwaChleHRlbmRlZFJhbmdlLT5lbmRQb3Np
dGlvbigpLnByZXZpb3VzKCkpOworICAgICAgICAgICAgICAgIGJsb2NrTm9kZSA9IGVuY2xvc2lu
Z0Jsb2NrKFJhbmdlOjpjb21tb25BbmNlc3RvckNvbnRhaW5lcihleHRlbmRlZFJhbmdlLT5zdGFy
dFBvc2l0aW9uKCkubm9kZSgpLCBleHRlbmRlZFJhbmdlLT5lbmRQb3NpdGlvbigpLm5vZGUoKSkp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbmRPZk5leHRQYXJhZ3JhcGggPSBlbmRP
ZlBhcmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgubmV4dCgpKTsKKyAgICAgICAgICAgIGlu
ZGVudEludG9CbG9ja3F1b3RlKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBlbmRPZkN1cnJlbnRQ
YXJhZ3JhcGgsIGVuZE9mTmV4dFBhcmFncmFwaCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQsIGJs
b2NrTm9kZSk7CisgICAgICAgICAgICAvLyBibG9ja3F1b3RlRm9yTmV4dEluZGVudCB3aWxsIGJl
IHVwZGF0ZWQgaW4gdGhlIGZ1bmN0aW9uCisgICAgICAgIH0KKyAgICAgICAgLy8gU2FuaXR5IGNo
ZWNrOiBNYWtlIHN1cmUgb3VyIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlIGNhbGxzIGRpZG4ndCBy
ZW1vdmUgZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpCiAgICAgICAg
IC8vIElmIHNvbWVob3cgd2UgZGlkLCByZXR1cm4gdG8gcHJldmVudCBjcmFzaGVzLgogICAgICAg
ICBpZiAoZW5kT2ZOZXh0UGFyYWdyYXBoLmlzTm90TnVsbCgpICYmICFlbmRPZk5leHRQYXJhZ3Jh
cGguZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCktPmluRG9jdW1lbnQoKSkgewogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMTIsMTEgKzI0Niw3IEBAIHZvaWQgSW5kZW50T3V0
ZGVudENvbW1hbmQ6OmluZGVudFJlZ2lvbigKICAgICAgICAgfQogICAgICAgICBlbmRPZkN1cnJl
bnRQYXJhZ3JhcGggPSBlbmRPZk5leHRQYXJhZ3JhcGg7CiAgICAgfQotICAgIAotICAgIFJlZlB0
cjxSYW5nZT4gc3RhcnRSYW5nZSA9IFRleHRJdGVyYXRvcjo6cmFuZ2VGcm9tTG9jYXRpb25BbmRM
ZW5ndGgoZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCksIHN0YXJ0SW5kZXgsIDAsIHRydWUp
OwotICAgIFJlZlB0cjxSYW5nZT4gZW5kUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxv
Y2F0aW9uQW5kTGVuZ3RoKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLCBlbmRJbmRleCwg
MCwgdHJ1ZSk7Ci0gICAgaWYgKHN0YXJ0UmFuZ2UgJiYgZW5kUmFuZ2UpCi0gICAgICAgIHNldEVu
ZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0UmFuZ2UtPnN0YXJ0UG9zaXRpb24o
KSwgZW5kUmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgRE9XTlNUUkVBTSkpOworCiB9CiAKIHZvaWQg
SW5kZW50T3V0ZGVudENvbW1hbmQ6Om91dGRlbnRQYXJhZ3JhcGgoKQpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0
aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgJKHJldmlzaW9uIDQ1NTY0KQorKysgV2ViQ29yZS9l
ZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDkgKzUy
LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbmRlbnRSZWdpb24oKTsKICAgICB2b2lkIG91dGRl
bnRSZWdpb24oKTsKICAgICB2b2lkIG91dGRlbnRQYXJhZ3JhcGgoKTsKLSAgICBQYXNzUmVmUHRy
PEVsZW1lbnQ+IHByZXBhcmVCbG9ja3F1b3RlTGV2ZWxGb3JJbnNlcnRpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+Jik7Ci0gICAgYm9vbCB0cnlJbmRlbnRpbmdBc0xp
c3RJdGVtKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwotICAgIHZvaWQgaW5kZW50SW50b0Jsb2Nr
cXVvdGUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUmVm
UHRyPEVsZW1lbnQ+Jik7CisgICAgdm9pZCBpbmRlbnRMaXN0SXRlbShIVE1MRWxlbWVudCopOwor
ICAgIHZvaWQgaW5kZW50SW50b0Jsb2NrcXVvdGUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUmVmUHRyPEhUTUxF
bGVtZW50PiYsIE5vZGUqKTsKKyAgICB2b2lkIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlKE5vZGUq
IG5ld1BhcmVudCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydCwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBlbmQpOworICAgIHZvaWQgcmVtb3ZlVW5uZWNlc3NhcnlMaW5lQnJlYWtBdCggY29u
c3QgUG9zaXRpb24mIGVuZE9mUGFyYWdyYXBoICk7CiAKICAgICBFSW5kZW50VHlwZSBtX3R5cGVP
ZkFjdGlvbjsKICAgICBpbnQgbV9tYXJnaW5JblBpeGVsczsKSW5kZXg6IFdlYkNvcmUvZWRpdGlu
Zy9odG1sZWRpdGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcAkocmV2aXNpb24gNDU1NjQpCisrKyBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNiArMjA3LDEzIEBAIEVsZW1lbnQqIGVkaXRhYmxl
Um9vdEZvclBvc2l0aW9uKGNvbnN0IFAKICAgICByZXR1cm4gbm9kZS0+cm9vdEVkaXRhYmxlRWxl
bWVudCgpOwogfQogCitFbGVtZW50KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRpb24oY29u
c3QgUG9zaXRpb24mIHApCit7CisgICAgRWxlbWVudCogZW5jbG9zaW5nQ2VsbCA9IHN0YXRpY19j
YXN0PEVsZW1lbnQqPihlbmNsb3NpbmdOb2RlT2ZUeXBlKHAsICZpc1RhYmxlQ2VsbCkpOworICAg
IAorICAgIHJldHVybiBlbmNsb3NpbmdDZWxsID8gZW5jbG9zaW5nQ2VsbCA6IGVkaXRhYmxlUm9v
dEZvclBvc2l0aW9uKHApOworfQorCiBib29sIGlzQ29udGVudEVkaXRhYmxlKGNvbnN0IE5vZGUq
IG5vZGUpCiB7CiAgICAgcmV0dXJuIG5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCk7CkBAIC01NzUs
NiArNTgyLDQxIEBAIFBvc2l0aW9uIHBvc2l0aW9uQWZ0ZXJOb2RlKGNvbnN0IE5vZGUqIG4KICAg
ICByZXR1cm4gUG9zaXRpb24obm9kZS0+cGFyZW50Tm9kZSgpLCBub2RlLT5ub2RlSW5kZXgoKSAr
IDEpOwogfQogCitQYXNzUmVmUHRyPFJhbmdlPiBjcmVhdGVSYW5nZShQYXNzUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydCwgY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBlbmQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGVjPTA7CisgICAgUmVm
UHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
c2VsZWN0ZWRSYW5nZS0+c2V0U3RhcnQoIHN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVy
Tm9kZSgpLCBzdGFydC5kZWVwRXF1aXZhbGVudCgpLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5v
ZGUoKSwgZWMpOworICAgIGlmICghZWMpCisgICAgICAgIHNlbGVjdGVkUmFuZ2UtPnNldEVuZCgg
ZW5kLmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpLCBlbmQuZGVlcEVxdWl2YWxlbnQo
KS5jb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2RlKCksIGVjKTsKKyAgICByZXR1cm4gc2VsZWN0
ZWRSYW5nZS5yZWxlYXNlKCk7Cit9CisKKy8vIEV4dGVuZCByYW5nZVRvRXh0ZW5kIHRvIGluY2x1
ZGUgd3JhcHBpbmcgbm9kZXMuCisvLyBUaGUgcmVzdWx0YW50IHJhbmdlIGlzIGNvbnRhaW5lZCB3
aXRoaW4gKHNlZSBhbHNvIGlzTm9kZVZpc2libHlDb250YWluZWRXaXRoaW4pIG1heGltdW1SYW5n
ZSBhbmQgYmVsb3cgcm9vdE5vZGUKK1Bhc3NSZWZQdHI8UmFuZ2U+IGV4bnRlbmRSYW5nZVRvV3Jh
cHBpbmdOb2RlcyhQYXNzUmVmUHRyPFJhbmdlPiByYW5nZVRvRXh0ZW5kLCBQYXNzUmVmUHRyPFJh
bmdlPiBtYXhpbXVtUmFuZ2UsIE5vZGUqIHJvb3ROb2RlKQoreworICAgIEFTU0VSVChyYW5nZVRv
RXh0ZW5kKTsKKyAgICBBU1NFUlQobWF4aW11bVJhbmdlKTsKKyAgICAKKyAgICBFeGNlcHRpb25D
b2RlIGVjPTA7CisgICAgTm9kZSogYW5jZXN0b3IgPSByYW5nZVRvRXh0ZW5kLT5jb21tb25BbmNl
c3RvckNvbnRhaW5lcihlYyk7Ly8gZmluZCB0aGUgY2xvZXNldCBjb21tb24gYW5jZXN0b3IKKyAg
ICBOb2RlKiBoaWdoZXN0Tm9kZSA9IDA7CisgICAgLy8gdHJhdmVyc2UgdGhyb3VnaCBhbmNlc3Rv
cnMgYXMgbG9uZyBhcyB0aGV5IGFyZSBjb250YWluZWQgd2l0aGluIHRoZSByYW5nZSwgY29udGVu
dC1lZGl0YWJsZSwgYW5kIGJlbG93IHJvb3ROb2RlIChjb3VsZCBiZSA9MCkuCisgICAgd2hpbGUg
KGFuY2VzdG9yICYmIGFuY2VzdG9yLT5pc0NvbnRlbnRFZGl0YWJsZSgpICYmIGlzTm9kZVZpc2li
bHlDb250YWluZWRXaXRoaW4oYW5jZXN0b3IsICptYXhpbXVtUmFuZ2UpICYmIGFuY2VzdG9yICE9
IHJvb3ROb2RlKSB7CisgICAgICAgIGhpZ2hlc3ROb2RlID0gYW5jZXN0b3I7CisgICAgICAgIGFu
Y2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE5vZGUoKTsKKyAgICB9CisKKyAgICBpZiAoIWhpZ2hl
c3ROb2RlKQorICAgICAgICByZXR1cm4gcmFuZ2VUb0V4dGVuZDsKKworICAgIC8vIENyZWF0ZSBu
ZXcgcmFuZ2Ugd2l0aCB0aGUgaGlnaGVzdCBlZGl0YWJsZSBub2RlIGNvbnRhaW5lZCB3aXRoaW4g
dGhlIHJhbmdlCisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUocmFuZ2VU
b0V4dGVuZC0+b3duZXJEb2N1bWVudCgpKTsKKyAgICByYW5nZS0+c2VsZWN0Tm9kZShoaWdoZXN0
Tm9kZSwgZWMpOworICAgIHJldHVybiByYW5nZS5yZWxlYXNlKCk7Cit9CisKIGJvb2wgaXNMaXN0
RWxlbWVudChOb2RlICpuKQogewogICAgIHJldHVybiAobiAmJiAobi0+aGFzVGFnTmFtZSh1bFRh
ZykgfHwgbi0+aGFzVGFnTmFtZShvbFRhZykgfHwgbi0+aGFzVGFnTmFtZShkbFRhZykpKTsKQEAg
LTc0Niw3ICs3ODgsNyBAQCBib29sIGNhbk1lcmdlTGlzdHMoRWxlbWVudCogZmlyc3RMaXN0LCBF
CiAgICAgcmV0dXJuIGZpcnN0TGlzdC0+aGFzVGFnTmFtZShzZWNvbmRMaXN0LT50YWdRTmFtZSgp
KS8vIG1ha2Ugc3VyZSB0aGUgbGlzdCB0eXBlcyBtYXRjaCAob2wgdnMuIHVsKQogICAgICYmIGlz
Q29udGVudEVkaXRhYmxlKGZpcnN0TGlzdCkgJiYgaXNDb250ZW50RWRpdGFibGUoc2Vjb25kTGlz
dCkvLyBib3RoIGxpc3RzIGFyZSBlZGl0YWJsZQogICAgICYmIGZpcnN0TGlzdC0+cm9vdEVkaXRh
YmxlRWxlbWVudCgpID09IHNlY29uZExpc3QtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKS8vIGRvbid0
IGNyb3NzIGVkaXRpbmcgYm91bmRhcmllcwotICAgICYmIGlzVmlzaWJpbHlBZGphY2VudChwb3Np
dGlvbkFmdGVyTm9kZShmaXJzdExpc3QpLCBwb3NpdGlvbkJlZm9yZU5vZGUoc2Vjb25kTGlzdCkp
OworICAgICYmIGlzVmlzaWJseUFkamFjZW50KHBvc2l0aW9uQWZ0ZXJOb2RlKGZpcnN0TGlzdCks
IHBvc2l0aW9uQmVmb3JlTm9kZShzZWNvbmRMaXN0KSk7CiAgICAgLy8gTWFrZSBzdXJlIHRoZXJl
IGlzIG5vIHZpc2libGUgY29udGVudCBiZXR3ZWVuIHRoaXMgbGkgYW5kIHRoZSBwcmV2aW91cyBs
aXN0CiB9CiAKQEAgLTk3NCw3ICsxMDE2LDcgQEAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25G
b3JQYXJhZ3JhcGhJdAogfQogCiAKLWludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihWaXNpYmxl
UG9zaXRpb24mIHZpc2libGVQb3NpdGlvbikKK2ludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGVQb3NpdGlvbikKIHsKICAgICBpZiAodmlzaWJs
ZVBvc2l0aW9uLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTk4MywxMSArMTAyNSwz
OCBAQCBpbnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oVmlzaWJsZVBvc2l0CiAgICAgcmV0dXJu
IFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgocmFuZ2UuZ2V0KCksIHRydWUpOwogfQogCi1ib29s
IGlzVmlzaWJpbHlBZGphY2VudChjb25zdCBQb3NpdGlvbiYgZmlyc3QsIGNvbnN0IFBvc2l0aW9u
JiBzZWNvbmQpCitib29sIGlzVmlzaWJseUFkamFjZW50KGNvbnN0IFBvc2l0aW9uJiBmaXJzdCwg
Y29uc3QgUG9zaXRpb24mIHNlY29uZCkKIHsKICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKGZp
cnN0KSA9PSBWaXNpYmxlUG9zaXRpb24oc2Vjb25kLnVwc3RyZWFtKCkpOwogfQogCisvLyBXZSBz
YXkgYSBub2RlIGlzIHZpc2libHkgY29udGFpbmVkIHdpdGhpbiBhIHJhbmdlIGlmIHRoZSBub2Rl
IGlzIGluc2lkZSBhIHJhbmdlIG9yIGlmIHRoZSBub2RlIHZpc2libHkgc3RhcnRzIGFuZCBlbmRz
IGF0IHRoZSBib3VuZGFyaWVzIG9mIHJhbmdlLgorYm9vbCBpc05vZGVWaXNpYmx5Q29udGFpbmVk
V2l0aGluKE5vZGUqIG5vZGUsIGNvbnN0IFJhbmdlJiBzZWxlY3RlZFJhbmdlKQoreworICAgIEFT
U0VSVChub2RlKTsKKyAgICAvLyBJZiB0aGUgbm9kZSBpcyBpbnNpZGUgdGhlIHJhbmdlLCB0aGVu
IGl0IHN1cmVseSBpcyBjb250YWluZWQgd2l0aGluCisgICAgRXhjZXB0aW9uQ29kZSBlYz0wOwor
ICAgIGlmIChzZWxlY3RlZFJhbmdlLmNvbXBhcmVOb2RlKG5vZGUsIGVjKSA9PSBSYW5nZTo6Tk9E
RV9JTlNJREUpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gSWYgdGhlIG5vZGUgc3Rh
cnRzIGFuZCBlbmRzIGF0IHdoZXJlIHNlbGVjdGVkUmFuZ2Ugc3RhcnRzIGFuZCBlbmRzLCB0aGUg
bm9kZSBpcyBjb250YWluZWQgd2l0aGluCisgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0OworICAg
IFZpc2libGVQb3NpdGlvbiBlbmQ7CisgICAgZ2V0VmlzaWJsZVJhbmdlT2ZOb2RlKG5vZGUsIHN0
YXJ0LCBlbmQpOworICAgIHJldHVybiBzdGFydCA9PSBWaXNpYmxlUG9zaXRpb24oc2VsZWN0ZWRS
YW5nZS5zdGFydFBvc2l0aW9uKCkpICYmIGVuZCA9PSBWaXNpYmxlUG9zaXRpb24oc2VsZWN0ZWRS
YW5nZS5lbmRQb3NpdGlvbigpKTsKK30KKwordm9pZCBnZXRWaXNpYmxlUmFuZ2VPZk5vZGUoTm9k
ZSogbm9kZSAsIFZpc2libGVQb3NpdGlvbiYgc3RhcnQgLCBWaXNpYmxlUG9zaXRpb24mIGVuZCAp
Cit7CisgICAgaWYgKG5vZGUtPmNoaWxkTm9kZUNvdW50KCkpIHsKKyAgICAgICAgc3RhcnQgPSBW
aXNpYmxlUG9zaXRpb24obm9kZSwgMCwgRE9XTlNUUkVBTSk7CisgICAgICAgIGVuZCA9IFZpc2li
bGVQb3NpdGlvbihub2RlLCBub2RlLT5jaGlsZE5vZGVDb3VudCgpLCBET1dOU1RSRUFNKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBzdGFydCA9IFZpc2libGVQb3NpdGlvbihwb3NpdGlvbkJlZm9y
ZU5vZGUobm9kZSkpOworICAgICAgICBlbmQgPSBWaXNpYmxlUG9zaXRpb24ocG9zaXRpb25BZnRl
ck5vZGUobm9kZSkpOworICAgIH0KK30KKwogUGFzc1JlZlB0cjxSYW5nZT4gYXZvaWRJbnRlcnNl
Y3Rpb25XaXRoTm9kZShjb25zdCBSYW5nZSogcmFuZ2UsIE5vZGUqIG5vZGUpCiB7CiAgICAgaWYg
KCFyYW5nZSkKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCShyZXZpc2lvbiA0NTU2NCkKKysrIFdl
YkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
I2luY2x1ZGUgIkNvbXBvc2l0ZUVkaXRDb21tYW5kLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjEsNiArNjIsNyBAQCBQb3NpdGlvbiBwcmV2aW91c1Zpc3VhbGx5RGlzdGluY3RDYW5k
aWRhCiBib29sIGlzRWRpdGFibGVQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYpOwogYm9vbCBpc1Jp
Y2hseUVkaXRhYmxlUG9zaXRpb24oY29uc3QgUG9zaXRpb24mKTsKIEVsZW1lbnQqIGVkaXRhYmxl
Um9vdEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJik7CisgICAgRWxlbWVudCogdW5zcGxpdHRh
YmxlRWxlbWVudEZvclBvc2l0aW9uKGNvbnN0IFBvc2l0aW9uJiBwKTsKIGJvb2wgaXNCbG9jayhj
b25zdCBOb2RlKik7CiBOb2RlKiBlbmNsb3NpbmdCbG9jayhOb2RlKik7CiAKQEAgLTcxLDYgKzcz
LDggQEAgY29uc3QgU3RyaW5nJiBub25CcmVha2luZ1NwYWNlU3RyaW5nKCk7CiAKIFBvc2l0aW9u
IHBvc2l0aW9uQmVmb3JlTm9kZShjb25zdCBOb2RlKik7CiBQb3NpdGlvbiBwb3NpdGlvbkFmdGVy
Tm9kZShjb25zdCBOb2RlKik7CitQYXNzUmVmUHRyPFJhbmdlPiBjcmVhdGVSYW5nZShQYXNzUmVm
UHRyPERvY3VtZW50PiBkb2N1bWVudCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBlbmQsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKK1Bhc3NSZWZQdHI8
UmFuZ2U+IGV4bnRlbmRSYW5nZVRvV3JhcHBpbmdOb2RlcyhQYXNzUmVmUHRyPFJhbmdlPiByYW5n
ZVRvRXh0ZW5kLCBQYXNzUmVmUHRyPFJhbmdlPiBtYXhpbXVtUmFuZ2UsIE5vZGUqIHJvb3ROb2Rl
KTsKIAogUGFzc1JlZlB0cjxSYW5nZT4gYXZvaWRJbnRlcnNlY3Rpb25XaXRoTm9kZShjb25zdCBS
YW5nZSosIE5vZGUqKTsKIFZpc2libGVTZWxlY3Rpb24gYXZvaWRJbnRlcnNlY3Rpb25XaXRoTm9k
ZShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgTm9kZSopOwpAQCAtMTM0LDggKzEzOCwxMCBAQCBi
b29sIGxpbmVCcmVha0V4aXN0c0F0VmlzaWJsZVBvc2l0aW9uKGNvCiAKIFZpc2libGVTZWxlY3Rp
b24gc2VsZWN0aW9uRm9yUGFyYWdyYXBoSXRlcmF0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKIAotaW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKFZpc2libGVQb3NpdGlvbiYpOwotYm9v
bCBpc1Zpc2liaWx5QWRqYWNlbnQoY29uc3QgUG9zaXRpb24mIGZpcnN0LCBjb25zdCBQb3NpdGlv
biYgc2Vjb25kKTsKK2ludCBpbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9z
aXRpb24mKTsKK2Jvb2wgaXNWaXNpYmx5QWRqYWNlbnQoY29uc3QgUG9zaXRpb24mIGZpcnN0LCBj
b25zdCBQb3NpdGlvbiYgc2Vjb25kKTsKK2Jvb2wgaXNOb2RlVmlzaWJseUNvbnRhaW5lZFdpdGhp
bihOb2RlKiBub2RlLCBjb25zdCBSYW5nZSYgc2VsZWN0ZWRSYW5nZSk7Cit2b2lkIGdldFZpc2li
bGVSYW5nZU9mTm9kZShOb2RlKiBub2RlICwgVmlzaWJsZVBvc2l0aW9uJiBzdGFydCAsIFZpc2li
bGVQb3NpdGlvbiYgZW5kICk7CiB9CiAKICNlbmRpZgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDU1NzUp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBA
QAorMjAwOS0wNy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZyBvZiBp
bmRlbnRSZWdpb24gdG8gZml4IGJ1Z3MgMjY4MTYgYW5kIDI1MzE3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjgxNgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUzMTcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTk1IChwYXJ0aWFsbHkpCisKKyAgICAgICAg
RnVydGhlciByZWZhY3RvcmluZyBvZiBpbmRlbnRSZWdpb24uICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUsCisgICAgICAgIGEgbXVjaCBzaW1wbGVyLCBzcGVj
aWFsaXplZCB2ZXJzaW9uIG9mIG1vdmVQYXJhZ3JhcGggYW5kIHJlcGxhY2VzIHRoZSBhbGwgdXNh
Z2UgaW5zaWRlIGluZGVudFJlZ2lvbi4KKyAgICAgICAgQnkgZG9pbmcgdGhpcywgaW5kZW50UmVn
aW9uIGJlY2FtZSBtdWNoIG1vcmUgc3RhYmxlLCBhbmQgc29sdmVkIGEgbnVtYmVyIG9mIHByb2Js
ZW1zLgorICAgICAgICBUaGUgZm9sbG93aW5nIGlzIHRoZSBuZXcgYmVoYXZpb3Igb2YgaW5kZW50
UmVnaW9uCisKKyAgICAgICAgMS4gV2UgdHJ5IHRvIGluZGVudCBhcyBtYW55IHdyYXBwaW5nIG5v
ZGVzIGFzIHBvc3NpYmxlLgorICAgICAgICAgICBlLmcuIHdoZW4gaW5kZW50aW5nICJoZWxsbyIg
aW4gPGRpdj5oZWxsbzwvZGl2PiwgdHJ5IGluZGVudCB0aGUgd2hvbGUgZGl2IHNvIGFzIHRvIHBy
ZXNlcnZlIHRoZSBzdHlsZS4KKyAgICAgICAgICAgVGhpcyBiZWhhdmlyb2FsIGNoYW5nZSBpcyB0
aGUgcHJpbWFyaWx5IG1vdGl2YXRpb24gdG8gaW1wbGVtZW50IGFwcGVuZFBhcmFncmFwaEludG9O
b2RlLgorICAgICAgICAyLiBXZSBkbyBub3QgZGVsZXRlIGFueSB3cmFwcGluZyBlbGVtZW50cwor
ICAgICAgICAgICBXaXRoIG1vdmVQYXJhZ3JhcGgsIHdlIHVzZWQgdG8gcmVtb3ZlIGFsbCB3cmFw
cGluZyBub2RlcywgYW5kIHJlcGxhY2VkIHdpdGggYSBibG9ja3F1b3RlLgorICAgICAgICAgICBU
aGlzIHdhcyBjYXVzZWluZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM5OTUgZm9yIGlkZW50YXRpb24uCisgICAgICAgICAgIFdpdGggYXBwZW5kUGFyYWdyYXBoSW50
b05vZGUsIHdlIGNhbiBwcmVzZXJ2ZSBhbGwgd3JhcHBpbmcgbm9kZXMuCisgICAgICAgIDMuIFdl
IG9ubHkgc3BsaXQgdGhlIHRyZWUgdW50aWwgdGhlIGNsb3Nlc3QgYmxvY2sgbm9kZSBpbnN0ZWFk
IG9mIHVudGlsIHRoZSByb290IGVkaXRhYmxlIG5vZGUuCisgICAgICAgICAgIFRoaXMgYmVoYXZp
b3JhbCBjaGFuZ2UgaXMgdG8gZml4IDI1MzE3LCBhbmQgYWxzbyBmaXhlcyB0aGUgbnVtYmVyIG9m
IG90aGVyIHByb2JsZW1zLgorICAgICAgICA0LiBXaGVuIG11bHRpcGxlIHBhcmFncmFwaHMgYXJl
IGluZGVudGVkLCB3ZSB0cnkgdG8gaW5kZW50IHRoZSBjbG9zZXN0IGNvbW1vbiBhbmNlc3RvciB3
aXRoaW4gdGhlIHNlbGVjdGlvbgorICAgICAgICAgICBJbnN0ZWFkIG9mIGluZGVudGluZyBlYWNo
IHBhcmFncmFwaCwgYW5kIHRyeSB0byBjb21iaW5lIGF0IHRoZSBlbmQgKHdoaWNoIHJlc3VsdHMg
aW4gbWlzc2luZyBhdHRyaWJ1dGVzKSwKKyAgICAgICAgICAgd2UgdHJ5IHRvIGZpbmQgdGhlIGNv
bW1vbiBhbmNlc3RvciBvZiBhbGwgcGFyYWdyYXBocyB0aGF0IGFyZSBiZWluZyBpbmRlbnRlZC4K
KyAgICAgICAgICAgSWYgdGhlIGFuY2VzdG9yIGlzIHdpdGhpbiB0aGUgc2VsZWN0aW9uLCB3ZSBp
bmRlbnQgYmxvY2txdW90ZSB0aGUgYW5jZXN0b3Igb25jZS4KKworICAgICAgICBOb3RlIHRoYXQg
bmV3IGJlaGF2aW9yIGlzIG11Y2ggbW9yZSBjb25zaXN0ZW50IHdpdGggdGhhdCBvZiBJbnRlcm5l
dCBFeHBsb3JlciBhbmQgRmlyZWZveC4KKyAgICAgICAgVG8gZGVtb25zdHJhdGUgdGhpcywgdGhl
IHNvbWUgdGVzdHMgYXJlIGFkZGVkLgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC8x
OTY1My0xLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQgKG5vIGxvbmdlciByZW1vdmluZyB3cmFw
cGluZyBkaXYpCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lk
ZS1saXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rl
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0
ZWQtZGl2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtbmVzdGVkLWRpdi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMi1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChz
ZWxlY3Rpb24gY29ycmVjdGVkKQorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LW5lc3RlZC1saXN0cy0zLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQgKHNlbGVjdGlvbiBjb3Jy
ZWN0ZWQpCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3Rz
LTQtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAoc2VsZWN0aW9uIGNvcnJlY3RlZCkKKyAgICAg
ICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNS1leHBlY3RlZC50
eHQ6IHJlYmFzZWxpbmVkIChzZWxlY3Rpb24gY29ycmVjdGVkKQorICAgICAgICAqIGVkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29u
ZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80NjQxODgwLTItZXhwZWN0ZWQudHh0OiByZWJhc2Vs
aW5lZAorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ5MTY1NDEt
ZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAobm8gbG9uZ2VyIHJlbW92aW5nIHdyYXBwaW5nIHNw
YW4pCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEzODQ0MS1l
eHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvNTQ4MTUyMy1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlbGVjdGlvbi1leHBlY3Rl
ZC50eHQ6IHJlYmFzZWxpbmVkCisKIDIwMDktMDctMDYgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFt
YWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvMTk2NTMtMS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC8xOTY1My0xLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kLzE5NjUzLTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBA
QCBUaGlzIHRlc3RzIGNyZWF0aW5nIGEgbGlzdCBmcm9tIGFuIGVtcHR5CiA8dWw+PGxpPjxiPkJv
bGQ8L2I+PC9saT48L3VsPgogCiBUaGlzIHRlc3RzIGluZGVudGluZyBhbiBlbXB0eSBwYXJhZ3Jh
cGggd2l0aCBib2xkIGFscmVhZHkgYXBwbGllZCB0byBpdC4gVGhlIHdvcmQgYmVsb3cgc2hvdWxk
IGJlIGJvbGQuCi08YmxvY2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3RlIiBz
dHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiPjxi
PkJvbGQ8L2I+PC9ibG9ja3F1b3RlPgorPGJsb2NrcXVvdGUgY2xhc3M9IndlYmtpdC1pbmRlbnQt
YmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRk
aW5nOiAwcHg7Ij48ZGl2PjxiPkJvbGQ8L2I+PC9kaXY+PC9ibG9ja3F1b3RlPgogCiBUaGlzIHRl
c3RzIGluZGVudGluZyBhbiBlbXB0eSBwYXJhZ3JhcGggd2hlbiB0aGUgdHlwaW5nIHN0eWxlIHdh
cyBCb2xkLiBUaGUgd29yZCBiZWxvdyBzaG91bGQgYmUgYm9sZC4KIDxibG9ja3F1b3RlIGNsYXNz
PSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJv
cmRlcjogbm9uZTsgcGFkZGluZzogMHB4OyI+PGI+Qm9sZDwvYj48L2Jsb2NrcXVvdGU+CkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3Qt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LWRpdi1pbnNpZGUtbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1RoaXMgdGVzdHMgaW5kZW50
aW5nIGEgZGl2IGluc2lkZSBhIGxpc3QgaXRlbS4gQnkgaW5kZW50aW5nICJ3b3JsZCIsIHdlIHNo
b3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGFyb3VuZCB3b3JsZCBpbnNpZGUgdGhlIGxp
c3QgaXRlbS4KKworYQoraGVsbG8KK3dvcmxkCitiCithIDx1bD4gPGxpPmhlbGxvPGJsb2NrcXVv
dGUgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAwIDAg
NDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7Ij48ZGl2IGlkPSJ0ZXN0Ij4gd29ybGQg
PC9kaXY+PC9ibG9ja3F1b3RlPjwvbGk+PC91bD4gYgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0Lmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVu
dC1kaXYtaW5zaWRlLWxpc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorPHA+
VGhpcyB0ZXN0cyBpbmRlbnRpbmcgYSBkaXYgaW5zaWRlIGEgbGlzdCBpdGVtLiAgQnkgaW5kZW50
aW5nICJ3b3JsZCIsIHdlIHNob3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGFyb3VuZCB3
b3JsZCBpbnNpZGUgdGhlIGxpc3QgaXRlbS48L3A+Cis8ZGl2IGlkPSJkaXYiIGNvbnRlbnRlZGl0
YWJsZT0idHJ1ZSI+CithCis8dWw+Cis8bGk+aGVsbG88ZGl2IGlkPSJ0ZXN0Ij4KK3dvcmxkCis8
L2xpPgorPC9ibG9ja3F1b3RlPgorPC91bD4KK2IKKzwvZGl2PgorPGRpdiBpZD0iYyI+PC9kaXY+
Cis8c2NyaXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Cit2YXIgciA9
IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CityLnNldFN0YXJ0KGUsMCk7CityLnNldEVuZChlLDEp
Oworcy5hZGRSYW5nZShyKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJJbmRlbnQiLCBmYWxzZSwg
bnVsbCk7Cit0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2RpdicpLmlubmVySFRNTCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpLmFw
cGVuZENoaWxkKCB0ZXh0ICk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtYmxv
Y2txdW90ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQt
YmxvY2txdW90ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1Ro
aXMgdGVzdHMgaW5kZW50aW5nIG5lc3RlZCBibG9ja3F1b3Rlcy4gQnkgaW5kZW50aW5nICJ3ZWJr
aXQiIiIiLCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBiZXR3ZWVuIGJyIHRh
ZyBhbmQgdGhlIGVuZCBvZiB0aGUgaW5uZXIgYmxvY2txdW90ZS4KKworaGVsbG8KK3dvcmxkCit3
ZWJraXQKK2lzIGdyZWF0Cis8YmxvY2txdW90ZSBpZD0ib3V0ZXIiPiBoZWxsbyA8YmxvY2txdW90
ZSBpZD0iaW5uZXIiPiB3b3JsZDxicj48YmxvY2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1i
bG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRp
bmc6IDBweDsiPiB3ZWJraXQgPC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT4gaXMgZ3JlYXQgPC9i
bG9ja3F1b3RlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
bmVzdGVkLWJsb2NrcXVvdGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtYmxvY2tx
dW90ZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorPHA+VGhpcyB0ZXN0cyBp
bmRlbnRpbmcgbmVzdGVkIGJsb2NrcXVvdGVzLiAgQnkgaW5kZW50aW5nICJ3ZWJraXQiIiIiLCB3
ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBiZXR3ZWVuIGJyIHRhZyBhbmQgdGhl
IGVuZCBvZiB0aGUgaW5uZXIgYmxvY2txdW90ZS48L3A+Cis8ZGl2IGlkPSJkaXYiIGNvbnRlbnRl
ZGl0YWJsZT0idHJ1ZSI+Cis8YmxvY2txdW90ZSBpZD0ib3V0ZXIiPgoraGVsbG8KKzxibG9ja3F1
b3RlIGlkPSJpbm5lciI+Cit3b3JsZDxicj4KK3dlYmtpdAorPC9ibG9ja3F1b3RlPgoraXMgZ3Jl
YXQKKzwvYmxvY2txdW90ZT4KKzwvZGl2PgorPGRpdiBpZD0iYyI+PC9kaXY+Cis8c2NyaXB0Pgor
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5u
ZXIiKTsKK3ZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwordmFyIHIgPSBkb2N1bWVudC5j
cmVhdGVSYW5nZSgpOworci5zZXRTdGFydChlLDIpOworci5zZXRFbmQoZSwzKTsKK3MuYWRkUmFu
Z2Uocik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50IiwgZmFsc2UsIG51bGwpOwordGV4
dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYn
KS5pbm5lckhUTUwpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKS5hcHBlbmRDaGlsZCgg
dGV4dCApOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWRpdi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
bmVzdGVkLWRpdi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3RzIGluZGVudGluZyBuZXN0ZWQgZGl2cy4gQnkg
aW5kZW50aW5nICJoZWxsbyIsIHdlIHNob3VsZCBiZSBhYmxlIHRvIGVuY2xvc2UgYWxsIHRocmVl
IGJsb2NrcyAxIHRocm91Z2ggMyBieSBhIGJsb2NrcXVvdGUKKworaGVsbG8KKzxibG9ja3F1b3Rl
IGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQw
cHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4OyI+PGRpdiBpZD0iYmxvY2sxIj48ZGl2IGlk
PSJibG9jazIiPjxkaXYgaWQ9ImJsb2NrMyI+aGVsbG88L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2Nr
cXVvdGU+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0
ZWQtZGl2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtbmVzdGVkLWRpdi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWRpdi5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIwIEBACis8cD5UaGlzIHRlc3RzIGluZGVudGluZyBuZXN0ZWQgZGl2cy4gIEJ5IGlu
ZGVudGluZyAiaGVsbG8iLCB3ZSBzaG91bGQgYmUgYWJsZSB0byBlbmNsb3NlIGFsbCB0aHJlZSBi
bG9ja3MgMSB0aHJvdWdoIDMgYnkgYSBibG9ja3F1b3RlPC9wPgorPGRpdiBpZD0iZGl2IiBjb250
ZW50ZWRpdGFibGU9InRydWUiPgorPGRpdiBpZD0iYmxvY2sxIj48ZGl2IGlkPSJibG9jazIiPjxk
aXYgaWQ9ImJsb2NrMyI+aGVsbG88L2Rpdj48L2Rpdj48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0i
YyI+PC9kaXY+Cis8c2NyaXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYmxvY2szIik7Cit2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKK3ZhciByID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3Iuc2V0U3RhcnQoZSwwKTsKK3Iu
c2V0RW5kKGUsMSk7CitzLmFkZFJhbmdlKHIpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluZGVu
dCIsIGZhbHNlLCBudWxsKTsKK3RleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZGl2JykuaW5uZXJIVE1MKTsKK2RvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjJykuYXBwZW5kQ2hpbGQoIHRleHQgKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LW5lc3RlZC1saXN0cy0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
bmVzdGVkLWxpc3RzLTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBA
QCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmlj
YXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
Ci1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0
b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IExJID4gT0wgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gTEkgPiBPTCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3Rl
ZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IExJID4g
T0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBM
SSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZp
ZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIFRoaXMgdGVzdHMgaW5kZW50aW5nICJ0aHJlZSIuIFlv
dSBzaG91bGQgc2VlIG51bWJlcnMgMSBhbmQgMiBiZWZvcmUgInR3byIgYW5kICJ0aHJlZSIgcmVz
cGVjdGl2ZWx5LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
bmVzdGVkLWxpc3RzLTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0zLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1u
ZXN0ZWQtbGlzdHMtMy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBA
IEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE8KIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNh
dGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
LUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRv
RE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gTEkgPiBVTCA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBTUEFOID4gTEkgPiBVTCA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IExJID4gT0wgPiBP
TCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBMSSA+IE9M
ID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRD
aGFuZ2VOb3RpZmljYXRpb24KIFRoaXMgdGVzdHMgaW5kZW50aW5nICJ0aHJlZSIuIFlvdSBzaG91
bGQgc2VlIDEsIDIsIGFuZCAzIGJlZm9yZSAidHdvIiwgInRocmVlIiwgYW5kICJmb3VyIiByZXNw
ZWN0aXZlbHkuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1u
ZXN0ZWQtbGlzdHMtNC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5l
c3RlZC1saXN0cy00LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAg
RURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ETwogRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0
aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgot
RURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9E
T01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBMSSA+IFVMID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gNyBvZiAjdGV4dCA+IFNQQU4gPiBMSSA+IFVMID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxl
Y3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gTEkgPiBPTCA+IE9M
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IExJID4gT0wg
PiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENo
YW5nZU5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0cyBpbmRlbnRpbmcgInRocmVlIiBhbmQgImZvdXIi
LiBZb3Ugc2hvdWxkIHNlZSAxIHRocm91Z2ggNCBpbiBvcmRlciBiZWZvcmUgbnVtYmVycyAidHdv
IiB0aHJvdWdoICJmaXZlIi4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW5lc3RlZC1saXN0cy01LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbmVzdGVkLWxpc3RzLTUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcg
KzIsNyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdO
b3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihu
dWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IExJID4gVUwgPiBPTCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBMSSA+IFVMID4gT0wg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAg
b2YgI3RleHQgPiBMSSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA1IG9mICN0ZXh0ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6
RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBUaGlzIHRlc3RzIGluZGVu
dGluZyAidGhyZWUiLiBZb3Ugc2hvdWxkIHNlZSAxLCAyLCBhbmQgdGhlbiBhIGJ1bGxldCBiZWZv
cmUgbnVtYmVycyAidHdvIiwgInRocmVlIiwgYW5kICJmb3VyIiByZXNwZWN0aXZlbHkuCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBo
LWluLWJsb2NrcXVvdGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWluLWJsb2NrcXVvdGUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdHMgaW5kZW50aW5nIHRoZSBzZWNv
bmQgcGFyYWdyYXBoIGluIGEgYmxvY2txdW90ZS4gQnkgaW5kZW50aW5nICJ3b3JsZCIsIHdlIHNo
b3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGFyb3VuZCB3b3JsZCBpbnNpZGUgdGhlICJ0
ZXN0IiBibG9ja3F1b3RlLgorCitoZWxsbword29ybGQKKzxibG9ja3F1b3RlIGlkPSJ0ZXN0Ij4g
aGVsbG88YnI+PGJsb2NrcXVvdGUgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIgc3R5
bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7Ij4gd29y
bGQgPC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29u
ZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1
b3RlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKzxwPlRoaXMgdGVzdHMgaW5k
ZW50aW5nIHRoZSBzZWNvbmQgcGFyYWdyYXBoIGluIGEgYmxvY2txdW90ZS4gIEJ5IGluZGVudGlu
ZyAid29ybGQiLCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBhcm91bmQgd29y
bGQgaW5zaWRlIHRoZSAidGVzdCIgYmxvY2txdW90ZS48L3A+Cis8ZGl2IGlkPSJkaXYiIGNvbnRl
bnRlZGl0YWJsZT0idHJ1ZSI+Cis8YmxvY2txdW90ZSBpZD0idGVzdCI+CitoZWxsbzxicj4KK3dv
cmxkCis8L2Jsb2NrcXVvdGU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImMiPjwvZGl2PgorPHNjcmlwdD4K
KworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3QiKTsKK3ZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwordmFyIHIgPSBkb2N1bWVudC5j
cmVhdGVSYW5nZSgpOworci5zZXRTdGFydChlLDIpOworci5zZXRFbmQoZSwzKTsKK3MuYWRkUmFu
Z2Uocik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50IiwgZmFsc2UsIG51bGwpOwordGV4
dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYn
KS5pbm5lckhUTUwpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKS5hcHBlbmRDaGlsZCgg
dGV4dCApOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0yLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9l
eGVjQ29tbWFuZC80NjQxODgwLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBAIEVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmcKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAwIG9mICN0ZXh0ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDM0IG9mICN0ZXh0ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IEJMT0NLUVVPVEUg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzNSBvZiAjdGV4dCA+IEJMT0NLUVVP
VEUgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFm
ZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFu
Z2VOb3RpZmljYXRpb24KIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMApAQCAtMjQsNSArMjQs
NSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAyNDZ4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDI0NjogIlRoaXMgcGFyYWdyYXBoIHNob3VsZCBub3QgYmUgaW5kZW50ZWQuIgogICAg
ICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI0NiwxNCkgc2l6ZSAweDAKLXNlbGVjdGlvbiBzdGFy
dDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0g
b2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBk
b2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAzNCBvZiBjaGlsZCAwIHsjdGV4dH0g
b2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZ
fSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlv
biAxIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAy
IHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50Citz
ZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDM1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAw
IHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxk
IDAge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRp
dGluZy9leGVjQ29tbWFuZC80OTE2NTQxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80OTE2NTQxLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9leGVjQ29tbWFuZC80OTE2NTQxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAs
MTEgKzEwLDEzIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDE4KSB3aWR0aCAzMjA6ICInZm9vJyBhbmQgJ2JhcicgYmVmb3JlIGFuZCBhZnRl
ciB0aGUgaW5kZW50IG9wZXJhdGlvbi4iCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1
Mikgc2l6ZSA3ODR4MzYKICAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg0MCww
KSBzaXplIDc0NHgzNgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDIxeDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMTogImZvbyIKKyAg
ICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjF4MTgKKyAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxeDE4CisgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIxOiAiZm9vIgogICAgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDIxLDE0KSBzaXplIDB4MAotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwxOCkgc2l6ZSAyMHgxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDIw
OiAiYmFyIgorICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgx
OAorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4KSBzaXplIDIweDE4Cisg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAyMDogImJhciIKICAgICAgICAg
UmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMzYpIHNpemUgNzg0eDAKLXNlbGVjdGlvbiBz
dGFydDogcG9zaXRpb24gMSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9U
RX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBv
ZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAyIG9mIGNoaWxkIDIgeyN0ZXh0
fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JP
RFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0
aW9uIDEgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge1NQQU59IG9mIGNoaWxkIDAge0JM
T0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7
SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMiBvZiBjaGlsZCAw
IHsjdGV4dH0gb2YgY2hpbGQgMiB7U1BBTn0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hp
bGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVu
dApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEz
ODQ0MS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEzODQ0MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ1NTY0
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEzODQ0
MS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwLDEwICsxMCwxMiBAQCBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGgg
Nzc2OiAiRm9ybWF0QmxvY2sgdG8gaW1wbGVtZW50IGEgXCJRdW90ZSBUZXh0XCIgZmVhdHVyZSwg
YW5kIHN0eWxlIHJ1bGVzIGZvciBibG9ja3F1b3RlcyBhcHBlYXJlZCBvbiB0aGUgYmxvY2txdW90
ZXMgdGhhdCB3ZSB1c2UiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDE0OTog
InRvIGltcGxlbWVudCBpbmRlbnRpbmcuIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
NzApIHNpemUgNzg0eDYyCi0gICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAs
MCkgc2l6ZSA3NDR4MTgKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyMzB4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIzMDogIlRoaXMg
c2hvdWxkIGJlIGluZGVudGVkLCBub3QgcXVvdGVkLiIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9U
RX0gYXQgKDQwLDApIHNpemUgNzQ0eDE4CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAyMzB4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMjMwOiAiVGhpcyBzaG91bGQgYmUgaW5kZW50ZWQsIG5vdCBxdW90ZWQuIgorICAgICAgICAg
IFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDE4KSBzaXplIDc4NHgwCiAgICAgICAgIFJl
bmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoOCwyNikgc2l6ZSA3Njh4MzYgW2JvcmRlcjogKDFw
eCBkYXNoZWQgI0FBQUFBQSldCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg5LDkp
IHNpemUgMTc1eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOSw5KSB3aWR0aCAxNzU6ICJU
aGlzIHRleHQgc2hvdWxkIGJlIFF1b3RlZC4iCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAw
IHsjdGV4dH0gb2YgY2hpbGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMyB7RElWfSBvZiBjaGls
ZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorY2FyZXQ6IHBvc2l0aW9u
IDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDEg
e0RJVn0gb2YgY2hpbGQgMyB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1M
fSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvNTQ4MTUyMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTQ4MTUyMy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvNTQ4MTUyMy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDUg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICAgICAgICBSZW5kZXJU
YWJsZUNlbGwge1REfSBhdCAoNDUsMjYpIHNpemUgMzR4MjIgW2JvcmRlcjogKDFweCBpbnNldCAj
ODA4MDgwKV0gW3I9MSBjPTEgcnM9MSBjcz0xXQogICAgICAgICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6ZSAzMHgxOAogICAgICAgICAgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyLDIpIHdpZHRoIDMwOiAiRm91ciIKLSAgICAgICAgICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICgwLDUyKSBzaXplIDcwNHgwCi0gICAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDUyKSBzaXplIDc4NHgwCiBzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9u
IDAgb2YgY2hpbGQgMCB7VEFCTEV9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDEg
e0JMT0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQg
MCB7SFRNTH0gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMSBvZiBjaGls
ZCAwIHtUQUJMRX0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMSB7QkxPQ0tRVU9U
RX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBv
ZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAyIG9mIGNoaWxkIDAge1RBQkxF
fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGls
ZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9l
eGVjQ29tbWFuZC9pbmRlbnQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMyw3ICszLDcgQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZwog
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBCTE9D
S1FVT1RFID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IEJM
T0NLUVVPVEUgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVj
dGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxF
R0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDAgb2YgI3RleHQgPiBTUEFOID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBTUEFOID4gQkxPQ0tRVU9URSA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlv
bgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCkBAIC0xNyw0MiArMTcsNDMgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAo
MCwxOCkgc2l6ZSA3ODR4MTgKICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4
MTgKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgxOTQKLSAgICAg
ICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg0MCwwKSBzaXplIDc0NHg1NAorICAgICAg
ICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDApIHNpemUgNzQ0eDE5NAogICAgICAg
ICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzQ0eDM2Ci0gICAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MngxOAotICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MjogIkxvcmVtIgorICAgICAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQyeDE4CisgICAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQyeDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDI6ICJMb3JlbSIKICAgICAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDQyLDE0KSBzaXplIDB4MAogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4
KSBzaXplIDgzeDE4CiAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCA4Mzog
Im1vcmUgTG9yZW0hIgotICAgICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAs
MzYpIHNpemUgNzA0eDE4Ci0gICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAzOHgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzODogImlw
c3VtIgotICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw1NCkgc2l6ZSA3ODR4
MAotICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDcwKSBzaXplIDc0NHg1
NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtVTH0gYXQgKDAsMCkgc2l6ZSA3NDR4NTQKLSAgICAg
ICAgICAgIFJlbmRlckJsb2NrIHtVTH0gYXQgKDQwLDApIHNpemUgNzA0eDU0CisgICAgICAgICAg
UmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg0MCwzNikgc2l6ZSA3MDR4MTIyCisgICAgICAg
ICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDcwNHgxOAorICAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOHgxOAorICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM4OiAiaXBzdW0iCisgICAgICAgICAgICAg
IFJlbmRlckJSIHtCUn0gYXQgKDM4LDE0KSBzaXplIDB4MAorICAgICAgICAgICAgUmVuZGVyQmxv
Y2sge1VMfSBhdCAoMCwzNCkgc2l6ZSA3MDR4NTQKICAgICAgICAgICAgICAgUmVuZGVyTGlzdEl0
ZW0ge0xJfSBhdCAoNDAsMCkgc2l6ZSA2NjR4MTgKLSAgICAgICAgICAgICAgICBSZW5kZXJMaXN0
TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiB3aGl0ZSBidWxsZXQKKyAgICAgICAgICAgICAg
ICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiBidWxsZXQKICAgICAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNXgxOAogICAgICAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjU6ICJGb28iCiAgICAgICAgICAgICAg
IFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE4KSBzaXplIDY2NHgxOAotICAgICAgICAgICAg
ICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IHdoaXRlIGJ1bGxldAor
ICAgICAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IGJ1
bGxldAogICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIz
eDE4CiAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMzogIkJhciIK
ICAgICAgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMzYpIHNpemUgNjY0eDE4
Ci0gICAgICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODog
d2hpdGUgYnVsbGV0CisgICAgICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDAp
IHNpemUgN3gxODogYnVsbGV0CiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMjV4MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDI1OiAiQmF6IgotICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDE0
MCkgc2l6ZSA3NDR4NTQKLSAgICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQw
LDApIHNpemUgNzA0eDE4Ci0gICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAzN3gxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzogIkRv
bG9yIgotICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDE4KSBzaXplIDc0
NHgzNgorICAgICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTA0KSBzaXpl
IDcwNHgxOAorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAz
N3gxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3OiAiRG9sb3Ii
CisgICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTU4KSBzaXplIDc0NHgz
NgogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzR4MTgKICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzQ6ICJTdW0hIgogICAgICAgICAg
ICAgUmVuZGVyQlIge0JSfSBhdCAoMzQsMTQpIHNpemUgMHgwCi0gICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMTgpIHNpemUgMzh4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMTgpIHdpZHRoIDM4OiAiVGhpbmciCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgMzh4MTgKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDE4KSBzaXplIDM4eDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgp
IHdpZHRoIDM4OiAiVGhpbmciCiAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgw
LDE5NCkgc2l6ZSA3ODR4MAotc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAg
eyN0ZXh0fSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCA0IHtESVZ9IG9mIGNoaWxk
IDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAg
IHBvc2l0aW9uIDUgb2YgY2hpbGQgMyB7I3RleHR9IG9mIGNoaWxkIDMge0JMT0NLUVVPVEV9IG9m
IGNoaWxkIDQge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9j
dW1lbnQKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK3Nl
bGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7
U1BBTn0gb2YgY2hpbGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgNCB7RElWfSBvZiBjaGlsZCAx
IHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBw
b3NpdGlvbiA1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCA2IHtTUEFOfSBvZiBjaGlsZCAx
IHtCTE9DS1FVT1RFfSBvZiBjaGlsZCA0IHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxk
IDAge0hUTUx9IG9mIGRvY3VtZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32436</attachid>
            <date>2009-07-08 00:55:39 -0700</date>
            <delta_ts>2009-07-08 16:41:35 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>fix26816c</filename>
            <type>text/plain</type>
            <size>43292</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTYyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDktMDctMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmcgb2YgaW5kZW50UmVnaW9uIHRvIGZpeCBidWdzIDI2ODE2IGFuZCAyNTMxNworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MTYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzE3CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk5NSAocGFydGlhbGx5
KQorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9k
ZSwgYSBzaW1wbGVyIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgbW92ZVBhcmFncmFwaAorICAgICAg
ICBhbmQgcmVwbGFjZXMgYWxsIGNhbGxzIGluc2lkZSBpbmRlbnRSZWdpb24uIFRoZSBmb2xsb3dp
bmcgaXMgdGhlIG5ldyBiZWhhdmlvciBvZiBpbmRlbnRSZWdpb24uCisKKyAgICAgICAgMS4gV2Ug
dHJ5IHRvIGluZGVudCBhcyBtYW55IHdyYXBwaW5nIG5vZGVzIGFzIHBvc3NpYmxlLgorICAgICAg
ICAgICBlLmcuIHdoZW4gaW5kZW50aW5nICJoZWxsbyIgaW4gPGRpdj5oZWxsbzwvZGl2Piwgd2Ug
dHJ5IHRvIGluZGVudCBkaXYgYXMgd2VsbC4KKyAgICAgICAgMi4gV2UgZG8gbm90IGRlbGV0ZSBh
bnkgd3JhcHBpbmcgZWxlbWVudHMKKyAgICAgICAgICAgV2l0aCBtb3ZlUGFyYWdyYXBoLCB3ZSB1
c2VkIHRvIHJlbW92ZSBhbGwgd3JhcHBpbmcgbm9kZXMsIGFuZCByZXBsYWNlZCB3aXRoIGEgYmxv
Y2txdW90ZS4KKyAgICAgICAgICAgVGhpcyB3YXMgY2F1c2luZyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5OTUgZm9yIGluZGVudGF0aW9uLgorICAgICAgICAgICBX
aXRoIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlLCB3ZSBjYW4gcHJlc2VydmUgYWxsIHdyYXBwaW5n
IG5vZGVzLgorICAgICAgICAzLiBXZSBvbmx5IHNwbGl0IHRoZSB0cmVlIHVudGlsIHRoZSBjbG9z
ZXN0IGJsb2NrIG5vZGUgaW5zdGVhZCBvZiB1bnRpbCB0aGUgcm9vdCBlZGl0YWJsZSBub2RlLgor
ICAgICAgICAgICBUaGlzIGJlaGF2aW9yYWwgY2hhbmdlIGZpeGVzIHRoZSBidWcgMjUzMTcuCisg
ICAgICAgIDQuIFdoZW4gbXVsdGlwbGUgcGFyYWdyYXBocyBhcmUgaW5kZW50ZWQsIHdlIGluZGVu
dCB0aGUgaGlnaGVzdCBjb21tb24gYW5jZXN0b3Igd2l0aGluIHRoZSBzZWxlY3Rpb24uCisgICAg
ICAgICAgIGUuZy4gd2hlbiBhIGxpc3QgaXMgYSBjaGlsZCBub2RlIG9mIGEgZGl2LCBhbmQgdGhl
IGVudGlyZSBkaXYgaXMgaW50ZW5kZWQsCisgICAgICAgICAgICAgICAgd2UgZW5jbG9zZSB0aGUg
ZGl2IGJ5IGEgc2luZ2xlIGJsb2NrcXVvdGUuCisKKyAgICAgICAgTm90ZSB0aGF0IG5ldyBiZWhh
dmlvciBpcyBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIEludGVybmV0IEV4cGxvcmVyIGFu
ZCBGaXJlZm94LgorICAgICAgICBUbyBkZW1vbnN0cmF0ZSB0aGlzLCB0aGUgZm9sbG93aW5nIHRl
c3RzIGFyZSBhZGRlZC4KKworICAgICAgICBUZXN0czogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtZGl2LWluc2lkZS1saXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5kOjp0cnlJbmRlbnRpbmdBc0xpc3RJdGVtKTog
dXNlcyBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZSBub3cKKyAgICAgICAgKFdlYkNvcmU6OkluZGVu
dE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRvQmxvY2txdW90ZSk6IHVzZXMgYXBwZW5kUGFyYWdy
YXBoSW50b05vZGUgbm93CisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6
YXBwZW5kUGFyYWdyYXBoSW50b05vZGUpOiByZW1vdmVzIGEgcGFyYWdyYXBoIGFuZCBhcHBlbmRz
IGl0IHRvIGEgbmV3IG5vZGUKKyAgICAgICAgKFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5k
OjpyZW1vdmVVbm5lY2Vzc2FyeUxpbmVCcmVha0F0KTogcmVtb3ZlcyBhIGJyZWFrIGVsZW1lbnQg
YXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbgorICAgICAgICAoV2ViQ29yZTo6SW5kZW50T3V0ZGVu
dENvbW1hbmQ6OmluZGVudFJlZ2lvbik6IGV4aGliaXRzIHRoZSBkZXNjcmliZWQgYmVoYXZpb3IK
KyAgICAgICAgKiBlZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmg6IHVwZGF0ZWQgcHJvdG90
eXBlCisKIDIwMDktMDctMDcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFdlYkNvcmUvZWRpdGlu
Zy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5n
L0luZGVudE91dGRlbnRDb21tYW5kLmNwcAkocmV2aXNpb24gNDU1NjQpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oIgogI2luY2x1ZGUgIklu
c2VydExpc3RDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiU3BsaXRFbGVtZW50Q29tbWFuZC5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCkBAIC0xMTUsMjEgKzEx
NiwyMCBAQCBib29sIEluZGVudE91dGRlbnRDb21tYW5kOjp0cnlJbmRlbnRpbmdBCiAgICAgaWYg
KCFsaXN0Tm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSFRNTEVsZW1lbnQqIHNl
bGVjdGVkTGlzdEl0ZW0gPSBlbmNsb3NpbmdMaXN0Q2hpbGQobGFzdE5vZGVJblNlbGVjdGVkUGFy
YWdyYXBoKTsKKyAgICAvLyBGaW5kIHRoZSBsaXN0IGl0ZW0gZW5jbG9zaW5nIHRoZSBjdXJyZW50
IHBhcmFncmFwaAorICAgIEVsZW1lbnQqIHNlbGVjdGVkTGlzdEl0ZW0gPSBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4oZW5jbG9zaW5nQmxvY2soZW5kT2ZDdXJyZW50UGFyYWdyYXBoLmRlZXBFcXVpdmFs
ZW50KCkubm9kZSgpKSk7CisgICAgLy8gRklYTUU6IHdlIG5lZWQgdG8gZGVhbCB3aXRoIHRoZSBj
YXNlIHdoZXJlIHRoZXJlIGlzIG5vIGxpIChtYWxmb3JtZWQgSFRNTCkKKyAgICBpZiAoIXNlbGVj
dGVkTGlzdEl0ZW0tPmhhc1RhZ05hbWUobGlUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAvLyBGSVhNRTogcHJldmlvdXNFbGVtZW50U2libGluZyBkb2VzIG5vdCBpZ25vcmUgbm9u
LXJlbmRlcmVkIGNvbnRlbnQgbGlrZSA8c3Bhbj48L3NwYW4+LiAgU2hvdWxkIHdlPwogICAgIEVs
ZW1lbnQqIHByZXZpb3VzTGlzdCA9IHNlbGVjdGVkTGlzdEl0ZW0tPnByZXZpb3VzRWxlbWVudFNp
YmxpbmcoKTsKICAgICBFbGVtZW50KiBuZXh0TGlzdCA9IHNlbGVjdGVkTGlzdEl0ZW0tPm5leHRF
bGVtZW50U2libGluZygpOwotCisgICAgCiAgICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0xpc3QgPSBk
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGxpc3ROb2RlLT50YWdRTmFtZSgpLCBmYWxzZSk7Ci0g
ICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0xpc3RJdGVtID0gc2VsZWN0ZWRMaXN0SXRlbS0+Y2xvbmVF
bGVtZW50V2l0aG91dENoaWxkcmVuKCk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHBsYWNlaG9sZGVy
ID0gY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpOwogICAgIGluc2VydE5vZGVCZWZvcmUo
bmV3TGlzdCwgc2VsZWN0ZWRMaXN0SXRlbSk7Ci0gICAgYXBwZW5kTm9kZShuZXdMaXN0SXRlbSwg
bmV3TGlzdCk7Ci0gICAgYXBwZW5kTm9kZShwbGFjZWhvbGRlciwgbmV3TGlzdEl0ZW0pOwotCi0g
ICAgbW92ZVBhcmFncmFwaChzdGFydE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCks
IGVuZE9mQ3VycmVudFBhcmFncmFwaCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHBsYWNlaG9s
ZGVyLCAwKSksIHRydWUpOwotCisgICAgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUobmV3TGlzdC5n
ZXQoKSwgdmlzaWJsZVBvc2l0aW9uQmVmb3JlTm9kZShzZWxlY3RlZExpc3RJdGVtKSwgdmlzaWJs
ZVBvc2l0aW9uQWZ0ZXJOb2RlKHNlbGVjdGVkTGlzdEl0ZW0pKTsKKyAgICAKICAgICBpZiAoY2Fu
TWVyZ2VMaXN0cyhwcmV2aW91c0xpc3QsIG5ld0xpc3QuZ2V0KCkpKQogICAgICAgICBtZXJnZUlk
ZW50aWNhbEVsZW1lbnRzKHByZXZpb3VzTGlzdCwgbmV3TGlzdCk7CiAgICAgaWYgKGNhbk1lcmdl
TGlzdHMobmV3TGlzdC5nZXQoKSwgbmV4dExpc3QpKQpAQCAtMTM4LDI5ICsxMzgsMjcgQEAgYm9v
bCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6dHJ5SW5kZW50aW5nQQogICAgIHJldHVybiB0cnVlOwog
fQogICAgIAotdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6aW5kZW50SW50b0Jsb2NrcXVvdGUo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgZW5kT2ZOZXh0UGFyYWdyYXBoLCBSZWZQdHI8RWxlbWVudD4mIHRhcmdldEJs
b2NrcXVvdGUpCit2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRvQmxvY2txdW90
ZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgUmVmUHRyPEVsZW1lbnQ+JiB0
YXJnZXRCbG9ja3F1b3RlLCBOb2RlKiBub2RlVG9TcGxpdFRvKQogewogICAgIE5vZGUqIGVuY2xv
c2luZ0NlbGwgPSAwOwogCiAgICAgaWYgKCF0YXJnZXRCbG9ja3F1b3RlKSB7Ci0gICAgICAgIC8v
IENyZWF0ZSBhIG5ldyBibG9ja3F1b3RlIGFuZCBpbnNlcnQgaXQgYXMgYSBjaGlsZCBvZiB0aGUg
cm9vdCBlZGl0YWJsZSBlbGVtZW50LiBXZSBhY2NvbXBsaXNoCisgICAgICAgIC8vIENyZWF0ZSBh
IG5ldyBibG9ja3F1b3RlIGFuZCBpbnNlcnQgaXQgYXMgYSBjaGlsZCBvZiB0aGUgZW5jbG9zaW5n
IGJsb2NrIGVsZW1lbnQuIFdlIGFjY29tcGxpc2gKICAgICAgICAgLy8gdGhpcyBieSBzcGxpdHRp
bmcgYWxsIHBhcmVudHMgb2YgdGhlIGN1cnJlbnQgcGFyYWdyYXBoIHVwIHRvIHRoYXQgcG9pbnQu
CiAgICAgICAgIHRhcmdldEJsb2NrcXVvdGUgPSBjcmVhdGVJbmRlbnRCbG9ja3F1b3RlRWxlbWVu
dChkb2N1bWVudCgpKTsKLSAgICAgICAgUG9zaXRpb24gc3RhcnQgPSBzdGFydE9mUGFyYWdyYXBo
KGVuZE9mQ3VycmVudFBhcmFncmFwaCkuZGVlcEVxdWl2YWxlbnQoKTsKLSAgICAgICAgZW5jbG9z
aW5nQ2VsbCA9IGVuY2xvc2luZ05vZGVPZlR5cGUoc3RhcnQsICZpc1RhYmxlQ2VsbCk7Ci0gICAg
ICAgIE5vZGUqIG5vZGVUb1NwbGl0VG8gPSBlbmNsb3NpbmdDZWxsID8gZW5jbG9zaW5nQ2VsbCA6
IGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKHN0YXJ0KTsKLSAgICAgICAgUmVmUHRyPE5vZGU+IHN0
YXJ0T2ZOZXdCbG9jayA9IHNwbGl0VHJlZVRvTm9kZShzdGFydC5ub2RlKCksIG5vZGVUb1NwbGl0
VG8pOworICAgICAgICBpZiAoaXNUYWJsZUNlbGwobm9kZVRvU3BsaXRUbykpCisgICAgICAgICAg
ICBlbmNsb3NpbmdDZWxsID0gbm9kZVRvU3BsaXRUbzsKKyAgICAgICAgUmVmUHRyPE5vZGU+IHN0
YXJ0T2ZOZXdCbG9jayA9IHNwbGl0VHJlZVRvTm9kZShzdGFydE9mQ3VycmVudFBhcmFncmFwaC5k
ZWVwRXF1aXZhbGVudCgpLm5vZGUoKSwgbm9kZVRvU3BsaXRUbyk7CiAgICAgICAgIGluc2VydE5v
ZGVCZWZvcmUodGFyZ2V0QmxvY2txdW90ZSwgc3RhcnRPZk5ld0Jsb2NrKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8RWxlbWVudD4gaW5zZXJ0aW9uUG9pbnQgPSBwcmVwYXJlQmxvY2txdW90ZUxldmVs
Rm9ySW5zZXJ0aW9uKGVuZE9mQ3VycmVudFBhcmFncmFwaCwgdGFyZ2V0QmxvY2txdW90ZSk7Cisg
ICAgVmlzaWJsZVBvc2l0aW9uIGVuZE9mTmV4dFBhcmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGVu
ZE9mQ3VycmVudFBhcmFncmFwaC5uZXh0KCkpOworICAgIGFwcGVuZFBhcmFncmFwaEludG9Ob2Rl
KHRhcmdldEJsb2NrcXVvdGUuZ2V0KCksIHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBlbmRPZkN1
cnJlbnRQYXJhZ3JhcGgpOwogCiAgICAgLy8gRG9uJ3QgcHV0IHRoZSBuZXh0IHBhcmFncmFwaCBp
biB0aGUgYmxvY2txdW90ZSB3ZSBqdXN0IGNyZWF0ZWQgZm9yIHRoaXMgcGFyYWdyYXBoIHVubGVz
cyAKICAgICAvLyB0aGUgbmV4dCBwYXJhZ3JhcGggaXMgaW4gdGhlIHNhbWUgY2VsbC4KICAgICBp
ZiAoZW5jbG9zaW5nQ2VsbCAmJiBlbmNsb3NpbmdDZWxsICE9IGVuY2xvc2luZ05vZGVPZlR5cGUo
ZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCksICZpc1RhYmxlQ2VsbCkpCiAgICAg
ICAgIHRhcmdldEJsb2NrcXVvdGUgPSAwOwotCi0gICAgbW92ZVBhcmFncmFwaChzdGFydE9mUGFy
YWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCksIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgVmlz
aWJsZVBvc2l0aW9uKFBvc2l0aW9uKGluc2VydGlvblBvaW50LCAwKSksIHRydWUpOwogfQogCiBi
b29sIEluZGVudE91dGRlbnRDb21tYW5kOjppc0F0VW5zcGxpdHRhYmxlRWxlbWVudChjb25zdCBQ
b3NpdGlvbiYgcG9zKSBjb25zdApAQCAtMTY5LDEzICsxNjcsNjQgQEAgYm9vbCBJbmRlbnRPdXRk
ZW50Q29tbWFuZDo6aXNBdFVuc3BsaXR0YQogICAgIHJldHVybiBub2RlID09IGVkaXRhYmxlUm9v
dEZvclBvc2l0aW9uKHBvcykgfHwgbm9kZSA9PSBlbmNsb3NpbmdOb2RlT2ZUeXBlKHBvcywgJmlz
VGFibGVDZWxsKTsKIH0KIAorLy8gRW5jbG9zZSBhbGwgbm9kZXMgYmV0d2VlbiBzdGFydCBhbmQg
ZW5kIGJ5IG5ld1BhcmVudCwgd2hpY2ggaXMgYSBzaWJsaW5nIG5vZGUgb2Ygbm9kZXMgYmV0d2Vl
biBzdGFydCBhbmQgZW5kCisvLyBGSVhNRTogbW92ZVBhcmFncmFwaCBpcyBvdmVybHkgY29tcGxp
Y2F0ZWQuICBXZSBuZWVkIHRvIGNsZWFuIHVwIG1vdmVQYXJhZ3JhcGggc28gdGhhdCBpdCB1c2Vz
IGFwcGVuZFBhcmFncmFwaEludG9Ob2RlCisvLyBvciBwcmVwYXJlIG1vcmUgc3BlY2lhbGl6ZWQg
ZnVuY3Rpb25zIGFuZCBkZWxldGUgbW92ZVBhcmFncmFwaAordm9pZCBJbmRlbnRPdXRkZW50Q29t
bWFuZDo6YXBwZW5kUGFyYWdyYXBoSW50b05vZGUoTm9kZSogbmV3UGFyZW50LCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZCkKK3sKKyAgICBB
U1NFUlQobmV3UGFyZW50KTsKKyAgICBBU1NFUlQobmV3UGFyZW50LT5pc0NvbnRlbnRFZGl0YWJs
ZSgpKTsKKyAgICBBU1NFUlQoaXNTdGFydE9mUGFyYWdyYXBoKHN0YXJ0KSAmJiBpc0VuZE9mUGFy
YWdyYXBoKGVuZCkpOworCisgICAgUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGggPSBlbmQuZGVlcEVx
dWl2YWxlbnQoKS5kb3duc3RyZWFtKCk7CisgICAgTm9kZSogaW5zZXJ0aW9uUG9pbnQgPSBuZXdQ
YXJlbnQtPmxhc3RDaGlsZCgpOy8vIFJlbWVtYmVyIHRoZSBwbGFjZSB0byBwdXQgYnIgbGF0ZXIK
KyAgICAvLyBMb29rIGZvciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsYXN0IHBhcmFncmFwaCBpbiBu
ZXdQYXJlbnQKKyAgICBOb2RlKiBzdGFydE9mTGFzdFBhcmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3Jh
cGgoUG9zaXRpb24obmV3UGFyZW50LCBuZXdQYXJlbnQtPmNoaWxkTm9kZUNvdW50KCkpKS5kZWVw
RXF1aXZhbGVudCgpLm5vZGUoKTsKKyAgICBpZiAoc3RhcnRPZkxhc3RQYXJhZ3JhcGggJiYgIXN0
YXJ0T2ZMYXN0UGFyYWdyYXBoLT5pc0Rlc2NlbmRhbnRPZihuZXdQYXJlbnQpKQorICAgICAgICBz
dGFydE9mTGFzdFBhcmFncmFwaCA9IDA7CisKKyAgICAvLyBFeHRlbmQgdGhlIHJhbmdlIHNvIHRo
YXQgd2UgY2FuIGFwcGVuZCB3cmFwcGluZyBub2RlcyBhcyB3ZWxsIGlmIHRoZXkncmUgY29udGFp
bmQgd2l0aGluIHRoZSBwYXJhZ3JhcGgKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBS
ZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBjcmVhdGVSYW5nZShkb2N1bWVudCgpLCBzdGFy
dCwgZW5kLCBlYyk7CisgICAgUmVmUHRyPFJhbmdlPiBleHRlbmRlZFJhbmdlID0gZXh0ZW5kUmFu
Z2VUb1dyYXBwaW5nTm9kZXMoc2VsZWN0ZWRSYW5nZSwgc2VsZWN0ZWRSYW5nZSwgbmV3UGFyZW50
LT5wYXJlbnROb2RlKCkpOworICAgIG5ld1BhcmVudC0+YXBwZW5kQ2hpbGQoZXh0ZW5kZWRSYW5n
ZS0+ZXh0cmFjdENvbnRlbnRzKGVjKSwgZWMpOworCisgICAgLy8gSWYgdGhlIHN0YXJ0IG9mIHBh
cmFncmFwaCBkaWRuJ3QgY2hhbmdlIGJ5IGFwcGVuZGluZyBub2Rlcywgd2Ugc2hvdWxkIGluc2Vy
dCBiciB0byBzZXBlcmF0ZSB0aGUgcGFyYWdyYXBocy4KKyAgICBOb2RlKiBzdGFydE9mTmV3UGFy
YWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChQb3NpdGlvbihuZXdQYXJlbnQsIG5ld1BhcmVudC0+
Y2hpbGROb2RlQ291bnQoKSkpLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgIGlmIChzdGFy
dE9mTmV3UGFyYWdyYXBoID09IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoKSB7CisgICAgICAgIGlmIChp
bnNlcnRpb25Qb2ludCkKKyAgICAgICAgICAgIG5ld1BhcmVudC0+aW5zZXJ0QmVmb3JlKGNyZWF0
ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKSwgaW5zZXJ0aW9uUG9pbnQtPm5leHRTaWJsaW5nKCks
IGVjKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3UGFyZW50LT5hcHBlbmRDaGlsZChj
cmVhdGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGVjKTsKKyAgICB9CisKKyAgICAvLyBSZW1v
dmUgdW5uZWNlc3NhcnkgYnIgZnJvbSB0aGUgcGxhY2Ugd2hlcmUgd2UgbW92ZWQgdGhlIHBhcmFn
cmFwaCBmcm9tCisgICAgcmVtb3ZlVW5uZWNlc3NhcnlMaW5lQnJlYWtBdChlbmRPZlBhcmFncmFw
aCk7Cit9CisKK3ZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OnJlbW92ZVVubmVjZXNzYXJ5TGlu
ZUJyZWFrQXQoY29uc3QgUG9zaXRpb24mIGVuZE9mUGFyYWdyYXBoKQoreworICAgIC8vIElmIHRo
ZXJlIGlzIHNvbWV0aGluZyBpbiB0aGlzIHBhcmFncmFwaCwgdGhlbiBkb24ndCByZW1vdmUgYnIu
CisgICAgaWYgKCFpc1N0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZQYXJhZ3JhcGgpIHx8ICFpc0VuZE9m
UGFyYWdyYXBoKGVuZE9mUGFyYWdyYXBoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ug
b25seSBjYXJlIGFib3V0IHRoZSBiciBhdCB0aGUgZW5kIG9mIHBhcmFncmFwaAorICAgIE5vZGUq
IGJyID0gZW5kT2ZQYXJhZ3JhcGgubm9kZSgpOworICAgIE5vZGUqIHBhcmVudE5vZGUgPSBici0+
cGFyZW50Tm9kZSgpOworCisgICAgLy8gSWYgdGhlIG5vZGUgaXNuJ3QgYnIgb3IgdGhlIHBhcmVu
dCBub2RlIGlzIGVtcHR5LCB0aGVuIGRvbid0IHJlbW92ZS4KKyAgICBpZiAoIWJyLT5oYXNUYWdO
YW1lKGJyVGFnKSB8fCBpc1Zpc2libHlBZGphY2VudChwb3NpdGlvbkJlZm9yZU5vZGUocGFyZW50
Tm9kZSksIHBvc2l0aW9uQWZ0ZXJOb2RlKHBhcmVudE5vZGUpKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcmVtb3ZlTm9kZUFuZFBydW5lQW5jZXN0b3JzKGJyKTsKK30KKwogdm9pZCBJbmRlbnRP
dXRkZW50Q29tbWFuZDo6aW5kZW50UmVnaW9uKCkKIHsKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNl
bGVjdGlvbiA9IHNlbGVjdGlvbkZvclBhcmFncmFwaEl0ZXJhdGlvbihlbmRpbmdTZWxlY3Rpb24o
KSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZTZWxlY3Rpb24gPSBzZWxlY3Rpb24udmlz
aWJsZVN0YXJ0KCk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZE9mU2VsZWN0aW9uID0gc2VsZWN0
aW9uLnZpc2libGVFbmQoKTsKLSAgICBpbnQgc3RhcnRJbmRleCA9IGluZGV4Rm9yVmlzaWJsZVBv
c2l0aW9uKHN0YXJ0T2ZTZWxlY3Rpb24pOwotICAgIGludCBlbmRJbmRleCA9IGluZGV4Rm9yVmlz
aWJsZVBvc2l0aW9uKGVuZE9mU2VsZWN0aW9uKTsKKyAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVk
UmFuZ2UgPSBzZWxlY3Rpb24uZmlyc3RSYW5nZSgpOwogCiAgICAgQVNTRVJUKCFzdGFydE9mU2Vs
ZWN0aW9uLmlzTnVsbCgpKTsKICAgICBBU1NFUlQoIWVuZE9mU2VsZWN0aW9uLmlzTnVsbCgpKTsK
QEAgLTIwMCwxMCArMjQ5LDIzIEBAIHZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmluZGVudFJl
Z2lvbigKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZE9mTmV4dFBhcmFncmFwaCA9IGVuZE9m
UGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaC5uZXh0KCkpOwogICAgICAgICBpZiAodHJ5
SW5kZW50aW5nQXNMaXN0SXRlbShlbmRPZkN1cnJlbnRQYXJhZ3JhcGgpKQogICAgICAgICAgICAg
YmxvY2txdW90ZUZvck5leHRJbmRlbnQgPSAwOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBp
bmRlbnRJbnRvQmxvY2txdW90ZShlbmRPZkN1cnJlbnRQYXJhZ3JhcGgsIGVuZE9mTmV4dFBhcmFn
cmFwaCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQpOwotICAgICAgICAgICAgLy8gYmxvY2txdW90
ZUZvck5leHRJbmRlbnQgbWF5YmUgdXBkYXRlZAotICAgICAgICAgICAgLy8gdGhpcyBpcyBkdWUg
dG8gdGhlIHdheSBwcmVwYXJlQmxvY2txdW90ZUxldmVsRm9ySW5zZXJ0aW9uIHdhcyBkZXNpZ25l
ZC4KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnRPZkN1
cnJlbnRQYXJhZ3JhcGggPSBzdGFydE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCk7
CisgICAgICAgICAgICBOb2RlKiBibG9ja05vZGUgPSBlbmNsb3NpbmdCbG9jayhlbmRPZkN1cnJl
bnRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCkpOworICAgICAgICAgICAgLy8gZXh0
ZW5kIHRoZSByZWdpb24gc28gdGhhdCBpdCBjb250YWlucyBhbGwgdGhlIGFuY2VzdG9yIGJsb2Nr
cyB3aXRoaW4gdGhlIHNlbGVjdGlvbgorICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAg
ICAgICAgICAgIEVsZW1lbnQqIHVuc3BsaXR0YWJsZU5vZGUgPSB1bnNwbGl0dGFibGVFbGVtZW50
Rm9yUG9zaXRpb24oZW5kT2ZDdXJyZW50UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCkpOworICAg
ICAgICAgICAgUmVmUHRyPFJhbmdlPiBvcmlnaW5hbFJhbmdlID0gY3JlYXRlUmFuZ2UoZG9jdW1l
bnQoKSwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgsIGVjKTsK
KyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gZXh0ZW5kZWRSYW5nZSA9IGV4dGVuZFJhbmdlVG9X
cmFwcGluZ05vZGVzKG9yaWdpbmFsUmFuZ2UsIHNlbGVjdGVkUmFuZ2UsIHVuc3BsaXR0YWJsZU5v
ZGUpOworICAgICAgICAgICAgaWYgKG9yaWdpbmFsUmFuZ2UgIT0gZXh0ZW5kZWRSYW5nZSkgewor
ICAgICAgICAgICAgICAgIGVuZE9mQ3VycmVudFBhcmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGV4
dGVuZGVkUmFuZ2UtPmVuZFBvc2l0aW9uKCkucHJldmlvdXMoKSk7CisgICAgICAgICAgICAgICAg
YmxvY2tOb2RlID0gZW5jbG9zaW5nQmxvY2soUmFuZ2U6OmNvbW1vbkFuY2VzdG9yQ29udGFpbmVy
KGV4dGVuZGVkUmFuZ2UtPnN0YXJ0UG9zaXRpb24oKS5ub2RlKCksIGV4dGVuZGVkUmFuZ2UtPmVu
ZFBvc2l0aW9uKCkubm9kZSgpKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVuZE9m
TmV4dFBhcmFncmFwaCA9IGVuZE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaC5uZXh0
KCkpOworICAgICAgICAgICAgaW5kZW50SW50b0Jsb2NrcXVvdGUoc3RhcnRPZkN1cnJlbnRQYXJh
Z3JhcGgsIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgYmxvY2txdW90ZUZvck5leHRJbmRlbnQsIGJs
b2NrTm9kZSk7CisgICAgICAgICAgICAvLyBibG9ja3F1b3RlRm9yTmV4dEluZGVudCB3aWxsIGJl
IHVwZGF0ZWQgaW4gdGhlIGZ1bmN0aW9uCisgICAgICAgIH0KICAgICAgICAgLy8gU2FuaXR5IGNo
ZWNrOiBNYWtlIHN1cmUgb3VyIG1vdmVQYXJhZ3JhcGggY2FsbHMgZGlkbid0IHJlbW92ZSBlbmRP
Zk5leHRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCkKICAgICAgICAgLy8gSWYgc29t
ZWhvdyB3ZSBkaWQsIHJldHVybiB0byBwcmV2ZW50IGNyYXNoZXMuCiAgICAgICAgIGlmIChlbmRP
Zk5leHRQYXJhZ3JhcGguaXNOb3ROdWxsKCkgJiYgIWVuZE9mTmV4dFBhcmFncmFwaC5kZWVwRXF1
aXZhbGVudCgpLm5vZGUoKS0+aW5Eb2N1bWVudCgpKSB7CkBAIC0yMTIsMTEgKzI3NCw3IEBAIHZv
aWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmluZGVudFJlZ2lvbigKICAgICAgICAgfQogICAgICAg
ICBlbmRPZkN1cnJlbnRQYXJhZ3JhcGggPSBlbmRPZk5leHRQYXJhZ3JhcGg7CiAgICAgfQotICAg
IAotICAgIFJlZlB0cjxSYW5nZT4gc3RhcnRSYW5nZSA9IFRleHRJdGVyYXRvcjo6cmFuZ2VGcm9t
TG9jYXRpb25BbmRMZW5ndGgoZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCksIHN0YXJ0SW5k
ZXgsIDAsIHRydWUpOwotICAgIFJlZlB0cjxSYW5nZT4gZW5kUmFuZ2UgPSBUZXh0SXRlcmF0b3I6
OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgp
LCBlbmRJbmRleCwgMCwgdHJ1ZSk7Ci0gICAgaWYgKHN0YXJ0UmFuZ2UgJiYgZW5kUmFuZ2UpCi0g
ICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0UmFuZ2UtPnN0
YXJ0UG9zaXRpb24oKSwgZW5kUmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgRE9XTlNUUkVBTSkpOwor
CiB9CiAKIHZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6Om91dGRlbnRQYXJhZ3JhcGgoKQpJbmRl
eDogV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgJKHJldmlzaW9uIDQ1NTY0KQor
KysgV2ViQ29yZS9lZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ4LDEzICs0OCwxNSBAQCBwcml2YXRlOgogCiAgICAgLy8gRklYTUU6IERvZXMgdGhpcyBi
ZWxvbmcgaW4gaHRtbGVkaXRpbmcuY3BwPwogICAgIGJvb2wgaXNBdFVuc3BsaXR0YWJsZUVsZW1l
bnQoY29uc3QgUG9zaXRpb24mKSBjb25zdDsKKyAgICB2b2lkIGFwcGVuZFBhcmFncmFwaEludG9O
b2RlKE5vZGUqIG5ld1BhcmVudCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydCwgY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBlbmQpOworICAgIHZvaWQgcmVtb3ZlVW5uZWNlc3NhcnlMaW5lQnJl
YWtBdChjb25zdCBQb3NpdGlvbiYgZW5kT2ZQYXJhZ3JhcGgpOwogCiAgICAgdm9pZCBpbmRlbnRS
ZWdpb24oKTsKICAgICB2b2lkIG91dGRlbnRSZWdpb24oKTsKICAgICB2b2lkIG91dGRlbnRQYXJh
Z3JhcGgoKTsKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHByZXBhcmVCbG9ja3F1b3RlTGV2ZWxG
b3JJbnNlcnRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+Jik7CiAg
ICAgYm9vbCB0cnlJbmRlbnRpbmdBc0xpc3RJdGVtKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwot
ICAgIHZvaWQgaW5kZW50SW50b0Jsb2NrcXVvdGUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+Jik7CisgICAgdm9pZCBpbmRlbnRJ
bnRvQmxvY2txdW90ZShjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mLCBSZWZQdHI8RWxlbWVudD4mLCBOb2RlKik7CiAKICAgICBFSW5kZW50VHlwZSBtX3R5cGVP
ZkFjdGlvbjsKICAgICBpbnQgbV9tYXJnaW5JblBpeGVsczsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ1
NjIxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
NTAgQEAKKzIwMDktMDctMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
b2YgaW5kZW50UmVnaW9uIHRvIGZpeCBidWdzIDI2ODE2IGFuZCAyNTMxNworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MTYKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzE3CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk5NSAocGFydGlhbGx5KQorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZSwgYSBzaW1w
bGVyIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgbW92ZVBhcmFncmFwaAorICAgICAgICBhbmQgcmVw
bGFjZXMgYWxsIGNhbGxzIGluc2lkZSBpbmRlbnRSZWdpb24uIFRoZSBmb2xsb3dpbmcgaXMgdGhl
IG5ldyBiZWhhdmlvciBvZiBpbmRlbnRSZWdpb24uCisKKyAgICAgICAgMS4gV2UgdHJ5IHRvIGlu
ZGVudCBhcyBtYW55IHdyYXBwaW5nIG5vZGVzIGFzIHBvc3NpYmxlLgorICAgICAgICAgICBlLmcu
IHdoZW4gaW5kZW50aW5nICJoZWxsbyIgaW4gPGRpdj5oZWxsbzwvZGl2Piwgd2UgdHJ5IHRvIGlu
ZGVudCBkaXYgYXMgd2VsbC4KKyAgICAgICAgMi4gV2UgZG8gbm90IGRlbGV0ZSBhbnkgd3JhcHBp
bmcgZWxlbWVudHMKKyAgICAgICAgICAgV2l0aCBtb3ZlUGFyYWdyYXBoLCB3ZSB1c2VkIHRvIHJl
bW92ZSBhbGwgd3JhcHBpbmcgbm9kZXMsIGFuZCByZXBsYWNlZCB3aXRoIGEgYmxvY2txdW90ZS4K
KyAgICAgICAgICAgVGhpcyB3YXMgY2F1c2luZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM5OTUgZm9yIGluZGVudGF0aW9uLgorICAgICAgICAgICBXaXRoIGFwcGVu
ZFBhcmFncmFwaEludG9Ob2RlLCB3ZSBjYW4gcHJlc2VydmUgYWxsIHdyYXBwaW5nIG5vZGVzLgor
ICAgICAgICAzLiBXZSBvbmx5IHNwbGl0IHRoZSB0cmVlIHVudGlsIHRoZSBjbG9zZXN0IGJsb2Nr
IG5vZGUgaW5zdGVhZCBvZiB1bnRpbCB0aGUgcm9vdCBlZGl0YWJsZSBub2RlLgorICAgICAgICAg
ICBUaGlzIGJlaGF2aW9yYWwgY2hhbmdlIGZpeGVzIHRoZSBidWcgMjUzMTcuCisgICAgICAgIDQu
IFdoZW4gbXVsdGlwbGUgcGFyYWdyYXBocyBhcmUgaW5kZW50ZWQsIHdlIGluZGVudCB0aGUgaGln
aGVzdCBjb21tb24gYW5jZXN0b3Igd2l0aGluIHRoZSBzZWxlY3Rpb24uCisgICAgICAgICAgIGUu
Zy4gd2hlbiBhIGxpc3QgaXMgYSBjaGlsZCBub2RlIG9mIGEgZGl2LCBhbmQgdGhlIGVudGlyZSBk
aXYgaXMgaW50ZW5kZWQsCisgICAgICAgICAgICAgICAgd2UgZW5jbG9zZSB0aGUgZGl2IGJ5IGEg
c2luZ2xlIGJsb2NrcXVvdGUuCisKKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCBuZXcgYmVo
YXZpb3IgaXMgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhhdCBvZiBJbnRlcm5ldCBFeHBsb3JlciBh
bmQgRmlyZWZveC4KKyAgICAgICAgVG8gZGVtb25zdHJhdGUgdGhpcywgdGhlIGZvbGxvd2luZyB0
ZXN0cyBhcmUgYWRkZWQgYW5kIHJlYmFzZWxpbmVkLgorCisgICAgICAgICogZWRpdGluZy9leGVj
Q29tbWFuZC8xOTY1My0xLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQgKG5vIGxvbmdlciByZW1v
dmVzIHdyYXBwaW5nIGRpdikKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1k
aXYtaW5zaWRlLWxpc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4
ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJs
b2NrcXVvdGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5k
ZW50LW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4
ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0yLWV4cGVjdGVkLnR4dDogcmViYXNl
bGluZWQgKHNlbGVjdGlvbiBjb3JyZWN0ZWQpCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTMtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAoc2VsZWN0
aW9uIGNvcnJlY3RlZCkKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0
ZWQtbGlzdHMtNC1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChzZWxlY3Rpb24gY29ycmVjdGVk
KQorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy01LWV4
cGVjdGVkLnR4dDogcmViYXNlbGluZWQgKHNlbGVjdGlvbiBjb3JyZWN0ZWQpCisgICAgICAgICog
ZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3Rl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1leHBlY3RlZC50eHQ6
IHJlYmFzZWxpbmVkCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQv
NDkxNjU0MS1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChubyBsb25nZXIgcmVtb3ZlcyB3cmFw
cGluZyBzcGFuKQorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzUx
Mzg0NDEtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZAorICAgICAgICAqIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL2V4ZWNDb21tYW5kLzU0ODE1MjMtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZAorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWxlY3Rpb24t
ZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZAorCiAyMDA5LTA3LTA3ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3Rl
aW4uCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kLzE5NjUzLTEtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvMTk2
NTMtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC8xOTY1My0xLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3
ICs1LDcgQEAgVGhpcyB0ZXN0cyBjcmVhdGluZyBhIGxpc3QgZnJvbSBhbiBlbXB0eQogPHVsPjxs
aT48Yj5Cb2xkPC9iPjwvbGk+PC91bD4KIAogVGhpcyB0ZXN0cyBpbmRlbnRpbmcgYW4gZW1wdHkg
cGFyYWdyYXBoIHdpdGggYm9sZCBhbHJlYWR5IGFwcGxpZWQgdG8gaXQuIFRoZSB3b3JkIGJlbG93
IHNob3VsZCBiZSBib2xkLgotPGJsb2NrcXVvdGUgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2tx
dW90ZSIgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAw
cHg7Ij48Yj5Cb2xkPC9iPjwvYmxvY2txdW90ZT4KKzxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQt
aW5kZW50LWJsb2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9u
ZTsgcGFkZGluZzogMHB4OyI+PGRpdj48Yj5Cb2xkPC9iPjwvZGl2PjwvYmxvY2txdW90ZT4KIAog
VGhpcyB0ZXN0cyBpbmRlbnRpbmcgYW4gZW1wdHkgcGFyYWdyYXBoIHdoZW4gdGhlIHR5cGluZyBz
dHlsZSB3YXMgQm9sZC4gVGhlIHdvcmQgYmVsb3cgc2hvdWxkIGJlIGJvbGQuCiA8YmxvY2txdW90
ZSBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0
MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiPjxiPkJvbGQ8L2I+PC9ibG9ja3F1b3Rl
PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lk
ZS1saXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1s
aXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACitUaGlzIHRlc3Rz
IGluZGVudGluZyBhIGRpdiBpbnNpZGUgYSBsaXN0IGl0ZW0uIEJ5IGluZGVudGluZyAid29ybGQi
LCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBhcm91bmQgd29ybGQgaW5zaWRl
IHRoZSBsaXN0IGl0ZW0uCisKK2EKK2hlbGxvCit3b3JsZAorYgorYSA8dWw+IDxsaT5oZWxsbzxi
bG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46
IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4OyI+PGRpdiBpZD0idGVzdCI+
IHdvcmxkIDwvZGl2PjwvYmxvY2txdW90ZT48L2xpPjwvdWw+IGIKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1pbnNpZGUtbGlzdC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1pbnNpZGUt
bGlzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcg
QEAKKzxwPlRoaXMgdGVzdHMgaW5kZW50aW5nIGEgZGl2IGluc2lkZSBhIGxpc3QgaXRlbS4gIEJ5
IGluZGVudGluZyAid29ybGQiLCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBh
cm91bmQgd29ybGQgaW5zaWRlIHRoZSBsaXN0IGl0ZW0uPC9wPgorPGRpdiBpZD0iZGl2IiBjb250
ZW50ZWRpdGFibGU9InRydWUiPgorYQorPHVsPgorPGxpPmhlbGxvPGRpdiBpZD0idGVzdCI+Cit3
b3JsZAorPC9saT4KKzwvYmxvY2txdW90ZT4KKzwvdWw+CitiCis8L2Rpdj4KKzxkaXYgaWQ9ImMi
PjwvZGl2PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciBlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKK3ZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwor
dmFyIHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworci5zZXRTdGFydChlLDApOworci5zZXRF
bmQoZSwxKTsKK3MuYWRkUmFuZ2Uocik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50Iiwg
ZmFsc2UsIG51bGwpOwordGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdkaXYnKS5pbm5lckhUTUwpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2MnKS5hcHBlbmRDaGlsZCggdGV4dCApOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVz
dGVkLWJsb2NrcXVvdGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
bmVzdGVkLWJsb2NrcXVvdGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3
IEBACitUaGlzIHRlc3RzIGluZGVudGluZyBuZXN0ZWQgYmxvY2txdW90ZXMuIEJ5IGluZGVudGlu
ZyAid2Via2l0IiIiIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYmV0d2Vl
biBiciB0YWcgYW5kIHRoZSBlbmQgb2YgdGhlIGlubmVyIGJsb2NrcXVvdGUuCisKK2hlbGxvCit3
b3JsZAord2Via2l0CitpcyBncmVhdAorPGJsb2NrcXVvdGUgaWQ9Im91dGVyIj4gaGVsbG8gPGJs
b2NrcXVvdGUgaWQ9ImlubmVyIj4gd29ybGQ8YnI+PGJsb2NrcXVvdGUgY2xhc3M9IndlYmtpdC1p
bmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25l
OyBwYWRkaW5nOiAwcHg7Ij4gd2Via2l0IDwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+IGlzIGdy
ZWF0IDwvYmxvY2txdW90ZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVk
LWJsb2NrcXVvdGVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcgQEAKKzxwPlRoaXMg
dGVzdHMgaW5kZW50aW5nIG5lc3RlZCBibG9ja3F1b3Rlcy4gIEJ5IGluZGVudGluZyAid2Via2l0
IiIiIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYmV0d2VlbiBiciB0YWcg
YW5kIHRoZSBlbmQgb2YgdGhlIGlubmVyIGJsb2NrcXVvdGUuPC9wPgorPGRpdiBpZD0iZGl2IiBj
b250ZW50ZWRpdGFibGU9InRydWUiPgorPGJsb2NrcXVvdGUgaWQ9Im91dGVyIj4KK2hlbGxvCis8
YmxvY2txdW90ZSBpZD0iaW5uZXIiPgord29ybGQ8YnI+Cit3ZWJraXQKKzwvYmxvY2txdW90ZT4K
K2lzIGdyZWF0Cis8L2Jsb2NrcXVvdGU+Cis8L2Rpdj4KKzxkaXYgaWQ9ImMiPjwvZGl2PgorPHNj
cmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImlubmVyIik7Cit2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKK3ZhciByID0gZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3Iuc2V0U3RhcnQoZSwyKTsKK3Iuc2V0RW5kKGUsMyk7Citz
LmFkZFJhbmdlKHIpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluZGVudCIsIGZhbHNlLCBudWxs
KTsKK3RleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGl2JykuaW5uZXJIVE1MKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJykuYXBwZW5k
Q2hpbGQoIHRleHQgKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWRpdi1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0cyBpbmRlbnRpbmcgbmVzdGVkIGRp
dnMuIEJ5IGluZGVudGluZyAiaGVsbG8iLCB3ZSBzaG91bGQgYmUgYWJsZSB0byBlbmNsb3NlIGFs
bCB0aHJlZSBibG9ja3MgMSB0aHJvdWdoIDMgYnkgYSBibG9ja3F1b3RlCisKK2hlbGxvCis8Ymxv
Y2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAw
IDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiPjxkaXYgaWQ9ImJsb2NrMSI+
PGRpdiBpZD0iYmxvY2syIj48ZGl2IGlkPSJibG9jazMiPmhlbGxvPC9kaXY+PC9kaXY+PC9kaXY+
PC9ibG9ja3F1b3RlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtbmVzdGVkLWRpdi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMCBAQAorPHA+VGhpcyB0ZXN0cyBpbmRlbnRpbmcgbmVzdGVkIGRpdnMu
ICBCeSBpbmRlbnRpbmcgImhlbGxvIiwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZW5jbG9zZSBhbGwg
dGhyZWUgYmxvY2tzIDEgdGhyb3VnaCAzIGJ5IGEgYmxvY2txdW90ZTwvcD4KKzxkaXYgaWQ9ImRp
diIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4KKzxkaXYgaWQ9ImJsb2NrMSI+PGRpdiBpZD0iYmxv
Y2syIj48ZGl2IGlkPSJibG9jazMiPmhlbGxvPC9kaXY+PC9kaXY+PC9kaXY+Cis8L2Rpdj4KKzxk
aXYgaWQ9ImMiPjwvZGl2PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK3ZhciBlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2NrMyIpOwordmFyIHMgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7Cit2YXIgciA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CityLnNldFN0YXJ0KGUs
MCk7CityLnNldEVuZChlLDEpOworcy5hZGRSYW5nZShyKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5k
KCJJbmRlbnQiLCBmYWxzZSwgbnVsbCk7Cit0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpLmlubmVySFRNTCk7Citkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYycpLmFwcGVuZENoaWxkKCB0ZXh0ICk7Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2luZGVudC1uZXN0ZWQtbGlzdHMtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW5lc3RlZC1saXN0cy0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiw3
ICsyLDcgQEAgRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ETwogRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5n
Tm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToo
bnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBMSSA+IE9MID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IExJID4gT0wgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQg
PiBMSSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0
ZXh0ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBUaGlzIHRlc3RzIGluZGVudGluZyAidGhy
ZWUiLiBZb3Ugc2hvdWxkIHNlZSBudW1iZXJzIDEgYW5kIDIgYmVmb3JlICJ0d28iIGFuZCAidGhy
ZWUiIHJlc3BlY3RpdmVseS4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW5lc3RlZC1saXN0cy0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbmVzdGVkLWxpc3RzLTMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcg
KzIsNyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdO
b3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihu
dWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IExJID4gVUwgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byAyIG9mICN0ZXh0ID4gU1BBTiA+IExJID4gVUwgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBz
dGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBMSSA+
IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4g
TEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJW
aWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBUaGlzIHRlc3RzIGluZGVudGluZyAidGhyZWUiLiBZ
b3Ugc2hvdWxkIHNlZSAxLCAyLCBhbmQgMyBiZWZvcmUgInR3byIsICJ0aHJlZSIsIGFuZCAiZm91
ciIgcmVzcGVjdGl2ZWx5LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbmVzdGVkLWxpc3RzLTQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy00LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lu
ZGVudC1uZXN0ZWQtbGlzdHMtNC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyAr
Miw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE8KIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05v
dGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51
bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gTEkgPiBVTCA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBTUEFOID4gTEkgPiBVTCA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3Rl
ZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IExJID4g
T0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBM
SSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZp
ZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIFRoaXMgdGVzdHMgaW5kZW50aW5nICJ0aHJlZSIgYW5k
ICJmb3VyIi4gWW91IHNob3VsZCBzZWUgMSB0aHJvdWdoIDQgaW4gb3JkZXIgYmVmb3JlIG51bWJl
cnMgInR3byIgdGhyb3VnaCAiZml2ZSIuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy01LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMiw3ICsyLDcgQEAgRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ETwog
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5F
ZGl0aW5nTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBMSSA+IFVMID4g
T0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gTEkgPiBV
TCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mICN0ZXh0ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gNSBvZiAjdGV4dCA+IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0
cyBpbmRlbnRpbmcgInRocmVlIi4gWW91IHNob3VsZCBzZWUgMSwgMiwgYW5kIHRoZW4gYSBidWxs
ZXQgYmVmb3JlIG51bWJlcnMgInR3byIsICJ0aHJlZSIsIGFuZCAiZm91ciIgcmVzcGVjdGl2ZWx5
LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBh
cmFncmFwaC1pbi1ibG9ja3F1b3RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWluLWJsb2Nr
cXVvdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIGluZGVudGluZyB0
aGUgc2Vjb25kIHBhcmFncmFwaCBpbiBhIGJsb2NrcXVvdGUuIEJ5IGluZGVudGluZyAid29ybGQi
LCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBhcm91bmQgd29ybGQgaW5zaWRl
IHRoZSAidGVzdCIgYmxvY2txdW90ZS4KKworaGVsbG8KK3dvcmxkCis8YmxvY2txdW90ZSBpZD0i
dGVzdCI+IGhlbGxvPGJyPjxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVv
dGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4
OyI+IHdvcmxkIDwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+CkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWluLWJsb2NrcXVvdGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVu
dC1zZWNvbmQtcGFyYWdyYXBoLWluLWJsb2NrcXVvdGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4t
YmxvY2txdW90ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACis8cD5UaGlzIHRl
c3RzIGluZGVudGluZyB0aGUgc2Vjb25kIHBhcmFncmFwaCBpbiBhIGJsb2NrcXVvdGUuICBCeSBp
bmRlbnRpbmcgIndvcmxkIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYXJv
dW5kIHdvcmxkIGluc2lkZSB0aGUgInRlc3QiIGJsb2NrcXVvdGUuPC9wPgorPGRpdiBpZD0iZGl2
IiBjb250ZW50ZWRpdGFibGU9InRydWUiPgorPGJsb2NrcXVvdGUgaWQ9InRlc3QiPgoraGVsbG88
YnI+Cit3b3JsZAorPC9ibG9ja3F1b3RlPgorPC9kaXY+Cis8ZGl2IGlkPSJjIj48L2Rpdj4KKzxz
Y3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0Iik7Cit2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKK3ZhciByID0gZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3Iuc2V0U3RhcnQoZSwyKTsKK3Iuc2V0RW5kKGUsMyk7Citz
LmFkZFJhbmdlKHIpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluZGVudCIsIGZhbHNlLCBudWxs
KTsKK3RleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGl2JykuaW5uZXJIVE1MKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJykuYXBwZW5k
Q2hpbGQoIHRleHQgKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAt
Mi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDU1NjQp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80NjQxODgw
LTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
IEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJh
bmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IEJMT0NLUVVPVEUgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0byAzNCBvZiAjdGV4dCA+IEJMT0NLUVVPVEUgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBz
dGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBCTE9D
S1FVT1RFID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMzUgb2YgI3RleHQgPiBC
TE9DS1FVT1RFID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3
RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKQEAgLTI0
LDUgKzI0LDUgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjQ2eDE4CiAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAyNDY6ICJUaGlzIHBhcmFncmFwaCBzaG91bGQgbm90IGJlIGluZGVudGVk
LiIKICAgICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNDYsMTQpIHNpemUgMHgwCi1zZWxlY3Rp
b24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0JMT0NL
UVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRN
TH0gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMzQgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQg
MSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBzdGFydDog
cG9zaXRpb24gMSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2Yg
Y2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1
bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAzNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2Yg
Y2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBv
ZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNDkxNjU0MS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNDkxNjU0MS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2VkaXRpbmcvZXhlY0NvbW1hbmQvNDkxNjU0MS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEwLDExICsxMCwxMyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMzIwOiAiJ2ZvbycgYW5kICdiYXInIGJlZm9yZSBh
bmQgYWZ0ZXIgdGhlIGluZGVudCBvcGVyYXRpb24uIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsNTIpIHNpemUgNzg0eDM2CiAgICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBh
dCAoNDAsMCkgc2l6ZSA3NDR4MzYKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAyMXgxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjE6ICJm
b28iCisgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDIxeDE4Cisg
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMXgxOAorICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMTogImZvbyIKICAgICAgICAgICBSZW5k
ZXJCUiB7QlJ9IGF0ICgyMSwxNCkgc2l6ZSAweDAKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMTgpIHNpemUgMjB4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3
aWR0aCAyMDogImJhciIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNp
emUgMjB4MTgKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAy
MHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMjA6ICJiYXIiCiAg
ICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDM2KSBzaXplIDc4NHgwCi1zZWxl
Y3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0JM
T0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7
SFRNTH0gb2YgZG9jdW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMiBvZiBjaGlsZCAy
IHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGls
ZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIHN0YXJ0
OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtTUEFOfSBvZiBjaGls
ZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNo
aWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDIgb2Yg
Y2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDIge1NQQU59IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9
IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2Yg
ZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21t
YW5kLzUxMzg0NDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzUxMzg0NDEtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA0NTU2NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5k
LzUxMzg0NDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMCwxMCArMTAsMTIgQEAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgp
IHdpZHRoIDc3NjogIkZvcm1hdEJsb2NrIHRvIGltcGxlbWVudCBhIFwiUXVvdGUgVGV4dFwiIGZl
YXR1cmUsIGFuZCBzdHlsZSBydWxlcyBmb3IgYmxvY2txdW90ZXMgYXBwZWFyZWQgb24gdGhlIGJs
b2NrcXVvdGVzIHRoYXQgd2UgdXNlIgogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0
aCAxNDk6ICJ0byBpbXBsZW1lbnQgaW5kZW50aW5nLiIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDcwKSBzaXplIDc4NHg2MgotICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0g
YXQgKDQwLDApIHNpemUgNzQ0eDE4Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMjMweDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMzA6
ICJUaGlzIHNob3VsZCBiZSBpbmRlbnRlZCwgbm90IHF1b3RlZC4iCisgICAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgICAgUmVuZGVyQmxvY2sge0JM
T0NLUVVPVEV9IGF0ICg0MCwwKSBzaXplIDc0NHgxOAorICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMjMweDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDIzMDogIlRoaXMgc2hvdWxkIGJlIGluZGVudGVkLCBub3QgcXVvdGVkLiIKKyAg
ICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxOCkgc2l6ZSA3ODR4MAogICAg
ICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDgsMjYpIHNpemUgNzY4eDM2IFtib3Jk
ZXI6ICgxcHggZGFzaGVkICNBQUFBQUEpXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoOSw5KSBzaXplIDE3NXgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDksOSkgd2lkdGgg
MTc1OiAiVGhpcyB0ZXh0IHNob3VsZCBiZSBRdW90ZWQuIgotY2FyZXQ6IHBvc2l0aW9uIDAgb2Yg
Y2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDMge0RJVn0g
b2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK2NhcmV0OiBw
b3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBj
aGlsZCAxIHtESVZ9IG9mIGNoaWxkIDMge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQg
MCB7SFRNTH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0
aW5nL2V4ZWNDb21tYW5kLzU0ODE1MjMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzU0ODE1MjMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5n
L2V4ZWNDb21tYW5kLzU0ODE1MjMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3
ICsyNyw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgICAgICAg
UmVuZGVyVGFibGVDZWxsIHtURH0gYXQgKDQ1LDI2KSBzaXplIDM0eDIyIFtib3JkZXI6ICgxcHgg
aW5zZXQgIzgwODA4MCldIFtyPTEgYz0xIHJzPTEgY3M9MV0KICAgICAgICAgICAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgMzB4MTgKICAgICAgICAgICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCAzMDogIkZvdXIiCi0gICAgICAgICAgICBSZW5k
ZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw1Mikgc2l6ZSA3MDR4MAotICAgICAgICBSZW5kZXJC
bG9jayAoYW5vbnltb3VzKSBhdCAoMCw1Mikgc2l6ZSA3ODR4MAogc2VsZWN0aW9uIHN0YXJ0OiBw
b3NpdGlvbiAwIG9mIGNoaWxkIDAge1RBQkxFfSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBj
aGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9m
IGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDEg
b2YgY2hpbGQgMCB7VEFCTEV9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDEge0JM
T0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7
SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMiBvZiBjaGlsZCAw
IHtUQUJMRX0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMSB7QkxPQ0tRVU9URX0g
b2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBk
b2N1bWVudApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LXNlbGVjdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlbGVjdGlvbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlbGVjdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTMsNyArMyw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVk
aXRpbmcKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0
ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3Rl
eHQgPiBCTE9DS1FVT1RFID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJ
TkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFu
Z2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BBTiA+IEJMT0NLUVVPVEUgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gU1BBTiA+IEJMT0NLUVVPVEUgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5
RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3Rp
ZmljYXRpb24KIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMApAQCAtMTcsNDIgKzE3LDQzIEBA
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91
cykgYXQgKDAsMTgpIHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkg
c2l6ZSAweDE4CiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MTk0
Ci0gICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsMCkgc2l6ZSA3NDR4NTQK
KyAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg0MCwwKSBzaXplIDc0NHgxOTQK
ICAgICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc0NHgzNgot
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDJ4MTgKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDI6ICJMb3JlbSIKKyAgICAgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MngxOAorICAgICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MngxOAorICAgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDQyOiAiTG9yZW0iCiAgICAgICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICg0MiwxNCkgc2l6ZSAweDAKICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwxOCkgc2l6ZSA4M3gxOAogICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lk
dGggODM6ICJtb3JlIExvcmVtISIKLSAgICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0g
YXQgKDQwLDM2KSBzaXplIDcwNHgxOAotICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzh4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
Mzg6ICJpcHN1bSIKLSAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsNTQpIHNp
emUgNzg0eDAKLSAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg0MCw3MCkgc2l6
ZSA3NDR4NTQKLSAgICAgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICgwLDApIHNpemUgNzQ0eDU0
Ci0gICAgICAgICAgICBSZW5kZXJCbG9jayB7VUx9IGF0ICg0MCwwKSBzaXplIDcwNHg1NAorICAg
ICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsMzYpIHNpemUgNzA0eDEyMgor
ICAgICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3MDR4MTgK
KyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzh4MTgKKyAg
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzODogImlwc3VtIgorICAgICAg
ICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgzOCwxNCkgc2l6ZSAweDAKKyAgICAgICAgICAgIFJl
bmRlckJsb2NrIHtVTH0gYXQgKDAsMzQpIHNpemUgNzA0eDU0CiAgICAgICAgICAgICAgIFJlbmRl
ckxpc3RJdGVtIHtMSX0gYXQgKDQwLDApIHNpemUgNjY0eDE4Ci0gICAgICAgICAgICAgICAgUmVu
ZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODogd2hpdGUgYnVsbGV0CisgICAgICAg
ICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODogYnVsbGV0CiAg
ICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjV4MTgKICAg
ICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1OiAiRm9vIgogICAgICAg
ICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwxOCkgc2l6ZSA2NjR4MTgKLSAgICAg
ICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiB3aGl0ZSBi
dWxsZXQKKyAgICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3
eDE4OiBidWxsZXQKICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAyM3gxOAogICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjM6
ICJCYXIiCiAgICAgICAgICAgICAgIFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDM2KSBzaXpl
IDY2NHgxOAotICAgICAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXpl
IDd4MTg6IHdoaXRlIGJ1bGxldAorICAgICAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQg
KC0xNywwKSBzaXplIDd4MTg6IGJ1bGxldAogICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDI1eDE4CiAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAyNTogIkJheiIKLSAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0
ICg0MCwxNDApIHNpemUgNzQ0eDU0Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9
IGF0ICg0MCwwKSBzaXplIDcwNHgxOAotICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzd4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
Mzc6ICJEb2xvciIKLSAgICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxOCkg
c2l6ZSA3NDR4MzYKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDEw
NCkgc2l6ZSA3MDR4MTgKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMzd4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzog
IkRvbG9yIgorICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDE1OCkgc2l6
ZSA3NDR4MzYKICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM0
eDE4CiAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM0OiAiU3VtISIKICAg
ICAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDM0LDE0KSBzaXplIDB4MAotICAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4KSBzaXplIDM4eDE4Ci0gICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAzODogIlRoaW5nIgorICAgICAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDM4eDE4CisgICAgICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAzOHgxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDE4KSB3aWR0aCAzODogIlRoaW5nIgogICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3Vz
KSBhdCAoMCwxOTQpIHNpemUgNzg0eDAKLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBj
aGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgNCB7RElWfSBv
ZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAotc2VsZWN0aW9u
IGVuZDogICBwb3NpdGlvbiA1IG9mIGNoaWxkIDMgeyN0ZXh0fSBvZiBjaGlsZCAzIHtCTE9DS1FV
T1RFfSBvZiBjaGlsZCA0IHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9
IG9mIGRvY3VtZW50CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDAge1NQQU59IG9mIGNoaWxkIDEge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDQge0RJVn0gb2Yg
Y2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBl
bmQ6ICAgcG9zaXRpb24gNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgNiB7U1BBTn0gb2Yg
Y2hpbGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgNCB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBv
ZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32487</attachid>
            <date>2009-07-08 16:41:35 -0700</date>
            <delta_ts>2009-07-19 23:32:28 -0700</delta_ts>
            <desc>change due to the resubmission for 27038</desc>
            <filename>fix26816d</filename>
            <type>text/plain</type>
            <size>43239</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTYyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDktMDctMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3Jpbmcgb2YgaW5kZW50UmVnaW9uIHRvIGZpeCBidWdzIDI2ODE2IGFuZCAyNTMxNworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MTYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzE3CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk5NSAocGFydGlhbGx5
KQorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9k
ZSwgYSBzaW1wbGVyIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgbW92ZVBhcmFncmFwaAorICAgICAg
ICBhbmQgcmVwbGFjZXMgYWxsIGNhbGxzIGluc2lkZSBpbmRlbnRSZWdpb24uIFRoZSBmb2xsb3dp
bmcgaXMgdGhlIG5ldyBiZWhhdmlvciBvZiBpbmRlbnRSZWdpb24uCisKKyAgICAgICAgMS4gV2Ug
dHJ5IHRvIGluZGVudCBhcyBtYW55IHdyYXBwaW5nIG5vZGVzIGFzIHBvc3NpYmxlLgorICAgICAg
ICAgICBlLmcuIHdoZW4gaW5kZW50aW5nICJoZWxsbyIgaW4gPGRpdj5oZWxsbzwvZGl2Piwgd2Ug
dHJ5IHRvIGluZGVudCBkaXYgYXMgd2VsbC4KKyAgICAgICAgMi4gV2UgZG8gbm90IGRlbGV0ZSBh
bnkgd3JhcHBpbmcgZWxlbWVudHMKKyAgICAgICAgICAgV2l0aCBtb3ZlUGFyYWdyYXBoLCB3ZSB1
c2VkIHRvIHJlbW92ZSBhbGwgd3JhcHBpbmcgbm9kZXMsIGFuZCByZXBsYWNlZCB3aXRoIGEgYmxv
Y2txdW90ZS4KKyAgICAgICAgICAgVGhpcyB3YXMgY2F1c2luZyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5OTUgZm9yIGluZGVudGF0aW9uLgorICAgICAgICAgICBX
aXRoIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlLCB3ZSBjYW4gcHJlc2VydmUgYWxsIHdyYXBwaW5n
IG5vZGVzLgorICAgICAgICAzLiBXZSBvbmx5IHNwbGl0IHRoZSB0cmVlIHVudGlsIHRoZSBjbG9z
ZXN0IGJsb2NrIG5vZGUgaW5zdGVhZCBvZiB1bnRpbCB0aGUgcm9vdCBlZGl0YWJsZSBub2RlLgor
ICAgICAgICAgICBUaGlzIGJlaGF2aW9yYWwgY2hhbmdlIGZpeGVzIHRoZSBidWcgMjUzMTcuCisg
ICAgICAgIDQuIFdoZW4gbXVsdGlwbGUgcGFyYWdyYXBocyBhcmUgaW5kZW50ZWQsIHdlIGluZGVu
dCB0aGUgaGlnaGVzdCBjb21tb24gYW5jZXN0b3Igd2l0aGluIHRoZSBzZWxlY3Rpb24uCisgICAg
ICAgICAgIGUuZy4gd2hlbiBhIGxpc3QgaXMgYSBjaGlsZCBub2RlIG9mIGEgZGl2LCBhbmQgdGhl
IGVudGlyZSBkaXYgaXMgaW50ZW5kZWQsCisgICAgICAgICAgICAgICAgd2UgZW5jbG9zZSB0aGUg
ZGl2IGJ5IGEgc2luZ2xlIGJsb2NrcXVvdGUuCisKKyAgICAgICAgTm90ZSB0aGF0IG5ldyBiZWhh
dmlvciBpcyBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIEludGVybmV0IEV4cGxvcmVyIGFu
ZCBGaXJlZm94LgorICAgICAgICBUbyBkZW1vbnN0cmF0ZSB0aGlzLCB0aGUgZm9sbG93aW5nIHRl
c3RzIGFyZSBhZGRlZC4KKworICAgICAgICBUZXN0czogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtZGl2LWluc2lkZS1saXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5kOjp0cnlJbmRlbnRpbmdBc0xpc3RJdGVtKTog
dXNlcyBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZSBub3cKKyAgICAgICAgKFdlYkNvcmU6OkluZGVu
dE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRvQmxvY2txdW90ZSk6IHVzZXMgYXBwZW5kUGFyYWdy
YXBoSW50b05vZGUgbm93CisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6
YXBwZW5kUGFyYWdyYXBoSW50b05vZGUpOiByZW1vdmVzIGEgcGFyYWdyYXBoIGFuZCBhcHBlbmRz
IGl0IHRvIGEgbmV3IG5vZGUKKyAgICAgICAgKFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21tYW5k
OjpyZW1vdmVVbm5lY2Vzc2FyeUxpbmVCcmVha0F0KTogcmVtb3ZlcyBhIGJyZWFrIGVsZW1lbnQg
YXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbgorICAgICAgICAoV2ViQ29yZTo6SW5kZW50T3V0ZGVu
dENvbW1hbmQ6OmluZGVudFJlZ2lvbik6IGV4aGliaXRzIHRoZSBkZXNjcmliZWQgYmVoYXZpb3IK
KyAgICAgICAgKiBlZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmg6IHVwZGF0ZWQgcHJvdG90
eXBlCisKIDIwMDktMDctMDcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFdlYkNvcmUvZWRpdGlu
Zy9JbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5n
L0luZGVudE91dGRlbnRDb21tYW5kLmNwcAkocmV2aXNpb24gNDU1NjQpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiSW5zZXJ0TGluZUJyZWFrQ29tbWFuZC5oIgogI2luY2x1ZGUgIklu
c2VydExpc3RDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiU3BsaXRFbGVtZW50Q29tbWFuZC5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCkBAIC0xMTUsMjAgKzEx
NiwxOSBAQCBib29sIEluZGVudE91dGRlbnRDb21tYW5kOjp0cnlJbmRlbnRpbmdBCiAgICAgaWYg
KCFsaXN0Tm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSFRNTEVsZW1lbnQqIHNl
bGVjdGVkTGlzdEl0ZW0gPSBlbmNsb3NpbmdMaXN0Q2hpbGQobGFzdE5vZGVJblNlbGVjdGVkUGFy
YWdyYXBoKTsKKyAgICAvLyBGaW5kIHRoZSBsaXN0IGl0ZW0gZW5jbG9zaW5nIHRoZSBjdXJyZW50
IHBhcmFncmFwaAorICAgIEVsZW1lbnQqIHNlbGVjdGVkTGlzdEl0ZW0gPSBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4oZW5jbG9zaW5nQmxvY2soZW5kT2ZDdXJyZW50UGFyYWdyYXBoLmRlZXBFcXVpdmFs
ZW50KCkubm9kZSgpKSk7CisgICAgLy8gRklYTUU6IHdlIG5lZWQgdG8gZGVhbCB3aXRoIHRoZSBj
YXNlIHdoZXJlIHRoZXJlIGlzIG5vIGxpIChtYWxmb3JtZWQgSFRNTCkKKyAgICBpZiAoIXNlbGVj
dGVkTGlzdEl0ZW0tPmhhc1RhZ05hbWUobGlUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAvLyBGSVhNRTogcHJldmlvdXNFbGVtZW50U2libGluZyBkb2VzIG5vdCBpZ25vcmUgbm9u
LXJlbmRlcmVkIGNvbnRlbnQgbGlrZSA8c3Bhbj48L3NwYW4+LiAgU2hvdWxkIHdlPwogICAgIEVs
ZW1lbnQqIHByZXZpb3VzTGlzdCA9IHNlbGVjdGVkTGlzdEl0ZW0tPnByZXZpb3VzRWxlbWVudFNp
YmxpbmcoKTsKICAgICBFbGVtZW50KiBuZXh0TGlzdCA9IHNlbGVjdGVkTGlzdEl0ZW0tPm5leHRF
bGVtZW50U2libGluZygpOwogCiAgICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0xpc3QgPSBkb2N1bWVu
dCgpLT5jcmVhdGVFbGVtZW50KGxpc3ROb2RlLT50YWdRTmFtZSgpLCBmYWxzZSk7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IG5ld0xpc3RJdGVtID0gc2VsZWN0ZWRMaXN0SXRlbS0+Y2xvbmVFbGVtZW50
V2l0aG91dENoaWxkcmVuKCk7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IHBsYWNlaG9sZGVyID0gY3Jl
YXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpOwogICAgIGluc2VydE5vZGVCZWZvcmUobmV3TGlz
dCwgc2VsZWN0ZWRMaXN0SXRlbSk7Ci0gICAgYXBwZW5kTm9kZShuZXdMaXN0SXRlbSwgbmV3TGlz
dCk7Ci0gICAgYXBwZW5kTm9kZShwbGFjZWhvbGRlciwgbmV3TGlzdEl0ZW0pOwotCi0gICAgbW92
ZVBhcmFncmFwaChzdGFydE9mUGFyYWdyYXBoKGVuZE9mQ3VycmVudFBhcmFncmFwaCksIGVuZE9m
Q3VycmVudFBhcmFncmFwaCwgVmlzaWJsZVBvc2l0aW9uKFBvc2l0aW9uKHBsYWNlaG9sZGVyLCAw
KSksIHRydWUpOworICAgIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlKHZpc2libGVQb3NpdGlvbkJl
Zm9yZU5vZGUoc2VsZWN0ZWRMaXN0SXRlbSksIHZpc2libGVQb3NpdGlvbkFmdGVyTm9kZShzZWxl
Y3RlZExpc3RJdGVtKSwgbmV3TGlzdC5nZXQoKSk7CiAKICAgICBpZiAoY2FuTWVyZ2VMaXN0cyhw
cmV2aW91c0xpc3QsIG5ld0xpc3QuZ2V0KCkpKQogICAgICAgICBtZXJnZUlkZW50aWNhbEVsZW1l
bnRzKHByZXZpb3VzTGlzdCwgbmV3TGlzdCk7CkBAIC0xMzgsMjkgKzEzOCwyNyBAQCBib29sIElu
ZGVudE91dGRlbnRDb21tYW5kOjp0cnlJbmRlbnRpbmdBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAg
ICAgCi12b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRvQmxvY2txdW90ZShjb25z
dCBWaXNpYmxlUG9zaXRpb24mIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiBlbmRPZk5leHRQYXJhZ3JhcGgsIFJlZlB0cjxFbGVtZW50PiYgdGFyZ2V0QmxvY2tx
dW90ZSkKK3ZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmluZGVudEludG9CbG9ja3F1b3RlKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBSZWZQdHI8RWxlbWVudD4mIHRhcmdl
dEJsb2NrcXVvdGUsIE5vZGUqIG5vZGVUb1NwbGl0VG8pCiB7CiAgICAgTm9kZSogZW5jbG9zaW5n
Q2VsbCA9IDA7CiAKICAgICBpZiAoIXRhcmdldEJsb2NrcXVvdGUpIHsKLSAgICAgICAgLy8gQ3Jl
YXRlIGEgbmV3IGJsb2NrcXVvdGUgYW5kIGluc2VydCBpdCBhcyBhIGNoaWxkIG9mIHRoZSByb290
IGVkaXRhYmxlIGVsZW1lbnQuIFdlIGFjY29tcGxpc2gKKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3
IGJsb2NrcXVvdGUgYW5kIGluc2VydCBpdCBhcyBhIGNoaWxkIG9mIHRoZSBlbmNsb3NpbmcgYmxv
Y2sgZWxlbWVudC4gV2UgYWNjb21wbGlzaAogICAgICAgICAvLyB0aGlzIGJ5IHNwbGl0dGluZyBh
bGwgcGFyZW50cyBvZiB0aGUgY3VycmVudCBwYXJhZ3JhcGggdXAgdG8gdGhhdCBwb2ludC4KICAg
ICAgICAgdGFyZ2V0QmxvY2txdW90ZSA9IGNyZWF0ZUluZGVudEJsb2NrcXVvdGVFbGVtZW50KGRv
Y3VtZW50KCkpOwotICAgICAgICBQb3NpdGlvbiBzdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5k
T2ZDdXJyZW50UGFyYWdyYXBoKS5kZWVwRXF1aXZhbGVudCgpOwotICAgICAgICBlbmNsb3NpbmdD
ZWxsID0gZW5jbG9zaW5nTm9kZU9mVHlwZShzdGFydCwgJmlzVGFibGVDZWxsKTsKLSAgICAgICAg
Tm9kZSogbm9kZVRvU3BsaXRUbyA9IGVuY2xvc2luZ0NlbGwgPyBlbmNsb3NpbmdDZWxsIDogZWRp
dGFibGVSb290Rm9yUG9zaXRpb24oc3RhcnQpOwotICAgICAgICBSZWZQdHI8Tm9kZT4gc3RhcnRP
Zk5ld0Jsb2NrID0gc3BsaXRUcmVlVG9Ob2RlKHN0YXJ0Lm5vZGUoKSwgbm9kZVRvU3BsaXRUbyk7
CisgICAgICAgIGlmIChpc1RhYmxlQ2VsbChub2RlVG9TcGxpdFRvKSkKKyAgICAgICAgICAgIGVu
Y2xvc2luZ0NlbGwgPSBub2RlVG9TcGxpdFRvOworICAgICAgICBSZWZQdHI8Tm9kZT4gc3RhcnRP
Zk5ld0Jsb2NrID0gc3BsaXRUcmVlVG9Ob2RlKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLmRlZXBF
cXVpdmFsZW50KCkubm9kZSgpLCBub2RlVG9TcGxpdFRvKTsKICAgICAgICAgaW5zZXJ0Tm9kZUJl
Zm9yZSh0YXJnZXRCbG9ja3F1b3RlLCBzdGFydE9mTmV3QmxvY2spOwogICAgIH0KIAotICAgIFJl
ZlB0cjxFbGVtZW50PiBpbnNlcnRpb25Qb2ludCA9IHByZXBhcmVCbG9ja3F1b3RlTGV2ZWxGb3JJ
bnNlcnRpb24oZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCB0YXJnZXRCbG9ja3F1b3RlKTsKKyAgICBW
aXNpYmxlUG9zaXRpb24gZW5kT2ZOZXh0UGFyYWdyYXBoID0gZW5kT2ZQYXJhZ3JhcGgoZW5kT2ZD
dXJyZW50UGFyYWdyYXBoLm5leHQoKSk7CisgICAgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUoc3Rh
cnRPZkN1cnJlbnRQYXJhZ3JhcGgsIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgdGFyZ2V0QmxvY2tx
dW90ZS5nZXQoKSk7CiAKICAgICAvLyBEb24ndCBwdXQgdGhlIG5leHQgcGFyYWdyYXBoIGluIHRo
ZSBibG9ja3F1b3RlIHdlIGp1c3QgY3JlYXRlZCBmb3IgdGhpcyBwYXJhZ3JhcGggdW5sZXNzIAog
ICAgIC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBjZWxsLgogICAgIGlmIChl
bmNsb3NpbmdDZWxsICYmIGVuY2xvc2luZ0NlbGwgIT0gZW5jbG9zaW5nTm9kZU9mVHlwZShlbmRP
Zk5leHRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKSwgJmlzVGFibGVDZWxsKSkKICAgICAgICAg
dGFyZ2V0QmxvY2txdW90ZSA9IDA7Ci0KLSAgICBtb3ZlUGFyYWdyYXBoKHN0YXJ0T2ZQYXJhZ3Jh
cGgoZW5kT2ZDdXJyZW50UGFyYWdyYXBoKSwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBWaXNpYmxl
UG9zaXRpb24oUG9zaXRpb24oaW5zZXJ0aW9uUG9pbnQsIDApKSwgdHJ1ZSk7CiB9CiAKIGJvb2wg
SW5kZW50T3V0ZGVudENvbW1hbmQ6OmlzQXRVbnNwbGl0dGFibGVFbGVtZW50KGNvbnN0IFBvc2l0
aW9uJiBwb3MpIGNvbnN0CkBAIC0xNjksMTMgKzE2Nyw2NCBAQCBib29sIEluZGVudE91dGRlbnRD
b21tYW5kOjppc0F0VW5zcGxpdHRhCiAgICAgcmV0dXJuIG5vZGUgPT0gZWRpdGFibGVSb290Rm9y
UG9zaXRpb24ocG9zKSB8fCBub2RlID09IGVuY2xvc2luZ05vZGVPZlR5cGUocG9zLCAmaXNUYWJs
ZUNlbGwpOwogfQogCisvLyBFbmNsb3NlIGFsbCBub2RlcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQg
YnkgbmV3UGFyZW50LCB3aGljaCBpcyBhIHNpYmxpbmcgbm9kZSBvZiBub2RlcyBiZXR3ZWVuIHN0
YXJ0IGFuZCBlbmQKKy8vIEZJWE1FOiBtb3ZlUGFyYWdyYXBoIGlzIG92ZXJseSBjb21wbGljYXRl
ZC4gIFdlIG5lZWQgdG8gY2xlYW4gdXAgbW92ZVBhcmFncmFwaCBzbyB0aGF0IGl0IHVzZXMgYXBw
ZW5kUGFyYWdyYXBoSW50b05vZGUKKy8vIG9yIHByZXBhcmUgbW9yZSBzcGVjaWFsaXplZCBmdW5j
dGlvbnMgYW5kIGRlbGV0ZSBtb3ZlUGFyYWdyYXBoCit2b2lkIEluZGVudE91dGRlbnRDb21tYW5k
OjphcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0LCBj
b25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZCwgTm9kZSogbmV3UGFyZW50KQoreworICAgIEFTU0VS
VChuZXdQYXJlbnQpOworICAgIEFTU0VSVChuZXdQYXJlbnQtPmlzQ29udGVudEVkaXRhYmxlKCkp
OworICAgIEFTU0VSVChpc1N0YXJ0T2ZQYXJhZ3JhcGgoc3RhcnQpICYmIGlzRW5kT2ZQYXJhZ3Jh
cGgoZW5kKSk7CisKKyAgICBQb3NpdGlvbiBlbmRPZlBhcmFncmFwaCA9IGVuZC5kZWVwRXF1aXZh
bGVudCgpLmRvd25zdHJlYW0oKTsKKyAgICBOb2RlKiBpbnNlcnRpb25Qb2ludCA9IG5ld1BhcmVu
dC0+bGFzdENoaWxkKCk7Ly8gUmVtZW1iZXIgdGhlIHBsYWNlIHRvIHB1dCBiciBsYXRlcgorICAg
IC8vIExvb2sgZm9yIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3QgcGFyYWdyYXBoIGluIG5ld1Bh
cmVudAorICAgIE5vZGUqIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChQ
b3NpdGlvbihuZXdQYXJlbnQsIG5ld1BhcmVudC0+Y2hpbGROb2RlQ291bnQoKSkpLmRlZXBFcXVp
dmFsZW50KCkubm9kZSgpOworICAgIGlmIChzdGFydE9mTGFzdFBhcmFncmFwaCAmJiAhc3RhcnRP
Zkxhc3RQYXJhZ3JhcGgtPmlzRGVzY2VuZGFudE9mKG5ld1BhcmVudCkpCisgICAgICAgIHN0YXJ0
T2ZMYXN0UGFyYWdyYXBoID0gMDsKKworICAgIC8vIEV4dGVuZCB0aGUgcmFuZ2Ugc28gdGhhdCB3
ZSBjYW4gYXBwZW5kIHdyYXBwaW5nIG5vZGVzIGFzIHdlbGwgaWYgdGhleSdyZSBjb250YWluZCB3
aXRoaW4gdGhlIHBhcmFncmFwaAorICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIFJlZlB0
cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9IGNyZWF0ZVJhbmdlKGRvY3VtZW50KCksIHN0YXJ0LCBl
bmQsIGVjKTsKKyAgICBSZWZQdHI8UmFuZ2U+IGV4dGVuZGVkUmFuZ2UgPSBleHRlbmRSYW5nZVRv
V3JhcHBpbmdOb2RlcyhzZWxlY3RlZFJhbmdlLCBzZWxlY3RlZFJhbmdlLmdldCgpLCBuZXdQYXJl
bnQtPnBhcmVudE5vZGUoKSk7CisgICAgbmV3UGFyZW50LT5hcHBlbmRDaGlsZChleHRlbmRlZFJh
bmdlLT5leHRyYWN0Q29udGVudHMoZWMpLCBlYyk7CisKKyAgICAvLyBJZiB0aGUgc3RhcnQgb2Yg
cGFyYWdyYXBoIGRpZG4ndCBjaGFuZ2UgYnkgYXBwZW5kaW5nIG5vZGVzLCB3ZSBzaG91bGQgaW5z
ZXJ0IGJyIHRvIHNlcGVyYXRlIHRoZSBwYXJhZ3JhcGhzLgorICAgIE5vZGUqIHN0YXJ0T2ZOZXdQ
YXJhZ3JhcGggPSBzdGFydE9mUGFyYWdyYXBoKFBvc2l0aW9uKG5ld1BhcmVudCwgbmV3UGFyZW50
LT5jaGlsZE5vZGVDb3VudCgpKSkuZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCk7CisgICAgaWYgKHN0
YXJ0T2ZOZXdQYXJhZ3JhcGggPT0gc3RhcnRPZkxhc3RQYXJhZ3JhcGgpIHsKKyAgICAgICAgaWYg
KGluc2VydGlvblBvaW50KQorICAgICAgICAgICAgbmV3UGFyZW50LT5pbnNlcnRCZWZvcmUoY3Jl
YXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkpLCBpbnNlcnRpb25Qb2ludC0+bmV4dFNpYmxpbmco
KSwgZWMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXdQYXJlbnQtPmFwcGVuZENoaWxk
KGNyZWF0ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKSwgZWMpOworICAgIH0KKworICAgIC8vIFJl
bW92ZSB1bm5lY2Vzc2FyeSBiciBmcm9tIHRoZSBwbGFjZSB3aGVyZSB3ZSBtb3ZlZCB0aGUgcGFy
YWdyYXBoIGZyb20KKyAgICByZW1vdmVVbm5lY2Vzc2FyeUxpbmVCcmVha0F0KGVuZE9mUGFyYWdy
YXBoKTsKK30KKwordm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6cmVtb3ZlVW5uZWNlc3NhcnlM
aW5lQnJlYWtBdChjb25zdCBQb3NpdGlvbiYgZW5kT2ZQYXJhZ3JhcGgpCit7CisgICAgLy8gSWYg
dGhlcmUgaXMgc29tZXRoaW5nIGluIHRoaXMgcGFyYWdyYXBoLCB0aGVuIGRvbid0IHJlbW92ZSBi
ci4KKyAgICBpZiAoIWlzU3RhcnRPZlBhcmFncmFwaChlbmRPZlBhcmFncmFwaCkgfHwgIWlzRW5k
T2ZQYXJhZ3JhcGgoZW5kT2ZQYXJhZ3JhcGgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBX
ZSBvbmx5IGNhcmUgYWJvdXQgYnIgYXQgdGhlIGVuZCBvZiBwYXJhZ3JhcGgKKyAgICBOb2RlKiBi
ciA9IGVuZE9mUGFyYWdyYXBoLm5vZGUoKTsKKyAgICBOb2RlKiBwYXJlbnROb2RlID0gYnItPnBh
cmVudE5vZGUoKTsKKworICAgIC8vIElmIHRoZSBub2RlIGlzbid0IGJyIG9yIHRoZSBwYXJlbnQg
bm9kZSBpcyBlbXB0eSwgdGhlbiBkb24ndCByZW1vdmUuCisgICAgaWYgKCFici0+aGFzVGFnTmFt
ZShiclRhZykgfHwgaXNWaXNpYmx5QWRqYWNlbnQocG9zaXRpb25CZWZvcmVOb2RlKHBhcmVudE5v
ZGUpLCBwb3NpdGlvbkFmdGVyTm9kZShwYXJlbnROb2RlKSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHJlbW92ZU5vZGVBbmRQcnVuZUFuY2VzdG9ycyhicik7Cit9CisKIHZvaWQgSW5kZW50T3V0
ZGVudENvbW1hbmQ6OmluZGVudFJlZ2lvbigpCiB7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxl
Y3Rpb24gPSBzZWxlY3Rpb25Gb3JQYXJhZ3JhcGhJdGVyYXRpb24oZW5kaW5nU2VsZWN0aW9uKCkp
OwogICAgIFZpc2libGVQb3NpdGlvbiBzdGFydE9mU2VsZWN0aW9uID0gc2VsZWN0aW9uLnZpc2li
bGVTdGFydCgpOwogICAgIFZpc2libGVQb3NpdGlvbiBlbmRPZlNlbGVjdGlvbiA9IHNlbGVjdGlv
bi52aXNpYmxlRW5kKCk7Ci0gICAgaW50IHN0YXJ0SW5kZXggPSBpbmRleEZvclZpc2libGVQb3Np
dGlvbihzdGFydE9mU2VsZWN0aW9uKTsKLSAgICBpbnQgZW5kSW5kZXggPSBpbmRleEZvclZpc2li
bGVQb3NpdGlvbihlbmRPZlNlbGVjdGlvbik7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJh
bmdlID0gc2VsZWN0aW9uLmZpcnN0UmFuZ2UoKTsKIAogICAgIEFTU0VSVCghc3RhcnRPZlNlbGVj
dGlvbi5pc051bGwoKSk7CiAgICAgQVNTRVJUKCFlbmRPZlNlbGVjdGlvbi5pc051bGwoKSk7CkBA
IC0yMDAsMTAgKzI0OSwyMyBAQCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRSZWdp
b24oCiAgICAgICAgIFZpc2libGVQb3NpdGlvbiBlbmRPZk5leHRQYXJhZ3JhcGggPSBlbmRPZlBh
cmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgubmV4dCgpKTsKICAgICAgICAgaWYgKHRyeUlu
ZGVudGluZ0FzTGlzdEl0ZW0oZW5kT2ZDdXJyZW50UGFyYWdyYXBoKSkKICAgICAgICAgICAgIGJs
b2NrcXVvdGVGb3JOZXh0SW5kZW50ID0gMDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgaW5k
ZW50SW50b0Jsb2NrcXVvdGUoZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBlbmRPZk5leHRQYXJhZ3Jh
cGgsIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50KTsKLSAgICAgICAgICAgIC8vIGJsb2NrcXVvdGVG
b3JOZXh0SW5kZW50IG1heWJlIHVwZGF0ZWQKLSAgICAgICAgICAgIC8vIHRoaXMgaXMgZHVlIHRv
IHRoZSB3YXkgcHJlcGFyZUJsb2NrcXVvdGVMZXZlbEZvckluc2VydGlvbiB3YXMgZGVzaWduZWQu
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZDdXJy
ZW50UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgpOwor
ICAgICAgICAgICAgTm9kZSogYmxvY2tOb2RlID0gZW5jbG9zaW5nQmxvY2soZW5kT2ZDdXJyZW50
UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpKTsKKyAgICAgICAgICAgIC8vIGV4dGVu
ZCB0aGUgcmVnaW9uIHNvIHRoYXQgaXQgY29udGFpbnMgYWxsIHRoZSBhbmNlc3RvciBibG9ja3Mg
d2l0aGluIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAg
ICAgICAgICBFbGVtZW50KiB1bnNwbGl0dGFibGVOb2RlID0gdW5zcGxpdHRhYmxlRWxlbWVudEZv
clBvc2l0aW9uKGVuZE9mQ3VycmVudFBhcmFncmFwaC5kZWVwRXF1aXZhbGVudCgpKTsKKyAgICAg
ICAgICAgIFJlZlB0cjxSYW5nZT4gb3JpZ2luYWxSYW5nZSA9IGNyZWF0ZVJhbmdlKGRvY3VtZW50
KCksIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBlYyk7Cisg
ICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IGV4dGVuZGVkUmFuZ2UgPSBleHRlbmRSYW5nZVRvV3Jh
cHBpbmdOb2RlcyhvcmlnaW5hbFJhbmdlLCBzZWxlY3RlZFJhbmdlLmdldCgpLCB1bnNwbGl0dGFi
bGVOb2RlKTsKKyAgICAgICAgICAgIGlmIChvcmlnaW5hbFJhbmdlICE9IGV4dGVuZGVkUmFuZ2Up
IHsKKyAgICAgICAgICAgICAgICBlbmRPZkN1cnJlbnRQYXJhZ3JhcGggPSBlbmRPZlBhcmFncmFw
aChleHRlbmRlZFJhbmdlLT5lbmRQb3NpdGlvbigpLnByZXZpb3VzKCkpOworICAgICAgICAgICAg
ICAgIGJsb2NrTm9kZSA9IGVuY2xvc2luZ0Jsb2NrKFJhbmdlOjpjb21tb25BbmNlc3RvckNvbnRh
aW5lcihleHRlbmRlZFJhbmdlLT5zdGFydFBvc2l0aW9uKCkubm9kZSgpLCBleHRlbmRlZFJhbmdl
LT5lbmRQb3NpdGlvbigpLm5vZGUoKSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBl
bmRPZk5leHRQYXJhZ3JhcGggPSBlbmRPZlBhcmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgu
bmV4dCgpKTsKKyAgICAgICAgICAgIGluZGVudEludG9CbG9ja3F1b3RlKHN0YXJ0T2ZDdXJyZW50
UGFyYWdyYXBoLCBlbmRPZkN1cnJlbnRQYXJhZ3JhcGgsIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50
LCBibG9ja05vZGUpOworICAgICAgICAgICAgLy8gYmxvY2txdW90ZUZvck5leHRJbmRlbnQgd2ls
bCBiZSB1cGRhdGVkIGluIHRoZSBmdW5jdGlvbgorICAgICAgICB9CiAgICAgICAgIC8vIFNhbml0
eSBjaGVjazogTWFrZSBzdXJlIG91ciBtb3ZlUGFyYWdyYXBoIGNhbGxzIGRpZG4ndCByZW1vdmUg
ZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpCiAgICAgICAgIC8vIElm
IHNvbWVob3cgd2UgZGlkLCByZXR1cm4gdG8gcHJldmVudCBjcmFzaGVzLgogICAgICAgICBpZiAo
ZW5kT2ZOZXh0UGFyYWdyYXBoLmlzTm90TnVsbCgpICYmICFlbmRPZk5leHRQYXJhZ3JhcGguZGVl
cEVxdWl2YWxlbnQoKS5ub2RlKCktPmluRG9jdW1lbnQoKSkgewpAQCAtMjEyLDExICsyNzQsNyBA
QCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRSZWdpb24oCiAgICAgICAgIH0KICAg
ICAgICAgZW5kT2ZDdXJyZW50UGFyYWdyYXBoID0gZW5kT2ZOZXh0UGFyYWdyYXBoOwogICAgIH0K
LSAgICAKLSAgICBSZWZQdHI8UmFuZ2U+IHN0YXJ0UmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdl
RnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLCBzdGFy
dEluZGV4LCAwLCB0cnVlKTsKLSAgICBSZWZQdHI8UmFuZ2U+IGVuZFJhbmdlID0gVGV4dEl0ZXJh
dG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1l
bnQoKSwgZW5kSW5kZXgsIDAsIHRydWUpOwotICAgIGlmIChzdGFydFJhbmdlICYmIGVuZFJhbmdl
KQotICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihzdGFydFJhbmdl
LT5zdGFydFBvc2l0aW9uKCksIGVuZFJhbmdlLT5zdGFydFBvc2l0aW9uKCksIERPV05TVFJFQU0p
KTsKKwogfQogCiB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpvdXRkZW50UGFyYWdyYXBoKCkK
SW5kZXg6IFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oCShyZXZpc2lvbiA0NTU2
NCkKKysrIFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00OCwxMyArNDgsMTUgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZJWE1FOiBEb2VzIHRo
aXMgYmVsb25nIGluIGh0bWxlZGl0aW5nLmNwcD8KICAgICBib29sIGlzQXRVbnNwbGl0dGFibGVF
bGVtZW50KGNvbnN0IFBvc2l0aW9uJikgY29uc3Q7CisgICAgdm9pZCBhcHBlbmRQYXJhZ3JhcGhJ
bnRvTm9kZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBWaXNpYmxlUG9zaXRp
b24mIGVuZCwgTm9kZSogbmV3UGFyZW50KTsKKyAgICB2b2lkIHJlbW92ZVVubmVjZXNzYXJ5TGlu
ZUJyZWFrQXQoY29uc3QgUG9zaXRpb24mIGVuZE9mUGFyYWdyYXBoKTsKIAogICAgIHZvaWQgaW5k
ZW50UmVnaW9uKCk7CiAgICAgdm9pZCBvdXRkZW50UmVnaW9uKCk7CiAgICAgdm9pZCBvdXRkZW50
UGFyYWdyYXBoKCk7CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBwcmVwYXJlQmxvY2txdW90ZUxl
dmVsRm9ySW5zZXJ0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYp
OwogICAgIGJvb2wgdHJ5SW5kZW50aW5nQXNMaXN0SXRlbShjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKLSAgICB2b2lkIGluZGVudEludG9CbG9ja3F1b3RlKGNvbnN0IFZpc2libGVQb3NpdGlvbiYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYpOworICAgIHZvaWQgaW5k
ZW50SW50b0Jsb2NrcXVvdGUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBv
c2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+JiwgTm9kZSopOwogCiAgICAgRUluZGVudFR5cGUgbV90
eXBlT2ZBY3Rpb247CiAgICAgaW50IG1fbWFyZ2luSW5QaXhlbHM7CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA0NTYyMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUwIEBACisyMDA5LTA3LTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUBnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9y
aW5nIG9mIGluZGVudFJlZ2lvbiB0byBmaXggYnVncyAyNjgxNiBhbmQgMjUzMTcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODE2CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMxNworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5OTUgKHBhcnRpYWxseSkKKwor
ICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUsIGEg
c2ltcGxlciBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIG1vdmVQYXJhZ3JhcGgKKyAgICAgICAgYW5k
IHJlcGxhY2VzIGFsbCBjYWxscyBpbnNpZGUgaW5kZW50UmVnaW9uLiBUaGUgZm9sbG93aW5nIGlz
IHRoZSBuZXcgYmVoYXZpb3Igb2YgaW5kZW50UmVnaW9uLgorCisgICAgICAgIDEuIFdlIHRyeSB0
byBpbmRlbnQgYXMgbWFueSB3cmFwcGluZyBub2RlcyBhcyBwb3NzaWJsZS4KKyAgICAgICAgICAg
ZS5nLiB3aGVuIGluZGVudGluZyAiaGVsbG8iIGluIDxkaXY+aGVsbG88L2Rpdj4sIHdlIHRyeSB0
byBpbmRlbnQgZGl2IGFzIHdlbGwuCisgICAgICAgIDIuIFdlIGRvIG5vdCBkZWxldGUgYW55IHdy
YXBwaW5nIGVsZW1lbnRzCisgICAgICAgICAgIFdpdGggbW92ZVBhcmFncmFwaCwgd2UgdXNlZCB0
byByZW1vdmUgYWxsIHdyYXBwaW5nIG5vZGVzLCBhbmQgcmVwbGFjZWQgd2l0aCBhIGJsb2NrcXVv
dGUuCisgICAgICAgICAgIFRoaXMgd2FzIGNhdXNpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzOTk1IGZvciBpbmRlbnRhdGlvbi4KKyAgICAgICAgICAgV2l0aCBh
cHBlbmRQYXJhZ3JhcGhJbnRvTm9kZSwgd2UgY2FuIHByZXNlcnZlIGFsbCB3cmFwcGluZyBub2Rl
cy4KKyAgICAgICAgMy4gV2Ugb25seSBzcGxpdCB0aGUgdHJlZSB1bnRpbCB0aGUgY2xvc2VzdCBi
bG9jayBub2RlIGluc3RlYWQgb2YgdW50aWwgdGhlIHJvb3QgZWRpdGFibGUgbm9kZS4KKyAgICAg
ICAgICAgVGhpcyBiZWhhdmlvcmFsIGNoYW5nZSBmaXhlcyB0aGUgYnVnIDI1MzE3LgorICAgICAg
ICA0LiBXaGVuIG11bHRpcGxlIHBhcmFncmFwaHMgYXJlIGluZGVudGVkLCB3ZSBpbmRlbnQgdGhl
IGhpZ2hlc3QgY29tbW9uIGFuY2VzdG9yIHdpdGhpbiB0aGUgc2VsZWN0aW9uLgorICAgICAgICAg
ICBlLmcuIHdoZW4gYSBsaXN0IGlzIGEgY2hpbGQgbm9kZSBvZiBhIGRpdiwgYW5kIHRoZSBlbnRp
cmUgZGl2IGlzIGludGVuZGVkLAorICAgICAgICAgICAgICAgIHdlIGVuY2xvc2UgdGhlIGRpdiBi
eSBhIHNpbmdsZSBibG9ja3F1b3RlLgorCisgICAgICAgIAorICAgICAgICBOb3RlIHRoYXQgbmV3
IGJlaGF2aW9yIGlzIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoYXQgb2YgSW50ZXJuZXQgRXhwbG9y
ZXIgYW5kIEZpcmVmb3guCisgICAgICAgIFRvIGRlbW9uc3RyYXRlIHRoaXMsIHRoZSBmb2xsb3dp
bmcgdGVzdHMgYXJlIGFkZGVkIGFuZCByZWJhc2VsaW5lZC4KKworICAgICAgICAqIGVkaXRpbmcv
ZXhlY0NvbW1hbmQvMTk2NTMtMS1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChubyBsb25nZXIg
cmVtb3ZlcyB3cmFwcGluZyBkaXYpCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtZGl2LWluc2lkZS1saXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3Rl
ZC1ibG9ja3F1b3Rlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5k
L2luZGVudC1uZXN0ZWQtZGl2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWRpdi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMi1leHBlY3RlZC50eHQ6IHJl
YmFzZWxpbmVkIChzZWxlY3Rpb24gY29ycmVjdGVkKQorICAgICAgICAqIGVkaXRpbmcvZXhlY0Nv
bW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0zLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQgKHNl
bGVjdGlvbiBjb3JyZWN0ZWQpCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
bmVzdGVkLWxpc3RzLTQtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAoc2VsZWN0aW9uIGNvcnJl
Y3RlZCkKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMt
NS1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChzZWxlY3Rpb24gY29ycmVjdGVkKQorICAgICAg
ICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2tx
dW90ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80NjQxODgwLTItZXhwZWN0ZWQu
dHh0OiByZWJhc2VsaW5lZAorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21t
YW5kLzQ5MTY1NDEtZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAobm8gbG9uZ2VyIHJlbW92ZXMg
d3JhcHBpbmcgc3BhbikKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFu
ZC81MTM4NDQxLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvZWRpdGluZy9leGVjQ29tbWFuZC81NDgxNTIzLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQKKwogMjAwOS0wNy0wNyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVy
bnN0ZWluLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC8xOTY1My0xLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
LzE5NjUzLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvMTk2NTMtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTUsNyArNSw3IEBAIFRoaXMgdGVzdHMgY3JlYXRpbmcgYSBsaXN0IGZyb20gYW4gZW1wdHkKIDx1
bD48bGk+PGI+Qm9sZDwvYj48L2xpPjwvdWw+CiAKIFRoaXMgdGVzdHMgaW5kZW50aW5nIGFuIGVt
cHR5IHBhcmFncmFwaCB3aXRoIGJvbGQgYWxyZWFkeSBhcHBsaWVkIHRvIGl0LiBUaGUgd29yZCBi
ZWxvdyBzaG91bGQgYmUgYm9sZC4KLTxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJs
b2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGlu
ZzogMHB4OyI+PGI+Qm9sZDwvYj48L2Jsb2NrcXVvdGU+Cis8YmxvY2txdW90ZSBjbGFzcz0id2Vi
a2l0LWluZGVudC1ibG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6
IG5vbmU7IHBhZGRpbmc6IDBweDsiPjxkaXY+PGI+Qm9sZDwvYj48L2Rpdj48L2Jsb2NrcXVvdGU+
CiAKIFRoaXMgdGVzdHMgaW5kZW50aW5nIGFuIGVtcHR5IHBhcmFncmFwaCB3aGVuIHRoZSB0eXBp
bmcgc3R5bGUgd2FzIEJvbGQuIFRoZSB3b3JkIGJlbG93IHNob3VsZCBiZSBib2xkLgogPGJsb2Nr
cXVvdGUgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAw
IDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7Ij48Yj5Cb2xkPC9iPjwvYmxvY2tx
dW90ZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1p
bnNpZGUtbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1pbnNp
ZGUtbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGhpcyB0
ZXN0cyBpbmRlbnRpbmcgYSBkaXYgaW5zaWRlIGEgbGlzdCBpdGVtLiBCeSBpbmRlbnRpbmcgIndv
cmxkIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYXJvdW5kIHdvcmxkIGlu
c2lkZSB0aGUgbGlzdCBpdGVtLgorCithCitoZWxsbword29ybGQKK2IKK2EgPHVsPiA8bGk+aGVs
bG88YmxvY2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1ibG9ja3F1b3RlIiBzdHlsZT0ibWFy
Z2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiPjxkaXYgaWQ9InRl
c3QiPiB3b3JsZCA8L2Rpdj48L2Jsb2NrcXVvdGU+PC9saT48L3VsPiBiCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5zaWRlLWxpc3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5z
aWRlLWxpc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvaW5kZW50LWRpdi1pbnNpZGUtbGlzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI3IEBACis8cD5UaGlzIHRlc3RzIGluZGVudGluZyBhIGRpdiBpbnNpZGUgYSBsaXN0IGl0ZW0u
ICBCeSBpbmRlbnRpbmcgIndvcmxkIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVv
dGUgYXJvdW5kIHdvcmxkIGluc2lkZSB0aGUgbGlzdCBpdGVtLjwvcD4KKzxkaXYgaWQ9ImRpdiIg
Y29udGVudGVkaXRhYmxlPSJ0cnVlIj4KK2EKKzx1bD4KKzxsaT5oZWxsbzxkaXYgaWQ9InRlc3Qi
Pgord29ybGQKKzwvbGk+Cis8L2Jsb2NrcXVvdGU+Cis8L3VsPgorYgorPC9kaXY+Cis8ZGl2IGlk
PSJjIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7Cit2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKK3ZhciByID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3Iuc2V0U3RhcnQoZSwwKTsKK3Iu
c2V0RW5kKGUsMSk7CitzLmFkZFJhbmdlKHIpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluZGVu
dCIsIGZhbHNlLCBudWxsKTsKK3RleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZGl2JykuaW5uZXJIVE1MKTsKK2RvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjJykuYXBwZW5kQ2hpbGQoIHRleHQgKTsKKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LW5lc3RlZC1ibG9ja3F1b3Rlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5k
ZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNyBAQAorVGhpcyB0ZXN0cyBpbmRlbnRpbmcgbmVzdGVkIGJsb2NrcXVvdGVzLiBCeSBpbmRl
bnRpbmcgIndlYmtpdCIiIiIsIHdlIHNob3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGJl
dHdlZW4gYnIgdGFnIGFuZCB0aGUgZW5kIG9mIHRoZSBpbm5lciBibG9ja3F1b3RlLgorCitoZWxs
bword29ybGQKK3dlYmtpdAoraXMgZ3JlYXQKKzxibG9ja3F1b3RlIGlkPSJvdXRlciI+IGhlbGxv
IDxibG9ja3F1b3RlIGlkPSJpbm5lciI+IHdvcmxkPGJyPjxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJr
aXQtaW5kZW50LWJsb2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjog
bm9uZTsgcGFkZGluZzogMHB4OyI+IHdlYmtpdCA8L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPiBp
cyBncmVhdCA8L2Jsb2NrcXVvdGU+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2luZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5l
c3RlZC1ibG9ja3F1b3Rlcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACis8cD5U
aGlzIHRlc3RzIGluZGVudGluZyBuZXN0ZWQgYmxvY2txdW90ZXMuICBCeSBpbmRlbnRpbmcgIndl
YmtpdCIiIiIsIHdlIHNob3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3RlIGJldHdlZW4gYnIg
dGFnIGFuZCB0aGUgZW5kIG9mIHRoZSBpbm5lciBibG9ja3F1b3RlLjwvcD4KKzxkaXYgaWQ9ImRp
diIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4KKzxibG9ja3F1b3RlIGlkPSJvdXRlciI+CitoZWxs
bworPGJsb2NrcXVvdGUgaWQ9ImlubmVyIj4KK3dvcmxkPGJyPgord2Via2l0Cis8L2Jsb2NrcXVv
dGU+CitpcyBncmVhdAorPC9ibG9ja3F1b3RlPgorPC9kaXY+Cis8ZGl2IGlkPSJjIj48L2Rpdj4K
KzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpbm5lciIpOwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Cit2YXIgciA9
IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CityLnNldFN0YXJ0KGUsMik7CityLnNldEVuZChlLDMp
Oworcy5hZGRSYW5nZShyKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJJbmRlbnQiLCBmYWxzZSwg
bnVsbCk7Cit0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2RpdicpLmlubmVySFRNTCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpLmFw
cGVuZENoaWxkKCB0ZXh0ICk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2luZGVudC1uZXN0ZWQtZGl2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdHMgaW5kZW50aW5nIG5lc3Rl
ZCBkaXZzLiBCeSBpbmRlbnRpbmcgImhlbGxvIiwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZW5jbG9z
ZSBhbGwgdGhyZWUgYmxvY2tzIDEgdGhyb3VnaCAzIGJ5IGEgYmxvY2txdW90ZQorCitoZWxsbwor
PGJsb2NrcXVvdGUgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdp
bjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7Ij48ZGl2IGlkPSJibG9j
azEiPjxkaXYgaWQ9ImJsb2NrMiI+PGRpdiBpZD0iYmxvY2szIj5oZWxsbzwvZGl2PjwvZGl2Pjwv
ZGl2PjwvYmxvY2txdW90ZT4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW5lc3RlZC1kaXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKzxwPlRoaXMgdGVzdHMgaW5kZW50aW5nIG5lc3RlZCBk
aXZzLiAgQnkgaW5kZW50aW5nICJoZWxsbyIsIHdlIHNob3VsZCBiZSBhYmxlIHRvIGVuY2xvc2Ug
YWxsIHRocmVlIGJsb2NrcyAxIHRocm91Z2ggMyBieSBhIGJsb2NrcXVvdGU8L3A+Cis8ZGl2IGlk
PSJkaXYiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+Cis8ZGl2IGlkPSJibG9jazEiPjxkaXYgaWQ9
ImJsb2NrMiI+PGRpdiBpZD0iYmxvY2szIj5oZWxsbzwvZGl2PjwvZGl2PjwvZGl2PgorPC9kaXY+
Cis8ZGl2IGlkPSJjIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIg
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9jazMiKTsKK3ZhciBzID0gd2luZG93Lmdl
dFNlbGVjdGlvbigpOwordmFyIHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworci5zZXRTdGFy
dChlLDApOworci5zZXRFbmQoZSwxKTsKK3MuYWRkUmFuZ2Uocik7Citkb2N1bWVudC5leGVjQ29t
bWFuZCgiSW5kZW50IiwgZmFsc2UsIG51bGwpOwordGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKS5pbm5lckhUTUwpOworZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2MnKS5hcHBlbmRDaGlsZCggdGV4dCApOworPC9zY3JpcHQ+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0yLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTIsNyArMiw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE8KIEVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRp
dGluZ05vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gTEkgPiBPTCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBMSSA+IE9MID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0
ZXh0ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBv
ZiAjdGV4dCA+IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0cyBpbmRlbnRpbmcg
InRocmVlIi4gWW91IHNob3VsZCBzZWUgbnVtYmVycyAxIGFuZCAyIGJlZm9yZSAidHdvIiBhbmQg
InRocmVlIiByZXNwZWN0aXZlbHkuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LW5lc3RlZC1saXN0cy0zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
Miw3ICsyLDcgQEAgRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ETwogRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0
aW5nTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5n
ZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBMSSA+IFVMID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IFNQQU4gPiBMSSA+IFVMID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4g
TEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4
dCA+IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6
V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0cyBpbmRlbnRpbmcgInRocmVl
Ii4gWW91IHNob3VsZCBzZWUgMSwgMiwgYW5kIDMgYmVmb3JlICJ0d28iLCAidGhyZWUiLCBhbmQg
ImZvdXIiIHJlc3BlY3RpdmVseS4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LW5lc3RlZC1saXN0cy00LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDQ1NTY0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
LDcgKzIsNyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPCiBFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRp
bmdOb3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
OihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IExJID4gVUwgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byA3IG9mICN0ZXh0ID4gU1BBTiA+IExJID4gVUwgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBM
SSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0
ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBUaGlzIHRlc3RzIGluZGVudGluZyAidGhyZWUi
IGFuZCAiZm91ciIuIFlvdSBzaG91bGQgc2VlIDEgdGhyb3VnaCA0IGluIG9yZGVyIGJlZm9yZSBu
dW1iZXJzICJ0d28iIHRocm91Z2ggImZpdmUiLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy01
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTIsNyArMiw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0lu
RE8KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJl
Z2luRWRpdGluZ05vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gTEkgPiBV
TCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IExJ
ID4gVUwgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERF
TEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiAjdGV4dCA+IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBMSSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGls
bFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIFRoaXMg
dGVzdHMgaW5kZW50aW5nICJ0aHJlZSIuIFlvdSBzaG91bGQgc2VlIDEsIDIsIGFuZCB0aGVuIGEg
YnVsbGV0IGJlZm9yZSBudW1iZXJzICJ0d28iLCAidGhyZWUiLCBhbmQgImZvdXIiIHJlc3BlY3Rp
dmVseS4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29u
ZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1i
bG9ja3F1b3RlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90ZS1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyBpbmRlbnRp
bmcgdGhlIHNlY29uZCBwYXJhZ3JhcGggaW4gYSBibG9ja3F1b3RlLiBCeSBpbmRlbnRpbmcgIndv
cmxkIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVvdGUgYXJvdW5kIHdvcmxkIGlu
c2lkZSB0aGUgInRlc3QiIGJsb2NrcXVvdGUuCisKK2hlbGxvCit3b3JsZAorPGJsb2NrcXVvdGUg
aWQ9InRlc3QiPiBoZWxsbzxicj48YmxvY2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1ibG9j
a3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6
IDBweDsiPiB3b3JsZCA8L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPgpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1
b3RlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBo
LWluLWJsb2NrcXVvdGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorPHA+VGhp
cyB0ZXN0cyBpbmRlbnRpbmcgdGhlIHNlY29uZCBwYXJhZ3JhcGggaW4gYSBibG9ja3F1b3RlLiAg
QnkgaW5kZW50aW5nICJ3b3JsZCIsIHdlIHNob3VsZCBiZSBpbnNlcnRpbmcgYSBibG9ja3F1b3Rl
IGFyb3VuZCB3b3JsZCBpbnNpZGUgdGhlICJ0ZXN0IiBibG9ja3F1b3RlLjwvcD4KKzxkaXYgaWQ9
ImRpdiIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4KKzxibG9ja3F1b3RlIGlkPSJ0ZXN0Ij4KK2hl
bGxvPGJyPgord29ybGQKKzwvYmxvY2txdW90ZT4KKzwvZGl2PgorPGRpdiBpZD0iYyI+PC9kaXY+
Cis8c2NyaXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOwordmFyIHMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7Cit2YXIgciA9
IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CityLnNldFN0YXJ0KGUsMik7CityLnNldEVuZChlLDMp
Oworcy5hZGRSYW5nZShyKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJJbmRlbnQiLCBmYWxzZSwg
bnVsbCk7Cit0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2RpdicpLmlubmVySFRNTCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYycpLmFw
cGVuZENoaWxkKCB0ZXh0ICk7Cis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80NjQx
ODgwLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ1
NTY0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNDY0
MTg4MC0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAgRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZwogRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgot
RURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9E
T01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBCTE9DS1FVT1RFID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG8gMzQgb2YgI3RleHQgPiBCTE9DS1FVT1RFID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxIG9mICN0ZXh0ID4g
QkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDM1IG9mICN0ZXh0
ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2Vi
Vmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCkBA
IC0yNCw1ICsyNCw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI0NngxOAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMjQ2OiAiVGhpcyBwYXJhZ3JhcGggc2hvdWxkIG5vdCBiZSBpbmRl
bnRlZC4iCiAgICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMjQ2LDE0KSBzaXplIDB4MAotc2Vs
ZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtC
TE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAg
e0hUTUx9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDM0IG9mIGNoaWxk
IDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNo
aWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3Rh
cnQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9
IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2Yg
ZG9jdW1lbnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMzUgb2YgY2hpbGQgMCB7I3RleHR9
IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9E
WX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ5MTY1NDEtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ5MTY1
NDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ5MTY1NDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xMCwxMSArMTAsMTMgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDMyMDogIidmb28nIGFuZCAnYmFyJyBiZWZv
cmUgYW5kIGFmdGVyIHRoZSBpbmRlbnQgb3BlcmF0aW9uLiIKICAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDUyKSBzaXplIDc4NHgzNgogICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9U
RX0gYXQgKDQwLDApIHNpemUgNzQ0eDM2Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMjF4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIx
OiAiZm9vIgorICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMXgx
OAorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjF4MTgKKyAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjE6ICJmb28iCiAgICAgICAgICAg
UmVuZGVyQlIge0JSfSBhdCAoMjEsMTQpIHNpemUgMHgwCi0gICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDE4KSBzaXplIDIweDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwx
OCkgd2lkdGggMjA6ICJiYXIiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDIweDE4CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTgpIHNp
emUgMjB4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDIwOiAiYmFy
IgogICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwzNikgc2l6ZSA3ODR4MAot
c2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAw
IHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxk
IDAge0hUTUx9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDIgb2YgY2hp
bGQgMiB7I3RleHR9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDIge0RJVn0gb2Yg
Y2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKK3NlbGVjdGlvbiBz
dGFydDogcG9zaXRpb24gMSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7U1BBTn0gb2Yg
Y2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBv
ZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAy
IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAyIHtTUEFOfSBvZiBjaGlsZCAwIHtCTE9DS1FV
T1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9
IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVj
Q29tbWFuZC81MTM4NDQxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81MTM4NDQxLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29t
bWFuZC81MTM4NDQxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAsMTAgKzEwLDEy
IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDE4KSB3aWR0aCA3NzY6ICJGb3JtYXRCbG9jayB0byBpbXBsZW1lbnQgYSBcIlF1b3RlIFRleHRc
IiBmZWF0dXJlLCBhbmQgc3R5bGUgcnVsZXMgZm9yIGJsb2NrcXVvdGVzIGFwcGVhcmVkIG9uIHRo
ZSBibG9ja3F1b3RlcyB0aGF0IHdlIHVzZSIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikg
d2lkdGggMTQ5OiAidG8gaW1wbGVtZW50IGluZGVudGluZy4iCiAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw3MCkgc2l6ZSA3ODR4NjIKLSAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVP
VEV9IGF0ICg0MCwwKSBzaXplIDc0NHgxOAotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDIzMHgxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MjMwOiAiVGhpcyBzaG91bGQgYmUgaW5kZW50ZWQsIG5vdCBxdW90ZWQuIgorICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICAgIFJlbmRlckJsb2Nr
IHtCTE9DS1FVT1RFfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTgKKyAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIzMHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAyMzA6ICJUaGlzIHNob3VsZCBiZSBpbmRlbnRlZCwgbm90IHF1b3RlZC4i
CisgICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTgpIHNpemUgNzg0eDAK
ICAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg4LDI2KSBzaXplIDc2OHgzNiBb
Ym9yZGVyOiAoMXB4IGRhc2hlZCAjQUFBQUFBKV0KICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDksOSkgc2l6ZSAxNzV4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg5LDkpIHdp
ZHRoIDE3NTogIlRoaXMgdGV4dCBzaG91bGQgYmUgUXVvdGVkLiIKLWNhcmV0OiBwb3NpdGlvbiAw
IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAzIHtE
SVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitjYXJl
dDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0g
b2YgY2hpbGQgMSB7RElWfSBvZiBjaGlsZCAzIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNo
aWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZWRpdGluZy9leGVjQ29tbWFuZC81NDgxNTIzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC81NDgxNTIzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNDU1NjQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRp
dGluZy9leGVjQ29tbWFuZC81NDgxNTIzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNyArMjcsNSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICAgICAg
ICAgIFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICg0NSwyNikgc2l6ZSAzNHgyMiBbYm9yZGVyOiAo
MXB4IGluc2V0ICM4MDgwODApXSBbcj0xIGM9MSBycz0xIGNzPTFdCiAgICAgICAgICAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDMweDE4CiAgICAgICAgICAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggMzA6ICJGb3VyIgotICAgICAgICAgICAg
UmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsNTIpIHNpemUgNzA0eDAKLSAgICAgICAgUmVu
ZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsNTIpIHNpemUgNzg0eDAKIHNlbGVjdGlvbiBzdGFy
dDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtUQUJMRX0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0g
b2YgY2hpbGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZ
fSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAotc2VsZWN0aW9uIGVuZDogICBwb3NpdGlv
biAxIG9mIGNoaWxkIDAge1RBQkxFfSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAx
IHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxk
IDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDIgb2YgY2hp
bGQgMCB7VEFCTEV9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDEge0JMT0NLUVVP
VEV9IG9mIGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0g
b2YgZG9jdW1lbnQKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWxlY3Rpb24t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NTU2NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVn
aW5FZGl0aW5nCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRD
aGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAj
dGV4dCA+IEJMT0NLUVVPVEUgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9m
ICN0ZXh0ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmlu
aXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitF
RElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RP
TVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IFNQQU4gPiBCTE9DS1FVT1RFID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IFNQQU4gPiBCTE9DS1FVT1RF
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZp
bml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdl
Tm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKQEAgLTE3LDQyICsxNyw0
MyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIChhbm9u
eW1vdXMpIGF0ICgwLDE4KSBzaXplIDc4NHgxOAogICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgw
LDApIHNpemUgMHgxOAogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0
eDE5NAotICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDApIHNpemUgNzQ0
eDU0CisgICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsMCkgc2l6ZSA3NDR4
MTk0CiAgICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3NDR4
MzYKLSAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQyeDE4Ci0g
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQyOiAiTG9yZW0iCisgICAgICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDJ4MTgKKyAgICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDJ4MTgKKyAgICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MjogIkxvcmVtIgogICAgICAgICAgICAgUmVuZGVy
QlIge0JSfSBhdCAoNDIsMTQpIHNpemUgMHgwCiAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMTgpIHNpemUgODN4MTgKICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgp
IHdpZHRoIDgzOiAibW9yZSBMb3JlbSEiCi0gICAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVP
VEV9IGF0ICg0MCwzNikgc2l6ZSA3MDR4MTgKLSAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDM4eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM4OiAiaXBzdW0iCi0gICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDU0
KSBzaXplIDc4NHgwCi0gICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsNzAp
IHNpemUgNzQ0eDU0Ci0gICAgICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoMCwwKSBzaXplIDc0
NHg1NAotICAgICAgICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoNDAsMCkgc2l6ZSA3MDR4NTQK
KyAgICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDM2KSBzaXplIDcwNHgx
MjIKKyAgICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzA0
eDE4CisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM4eDE4
CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzg6ICJpcHN1bSIKKyAg
ICAgICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMzgsMTQpIHNpemUgMHgwCisgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7VUx9IGF0ICgwLDM0KSBzaXplIDcwNHg1NAogICAgICAgICAgICAgICBS
ZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwwKSBzaXplIDY2NHgxOAotICAgICAgICAgICAgICAg
IFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IHdoaXRlIGJ1bGxldAorICAg
ICAgICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IGJ1bGxl
dAogICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1eDE4
CiAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNTogIkZvbyIKICAg
ICAgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMTgpIHNpemUgNjY0eDE4Ci0g
ICAgICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODogd2hp
dGUgYnVsbGV0CisgICAgICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNp
emUgN3gxODogYnVsbGV0CiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMjN4MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDIzOiAiQmFyIgogICAgICAgICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCwzNikg
c2l6ZSA2NjR4MTgKLSAgICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkg
c2l6ZSA3eDE4OiB3aGl0ZSBidWxsZXQKKyAgICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2Vy
IGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiBidWxsZXQKICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNXgxOAogICAgICAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggMjU6ICJCYXoiCi0gICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RF
fSBhdCAoNDAsMTQwKSBzaXplIDc0NHg1NAotICAgICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FV
T1RFfSBhdCAoNDAsMCkgc2l6ZSA3MDR4MTgKLSAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDM3eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM3OiAiRG9sb3IiCi0gICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAs
MTgpIHNpemUgNzQ0eDM2CisgICAgICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAo
MCwxMDQpIHNpemUgNzA0eDE4CisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDM3eDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
Mzc6ICJEb2xvciIKKyAgICAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxNTgp
IHNpemUgNzQ0eDM2CiAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAzNHgxOAogICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNDogIlN1bSEi
CiAgICAgICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgzNCwxNCkgc2l6ZSAweDAKLSAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAzOHgxOAotICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMzg6ICJUaGluZyIKKyAgICAgICAgICAgIFJlbmRl
cklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAzOHgxOAorICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMTgpIHNpemUgMzh4MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwxOCkgd2lkdGggMzg6ICJUaGluZyIKICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255
bW91cykgYXQgKDAsMTk0KSBzaXplIDc4NHgwCi1zZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAg
b2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDQge0RJ
Vn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKLXNlbGVj
dGlvbiBlbmQ6ICAgcG9zaXRpb24gNSBvZiBjaGlsZCAzIHsjdGV4dH0gb2YgY2hpbGQgMyB7QkxP
Q0tRVU9URX0gb2YgY2hpbGQgNCB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtI
VE1MfSBvZiBkb2N1bWVudAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBv
ZiBjaGlsZCAwIHtTUEFOfSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCA0IHtESVZ9
IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rp
b24gZW5kOiAgIHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDYge1NQQU59
IG9mIGNoaWxkIDEge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDQge0RJVn0gb2YgY2hpbGQgMSB7Qk9E
WX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQK
</data>
<flag name="review"
          id="16914"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33073</attachid>
            <date>2009-07-19 23:32:28 -0700</date>
            <delta_ts>2009-07-20 14:58:05 -0700</delta_ts>
            <desc>5th submission</desc>
            <filename>fix26816e</filename>
            <type>text/plain</type>
            <size>46804</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjEwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDktMDctMTkgIFJ5b3N1a2UgTml3YSAgPHJ5b3N1a2Uubml3YUBn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVmYWN0b3Jpbmcgb2YgaW5kZW50UmVnaW9uIHRvIGZpeCBidWdzIDI2ODE2IGFuZCAyNTMx
NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY4MTYK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzE3Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk5NSAocGFy
dGlhbGx5KQorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhcHBlbmRQYXJhZ3JhcGhJ
bnRvTm9kZSwgYSBzaW1wbGVyIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgbW92ZVBhcmFncmFwaAor
ICAgICAgICBhbmQgcmVwbGFjZXMgYWxsIGNhbGxzIGluc2lkZSBpbmRlbnRSZWdpb24uIFRoZSBm
b2xsb3dpbmcgaXMgdGhlIG5ldyBiZWhhdmlvciBvZiBpbmRlbnRSZWdpb24uCisKKyAgICAgICAg
MS4gV2UgdHJ5IHRvIGluZGVudCBhcyBtYW55IHdyYXBwaW5nIG5vZGVzIGFzIHBvc3NpYmxlLgor
ICAgICAgICAgICBlLmcuIHdoZW4gaW5kZW50aW5nICJoZWxsbyIgaW4gPGRpdj5oZWxsbzwvZGl2
Piwgd2UgdHJ5IHRvIGluZGVudCBkaXYgYXMgd2VsbC4KKyAgICAgICAgMi4gV2UgZG8gbm90IGRl
bGV0ZSBhbnkgd3JhcHBpbmcgZWxlbWVudHMKKyAgICAgICAgICAgV2l0aCBtb3ZlUGFyYWdyYXBo
LCB3ZSB1c2VkIHRvIHJlbW92ZSBhbGwgd3JhcHBpbmcgbm9kZXMsIGFuZCByZXBsYWNlZCB3aXRo
IGEgYmxvY2txdW90ZS4KKyAgICAgICAgICAgVGhpcyB3YXMgY2F1c2luZyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5OTUgZm9yIGluZGVudGF0aW9uLgorICAgICAg
ICAgICBXaXRoIGFwcGVuZFBhcmFncmFwaEludG9Ob2RlLCB3ZSBjYW4gcHJlc2VydmUgYWxsIHdy
YXBwaW5nIG5vZGVzLgorICAgICAgICAzLiBXZSBvbmx5IHNwbGl0IHRoZSB0cmVlIHVudGlsIHRo
ZSBjbG9zZXN0IGJsb2NrIG5vZGUgaW5zdGVhZCBvZiB1bnRpbCB0aGUgcm9vdCBlZGl0YWJsZSBu
b2RlLgorICAgICAgICAgICBUaGlzIGJlaGF2aW9yYWwgY2hhbmdlIGZpeGVzIHRoZSBidWcgMjUz
MTcuCisgICAgICAgIDQuIFdoZW4gbXVsdGlwbGUgcGFyYWdyYXBocyBhcmUgaW5kZW50ZWQsIHdl
IGluZGVudCB0aGUgaGlnaGVzdCBjb21tb24gYW5jZXN0b3Igd2l0aGluIHRoZSBzZWxlY3Rpb24u
CisgICAgICAgICAgIGUuZy4gd2hlbiBhIGxpc3QgaXMgYSBjaGlsZCBub2RlIG9mIGEgZGl2LCBh
bmQgdGhlIGVudGlyZSBkaXYgaXMgaW50ZW5kZWQsCisgICAgICAgICAgICAgICAgd2UgZW5jbG9z
ZSB0aGUgZGl2IGJ5IGEgc2luZ2xlIGJsb2NrcXVvdGUuCisKKyAgICAgICAgTm90ZSB0aGF0IG5l
dyBiZWhhdmlvciBpcyBtb3JlIGNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIEludGVybmV0IEV4cGxv
cmVyIGFuZCBGaXJlZm94LgorICAgICAgICBUbyBkZW1vbnN0cmF0ZSB0aGlzLCB0aGUgZm9sbG93
aW5nIHRlc3RzIGFyZSBhZGRlZC4KKworICAgICAgICBUZXN0czogZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZXhl
Y0NvbW1hbmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy5odG1sCisgICAgICAgICAgICAgICBl
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwKKyAgICAgICAgICAgICAg
IGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3JhcGgtaW4tYmxvY2txdW90
ZS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0luZGVudE91dGRlbnRDb21tYW5kLmNwcDogcHJl
cGFyZUJsb2NrcXVvdGVMZXZlbEZvckluc2VydGlvbiBpcyByZW1vdmVkCisgICAgICAgIChXZWJD
b3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6dHJ5SW5kZW50aW5nQXNMaXN0SXRlbSk6IHVzZXMg
YXBwZW5kUGFyYWdyYXBoSW50b05vZGUgbm93CisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRk
ZW50Q29tbWFuZDo6aW5kZW50SW50b0Jsb2NrcXVvdGUpOiB1c2VzIGFwcGVuZFBhcmFncmFwaElu
dG9Ob2RlIG5vdworICAgICAgICAoV2ViQ29yZTo6SW5kZW50T3V0ZGVudENvbW1hbmQ6OmFwcGVu
ZFBhcmFncmFwaEludG9Ob2RlKTogcmVtb3ZlcyBhIHBhcmFncmFwaCBhbmQgYXBwZW5kcyBpdCB0
byBhIG5ldyBub2RlCisgICAgICAgIChXZWJDb3JlOjpJbmRlbnRPdXRkZW50Q29tbWFuZDo6cmVt
b3ZlVW5uZWNlc3NhcnlMaW5lQnJlYWtBdCk6IHJlbW92ZXMgYSBicmVhayBlbGVtZW50IGF0IHRo
ZSBzcGVjaWZpZWQgcG9zaXRpb24KKyAgICAgICAgKFdlYkNvcmU6OkluZGVudE91dGRlbnRDb21t
YW5kOjppbmRlbnRSZWdpb24pOiBleGhpYml0cyB0aGUgZGVzY3JpYmVkIGJlaGF2aW9yCisgICAg
ICAgICogZWRpdGluZy9JbmRlbnRPdXRkZW50Q29tbWFuZC5oOiB1cGRhdGVkIHByb3RvdHlwZQor
CiAyMDA5LTA3LTE5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvSW5kZW50T3V0
ZGVudENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRk
ZW50Q29tbWFuZC5jcHAJKHJldmlzaW9uIDQ2MTAxKQorKysgV2ViQ29yZS9lZGl0aW5nL0luZGVu
dE91dGRlbnRDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkluc2VydExpbmVCcmVha0NvbW1hbmQuaCIKICNpbmNsdWRlICJJbnNlcnRMaXN0Q29t
bWFuZC5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2luY2x1ZGUgIlNwbGl0RWxlbWVudENvbW1hbmQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0
b3IuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgpAQCAtNjcsMzcgKzY4LDYgQEAgSW5kZW50
T3V0ZGVudENvbW1hbmQ6OkluZGVudE91dGRlbnRDb21tYQogewogfQogCi0vLyBUaGlzIGZ1bmN0
aW9uIGlzIGEgd29ya2Fyb3VuZCBmb3IgbW92ZVBhcmFncmFwaCdzIHRlbmRlbmN5IHRvIHN0cmlw
IGJsb2NrcXVvdGVzLiBJdCB1cGRhdGVzIGxhc3RCbG9ja3F1b3RlIHRvIHBvaW50IHRvIHRoZQot
Ly8gY29ycmVjdCBsZXZlbCBmb3IgdGhlIGN1cnJlbnQgcGFyYWdyYXBoLCBhbmQgcmV0dXJucyBh
IHBvaW50ZXIgdG8gYSBwbGFjZWhvbGRlciBiciB3aGVyZSB0aGUgaW5zZXJ0aW9uIHNob3VsZCBi
ZSBwZXJmb3JtZWQuCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IEluZGVudE91dGRlbnRDb21tYW5kOjpw
cmVwYXJlQmxvY2txdW90ZUxldmVsRm9ySW5zZXJ0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
Y3VycmVudFBhcmFncmFwaCwgUmVmUHRyPEVsZW1lbnQ+JiBsYXN0QmxvY2txdW90ZSkKLXsKLSAg
ICBpbnQgY3VycmVudEJsb2NrcXVvdGVMZXZlbCA9IDA7Ci0gICAgaW50IGxhc3RCbG9ja3F1b3Rl
TGV2ZWwgPSAwOwotICAgIE5vZGUqIG5vZGUgPSBjdXJyZW50UGFyYWdyYXBoLmRlZXBFcXVpdmFs
ZW50KCkubm9kZSgpOwotICAgIHdoaWxlICgobm9kZSA9IGVuY2xvc2luZ05vZGVXaXRoVGFnKFBv
c2l0aW9uKG5vZGUtPnBhcmVudE5vZGUoKSwgMCksIGJsb2NrcXVvdGVUYWcpKSkKLSAgICAgICAg
Y3VycmVudEJsb2NrcXVvdGVMZXZlbCsrOwotICAgIG5vZGUgPSBsYXN0QmxvY2txdW90ZS5nZXQo
KTsKLSAgICB3aGlsZSAoKG5vZGUgPSBlbmNsb3NpbmdOb2RlV2l0aFRhZyhQb3NpdGlvbihub2Rl
LT5wYXJlbnROb2RlKCksIDApLCBibG9ja3F1b3RlVGFnKSkpCi0gICAgICAgIGxhc3RCbG9ja3F1
b3RlTGV2ZWwrKzsKLSAgICB3aGlsZSAoY3VycmVudEJsb2NrcXVvdGVMZXZlbCA+IGxhc3RCbG9j
a3F1b3RlTGV2ZWwpIHsKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG5ld0Jsb2NrcXVvdGUgPSBj
cmVhdGVJbmRlbnRCbG9ja3F1b3RlRWxlbWVudChkb2N1bWVudCgpKTsKLSAgICAgICAgYXBwZW5k
Tm9kZShuZXdCbG9ja3F1b3RlLCBsYXN0QmxvY2txdW90ZSk7Ci0gICAgICAgIGxhc3RCbG9ja3F1
b3RlID0gbmV3QmxvY2txdW90ZTsKLSAgICAgICAgbGFzdEJsb2NrcXVvdGVMZXZlbCsrOwotICAg
IH0KLSAgICB3aGlsZSAoY3VycmVudEJsb2NrcXVvdGVMZXZlbCA8IGxhc3RCbG9ja3F1b3RlTGV2
ZWwpIHsKLSAgICAgICAgbGFzdEJsb2NrcXVvdGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZW5j
bG9zaW5nTm9kZVdpdGhUYWcoUG9zaXRpb24obGFzdEJsb2NrcXVvdGUtPnBhcmVudE5vZGUoKSwg
MCksIGJsb2NrcXVvdGVUYWcpKTsKLSAgICAgICAgbGFzdEJsb2NrcXVvdGVMZXZlbC0tOwotICAg
IH0KLSAgICBSZWZQdHI8RWxlbWVudD4gcGxhY2Vob2xkZXIgPSBjcmVhdGVCcmVha0VsZW1lbnQo
ZG9jdW1lbnQoKSk7Ci0gICAgYXBwZW5kTm9kZShwbGFjZWhvbGRlciwgbGFzdEJsb2NrcXVvdGUp
OwotICAgIC8vIEFkZCBhbm90aGVyIGJyIGJlZm9yZSB0aGUgcGxhY2Vob2xkZXIgaWYgaXQgY29s
bGFwc2VkLgotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zKFBvc2l0aW9uKHBsYWNlaG9s
ZGVyLmdldCgpLCAwKSk7Ci0gICAgaWYgKCFpc1N0YXJ0T2ZQYXJhZ3JhcGgodmlzaWJsZVBvcykp
Ci0gICAgICAgIGluc2VydE5vZGVCZWZvcmUoY3JlYXRlQnJlYWtFbGVtZW50KGRvY3VtZW50KCkp
LCBwbGFjZWhvbGRlcik7Ci0gICAgcmV0dXJuIHBsYWNlaG9sZGVyLnJlbGVhc2UoKTsKLX0KLQog
Ym9vbCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6dHJ5SW5kZW50aW5nQXNMaXN0SXRlbShjb25zdCBW
aXNpYmxlUG9zaXRpb24mIGVuZE9mQ3VycmVudFBhcmFncmFwaCkKIHsKICAgICAvLyBJZiBvdXIg
c2VsZWN0aW9uIGlzIG5vdCBpbnNpZGUgYSBsaXN0LCBiYWlsIG91dC4KQEAgLTEwNiwyMCArNzYs
MTkgQEAgYm9vbCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6dHJ5SW5kZW50aW5nQQogICAgIGlmICgh
bGlzdE5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEhUTUxFbGVtZW50KiBzZWxl
Y3RlZExpc3RJdGVtID0gZW5jbG9zaW5nTGlzdENoaWxkKGxhc3ROb2RlSW5TZWxlY3RlZFBhcmFn
cmFwaCk7CisgICAgLy8gRmluZCB0aGUgbGlzdCBpdGVtIGVuY2xvc2luZyB0aGUgY3VycmVudCBw
YXJhZ3JhcGgKKyAgICBFbGVtZW50KiBzZWxlY3RlZExpc3RJdGVtID0gc3RhdGljX2Nhc3Q8RWxl
bWVudCo+KGVuY2xvc2luZ0Jsb2NrKGVuZE9mQ3VycmVudFBhcmFncmFwaC5kZWVwRXF1aXZhbGVu
dCgpLm5vZGUoKSkpOworICAgIC8vIEZJWE1FOiB3ZSBuZWVkIHRvIGRlYWwgd2l0aCB0aGUgY2Fz
ZSB3aGVyZSB0aGVyZSBpcyBubyBsaSAobWFsZm9ybWVkIEhUTUwpCisgICAgaWYgKCFzZWxlY3Rl
ZExpc3RJdGVtLT5oYXNUYWdOYW1lKGxpVGFnKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgLy8gRklYTUU6IHByZXZpb3VzRWxlbWVudFNpYmxpbmcgZG9lcyBub3QgaWdub3JlIG5vbi1y
ZW5kZXJlZCBjb250ZW50IGxpa2UgPHNwYW4+PC9zcGFuPi4gIFNob3VsZCB3ZT8KICAgICBFbGVt
ZW50KiBwcmV2aW91c0xpc3QgPSBzZWxlY3RlZExpc3RJdGVtLT5wcmV2aW91c0VsZW1lbnRTaWJs
aW5nKCk7CiAgICAgRWxlbWVudCogbmV4dExpc3QgPSBzZWxlY3RlZExpc3RJdGVtLT5uZXh0RWxl
bWVudFNpYmxpbmcoKTsKIAogICAgIFJlZlB0cjxFbGVtZW50PiBuZXdMaXN0ID0gZG9jdW1lbnQo
KS0+Y3JlYXRlRWxlbWVudChsaXN0Tm9kZS0+dGFnUU5hbWUoKSwgZmFsc2UpOwotICAgIFJlZlB0
cjxFbGVtZW50PiBuZXdMaXN0SXRlbSA9IHNlbGVjdGVkTGlzdEl0ZW0tPmNsb25lRWxlbWVudFdp
dGhvdXRDaGlsZHJlbigpOwotICAgIFJlZlB0cjxFbGVtZW50PiBwbGFjZWhvbGRlciA9IGNyZWF0
ZUJyZWFrRWxlbWVudChkb2N1bWVudCgpKTsKICAgICBpbnNlcnROb2RlQmVmb3JlKG5ld0xpc3Qs
IHNlbGVjdGVkTGlzdEl0ZW0pOwotICAgIGFwcGVuZE5vZGUobmV3TGlzdEl0ZW0sIG5ld0xpc3Qp
OwotICAgIGFwcGVuZE5vZGUocGxhY2Vob2xkZXIsIG5ld0xpc3RJdGVtKTsKLQotICAgIG1vdmVQ
YXJhZ3JhcGgoc3RhcnRPZlBhcmFncmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgpLCBlbmRPZkN1
cnJlbnRQYXJhZ3JhcGgsIFZpc2libGVQb3NpdGlvbihQb3NpdGlvbihwbGFjZWhvbGRlciwgMCkp
LCB0cnVlKTsKKyAgICBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZSh2aXNpYmxlUG9zaXRpb25CZWZv
cmVOb2RlKHNlbGVjdGVkTGlzdEl0ZW0pLCB2aXNpYmxlUG9zaXRpb25BZnRlck5vZGUoc2VsZWN0
ZWRMaXN0SXRlbSksIG5ld0xpc3QuZ2V0KCkpOwogCiAgICAgaWYgKGNhbk1lcmdlTGlzdHMocHJl
dmlvdXNMaXN0LCBuZXdMaXN0LmdldCgpKSkKICAgICAgICAgbWVyZ2VJZGVudGljYWxFbGVtZW50
cyhwcmV2aW91c0xpc3QsIG5ld0xpc3QpOwpAQCAtMTI5LDI5ICs5OCwyNyBAQCBib29sIEluZGVu
dE91dGRlbnRDb21tYW5kOjp0cnlJbmRlbnRpbmdBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAg
Ci12b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjppbmRlbnRJbnRvQmxvY2txdW90ZShjb25zdCBW
aXNpYmxlUG9zaXRpb24mIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBlbmRPZk5leHRQYXJhZ3JhcGgsIFJlZlB0cjxFbGVtZW50PiYgdGFyZ2V0QmxvY2txdW90
ZSkKK3ZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OmluZGVudEludG9CbG9ja3F1b3RlKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgsIGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYgZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBSZWZQdHI8RWxlbWVudD4mIHRhcmdldEJs
b2NrcXVvdGUsIE5vZGUqIG5vZGVUb1NwbGl0VG8pCiB7CiAgICAgTm9kZSogZW5jbG9zaW5nQ2Vs
bCA9IDA7CiAKICAgICBpZiAoIXRhcmdldEJsb2NrcXVvdGUpIHsKLSAgICAgICAgLy8gQ3JlYXRl
IGEgbmV3IGJsb2NrcXVvdGUgYW5kIGluc2VydCBpdCBhcyBhIGNoaWxkIG9mIHRoZSByb290IGVk
aXRhYmxlIGVsZW1lbnQuIFdlIGFjY29tcGxpc2gKKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGJs
b2NrcXVvdGUgYW5kIGluc2VydCBpdCBhcyBhIGNoaWxkIG9mIHRoZSBlbmNsb3NpbmcgYmxvY2sg
ZWxlbWVudC4gV2UgYWNjb21wbGlzaAogICAgICAgICAvLyB0aGlzIGJ5IHNwbGl0dGluZyBhbGwg
cGFyZW50cyBvZiB0aGUgY3VycmVudCBwYXJhZ3JhcGggdXAgdG8gdGhhdCBwb2ludC4KICAgICAg
ICAgdGFyZ2V0QmxvY2txdW90ZSA9IGNyZWF0ZUluZGVudEJsb2NrcXVvdGVFbGVtZW50KGRvY3Vt
ZW50KCkpOwotICAgICAgICBQb3NpdGlvbiBzdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZD
dXJyZW50UGFyYWdyYXBoKS5kZWVwRXF1aXZhbGVudCgpOwotICAgICAgICBlbmNsb3NpbmdDZWxs
ID0gZW5jbG9zaW5nTm9kZU9mVHlwZShzdGFydCwgJmlzVGFibGVDZWxsKTsKLSAgICAgICAgTm9k
ZSogbm9kZVRvU3BsaXRUbyA9IGVuY2xvc2luZ0NlbGwgPyBlbmNsb3NpbmdDZWxsIDogZWRpdGFi
bGVSb290Rm9yUG9zaXRpb24oc3RhcnQpOwotICAgICAgICBSZWZQdHI8Tm9kZT4gc3RhcnRPZk5l
d0Jsb2NrID0gc3BsaXRUcmVlVG9Ob2RlKHN0YXJ0Lm5vZGUoKSwgbm9kZVRvU3BsaXRUbyk7Cisg
ICAgICAgIGlmIChpc1RhYmxlQ2VsbChub2RlVG9TcGxpdFRvKSkKKyAgICAgICAgICAgIGVuY2xv
c2luZ0NlbGwgPSBub2RlVG9TcGxpdFRvOworICAgICAgICBSZWZQdHI8Tm9kZT4gc3RhcnRPZk5l
d0Jsb2NrID0gc3BsaXRUcmVlVG9Ob2RlKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLmRlZXBFcXVp
dmFsZW50KCkubm9kZSgpLCBub2RlVG9TcGxpdFRvKTsKICAgICAgICAgaW5zZXJ0Tm9kZUJlZm9y
ZSh0YXJnZXRCbG9ja3F1b3RlLCBzdGFydE9mTmV3QmxvY2spOwogICAgIH0KIAotICAgIFJlZlB0
cjxFbGVtZW50PiBpbnNlcnRpb25Qb2ludCA9IHByZXBhcmVCbG9ja3F1b3RlTGV2ZWxGb3JJbnNl
cnRpb24oZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCB0YXJnZXRCbG9ja3F1b3RlKTsKKyAgICBWaXNp
YmxlUG9zaXRpb24gZW5kT2ZOZXh0UGFyYWdyYXBoID0gZW5kT2ZQYXJhZ3JhcGgoZW5kT2ZDdXJy
ZW50UGFyYWdyYXBoLm5leHQoKSk7CisgICAgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUoc3RhcnRP
ZkN1cnJlbnRQYXJhZ3JhcGgsIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgdGFyZ2V0QmxvY2txdW90
ZS5nZXQoKSk7CiAKICAgICAvLyBEb24ndCBwdXQgdGhlIG5leHQgcGFyYWdyYXBoIGluIHRoZSBi
bG9ja3F1b3RlIHdlIGp1c3QgY3JlYXRlZCBmb3IgdGhpcyBwYXJhZ3JhcGggdW5sZXNzIAogICAg
IC8vIHRoZSBuZXh0IHBhcmFncmFwaCBpcyBpbiB0aGUgc2FtZSBjZWxsLgogICAgIGlmIChlbmNs
b3NpbmdDZWxsICYmIGVuY2xvc2luZ0NlbGwgIT0gZW5jbG9zaW5nTm9kZU9mVHlwZShlbmRPZk5l
eHRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKSwgJmlzVGFibGVDZWxsKSkKICAgICAgICAgdGFy
Z2V0QmxvY2txdW90ZSA9IDA7Ci0KLSAgICBtb3ZlUGFyYWdyYXBoKHN0YXJ0T2ZQYXJhZ3JhcGgo
ZW5kT2ZDdXJyZW50UGFyYWdyYXBoKSwgZW5kT2ZDdXJyZW50UGFyYWdyYXBoLCBWaXNpYmxlUG9z
aXRpb24oUG9zaXRpb24oaW5zZXJ0aW9uUG9pbnQsIDApKSwgdHJ1ZSk7CiB9CiAKIGJvb2wgSW5k
ZW50T3V0ZGVudENvbW1hbmQ6OmlzQXRVbnNwbGl0dGFibGVFbGVtZW50KGNvbnN0IFBvc2l0aW9u
JiBwb3MpIGNvbnN0CkBAIC0xNjAsMTMgKzEyNyw2NSBAQCBib29sIEluZGVudE91dGRlbnRDb21t
YW5kOjppc0F0VW5zcGxpdHRhCiAgICAgcmV0dXJuIG5vZGUgPT0gZWRpdGFibGVSb290Rm9yUG9z
aXRpb24ocG9zKSB8fCBub2RlID09IGVuY2xvc2luZ05vZGVPZlR5cGUocG9zLCAmaXNUYWJsZUNl
bGwpOwogfQogCisvLyBFbmNsb3NlIGFsbCBub2RlcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQgYnkg
bmV3UGFyZW50LCB3aGljaCBpcyBhIHNpYmxpbmcgbm9kZSBvZiBub2RlcyBiZXR3ZWVuIHN0YXJ0
IGFuZCBlbmQKKy8vIEZJWE1FOiBtb3ZlUGFyYWdyYXBoIGlzIG92ZXJseSBjb21wbGljYXRlZC4g
IFdlIG5lZWQgdG8gY2xlYW4gdXAgbW92ZVBhcmFncmFwaCBzbyB0aGF0IGl0IHVzZXMgYXBwZW5k
UGFyYWdyYXBoSW50b05vZGUKKy8vIG9yIHByZXBhcmUgbW9yZSBzcGVjaWFsaXplZCBmdW5jdGlv
bnMgYW5kIGRlbGV0ZSBtb3ZlUGFyYWdyYXBoCit2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjph
cHBlbmRQYXJhZ3JhcGhJbnRvTm9kZShjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0LCBjb25z
dCBWaXNpYmxlUG9zaXRpb24mIGVuZCwgTm9kZSogbmV3UGFyZW50KQoreworICAgIEFTU0VSVChu
ZXdQYXJlbnQpOworICAgIEFTU0VSVChuZXdQYXJlbnQtPmlzQ29udGVudEVkaXRhYmxlKCkpOwor
ICAgIEFTU0VSVChpc1N0YXJ0T2ZQYXJhZ3JhcGgoc3RhcnQpICYmIGlzRW5kT2ZQYXJhZ3JhcGgo
ZW5kKSk7CisKKyAgICBQb3NpdGlvbiBlbmRPZlBhcmFncmFwaCA9IGVuZC5kZWVwRXF1aXZhbGVu
dCgpLmRvd25zdHJlYW0oKTsKKyAgICBOb2RlKiBpbnNlcnRpb25Qb2ludCA9IG5ld1BhcmVudC0+
bGFzdENoaWxkKCk7Ly8gUmVtZW1iZXIgdGhlIHBsYWNlIHRvIHB1dCBiciBsYXRlcgorICAgIC8v
IExvb2sgZm9yIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3QgcGFyYWdyYXBoIGluIG5ld1BhcmVu
dAorICAgIE5vZGUqIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChQb3Np
dGlvbihuZXdQYXJlbnQsIG5ld1BhcmVudC0+Y2hpbGROb2RlQ291bnQoKSkpLmRlZXBFcXVpdmFs
ZW50KCkubm9kZSgpOworICAgIGlmIChzdGFydE9mTGFzdFBhcmFncmFwaCAmJiAhc3RhcnRPZkxh
c3RQYXJhZ3JhcGgtPmlzRGVzY2VuZGFudE9mKG5ld1BhcmVudCkpCisgICAgICAgIHN0YXJ0T2ZM
YXN0UGFyYWdyYXBoID0gMDsKKworICAgIC8vIEV4dGVuZCB0aGUgcmFuZ2Ugc28gdGhhdCB3ZSBj
YW4gYXBwZW5kIHdyYXBwaW5nIG5vZGVzIGFzIHdlbGwgaWYgdGhleSdyZSBjb250YWluZCB3aXRo
aW4gdGhlIHBhcmFncmFwaAorICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIFJlZlB0cjxS
YW5nZT4gc2VsZWN0ZWRSYW5nZSA9IGNyZWF0ZVJhbmdlKGRvY3VtZW50KCksIHN0YXJ0LCBlbmQs
IGVjKTsKKyAgICBzZWxlY3RlZFJhbmdlLT5zdGFydFBvc2l0aW9uKCkuc2hvd1RyZWVGb3JUaGlz
KCk7CisgICAgUmVmUHRyPFJhbmdlPiBleHRlbmRlZFJhbmdlID0gZXh0ZW5kUmFuZ2VUb1dyYXBw
aW5nTm9kZXMoc2VsZWN0ZWRSYW5nZSwgc2VsZWN0ZWRSYW5nZS5nZXQoKSwgbmV3UGFyZW50LT5w
YXJlbnROb2RlKCkpOworICAgIG5ld1BhcmVudC0+YXBwZW5kQ2hpbGQoZXh0ZW5kZWRSYW5nZS0+
ZXh0cmFjdENvbnRlbnRzKGVjKSwgZWMpOworCisgICAgLy8gSWYgdGhlIHN0YXJ0IG9mIHBhcmFn
cmFwaCBkaWRuJ3QgY2hhbmdlIGJ5IGFwcGVuZGluZyBub2Rlcywgd2Ugc2hvdWxkIGluc2VydCBi
ciB0byBzZXBlcmF0ZSB0aGUgcGFyYWdyYXBocy4KKyAgICBOb2RlKiBzdGFydE9mTmV3UGFyYWdy
YXBoID0gc3RhcnRPZlBhcmFncmFwaChQb3NpdGlvbihuZXdQYXJlbnQsIG5ld1BhcmVudC0+Y2hp
bGROb2RlQ291bnQoKSkpLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgIGlmIChzdGFydE9m
TmV3UGFyYWdyYXBoID09IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoKSB7CisgICAgICAgIGlmIChpbnNl
cnRpb25Qb2ludCkKKyAgICAgICAgICAgIG5ld1BhcmVudC0+aW5zZXJ0QmVmb3JlKGNyZWF0ZUJy
ZWFrRWxlbWVudChkb2N1bWVudCgpKSwgaW5zZXJ0aW9uUG9pbnQtPm5leHRTaWJsaW5nKCksIGVj
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV3UGFyZW50LT5hcHBlbmRDaGlsZChjcmVh
dGVCcmVha0VsZW1lbnQoZG9jdW1lbnQoKSksIGVjKTsKKyAgICB9CisKKyAgICAvLyBSZW1vdmUg
dW5uZWNlc3NhcnkgYnIgZnJvbSB0aGUgcGxhY2Ugd2hlcmUgd2UgbW92ZWQgdGhlIHBhcmFncmFw
aCBmcm9tCisgICAgcmVtb3ZlVW5uZWNlc3NhcnlMaW5lQnJlYWtBdChlbmRPZlBhcmFncmFwaCk7
Cit9CisKK3ZvaWQgSW5kZW50T3V0ZGVudENvbW1hbmQ6OnJlbW92ZVVubmVjZXNzYXJ5TGluZUJy
ZWFrQXQoY29uc3QgUG9zaXRpb24mIGVuZE9mUGFyYWdyYXBoKQoreworICAgIC8vIElmIHRoZXJl
IGlzIHNvbWV0aGluZyBpbiB0aGlzIHBhcmFncmFwaCwgdGhlbiBkb24ndCByZW1vdmUgYnIuCisg
ICAgaWYgKCFpc1N0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZQYXJhZ3JhcGgpIHx8ICFpc0VuZE9mUGFy
YWdyYXBoKGVuZE9mUGFyYWdyYXBoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ugb25s
eSBjYXJlIGFib3V0IGJyIGF0IHRoZSBlbmQgb2YgcGFyYWdyYXBoCisgICAgTm9kZSogYnIgPSBl
bmRPZlBhcmFncmFwaC5ub2RlKCk7CisgICAgTm9kZSogcGFyZW50Tm9kZSA9IGJyLT5wYXJlbnRO
b2RlKCk7CisKKyAgICAvLyBJZiB0aGUgbm9kZSBpc24ndCBiciBvciB0aGUgcGFyZW50IG5vZGUg
aXMgZW1wdHksIHRoZW4gZG9uJ3QgcmVtb3ZlLgorICAgIGlmICghYnItPmhhc1RhZ05hbWUoYnJU
YWcpIHx8IGlzVmlzaWJseUFkamFjZW50KHBvc2l0aW9uQmVmb3JlTm9kZShwYXJlbnROb2RlKSwg
cG9zaXRpb25BZnRlck5vZGUocGFyZW50Tm9kZSkpKQorICAgICAgICByZXR1cm47CisKKyAgICBy
ZW1vdmVOb2RlQW5kUHJ1bmVBbmNlc3RvcnMoYnIpOworfQorCiB2b2lkIEluZGVudE91dGRlbnRD
b21tYW5kOjppbmRlbnRSZWdpb24oKQogewogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9u
ID0gc2VsZWN0aW9uRm9yUGFyYWdyYXBoSXRlcmF0aW9uKGVuZGluZ1NlbGVjdGlvbigpKTsKICAg
ICBWaXNpYmxlUG9zaXRpb24gc3RhcnRPZlNlbGVjdGlvbiA9IHNlbGVjdGlvbi52aXNpYmxlU3Rh
cnQoKTsKICAgICBWaXNpYmxlUG9zaXRpb24gZW5kT2ZTZWxlY3Rpb24gPSBzZWxlY3Rpb24udmlz
aWJsZUVuZCgpOwotICAgIGludCBzdGFydEluZGV4ID0gaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24o
c3RhcnRPZlNlbGVjdGlvbik7Ci0gICAgaW50IGVuZEluZGV4ID0gaW5kZXhGb3JWaXNpYmxlUG9z
aXRpb24oZW5kT2ZTZWxlY3Rpb24pOworICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9
IHNlbGVjdGlvbi5maXJzdFJhbmdlKCk7CiAKICAgICBBU1NFUlQoIXN0YXJ0T2ZTZWxlY3Rpb24u
aXNOdWxsKCkpOwogICAgIEFTU0VSVCghZW5kT2ZTZWxlY3Rpb24uaXNOdWxsKCkpOwpAQCAtMTkx
LDEwICsyMTAsMjQgQEAgdm9pZCBJbmRlbnRPdXRkZW50Q29tbWFuZDo6aW5kZW50UmVnaW9uKAog
ICAgICAgICBWaXNpYmxlUG9zaXRpb24gZW5kT2ZOZXh0UGFyYWdyYXBoID0gZW5kT2ZQYXJhZ3Jh
cGgoZW5kT2ZDdXJyZW50UGFyYWdyYXBoLm5leHQoKSk7CiAgICAgICAgIGlmICh0cnlJbmRlbnRp
bmdBc0xpc3RJdGVtKGVuZE9mQ3VycmVudFBhcmFncmFwaCkpCiAgICAgICAgICAgICBibG9ja3F1
b3RlRm9yTmV4dEluZGVudCA9IDA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGluZGVudElu
dG9CbG9ja3F1b3RlKGVuZE9mQ3VycmVudFBhcmFncmFwaCwgZW5kT2ZOZXh0UGFyYWdyYXBoLCBi
bG9ja3F1b3RlRm9yTmV4dEluZGVudCk7Ci0gICAgICAgICAgICAvLyBibG9ja3F1b3RlRm9yTmV4
dEluZGVudCBtYXliZSB1cGRhdGVkCi0gICAgICAgICAgICAvLyB0aGlzIGlzIGR1ZSB0byB0aGUg
d2F5IHByZXBhcmVCbG9ja3F1b3RlTGV2ZWxGb3JJbnNlcnRpb24gd2FzIGRlc2lnbmVkLgorICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBzdGFydE9mQ3VycmVudFBh
cmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZDdXJyZW50UGFyYWdyYXBoKTsKKyAgICAg
ICAgICAgIE5vZGUqIGJsb2NrTm9kZSA9IGVuY2xvc2luZ0Jsb2NrKGVuZE9mQ3VycmVudFBhcmFn
cmFwaC5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKSk7CisgICAgICAgICAgICAvLyBleHRlbmQgdGhl
IHJlZ2lvbiBzbyB0aGF0IGl0IGNvbnRhaW5zIGFsbCB0aGUgYW5jZXN0b3IgYmxvY2tzIHdpdGhp
biB0aGUgc2VsZWN0aW9uCisgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOworICAgICAgICAg
ICAgRWxlbWVudCogdW5zcGxpdHRhYmxlTm9kZSA9IHVuc3BsaXR0YWJsZUVsZW1lbnRGb3JQb3Np
dGlvbihlbmRPZkN1cnJlbnRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKSk7CisgICAgICAgICAg
ICBSZWZQdHI8UmFuZ2U+IG9yaWdpbmFsUmFuZ2UgPSBjcmVhdGVSYW5nZShkb2N1bWVudCgpLCBl
bmRPZkN1cnJlbnRQYXJhZ3JhcGgsIGVuZE9mQ3VycmVudFBhcmFncmFwaCwgZWMpOworICAgICAg
ICAgICAgUmVmUHRyPFJhbmdlPiBleHRlbmRlZFJhbmdlID0gZXh0ZW5kUmFuZ2VUb1dyYXBwaW5n
Tm9kZXMob3JpZ2luYWxSYW5nZSwgc2VsZWN0ZWRSYW5nZS5nZXQoKSwgdW5zcGxpdHRhYmxlTm9k
ZSk7CisgICAgICAgICAgICBpZiAob3JpZ2luYWxSYW5nZSAhPSBleHRlbmRlZFJhbmdlKSB7Cisg
ICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgICAgICAgICAgZW5k
T2ZDdXJyZW50UGFyYWdyYXBoID0gZW5kT2ZQYXJhZ3JhcGgoZXh0ZW5kZWRSYW5nZS0+ZW5kUG9z
aXRpb24oKS5wcmV2aW91cygpKTsKKyAgICAgICAgICAgICAgICBibG9ja05vZGUgPSBlbmNsb3Np
bmdCbG9jayhleHRlbmRlZFJhbmdlLT5jb21tb25BbmNlc3RvckNvbnRhaW5lcihlYykpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBlbmRPZk5leHRQYXJhZ3JhcGggPSBlbmRPZlBhcmFn
cmFwaChlbmRPZkN1cnJlbnRQYXJhZ3JhcGgubmV4dCgpKTsKKyAgICAgICAgICAgIGluZGVudElu
dG9CbG9ja3F1b3RlKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBlbmRPZkN1cnJlbnRQYXJhZ3Jh
cGgsIGJsb2NrcXVvdGVGb3JOZXh0SW5kZW50LCBibG9ja05vZGUpOworICAgICAgICAgICAgLy8g
YmxvY2txdW90ZUZvck5leHRJbmRlbnQgd2lsbCBiZSB1cGRhdGVkIGluIHRoZSBmdW5jdGlvbgor
ICAgICAgICB9CiAgICAgICAgIC8vIFNhbml0eSBjaGVjazogTWFrZSBzdXJlIG91ciBtb3ZlUGFy
YWdyYXBoIGNhbGxzIGRpZG4ndCByZW1vdmUgZW5kT2ZOZXh0UGFyYWdyYXBoLmRlZXBFcXVpdmFs
ZW50KCkubm9kZSgpCiAgICAgICAgIC8vIElmIHNvbWVob3cgd2UgZGlkLCByZXR1cm4gdG8gcHJl
dmVudCBjcmFzaGVzLgogICAgICAgICBpZiAoZW5kT2ZOZXh0UGFyYWdyYXBoLmlzTm90TnVsbCgp
ICYmICFlbmRPZk5leHRQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCktPmluRG9jdW1l
bnQoKSkgewpAQCAtMjAzLDExICsyMzYsNyBAQCB2b2lkIEluZGVudE91dGRlbnRDb21tYW5kOjpp
bmRlbnRSZWdpb24oCiAgICAgICAgIH0KICAgICAgICAgZW5kT2ZDdXJyZW50UGFyYWdyYXBoID0g
ZW5kT2ZOZXh0UGFyYWdyYXBoOwogICAgIH0KLSAgICAKLSAgICBSZWZQdHI8UmFuZ2U+IHN0YXJ0
UmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGRvY3VtZW50
KCktPmRvY3VtZW50RWxlbWVudCgpLCBzdGFydEluZGV4LCAwLCB0cnVlKTsKLSAgICBSZWZQdHI8
UmFuZ2U+IGVuZFJhbmdlID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0
aChkb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSwgZW5kSW5kZXgsIDAsIHRydWUpOwotICAg
IGlmIChzdGFydFJhbmdlICYmIGVuZFJhbmdlKQotICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbihzdGFydFJhbmdlLT5zdGFydFBvc2l0aW9uKCksIGVuZFJhbmdlLT5z
dGFydFBvc2l0aW9uKCksIERPV05TVFJFQU0pKTsKKwogfQogCiB2b2lkIEluZGVudE91dGRlbnRD
b21tYW5kOjpvdXRkZW50UGFyYWdyYXBoKCkKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9JbmRlbnRP
dXRkZW50Q29tbWFuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9JbmRlbnRPdXRk
ZW50Q29tbWFuZC5oCShyZXZpc2lvbiA0NjEwMSkKKysrIFdlYkNvcmUvZWRpdGluZy9JbmRlbnRP
dXRkZW50Q29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMyArNDgsMTQgQEAgcHJpdmF0
ZToKIAogICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgYmVsb25nIGluIGh0bWxlZGl0aW5nLmNwcD8K
ICAgICBib29sIGlzQXRVbnNwbGl0dGFibGVFbGVtZW50KGNvbnN0IFBvc2l0aW9uJikgY29uc3Q7
CisgICAgdm9pZCBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9kZShjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZCwgTm9kZSogbmV3UGFyZW50KTsKKyAg
ICB2b2lkIHJlbW92ZVVubmVjZXNzYXJ5TGluZUJyZWFrQXQoY29uc3QgUG9zaXRpb24mIGVuZE9m
UGFyYWdyYXBoKTsKIAogICAgIHZvaWQgaW5kZW50UmVnaW9uKCk7CiAgICAgdm9pZCBvdXRkZW50
UmVnaW9uKCk7CiAgICAgdm9pZCBvdXRkZW50UGFyYWdyYXBoKCk7Ci0gICAgUGFzc1JlZlB0cjxF
bGVtZW50PiBwcmVwYXJlQmxvY2txdW90ZUxldmVsRm9ySW5zZXJ0aW9uKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYsIFJlZlB0cjxFbGVtZW50PiYpOwogICAgIGJvb2wgdHJ5SW5kZW50aW5nQXNMaXN0
SXRlbShjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKLSAgICB2b2lkIGluZGVudEludG9CbG9ja3F1
b3RlKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFJlZlB0
cjxFbGVtZW50PiYpOworICAgIHZvaWQgaW5kZW50SW50b0Jsb2NrcXVvdGUoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUmVmUHRyPEVsZW1lbnQ+JiB0YXJn
ZXRCbG9ja3F1b3RlLCBOb2RlKiBub2RlVG9TcGxpdFRvKTsKIAogICAgIEVJbmRlbnRUeXBlIG1f
dHlwZU9mQWN0aW9uOwogICAgIGludCBtX21hcmdpbkluUGl4ZWxzOwpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCShyZXZpc2lvbiA0NjEwMSkKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5Miw3ICs1OTIsNyBAQCBQb3NpdGlvbiBwb3Np
dGlvbkFmdGVyTm9kZShjb25zdCBOb2RlKiBuCiB9CiAKIC8vIFJldHVybnMgdGhlIHZpc2libGUg
cG9zaXRpb24gYXQgdGhlIGJlZ2lubmluZyBvZiBhIG5vZGUKLXN0YXRpYyBWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uQmVmb3JlTm9kZShOb2RlKiBub2RlKQorVmlzaWJsZVBvc2l0aW9u
IHZpc2libGVQb3NpdGlvbkJlZm9yZU5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9k
ZSk7CiAgICAgaWYgKG5vZGUtPmNoaWxkTm9kZUNvdW50KCkpCkBAIC02MDIsNyArNjAyLDcgQEAg
c3RhdGljIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25CZQogfQogCiAvLyBSZXR1cm5z
IHRoZSB2aXNpYmxlIHBvc2l0aW9uIGF0IHRoZSBlbmRpbmcgb2YgYSBub2RlCi1zdGF0aWMgVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkFmdGVyTm9kZShOb2RlKiBub2RlKQorVmlzaWJs
ZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkFmdGVyTm9kZShOb2RlKiBub2RlKQogewogICAgIEFT
U0VSVChub2RlKTsKICAgICBpZiAobm9kZS0+Y2hpbGROb2RlQ291bnQoKSkKSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9odG1sZWRpdGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9o
dG1sZWRpdGluZy5oCShyZXZpc2lvbiA0NjEwMSkKKysrIFdlYkNvcmUvZWRpdGluZy9odG1sZWRp
dGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw4ICs3Myw4IEBAIGNvbnN0IFN0cmluZyYgbm9u
QnJlYWtpbmdTcGFjZVN0cmluZygpOwogCiBQb3NpdGlvbiBwb3NpdGlvbkJlZm9yZU5vZGUoY29u
c3QgTm9kZSopOwogUG9zaXRpb24gcG9zaXRpb25BZnRlck5vZGUoY29uc3QgTm9kZSopOwotVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkJlZm9yZU5vZGUoY29uc3QgTm9kZSopOwotVmlz
aWJsZVBvc2l0aW9uIHZpc2libGVQb3NpdGlvbkFmdGVyTm9kZShjb25zdCBOb2RlKik7CitWaXNp
YmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uQmVmb3JlTm9kZShOb2RlKik7CitWaXNpYmxlUG9z
aXRpb24gdmlzaWJsZVBvc2l0aW9uQWZ0ZXJOb2RlKE5vZGUqKTsKIFBhc3NSZWZQdHI8UmFuZ2U+
IGNyZWF0ZVJhbmdlKFBhc3NSZWZQdHI8RG9jdW1lbnQ+LCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIGVuZCwgRXhjZXB0aW9uQ29kZSYpOwogUGFz
c1JlZlB0cjxSYW5nZT4gZXh0ZW5kUmFuZ2VUb1dyYXBwaW5nTm9kZXMoUGFzc1JlZlB0cjxSYW5n
ZT4gcmFuZ2VUb0V4dGVuZCwgY29uc3QgUmFuZ2UqIG1heGltdW1SYW5nZSwgY29uc3QgTm9kZSog
cm9vdE5vZGUpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjEwMSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDA5LTA3LTE5ICBSeW9z
dWtlIE5pd2EgIDxyeW9zdWtlLm5pd2FAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nIG9mIGluZGVudFJlZ2lvbiB0
byBmaXggYnVncyAyNjgxNiBhbmQgMjUzMTcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI2ODE2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNTMxNworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM5OTUgKHBhcnRpYWxseSkKKworICAgICAgICBUaGlzIHBhdGNoIGlt
cGxlbWVudHMgYXBwZW5kUGFyYWdyYXBoSW50b05vZGUsIGEgc2ltcGxlciBzcGVjaWFsaXplZCB2
ZXJzaW9uIG9mIG1vdmVQYXJhZ3JhcGgKKyAgICAgICAgYW5kIHJlcGxhY2VzIGFsbCBjYWxscyBp
bnNpZGUgaW5kZW50UmVnaW9uLiBUaGUgZm9sbG93aW5nIGlzIHRoZSBuZXcgYmVoYXZpb3Igb2Yg
aW5kZW50UmVnaW9uLgorCisgICAgICAgIDEuIFdlIHRyeSB0byBpbmRlbnQgYXMgbWFueSB3cmFw
cGluZyBub2RlcyBhcyBwb3NzaWJsZS4KKyAgICAgICAgICAgZS5nLiB3aGVuIGluZGVudGluZyAi
aGVsbG8iIGluIDxkaXY+aGVsbG88L2Rpdj4sIHdlIHRyeSB0byBpbmRlbnQgZGl2IGFzIHdlbGwu
CisgICAgICAgIDIuIFdlIGRvIG5vdCBkZWxldGUgYW55IHdyYXBwaW5nIGVsZW1lbnRzCisgICAg
ICAgICAgIFdpdGggbW92ZVBhcmFncmFwaCwgd2UgdXNlZCB0byByZW1vdmUgYWxsIHdyYXBwaW5n
IG5vZGVzLCBhbmQgcmVwbGFjZWQgd2l0aCBhIGJsb2NrcXVvdGUuCisgICAgICAgICAgIFRoaXMg
d2FzIGNhdXNpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTk1
IGZvciBpbmRlbnRhdGlvbi4KKyAgICAgICAgICAgV2l0aCBhcHBlbmRQYXJhZ3JhcGhJbnRvTm9k
ZSwgd2UgY2FuIHByZXNlcnZlIGFsbCB3cmFwcGluZyBub2Rlcy4KKyAgICAgICAgMy4gV2Ugb25s
eSBzcGxpdCB0aGUgdHJlZSB1bnRpbCB0aGUgY2xvc2VzdCBibG9jayBub2RlIGluc3RlYWQgb2Yg
dW50aWwgdGhlIHJvb3QgZWRpdGFibGUgbm9kZS4KKyAgICAgICAgICAgVGhpcyBiZWhhdmlvcmFs
IGNoYW5nZSBmaXhlcyB0aGUgYnVnIDI1MzE3LgorICAgICAgICA0LiBXaGVuIG11bHRpcGxlIHBh
cmFncmFwaHMgYXJlIGluZGVudGVkLCB3ZSBpbmRlbnQgdGhlIGhpZ2hlc3QgY29tbW9uIGFuY2Vz
dG9yIHdpdGhpbiB0aGUgc2VsZWN0aW9uLgorICAgICAgICAgICBlLmcuIHdoZW4gYSBsaXN0IGlz
IGEgY2hpbGQgbm9kZSBvZiBhIGRpdiwgYW5kIHRoZSBlbnRpcmUgZGl2IGlzIGludGVuZGVkLAor
ICAgICAgICAgICAgICAgIHdlIGVuY2xvc2UgdGhlIGRpdiBieSBhIHNpbmdsZSBibG9ja3F1b3Rl
LgorICAgICAgICAKKyAgICAgICAgTm90ZSB0aGF0IG5ldyBiZWhhdmlvciBpcyBtb3JlIGNvbnNp
c3RlbnQgd2l0aCB0aGF0IG9mIEludGVybmV0IEV4cGxvcmVyIGFuZCBGaXJlZm94LgorICAgICAg
ICBUbyBkZW1vbnN0cmF0ZSB0aGlzLCB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBhZGRlZCBhbmQg
cmViYXNlbGluZWQuCisKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kLzE5NjUzLTEtZXhw
ZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAobm8gbG9uZ2VyIHJlbW92ZXMgd3JhcHBpbmcgZGl2KQor
ICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1pbnNpZGUtbGlzdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LWRp
di1pbnNpZGUtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5k
L2luZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWRpdi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5l
c3RlZC1kaXYuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtbmVzdGVkLWxpc3RzLTItZXhwZWN0ZWQudHh0OiByZWJhc2VsaW5lZCAoc2VsZWN0aW9uIGNv
cnJlY3RlZCkKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlz
dHMtMy1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkIChzZWxlY3Rpb24gY29ycmVjdGVkKQorICAg
ICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy00LWV4cGVjdGVk
LnR4dDogcmViYXNlbGluZWQgKHNlbGVjdGlvbiBjb3JyZWN0ZWQpCisgICAgICAgICogZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTUtZXhwZWN0ZWQudHh0OiByZWJhc2Vs
aW5lZCAoc2VsZWN0aW9uIGNvcnJlY3RlZCkKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5k
L2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWluLWJsb2NrcXVvdGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBo
LWluLWJsb2NrcXVvdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0yLWV4cGVjdGVkLnR4dDogcmViYXNlbGluZWQKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80OTE2NTQxLWV4cGVjdGVkLnR4
dDogcmViYXNlbGluZWQgKG5vIGxvbmdlciByZW1vdmVzIHdyYXBwaW5nIHNwYW4pCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEzODQ0MS1leHBlY3RlZC50eHQ6
IHJlYmFzZWxpbmVkCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQv
NTQ4MTUyMy1leHBlY3RlZC50eHQ6IHJlYmFzZWxpbmVkCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlbGVjdGlvbi1leHBlY3RlZC50eHQ6IHJlYmFz
ZWxpbmVkCisKIDIwMDktMDctMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kLzE5NjUzLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvMTk2NTMtMS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDQ2MTAxKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC8xOTY1My0xLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAgVGhpcyB0ZXN0cyBjcmVh
dGluZyBhIGxpc3QgZnJvbSBhbiBlbXB0eQogPHVsPjxsaT48Yj5Cb2xkPC9iPjwvbGk+PC91bD4K
IAogVGhpcyB0ZXN0cyBpbmRlbnRpbmcgYW4gZW1wdHkgcGFyYWdyYXBoIHdpdGggYm9sZCBhbHJl
YWR5IGFwcGxpZWQgdG8gaXQuIFRoZSB3b3JkIGJlbG93IHNob3VsZCBiZSBib2xkLgotPGJsb2Nr
cXVvdGUgY2xhc3M9IndlYmtpdC1pbmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAw
IDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7Ij48Yj5Cb2xkPC9iPjwvYmxvY2tx
dW90ZT4KKzxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiIHN0eWxl
PSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4OyI+PGRpdj48
Yj5Cb2xkPC9iPjwvZGl2PjwvYmxvY2txdW90ZT4KIAogVGhpcyB0ZXN0cyBpbmRlbnRpbmcgYW4g
ZW1wdHkgcGFyYWdyYXBoIHdoZW4gdGhlIHR5cGluZyBzdHlsZSB3YXMgQm9sZC4gVGhlIHdvcmQg
YmVsb3cgc2hvdWxkIGJlIGJvbGQuCiA8YmxvY2txdW90ZSBjbGFzcz0id2Via2l0LWluZGVudC1i
bG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRp
bmc6IDBweDsiPjxiPkJvbGQ8L2I+PC9ibG9ja3F1b3RlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1kaXYtaW5z
aWRlLWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3IEBACitUaGlzIHRlc3RzIGluZGVudGluZyBhIGRpdiBpbnNpZGUg
YSBsaXN0IGl0ZW0uIEJ5IGluZGVudGluZyAid29ybGQiLCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5n
IGEgYmxvY2txdW90ZSBhcm91bmQgd29ybGQgaW5zaWRlIHRoZSBsaXN0IGl0ZW0uCisKK2EKK2hl
bGxvCit3b3JsZAorYgorYSA8dWw+IDxsaT5oZWxsbzxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQt
aW5kZW50LWJsb2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9u
ZTsgcGFkZGluZzogMHB4OyI+PGRpdiBpZD0idGVzdCI+IHdvcmxkIDwvZGl2PjwvYmxvY2txdW90
ZT48L2xpPjwvdWw+IGIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5k
ZW50LWRpdi1pbnNpZGUtbGlzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LWRpdi1pbnNpZGUtbGlzdC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtZGl2LWluc2lkZS1saXN0
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcgQEAKKzxwPlRoaXMgdGVzdHMgaW5kZW50
aW5nIGEgZGl2IGluc2lkZSBhIGxpc3QgaXRlbS4gIEJ5IGluZGVudGluZyAid29ybGQiLCB3ZSBz
aG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBhcm91bmQgd29ybGQgaW5zaWRlIHRoZSBs
aXN0IGl0ZW0uPC9wPgorPGRpdiBpZD0iZGl2IiBjb250ZW50ZWRpdGFibGU9InRydWUiPgorYQor
PHVsPgorPGxpPmhlbGxvPGRpdiBpZD0idGVzdCI+Cit3b3JsZAorPC9saT4KKzwvYmxvY2txdW90
ZT4KKzwvdWw+CitiCis8L2Rpdj4KKzxkaXYgaWQ9ImMiPjwvZGl2PgorPHNjcmlwdD4KKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKK3ZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsK
K3ZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwordmFyIHIgPSBkb2N1bWVudC5jcmVhdGVS
YW5nZSgpOworci5zZXRTdGFydChlLDApOworci5zZXRFbmQoZSwxKTsKK3MuYWRkUmFuZ2Uocik7
Citkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50IiwgZmFsc2UsIG51bGwpOwordGV4dCA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKS5pbm5l
ckhUTUwpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKS5hcHBlbmRDaGlsZCggdGV4dCAp
OworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVu
dC1uZXN0ZWQtYmxvY2txdW90ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1ibG9ja3F1b3Rlcy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lu
ZGVudC1uZXN0ZWQtYmxvY2txdW90ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDcgQEAKK1RoaXMgdGVzdHMgaW5kZW50aW5nIG5lc3RlZCBibG9ja3F1b3Rlcy4gQnkgaW5k
ZW50aW5nICJ3ZWJraXQiIiIiLCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBi
ZXR3ZWVuIGJyIHRhZyBhbmQgdGhlIGVuZCBvZiB0aGUgaW5uZXIgYmxvY2txdW90ZS4KKworaGVs
bG8KK3dvcmxkCit3ZWJraXQKK2lzIGdyZWF0Cis8YmxvY2txdW90ZSBpZD0ib3V0ZXIiPiBoZWxs
byA8YmxvY2txdW90ZSBpZD0iaW5uZXIiPiB3b3JsZDxicj48YmxvY2txdW90ZSBjbGFzcz0id2Vi
a2l0LWluZGVudC1ibG9ja3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6
IG5vbmU7IHBhZGRpbmc6IDBweDsiPiB3ZWJraXQgPC9ibG9ja3F1b3RlPjwvYmxvY2txdW90ZT4g
aXMgZ3JlYXQgPC9ibG9ja3F1b3RlPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWJsb2NrcXVvdGVzLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1u
ZXN0ZWQtYmxvY2txdW90ZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorPHA+
VGhpcyB0ZXN0cyBpbmRlbnRpbmcgbmVzdGVkIGJsb2NrcXVvdGVzLiAgQnkgaW5kZW50aW5nICJ3
ZWJraXQiIiIiLCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBiZXR3ZWVuIGJy
IHRhZyBhbmQgdGhlIGVuZCBvZiB0aGUgaW5uZXIgYmxvY2txdW90ZS48L3A+Cis8ZGl2IGlkPSJk
aXYiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+Cis8YmxvY2txdW90ZSBpZD0ib3V0ZXIiPgoraGVs
bG8KKzxibG9ja3F1b3RlIGlkPSJpbm5lciI+Cit3b3JsZDxicj4KK3dlYmtpdAorPC9ibG9ja3F1
b3RlPgoraXMgZ3JlYXQKKzwvYmxvY2txdW90ZT4KKzwvZGl2PgorPGRpdiBpZD0iYyI+PC9kaXY+
Cis8c2NyaXB0PgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaW5uZXIiKTsKK3ZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwordmFyIHIg
PSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworci5zZXRTdGFydChlLDIpOworci5zZXRFbmQoZSwz
KTsKK3MuYWRkUmFuZ2Uocik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50IiwgZmFsc2Us
IG51bGwpOwordGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkaXYnKS5pbm5lckhUTUwpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKS5h
cHBlbmRDaGlsZCggdGV4dCApOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtZGl2LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQg
QEAKK1RoaXMgdGVzdHMgaW5kZW50aW5nIG5lc3RlZCBkaXZzLiBCeSBpbmRlbnRpbmcgImhlbGxv
Iiwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZW5jbG9zZSBhbGwgdGhyZWUgYmxvY2tzIDEgdGhyb3Vn
aCAzIGJ5IGEgYmxvY2txdW90ZQorCitoZWxsbworPGJsb2NrcXVvdGUgY2xhc3M9IndlYmtpdC1p
bmRlbnQtYmxvY2txdW90ZSIgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25l
OyBwYWRkaW5nOiAwcHg7Ij48ZGl2IGlkPSJibG9jazEiPjxkaXYgaWQ9ImJsb2NrMiI+PGRpdiBp
ZD0iYmxvY2szIj5oZWxsbzwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT4KSW5kZXg6IExh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1kaXYuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQt
ZGl2Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2luZGVudC1uZXN0ZWQtZGl2Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKzxw
PlRoaXMgdGVzdHMgaW5kZW50aW5nIG5lc3RlZCBkaXZzLiAgQnkgaW5kZW50aW5nICJoZWxsbyIs
IHdlIHNob3VsZCBiZSBhYmxlIHRvIGVuY2xvc2UgYWxsIHRocmVlIGJsb2NrcyAxIHRocm91Z2gg
MyBieSBhIGJsb2NrcXVvdGU8L3A+Cis8ZGl2IGlkPSJkaXYiIGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSI+Cis8ZGl2IGlkPSJibG9jazEiPjxkaXYgaWQ9ImJsb2NrMiI+PGRpdiBpZD0iYmxvY2szIj5o
ZWxsbzwvZGl2PjwvZGl2PjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjIj48L2Rpdj4KKzxzY3Jp
cHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJibG9jazMiKTsKK3ZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOwordmFyIHIgPSBkb2N1
bWVudC5jcmVhdGVSYW5nZSgpOworci5zZXRTdGFydChlLDApOworci5zZXRFbmQoZSwxKTsKK3Mu
YWRkUmFuZ2Uocik7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50IiwgZmFsc2UsIG51bGwp
OwordGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdkaXYnKS5pbm5lckhUTUwpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2MnKS5hcHBlbmRD
aGlsZCggdGV4dCApOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA0NjEwMSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMiw3ICsyLDcgQEAgRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ETwog
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5F
ZGl0aW5nTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBMSSA+IE9MID4g
RElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IExJID4gT0wgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5
RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2Yg
I3RleHQgPiBMSSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1
IG9mICN0ZXh0ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
YWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFM
U0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBUaGlzIHRlc3RzIGluZGVudGlu
ZyAidGhyZWUiLiBZb3Ugc2hvdWxkIHNlZSBudW1iZXJzIDEgYW5kIDIgYmVmb3JlICJ0d28iIGFu
ZCAidGhyZWUiIHJlc3BlY3RpdmVseS4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtMy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDQ2MTAxKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVk
aXRpbmdOb3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
Tm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJh
bmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IExJID4gVUwgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9mICN0ZXh0ID4gU1BBTiA+IExJID4gVUwgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0
cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQg
PiBMSSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0
ZXh0ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBUaGlzIHRlc3RzIGluZGVudGluZyAidGhy
ZWUiLiBZb3Ugc2hvdWxkIHNlZSAxLCAyLCBhbmQgMyBiZWZvcmUgInR3byIsICJ0aHJlZSIsIGFu
ZCAiZm91ciIgcmVzcGVjdGl2ZWx5LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9pbmRlbnQtbmVzdGVkLWxpc3RzLTQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy00LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNDYxMDEpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTIsNyArMiw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE8KIEVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRp
dGluZ05vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gTEkgPiBVTCA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgI3RleHQgPiBTUEFOID4gTEkgPiBVTCA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+
IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3Rl
eHQgPiBMSSA+IE9MID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0
eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
OldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIFRoaXMgdGVzdHMgaW5kZW50aW5nICJ0aHJl
ZSIgYW5kICJmb3VyIi4gWW91IHNob3VsZCBzZWUgMSB0aHJvdWdoIDQgaW4gb3JkZXIgYmVmb3Jl
IG51bWJlcnMgInR3byIgdGhyb3VnaCAiZml2ZSIuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1uZXN0ZWQtbGlzdHMtNS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbmVzdGVkLWxpc3Rz
LTUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NjEwMSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LW5lc3RlZC1saXN0cy01LWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMiw3ICsyLDcgQEAgRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5n
SW5ETwogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlk
QmVnaW5FZGl0aW5nTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBMSSA+
IFVMID4gT0wgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4g
TEkgPiBVTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gTEkgPiBPTCA+IE9MID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IExJID4gT0wgPiBPTCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0
aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogVGhp
cyB0ZXN0cyBpbmRlbnRpbmcgInRocmVlIi4gWW91IHNob3VsZCBzZWUgMSwgMiwgYW5kIHRoZW4g
YSBidWxsZXQgYmVmb3JlIG51bWJlcnMgInR3byIsICJ0aHJlZSIsIGFuZCAiZm91ciIgcmVzcGVj
dGl2ZWx5LgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vj
b25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWlu
LWJsb2NrcXVvdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2Vjb25kLXBhcmFncmFwaC1pbi1ibG9ja3F1b3RlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIGluZGVu
dGluZyB0aGUgc2Vjb25kIHBhcmFncmFwaCBpbiBhIGJsb2NrcXVvdGUuIEJ5IGluZGVudGluZyAi
d29ybGQiLCB3ZSBzaG91bGQgYmUgaW5zZXJ0aW5nIGEgYmxvY2txdW90ZSBhcm91bmQgd29ybGQg
aW5zaWRlIHRoZSAidGVzdCIgYmxvY2txdW90ZS4KKworaGVsbG8KK3dvcmxkCis8YmxvY2txdW90
ZSBpZD0idGVzdCI+IGhlbGxvPGJyPjxibG9ja3F1b3RlIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJs
b2NrcXVvdGUiIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGlu
ZzogMHB4OyI+IHdvcmxkIDwvYmxvY2txdW90ZT48L2Jsb2NrcXVvdGU+CkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWluLWJsb2Nr
cXVvdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2luZGVudC1zZWNvbmQtcGFyYWdyYXBoLWluLWJsb2NrcXVvdGUuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXNlY29uZC1wYXJhZ3Jh
cGgtaW4tYmxvY2txdW90ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACis8cD5U
aGlzIHRlc3RzIGluZGVudGluZyB0aGUgc2Vjb25kIHBhcmFncmFwaCBpbiBhIGJsb2NrcXVvdGUu
ICBCeSBpbmRlbnRpbmcgIndvcmxkIiwgd2Ugc2hvdWxkIGJlIGluc2VydGluZyBhIGJsb2NrcXVv
dGUgYXJvdW5kIHdvcmxkIGluc2lkZSB0aGUgInRlc3QiIGJsb2NrcXVvdGUuPC9wPgorPGRpdiBp
ZD0iZGl2IiBjb250ZW50ZWRpdGFibGU9InRydWUiPgorPGJsb2NrcXVvdGUgaWQ9InRlc3QiPgor
aGVsbG88YnI+Cit3b3JsZAorPC9ibG9ja3F1b3RlPgorPC9kaXY+Cis8ZGl2IGlkPSJjIj48L2Rp
dj4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCit2YXIgZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0Iik7Cit2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKK3ZhciBy
ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3Iuc2V0U3RhcnQoZSwyKTsKK3Iuc2V0RW5kKGUs
Myk7CitzLmFkZFJhbmdlKHIpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluZGVudCIsIGZhbHNl
LCBudWxsKTsKK3RleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZGl2JykuaW5uZXJIVE1MKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyku
YXBwZW5kQ2hpbGQoIHRleHQgKTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0yLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80NjQx
ODgwLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NjEwMSkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTMsNyArMyw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdp
bkVkaXRpbmcKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0
ZXh0ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDM0IG9m
ICN0ZXh0ID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmlu
aXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitF
RElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RP
TVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IEJMT0NLUVVPVEUgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byAzNSBvZiAjdGV4dCA+IEJMT0NLUVVPVEUgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVh
bSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24K
IGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMApAQCAtMjQsNSArMjQsNSBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAyNDZ4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI0NjogIlRo
aXMgcGFyYWdyYXBoIHNob3VsZCBub3QgYmUgaW5kZW50ZWQuIgogICAgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDI0NiwxNCkgc2l6ZSAweDAKLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBv
ZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElW
fSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAotc2VsZWN0
aW9uIGVuZDogICBwb3NpdGlvbiAzNCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxP
Q0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtI
VE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDAg
eyN0ZXh0fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxk
IDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gZW5kOiAg
IHBvc2l0aW9uIDM1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtCTE9DS1FVT1RFfSBv
ZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRv
Y3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFu
ZC80OTE2NTQxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80OTE2NTQxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
NDYxMDEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC80
OTE2NTQxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTAsMTEgKzEwLDEzIEBAIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3
aWR0aCAzMjA6ICInZm9vJyBhbmQgJ2JhcicgYmVmb3JlIGFuZCBhZnRlciB0aGUgaW5kZW50IG9w
ZXJhdGlvbi4iCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MzYK
ICAgICAgICAgUmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg0MCwwKSBzaXplIDc0NHgzNgot
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxeDE4Ci0gICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMTogImZvbyIKKyAgICAgICAgICBSZW5kZXJJ
bmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjF4MTgKKyAgICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxeDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDIxOiAiZm9vIgogICAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDIxLDE0KSBz
aXplIDB4MAotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAyMHgx
OAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDIwOiAiYmFyIgorICAgICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgxOAorICAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4KSBzaXplIDIweDE4CisgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAyMDogImJhciIKICAgICAgICAgUmVuZGVyQmxvY2sgKGFu
b255bW91cykgYXQgKDAsMzYpIHNpemUgNzg0eDAKLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24g
MSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7
RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAotc2Vs
ZWN0aW9uIGVuZDogICBwb3NpdGlvbiAyIG9mIGNoaWxkIDIgeyN0ZXh0fSBvZiBjaGlsZCAwIHtC
TE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAg
e0hUTUx9IG9mIGRvY3VtZW50CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQg
MCB7I3RleHR9IG9mIGNoaWxkIDAge1NQQU59IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNo
aWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1l
bnQKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hp
bGQgMiB7U1BBTn0gb2YgY2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7RElWfSBvZiBj
aGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEzODQ0MS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvNTEzODQ0MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ2MTAxKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTEzODQ0MS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDEwICsxMCwxMiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNzc2OiAiRm9ybWF0Qmxv
Y2sgdG8gaW1wbGVtZW50IGEgXCJRdW90ZSBUZXh0XCIgZmVhdHVyZSwgYW5kIHN0eWxlIHJ1bGVz
IGZvciBibG9ja3F1b3RlcyBhcHBlYXJlZCBvbiB0aGUgYmxvY2txdW90ZXMgdGhhdCB3ZSB1c2Ui
CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDE0OTogInRvIGltcGxlbWVudCBp
bmRlbnRpbmcuIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNzApIHNpemUgNzg0eDYy
Ci0gICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsMCkgc2l6ZSA3NDR4MTgK
LSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMzB4MTgKLSAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIzMDogIlRoaXMgc2hvdWxkIGJlIGluZGVu
dGVkLCBub3QgcXVvdGVkLiIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6
ZSA3ODR4MTgKKyAgICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDApIHNp
emUgNzQ0eDE4CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAy
MzB4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjMwOiAiVGhpcyBz
aG91bGQgYmUgaW5kZW50ZWQsIG5vdCBxdW90ZWQuIgorICAgICAgICAgIFJlbmRlckJsb2NrIChh
bm9ueW1vdXMpIGF0ICgwLDE4KSBzaXplIDc4NHgwCiAgICAgICAgIFJlbmRlckJsb2NrIHtCTE9D
S1FVT1RFfSBhdCAoOCwyNikgc2l6ZSA3Njh4MzYgW2JvcmRlcjogKDFweCBkYXNoZWQgI0FBQUFB
QSldCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg5LDkpIHNpemUgMTc1eDE4CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOSw5KSB3aWR0aCAxNzU6ICJUaGlzIHRleHQgc2hvdWxk
IGJlIFF1b3RlZC4iCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hp
bGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMyB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBj
aGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDEge0RJVn0gb2YgY2hpbGQg
MyB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudApJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTQ4MTUy
My1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Vk
aXRpbmcvZXhlY0NvbW1hbmQvNTQ4MTUyMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDQ2MTAxKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZXhlY0NvbW1hbmQvNTQ4MTUyMy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDUgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBh
dCAoNDUsMjYpIHNpemUgMzR4MjIgW2JvcmRlcjogKDFweCBpbnNldCAjODA4MDgwKV0gW3I9MSBj
PTEgcnM9MSBjcz0xXQogICAgICAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDIsMikgc2l6ZSAzMHgxOAogICAgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIp
IHdpZHRoIDMwOiAiRm91ciIKLSAgICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0
ICgwLDUyKSBzaXplIDcwNHgwCi0gICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgw
LDUyKSBzaXplIDc4NHgwCiBzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7
VEFCTEV9IG9mIGNoaWxkIDAge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDEge0JMT0NLUVVPVEV9IG9m
IGNoaWxkIDIge0RJVn0gb2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9j
dW1lbnQKLXNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMSBvZiBjaGlsZCAwIHtUQUJMRX0gb2Yg
Y2hpbGQgMCB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgMiB7
RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2Vs
ZWN0aW9uIGVuZDogICBwb3NpdGlvbiAyIG9mIGNoaWxkIDAge1RBQkxFfSBvZiBjaGlsZCAwIHtC
TE9DS1FVT1RFfSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGNo
aWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtc2VsZWN0aW9uLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbmRlbnQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDYx
MDEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRl
bnQtc2VsZWN0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAg
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZwogRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVs
bCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBCTE9DS1FVT1RFID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IEJMT0NLUVVPVEUgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93
bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3Rl
eHQgPiBTUEFOID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRv
IDUgb2YgI3RleHQgPiBTUEFOID4gQkxPQ0tRVU9URSA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCkBAIC0xNyw0MiArMTcsNDMgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCiAgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwxOCkgc2l6ZSA3ODR4
MTgKICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4MTgKICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgxOTQKLSAgICAgICAgUmVuZGVyQmxvY2sg
e0JMT0NLUVVPVEV9IGF0ICg0MCwwKSBzaXplIDc0NHg1NAorICAgICAgICBSZW5kZXJCbG9jayB7
QkxPQ0tRVU9URX0gYXQgKDQwLDApIHNpemUgNzQ0eDE5NAogICAgICAgICAgIFJlbmRlckJsb2Nr
IChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzQ0eDM2Ci0gICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MngxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA0MjogIkxvcmVtIgorICAgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDQyeDE4CisgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDQyeDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
NDI6ICJMb3JlbSIKICAgICAgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDQyLDE0KSBzaXplIDB4
MAogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4KSBzaXplIDgzeDE4CiAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCA4MzogIm1vcmUgTG9yZW0hIgot
ICAgICAgICAgIFJlbmRlckJsb2NrIHtCTE9DS1FVT1RFfSBhdCAoNDAsMzYpIHNpemUgNzA0eDE4
Ci0gICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOHgxOAotICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzODogImlwc3VtIgotICAgICAgICBS
ZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw1NCkgc2l6ZSA3ODR4MAotICAgICAgICBSZW5k
ZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDcwKSBzaXplIDc0NHg1NAotICAgICAgICAgIFJl
bmRlckJsb2NrIHtVTH0gYXQgKDAsMCkgc2l6ZSA3NDR4NTQKLSAgICAgICAgICAgIFJlbmRlckJs
b2NrIHtVTH0gYXQgKDQwLDApIHNpemUgNzA0eDU0CisgICAgICAgICAgUmVuZGVyQmxvY2sge0JM
T0NLUVVPVEV9IGF0ICg0MCwzNikgc2l6ZSA3MDR4MTIyCisgICAgICAgICAgICBSZW5kZXJCbG9j
ayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDcwNHgxOAorICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOHgxOAorICAgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDM4OiAiaXBzdW0iCisgICAgICAgICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDM4LDE0KSBzaXplIDB4MAorICAgICAgICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoMCwz
NCkgc2l6ZSA3MDR4NTQKICAgICAgICAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAs
MCkgc2l6ZSA2NjR4MTgKLSAgICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcs
MCkgc2l6ZSA3eDE4OiB3aGl0ZSBidWxsZXQKKyAgICAgICAgICAgICAgICBSZW5kZXJMaXN0TWFy
a2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4OiBidWxsZXQKICAgICAgICAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNXgxOAogICAgICAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMjU6ICJGb28iCiAgICAgICAgICAgICAgIFJlbmRlckxpc3RJdGVt
IHtMSX0gYXQgKDQwLDE4KSBzaXplIDY2NHgxOAotICAgICAgICAgICAgICAgIFJlbmRlckxpc3RN
YXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IHdoaXRlIGJ1bGxldAorICAgICAgICAgICAgICAg
IFJlbmRlckxpc3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTg6IGJ1bGxldAogICAgICAgICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIzeDE4CiAgICAgICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMzogIkJhciIKICAgICAgICAgICAgICAg
UmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAoNDAsMzYpIHNpemUgNjY0eDE4Ci0gICAgICAgICAgICAg
ICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODogd2hpdGUgYnVsbGV0Cisg
ICAgICAgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxODogYnVs
bGV0CiAgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjV4
MTgKICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1OiAiQmF6Igot
ICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDE0MCkgc2l6ZSA3NDR4NTQK
LSAgICAgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDApIHNpemUgNzA0eDE4
Ci0gICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzN3gxOAotICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzogIkRvbG9yIgotICAgICAgICAg
IFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDE4KSBzaXplIDc0NHgzNgorICAgICAgICAg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTA0KSBzaXplIDcwNHgxOAorICAgICAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzN3gxOAorICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3OiAiRG9sb3IiCisgICAgICAgICAgUmVu
ZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTU4KSBzaXplIDc0NHgzNgogICAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzR4MTgKICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzQ6ICJTdW0hIgogICAgICAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoMzQsMTQpIHNpemUgMHgwCi0gICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMTgpIHNpemUgMzh4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRo
IDM4OiAiVGhpbmciCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNp
emUgMzh4MTgKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4KSBzaXpl
IDM4eDE4CisgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDM4OiAiVGhp
bmciCiAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDE5NCkgc2l6ZSA3ODR4
MAotc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGls
ZCAxIHtCTE9DS1FVT1RFfSBvZiBjaGlsZCA0IHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNo
aWxkIDAge0hUTUx9IG9mIGRvY3VtZW50Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDUgb2Yg
Y2hpbGQgMyB7I3RleHR9IG9mIGNoaWxkIDMge0JMT0NLUVVPVEV9IG9mIGNoaWxkIDQge0RJVn0g
b2YgY2hpbGQgMSB7Qk9EWX0gb2YgY2hpbGQgMCB7SFRNTH0gb2YgZG9jdW1lbnQKKyAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK3NlbGVjdGlvbiBzdGFydDog
cG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7U1BBTn0gb2YgY2hpbGQg
MSB7QkxPQ0tRVU9URX0gb2YgY2hpbGQgNCB7RElWfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGls
ZCAwIHtIVE1MfSBvZiBkb2N1bWVudAorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA1IG9mIGNo
aWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCA2IHtTUEFOfSBvZiBjaGlsZCAxIHtCTE9DS1FVT1RFfSBv
ZiBjaGlsZCA0IHtESVZ9IG9mIGNoaWxkIDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRv
Y3VtZW50Cg==
</data>
<flag name="review"
          id="17405"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>