<?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>223862</bug_id>
          
          <creation_ts>2021-03-28 22:04:20 -0700</creation_ts>
          <short_desc>[GTK] REGRESSION(r274919?): Several accessibility tests are failing</short_desc>
          <delta_ts>2022-07-19 22:41:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Diego Pino">dpino</reporter>
          <assigned_to name="Diego Pino">dpino</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744680</commentid>
    <comment_count>0</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2021-03-28 22:04:20 -0700</bug_when>
    <thetext>Several accessibility test started failing in the interval r274913-274928:

  accessibility/gtk/text-for-range-embedded-objects.html
  accessibility/gtk/text-for-range-entry-and-password.html
  accessibility/gtk/text-for-range-formatted.html
  accessibility/gtk/text-for-range-heading.html
  accessibility/gtk/text-for-range-list-items.html
  accessibility/gtk/text-for-range-simple.html
  accessibility/gtk/text-for-range-table-cells.html
  accessibility/gtk/text-for-range-with-link.html

For instance:

https://results.webkit.org/?platform=GTK&amp;suite=layout-tests&amp;test=accessibility%2Fgtk%2Ftext-for-range-embedded-objects.html

Within the range of revisions, it seems this regression might be introduced by r274919.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744682</commentid>
    <comment_count>1</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2021-03-28 22:09:12 -0700</bug_when>
    <thetext>Here is the output of one failing test:

https://build.webkit.org/results/GTK-Linux-64-bit-Release-Tests/r275155%20%28883%29/accessibility/gtk/text-for-range-embedded-objects-diff.txt

--- /home/buildbot/worker/gtk-linux-64-release-tests/build/layout-test-results/accessibility/gtk/text-for-range-embedded-objects-expected.txt
+++ /home/buildbot/worker/gtk-linux-64-release-tests/build/layout-test-results/accessibility/gtk/text-for-range-embedded-objects-actual.txt
@@ -9,9 +9,9 @@
 On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
 
 
-PASS paragraph1.stringForRange(0, -1) is &apos;Choose: ï¿¼foo ï¿¼bar (pick one)&apos;
-PASS paragraph2.stringForRange(0, -1) is &apos;Choose: ï¿¼ (pick one)&apos;
-PASS paragraph3.stringForRange(0, -1) is &apos;ï¿¼&apos;
+FAIL paragraph1.stringForRange(0, -1) should be Choose: ï¿¼foo ï¿¼bar (pick one). Was .
+FAIL paragraph2.stringForRange(0, -1) should be Choose: ï¿¼ (pick one). Was .
+FAIL paragraph3.stringForRange(0, -1) should be ï¿¼. Was .
 PASS successfullyParsed is true
 
 TEST COMPLETE

It seems the problem is in the call `paragraph.stringForRange(0, -1)` which instead of returning the whole text of the paragraph is now returning an empty string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801972</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-10-08 02:16:46 -0700</bug_when>
    <thetext>Yes, -1 is not a valid value for an offset in the test runner. I think we should move these tests as unit tests where we are actually testing the atk/atspi interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815876</commentid>
    <comment_count>3</comment_count>
      <attachid>444501</attachid>
    <who name="Diego Pino">dpino</who>
    <bug_when>2021-11-17 02:12:33 -0800</bug_when>
    <thetext>Created attachment 444501
WIP: Rewrite &apos;text-for-range&apos; a11y layout tests as GTK API tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885295</commentid>
    <comment_count>4</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2022-07-19 21:15:56 -0700</bug_when>
    <thetext>When I wrote these tests I got the impression there were already tests in place that where testing Range. Does it make sense to add these new tests or would it be enough with removing the faulting LayoutTests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885312</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-07-19 22:41:59 -0700</bug_when>
    <thetext>I still think it would be great to convert those layout tests into api tests. They would need to be adapted to current tests and if something is already covered we don&apos;t need to add it twice, of course.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444501</attachid>
            <date>2021-11-17 02:12:33 -0800</date>
            <delta_ts>2021-11-17 02:12:33 -0800</delta_ts>
            <desc>WIP: Rewrite &apos;text-for-range&apos; a11y layout tests as GTK API tests</desc>
            <filename>bug-223862-20211117101231.patch</filename>
            <type>text/plain</type>
            <size>53775</size>
            <attacher name="Diego Pino">dpino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTIwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODNmMWY2OWUzNWQ4ZDVmMjg3Y2UxNWNkMzA0NzQwNzg0
ZWE1MGUxNS4uM2EwYzA2NDZkMjY5MTk1MGRiMzFkOWZkZGVkOTU0MTU1ODFlMjE0NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDIxLTExLTE3ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUS10gUkVHUkVTU0lPTihyMjc0OTE5Pyk6IFNldmVyYWwgYWNjZXNzaWJpbGl0
eSB0ZXN0cyBhcmUgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIzODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmV3cml0ZSAndGV4dC1mb3ItcmFuZ2UnIGxheW91dCB0ZXN0cyBhcyBHVEsg
QVBJIHRlc3RzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVz
dFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwOgorICAgICAgICAodGVzdFRleHRGb3JSYW5nZUNvbWJv
Qm94KToKKyAgICAgICAgKHRlc3RUZXh0Rm9yUmFuZ2VFbWJlZGRlZE9iamVjdHMpOgorICAgICAg
ICAodGVzdFRleHRGb3JSYW5nZUVudHJ5QW5kUGFzc3dvcmQpOgorICAgICAgICAodGVzdFRleHRG
b3JSYW5nZUZvcm1hdHRlZCk6CisgICAgICAgICh0ZXN0VGV4dEZvclJhbmdlSGVhZGluZyk6Cisg
ICAgICAgICh0ZXN0VGV4dEZvclJhbmdlTGlzdEl0ZW1zKToKKyAgICAgICAgKHRlc3RUZXh0Rm9y
UmFuZ2VTaW1wbGUpOgorICAgICAgICAodGVzdFRleHRGb3JSYW5nZVRhYmxlQ2VsbHMpOgorICAg
ICAgICAodGVzdFRleHRGb3JSYW5nZVdpdGhMaW5rKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisK
IDIwMjEtMTEtMTcgIFppeGluZyBMaXUgIDxsaXVzaHV5dTAxMUBnbWFpbC5jb20+CiAKICAgICAg
ICAgW0dUS11bV1BFXSBTdXBwb3J0IGdldHRpbmcgYW5kIHNldHRpbmcgSFRUUCBoZWFkZXJzIGlu
IGN1c3RvbSBVUkkgc2NoZW1lIGhhbmRsZXJzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAK
aW5kZXggZmI3OWNhNzk0ZGNiMDljMTU1OWNhZjAyZGI3ZmRmYjMxYjRkZDg0Ny4uMmI0OTJlYzc5
MjZiMTk2NGJlODM1MjAyMzQ2MDc3NDNmNmQ3YmQxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RXZWJLaXRBY2Nlc3NpYmls
aXR5LmNwcApAQCAtMTYxNCw2ICsxNjE0LDQ4NiBAQCBzdGF0aWMgdm9pZCB0ZXN0VGV4dFJlcGxh
Y2VkT2JqZWN0cyhBY2Nlc3NpYmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICNlbmRp
ZgogfQogCitzdGF0aWMgdm9pZCB0ZXN0VGV4dEZvclJhbmdlQ29tYm9Cb3goQWNjZXNzaWJpbGl0
eVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+c2hvd0luV2luZG93KDgw
MCwgNjAwKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgKKyAgICAgICAgIjxodG1sPiIKKyAgICAgICAg
IiAgPGJvZHk+IgorICAgICAgICAiICAgIDxzZWxlY3Q+PG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT0n
Zm9vJz5BbiBvcHRpb24gaW4gYSBjb21ibyBib3g8L29wdGlvbj48L3NlbGVjdD4iCisgICAgICAg
ICIgICAgPHNlbGVjdD48b3B0aW9uIHNlbGVjdGVkIHZhbHVlPSdmb28nPmZvbzwvb3B0aW9uPjxv
cHRpb24gdmFsdWU9J2Jhcic+YmFyPC9vcHRpb24+PC9zZWxlY3Q+IgorICAgICAgICAiICA8L2Jv
ZHk+IgorICAgICAgICAiPC9odG1sPiIsCisgICAgICAgIG51bGxwdHIpOworICAgIHRlc3QtPndh
aXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgYXV0byB0ZXN0QXBwID0gdGVzdC0+ZmluZFRl
c3RBcHBsaWNhdGlvbigpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRSh0
ZXN0QXBwLmdldCgpKSk7CisKKyAgICBhdXRvIGRvY3VtZW50V2ViID0gdGVzdC0+ZmluZERvY3Vt
ZW50V2ViKHRlc3RBcHAuZ2V0KCkpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNT
SUJMRShkb2N1bWVudFdlYi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9jb3VudChkb2N1bWVudFdlYi5nZXQoKSwgbnVsbHB0ciksID09LCAy
KTsKKworICAgIHsKKyAgICAgICAgYXV0byBjb21ib2JveCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMCwgbnVsbHB0cikp
OworICAgICAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQoY29tYm9ib3guZ2V0KCkpKTsK
KyAgICAgICAgYXV0byBwb3B1cCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGls
ZF9hdF9pbmRleChjb21ib2JveC5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgICAgICBnX2Fzc2Vy
dF90cnVlKEFUU1BJX0lTX1RFWFQocG9wdXAuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBvcHRpb24g
PSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgocG9wdXAuZ2V0
KCksIDAsIG51bGxwdHIpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19URVhUKG9w
dGlvbi5nZXQoKSkpOworCisgICAgICAgIFVuaXF1ZUF0c3BpVGV4dFJhbmdlIHJhbmdlKGF0c3Bp
X3RleHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChjb21ib2JveC5nZXQoKSksIDAs
IEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICAgICAgZ19h
c3NlcnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIiIpOworICAgICAgICBnX2Fzc2VydF9j
bXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgICAgICBnX2Fzc2VydF9jbXBp
bnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAwKTsKKworICAgICAgICByYW5nZS5yZXNldChhdHNw
aV90ZXh0X2dldF9zdHJpbmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQocG9wdXAuZ2V0KCkpLCAwLCBB
VFNQSV9URVhUX0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAgICAgIGdfYXNz
ZXJ0X2NtcHN0cihyYW5nZS0+Y29udGVudCwgPT0sICIiKTsKKyAgICAgICAgZ19hc3NlcnRfY21w
aW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAwKTsKKyAgICAgICAgZ19hc3NlcnRfY21waW50
KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgMCk7CisKKyAgICAgICAgcmFuZ2UucmVzZXQoYXRzcGlf
dGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKG9wdGlvbi5nZXQoKSksIDAsIEFU
U1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICAgICAgZ19hc3Nl
cnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIkFuIG9wdGlvbiBpbiBhIGNvbWJvIGJveCIp
OworICAgICAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOwor
ICAgICAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAyNSk7CisgICAg
fQorCisgICAgYXV0byBjb21ib2JveCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9j
aGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMSwgbnVsbHB0cikpOworICAgIGdfYXNz
ZXJ0X3RydWUoQVRTUElfSVNfVEVYVChjb21ib2JveC5nZXQoKSkpOworICAgIGF1dG8gcG9wdXAg
PSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoY29tYm9ib3gu
Z2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQocG9w
dXAuZ2V0KCkpKTsKKworICAgIFVuaXF1ZUF0c3BpVGV4dFJhbmdlIHJhbmdlKGF0c3BpX3RleHRf
Z2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChjb21ib2JveC5nZXQoKSksIDAsIEFUU1BJ
X1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBz
dHIocmFuZ2UtPmNvbnRlbnQsID09LCAiIik7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5z
dGFydF9vZmZzZXQsID09LCAwKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZz
ZXQsID09LCAwKTsKKworICAgIHJhbmdlLnJlc2V0KGF0c3BpX3RleHRfZ2V0X3N0cmluZ19hdF9v
ZmZzZXQoQVRTUElfVEVYVChwb3B1cC5nZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlf
U0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQs
ID09LCAiIik7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAw
KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAwKTsKKworICAg
IHsKKyAgICAgICAgYXV0byBvcHRpb24gPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRf
Y2hpbGRfYXRfaW5kZXgocG9wdXAuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICAgICAgZ19hc3Nl
cnRfdHJ1ZShBVFNQSV9JU19URVhUKG9wdGlvbi5nZXQoKSkpOworCisgICAgICAgIHJhbmdlLnJl
c2V0KGF0c3BpX3RleHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChvcHRpb24uZ2V0
KCkpLCAwLCBBVFNQSV9URVhUX0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAg
ICAgIGdfYXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29udGVudCwgPT0sICJmb28iKTsKKyAgICAgICAg
Z19hc3NlcnRfY21waW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAwKTsKKyAgICAgICAgZ19h
c3NlcnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgMyk7CisKKyAgICAgICAgcmFuZ2Uu
cmVzZXQoYXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKG9wdGlvbi5n
ZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfQ0hBUiwgbnVsbHB0cikpOworICAgICAg
ICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQsID09LCAiZiIpOworICAgICAgICBnX2Fz
c2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgICAgICBnX2Fzc2Vy
dF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAxKTsKKyAgICB9CisKKyAgICB7CisgICAg
ICAgIGF1dG8gb3B0aW9uID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0
X2luZGV4KHBvcHVwLmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUo
QVRTUElfSVNfVEVYVChvcHRpb24uZ2V0KCkpKTsKKworICAgICAgICByYW5nZS5yZXNldChhdHNw
aV90ZXh0X2dldF9zdHJpbmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQob3B0aW9uLmdldCgpKSwgMCwg
QVRTUElfVEVYVF9HUkFOVUxBUklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAgICAgICBnX2Fz
c2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQsID09LCAiYmFyIik7CisgICAgICAgIGdfYXNzZXJ0
X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgICAgIGdfYXNzZXJ0X2Nt
cGludChyYW5nZS0+ZW5kX29mZnNldCwgPT0sIDMpOworCisgICAgICAgIHJhbmdlLnJlc2V0KGF0
c3BpX3RleHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChvcHRpb24uZ2V0KCkpLCAx
LCBBVFNQSV9URVhUX0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAgICAgIGdf
YXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29udGVudCwgPT0sICJhciIpOworICAgICAgICBnX2Fzc2Vy
dF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgICAgICBnX2Fzc2VydF9j
bXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAyKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lk
IHRlc3RUZXh0Rm9yUmFuZ2VFbWJlZGRlZE9iamVjdHMoQWNjZXNzaWJpbGl0eVRlc3QqIHRlc3Qs
IGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+c2hvd0luV2luZG93KDgwMCwgNjAwKTsKKyAg
ICB0ZXN0LT5sb2FkSHRtbCgKKyAgICAgICAgIjxodG1sPiIKKyAgICAgICAgIiAgPGJvZHk+Igor
ICAgICAgICAiICAgIDxwPkNob29zZTogPGlucHV0IHZhbHVlPSdmb28nIHR5cGU9J2NoZWNrYm94
Jy8+Zm9vIDxpbnB1dCB2YWx1ZT0nYmFyJyB0eXBlPSdjaGVja2JveCcvPmJhciAocGljayBvbmUp
PC9wPiIKKyAgICAgICAgIiAgICA8cD5DaG9vc2U6IDxzZWxlY3QgbmFtZT0nZm9vJz48b3B0aW9u
PmJhcjwvb3B0aW9uPjxvcHRpb24+YmF6PC9vcHRpb24+PC9zZWxlY3Q+IChwaWNrIG9uZSk8L3A+
IgorICAgICAgICAiICAgIDxwPjxpbnB1dCBuYW1lPSdmb29iYXJidXR0b24nIHZhbHVlPSdmb29i
YXInIHR5cGU9J2J1dHRvbicvPjwvcD4iCisgICAgICAgICIgIDwvYm9keT4iCisgICAgICAgICI8
L2h0bWw+IiwKKyAgICAgICAgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlz
aGVkKCk7CisKKworICAgIGF1dG8gdGVzdEFwcCA9IHRlc3QtPmZpbmRUZXN0QXBwbGljYXRpb24o
KTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUodGVzdEFwcC5nZXQoKSkp
OworCisgICAgYXV0byBkb2N1bWVudFdlYiA9IHRlc3QtPmZpbmREb2N1bWVudFdlYih0ZXN0QXBw
LmdldCgpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoZG9jdW1lbnRX
ZWIuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hp
bGRfY291bnQoZG9jdW1lbnRXZWIuZ2V0KCksIG51bGxwdHIpLCA9PSwgMyk7CisKKyAgICBhdXRv
IHAxID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGRvY3Vt
ZW50V2ViLmdldCgpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19U
RVhUKHAxLmdldCgpKSk7CisgICAgYXV0byBwMiA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxl
X2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMSwgbnVsbHB0cikpOworICAg
IGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfVEVYVChwMi5nZXQoKSkpOworICAgIGF1dG8gcDMgPSBh
ZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRXZWIu
Z2V0KCksIDIsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQocDMu
Z2V0KCkpKTsKKworICAgIFVuaXF1ZUF0c3BpVGV4dFJhbmdlIHJhbmdlKGF0c3BpX3RleHRfZ2V0
X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChwMS5nZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JB
TlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2Ut
PmNvbnRlbnQsID09LCAiQ2hvb3NlOiBcMzU3XDI3N1wyNzRmb28gXDM1N1wyNzdcMjc0YmFyIChw
aWNrIG9uZSkiKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0s
IDApOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+ZW5kX29mZnNldCwgPT0sIDMzKTsKKwor
ICAgIHJhbmdlLnJlc2V0KGF0c3BpX3RleHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVY
VChwMi5nZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIp
KTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQsID09LCAiQ2hvb3NlOiBcMzU3
XDI3N1wyNzQgKHBpY2sgb25lKSIpOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+c3RhcnRf
b2Zmc2V0LCA9PSwgMCk7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9
PSwgMjMpOworCisgICAgcmFuZ2UucmVzZXQoYXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNl
dChBVFNQSV9URVhUKHAzLmdldCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxBUklUWV9TRU5URU5D
RSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29udGVudCwgPT0sICJc
MzU3XDI3N1wyNzQiKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwg
PT0sIDApOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+ZW5kX29mZnNldCwgPT0sIDMpOwor
fQorCitzdGF0aWMgdm9pZCB0ZXN0VGV4dEZvclJhbmdlRW50cnlBbmRQYXNzd29yZChBY2Nlc3Np
YmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zaG93SW5XaW5k
b3coODAwLCA2MDApOworICAgIHRlc3QtPmxvYWRIdG1sKAorICAgICAgICAiPGh0bWw+IgorICAg
ICAgICAiICA8Ym9keT4iCisgICAgICAgICIgICAgPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2Zv
bycgdmFsdWU9J2ZvbyBiYXIgYmF6Jy8+IgorICAgICAgICAiICAgIDxpbnB1dCB0eXBlPSdwYXNz
d29yZCcgbmFtZT0nYmFyJyB2YWx1ZT0nZm9vIGJhciBiYXonLz4iCisgICAgICAgICIgIDwvYm9k
eT4iCisgICAgICAgICI8L2h0bWw+IiwKKyAgICAgICAgbnVsbHB0cik7CisgICAgdGVzdC0+d2Fp
dFVudGlsTG9hZEZpbmlzaGVkKCk7CisKKyAgICBhdXRvIHRlc3RBcHAgPSB0ZXN0LT5maW5kVGVz
dEFwcGxpY2F0aW9uKCk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKHRl
c3RBcHAuZ2V0KCkpKTsKKworICAgIGF1dG8gZG9jdW1lbnRXZWIgPSB0ZXN0LT5maW5kRG9jdW1l
bnRXZWIodGVzdEFwcC5nZXQoKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJ
QkxFKGRvY3VtZW50V2ViLmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vz
c2libGVfZ2V0X2NoaWxkX2NvdW50KGRvY3VtZW50V2ViLmdldCgpLCBudWxscHRyKSwgPT0sIDIp
OworCisgICAgYXV0byBlbnRyeSA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGls
ZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0
X3RydWUoQVRTUElfSVNfVEVYVChlbnRyeS5nZXQoKSkpOworICAgIGF1dG8gcGFzc3dvcmQgPSBh
ZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRXZWIu
Z2V0KCksIDEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQocGFz
c3dvcmQuZ2V0KCkpKTsKKworICAgIFVuaXF1ZUF0c3BpVGV4dFJhbmdlIHJhbmdlKGF0c3BpX3Rl
eHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChlbnRyeS5nZXQoKSksIDAsIEFUU1BJ
X1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBz
dHIocmFuZ2UtPmNvbnRlbnQsID09LCAiZm9vIGJhciBiYXoiKTsKKyAgICBnX2Fzc2VydF9jbXBp
bnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5n
ZS0+ZW5kX29mZnNldCwgPT0sIDExKTsKKworICAgIHJhbmdlLnJlc2V0KGF0c3BpX3RleHRfZ2V0
X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChwYXNzd29yZC5nZXQoKSksIDAsIEFUU1BJX1RF
WFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIo
cmFuZ2UtPmNvbnRlbnQsID09LCAiw6I8ODA+wqLDojw4MD7CosOiPDgwPsKiw6I8ODA+wqLDojw4
MD7CosOiPDgwPsKiw6I8ODA+wqLDojw4MD7CosOiPDgwPsKiw6I8ODA+wqLDojw4MD7CoiIpOwor
ICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgZ19h
c3NlcnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgODkpOworfQorCitzdGF0aWMgdm9p
ZCB0ZXN0VGV4dEZvclJhbmdlRm9ybWF0dGVkKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQoreworICAgIHRlc3QtPnNob3dJbldpbmRvdyg4MDAsIDYwMCk7CisgICAgdGVz
dC0+bG9hZEh0bWwoCisgICAgICAgICI8aHRtbD4iCisgICAgICAgICIgIDxib2R5PiIKKyAgICAg
ICAgIiAgICA8cCBpZD0nY29udGVudCc+VGhpcyBpcyBhIHRlc3QuPC9wPkhlbGxvIHdvcmxkLjxi
ciAvPjxmb250IGNvbG9yPScjMDBjYzAwJz5UaGlzIHNlbnRlbmNlIGlzIGdyZWVuLjwvZm9udD48
YnIgLz5UaGlzIG9uZSBpcyBub3QuIgorICAgICAgICAiICA8L2JvZHk+IgorICAgICAgICAiPC9o
dG1sPiIsCisgICAgICAgIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hl
ZCgpOworCisgICAgYXV0byB0ZXN0QXBwID0gdGVzdC0+ZmluZFRlc3RBcHBsaWNhdGlvbigpOwor
ICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRSh0ZXN0QXBwLmdldCgpKSk7CisK
KyAgICBhdXRvIGRvY3VtZW50V2ViID0gdGVzdC0+ZmluZERvY3VtZW50V2ViKHRlc3RBcHAuZ2V0
KCkpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShkb2N1bWVudFdlYi5n
ZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9j
b3VudChkb2N1bWVudFdlYi5nZXQoKSwgbnVsbHB0ciksID09LCAyKTsKKworICAgIGF1dG8gcCA9
IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdl
Yi5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfVEVYVChw
LmdldCgpKSk7CisgICAgYXV0byBibG9jayA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dl
dF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMSwgbnVsbHB0cikpOworICAgIGdf
YXNzZXJ0X3RydWUoQVRTUElfSVNfVEVYVChibG9jay5nZXQoKSkpOworCisgICAgVW5pcXVlQXRz
cGlUZXh0UmFuZ2UgcmFuZ2UoYXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9U
RVhUKHAuZ2V0KCkpLCAwLCBBVFNQSV9URVhUX0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRy
KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIlRoaXMgaXMgYSB0
ZXN0LiIpOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7
CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgMTYpOworCisgICAg
cmFuZ2UucmVzZXQoYXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKGJs
b2NrLmdldCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxBUklUWV9TRU5URU5DRSwgbnVsbHB0cikp
OworICAgIGdfYXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29udGVudCwgPT0sICJIZWxsbyB3b3JsZC5c
blRoaXMgc2VudGVuY2UgaXMgZ3JlZW4uXG5UaGlzIG9uZSBpcyBub3QuIik7CisgICAgZ19hc3Nl
cnRfY21waW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAwKTsKKyAgICBnX2Fzc2VydF9jbXBp
bnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCA1Nik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RUZXh0
Rm9yUmFuZ2VIZWFkaW5nKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQor
eworICAgIHRlc3QtPnNob3dJbldpbmRvdyg4MDAsIDYwMCk7CisgICAgdGVzdC0+bG9hZEh0bWwo
CisgICAgICAgICI8aHRtbD4iCisgICAgICAgICIgIDxib2R5PiIKKyAgICAgICAgIiAgICA8aDE+
QSB0ZXh0IGhlYWRlcjwvaDE+IgorICAgICAgICAiICAgIDxoND48YSBocmVmPSdmb28nPjxzcGFu
IHN0eWxlPSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBoZWFkaW5n
PC9zcGFuPjxzcGFuPklubGluZSBzcGFuIGluIGEgbGluayBpbiBhIGhlYWRpbmc8L3NwYW4+PC9h
PjwvaDQ+IgorICAgICAgICAiICAgIDxoND48c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jazsnPkJs
b2NrIHNwYW4gaW4gYSBoZWFkaW5nPC9zcGFuPjxzcGFuPklubGluZSBzcGFuIGluIGEgaGVhZGlu
Zzwvc3Bhbj48L2g0PiIKKyAgICAgICAgIiAgPC9ib2R5PiIKKyAgICAgICAgIjwvaHRtbD4iLAor
ICAgICAgICBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKwor
ICAgIGF1dG8gdGVzdEFwcCA9IHRlc3QtPmZpbmRUZXN0QXBwbGljYXRpb24oKTsKKyAgICBnX2Fz
c2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUodGVzdEFwcC5nZXQoKSkpOworCisgICAgYXV0
byBkb2N1bWVudFdlYiA9IHRlc3QtPmZpbmREb2N1bWVudFdlYih0ZXN0QXBwLmdldCgpKTsKKyAg
ICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoZG9jdW1lbnRXZWIuZ2V0KCkpKTsK
KyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfY291bnQoZG9j
dW1lbnRXZWIuZ2V0KCksIG51bGxwdHIpLCA9PSwgMik7CisKKyAgICBhdXRvIGgxID0gYWRvcHRH
UmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGRvY3VtZW50V2ViLmdldCgp
LCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19URVhUKGgxLmdldCgp
KSk7CisgICAgYXV0byBoNF8xID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxk
X2F0X2luZGV4KGRvY3VtZW50V2ViLmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRf
dHJ1ZShBVFNQSV9JU19URVhUKGg0XzEuZ2V0KCkpKTsKKyAgICBhdXRvIGg0XzIgPSBhZG9wdEdS
ZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRXZWIuZ2V0KCks
IDIsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQoaDRfMi5nZXQo
KSkpOworCisgICAgVW5pcXVlQXRzcGlUZXh0UmFuZ2UgcmFuZ2UoYXRzcGlfdGV4dF9nZXRfc3Ry
aW5nX2F0X29mZnNldChBVFNQSV9URVhUKGgxLmdldCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxB
UklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29u
dGVudCwgPT0sICJBIHRleHQgaGVhZGVyIik7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5z
dGFydF9vZmZzZXQsID09LCAwKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZz
ZXQsID09LCAxNCk7CisKKyAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0X2dldF9zdHJpbmdfYXRf
b2Zmc2V0KEFUU1BJX1RFWFQoaDRfMS5nZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlf
U0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQs
ID09LCAiQmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBoZWFkaW5nXG5JbmxpbmUgc3BhbiBpbiBh
IGxpbmsgaW4gYSBoZWFkaW5nIik7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5zdGFydF9v
ZmZzZXQsID09LCAwKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09
LCA2OSk7CisKKyAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0X2dldF9zdHJpbmdfYXRfb2Zmc2V0
KEFUU1BJX1RFWFQoaDRfMi5nZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVO
Q0UsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQsID09LCAi
QmxvY2sgc3BhbiBpbiBhIGhlYWRpbmdcbklubGluZSBzcGFuIGluIGEgaGVhZGluZyIpOworICAg
IGdfYXNzZXJ0X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgZ19hc3Nl
cnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgNDkpOworfQorCitzdGF0aWMgdm9pZCB0
ZXN0VGV4dEZvclJhbmdlTGlzdEl0ZW1zKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQoreworICAgIHRlc3QtPnNob3dJbldpbmRvdyg4MDAsIDYwMCk7CisgICAgdGVzdC0+
bG9hZEh0bWwoCisgICAgICAgICI8aHRtbD4iCisgICAgICAgICIgIDxib2R5PiIKKyAgICAgICAg
IiAgICA8b2w+IgorICAgICAgICAiICAgICAgPGxpPkEgbGlzdCBpdGVtPC9saT4iCisgICAgICAg
ICIgICAgICA8bGk+PHNwYW4gc3R5bGU9J2Rpc3BsYXk6YmxvY2s7Jz5CbG9jayBzcGFuIGluIGEg
bGlzdCBpdGVtPC9zcGFuPjxzcGFuPklubGluZSBzcGFuIGluIGEgbGlzdCBpdGVtPC9zcGFuPjwv
bGk+IgorICAgICAgICAiICAgICAgPGxpPjxhIGhyZWY9J2Zvbyc+PHNwYW4gc3R5bGU9J2Rpc3Bs
YXk6YmxvY2s7Jz5CbG9jayBzcGFuIGluIGEgbGluayBpbiBhIGxpc3QgaXRlbTwvc3Bhbj48c3Bh
bj5JbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBsaXN0IGl0ZW08L3NwYW4+PC9hPjwvbGk+Igor
ICAgICAgICAiICAgIDwvb2w+IgorICAgICAgICAiICAgIDx1bD48bGk+dGV4dCBvbmx5PC9saT48
bGk+PGEgaHJlZj0nZm9vJz5saW5rIG9ubHk8L2E+PC9saT48bGk+dGV4dCBhbmQgYSA8YSBocmVm
PSdiYXInPmxpbms8L2E+PC9saT48L3VsPiIKKyAgICAgICAgIiAgICA8b2w+PGxpPnRleHQgb25s
eTwvbGk+PGxpPjxhIGhyZWY9J2Zvbyc+bGluayBvbmx5PC9hPjwvbGk+PGxpPnRleHQgYW5kIGEg
PGEgaHJlZj0nYmFyJz5saW5rPC9hPjwvbGk+PC9vbD4iCisgICAgICAgICIgIDwvYm9keT4iCisg
ICAgICAgICI8L2h0bWw+IiwKKyAgICAgICAgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGls
TG9hZEZpbmlzaGVkKCk7CisKKyAgICBhdXRvIHRlc3RBcHAgPSB0ZXN0LT5maW5kVGVzdEFwcGxp
Y2F0aW9uKCk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKHRlc3RBcHAu
Z2V0KCkpKTsKKworICAgIGF1dG8gZG9jdW1lbnRXZWIgPSB0ZXN0LT5maW5kRG9jdW1lbnRXZWIo
dGVzdEFwcC5nZXQoKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKGRv
Y3VtZW50V2ViLmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVf
Z2V0X2NoaWxkX2NvdW50KGRvY3VtZW50V2ViLmdldCgpLCBudWxscHRyKSwgPT0sIDMpOworCisg
ICAgeworICAgICAgICBhdXRvIG9sID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2No
aWxkX2F0X2luZGV4KGRvY3VtZW50V2ViLmdldCgpLCAwLCBudWxscHRyKSk7CisKKyAgICAgICAg
YXV0byBsaTEgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgo
b2wuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19U
RVhUKGxpMS5nZXQoKSkpOworICAgICAgICBhdXRvIGxpMiA9IGFkb3B0R1JlZihhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChvbC5nZXQoKSwgMSwgbnVsbHB0cikpOworICAgICAg
ICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQobGkyLmdldCgpKSk7CisgICAgICAgIGF1dG8g
bGkzID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KG9sLmdl
dCgpLCAyLCBudWxscHRyKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfVEVYVChs
aTMuZ2V0KCkpKTsKKworICAgICAgICBVbmlxdWVBdHNwaVRleHRSYW5nZSByYW5nZShhdHNwaV90
ZXh0X2dldF9zdHJpbmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQobGkxLmdldCgpKSwgMCwgQVRTUElf
VEVYVF9HUkFOVUxBUklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAgICAgICBnX2Fzc2VydF9j
bXBzdHIocmFuZ2UtPmNvbnRlbnQsID09LCAiMS4gQSBsaXN0IGl0ZW0iKTsKKyAgICAgICAgZ19h
c3NlcnRfY21waW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAwKTsKKyAgICAgICAgZ19hc3Nl
cnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgMTYpOworCisgICAgICAgIHJhbmdlLnJl
c2V0KGF0c3BpX3RleHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChsaTIuZ2V0KCkp
LCAwLCBBVFNQSV9URVhUX0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAgICAg
IGdfYXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29udGVudCwgPT0sICIyLiBCbG9jayBzcGFuIGluIGEg
bGlzdCBpdGVtXG5JbmxpbmUgc3BhbiBpbiBhIGxpc3QgaXRlbSIpOworICAgICAgICBnX2Fzc2Vy
dF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgICAgICBnX2Fzc2VydF9j
bXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCA1OCk7CisKKyAgICAgICAgcmFuZ2UucmVzZXQo
YXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKGxpMy5nZXQoKSksIDAs
IEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICAgICAgZ19h
c3NlcnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIjMuIEJsb2NrIHNwYW4gaW4gYSBsaW5r
IGluIGEgbGlzdCBpdGVtXG5JbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBsaXN0IGl0ZW0iKTsK
KyAgICAgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAwKTsKKyAg
ICAgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgNzgpOworICAgIH0K
KworICAgIHsKKyAgICAgICAgYXV0byB1bCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dl
dF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMSwgbnVsbHB0cikpOworCisgICAg
ICAgIGF1dG8gbGkxID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2lu
ZGV4KHVsLmdldCgpLCAwLCBudWxscHRyKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoQVRTUElf
SVNfVEVYVChsaTEuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBsaTIgPSBhZG9wdEdSZWYoYXRzcGlf
YWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgodWwuZ2V0KCksIDEsIG51bGxwdHIpKTsKKyAg
ICAgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19URVhUKGxpMi5nZXQoKSkpOworICAgICAgICBh
dXRvIGxpMyA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleCh1
bC5nZXQoKSwgMiwgbnVsbHB0cikpOworICAgICAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RF
WFQobGkzLmdldCgpKSk7CisKKyAgICAgICAgVW5pcXVlQXRzcGlUZXh0UmFuZ2UgcmFuZ2UoYXRz
cGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKGxpMS5nZXQoKSksIDAsIEFU
U1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICAgICAgZ19hc3Nl
cnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIsOiPDgwPsKiIHRleHQgb25seSIpOworICAg
ICAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgICAg
ICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAxOSk7CisKKyAgICAgICAg
cmFuZ2UucmVzZXQoYXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKGxp
Mi5nZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsK
KyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIsOiPDgwPsKiIGxp
bmsgb25seSIpOworICAgICAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwg
PT0sIDApOworICAgICAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAx
OSk7CisKKyAgICAgICAgcmFuZ2UucmVzZXQoYXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNl
dChBVFNQSV9URVhUKGxpMy5nZXQoKSksIDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVO
Q0UsIG51bGxwdHIpKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9
PSwgIsOiPDgwPsKiIHRleHQgYW5kIGEgbGluayIpOworICAgICAgICBnX2Fzc2VydF9jbXBpbnQo
cmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgICAgICBnX2Fzc2VydF9jbXBpbnQocmFu
Z2UtPmVuZF9vZmZzZXQsID09LCAyNSk7CisgICAgfQorCisgICAgeworICAgICAgICBhdXRvIG9s
ID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGRvY3VtZW50
V2ViLmdldCgpLCAxLCBudWxscHRyKSk7CisKKyAgICAgICAgYXV0byBsaTEgPSBhZG9wdEdSZWYo
YXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgob2wuZ2V0KCksIDAsIG51bGxwdHIp
KTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19URVhUKGxpMS5nZXQoKSkpOworICAg
ICAgICBhdXRvIGxpMiA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9p
bmRleChvbC5nZXQoKSwgMSwgbnVsbHB0cikpOworICAgICAgICBnX2Fzc2VydF90cnVlKEFUU1BJ
X0lTX1RFWFQobGkyLmdldCgpKSk7CisgICAgICAgIGF1dG8gbGkzID0gYWRvcHRHUmVmKGF0c3Bp
X2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KG9sLmdldCgpLCAyLCBudWxscHRyKSk7Cisg
ICAgICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfVEVYVChsaTMuZ2V0KCkpKTsKKworICAgICAg
ICBVbmlxdWVBdHNwaVRleHRSYW5nZSByYW5nZShhdHNwaV90ZXh0X2dldF9zdHJpbmdfYXRfb2Zm
c2V0KEFUU1BJX1RFWFQobGkxLmdldCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxBUklUWV9TRU5U
RU5DRSwgbnVsbHB0cikpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQs
ID09LCAiMS4gdGV4dCBvbmx5Iik7CisgICAgICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+c3Rh
cnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+ZW5kX29m
ZnNldCwgPT0sIDEzKTsKKworICAgICAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0X2dldF9zdHJp
bmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQobGkyLmdldCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxB
UklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2Ut
PmNvbnRlbnQsID09LCAiMi4gbGluayBvbmx5Iik7CisgICAgICAgIGdfYXNzZXJ0X2NtcGludChy
YW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgICAgIGdfYXNzZXJ0X2NtcGludChyYW5n
ZS0+ZW5kX29mZnNldCwgPT0sIDEzKTsKKworICAgICAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0
X2dldF9zdHJpbmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQobGkzLmdldCgpKSwgMCwgQVRTUElfVEVY
VF9HUkFOVUxBUklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAgICAgICBnX2Fzc2VydF9jbXBz
dHIocmFuZ2UtPmNvbnRlbnQsID09LCAiMy4gdGV4dCBhbmQgYSBsaW5rIik7CisgICAgICAgIGdf
YXNzZXJ0X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgICAgIGdfYXNz
ZXJ0X2NtcGludChyYW5nZS0+ZW5kX29mZnNldCwgPT0sIDE5KTsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkIHRlc3RUZXh0Rm9yUmFuZ2VTaW1wbGUoQWNjZXNzaWJpbGl0eVRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+c2hvd0luV2luZG93KDgwMCwgNjAwKTsKKyAgICB0
ZXN0LT5sb2FkSHRtbCgKKyAgICAgICAgIjxodG1sPiIKKyAgICAgICAgIiAgPGJvZHk+IgorICAg
ICAgICAiICAgIDxwIGlkPSdjb250ZW50Jz5UaGlzIGlzIGEgdGVzdC48L3A+SGVsbG8gd29ybGQu
IgorICAgICAgICAiICA8L2JvZHk+IgorICAgICAgICAiPC9odG1sPiIsCisgICAgICAgIG51bGxw
dHIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgYXV0byB0ZXN0
QXBwID0gdGVzdC0+ZmluZFRlc3RBcHBsaWNhdGlvbigpOworICAgIGdfYXNzZXJ0X3RydWUoQVRT
UElfSVNfQUNDRVNTSUJMRSh0ZXN0QXBwLmdldCgpKSk7CisKKyAgICBhdXRvIGRvY3VtZW50V2Vi
ID0gdGVzdC0+ZmluZERvY3VtZW50V2ViKHRlc3RBcHAuZ2V0KCkpOworICAgIGdfYXNzZXJ0X3Ry
dWUoQVRTUElfSVNfQUNDRVNTSUJMRShkb2N1bWVudFdlYi5nZXQoKSkpOworICAgIGdfYXNzZXJ0
X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3VudChkb2N1bWVudFdlYi5nZXQo
KSwgbnVsbHB0ciksID09LCAyKTsKKworICAgIGF1dG8gcCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMCwgbnVsbHB0cikp
OworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfVEVYVChwLmdldCgpKSk7CisgICAgYXV0byBi
bG9jayA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1
bWVudFdlYi5nZXQoKSwgMSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNf
VEVYVChibG9jay5nZXQoKSkpOworCisgICAgVW5pcXVlQXRzcGlUZXh0UmFuZ2UgcmFuZ2UoYXRz
cGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKHAuZ2V0KCkpLCAwLCBBVFNQ
SV9URVhUX0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21w
c3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIlRoaXMgaXMgYSB0ZXN0LiIpOworICAgIGdfYXNzZXJ0
X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgZ19hc3NlcnRfY21waW50
KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgMTYpOworCisgICAgcmFuZ2UucmVzZXQoYXRzcGlfdGV4
dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKGJsb2NrLmdldCgpKSwgMCwgQVRTUElf
VEVYVF9HUkFOVUxBUklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcHN0
cihyYW5nZS0+Y29udGVudCwgPT0sICJIZWxsbyB3b3JsZC4iKTsKKyAgICBnX2Fzc2VydF9jbXBp
bnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5n
ZS0+ZW5kX29mZnNldCwgPT0sIDEzKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFRleHRGb3JSYW5n
ZVRhYmxlQ2VsbHMoQWNjZXNzaWJpbGl0eVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7Cisg
ICAgdGVzdC0+c2hvd0luV2luZG93KDgwMCwgNjAwKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgKKyAg
ICAgICAgIjxodG1sPiIKKyAgICAgICAgIiAgPGJvZHk+IgorICAgICAgICAiICAgIDx0YWJsZSBi
b3JkZXI9MT4iCisgICAgICAgICIgICAgICA8dHI+IgorICAgICAgICAiICAgICAgICA8dGQ+YSB0
YWJsZSBjZWxsPC90ZD4iCisgICAgICAgICIgICAgICAgIDx0ZD48L3RkPiIKKyAgICAgICAgIiAg
ICAgICAgPHRkPjxhIGhyZWY9J2Zvbyc+PHNwYW4gc3R5bGU9J2Rpc3BsYXk6YmxvY2s7Jz5CbG9j
ayBzcGFuIGluIGEgbGluayBpbiBhIHRhYmxlIGNlbGw8L3NwYW4+PHNwYW4+SW5saW5lIHNwYW4g
aW4gYSBsaW5rIGluIGEgdGFibGUgY2VsbDwvc3Bhbj48L2E+PC90ZD4iCisgICAgICAgICIgICAg
ICAgIDx0ZD48c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jazsnPkJsb2NrIHNwYW4gaW4gYSB0YWJs
ZSBjZWxsPC9zcGFuPjxzcGFuPklubGluZSBzcGFuIGluIGEgdGFibGUgY2VsbDwvc3Bhbj48L3Rk
PiIKKyAgICAgICAgIiAgICAgIDwvdHI+IgorICAgICAgICAiICAgIDwvdGFibGU+IgorICAgICAg
ICAiICA8L2JvZHk+IgorICAgICAgICAiPC9odG1sPiIsCisgICAgICAgIG51bGxwdHIpOworICAg
IHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgYXV0byB0ZXN0QXBwID0gdGVz
dC0+ZmluZFRlc3RBcHBsaWNhdGlvbigpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUND
RVNTSUJMRSh0ZXN0QXBwLmdldCgpKSk7CisKKyAgICBhdXRvIGRvY3VtZW50V2ViID0gdGVzdC0+
ZmluZERvY3VtZW50V2ViKHRlc3RBcHAuZ2V0KCkpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElf
SVNfQUNDRVNTSUJMRShkb2N1bWVudFdlYi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChh
dHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3VudChkb2N1bWVudFdlYi5nZXQoKSwgbnVsbHB0
ciksID09LCA0KTsKKworICAgIGF1dG8gY2VsbDEgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJs
ZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRXZWIuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAg
ICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQoY2VsbDEuZ2V0KCkpKTsKKyAgICBhdXRvIGNl
bGwyID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGRvY3Vt
ZW50V2ViLmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19U
RVhUKGNlbGwyLmdldCgpKSk7CisgICAgYXV0byBjZWxsMyA9IGFkb3B0R1JlZihhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMiwgbnVsbHB0cikp
OworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfVEVYVChjZWxsMy5nZXQoKSkpOworICAgIGF1
dG8gY2VsbDQgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgo
ZG9jdW1lbnRXZWIuZ2V0KCksIDMsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJ
X0lTX1RFWFQoY2VsbDQuZ2V0KCkpKTsKKworICAgIFVuaXF1ZUF0c3BpVGV4dFJhbmdlIHJhbmdl
KGF0c3BpX3RleHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChjZWxsMS5nZXQoKSks
IDAsIEFUU1BJX1RFWFRfR1JBTlVMQVJJVFlfU0VOVEVOQ0UsIG51bGxwdHIpKTsKKyAgICBnX2Fz
c2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQsID09LCAiYSB0YWJsZSBjZWxsIik7CisgICAgZ19h
c3NlcnRfY21waW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAwKTsKKyAgICBnX2Fzc2VydF9j
bXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCAxNCk7CisKKyAgICByYW5nZS5yZXNldChhdHNw
aV90ZXh0X2dldF9zdHJpbmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQoY2VsbDIuZ2V0KCkpLCAwLCBB
VFNQSV9URVhUX0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRf
Y21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIiIpOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5n
ZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5lbmRf
b2Zmc2V0LCA9PSwgMCk7CisKKyAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0X2dldF9zdHJpbmdf
YXRfb2Zmc2V0KEFUU1BJX1RFWFQoY2VsbDMuZ2V0KCkpLCAwLCBBVFNQSV9URVhUX0dSQU5VTEFS
SVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJhbmdlLT5jb250
ZW50LCA9PSwgIkJsb2NrIHNwYW4gaW4gYSBsaW5rIGluIGEgdGFibGUgY2VsbFxuSW5saW5lIHNw
YW4gaW4gYSBsaW5rIGluIGEgdGFibGUgY2VsbCIpOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5n
ZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5lbmRf
b2Zmc2V0LCA9PSwgNzYpOworCisgICAgcmFuZ2UucmVzZXQoYXRzcGlfdGV4dF9nZXRfc3RyaW5n
X2F0X29mZnNldChBVFNQSV9URVhUKGNlbGw0LmdldCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxB
UklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29u
dGVudCwgPT0sICJCbG9jayBzcGFuIGluIGEgdGFibGUgY2VsbFxuSW5saW5lIHNwYW4gaW4gYSB0
YWJsZSBjZWxsIik7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09
LCAwKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVuZF9vZmZzZXQsID09LCA1Nik7Cit9
CisKK3N0YXRpYyB2b2lkIHRlc3RUZXh0Rm9yUmFuZ2VXaXRoTGluayhBY2Nlc3NpYmlsaXR5VGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3coODAwLCA2
MDApOworICAgIHRlc3QtPmxvYWRIdG1sKAorICAgICAgICAiPGh0bWw+IgorICAgICAgICAiICA8
Ym9keT4iCisgICAgICAgICIgICAgPHAgaWQ9J2NvbnRlbnQnPkEgcGFyYWdyYXBoIHdpdGggPGEg
aHJlZj0naHR0cDovL3dlYmtpdC5vcmcnPmEgbGluazwvYT4gaW4gdGhlIG1pZGRsZTwvcD4iCisg
ICAgICAgICIgIDwvYm9keT4iCisgICAgICAgICI8L2h0bWw+IiwKKyAgICAgICAgbnVsbHB0cik7
CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisKKyAgICBhdXRvIHRlc3RBcHAg
PSB0ZXN0LT5maW5kVGVzdEFwcGxpY2F0aW9uKCk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9J
U19BQ0NFU1NJQkxFKHRlc3RBcHAuZ2V0KCkpKTsKKworICAgIGF1dG8gZG9jdW1lbnRXZWIgPSB0
ZXN0LT5maW5kRG9jdW1lbnRXZWIodGVzdEFwcC5nZXQoKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShB
VFNQSV9JU19BQ0NFU1NJQkxFKGRvY3VtZW50V2ViLmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21w
aW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2NvdW50KGRvY3VtZW50V2ViLmdldCgpLCBu
dWxscHRyKSwgPT0sIDIpOworCisgICAgYXV0byBwID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2li
bGVfZ2V0X2NoaWxkX2F0X2luZGV4KGRvY3VtZW50V2ViLmdldCgpLCAwLCBudWxscHRyKSk7Cisg
ICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19URVhUKHAuZ2V0KCkpKTsKKyAgICBhdXRvIGxpbmsg
PSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRX
ZWIuZ2V0KCksIDEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQo
bGluay5nZXQoKSkpOworCisgICAgVW5pcXVlQXRzcGlUZXh0UmFuZ2UgcmFuZ2UoYXRzcGlfdGV4
dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKHAuZ2V0KCkpLCAwLCBBVFNQSV9URVhU
X0dSQU5VTEFSSVRZX1NFTlRFTkNFLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJh
bmdlLT5jb250ZW50LCA9PSwgIkEgcGFyYWdyYXBoIHdpdGggYSBsaW5rIGluIHRoZSBtaWRkbGUi
KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAg
IGdfYXNzZXJ0X2NtcGludChyYW5nZS0+ZW5kX29mZnNldCwgPT0sIDM4KTsKKworICAgIHJhbmdl
LnJlc2V0KGF0c3BpX3RleHRfZ2V0X3N0cmluZ19hdF9vZmZzZXQoQVRTUElfVEVYVChsaW5rLmdl
dCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxBUklUWV9TRU5URU5DRSwgbnVsbHB0cikpOworICAg
IGdfYXNzZXJ0X2NtcHN0cihyYW5nZS0+Y29udGVudCwgPT0sICJhIGxpbmsiKTsKKyAgICBnX2Fz
c2VydF9jbXBpbnQocmFuZ2UtPnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgIGdfYXNzZXJ0X2Nt
cGludChyYW5nZS0+ZW5kX29mZnNldCwgPT0sIDYpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7
CiAgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0eSIsICJhY2Nl
c3NpYmxlL2Jhc2ljLWhpZXJhcmNoeSIsIHRlc3RBY2Nlc3NpYmxlQmFzaWNIaWVyYXJjaHkpOwpA
QCAtMTYzNCw2ICsyMTE0LDE2IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBBY2Nlc3NpYmlsaXR5
VGVzdDo6YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgInRleHQvYXR0cmlidXRlcyIsIHRlc3RU
ZXh0QXR0cmlidXRlcyk7CiAgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNz
aWJpbGl0eSIsICJ0ZXh0L3N0YXRlLWNoYW5nZWQiLCB0ZXN0VGV4dFN0YXRlQ2hhbmdlZCk7CiAg
ICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0eSIsICJ0ZXh0L3Jl
cGxhY2VkLW9iamVjdHMiLCB0ZXN0VGV4dFJlcGxhY2VkT2JqZWN0cyk7CisKKyAgICBBY2Nlc3Np
YmlsaXR5VGVzdDo6YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgInRleHQvcmFuZ2UtY29tYm8t
Ym94IiwgdGVzdFRleHRGb3JSYW5nZUNvbWJvQm94KTsKKyAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6
YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgInRleHQvcmFuZ2UtZW1iZWRkZWQtb2JqZWN0cyIs
IHRlc3RUZXh0Rm9yUmFuZ2VFbWJlZGRlZE9iamVjdHMpOworICAgIEFjY2Vzc2liaWxpdHlUZXN0
OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAidGV4dC9yYW5nZS1lbnRyeS1hbmQtcGFzc3dv
cmQiLCB0ZXN0VGV4dEZvclJhbmdlRW50cnlBbmRQYXNzd29yZCk7CisgICAgQWNjZXNzaWJpbGl0
eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0eSIsICJ0ZXh0L3JhbmdlLWZvcm1hdHRlZCIs
IHRlc3RUZXh0Rm9yUmFuZ2VGb3JtYXR0ZWQpOworICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQo
IldlYktpdEFjY2Vzc2liaWxpdHkiLCAidGV4dC9yYW5nZS1oZWFkaW5nIiwgdGVzdFRleHRGb3JS
YW5nZUhlYWRpbmcpOworICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2li
aWxpdHkiLCAidGV4dC9yYW5nZS1saXN0LWl0ZW1zIiwgdGVzdFRleHRGb3JSYW5nZUxpc3RJdGVt
cyk7CisgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0eSIsICJ0
ZXh0L3JhbmdlLXNpbXBsZSIsIHRlc3RUZXh0Rm9yUmFuZ2VTaW1wbGUpOworICAgIEFjY2Vzc2li
aWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAidGV4dC9yYW5nZS10YWJsZS1j
ZWxscyIsIHRlc3RUZXh0Rm9yUmFuZ2VUYWJsZUNlbGxzKTsKKyAgICBBY2Nlc3NpYmlsaXR5VGVz
dDo6YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgInRleHQvcmFuZ2Utd2l0aC1saW5rIiwgdGVz
dFRleHRGb3JSYW5nZVdpdGhMaW5rKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2Fk
MmE0ZmQwOWFmMTI0ZTg3OWMwOTI5NTZlZWJhY2I0OWVjZjUxYi4uNTExZGM3MjQxNTY5OWQwOTY3
ZjkzNDgwMGRmZWQ4YTNjNzEzYzdiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTExLTE3
ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
UkVHUkVTU0lPTihyMjc0OTE5Pyk6IFNldmVyYWwgYWNjZXNzaWJpbGl0eSB0ZXN0cyBhcmUgZmFp
bGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIz
ODYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlICd0ZXh0LWZvci1yYW5nZScgbGF5b3V0LXRlc3RzIHNpbmNlIGFyZSBub3cgd3JpdHRlbiBh
cyBHVEsKKyAgICAgICAgQVBJIHRlc3RzLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsv
dGV4dC1mb3ItcmFuZ2UtY29tYm8tYm94LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1jb21iby1ib3guaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1lbWJlZGRlZC1v
YmplY3RzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0
ay90ZXh0LWZvci1yYW5nZS1lbWJlZGRlZC1vYmplY3RzLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtZW50cnktYW5kLXBhc3N3b3JkLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZv
ci1yYW5nZS1lbnRyeS1hbmQtcGFzc3dvcmQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1mb3JtYXR0ZWQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLWZvcm1hdHRl
ZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJh
bmdlLWhlYWRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvZ3RrL3RleHQtZm9yLXJhbmdlLWhlYWRpbmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1saXN0LWl0ZW1zLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1saXN0
LWl0ZW1zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1m
b3ItcmFuZ2Utc2ltcGxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1zaW1wbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS10YWJsZS1jZWxscy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Ut
dGFibGUtY2VsbHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay90
ZXh0LWZvci1yYW5nZS13aXRoLWxpbmstZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLXdpdGgtbGluay5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTExLTE3
ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgTnVsbCBjaGVjayBjbG9u
ZWRQYXJlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQt
Zm9yLXJhbmdlLWNvbWJvLWJveC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2d0ay90ZXh0LWZvci1yYW5nZS1jb21iby1ib3gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3ZjQ0M2Y0OGFlOWMzMzE4NzhiZTU3ZDI3MjcxZjNkOTBiYjMz
NjMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLWNvbWJvLWJveC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0KLVRoaXMgdGVzdHMgdGhlIGFi
aWxpdHkgdG8gZ2V0IGVsZW1lbnQgdGV4dCBmb3IgYSBzcGVjaWZpZWQgcmFuZ2UuCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNvbWJvYm94LnN0cmluZ0ZvclJhbmdlKDAs
IC0xKSBpcyAnJwotUEFTUyBwb3B1cC5zdHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJycKLVBBU1Mg
b3B0aW9uLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSBpcyAnQW4gb3B0aW9uIGluIGEgY29tYm8gYm94
JwotUEFTUyBjb21ib2JveC5zdHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJycKLVBBU1MgcG9wdXAu
c3RyaW5nRm9yUmFuZ2UoMCwgLTEpIGlzICcnCi1QQVNTIG9wdGlvbi5zdHJpbmdGb3JSYW5nZSgw
LCAtMSkgaXMgJ2ZvbycKLVBBU1Mgb3B0aW9uLnN0cmluZ0ZvclJhbmdlKDAsIDIpIGlzICdmbycK
LVBBU1Mgb3B0aW9uLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSBpcyAnYmFyJwotUEFTUyBvcHRpb24u
c3RyaW5nRm9yUmFuZ2UoMSwgMykgaXMgJ2FyJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLWNvbWJvLWJveC5odG1sIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtY29tYm8tYm94Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQxZDEyNmE1ZjQyNDg4ZDE0N2NhZTc3ZWVlNTA4MjkwMjA3MDVl
NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtY29tYm8tYm94Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9k
eSI+Ci08c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQgdmFsdWU9J2Zvbyc+QW4gb3B0aW9uIGluIGEg
Y29tYm8gYm94PC9vcHRpb24+PC9zZWxlY3Q+Ci08c2VsZWN0PjxvcHRpb24gc2VsZWN0ZWQgdmFs
dWU9J2Zvbyc+Zm9vPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nYmFyJz5iYXI8L29wdGlvbj48L3Nl
bGVjdD4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08c2NyaXB0PgotICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGdl
dCBlbGVtZW50IHRleHQgZm9yIGEgc3BlY2lmaWVkIHJhbmdlLiIpOwotICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImJvZHkiKS5mb2N1cygpOwotICAgICAgICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwotICAgICAgICB2YXIgcGFuZWwgPSB3ZWJBcmVhLmNo
aWxkQXRJbmRleCgwKTsKLQotICAgICAgICB2YXIgY29tYm9ib3ggPSBwYW5lbC5jaGlsZEF0SW5k
ZXgoMCk7Ci0gICAgICAgIHZhciBwb3B1cCA9IGNvbWJvYm94LmNoaWxkQXRJbmRleCgwKTsKLSAg
ICAgICAgdmFyIG9wdGlvbiA9IHBvcHVwLmNoaWxkQXRJbmRleCgwKTsKLQotICAgICAgICBzaG91
bGRCZSgiY29tYm9ib3guc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIicnIik7Ci0gICAgICAgIHNo
b3VsZEJlKCJwb3B1cC5zdHJpbmdGb3JSYW5nZSgwLCAtMSkiLCAiJyciKTsKLSAgICAgICAgc2hv
dWxkQmUoIm9wdGlvbi5zdHJpbmdGb3JSYW5nZSgwLCAtMSkiLCAiJ0FuIG9wdGlvbiBpbiBhIGNv
bWJvIGJveCciKTsKLQotICAgICAgICBjb21ib2JveCA9IHBhbmVsLmNoaWxkQXRJbmRleCgxKTsK
LSAgICAgICAgcG9wdXAgPSBjb21ib2JveC5jaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgIG9wdGlv
biA9IHBvcHVwLmNoaWxkQXRJbmRleCgwKTsKLQotICAgICAgICBzaG91bGRCZSgiY29tYm9ib3gu
c3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIicnIik7Ci0gICAgICAgIHNob3VsZEJlKCJwb3B1cC5z
dHJpbmdGb3JSYW5nZSgwLCAtMSkiLCAiJyciKTsKLSAgICAgICAgc2hvdWxkQmUoIm9wdGlvbi5z
dHJpbmdGb3JSYW5nZSgwLCAtMSkiLCAiJ2ZvbyciKTsKLSAgICAgICAgc2hvdWxkQmUoIm9wdGlv
bi5zdHJpbmdGb3JSYW5nZSgwLCAyKSIsICInZm8nIik7Ci0KLSAgICAgICAgb3B0aW9uID0gcG9w
dXAuY2hpbGRBdEluZGV4KDEpOwotICAgICAgICBzaG91bGRCZSgib3B0aW9uLnN0cmluZ0ZvclJh
bmdlKDAsIC0xKSIsICInYmFyJyIpOwotICAgICAgICBzaG91bGRCZSgib3B0aW9uLnN0cmluZ0Zv
clJhbmdlKDEsIDMpIiwgIidhciciKTsKLSAgICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJh
bmdlLWVtYmVkZGVkLW9iamVjdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtZW1iZWRkZWQtb2JqZWN0cy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMzgyOTA2ZmNhYmMwZTM3ZjU1OGExZDkwYTdk
ZjQ0ZTM4ODlmZTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtZW1iZWRkZWQt
b2JqZWN0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1DaG9v
c2U6IGZvbyBiYXIgKHBpY2sgb25lKQotCi1DaG9vc2U6ICAocGljayBvbmUpCi0KLQotCi1UaGlz
IHRlc3RzIHRoZSBhYmlsaXR5IHRvIGdldCBlbGVtZW50IHRleHQgZm9yIGEgc3BlY2lmaWVkIHJh
bmdlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBwYXJhZ3JhcGgxLnN0
cmluZ0ZvclJhbmdlKDAsIC0xKSBpcyAnQ2hvb3NlOiDDr8K/wrxmb28gw6/Cv8K8YmFyIChwaWNr
IG9uZSknCi1QQVNTIHBhcmFncmFwaDIuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIGlzICdDaG9vc2U6
IMOvwr/CvCAocGljayBvbmUpJwotUEFTUyBwYXJhZ3JhcGgzLnN0cmluZ0ZvclJhbmdlKDAsIC0x
KSBpcyAnw6/Cv8K8JwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQt
Zm9yLXJhbmdlLWVtYmVkZGVkLW9iamVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvZ3RrL3RleHQtZm9yLXJhbmdlLWVtYmVkZGVkLW9iamVjdHMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMThmNjI3ODJhYzE4ZTM3ZGI1M2JhNWVlZDViNjliODg1Y2FhMzcy
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1lbWJlZGRlZC1vYmplY3RzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBp
ZD0iYm9keSI+Ci0gIDxwPkNob29zZTogPGlucHV0IHZhbHVlPSdmb28nIHR5cGU9J2NoZWNrYm94
Jy8+Zm9vIDxpbnB1dCB2YWx1ZT0nYmFyJyB0eXBlPSdjaGVja2JveCcvPmJhciAocGljayBvbmUp
PC9wPgotICA8cD5DaG9vc2U6IDxzZWxlY3QgbmFtZT0nZm9vJz48b3B0aW9uPmJhcjwvb3B0aW9u
PjxvcHRpb24+YmF6PC9vcHRpb24+PC9zZWxlY3Q+IChwaWNrIG9uZSk8L3A+Ci0gIDxwPjxpbnB1
dCBuYW1lPSdmb29iYXJidXR0b24nIHZhbHVlPSdmb29iYXInIHR5cGU9J2J1dHRvbicvPjwvcD4K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGdldCBlbGVt
ZW50IHRleHQgZm9yIGEgc3BlY2lmaWVkIHJhbmdlLiIpOwotICAgIGlmICh3aW5kb3cuYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJv
ZHkiKS5mb2N1cygpOwotICAgICAgICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmZvY3VzZWRFbGVtZW50OwotCi0gICAgICAgIHZhciBwYXJhZ3JhcGgxID0gd2ViQXJlYS5j
aGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgIHZhciBwYXJhZ3JhcGgyID0gd2ViQXJlYS5jaGlsZEF0
SW5kZXgoMSk7Ci0gICAgICAgIHZhciBwYXJhZ3JhcGgzID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgo
Mik7Ci0gICAgICAgIHNob3VsZEJlKCJwYXJhZ3JhcGgxLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSIs
ICInQ2hvb3NlOiBcMzU3XDI3N1wyNzRmb28gXDM1N1wyNzdcMjc0YmFyIChwaWNrIG9uZSknIik7
Ci0gICAgICAgIHNob3VsZEJlKCJwYXJhZ3JhcGgyLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSIsICIn
Q2hvb3NlOiBcMzU3XDI3N1wyNzQgKHBpY2sgb25lKSciKTsKLSAgICAgICAgc2hvdWxkQmUoInBh
cmFncmFwaDMuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIidcMzU3XDI3N1wyNzQnIik7Ci0gICAg
fQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1lbnRyeS1hbmQtcGFzc3dvcmQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtZW50
cnktYW5kLXBhc3N3b3JkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTM1ODg0OTUwNjlkMmNiZWEzYWMxZTZmNGE0NWM1MmVjOGZjMWMyMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2d0ay90ZXh0LWZvci1yYW5nZS1lbnRyeS1hbmQtcGFzc3dvcmQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotCi1UaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRv
IGdldCBlbGVtZW50IHRleHQgZm9yIGEgc3BlY2lmaWVkIHJhbmdlLgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotUEFTUyBlbnRyeS5zdHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJ2Zv
byBiYXIgYmF6JwotUEFTUyBwYXNzd29yZC5zdHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJ8OiwoDC
osOiwoDCosOiwoDCosOiwoDCosOiwoDCosOiwoDCosOiwoDCosOiwoDCosOiwoDCosOiwoDCosOi
woDCoicKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5n
ZS1lbnRyeS1hbmQtcGFzc3dvcmQuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3Rr
L3RleHQtZm9yLXJhbmdlLWVudHJ5LWFuZC1wYXNzd29yZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3MjA4ODNkM2JlMzAyZDlmZTIwYjVlNGEzYjMwZGNmYjVlNjA4NTRmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLWVudHJ5LWFuZC1wYXNzd29yZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgaWQ9
ImJvZHkiPgotPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2ZvbycgdmFsdWU9J2ZvbyBiYXIgYmF6
JyAvPgotPGlucHV0IHR5cGU9J3Bhc3N3b3JkJyBuYW1lPSdiYXInIHZhbHVlPSdmb28gYmFyIGJh
eicgLz4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci08c2NyaXB0PgotICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGdl
dCBlbGVtZW50IHRleHQgZm9yIGEgc3BlY2lmaWVkIHJhbmdlLiIpOwotICAgIGlmICh3aW5kb3cu
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImJvZHkiKS5mb2N1cygpOwotICAgICAgICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmZvY3VzZWRFbGVtZW50OwotICAgICAgICB2YXIgcGFuZWwgPSB3ZWJBcmVhLmNo
aWxkQXRJbmRleCgwKTsKLSAgICAgICAgdmFyIGVudHJ5ID0gcGFuZWwuY2hpbGRBdEluZGV4KDAp
OwotICAgICAgICB2YXIgcGFzc3dvcmQgPSBwYW5lbC5jaGlsZEF0SW5kZXgoMSk7Ci0gICAgICAg
IHNob3VsZEJlKCJlbnRyeS5zdHJpbmdGb3JSYW5nZSgwLCAtMSkiLCAiJ2ZvbyBiYXIgYmF6JyIp
OwotICAgICAgICBzaG91bGRCZSgicGFzc3dvcmQuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIidc
MzQyXDIwMFwyNDJcMzQyXDIwMFwyNDJcMzQyXDIwMFwyNDJcMzQyXDIwMFwyNDJcMzQyXDIwMFwy
NDJcMzQyXDIwMFwyNDJcMzQyXDIwMFwyNDJcMzQyXDIwMFwyNDJcMzQyXDIwMFwyNDJcMzQyXDIw
MFwyNDJcMzQyXDIwMFwyNDInIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5n
ZS1mb3JtYXR0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsv
dGV4dC1mb3ItcmFuZ2UtZm9ybWF0dGVkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2FiY2MzYzBjZmRlMGQ0NzM2NWFjOWU2YzkyYTRjNGU4ZjQ1OGIwMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1mb3JtYXR0ZWQtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBpcyBhIHRlc3QuCi0KLUhlbGxvIHdv
cmxkLgotVGhpcyBzZW50ZW5jZSBpcyBncmVlbi4KLVRoaXMgb25lIGlzIG5vdC4KLVRoaXMgdGVz
dHMgdGhlIGFiaWxpdHkgdG8gZ2V0IGVsZW1lbnQgdGV4dCBmb3IgYSBzcGVjaWZpZWQgcmFuZ2Uu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHBhcmFncmFwaC5zdHJpbmdG
b3JSYW5nZSgwLCAtMSkgaXMgJ1RoaXMgaXMgYSB0ZXN0LicKLVBBU1MgYmxvY2suc3RyaW5nRm9y
UmFuZ2UoMCwgNTMpIGlzICdIZWxsbyB3b3JsZC5cblRoaXMgc2VudGVuY2UgaXMgZ3JlZW4uXG5U
aGlzIG9uZSBpcyBub3QuJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3Rl
eHQtZm9yLXJhbmdlLWZvcm1hdHRlZC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9n
dGsvdGV4dC1mb3ItcmFuZ2UtZm9ybWF0dGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFjMTNiODVhZjc4YTlhZTU1MzY0MmM4Yzg4ZWYxYzZhMGRjY2FjYjIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtZm9ybWF0dGVkLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Ci08cCBpZD0i
Y29udGVudCI+VGhpcyBpcyBhIHRlc3QuPC9wPkhlbGxvIHdvcmxkLjxiciAvPjxmb250IGNvbG9y
PScjMDBjYzAwJz5UaGlzIHNlbnRlbmNlIGlzIGdyZWVuLjwvZm9udD48YnIgLz5UaGlzIG9uZSBp
cyBub3QuCi08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBn
ZXQgZWxlbWVudCB0ZXh0IGZvciBhIHNwZWNpZmllZCByYW5nZS4iKTsKLSAgICBpZiAod2luZG93
LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJib2R5IikuZm9jdXMoKTsKLSAgICAgICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKLSAgICAgICAgdmFyIHBhcmFncmFwaCA9IHdlYkFy
ZWEuY2hpbGRBdEluZGV4KDApOwotICAgICAgICB2YXIgYmxvY2sgPSB3ZWJBcmVhLmNoaWxkQXRJ
bmRleCgxKTsKLSAgICAgICAgc2hvdWxkQmUoInBhcmFncmFwaC5zdHJpbmdGb3JSYW5nZSgwLCAt
MSkiLCAiJ1RoaXMgaXMgYSB0ZXN0LiciKTsKLSAgICAgICAgc2hvdWxkQmUoImJsb2NrLnN0cmlu
Z0ZvclJhbmdlKDAsIDUzKSIsICInSGVsbG8gd29ybGQuXFxuVGhpcyBzZW50ZW5jZSBpcyBncmVl
bi5cXG5UaGlzIG9uZSBpcyBub3QuJyIpOwotICAgIH0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3It
cmFuZ2UtaGVhZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0
ay90ZXh0LWZvci1yYW5nZS1oZWFkaW5nLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggY2QyOGU2M2M0MjBjNDk4YzFlYmQ1YTIyMzQ1N2RkMzEyYjgzOTdkNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1oZWFkaW5nLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLUEgdGV4dCBoZWFkZXIKLQotQmxvY2sgc3BhbiBp
biBhIGxpbmsgaW4gYSBoZWFkaW5nCi1JbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBoZWFkaW5n
Ci0KLUJsb2NrIHNwYW4gaW4gYSBoZWFkaW5nCi1JbmxpbmUgc3BhbiBpbiBhIGhlYWRpbmcKLQot
VGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBnZXQgZWxlbWVudCB0ZXh0IGZvciBhIHNwZWNpZmll
ZCByYW5nZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgaGVhZGluZzEu
c3RyaW5nRm9yUmFuZ2UoMCwgLTEpIGlzICdBIHRleHQgaGVhZGVyJwotUEFTUyBoZWFkaW5nMi5z
dHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJ0Jsb2NrIHNwYW4gaW4gYSBsaW5rIGluIGEgaGVhZGlu
Z1xuSW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgaGVhZGluZycKLVBBU1MgaGVhZGluZzMuc3Ry
aW5nRm9yUmFuZ2UoMCwgLTEpIGlzICdCbG9jayBzcGFuIGluIGEgaGVhZGluZ1xuSW5saW5lIHNw
YW4gaW4gYSBoZWFkaW5nJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3Rl
eHQtZm9yLXJhbmdlLWhlYWRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3Rr
L3RleHQtZm9yLXJhbmdlLWhlYWRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzRhNDc3MjhjMDIyNWYxZjE3ZTM5Y2ZlMWIzM2EwY2EyMTQ5NzlkNS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2d0ay90ZXh0LWZvci1yYW5nZS1oZWFkaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
OCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Ci08aDE+QSB0ZXh0IGhl
YWRlcjwvaDE+Ci08aDQ+PGEgaHJlZj0nZm9vJz48c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jazsn
PkJsb2NrIHNwYW4gaW4gYSBsaW5rIGluIGEgaGVhZGluZzwvc3Bhbj48c3Bhbj5JbmxpbmUgc3Bh
biBpbiBhIGxpbmsgaW4gYSBoZWFkaW5nPC9zcGFuPjwvYT48L2g0PgotPGg0PjxzcGFuIHN0eWxl
PSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBhIGhlYWRpbmc8L3NwYW4+PHNwYW4+SW5s
aW5lIHNwYW4gaW4gYSBoZWFkaW5nPC9zcGFuPjwvaDQ+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBnZXQgZWxlbWVudCB0ZXh0IGZvciBhIHNwZWNpZmll
ZCByYW5nZS4iKTsKLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuZm9jdXMoKTsKLSAgICAgICAg
dmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKLQot
ICAgICAgICB2YXIgaGVhZGluZzEgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCgwKTsKLSAgICAgICAg
dmFyIGhlYWRpbmcyID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMSk7Ci0gICAgICAgIHZhciBoZWFk
aW5nMyA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDIpOwotICAgICAgICBzaG91bGRCZSgiaGVhZGlu
ZzEuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIidBIHRleHQgaGVhZGVyJyIpOwotICAgICAgICBz
aG91bGRCZSgiaGVhZGluZzIuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIidCbG9jayBzcGFuIGlu
IGEgbGluayBpbiBhIGhlYWRpbmdcXG5JbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBoZWFkaW5n
JyIpOwotICAgICAgICBzaG91bGRCZSgiaGVhZGluZzMuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwg
IidCbG9jayBzcGFuIGluIGEgaGVhZGluZ1xcbklubGluZSBzcGFuIGluIGEgaGVhZGluZyciKTsK
LSAgICB9Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLWxpc3QtaXRlbXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtbGlzdC1p
dGVtcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxNTIwOWYy
NzMzMmI2YjcxZjEzMWI1YmI5NDBiNmQ1ODFlZjZlZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4
dC1mb3ItcmFuZ2UtbGlzdC1pdGVtcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
OSArMCwwIEBACi1BIGxpc3QgaXRlbQotQmxvY2sgc3BhbiBpbiBhIGxpc3QgaXRlbQotSW5saW5l
IHNwYW4gaW4gYSBsaXN0IGl0ZW0KLUJsb2NrIHNwYW4gaW4gYSBsaW5rIGluIGEgbGlzdCBpdGVt
Ci1JbmxpbmUgc3BhbiBpbiBhIGxpbmsgaW4gYSBsaXN0IGl0ZW0KLXRleHQgb25seQotbGluayBv
bmx5Ci10ZXh0IGFuZCBhIGxpbmsKLXRleHQgb25seQotbGluayBvbmx5Ci10ZXh0IGFuZCBhIGxp
bmsKLVRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgdG8gZ2V0IGVsZW1lbnQgdGV4dCBmb3IgYSBzcGVj
aWZpZWQgcmFuZ2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGxpc3Rp
dGVtMS5zdHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJzEuIEEgbGlzdCBpdGVtJwotUEFTUyBsaXN0
aXRlbTIuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIGlzICcyLiBCbG9jayBzcGFuIGluIGEgbGlzdCBp
dGVtXG5JbmxpbmUgc3BhbiBpbiBhIGxpc3QgaXRlbScKLVBBU1MgbGlzdGl0ZW0zLnN0cmluZ0Zv
clJhbmdlKDAsIC0xKSBpcyAnMy4gQmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSBsaXN0IGl0ZW1c
bklubGluZSBzcGFuIGluIGEgbGluayBpbiBhIGxpc3QgaXRlbScKLVBBU1MgbGlzdGl0ZW0xLnN0
cmluZ0ZvclJhbmdlKDAsIC0xKSBpcyAnw6LCgMKiIHRleHQgb25seScKLVBBU1MgbGlzdGl0ZW0y
LnN0cmluZ0ZvclJhbmdlKDAsIC0xKSBpcyAnw6LCgMKiIGxpbmsgb25seScKLVBBU1MgbGlzdGl0
ZW0zLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSBpcyAnw6LCgMKiIHRleHQgYW5kIGEgbGluaycKLVBB
U1MgbGlzdGl0ZW0xLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSBpcyAnMS4gdGV4dCBvbmx5JwotUEFT
UyBsaXN0aXRlbTIuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIGlzICcyLiBsaW5rIG9ubHknCi1QQVNT
IGxpc3RpdGVtMy5zdHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJzMuIHRleHQgYW5kIGEgbGluaycK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1saXN0
LWl0ZW1zLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5n
ZS1saXN0LWl0ZW1zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ODlmOGJh
ZDgxMWM4YWZkNzE1MTc4MTdhODM4YjlhYzk2MWIwNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4
dC1mb3ItcmFuZ2UtbGlzdC1pdGVtcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBA
QAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgaWQ9ImJvZHkiPgotPG9sPgotPGxpPkEgbGlzdCBpdGVt
PC9saT4KLTxsaT48c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jazsnPkJsb2NrIHNwYW4gaW4gYSBs
aXN0IGl0ZW08L3NwYW4+PHNwYW4+SW5saW5lIHNwYW4gaW4gYSBsaXN0IGl0ZW08L3NwYW4+PC9s
aT4KLTxsaT48YSBocmVmPSdmb28nPjxzcGFuIHN0eWxlPSdkaXNwbGF5OmJsb2NrOyc+QmxvY2sg
c3BhbiBpbiBhIGxpbmsgaW4gYSBsaXN0IGl0ZW08L3NwYW4+PHNwYW4+SW5saW5lIHNwYW4gaW4g
YSBsaW5rIGluIGEgbGlzdCBpdGVtPC9zcGFuPjwvYT48L2xpPgotPC9vbD4KLTx1bD48bGk+dGV4
dCBvbmx5PC9saT48bGk+PGEgaHJlZj0nZm9vJz5saW5rIG9ubHk8L2E+PC9saT48bGk+dGV4dCBh
bmQgYSA8YSBocmVmPSdiYXInPmxpbms8L2E+PC9saT48L3VsPgotPG9sPjxsaT50ZXh0IG9ubHk8
L2xpPjxsaT48YSBocmVmPSdmb28nPmxpbmsgb25seTwvYT48L2xpPjxsaT50ZXh0IGFuZCBhIDxh
IGhyZWY9J2Jhcic+bGluazwvYT48L2xpPjwvb2w+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBnZXQgZWxlbWVudCB0ZXh0IGZvciBhIHNwZWNpZmllZCBy
YW5nZS4iKTsKLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Ci0gICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuZm9jdXMoKTsKLSAgICAgICAgdmFy
IHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKLQotICAg
ICAgICB2YXIgbGlzdCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDApOwotICAgICAgICB2YXIgbGlz
dGl0ZW0xID0gbGlzdC5jaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgIHZhciBsaXN0aXRlbTIgPSBs
aXN0LmNoaWxkQXRJbmRleCgxKTsKLSAgICAgICAgdmFyIGxpc3RpdGVtMyA9IGxpc3QuY2hpbGRB
dEluZGV4KDIpOwotICAgICAgICBzaG91bGRCZSgibGlzdGl0ZW0xLnN0cmluZ0ZvclJhbmdlKDAs
IC0xKSIsICInMS4gQSBsaXN0IGl0ZW0nIik7Ci0gICAgICAgIHNob3VsZEJlKCJsaXN0aXRlbTIu
c3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIicyLiBCbG9jayBzcGFuIGluIGEgbGlzdCBpdGVtXFxu
SW5saW5lIHNwYW4gaW4gYSBsaXN0IGl0ZW0nIik7Ci0gICAgICAgIHNob3VsZEJlKCJsaXN0aXRl
bTMuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIiczLiBCbG9jayBzcGFuIGluIGEgbGluayBpbiBh
IGxpc3QgaXRlbVxcbklubGluZSBzcGFuIGluIGEgbGluayBpbiBhIGxpc3QgaXRlbSciKTsKLQot
ICAgICAgICBsaXN0ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMSk7Ci0gICAgICAgIGxpc3RpdGVt
MSA9IGxpc3QuY2hpbGRBdEluZGV4KDApOwotICAgICAgICBsaXN0aXRlbTIgPSBsaXN0LmNoaWxk
QXRJbmRleCgxKTsKLSAgICAgICAgbGlzdGl0ZW0zID0gbGlzdC5jaGlsZEF0SW5kZXgoMik7Ci0g
ICAgICAgIHNob3VsZEJlKCJsaXN0aXRlbTEuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIiwgIidcMzQy
XDIwMFwyNDIgdGV4dCBvbmx5JyIpOwotICAgICAgICBzaG91bGRCZSgibGlzdGl0ZW0yLnN0cmlu
Z0ZvclJhbmdlKDAsIC0xKSIsICInXDM0MlwyMDBcMjQyIGxpbmsgb25seSciKTsKLSAgICAgICAg
c2hvdWxkQmUoImxpc3RpdGVtMy5zdHJpbmdGb3JSYW5nZSgwLCAtMSkiLCAiJ1wzNDJcMjAwXDI0
MiB0ZXh0IGFuZCBhIGxpbmsnIik7Ci0KLSAgICAgICAgbGlzdCA9IHdlYkFyZWEuY2hpbGRBdElu
ZGV4KDIpOwotICAgICAgICBsaXN0aXRlbTEgPSBsaXN0LmNoaWxkQXRJbmRleCgwKTsKLSAgICAg
ICAgbGlzdGl0ZW0yID0gbGlzdC5jaGlsZEF0SW5kZXgoMSk7Ci0gICAgICAgIGxpc3RpdGVtMyA9
IGxpc3QuY2hpbGRBdEluZGV4KDIpOwotICAgICAgICBzaG91bGRCZSgibGlzdGl0ZW0xLnN0cmlu
Z0ZvclJhbmdlKDAsIC0xKSIsICInMS4gdGV4dCBvbmx5JyIpOwotICAgICAgICBzaG91bGRCZSgi
bGlzdGl0ZW0yLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSIsICInMi4gbGluayBvbmx5JyIpOwotICAg
ICAgICBzaG91bGRCZSgibGlzdGl0ZW0zLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSIsICInMy4gdGV4
dCBhbmQgYSBsaW5rJyIpOwotICAgIH0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Utc2lt
cGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9y
LXJhbmdlLXNpbXBsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGI2N2M5MjE3YjJiZTZkNDdlOTVhNmU0Y2UzNmIyYzllODgxNTFlNDguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9ndGsvdGV4dC1mb3ItcmFuZ2Utc2ltcGxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE0ICswLDAgQEAKLVRoaXMgaXMgYSB0ZXN0LgotCi1IZWxsbyB3b3JsZC4KLVRoaXMgdGVz
dHMgdGhlIGFiaWxpdHkgdG8gZ2V0IGVsZW1lbnQgdGV4dCBmb3IgYSBzcGVjaWZpZWQgcmFuZ2Uu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHBhcmFncmFwaC5zdHJpbmdG
b3JSYW5nZSgwLCAtMSkgaXMgJ1RoaXMgaXMgYSB0ZXN0LicKLVBBU1MgYmxvY2suc3RyaW5nRm9y
UmFuZ2UoMCwgMTIpIGlzICdIZWxsbyB3b3JsZC4nCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Utc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1zaW1wbGUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMjVmODE2ZDM1NGQ3NGJlY2JhYzE0MmU0ZjBiMzY4YmE0OTIwNmUwZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1zaW1wbGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDIzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IGlkPSJib2R5Ij4KLTxw
IGlkPSJjb250ZW50Ij5UaGlzIGlzIGEgdGVzdC48L3A+SGVsbG8gd29ybGQuCi08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLSAgICBk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgYWJpbGl0eSB0byBnZXQgZWxlbWVudCB0ZXh0IGZv
ciBhIHNwZWNpZmllZCByYW5nZS4iKTsKLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuZm9jdXMo
KTsKLSAgICAgICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2Vk
RWxlbWVudDsKLSAgICAgICAgdmFyIHBhcmFncmFwaCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDAp
OwotICAgICAgICB2YXIgYmxvY2sgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCgxKTsKLSAgICAgICAg
c2hvdWxkQmUoInBhcmFncmFwaC5zdHJpbmdGb3JSYW5nZSgwLCAtMSkiLCAiJ1RoaXMgaXMgYSB0
ZXN0LiciKTsKLSAgICAgICAgc2hvdWxkQmUoImJsb2NrLnN0cmluZ0ZvclJhbmdlKDAsIDEyKSIs
ICInSGVsbG8gd29ybGQuJyIpOwotICAgIH0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Ut
dGFibGUtY2VsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsv
dGV4dC1mb3ItcmFuZ2UtdGFibGUtY2VsbHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmZDIxZDdlZGZmNzEyN2VkYWU2NTFjODQ0OTZiODY0Y2M5OTNiMWUxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLXRhYmxlLWNlbGxzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLWEgdGFibGUgY2VsbAkJCi1CbG9jayBz
cGFuIGluIGEgbGluayBpbiBhIHRhYmxlIGNlbGwKLUlubGluZSBzcGFuIGluIGEgbGluayBpbiBh
IHRhYmxlIGNlbGwJCi1CbG9jayBzcGFuIGluIGEgdGFibGUgY2VsbAotSW5saW5lIHNwYW4gaW4g
YSB0YWJsZSBjZWxsCi1UaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGdldCBlbGVtZW50IHRleHQg
Zm9yIGEgc3BlY2lmaWVkIHJhbmdlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBjZWxsMS5zdHJpbmdGb3JSYW5nZSgwLCAtMSkgaXMgJ2EgdGFibGUgY2VsbCcKLVBBU1Mg
Y2VsbDIuc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIGlzICcnCi1QQVNTIGNlbGwzLnN0cmluZ0ZvclJh
bmdlKDAsIC0xKSBpcyAnQmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSB0YWJsZSBjZWxsXG5Jbmxp
bmUgc3BhbiBpbiBhIGxpbmsgaW4gYSB0YWJsZSBjZWxsJwotUEFTUyBjZWxsNC5zdHJpbmdGb3JS
YW5nZSgwLCAtMSkgaXMgJ0Jsb2NrIHNwYW4gaW4gYSB0YWJsZSBjZWxsXG5JbmxpbmUgc3BhbiBp
biBhIHRhYmxlIGNlbGwnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4
dC1mb3ItcmFuZ2UtdGFibGUtY2VsbHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
Z3RrL3RleHQtZm9yLXJhbmdlLXRhYmxlLWNlbGxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNiMWIwNWE3N2JjNDk3NGJiZjAyZmM3YzE4OTMwYjcyMTFkZmQ5MzAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtdGFibGUtY2VsbHMuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDM1ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IGlkPSJib2R5Ij4KLTx0
YWJsZSBib3JkZXI9MT4KLTx0cj4KLTx0ZD5hIHRhYmxlIGNlbGw8L3RkPgotPHRkPjwvdGQ+Ci08
dGQ+PGEgaHJlZj0nZm9vJz48c3BhbiBzdHlsZT0nZGlzcGxheTpibG9jazsnPkJsb2NrIHNwYW4g
aW4gYSBsaW5rIGluIGEgdGFibGUgY2VsbDwvc3Bhbj48c3Bhbj5JbmxpbmUgc3BhbiBpbiBhIGxp
bmsgaW4gYSB0YWJsZSBjZWxsPC9zcGFuPjwvYT48L3RkPgotPHRkPjxzcGFuIHN0eWxlPSdkaXNw
bGF5OmJsb2NrOyc+QmxvY2sgc3BhbiBpbiBhIHRhYmxlIGNlbGw8L3NwYW4+PHNwYW4+SW5saW5l
IHNwYW4gaW4gYSB0YWJsZSBjZWxsPC9zcGFuPjwvdGQ+Ci08L3RyPgotPC90YWJsZT4KLTxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0Pgot
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGdldCBlbGVtZW50IHRl
eHQgZm9yIGEgc3BlY2lmaWVkIHJhbmdlLiIpOwotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKS5m
b2N1cygpOwotICAgICAgICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50OwotICAgICAgICB2YXIgcm93ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMCku
Y2hpbGRBdEluZGV4KDApOwotICAgICAgICB2YXIgY2VsbDEgPSByb3cuY2hpbGRBdEluZGV4KDAp
OwotICAgICAgICB2YXIgY2VsbDIgPSByb3cuY2hpbGRBdEluZGV4KDEpOwotICAgICAgICB2YXIg
Y2VsbDMgPSByb3cuY2hpbGRBdEluZGV4KDIpOwotICAgICAgICB2YXIgY2VsbDQgPSByb3cuY2hp
bGRBdEluZGV4KDMpOwotICAgICAgICBzaG91bGRCZSgiY2VsbDEuc3RyaW5nRm9yUmFuZ2UoMCwg
LTEpIiwgIidhIHRhYmxlIGNlbGwnIik7Ci0gICAgICAgIHNob3VsZEJlKCJjZWxsMi5zdHJpbmdG
b3JSYW5nZSgwLCAtMSkiLCAiJyciKTsKLSAgICAgICAgc2hvdWxkQmUoImNlbGwzLnN0cmluZ0Zv
clJhbmdlKDAsIC0xKSIsICInQmxvY2sgc3BhbiBpbiBhIGxpbmsgaW4gYSB0YWJsZSBjZWxsXFxu
SW5saW5lIHNwYW4gaW4gYSBsaW5rIGluIGEgdGFibGUgY2VsbCciKTsKLSAgICAgICAgc2hvdWxk
QmUoImNlbGw0LnN0cmluZ0ZvclJhbmdlKDAsIC0xKSIsICInQmxvY2sgc3BhbiBpbiBhIHRhYmxl
IGNlbGxcXG5JbmxpbmUgc3BhbiBpbiBhIHRhYmxlIGNlbGwnIik7Ci0gICAgfQotPC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2d0ay90ZXh0LWZvci1yYW5nZS13aXRoLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Utd2l0aC1saW5rLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc0MmVkN2M2ZmJlMmMxOGIyYzZjMDdlY2Y1
MTdmYzkzMDBiZGUyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS13aXRoLWxp
bmstZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotQSBwYXJhZ3Jh
cGggd2l0aCBhIGxpbmsgaW4gdGhlIG1pZGRsZQotCi1UaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRv
IGdldCBlbGVtZW50IHRleHQgZm9yIGEgc3BlY2lmaWVkIHJhbmdlLgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotUEFTUyBwYXJhZ3JhcGguc3RyaW5nRm9yUmFuZ2UoMCwgLTEpIGlz
ICdBIHBhcmFncmFwaCB3aXRoIGEgbGluayBpbiB0aGUgbWlkZGxlJwotUEFTUyBsaW5rLnN0cmlu
Z0ZvclJhbmdlKDAsIC0xKSBpcyAnYSBsaW5rJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLXdpdGgtbGluay5odG1sIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Utd2l0aC1saW5rLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGYzMjdiNjE1MmJiNjFiYTFlZWU5YzA4ZWM5ZDU2MzQ4YzI3NTZh
NTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Utd2l0aC1saW5rLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9k
eSI+Ci08cCBpZD0iY29udGVudCI+QSBwYXJhZ3JhcGggd2l0aCA8YSBocmVmPSdodHRwOi8vd2Vi
a2l0Lm9yZyc+YSBsaW5rPC9hPiBpbiB0aGUgbWlkZGxlPC9wPgotPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgdG8gZ2V0IGVsZW1lbnQgdGV4dCBmb3IgYSBzcGVj
aWZpZWQgcmFuZ2UuIik7Ci0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikg
ewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7Ci0gICAg
ICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7
Ci0KLSAgICAgICAgdmFyIHBhcmFncmFwaCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDApOwotICAg
ICAgICBzaG91bGRCZSgicGFyYWdyYXBoLnN0cmluZ0ZvclJhbmdlKDAsIC0xKSIsICInQSBwYXJh
Z3JhcGggd2l0aCBhIGxpbmsgaW4gdGhlIG1pZGRsZSciKTsKLQotICAgICAgICB2YXIgbGluayA9
IHBhcmFncmFwaC5jaGlsZEF0SW5kZXgoMCk7Ci0gICAgICAgIHNob3VsZEJlKCJsaW5rLnN0cmlu
Z0ZvclJhbmdlKDAsIC0xKSIsICInYSBsaW5rJyIpOwotICAgIH0KLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAyOGQ0MDBkZDYzNjcyOWVlODllN2U1MmFmYzYyOGNjYzg3ZDg4NjA1Li4zZTRhMWUzODQzY2I0
MjFlMTRhZjA3MWFkNTIwNDY4Y2IyMTBhOTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIzLDE4ICsxMjMsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10
YWludAogIyBhc2sgZm9yIHRyaWFnaW5nLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCi0jIEFjY2Vzc2liaWxpdHkKLXdlYmtpdC5vcmcvYi8yMTQzNDEgWyBEZWJ1ZyBdIGFj
Y2Vzc2liaWxpdHkvZGF0YWxpc3QuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8yMTU0MDUg
YWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtY29tYm8tYm94Lmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi8yMjM4NjIgYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2Ut
ZW1iZWRkZWQtb2JqZWN0cy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjIzODYyIGFj
Y2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLWVudHJ5LWFuZC1wYXNzd29yZC5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjIzODYyIGFjY2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9y
LXJhbmdlLWZvcm1hdHRlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjIzODYyIGFj
Y2Vzc2liaWxpdHkvZ3RrL3RleHQtZm9yLXJhbmdlLWhlYWRpbmcuaHRtbCBbIEZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzIyMzg2MiBhY2Nlc3NpYmlsaXR5L2d0ay90ZXh0LWZvci1yYW5nZS1saXN0
LWl0ZW1zLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMjM4NjIgYWNjZXNzaWJpbGl0
eS9ndGsvdGV4dC1mb3ItcmFuZ2Utc2ltcGxlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8yMjM4NjIgYWNjZXNzaWJpbGl0eS9ndGsvdGV4dC1mb3ItcmFuZ2UtdGFibGUtY2VsbHMuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIyMzg2MiBhY2Nlc3NpYmlsaXR5L2d0ay90ZXh0
LWZvci1yYW5nZS13aXRoLWxpbmsuaHRtbCBbIEZhaWx1cmUgXQotCiAjIGNhbnZhcwogd2Via2l0
Lm9yZy9iLzIxNTQ2MiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L29mZnNjcmVlbi9tYW51YWwvdGhlLW9mZnNjcmVlbi1jYW52YXMvb2Zmc2NyZWVuY2FudmFzLmNv
bW1pdC5odG1sIFsgRmFpbHVyZSBdCiAK
</data>
<flag name="review"
          id="469526"
          type_id="1"
          status="?"
          setter="dpino"
    />
          </attachment>
      

    </bug>

</bugzilla>