<?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>40559</bug_id>
          
          <creation_ts>2010-06-14 01:33:17 -0700</creation_ts>
          <short_desc>Refactor layout tests for printing to use common code.</short_desc>
          <delta_ts>2010-07-23 22:17:52 -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>Printing</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hamaji</cc>
    
    <cc>hayato</cc>
    
    <cc>yuzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>237747</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-06-14 01:33:17 -0700</bug_when>
    <thetext>Refactor layout tests for printing to use common code.

Layout tests in printing/css2.1/ uses LayoutTests/printing/resources/page-media-test-utils.js, but other tests in printing don&apos;t use that JS.
It is better to share code between them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237748</commentid>
    <comment_count>1</comment_count>
      <attachid>58627</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-06-14 01:38:52 -0700</bug_when>
    <thetext>Created attachment 58627
refactor-layouttests-for-printing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237752</commentid>
    <comment_count>2</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-06-14 01:49:03 -0700</bug_when>
    <thetext>FYI.  The patch is splitted from the following patch, including only refactoring and some minor refinements.

https://bugs.webkit.org/show_bug.cgi?id=39735
https://bug-39735-attachments.webkit.org/attachment.cgi?id=57215</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237764</commentid>
    <comment_count>3</comment_count>
      <attachid>58627</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-14 04:13:36 -0700</bug_when>
    <thetext>Comment on attachment 58627
refactor-layouttests-for-printing

LayoutTests/printing/numberOfPages-expected.txt:10
 +  PASS: number of pages is 2
It&apos;s not good to have messages after &quot;TEST COMPLETE&quot;. Cannot we avoid this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237786</commentid>
    <comment_count>4</comment_count>
      <attachid>58638</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-06-14 05:43:59 -0700</bug_when>
    <thetext>Created attachment 58638
refactor-layouttests-for-printing-fix-output-order</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237787</commentid>
    <comment_count>5</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-06-14 05:46:41 -0700</bug_when>
    <thetext>Sure. I&apos;ve changed the order of the execution. Could you review it?

(In reply to comment #3)
&gt; (From update of attachment 58627 [details])
&gt; LayoutTests/printing/numberOfPages-expected.txt:10
&gt;  +  PASS: number of pages is 2
&gt; It&apos;s not good to have messages after &quot;TEST COMPLETE&quot;. Cannot we avoid this?

(In reply to comment #3)
&gt; (From update of attachment 58627 [details])
&gt; LayoutTests/printing/numberOfPages-expected.txt:10
&gt;  +  PASS: number of pages is 2
&gt; It&apos;s not good to have messages after &quot;TEST COMPLETE&quot;. Cannot we avoid this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237788</commentid>
    <comment_count>6</comment_count>
      <attachid>58638</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-14 05:55:17 -0700</bug_when>
    <thetext>Comment on attachment 58638
refactor-layouttests-for-printing-fix-output-order

Looks good to me. Thanks for updating!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239257</commentid>
    <comment_count>7</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-17 00:00:35 -0700</bug_when>
    <thetext>Committed r61309: &lt;http://trac.webkit.org/changeset/61309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255662</commentid>
    <comment_count>8</comment_count>
      <attachid>58638</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-07-23 22:17:52 -0700</bug_when>
    <thetext>Comment on attachment 58638
refactor-layouttests-for-printing-fix-output-order

Clearing commit-queue flag to get this out of the commit-queue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58627</attachid>
            <date>2010-06-14 01:38:52 -0700</date>
            <delta_ts>2010-06-14 05:43:53 -0700</delta_ts>
            <desc>refactor-layouttests-for-printing</desc>
            <filename>bug-40559-20100614173851.patch</filename>
            <type>text/plain</type>
            <size>29678</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MWY5N2Q0YWE2YjdkZmRiZDRlZmU2NGQxNmZhMzI1M2UzOGZlNGZkLi43ZjcwOGIz
NzZmMTJlYzhmMTFkMjY1YmRlZWFkZTNlMDAwZjk4NWNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTAtMDYtMTQgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIGxheW91dCB0
ZXN0cyBmb3IgcHJpbnRpbmcgdG8gdXNlIGNvbW1vbiBjb2RlLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDU1OQorCisgICAgICAgICogcHJpbnRp
bmcvbnVtYmVyT2ZQYWdlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcHJpbnRpbmcvbnVtYmVy
T2ZQYWdlcy5odG1sOgorICAgICAgICAqIHByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwcmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZs
b3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWZv
ci1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIHByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLmh0
bWw6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUtYXZvaWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcmludGluZy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcHJpbnRpbmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQu
aHRtbDoKKyAgICAgICAgKiBwcmludGluZy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGls
cy5qczoKKyAgICAgICAgKG51bWJlck9mUGFnZXNTaG91bGRCZSk6CisgICAgICAgIChyYXRpb1Rv
UGFnZUhlaWdodFRvUGl4ZWxzKToKKyAgICAgICAgKGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdl
SGVpZ2h0KToKKyAgICAgICAgKGNyZWF0ZUJsb2NrV2l0aE51bWJlck9mTGluZXMpOgorICAgICAg
ICAqIHByaW50aW5nL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sOgorICAgICAgICAqIHByaW50
aW5nL3NjcmlwdC10ZXN0cy9udW1iZXJPZlBhZ2VzLmpzOgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWstYWx3YXlzLWZvci1vdmVyZmxv
dy5qczoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHByaW50aW5nL3NjcmlwdC10ZXN0cy9w
YWdlLWJyZWFrLWFsd2F5cy5qczoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHByaW50aW5n
L3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiBwcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZS1icmVhay1pbnNp
ZGUuanM6IFJlbW92ZWQuCisgICAgICAgICogcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2VOdW1l
ckZvckVsZW1lbnRCeUlkLmpzOgorICAgICAgICAodGVzdCk6CisKIDIwMTAtMDUtMTkgIE1hcmlv
IFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvbnVtYmVy
T2ZQYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2Vz
LWV4cGVjdGVkLnR4dAppbmRleCA4YWRiNmJlMzJkOWYwNWJmNjkwNTAwMTkxOThlYWQwMmJkZTVi
MDc1Li5lMjdiYTExMmU5NTE1ZTA1MjBkODNhMTcxYjUyMDMwM2RkMWE0NGU3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2VzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2VzLWV4cGVjdGVkLnR4dApAQCAtMyw5ICsz
LDEwIEBAIFRlc3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mUGFnZXMoKQogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIubnVt
YmVyT2ZQYWdlcygxMDAwLCAxMDAwKSBpcyAyCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLm51
bWJlck9mUGFnZXMoMTAwMDAsIDEwMDAwKSBpcyAxCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKIAorUEFTUzogbnVtYmVyIG9mIHBhZ2VzIGlzIDIKK1BB
U1M6IG51bWJlciBvZiBwYWdlcyBpcyAxCitBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9wcmlu
dGluZy9udW1iZXJPZlBhZ2VzLmh0bWwKaW5kZXggNTA2NjgyMTEwNTgyMzFiMGFlYTIzYmQ0ZWE5
MDZhOTQwYzhiOTFjZC4uODdlZmVmNjY1M2U1OTRhNDUzODE3YWM0MGRmMTU4ZTE4ZjkwNDViYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvbnVtYmVyT2ZQYWdlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3ByaW50aW5nL251bWJlck9mUGFnZXMuaHRtbApAQCAtMyw4ICszLDkgQEAK
IDxoZWFkPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wYWdlZC1t
ZWRpYS10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5PgorPGJvZHkgb25s
b2FkPSJydW5QcmludGluZ1Rlc3QodGVzdCkiPgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1hbHdheXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1hbHdheXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDc5MWEzNTljMzgzYjM2MjVjN2U1MzBmMTdjMTJlYmM4OGNiMTUwNTkuLjIzYWI2ODFlNzZj
NTM0NTVlNzRhOGI0OWVmZTEwYTUxZTRmMjFmY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3By
aW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
cmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy1leHBlY3RlZC50eHQKQEAgLTMsMTEgKzMsMTIgQEAg
VGVzdCBmb3IgcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzIGFuZCBwYWdlLWJyZWFrLWFmdGVyOmFs
d2F5cwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCdmaXJzdFBhZ2UnKSBpcyAwCi1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgnc2Vjb25kUGFnZTEn
KSBpcyAxCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJ
ZCgnc2Vjb25kUGFnZTInKSBpcyAxCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1i
ZXJGb3JFbGVtZW50QnlJZCgndGhpcmRQYWdlJykgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCiAKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJmaXJz
dFBhZ2UiIGlzIDAKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJzZWNvbmRQYWdlMSIgaXMgMQorUEFT
UzogcGFnZSBudW1iZXIgb2YgInNlY29uZFBhZ2UyIiBpcyAxCitQQVNTOiBwYWdlIG51bWJlciBv
ZiAidGhpcmRQYWdlIiBpcyAyCitBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZsb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1hbHdheXMtZm9yLW92ZXJmbG93LWV4
cGVjdGVkLnR4dAppbmRleCA5N2VmYWQyNjk1ZTc4MzZmMTAyMjJhM2Y2Y2Y2NGQzNWM2ZjNhYjI5
Li45ODJlOWY2M2Y5ODhkMDU1NDQ4ZDEzYjg1MTI0MjQ3NjhjMTRiZTlhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZsb3ctZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWZvci1v
dmVyZmxvdy1leHBlY3RlZC50eHQKQEAgLTMsMTYgKzMsMTcgQEAgVGVzdCBwYWdlLWJyZWFrLXti
ZWZvcmUsYWZ0ZXJ9OmFsd2F5cyBmb3Igb3ZlcmZsb3c6e3Zpc2libGUsaGlkZGVuLHNjcm9sbCxh
dXRvfQogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgbGF5b3V0VGVzdENvbnRy
b2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0ZXN0LXBhZ2UtYnJlYWstYmVmb3JlOmFs
d2F5cy1mb3Itb3ZlcmZsb3c6dmlzaWJsZScpIGlzIDEKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0ZXN0LXBhZ2UtYnJlYWstYmVmb3JlOmFsd2F5
cy1mb3Itb3ZlcmZsb3c6aGlkZGVuJykgaXMgMgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5w
YWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZv
ci1vdmVyZmxvdzpzY3JvbGwnKSBpcyAzCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VO
dW1iZXJGb3JFbGVtZW50QnlJZCgndGVzdC1wYWdlLWJyZWFrLWJlZm9yZTphbHdheXMtZm9yLW92
ZXJmbG93OmF1dG8nKSBpcyA0Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJG
b3JFbGVtZW50QnlJZCgndGVzdC1wYWdlLWJyZWFrLWFmdGVyOmFsd2F5cy1mb3Itb3ZlcmZsb3c6
dmlzaWJsZScpIGlzIDQKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVs
ZW1lbnRCeUlkKCd0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzpoaWRk
ZW4nKSBpcyA1Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50
QnlJZCgndGVzdC1wYWdlLWJyZWFrLWFmdGVyOmFsd2F5cy1mb3Itb3ZlcmZsb3c6c2Nyb2xsJykg
aXMgNgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQo
J3Rlc3QtcGFnZS1icmVhay1hZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OmF1dG8nKSBpcyA3Ci1Q
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgndGVzdC1s
YXN0LXBhZ2UnKSBpcyA4CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKIAorUEFTUzogcGFnZSBudW1iZXIgb2YgInRlc3QtcGFnZS1icmVhay1iZWZvcmU6
YWx3YXlzLWZvci1vdmVyZmxvdzp2aXNpYmxlIiBpcyAxCitQQVNTOiBwYWdlIG51bWJlciBvZiAi
dGVzdC1wYWdlLWJyZWFrLWJlZm9yZTphbHdheXMtZm9yLW92ZXJmbG93OmhpZGRlbiIgaXMgMgor
UEFTUzogcGFnZSBudW1iZXIgb2YgInRlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1v
dmVyZmxvdzpzY3JvbGwiIGlzIDMKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJ0ZXN0LXBhZ2UtYnJl
YWstYmVmb3JlOmFsd2F5cy1mb3Itb3ZlcmZsb3c6YXV0byIgaXMgNAorUEFTUzogcGFnZSBudW1i
ZXIgb2YgInRlc3QtcGFnZS1icmVhay1hZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OnZpc2libGUi
IGlzIDQKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJ0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlz
LWZvci1vdmVyZmxvdzpoaWRkZW4iIGlzIDUKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJ0ZXN0LXBh
Z2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzpzY3JvbGwiIGlzIDYKK1BBU1M6IHBh
Z2UgbnVtYmVyIG9mICJ0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzph
dXRvIiBpcyA3CitQQVNTOiBwYWdlIG51bWJlciBvZiAidGVzdC1sYXN0LXBhZ2UiIGlzIDgKK0Fs
bCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJl
YWstYWx3YXlzLWZvci1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1i
cmVhay1hbHdheXMtZm9yLW92ZXJmbG93Lmh0bWwKaW5kZXggZWVhYjZlZmUwMTc5MDdiZTY1NzJl
OTQ4NWFhZDI0YmVlMTEwMDk1ZS4uZTY5OTZhYTFmNDg1MTk4MDZhZTMwYjIyZGUwY2UwZjY1MjFk
ODc0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1hbHdheXMt
Zm9yLW92ZXJmbG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1h
bHdheXMtZm9yLW92ZXJmbG93Lmh0bWwKQEAgLTMsOCArMyw5IEBACiA8aGVhZD4KIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keT4KKzxib2R5IG9ubG9hZD0icnVuUHJpbnRpbmdU
ZXN0KHRlc3QpIj4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CiA8ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLmh0bWwgYi9MYXlvdXRUZXN0cy9wcmludGluZy9w
YWdlLWJyZWFrLWFsd2F5cy5odG1sCmluZGV4IGZjZDlhYTNiZWJkNGU1ODczNmUzMThmY2JmNmVk
YmJmMDYzZDJkZmMuLmFhZWNhNmEwMzA3NTgzMGM1NDNjMWY1MjdkY2YzOTc5ODgwMGQ4MDEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1hbHdheXMuaHRtbApAQCAtMyw4ICsz
LDkgQEAKIDxoZWFkPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
YWdlZC1tZWRpYS10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5PgorPGJv
ZHkgb25sb2FkPSJydW5QcmludGluZ1Rlc3QodGVzdCkiPgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUtYXZvaWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUtYXZv
aWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZTE1NDNmMjllODZiZjU1YTNlOWVmNGMyMjEw
MzA2NmM1OWE1YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdl
LWJyZWFrLWluc2lkZS1hdm9pZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorVGVzdCBm
b3IgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCitQ
QVNTOiBwYWdlIG51bWJlciBvZiAicGFnZTEtMSIgaXMgMQorUEFTUzogcGFnZSBudW1iZXIgb2Yg
InBhZ2UxLTIiIGlzIDEKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJwYWdlMiIgaXMgMgorUEFTUzog
cGFnZSBudW1iZXIgb2YgInBhZ2UzIiBpcyAzCitQQVNTOiBwYWdlIG51bWJlciBvZiAicGFnZTQi
IGlzIDQKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJwYWdlNSIgaXMgNQorUEFTUzogcGFnZSBudW1i
ZXIgb2YgInBhZ2U4IiBpcyA4CitQQVNTOiBwYWdlIG51bWJlciBvZiAicGFnZTktMSIgaXMgOQor
UEFTUzogcGFnZSBudW1iZXIgb2YgInBhZ2U5LTIiIGlzIDkKK1BBU1M6IHBhZ2UgbnVtYmVyIG9m
ICJwYWdlMTAiIGlzIDEwCitBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS5odG1sIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcv
cGFnZS1icmVhay1pbnNpZGUtYXZvaWQuaHRtbApzaW1pbGFyaXR5IGluZGV4IDY4JQpyZW5hbWUg
ZnJvbSBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS5odG1sCnJlbmFtZSB0
byBMYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5odG1sCmluZGV4
IGFlZWM2YWY5OTQ2NWVmMmQ0Yzc5MGU4MTVlMzYyY2E3ZTlhMTI3NDIuLmYwY2M5ZGRjMjdjYWEw
NWU2YmQ4YjQyN2FhN2NkNTNjMmE2ODM2NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50
aW5nL3BhZ2UtYnJlYWstaW5zaWRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFn
ZS1icmVhay1pbnNpZGUtYXZvaWQuaHRtbApAQCAtMywxMiArMywxMyBAQAogPGhlYWQ+CiA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BhZ2VkLW1lZGlhLXRlc3QtdXRp
bHMuanMiPjwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHk+Cis8Ym9keSBvbmxvYWQ9InJ1blByaW50
aW5nVGVzdCh0ZXN0KSI+CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgogPGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+Ci08c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL3BhZ2UtYnJlYWstaW5zaWRlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvcGFnZS1icmVhay1pbnNpZGUtYXZvaWQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFr
LWluc2lkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWlu
c2lkZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkYzU2MWYy
YTNmMjRkYzQzYTJmYjc4NTQ3YTdmYTkxYzk0ZGZkNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1p
bnNpZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGVzdCBm
b3IgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1MgcGFnZU51bWJlcigncGFnZTEnKSBpcyAxCi1QQVNTIHBhZ2VOdW1iZXIoJ3BhZ2Uy
JykgaXMgMgotUEFTUyBwYWdlTnVtYmVyKCdwYWdlMy0xJykgaXMgMwotUEFTUyBwYWdlTnVtYmVy
KCdwYWdlMy0yJykgaXMgMwotUEFTUyBwYWdlTnVtYmVyKCdwYWdlNCcpIGlzIDQKLVBBU1MgcGFn
ZU51bWJlcigncGFnZTUnKSBpcyA1Ci1QQVNTIHBhZ2VOdW1iZXIoJ3BhZ2U2JykgaXMgNgotUEFT
UyBwYWdlTnVtYmVyKCdwYWdlNycpIGlzIDcKLVBBU1MgcGFnZU51bWJlcigncGFnZTknKSBpcyA5
Ci1QQVNTIHBhZ2VOdW1iZXIoJ3BhZ2UxMC0xJykgaXMgMTAKLVBBU1MgcGFnZU51bWJlcigncGFn
ZTEwLTInKSBpcyAxMAotUEFTUyBwYWdlTnVtYmVyKCdwYWdlMTEnKSBpcyAxMQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3ByaW50aW5nL3BhZ2VOdW1lckZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2VOdW1lckZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4
dAppbmRleCAxYTEzODFiMzViMTEyZGZhMGRhMWMwMTc1MjUxN2E2ZDI0Mzc1M2Q2Li5lODIyN2M2
OGU2NzAxMjQ2NmVmYTdjZTJlMzYxMmMzYWE4OTU1YzEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wcmludGluZy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcHJpbnRpbmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0CkBA
IC0zLDExICszLDEyIEBAIFRlc3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJG
b3JFbGVtZW50QnlJZCgpCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ2ZpcnN0UGFnZScsIDEw
MDAsIDEwMDApIGlzIDAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVs
ZW1lbnRCeUlkKCdzZWNvbmRQYWdlJywgMTAwMCwgMTAwMCkgaXMgMQotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ3RoaXJkUGFnZScsIDEwMDAsIDEw
MDApIGlzIDIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRC
eUlkKCd0aGlyZFBhZ2UyJywgMTAwMCwgMTAwMCkgaXMgMgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCiAKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJmaXJz
dFBhZ2UiIGlzIDAKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJzZWNvbmRQYWdlIiBpcyAxCitQQVNT
OiBwYWdlIG51bWJlciBvZiAidGhpcmRQYWdlIiBpcyAyCitQQVNTOiBwYWdlIG51bWJlciBvZiAi
dGhpcmRQYWdlMiIgaXMgMgorQWxsIHRlc3RzIHBhc3NlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcHJpbnRpbmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQuaHRtbCBiL0xheW91dFRlc3RzL3By
aW50aW5nL3BhZ2VOdW1lckZvckVsZW1lbnRCeUlkLmh0bWwKaW5kZXggMGRhZTk4ZTVmYjNiYjE4
ODJlZmI5MWU5MmRlZGJhYTIyNjJiMGRmMy4uMjNjMjc3ZDRjNGM5NTc5YWJjNDhmODQ5Yzk4NzYw
ZmUwZGIxNDhhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZU51bWVyRm9y
RWxlbWVudEJ5SWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlTnVtZXJGb3JF
bGVtZW50QnlJZC5odG1sCkBAIC0zLDggKzMsOSBAQAogPGhlYWQ+CiA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KIDxz
Y3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BhZ2VkLW1lZGlhLXRlc3QtdXRpbHMuanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgotPGJvZHk+Cis8Ym9keSBvbmxvYWQ9InJ1blByaW50aW5nVGVzdCh0ZXN0
KSI+CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgog
PGRpdiBpZD0ic2FuZGJveCI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGlu
Zy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyBiL0xheW91dFRlc3RzL3ByaW50
aW5nL3Jlc291cmNlcy9wYWdlZC1tZWRpYS10ZXN0LXV0aWxzLmpzCmluZGV4IDE2MTkyOTgyNTQz
M2I5ZTg2MDQ5ZjJmZTE3NjQ3MGNmOGIyYWViMzcuLjA1MzkzODYxNTBjZTJjZThjYWRmMTRjYzUz
ZWJiYjQ0ZDYyOGQxNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3Jlc291cmNl
cy9wYWdlZC1tZWRpYS10ZXN0LXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3Jl
c291cmNlcy9wYWdlZC1tZWRpYS10ZXN0LXV0aWxzLmpzCkBAIC0yMSw5ICsyMSwxNSBAQCBmdW5j
dGlvbiBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3VsZEJlKGlkLCBleHBlY3RlZFBhZ2VOdW1iZXIp
CiAgICAgfQogfQogCi1mdW5jdGlvbiBudW1iZXJPZlBhZ2VzU2hvdWxkQmUoZXhwZWN0ZWROdW1i
ZXJPZlBhZ2VzKQorZnVuY3Rpb24gbnVtYmVyT2ZQYWdlc1Nob3VsZEJlKGV4cGVjdGVkTnVtYmVy
T2ZQYWdlcywgcGFnZVdpZHRoSW5QaXhlbHMsIHBhZ2VIZWlnaHRJblBpeGVscykKIHsKLSAgICB2
YXIgYWN0dWFsTnVtYmVyT2ZQYWdlcyA9IGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mUGFn
ZXMoKTsKKyAgICAvLyBwYWdlV2lkdGhJblBpeGVscyBhbmQgcGFnZUhlaWdodEluUGl4ZWxzIGNh
biBiZSBvbWl0dGVkLiBJZiBvbWl0dGVkLCA4MDB4NjAwIGlzIHVzZWQuCisgICAgdmFyIGFjdHVh
bE51bWJlck9mUGFnZXM7CisgICAgaWYgKHBhZ2VXaWR0aEluUGl4ZWxzICYmIHBhZ2VIZWlnaHRJ
blBpeGVscykKKyAgICAgICAgYWN0dWFsTnVtYmVyT2ZQYWdlcyA9IGxheW91dFRlc3RDb250cm9s
bGVyLm51bWJlck9mUGFnZXMocGFnZVdpZHRoSW5QaXhlbHMsIHBhZ2VIZWlnaHRJblBpeGVscyk7
CisgICAgZWxzZQorICAgICAgICBhY3R1YWxOdW1iZXJPZlBhZ2VzID0gbGF5b3V0VGVzdENvbnRy
b2xsZXIubnVtYmVyT2ZQYWdlcygpOworCiAgICAgaWYgKGFjdHVhbE51bWJlck9mUGFnZXMgPT0g
ZXhwZWN0ZWROdW1iZXJPZlBhZ2VzKQogICAgICAgICBhcHBlbmRSZXN1bHQoJ1BBU1M6IG51bWJl
ciBvZiBwYWdlcyBpcyAnICsgYWN0dWFsTnVtYmVyT2ZQYWdlcyk7CiAgICAgZWxzZSB7CkBAIC01
MiwzICs1OCwzMiBAQCBmdW5jdGlvbiBydW5QcmludGluZ1Rlc3QodGVzdEZ1bmN0aW9uKQogICAg
IHJlc3VsdEVsZW1lbnQuaW5uZXJIVE1MID0gX3Jlc3VsdHM7CiAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChyZXN1bHRFbGVtZW50KTsKIH0KKworZnVuY3Rpb24gcmF0aW9Ub1BhZ2VIZWln
aHRUb1BpeGVscyhoZWlnaHRJblJhdGlvVG9QYWdlSGVpZ2h0KQoreworICB2YXIgcGFnZUhlaWdo
dEluUGl4ZWxzID0gNjAwOworICByZXR1cm4gTWF0aC5mbG9vcihwYWdlSGVpZ2h0SW5QaXhlbHMg
KiBoZWlnaHRJblJhdGlvVG9QYWdlSGVpZ2h0KTsKK30KKworZnVuY3Rpb24gY3JlYXRlQmxvY2tX
aXRoUmF0aW9Ub1BhZ2VIZWlnaHQoaWQsIGhlaWdodEluUmF0aW9Ub1BhZ2VIZWlnaHQpCit7Cisg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBlbGVt
ZW50LmlkID0gaWQ7CisgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSByYXRpb1RvUGFnZUhlaWdo
dFRvUGl4ZWxzKGhlaWdodEluUmF0aW9Ub1BhZ2VIZWlnaHQpICsgInB4IjsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpLmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIHJl
dHVybiBlbGVtZW50OworfQorCitmdW5jdGlvbiBjcmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxpbmVz
KGlkLCBjaGlsZExpbmVzKQoreworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgZWxlbWVudC5pZCA9IGlkOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgY2hpbGRMaW5lczsgKytpKSB7CisgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoImxpbmUiICsgaSkpOworICAgICAgICBlbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgIH0KKyAgICAvLyBNYWtlIHN1
cmUgdGhhdCBvbmUgcGFnZSBoYXMgYWJvdXQgMjAgbGluZXMuCisgICAgZWxlbWVudC5zdHlsZS5s
aW5lSGVpZ2h0ID0gcmF0aW9Ub1BhZ2VIZWlnaHRUb1BpeGVscygwLjA1KSArICJweCI7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhbmRib3giKS5hcHBlbmRDaGlsZChlbGVtZW50KTsK
KyAgICByZXR1cm4gZWxlbWVudDsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5n
L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0
LXRlc3RzL1RFTVBMQVRFLmh0bWwKaW5kZXggNzljYWFjNDYzYWNhNTJjMjk1MmZhMWYxMTFhYWY4
ZDlmOTcwMjg0MC4uNzZjNGUyNzA4OTZmNGYzMzJiMTRhYTA1ZjAyNDk2MTM3YjUzZTEwNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAg
LTMsOCArMyw5IEBACiA8aGVhZD4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9k
eT4KKzxib2R5IG9ubG9hZD0icnVuUHJpbnRpbmdUZXN0KHRlc3QpIj4KIDxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8ZGl2IGlkPSJzYW5kYm94Ij48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9udW1i
ZXJPZlBhZ2VzLmpzIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL251bWJlck9m
UGFnZXMuanMKaW5kZXggY2E2NDkwMzA0MTA2MTE4ZTU3NDQ1MDMwZjM0M2IzYmRmZTU0ZWQ4NS4u
ZTQxYWFjNGRlOGZhYTQyYzlmYTFjNjczMzhlNmU0YWIyMmMyZmY2ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL251bWJlck9mUGFnZXMuanMKKysrIGIvTGF5
b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL251bWJlck9mUGFnZXMuanMKQEAgLTEsMjMg
KzEsMTQgQEAKIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBsYXlvdXRUZXN0Q29udHJvbGxlci5udW1i
ZXJPZlBhZ2VzKCkiKTsKIAotZnVuY3Rpb24gY3JlYXRlUGFyYWdyYXBoKGlkKQorZnVuY3Rpb24g
dGVzdCgpCiB7Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKLSAgICBlbGVtZW50LmlkID0gaWQ7Ci0gICAgZWxlbWVudC53aWR0aCA9IDEwMDsKLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpLmFwcGVuZENoaWxkKGVsZW1lbnQpOwot
ICAgIHJldHVybiBlbGVtZW50OwotfQotCi12YXIgZmlyc3RQYWdlID0gY3JlYXRlUGFyYWdyYXBo
KCJmaXJzdFBhZ2UiKTsKLWZpcnN0UGFnZS5zdHlsZS5oZWlnaHQgPSA3MDA7CisgICAgY3JlYXRl
QmxvY2tXaXRoUmF0aW9Ub1BhZ2VIZWlnaHQoImZpcnN0UGFnZSIsIDAuNik7CisgICAgY3JlYXRl
QmxvY2tXaXRoUmF0aW9Ub1BhZ2VIZWlnaHQoInNlY29uZFBhZ2UiLCAwLjYpOwogCi12YXIgc2Vj
b25kUGFnZSA9IGNyZWF0ZVBhcmFncmFwaCgic2Vjb25kUGFnZSIpOwotc2Vjb25kUGFnZS5zdHls
ZS5oZWlnaHQgPSA3MDA7CisgICAgbnVtYmVyT2ZQYWdlc1Nob3VsZEJlKDIpOworICAgIG51bWJl
ck9mUGFnZXNTaG91bGRCZSgxLCAxMDAwLCAxMDAwMCk7CiAKLXNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5udW1iZXJPZlBhZ2VzKDEwMDAsIDEwMDApIiwgIjIiKTsKLXNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5udW1iZXJPZlBhZ2VzKDEwMDAwLCAxMDAwMCkiLCAiMSIpOwot
Ci1kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYW5k
Ym94IikpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNhbmRib3giKSk7Cit9CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWst
YWx3YXlzLWZvci1vdmVyZmxvdy5qcyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0
cy9wYWdlLWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZsb3cuanMKaW5kZXggZGExMGE0NGI5YWZlZDVm
NzFmN2ExMTQ0MzM4YzhhMGMzZjE5ODc0Ny4uN2UzOTEzMjQ4YjVmOWNkNzBkMDlhM2IzMWQ5NDMx
ZDNhMDBhMDRkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3Rz
L3BhZ2UtYnJlYWstYWx3YXlzLWZvci1vdmVyZmxvdy5qcworKysgYi9MYXlvdXRUZXN0cy9wcmlu
dGluZy9zY3JpcHQtdGVzdHMvcGFnZS1icmVhay1hbHdheXMtZm9yLW92ZXJmbG93LmpzCkBAIC0x
LDM5ICsxLDM5IEBACiBkZXNjcmlwdGlvbigiVGVzdCBwYWdlLWJyZWFrLXtiZWZvcmUsYWZ0ZXJ9
OmFsd2F5cyBmb3Igb3ZlcmZsb3c6e3Zpc2libGUsaGlkZGVuLHNjcm9sbCxhdXRvfSBlbGVtZW50
cy4iKTsKIAotdmFyIG92ZXJmbG93VmFsdWVzID0gWyJ2aXNpYmxlIiwgImhpZGRlbiIsICJzY3Jv
bGwiLCAiYXV0byJdOwotdmFyIHBhZ2VCcmVha1Bvc2l0aW9ucyA9IFsicGFnZS1icmVhay1iZWZv
cmUiLCAicGFnZS1icmVhay1hZnRlciJdOworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIG92
ZXJmbG93VmFsdWVzID0gWyJ2aXNpYmxlIiwgImhpZGRlbiIsICJzY3JvbGwiLCAiYXV0byJdOwor
ICAgIHZhciBwYWdlQnJlYWtQb3NpdGlvbnMgPSBbInBhZ2UtYnJlYWstYmVmb3JlIiwgInBhZ2Ut
YnJlYWstYWZ0ZXIiXTsKIAotdmFyIHRlc3RIdG1sID0gIiI7Ci1mb3IgKHZhciBwb3NpdGlvbiA9
IDA7IHBvc2l0aW9uIDwgcGFnZUJyZWFrUG9zaXRpb25zLmxlbmd0aDsgcG9zaXRpb24rKykgewot
ICAgIGZvciAodmFyIHZhbHVlID0gMDsgdmFsdWUgPCBvdmVyZmxvd1ZhbHVlcy5sZW5ndGg7IHZh
bHVlKyspIHsKLSAgICAgICAgdmFyIG92ZXJmbG93U3R5bGUgPSAib3ZlcmZsb3c6IiArIG92ZXJm
bG93VmFsdWVzW3ZhbHVlXTsKLSAgICAgICAgdmFyIHBhZ2VCcmVha1N0eWxlID0gcGFnZUJyZWFr
UG9zaXRpb25zW3Bvc2l0aW9uXSArICI6YWx3YXlzIjsKLSAgICAgICAgdmFyIHRlc3RJZCA9ICd0
ZXN0LScgKyBwYWdlQnJlYWtTdHlsZSArICctZm9yLScgKyBvdmVyZmxvd1N0eWxlOwotICAgICAg
ICB0ZXN0SHRtbCArPSAnPGRpdiBzdHlsZT0iJyArIG92ZXJmbG93U3R5bGUgKyAnIj48cCBpZD0i
JyArIHRlc3RJZCArICciIHN0eWxlPSInICsgcGFnZUJyZWFrU3R5bGUgKyAnIj4nICsgb3ZlcmZs
b3dTdHlsZSArICcsICcgKyBwYWdlQnJlYWtTdHlsZSArICc8L3A+PC9kaXY+XG4nOworICAgIHZh
ciB0ZXN0SHRtbCA9ICIiOworICAgIGZvciAodmFyIHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBw
YWdlQnJlYWtQb3NpdGlvbnMubGVuZ3RoOyBwb3NpdGlvbisrKSB7CisgICAgICAgIGZvciAodmFy
IHZhbHVlID0gMDsgdmFsdWUgPCBvdmVyZmxvd1ZhbHVlcy5sZW5ndGg7IHZhbHVlKyspIHsKKyAg
ICAgICAgICAgIHZhciBvdmVyZmxvd1N0eWxlID0gIm92ZXJmbG93OiIgKyBvdmVyZmxvd1ZhbHVl
c1t2YWx1ZV07CisgICAgICAgICAgICB2YXIgcGFnZUJyZWFrU3R5bGUgPSBwYWdlQnJlYWtQb3Np
dGlvbnNbcG9zaXRpb25dICsgIjphbHdheXMiOworICAgICAgICAgICAgdmFyIHRlc3RJZCA9ICd0
ZXN0LScgKyBwYWdlQnJlYWtTdHlsZSArICctZm9yLScgKyBvdmVyZmxvd1N0eWxlOworICAgICAg
ICAgICAgdGVzdEh0bWwgKz0gJzxkaXYgc3R5bGU9IicgKyBvdmVyZmxvd1N0eWxlICsgJyI+PHAg
aWQ9IicgKyB0ZXN0SWQgKyAnIiBzdHlsZT0iJyArIHBhZ2VCcmVha1N0eWxlICsgJyI+JyArIG92
ZXJmbG93U3R5bGUgKyAnLCAnICsgcGFnZUJyZWFrU3R5bGUgKyAnPC9wPjwvZGl2PlxuJzsKKyAg
ICAgICAgfQogICAgIH0KLX0KLXRlc3RIdG1sICs9ICc8cCBpZD0idGVzdC1sYXN0LXBhZ2UiPmVu
ZDwvcD4nOwotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhbmRib3giKS5pbm5lckhUTUwgPSB0
ZXN0SHRtbDsKKyAgICB0ZXN0SHRtbCArPSAnPHAgaWQ9InRlc3QtbGFzdC1wYWdlIj5lbmQ8L3A+
JzsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpLmlubmVySFRNTCA9IHRl
c3RIdG1sOwogCi12YXIgZXhwZWN0ZWRWYWx1ZXMgPSBbCi0gICAgLy8gcGFnZS1icmVhay17YmVm
b3JlLGFmdGVyfTphbHdheXMgc2hvdWxkIHRha2UgZWZmZWN0IHJlZ2FyZGxlc3Mgb2Ygb3ZlcmZs
b3cgdmFsdWUuCi0gICAgWyd0ZXN0LXBhZ2UtYnJlYWstYmVmb3JlOmFsd2F5cy1mb3Itb3ZlcmZs
b3c6dmlzaWJsZScsIDFdLAotICAgIFsndGVzdC1wYWdlLWJyZWFrLWJlZm9yZTphbHdheXMtZm9y
LW92ZXJmbG93OmhpZGRlbicsIDJdLAotICAgIFsndGVzdC1wYWdlLWJyZWFrLWJlZm9yZTphbHdh
eXMtZm9yLW92ZXJmbG93OnNjcm9sbCcsIDNdLAotICAgIFsndGVzdC1wYWdlLWJyZWFrLWJlZm9y
ZTphbHdheXMtZm9yLW92ZXJmbG93OmF1dG8nLCA0XSwKLSAgICBbJ3Rlc3QtcGFnZS1icmVhay1h
ZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OnZpc2libGUnLCA0XSwKLSAgICBbJ3Rlc3QtcGFnZS1i
cmVhay1hZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OmhpZGRlbicsIDVdLAotICAgIFsndGVzdC1w
YWdlLWJyZWFrLWFmdGVyOmFsd2F5cy1mb3Itb3ZlcmZsb3c6c2Nyb2xsJywgNl0sCi0gICAgWyd0
ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzphdXRvJywgN10sCi0gICAg
Wyd0ZXN0LWxhc3QtcGFnZScsIDhdCi1dOworICAgIHZhciBleHBlY3RlZFZhbHVlcyA9IFsKKyAg
ICAgICAgLy8gcGFnZS1icmVhay17YmVmb3JlLGFmdGVyfTphbHdheXMgc2hvdWxkIHRha2UgZWZm
ZWN0IHJlZ2FyZGxlc3Mgb2Ygb3ZlcmZsb3cgdmFsdWUuCisgICAgICAgIFsndGVzdC1wYWdlLWJy
ZWFrLWJlZm9yZTphbHdheXMtZm9yLW92ZXJmbG93OnZpc2libGUnLCAxXSwKKyAgICAgICAgWyd0
ZXN0LXBhZ2UtYnJlYWstYmVmb3JlOmFsd2F5cy1mb3Itb3ZlcmZsb3c6aGlkZGVuJywgMl0sCisg
ICAgICAgIFsndGVzdC1wYWdlLWJyZWFrLWJlZm9yZTphbHdheXMtZm9yLW92ZXJmbG93OnNjcm9s
bCcsIDNdLAorICAgICAgICBbJ3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVy
ZmxvdzphdXRvJywgNF0sCisgICAgICAgIFsndGVzdC1wYWdlLWJyZWFrLWFmdGVyOmFsd2F5cy1m
b3Itb3ZlcmZsb3c6dmlzaWJsZScsIDRdLAorICAgICAgICBbJ3Rlc3QtcGFnZS1icmVhay1hZnRl
cjphbHdheXMtZm9yLW92ZXJmbG93OmhpZGRlbicsIDVdLAorICAgICAgICBbJ3Rlc3QtcGFnZS1i
cmVhay1hZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OnNjcm9sbCcsIDZdLAorICAgICAgICBbJ3Rl
c3QtcGFnZS1icmVhay1hZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OmF1dG8nLCA3XSwKKyAgICAg
ICAgWyd0ZXN0LWxhc3QtcGFnZScsIDhdCisgICAgXTsKIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVu
Z3RoOyBpKyspIHsKLSAgICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VO
dW1iZXJGb3JFbGVtZW50QnlJZCgnIiArIGV4cGVjdGVkVmFsdWVzW2ldWzBdICsgIicpIiwgIiIg
KyBleHBlY3RlZFZhbHVlc1tpXVsxXSk7Ci0gICAgfQotfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIHBhZ2VOdW1iZXJGb3JFbGVt
ZW50U2hvdWxkQmUoZXhwZWN0ZWRWYWx1ZXNbaV1bMF0sIGV4cGVjdGVkVmFsdWVzW2ldWzFdKTsK
IAotZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Fu
ZGJveCIpKTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzYW5kYm94IikpOworfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFr
LWFsd2F5cy5qcyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFr
LWFsd2F5cy5qcwppbmRleCAxYzZlNWQ4NDZiYjdmN2UwZGIxMDljZjE4YzljMjM0ZDQyZjM3ZmE1
Li5mN2E1YmI0YTljOTFiZWQ1YTIwZmU1NmI1NjczNWZlNmJiYjMxM2EzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZS1icmVhay1hbHdheXMuanMKKysr
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWstYWx3YXlzLmpz
CkBAIC0xLDI0ICsxLDE5IEBACiBkZXNjcmlwdGlvbigiVGVzdCBmb3IgcGFnZS1icmVhay1iZWZv
cmU6YWx3YXlzIGFuZCBwYWdlLWJyZWFrLWFmdGVyOmFsd2F5cyIpOwogCi1mdW5jdGlvbiBjcmVh
dGVQYXJhZ3JhcGgoaWQpCitmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKLSAgICBlbGVtZW50LmlkID0gaWQ7Ci0gICAgZWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiZm9vYmFyIikpOwotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYW5kYm94IikuYXBwZW5kQ2hpbGQoZWxlbWVudCk7
Ci0gICAgcmV0dXJuIGVsZW1lbnQ7Ci19Ci0KLWNyZWF0ZVBhcmFncmFwaCgiZmlyc3RQYWdlIik7
Ci1jcmVhdGVQYXJhZ3JhcGgoInNlY29uZFBhZ2UxIikuc3R5bGUucGFnZUJyZWFrQmVmb3JlID0g
ImFsd2F5cyI7Ci1jcmVhdGVQYXJhZ3JhcGgoInNlY29uZFBhZ2UyIikuc3R5bGUucGFnZUJyZWFr
QWZ0ZXIgPSAiYWx3YXlzIjsKLWNyZWF0ZVBhcmFncmFwaCgidGhpcmRQYWdlIikuc3R5bGUucGFn
ZUJyZWFrQmVmb3JlID0gImFsd2F5cyI7CisgICAgY3JlYXRlQmxvY2tXaXRoUmF0aW9Ub1BhZ2VI
ZWlnaHQoImZpcnN0UGFnZSIsIDAuMSk7CisgICAgY3JlYXRlQmxvY2tXaXRoUmF0aW9Ub1BhZ2VI
ZWlnaHQoInNlY29uZFBhZ2UxIiwgMC4xKS5zdHlsZS5wYWdlQnJlYWtCZWZvcmUgPSAiYWx3YXlz
IjsKKyAgICBjcmVhdGVCbG9ja1dpdGhSYXRpb1RvUGFnZUhlaWdodCgic2Vjb25kUGFnZTIiLCAw
LjEpLnN0eWxlLnBhZ2VCcmVha0FmdGVyID0gImFsd2F5cyI7CisgICAgY3JlYXRlQmxvY2tXaXRo
UmF0aW9Ub1BhZ2VIZWlnaHQoInRoaXJkUGFnZSIsIDAuMSkuc3R5bGUucGFnZUJyZWFrQmVmb3Jl
ID0gImFsd2F5cyI7CiAKLXNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVy
Rm9yRWxlbWVudEJ5SWQoJ2ZpcnN0UGFnZScpIiwgIjAiKTsKLXNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ3NlY29uZFBhZ2UxJykiLCAiMSIp
Owotc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJ
ZCgnc2Vjb25kUGFnZTInKSIsICIxIik7Ci1zaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0aGlyZFBhZ2UnKSIsICIyIik7CisgICAgcGFnZU51
bWJlckZvckVsZW1lbnRTaG91bGRCZSgnZmlyc3RQYWdlJywgMCk7CisgICAgcGFnZU51bWJlckZv
ckVsZW1lbnRTaG91bGRCZSgnc2Vjb25kUGFnZTEnLCAxKTsKKyAgICBwYWdlTnVtYmVyRm9yRWxl
bWVudFNob3VsZEJlKCdzZWNvbmRQYWdlMicsIDEpOworICAgIC8vIFRoZXJlIG11c3QgYmUgb25s
eSBvbmUgcGFnZSBicmVhayBiZXR3ZWVuICdwYWdlLWJyZWFrLWFmdGVyOiBhbHdheXMnIGFuZCAn
cGFnZS1icmVhay1iZWZvcmU6IGFsd2F5cycKKyAgICBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3Vs
ZEJlKCd0aGlyZFBhZ2UnLCAyKTsKIAotZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpKTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYW5kYm94IikpOworfQogCiB2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3Nj
cmlwdC10ZXN0cy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5qcyBiL0xheW91dFRlc3RzL3ByaW50
aW5nL3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YjhjNDc3NDNlZWI3NzU5ZWMyNzM1YmI3ZGQ3NWM0NWE0YjA3YmEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWstaW5zaWRlLWF2
b2lkLmpzCkBAIC0wLDAgKzEsNDIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciBwYWdlLWJyZWFr
LWluc2lkZTphdm9pZCIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBjcmVhdGVCbG9ja1dp
dGhSYXRpb1RvUGFnZUhlaWdodCgicGFnZTEtMSIsIDAuNSkuc3R5bGUucGFnZUJyZWFrQmVmb3Jl
ID0gImFsd2F5cyI7CisgICAgLy8gYmxvY2sgJ3BhZ2UxLTInIHNob3VsZCBiZSBzcGxpdHRlZC4K
KyAgICBjcmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxpbmVzKCJwYWdlMS0yIiwgMjApOworICAgIGNy
ZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdlSGVpZ2h0KCJwYWdlMiIsIDAuMSk7CisKKyAgICBjcmVh
dGVCbG9ja1dpdGhSYXRpb1RvUGFnZUhlaWdodCgicGFnZTMiLCAwLjUpLnN0eWxlLnBhZ2VCcmVh
a0JlZm9yZSA9ICJhbHdheXMiOworICAgIC8vIFdlIHNob3VsZCBwbGFjZSBibG9jayAncGFnZTQn
IGluIHRoZSBuZXh0IHBhZ2UgYmVjYXVzZSBvZiAncGFnZS1icmVhay1pbnNpZGU6IGF2b2lkJy4K
KyAgICBjcmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxpbmVzKCJwYWdlNCIsIDIwKS5zdHlsZS5wYWdl
QnJlYWtJbnNpZGUgPSAiYXZvaWQiOworCisgICAgY3JlYXRlQmxvY2tXaXRoUmF0aW9Ub1BhZ2VI
ZWlnaHQoInBhZ2U1IiwgMC44KS5zdHlsZS5wYWdlQnJlYWtCZWZvcmUgPSAiYWx3YXlzIjsKKyAg
ICAvLyBibG9jayAncGFnZTUtMicgaXMgYSB2ZXJ5IGxhcmdlIGJsb2NrLCBvY2N1cHlpbmcgbW9y
ZSB0aGFuIDIgcGFnZXMuCisgICAgLy8gV2UgZG9uJ3QgZGVmaW5lIGZyb20gd2hlcmUgdGhpcyBs
YXJnZSBibG9jayBzdGFydHMuIE1heWJlIGZyb20gdGhlIG5leHQgcGFnZS4KKyAgICBjcmVhdGVC
bG9ja1dpdGhOdW1iZXJPZkxpbmVzKCJwYWdlNW9yNiIsIDIwICogMiArIDEwKS5zdHlsZS5wYWdl
QnJlYWtJbnNpZGUgPSAiYXZvaWQiOworICAgIGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdlSGVp
Z2h0KCJwYWdlOCIsIDAuMSk7CisKKyAgICBjcmVhdGVCbG9ja1dpdGhSYXRpb1RvUGFnZUhlaWdo
dCgicGFnZTktMSIsIDAuMSkuc3R5bGUucGFnZUJyZWFrQmVmb3JlID0gImFsd2F5cyI7CisgICAg
Y3JlYXRlQmxvY2tXaXRoUmF0aW9Ub1BhZ2VIZWlnaHQoInBhZ2U5LTIiLCAwLjEpLnN0eWxlLnBh
Z2VCcmVha0FmdGVyID0gImFsd2F5cyI7CisgICAgLy8gTWFrZSBzdXJlIHBhZ2UtYnJlYWsgb25s
eSBoYXBwZW5zIG9uY2UsIG5vdCB0d2ljZS4KKyAgICBjcmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxp
bmVzKCJwYWdlMTAiLCAyMCkuc3R5bGUucGFnZUJyZWFrSW5zaWRlID0gImF2b2lkIjsKKworICAg
IHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hvdWxkQmUoJ3BhZ2UxLTEnLCAxKTsKKyAgICBwYWdlTnVt
YmVyRm9yRWxlbWVudFNob3VsZEJlKCdwYWdlMS0yJywgMSk7CisgICAgcGFnZU51bWJlckZvckVs
ZW1lbnRTaG91bGRCZSgncGFnZTInLCAyKTsKKworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hv
dWxkQmUoJ3BhZ2UzJywgMyk7CisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91bGRCZSgncGFn
ZTQnLCA0KTsKKworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hvdWxkQmUoJ3BhZ2U1JywgNSk7
CisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91bGRCZSgncGFnZTgnLCA4KTsKKworICAgIHBh
Z2VOdW1iZXJGb3JFbGVtZW50U2hvdWxkQmUoJ3BhZ2U5LTEnLCA5KTsKKyAgICBwYWdlTnVtYmVy
Rm9yRWxlbWVudFNob3VsZEJlKCdwYWdlOS0yJywgOSk7CisgICAgcGFnZU51bWJlckZvckVsZW1l
bnRTaG91bGRCZSgncGFnZTEwJywgMTApOworCisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpKTsKK30KKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9zY3Jp
cHQtdGVzdHMvcGFnZS1icmVhay1pbnNpZGUuanMgYi9MYXlvdXRUZXN0cy9wcmludGluZy9zY3Jp
cHQtdGVzdHMvcGFnZS1icmVhay1pbnNpZGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI4YTgxODE1NzUzMDQ1ODdiYTQ1MDliOTliNmY0NDA1NTg3NTgzMDguLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcv
c2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWstaW5zaWRlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjIg
KzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3QgZm9yIHBhZ2UtYnJlYWstaW5zaWRlOmF2b2lkIik7
Ci0KLWZ1bmN0aW9uIGNyZWF0ZVBhcmFncmFwaChpZCwgaGVpZ2h0KQotewotICAgIHZhciBlbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZWxlbWVudC5pZCA9IGlk
OwotICAgIGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0OwotICAgIGVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImZvb2JhciIpKTsKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic2FuZGJveCIpLmFwcGVuZENoaWxkKGVsZW1lbnQpOwotICAgIHJldHVy
biBlbGVtZW50OwotfQotCi12YXIgcGFnZUhlaWdodEluUGl4ZWxzID0gMTAwMDsKLQotZnVuY3Rp
b24gcGFnZU51bWJlcihpZCkgewotICByZXR1cm4gbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51
bWJlckZvckVsZW1lbnRCeUlkKGlkLCAxMDAwLCBwYWdlSGVpZ2h0SW5QaXhlbHMpOwotfQotCi1j
cmVhdGVQYXJhZ3JhcGgoInBhZ2UxIiwgOTAwKS5zdHlsZS5wYWdlQnJlYWtCZWZvcmUgPSAiYWx3
YXlzIjsKLWNyZWF0ZVBhcmFncmFwaCgicGFnZTIiLCA5MDApLnN0eWxlLnBhZ2VCcmVha0luc2lk
ZSA9ICJhdm9pZCI7Ci0KLWNyZWF0ZVBhcmFncmFwaCgicGFnZTMtMSIsIDkwMCkuc3R5bGUucGFn
ZUJyZWFrQmVmb3JlID0gImFsd2F5cyI7Ci1jcmVhdGVQYXJhZ3JhcGgoInBhZ2UzLTIiLCAxMDAp
LnN0eWxlLnBhZ2VCcmVha0luc2lkZSA9ICJhdm9pZCI7Ci0KLWNyZWF0ZVBhcmFncmFwaCgicGFn
ZTQiLCA5MDApLnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJhbHdheXMiOwotY3JlYXRlUGFyYWdy
YXBoKCJwYWdlNSIsIDEwMSkuc3R5bGUucGFnZUJyZWFrSW5zaWRlID0gImF2b2lkIjsKLQotY3Jl
YXRlUGFyYWdyYXBoKCJwYWdlNiIsIDEwMCkuc3R5bGUucGFnZUJyZWFrQmVmb3JlID0gImFsd2F5
cyI7Ci1jcmVhdGVQYXJhZ3JhcGgoInBhZ2U3IiwgMjEwMCkuc3R5bGUucGFnZUJyZWFrSW5zaWRl
ID0gImF2b2lkIjsKLWNyZWF0ZVBhcmFncmFwaCgicGFnZTkiLCAxMDApOwotCi1jcmVhdGVQYXJh
Z3JhcGgoInBhZ2UxMC0xIiwgMTAwKS5zdHlsZS5wYWdlQnJlYWtCZWZvcmUgPSAiYWx3YXlzIjsK
LWNyZWF0ZVBhcmFncmFwaCgicGFnZTEwLTIiLCAxMDApLnN0eWxlLnBhZ2VCcmVha0FmdGVyID0g
ImFsd2F5cyI7Ci0vLyBNYWtlIHN1cmUgcGFnZS1icmVhayBvbmx5IGhhcHBlbnMgb25jZSwgbm90
IHR3aWNlLgotY3JlYXRlUGFyYWdyYXBoKCJwYWdlMTEiLCA5MDApLnN0eWxlLnBhZ2VCcmVha0lu
c2lkZSA9ICJhdm9pZCI7Ci0KLS8vIEJlZm9yZSBjYWxsaW5nICJzaG91bGRCZSIgdGVzdHMsIHNl
dHMgImRpc3BsYXk6IG5vbmUiIHN0eWxlIHRvIHxjb25zb2xlfCBlbGVtZW50IHNvIHRoYXQgdGhl
IHJlc3VsdHMgb2YgcGFnZU51bWJlciBzaG91bGQgbm90IGJlIGFmZmVjdGVkLgotLy8gRklYTUU6
IFVzZSBmdW5jdGlvbnMgZGVmaW5lZCBpbiBwcmludGluZy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEt
dGVzdC11dGlscy5qcyBpbnN0ZWFkIG9mIHRoaXMgaGFjay4KLWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLQotc2hvdWxkQmUoInBhZ2VO
dW1iZXIoJ3BhZ2UxJykiLCAiMSIpOwotc2hvdWxkQmUoInBhZ2VOdW1iZXIoJ3BhZ2UyJykiLCAi
MiIpOwotCi1zaG91bGRCZSgicGFnZU51bWJlcigncGFnZTMtMScpIiwgIjMiKTsKLXNob3VsZEJl
KCJwYWdlTnVtYmVyKCdwYWdlMy0yJykiLCAiMyIpOwotCi1zaG91bGRCZSgicGFnZU51bWJlcign
cGFnZTQnKSIsICI0Iik7Ci1zaG91bGRCZSgicGFnZU51bWJlcigncGFnZTUnKSIsICI1Iik7Ci0K
LXNob3VsZEJlKCJwYWdlTnVtYmVyKCdwYWdlNicpIiwgIjYiKTsKLXNob3VsZEJlKCJwYWdlTnVt
YmVyKCdwYWdlNycpIiwgIjciKTsKLXNob3VsZEJlKCJwYWdlTnVtYmVyKCdwYWdlOScpIiwgIjki
KTsKLQotc2hvdWxkQmUoInBhZ2VOdW1iZXIoJ3BhZ2UxMC0xJykiLCAiMTAiKTsKLXNob3VsZEJl
KCJwYWdlTnVtYmVyKCdwYWdlMTAtMicpIiwgIjEwIik7Ci1zaG91bGRCZSgicGFnZU51bWJlcign
cGFnZTExJykiLCAiMTEiKTsKLQotZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5z
dHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKLQotZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMv
cGFnZU51bWVyRm9yRWxlbWVudEJ5SWQuanMgYi9MYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQt
dGVzdHMvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQuanMKaW5kZXggODdkODhlYzZhNDdkZmQ2ZTFh
Yjk0ZjVkZGRmMGU3MGZhNGU1NzY3YS4uMjY4ODUzOTI3OWJmNzE5YWUxZmIxZGRlMzhkNTlhYmYx
MzUwMmNhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3Bh
Z2VOdW1lckZvckVsZW1lbnRCeUlkLmpzCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3Njcmlw
dC10ZXN0cy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC5qcwpAQCAtMSwzMSArMSwyMCBAQAogZGVz
Y3JpcHRpb24oIlRlc3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVt
ZW50QnlJZCgpIik7CiAKLWZ1bmN0aW9uIGNyZWF0ZVBhcmFncmFwaChpZCkKK2Z1bmN0aW9uIHRl
c3QoKQogewotICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
Ci0gICAgZWxlbWVudC5pZCA9IGlkOwotICAgIGVsZW1lbnQud2lkdGggPSAxMDA7Ci0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhbmRib3giKS5hcHBlbmRDaGlsZChlbGVtZW50KTsKLSAg
ICByZXR1cm4gZWxlbWVudDsKLX0KLQotdmFyIGZpcnN0UGFnZSA9IGNyZWF0ZVBhcmFncmFwaCgi
Zmlyc3RQYWdlIik7Ci1maXJzdFBhZ2Uuc3R5bGUuaGVpZ2h0ID0gMTAwMDsKLQotdmFyIHNlY29u
ZFBhZ2UgPSBjcmVhdGVQYXJhZ3JhcGgoInNlY29uZFBhZ2UiKTsKLXNlY29uZFBhZ2Uuc3R5bGUu
aGVpZ2h0ID0gMTAwMDsKKyAgICAvLyBBc3N1bWluZyB0aGF0IG9uZSBwYWdlIGhhcyBhYm91dCAy
MCBsaW5lcy4KKyAgICBjcmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxpbmVzKCJmaXJzdFBhZ2UiLCAy
MCk7CisgICAgY3JlYXRlQmxvY2tXaXRoTnVtYmVyT2ZMaW5lcygic2Vjb25kUGFnZSIsIDIwKTsK
IAotdmFyIHRoaXJkUGFnZSA9IGNyZWF0ZVBhcmFncmFwaCgidGhpcmRQYWdlIik7Ci10aGlyZFBh
Z2Uuc3R5bGUuaGVpZ2h0ID0gMTAwOworICAgIGNyZWF0ZUJsb2NrV2l0aE51bWJlck9mTGluZXMo
InRoaXJkUGFnZSIsIDUpOworICAgIGNyZWF0ZUJsb2NrV2l0aE51bWJlck9mTGluZXMoInRoaXJk
UGFnZTIiLCA1KTsKIAotdmFyIHRoaXJkUGFnZTIgPSBjcmVhdGVQYXJhZ3JhcGgoInRoaXJkUGFn
ZTIiKTsKLXRoaXJkUGFnZTIuc3R5bGUuaGVpZ2h0ID0gNzAwOworICAgIHBhZ2VOdW1iZXJGb3JF
bGVtZW50U2hvdWxkQmUoJ2ZpcnN0UGFnZScsIDApOworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50
U2hvdWxkQmUoJ3NlY29uZFBhZ2UnLCAxKTsKKyAgICBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3Vs
ZEJlKCd0aGlyZFBhZ2UnLCAyKTsKKyAgICBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3VsZEJlKCd0
aGlyZFBhZ2UyJywgMik7CiAKLXNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVt
YmVyRm9yRWxlbWVudEJ5SWQoJ2ZpcnN0UGFnZScsIDEwMDAsIDEwMDApIiwgIjAiKTsKLXNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ3NlY29u
ZFBhZ2UnLCAxMDAwLCAxMDAwKSIsICIxIik7Ci1zaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0aGlyZFBhZ2UnLCAxMDAwLCAxMDAwKSIsICIy
Iik7Ci1zaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRC
eUlkKCd0aGlyZFBhZ2UyJywgMTAwMCwgMTAwMCkiLCAiMiIpOwotCi1kb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYW5kYm94IikpOworICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhbmRib3giKSk7
Cit9CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58638</attachid>
            <date>2010-06-14 05:43:59 -0700</date>
            <delta_ts>2010-07-23 22:17:52 -0700</delta_ts>
            <desc>refactor-layouttests-for-printing-fix-output-order</desc>
            <filename>bug-40559-20100614214357.patch</filename>
            <type>text/plain</type>
            <size>30573</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MWY5N2Q0YWE2YjdkZmRiZDRlZmU2NGQxNmZhMzI1M2UzOGZlNGZkLi43ZjcwOGIz
NzZmMTJlYzhmMTFkMjY1YmRlZWFkZTNlMDAwZjk4NWNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTAtMDYtMTQgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIGxheW91dCB0
ZXN0cyBmb3IgcHJpbnRpbmcgdG8gdXNlIGNvbW1vbiBjb2RlLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDU1OQorCisgICAgICAgICogcHJpbnRp
bmcvbnVtYmVyT2ZQYWdlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcHJpbnRpbmcvbnVtYmVy
T2ZQYWdlcy5odG1sOgorICAgICAgICAqIHByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwcmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZs
b3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWZv
ci1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIHByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLmh0
bWw6CisgICAgICAgICogcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUtYXZvaWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcmludGluZy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcHJpbnRpbmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQu
aHRtbDoKKyAgICAgICAgKiBwcmludGluZy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGls
cy5qczoKKyAgICAgICAgKG51bWJlck9mUGFnZXNTaG91bGRCZSk6CisgICAgICAgIChyYXRpb1Rv
UGFnZUhlaWdodFRvUGl4ZWxzKToKKyAgICAgICAgKGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdl
SGVpZ2h0KToKKyAgICAgICAgKGNyZWF0ZUJsb2NrV2l0aE51bWJlck9mTGluZXMpOgorICAgICAg
ICAqIHByaW50aW5nL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sOgorICAgICAgICAqIHByaW50
aW5nL3NjcmlwdC10ZXN0cy9udW1iZXJPZlBhZ2VzLmpzOgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWstYWx3YXlzLWZvci1vdmVyZmxv
dy5qczoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHByaW50aW5nL3NjcmlwdC10ZXN0cy9w
YWdlLWJyZWFrLWFsd2F5cy5qczoKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHByaW50aW5n
L3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiBwcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZS1icmVhay1pbnNp
ZGUuanM6IFJlbW92ZWQuCisgICAgICAgICogcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2VOdW1l
ckZvckVsZW1lbnRCeUlkLmpzOgorICAgICAgICAodGVzdCk6CisKIDIwMTAtMDUtMTkgIE1hcmlv
IFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvbnVtYmVy
T2ZQYWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2Vz
LWV4cGVjdGVkLnR4dAppbmRleCA4YWRiNmJlMzJkOWYwNWJmNjkwNTAwMTkxOThlYWQwMmJkZTVi
MDc1Li45MzI1MjcwNDkzNTIzZDMxNDE5YTA4MzRkZmU4YWQ2ZjA3NjUyM2IwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2VzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2VzLWV4cGVjdGVkLnR4dApAQCAtMyw4ICsz
LDExIEBAIFRlc3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mUGFnZXMoKQogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIubnVt
YmVyT2ZQYWdlcygxMDAwLCAxMDAwKSBpcyAyCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLm51
bWJlck9mUGFnZXMoMTAwMDAsIDEwMDAwKSBpcyAxCisKK1BBU1M6IG51bWJlciBvZiBwYWdlcyBp
cyAyCitQQVNTOiBudW1iZXIgb2YgcGFnZXMgaXMgMQorQWxsIHRlc3RzIHBhc3NlZAorCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3ByaW50aW5nL251bWJlck9mUGFnZXMuaHRtbCBiL0xheW91dFRlc3RzL3By
aW50aW5nL251bWJlck9mUGFnZXMuaHRtbAppbmRleCA1MDY2ODIxMTA1ODIzMWIwYWVhMjNiZDRl
YTkwNmE5NDBjOGI5MWNkLi43ODE1NWZjYWU0NmQ5ZWI2MWM0MGQwYjlkY2UzOTAxYTFkZDEwOTAz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wcmludGluZy9udW1iZXJPZlBhZ2VzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvbnVtYmVyT2ZQYWdlcy5odG1sCkBAIC0zLDEyICszLDE0
IEBACiA8aGVhZD4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcGFn
ZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8ZGl2IGlkPSJz
YW5kYm94Ij48L2Rpdj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbnVtYmVyT2ZQYWdlcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PnJ1blByaW50aW5nVGVzdCh0ZXN0KTs8L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFn
ZS1icmVhay1hbHdheXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1i
cmVhay1hbHdheXMtZXhwZWN0ZWQudHh0CmluZGV4IDc5MWEzNTljMzgzYjM2MjVjN2U1MzBmMTdj
MTJlYmM4OGNiMTUwNTkuLmVmMTI0NmUxYTg5MDEyMTkxM2NlNmI1NjEwYTA3OTBhMjVmZDk3YTMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy1leHBl
Y3RlZC50eHQKQEAgLTMsMTAgKzMsMTMgQEAgVGVzdCBmb3IgcGFnZS1icmVhay1iZWZvcmU6YWx3
YXlzIGFuZCBwYWdlLWJyZWFrLWFmdGVyOmFsd2F5cwogT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgogCiAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlk
KCdmaXJzdFBhZ2UnKSBpcyAwCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJG
b3JFbGVtZW50QnlJZCgnc2Vjb25kUGFnZTEnKSBpcyAxCi1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgnc2Vjb25kUGFnZTInKSBpcyAxCi1QQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgndGhpcmRQYWdlJykg
aXMgMgorCitQQVNTOiBwYWdlIG51bWJlciBvZiAiZmlyc3RQYWdlIiBpcyAwCitQQVNTOiBwYWdl
IG51bWJlciBvZiAic2Vjb25kUGFnZTEiIGlzIDEKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJzZWNv
bmRQYWdlMiIgaXMgMQorUEFTUzogcGFnZSBudW1iZXIgb2YgInRoaXJkUGFnZSIgaXMgMgorQWxs
IHRlc3RzIHBhc3NlZAorCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3
YXlzLWZvci1vdmVyZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdl
LWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CmluZGV4IDk3ZWZhZDI2OTVl
NzgzNmYxMDIyMmEzZjZjZjY0ZDM1YzZmM2FiMjkuLmRkZmViMzE2ZWU1NzVkYTRjZmU0MTVjY2E1
N2NiYTFhMGI2YjIzN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJl
YWstYWx3YXlzLWZvci1vdmVyZmxvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcHJp
bnRpbmcvcGFnZS1icmVhay1hbHdheXMtZm9yLW92ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMywx
NSArMywxOCBAQCBUZXN0IHBhZ2UtYnJlYWste2JlZm9yZSxhZnRlcn06YWx3YXlzIGZvciBvdmVy
Zmxvdzp7dmlzaWJsZSxoaWRkZW4sc2Nyb2xsLGF1dG99CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCiAKIAotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5
SWQoJ3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVyZmxvdzp2aXNpYmxlJykg
aXMgMQotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQo
J3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVyZmxvdzpoaWRkZW4nKSBpcyAy
Ci1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgndGVz
dC1wYWdlLWJyZWFrLWJlZm9yZTphbHdheXMtZm9yLW92ZXJmbG93OnNjcm9sbCcpIGlzIDMKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0ZXN0LXBh
Z2UtYnJlYWstYmVmb3JlOmFsd2F5cy1mb3Itb3ZlcmZsb3c6YXV0bycpIGlzIDQKLVBBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0ZXN0LXBhZ2UtYnJl
YWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzp2aXNpYmxlJykgaXMgNAotUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ3Rlc3QtcGFnZS1icmVhay1h
ZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OmhpZGRlbicpIGlzIDUKLVBBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6
YWx3YXlzLWZvci1vdmVyZmxvdzpzY3JvbGwnKSBpcyA2Ci1QQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgndGVzdC1wYWdlLWJyZWFrLWFmdGVyOmFsd2F5
cy1mb3Itb3ZlcmZsb3c6YXV0bycpIGlzIDcKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFn
ZU51bWJlckZvckVsZW1lbnRCeUlkKCd0ZXN0LWxhc3QtcGFnZScpIGlzIDgKKworUEFTUzogcGFn
ZSBudW1iZXIgb2YgInRlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVyZmxvdzp2
aXNpYmxlIiBpcyAxCitQQVNTOiBwYWdlIG51bWJlciBvZiAidGVzdC1wYWdlLWJyZWFrLWJlZm9y
ZTphbHdheXMtZm9yLW92ZXJmbG93OmhpZGRlbiIgaXMgMgorUEFTUzogcGFnZSBudW1iZXIgb2Yg
InRlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVyZmxvdzpzY3JvbGwiIGlzIDMK
K1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJ0ZXN0LXBhZ2UtYnJlYWstYmVmb3JlOmFsd2F5cy1mb3It
b3ZlcmZsb3c6YXV0byIgaXMgNAorUEFTUzogcGFnZSBudW1iZXIgb2YgInRlc3QtcGFnZS1icmVh
ay1hZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OnZpc2libGUiIGlzIDQKK1BBU1M6IHBhZ2UgbnVt
YmVyIG9mICJ0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzpoaWRkZW4i
IGlzIDUKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJ0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlz
LWZvci1vdmVyZmxvdzpzY3JvbGwiIGlzIDYKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJ0ZXN0LXBh
Z2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzphdXRvIiBpcyA3CitQQVNTOiBwYWdl
IG51bWJlciBvZiAidGVzdC1sYXN0LXBhZ2UiIGlzIDgKK0FsbCB0ZXN0cyBwYXNzZWQKKwogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZsb3cuaHRt
bCBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWZvci1vdmVyZmxvdy5o
dG1sCmluZGV4IGVlYWI2ZWZlMDE3OTA3YmU2NTcyZTk0ODVhYWQyNGJlZTExMDA5NWUuLjczYTM0
ZjU4NWU3OTQ0NTJjMDczM2QwMTE3YjUwNTdkYmNhYzJmYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWZvci1vdmVyZmxvdy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlzLWZvci1vdmVyZmxvdy5odG1sCkBA
IC0zLDEyICszLDE0IEBACiA8aGVhZD4KIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keT4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CiA8ZGl2IGlkPSJzYW5kYm94Ij48L2Rpdj4KIDxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcGFn
ZS1icmVhay1hbHdheXMtZm9yLW92ZXJmbG93LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+cnVuUHJp
bnRpbmdUZXN0KHRlc3QpOzwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWFsd2F5cy5odG1sIGIvTGF5b3V0
VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1hbHdheXMuaHRtbAppbmRleCBmY2Q5YWEzYmViZDRl
NTg3MzZlMzE4ZmNiZjZlZGJiZjA2M2QyZGZjLi44NzE3NWVhNzhmYjliMTRkMDAwMWUxY2YyOWU5
ZWExY2VhODI2ODk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFr
LWFsd2F5cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWstYWx3YXlz
Lmh0bWwKQEAgLTMsMTIgKzMsMTQgQEAKIDxoZWFkPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+CiA8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wYWdlZC1tZWRpYS10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgogPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9wYWdlLWJyZWFrLWFsd2F5cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PnJ1blByaW50aW5n
VGVzdCh0ZXN0KTs8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUtYXZvaWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUtYXZvaWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNlYmJjODU0YjE1ZmNkODViNzg1NjJkNzFlYjkwOGY1NzY1M2NkMzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWluc2lk
ZS1hdm9pZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMiBAQAorVGVzdCBmb3IgcGFnZS1icmVh
ay1pbnNpZGU6YXZvaWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUEFTUzog
cGFnZSBudW1iZXIgb2YgInBhZ2UxLTEiIGlzIDEKK1BBU1M6IHBhZ2UgbnVtYmVyIG9mICJwYWdl
MS0yIiBpcyAxCitQQVNTOiBwYWdlIG51bWJlciBvZiAicGFnZTIiIGlzIDIKK1BBU1M6IHBhZ2Ug
bnVtYmVyIG9mICJwYWdlMyIgaXMgMworUEFTUzogcGFnZSBudW1iZXIgb2YgInBhZ2U0IiBpcyA0
CitQQVNTOiBwYWdlIG51bWJlciBvZiAicGFnZTUiIGlzIDUKK1BBU1M6IHBhZ2UgbnVtYmVyIG9m
ICJwYWdlOCIgaXMgOAorUEFTUzogcGFnZSBudW1iZXIgb2YgInBhZ2U5LTEiIGlzIDkKK1BBU1M6
IHBhZ2UgbnVtYmVyIG9mICJwYWdlOS0yIiBpcyA5CitQQVNTOiBwYWdlIG51bWJlciBvZiAicGFn
ZTEwIiBpcyAxMAorQWxsIHRlc3RzIHBhc3NlZAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRp
bmcvcGFnZS1icmVhay1pbnNpZGUuaHRtbCBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJl
YWstaW5zaWRlLWF2b2lkLmh0bWwKc2ltaWxhcml0eSBpbmRleCA2OCUKcmVuYW1lIGZyb20gTGF5
b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUuaHRtbApyZW5hbWUgdG8gTGF5b3V0
VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUtYXZvaWQuaHRtbAppbmRleCBhZWVjNmFm
OTk0NjVlZjJkNGM3OTBlODE1ZTM2MmNhN2U5YTEyNzQyLi5lYzkzYzg2YjE4MjY0OGNmZDZkMGY1
YmI4Zjk0YTM1NDE3MjllZTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdl
LWJyZWFrLWluc2lkZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2UtYnJlYWst
aW5zaWRlLWF2b2lkLmh0bWwKQEAgLTMsMTIgKzMsMTQgQEAKIDxoZWFkPgogPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wYWdlZC1tZWRpYS10ZXN0LXV0aWxzLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgotPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWluc2lkZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWstaW5zaWRlLWF2b2lkLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+cnVuUHJpbnRpbmdUZXN0KHRlc3QpOzwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWluc2lk
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlLWJyZWFrLWluc2lkZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkYzU2MWYyYTNmMjRk
YzQzYTJmYjc4NTQ3YTdmYTkxYzk0ZGZkNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcGFnZS1icmVhay1pbnNpZGUt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGVzdCBmb3IgcGFn
ZS1icmVhay1pbnNpZGU6YXZvaWQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1MgcGFnZU51bWJlcigncGFnZTEnKSBpcyAxCi1QQVNTIHBhZ2VOdW1iZXIoJ3BhZ2UyJykgaXMg
MgotUEFTUyBwYWdlTnVtYmVyKCdwYWdlMy0xJykgaXMgMwotUEFTUyBwYWdlTnVtYmVyKCdwYWdl
My0yJykgaXMgMwotUEFTUyBwYWdlTnVtYmVyKCdwYWdlNCcpIGlzIDQKLVBBU1MgcGFnZU51bWJl
cigncGFnZTUnKSBpcyA1Ci1QQVNTIHBhZ2VOdW1iZXIoJ3BhZ2U2JykgaXMgNgotUEFTUyBwYWdl
TnVtYmVyKCdwYWdlNycpIGlzIDcKLVBBU1MgcGFnZU51bWJlcigncGFnZTknKSBpcyA5Ci1QQVNT
IHBhZ2VOdW1iZXIoJ3BhZ2UxMC0xJykgaXMgMTAKLVBBU1MgcGFnZU51bWJlcigncGFnZTEwLTIn
KSBpcyAxMAotUEFTUyBwYWdlTnVtYmVyKCdwYWdlMTEnKSBpcyAxMQotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3ByaW50aW5nL3BhZ2VOdW1lckZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3ByaW50aW5nL3BhZ2VOdW1lckZvckVsZW1lbnRCeUlkLWV4cGVjdGVkLnR4dAppbmRl
eCAxYTEzODFiMzViMTEyZGZhMGRhMWMwMTc1MjUxN2E2ZDI0Mzc1M2Q2Li5hYjcyZmNhZTdiYzgw
OWY5YjIyNzA5MzBmZGFhMzdkZDRmMmMxYTRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wcmlu
dGluZy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcHJpbnRpbmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQtZXhwZWN0ZWQudHh0CkBAIC0zLDEw
ICszLDEzIEBAIFRlc3QgZm9yIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVt
ZW50QnlJZCgpCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ2ZpcnN0UGFnZScsIDEwMDAsIDEw
MDApIGlzIDAKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRC
eUlkKCdzZWNvbmRQYWdlJywgMTAwMCwgMTAwMCkgaXMgMQotUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ3RoaXJkUGFnZScsIDEwMDAsIDEwMDApIGlz
IDIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCd0
aGlyZFBhZ2UyJywgMTAwMCwgMTAwMCkgaXMgMgorCitQQVNTOiBwYWdlIG51bWJlciBvZiAiZmly
c3RQYWdlIiBpcyAwCitQQVNTOiBwYWdlIG51bWJlciBvZiAic2Vjb25kUGFnZSIgaXMgMQorUEFT
UzogcGFnZSBudW1iZXIgb2YgInRoaXJkUGFnZSIgaXMgMgorUEFTUzogcGFnZSBudW1iZXIgb2Yg
InRoaXJkUGFnZTIiIGlzIDIKK0FsbCB0ZXN0cyBwYXNzZWQKKwogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
cmludGluZy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC5odG1sIGIvTGF5b3V0VGVzdHMvcHJpbnRp
bmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQuaHRtbAppbmRleCAwZGFlOThlNWZiM2JiMTg4MmVm
YjkxZTkyZGVkYmFhMjI2MmIwZGYzLi5mMzJlM2U2ZDRjZWVkYTkzYjdmN2YzNzdjZTNmYWM1MGEw
NjI1ZmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wcmludGluZy9wYWdlTnVtZXJGb3JFbGVt
ZW50QnlJZC5odG1sCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5nL3BhZ2VOdW1lckZvckVsZW1l
bnRCeUlkLmh0bWwKQEAgLTMsMTIgKzMsMTQgQEAKIDxoZWFkPgogPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+CiA8c2Ny
aXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wYWdlZC1tZWRpYS10ZXN0LXV0aWxzLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgogPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PnJ1blByaW50aW5nVGVzdCh0ZXN0KTs8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvcmVzb3VyY2VzL3BhZ2VkLW1lZGlhLXRl
c3QtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9wcmludGluZy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEt
dGVzdC11dGlscy5qcwppbmRleCAxNjE5Mjk4MjU0MzNiOWU4NjA0OWYyZmUxNzY0NzBjZjhiMmFl
YjM3Li5lMzQyMDhlOTI0MjMxMDY3NDhiMTIxZjc1NTE3MTk5N2NkYTQwNjUwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wcmludGluZy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11dGlscy5q
cworKysgYi9MYXlvdXRUZXN0cy9wcmludGluZy9yZXNvdXJjZXMvcGFnZWQtbWVkaWEtdGVzdC11
dGlscy5qcwpAQCAtMjEsOSArMjEsMTUgQEAgZnVuY3Rpb24gcGFnZU51bWJlckZvckVsZW1lbnRT
aG91bGRCZShpZCwgZXhwZWN0ZWRQYWdlTnVtYmVyKQogICAgIH0KIH0KIAotZnVuY3Rpb24gbnVt
YmVyT2ZQYWdlc1Nob3VsZEJlKGV4cGVjdGVkTnVtYmVyT2ZQYWdlcykKK2Z1bmN0aW9uIG51bWJl
ck9mUGFnZXNTaG91bGRCZShleHBlY3RlZE51bWJlck9mUGFnZXMsIHBhZ2VXaWR0aEluUGl4ZWxz
LCBwYWdlSGVpZ2h0SW5QaXhlbHMpCiB7Ci0gICAgdmFyIGFjdHVhbE51bWJlck9mUGFnZXMgPSBs
YXlvdXRUZXN0Q29udHJvbGxlci5udW1iZXJPZlBhZ2VzKCk7CisgICAgLy8gcGFnZVdpZHRoSW5Q
aXhlbHMgYW5kIHBhZ2VIZWlnaHRJblBpeGVscyBjYW4gYmUgb21pdHRlZC4gSWYgb21pdHRlZCwg
ODAweDYwMCBpcyB1c2VkLgorICAgIHZhciBhY3R1YWxOdW1iZXJPZlBhZ2VzOworICAgIGlmIChw
YWdlV2lkdGhJblBpeGVscyAmJiBwYWdlSGVpZ2h0SW5QaXhlbHMpCisgICAgICAgIGFjdHVhbE51
bWJlck9mUGFnZXMgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5udW1iZXJPZlBhZ2VzKHBhZ2VXaWR0
aEluUGl4ZWxzLCBwYWdlSGVpZ2h0SW5QaXhlbHMpOworICAgIGVsc2UKKyAgICAgICAgYWN0dWFs
TnVtYmVyT2ZQYWdlcyA9IGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mUGFnZXMoKTsKKwog
ICAgIGlmIChhY3R1YWxOdW1iZXJPZlBhZ2VzID09IGV4cGVjdGVkTnVtYmVyT2ZQYWdlcykKICAg
ICAgICAgYXBwZW5kUmVzdWx0KCdQQVNTOiBudW1iZXIgb2YgcGFnZXMgaXMgJyArIGFjdHVhbE51
bWJlck9mUGFnZXMpOwogICAgIGVsc2UgewpAQCAtNTAsNSArNTYsMzUgQEAgZnVuY3Rpb24gcnVu
UHJpbnRpbmdUZXN0KHRlc3RGdW5jdGlvbikKIAogICAgIHZhciByZXN1bHRFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwogICAgIHJlc3VsdEVsZW1lbnQuaW5uZXJIVE1MID0g
X3Jlc3VsdHM7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN1bHRFbGVtZW50KTsK
KyAgICB2YXIgb3V0cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKSB8fCBk
b2N1bWVudC5ib2R5OworICAgIG91dHB1dC5hcHBlbmRDaGlsZChyZXN1bHRFbGVtZW50KTsKK30K
KworZnVuY3Rpb24gcmF0aW9Ub1BhZ2VIZWlnaHRUb1BpeGVscyhoZWlnaHRJblJhdGlvVG9QYWdl
SGVpZ2h0KQoreworICB2YXIgcGFnZUhlaWdodEluUGl4ZWxzID0gNjAwOworICByZXR1cm4gTWF0
aC5mbG9vcihwYWdlSGVpZ2h0SW5QaXhlbHMgKiBoZWlnaHRJblJhdGlvVG9QYWdlSGVpZ2h0KTsK
K30KKworZnVuY3Rpb24gY3JlYXRlQmxvY2tXaXRoUmF0aW9Ub1BhZ2VIZWlnaHQoaWQsIGhlaWdo
dEluUmF0aW9Ub1BhZ2VIZWlnaHQpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICBlbGVtZW50LmlkID0gaWQ7CisgICAgZWxlbWVudC5zdHls
ZS5oZWlnaHQgPSByYXRpb1RvUGFnZUhlaWdodFRvUGl4ZWxzKGhlaWdodEluUmF0aW9Ub1BhZ2VI
ZWlnaHQpICsgInB4IjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpLmFw
cGVuZENoaWxkKGVsZW1lbnQpOworICAgIHJldHVybiBlbGVtZW50OworfQorCitmdW5jdGlvbiBj
cmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxpbmVzKGlkLCBjaGlsZExpbmVzKQoreworICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZWxlbWVudC5pZCA9
IGlkOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRMaW5lczsgKytpKSB7CisgICAgICAg
IGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImxpbmUiICsgaSkp
OworICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJy
IikpOworICAgIH0KKyAgICAvLyBNYWtlIHN1cmUgdGhhdCBvbmUgcGFnZSBoYXMgYWJvdXQgMjAg
bGluZXMuCisgICAgZWxlbWVudC5zdHlsZS5saW5lSGVpZ2h0ID0gcmF0aW9Ub1BhZ2VIZWlnaHRU
b1BpeGVscygwLjA1KSArICJweCI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhbmRi
b3giKS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICByZXR1cm4gZWxlbWVudDsKIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIv
TGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKaW5kZXggNzlj
YWFjNDYzYWNhNTJjMjk1MmZhMWYxMTFhYWY4ZDlmOTcwMjg0MC4uNmU3MzBiMTU1ZDQ2MTRiNThj
ZTRmN2FjM2E1OThjMGI0YzdiMDU0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcv
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTMsMTIgKzMsMTQgQEAKIDxoZWFkPgogPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+CiA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9wYWdlZC1tZWRpYS10ZXN0LXV0aWxz
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxkaXYgaWQ9InNhbmRib3giPjwvZGl2PgogPHNj
cmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQ+cnVuUHJpbnRp
bmdUZXN0KHRlc3QpOzwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvbnVtYmVyT2ZQYWdlcy5qcyBiL0xh
eW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9udW1iZXJPZlBhZ2VzLmpzCmluZGV4IGNh
NjQ5MDMwNDEwNjExOGU1NzQ0NTAzMGYzNDNiM2JkZmU1NGVkODUuLmU0MWFhYzRkZThmYWE0MmM5
ZmExYzY3MzM4ZTZlNGFiMjJjMmZmNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5n
L3NjcmlwdC10ZXN0cy9udW1iZXJPZlBhZ2VzLmpzCisrKyBiL0xheW91dFRlc3RzL3ByaW50aW5n
L3NjcmlwdC10ZXN0cy9udW1iZXJPZlBhZ2VzLmpzCkBAIC0xLDIzICsxLDE0IEBACiBkZXNjcmlw
dGlvbigiVGVzdCBmb3IgbGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdlcygpIik7CiAK
LWZ1bmN0aW9uIGNyZWF0ZVBhcmFncmFwaChpZCkKK2Z1bmN0aW9uIHRlc3QoKQogewotICAgIHZh
ciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZWxlbWVudC5p
ZCA9IGlkOwotICAgIGVsZW1lbnQud2lkdGggPSAxMDA7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNhbmRib3giKS5hcHBlbmRDaGlsZChlbGVtZW50KTsKLSAgICByZXR1cm4gZWxlbWVu
dDsKLX0KLQotdmFyIGZpcnN0UGFnZSA9IGNyZWF0ZVBhcmFncmFwaCgiZmlyc3RQYWdlIik7Ci1m
aXJzdFBhZ2Uuc3R5bGUuaGVpZ2h0ID0gNzAwOworICAgIGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9Q
YWdlSGVpZ2h0KCJmaXJzdFBhZ2UiLCAwLjYpOworICAgIGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9Q
YWdlSGVpZ2h0KCJzZWNvbmRQYWdlIiwgMC42KTsKIAotdmFyIHNlY29uZFBhZ2UgPSBjcmVhdGVQ
YXJhZ3JhcGgoInNlY29uZFBhZ2UiKTsKLXNlY29uZFBhZ2Uuc3R5bGUuaGVpZ2h0ID0gNzAwOwor
ICAgIG51bWJlck9mUGFnZXNTaG91bGRCZSgyKTsKKyAgICBudW1iZXJPZlBhZ2VzU2hvdWxkQmUo
MSwgMTAwMCwgMTAwMDApOwogCi1zaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVy
T2ZQYWdlcygxMDAwLCAxMDAwKSIsICIyIik7Ci1zaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xs
ZXIubnVtYmVyT2ZQYWdlcygxMDAwMCwgMTAwMDApIiwgIjEiKTsKLQotZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpKTsKKyAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYW5kYm94Iikp
OworfQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWFsd2F5cy1mb3Itb3ZlcmZs
b3cuanMgYi9MYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZS1icmVhay1hbHdh
eXMtZm9yLW92ZXJmbG93LmpzCmluZGV4IGRhMTBhNDRiOWFmZWQ1ZjcxZjdhMTE0NDMzOGM4YTBj
M2YxOTg3NDcuLjdlMzkxMzI0OGI1ZjljZDcwZDA5YTNiMzFkOTQzMWQzYTAwYTA0ZGQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWFsd2F5
cy1mb3Itb3ZlcmZsb3cuanMKKysrIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3Rz
L3BhZ2UtYnJlYWstYWx3YXlzLWZvci1vdmVyZmxvdy5qcwpAQCAtMSwzOSArMSwzOSBAQAogZGVz
Y3JpcHRpb24oIlRlc3QgcGFnZS1icmVhay17YmVmb3JlLGFmdGVyfTphbHdheXMgZm9yIG92ZXJm
bG93Ont2aXNpYmxlLGhpZGRlbixzY3JvbGwsYXV0b30gZWxlbWVudHMuIik7CiAKLXZhciBvdmVy
Zmxvd1ZhbHVlcyA9IFsidmlzaWJsZSIsICJoaWRkZW4iLCAic2Nyb2xsIiwgImF1dG8iXTsKLXZh
ciBwYWdlQnJlYWtQb3NpdGlvbnMgPSBbInBhZ2UtYnJlYWstYmVmb3JlIiwgInBhZ2UtYnJlYWst
YWZ0ZXIiXTsKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBvdmVyZmxvd1ZhbHVlcyA9IFsi
dmlzaWJsZSIsICJoaWRkZW4iLCAic2Nyb2xsIiwgImF1dG8iXTsKKyAgICB2YXIgcGFnZUJyZWFr
UG9zaXRpb25zID0gWyJwYWdlLWJyZWFrLWJlZm9yZSIsICJwYWdlLWJyZWFrLWFmdGVyIl07CiAK
LXZhciB0ZXN0SHRtbCA9ICIiOwotZm9yICh2YXIgcG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IHBh
Z2VCcmVha1Bvc2l0aW9ucy5sZW5ndGg7IHBvc2l0aW9uKyspIHsKLSAgICBmb3IgKHZhciB2YWx1
ZSA9IDA7IHZhbHVlIDwgb3ZlcmZsb3dWYWx1ZXMubGVuZ3RoOyB2YWx1ZSsrKSB7Ci0gICAgICAg
IHZhciBvdmVyZmxvd1N0eWxlID0gIm92ZXJmbG93OiIgKyBvdmVyZmxvd1ZhbHVlc1t2YWx1ZV07
Ci0gICAgICAgIHZhciBwYWdlQnJlYWtTdHlsZSA9IHBhZ2VCcmVha1Bvc2l0aW9uc1twb3NpdGlv
bl0gKyAiOmFsd2F5cyI7Ci0gICAgICAgIHZhciB0ZXN0SWQgPSAndGVzdC0nICsgcGFnZUJyZWFr
U3R5bGUgKyAnLWZvci0nICsgb3ZlcmZsb3dTdHlsZTsKLSAgICAgICAgdGVzdEh0bWwgKz0gJzxk
aXYgc3R5bGU9IicgKyBvdmVyZmxvd1N0eWxlICsgJyI+PHAgaWQ9IicgKyB0ZXN0SWQgKyAnIiBz
dHlsZT0iJyArIHBhZ2VCcmVha1N0eWxlICsgJyI+JyArIG92ZXJmbG93U3R5bGUgKyAnLCAnICsg
cGFnZUJyZWFrU3R5bGUgKyAnPC9wPjwvZGl2PlxuJzsKKyAgICB2YXIgdGVzdEh0bWwgPSAiIjsK
KyAgICBmb3IgKHZhciBwb3NpdGlvbiA9IDA7IHBvc2l0aW9uIDwgcGFnZUJyZWFrUG9zaXRpb25z
Lmxlbmd0aDsgcG9zaXRpb24rKykgeworICAgICAgICBmb3IgKHZhciB2YWx1ZSA9IDA7IHZhbHVl
IDwgb3ZlcmZsb3dWYWx1ZXMubGVuZ3RoOyB2YWx1ZSsrKSB7CisgICAgICAgICAgICB2YXIgb3Zl
cmZsb3dTdHlsZSA9ICJvdmVyZmxvdzoiICsgb3ZlcmZsb3dWYWx1ZXNbdmFsdWVdOworICAgICAg
ICAgICAgdmFyIHBhZ2VCcmVha1N0eWxlID0gcGFnZUJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uXSAr
ICI6YWx3YXlzIjsKKyAgICAgICAgICAgIHZhciB0ZXN0SWQgPSAndGVzdC0nICsgcGFnZUJyZWFr
U3R5bGUgKyAnLWZvci0nICsgb3ZlcmZsb3dTdHlsZTsKKyAgICAgICAgICAgIHRlc3RIdG1sICs9
ICc8ZGl2IHN0eWxlPSInICsgb3ZlcmZsb3dTdHlsZSArICciPjxwIGlkPSInICsgdGVzdElkICsg
JyIgc3R5bGU9IicgKyBwYWdlQnJlYWtTdHlsZSArICciPicgKyBvdmVyZmxvd1N0eWxlICsgJywg
JyArIHBhZ2VCcmVha1N0eWxlICsgJzwvcD48L2Rpdj5cbic7CisgICAgICAgIH0KICAgICB9Ci19
Ci10ZXN0SHRtbCArPSAnPHAgaWQ9InRlc3QtbGFzdC1wYWdlIj5lbmQ8L3A+JzsKLWRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzYW5kYm94IikuaW5uZXJIVE1MID0gdGVzdEh0bWw7CisgICAgdGVz
dEh0bWwgKz0gJzxwIGlkPSJ0ZXN0LWxhc3QtcGFnZSI+ZW5kPC9wPic7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNhbmRib3giKS5pbm5lckhUTUwgPSB0ZXN0SHRtbDsKIAotdmFyIGV4
cGVjdGVkVmFsdWVzID0gWwotICAgIC8vIHBhZ2UtYnJlYWste2JlZm9yZSxhZnRlcn06YWx3YXlz
IHNob3VsZCB0YWtlIGVmZmVjdCByZWdhcmRsZXNzIG9mIG92ZXJmbG93IHZhbHVlLgotICAgIFsn
dGVzdC1wYWdlLWJyZWFrLWJlZm9yZTphbHdheXMtZm9yLW92ZXJmbG93OnZpc2libGUnLCAxXSwK
LSAgICBbJ3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVyZmxvdzpoaWRkZW4n
LCAyXSwKLSAgICBbJ3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVyZmxvdzpz
Y3JvbGwnLCAzXSwKLSAgICBbJ3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVy
ZmxvdzphdXRvJywgNF0sCi0gICAgWyd0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1v
dmVyZmxvdzp2aXNpYmxlJywgNF0sCi0gICAgWyd0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlz
LWZvci1vdmVyZmxvdzpoaWRkZW4nLCA1XSwKLSAgICBbJ3Rlc3QtcGFnZS1icmVhay1hZnRlcjph
bHdheXMtZm9yLW92ZXJmbG93OnNjcm9sbCcsIDZdLAotICAgIFsndGVzdC1wYWdlLWJyZWFrLWFm
dGVyOmFsd2F5cy1mb3Itb3ZlcmZsb3c6YXV0bycsIDddLAotICAgIFsndGVzdC1sYXN0LXBhZ2Un
LCA4XQotXTsKKyAgICB2YXIgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgIC8vIHBhZ2UtYnJl
YWste2JlZm9yZSxhZnRlcn06YWx3YXlzIHNob3VsZCB0YWtlIGVmZmVjdCByZWdhcmRsZXNzIG9m
IG92ZXJmbG93IHZhbHVlLgorICAgICAgICBbJ3Rlc3QtcGFnZS1icmVhay1iZWZvcmU6YWx3YXlz
LWZvci1vdmVyZmxvdzp2aXNpYmxlJywgMV0sCisgICAgICAgIFsndGVzdC1wYWdlLWJyZWFrLWJl
Zm9yZTphbHdheXMtZm9yLW92ZXJmbG93OmhpZGRlbicsIDJdLAorICAgICAgICBbJ3Rlc3QtcGFn
ZS1icmVhay1iZWZvcmU6YWx3YXlzLWZvci1vdmVyZmxvdzpzY3JvbGwnLCAzXSwKKyAgICAgICAg
Wyd0ZXN0LXBhZ2UtYnJlYWstYmVmb3JlOmFsd2F5cy1mb3Itb3ZlcmZsb3c6YXV0bycsIDRdLAor
ICAgICAgICBbJ3Rlc3QtcGFnZS1icmVhay1hZnRlcjphbHdheXMtZm9yLW92ZXJmbG93OnZpc2li
bGUnLCA0XSwKKyAgICAgICAgWyd0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlzLWZvci1vdmVy
ZmxvdzpoaWRkZW4nLCA1XSwKKyAgICAgICAgWyd0ZXN0LXBhZ2UtYnJlYWstYWZ0ZXI6YWx3YXlz
LWZvci1vdmVyZmxvdzpzY3JvbGwnLCA2XSwKKyAgICAgICAgWyd0ZXN0LXBhZ2UtYnJlYWstYWZ0
ZXI6YWx3YXlzLWZvci1vdmVyZmxvdzphdXRvJywgN10sCisgICAgICAgIFsndGVzdC1sYXN0LXBh
Z2UnLCA4XQorICAgIF07CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5
SWQoJyIgKyBleHBlY3RlZFZhbHVlc1tpXVswXSArICInKSIsICIiICsgZXhwZWN0ZWRWYWx1ZXNb
aV1bMV0pOwotICAgIH0KLX0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVmFsdWVz
Lmxlbmd0aDsgaSsrKQorICAgICAgICBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3VsZEJlKGV4cGVj
dGVkVmFsdWVzW2ldWzBdLCBleHBlY3RlZFZhbHVlc1tpXVsxXSk7CiAKLWRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhbmRib3giKSk7CisgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIp
KTsKK30KIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZS1icmVhay1hbHdheXMuanMgYi9MYXlv
dXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZS1icmVhay1hbHdheXMuanMKaW5kZXgg
MWM2ZTVkODQ2YmI3ZjdlMGRiMTA5Y2YxOGM5YzIzNGQ0MmYzN2ZhNS4uZjdhNWJiNGE5YzkxYmVk
NWEyMGZlNTZiNTY3MzVmZTZiYmIzMTNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcHJpbnRp
bmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJlYWstYWx3YXlzLmpzCisrKyBiL0xheW91dFRlc3RzL3By
aW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWFsd2F5cy5qcwpAQCAtMSwyNCArMSwxOSBA
QAogZGVzY3JpcHRpb24oIlRlc3QgZm9yIHBhZ2UtYnJlYWstYmVmb3JlOmFsd2F5cyBhbmQgcGFn
ZS1icmVhay1hZnRlcjphbHdheXMiKTsKIAotZnVuY3Rpb24gY3JlYXRlUGFyYWdyYXBoKGlkKQor
ZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJwIik7Ci0gICAgZWxlbWVudC5pZCA9IGlkOwotICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImZvb2JhciIpKTsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic2FuZGJveCIpLmFwcGVuZENoaWxkKGVsZW1lbnQpOwotICAgIHJldHVybiBlbGVt
ZW50OwotfQotCi1jcmVhdGVQYXJhZ3JhcGgoImZpcnN0UGFnZSIpOwotY3JlYXRlUGFyYWdyYXBo
KCJzZWNvbmRQYWdlMSIpLnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJhbHdheXMiOwotY3JlYXRl
UGFyYWdyYXBoKCJzZWNvbmRQYWdlMiIpLnN0eWxlLnBhZ2VCcmVha0FmdGVyID0gImFsd2F5cyI7
Ci1jcmVhdGVQYXJhZ3JhcGgoInRoaXJkUGFnZSIpLnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJh
bHdheXMiOworICAgIGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdlSGVpZ2h0KCJmaXJzdFBhZ2Ui
LCAwLjEpOworICAgIGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdlSGVpZ2h0KCJzZWNvbmRQYWdl
MSIsIDAuMSkuc3R5bGUucGFnZUJyZWFrQmVmb3JlID0gImFsd2F5cyI7CisgICAgY3JlYXRlQmxv
Y2tXaXRoUmF0aW9Ub1BhZ2VIZWlnaHQoInNlY29uZFBhZ2UyIiwgMC4xKS5zdHlsZS5wYWdlQnJl
YWtBZnRlciA9ICJhbHdheXMiOworICAgIGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdlSGVpZ2h0
KCJ0aGlyZFBhZ2UiLCAwLjEpLnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJhbHdheXMiOwogCi1z
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCdm
aXJzdFBhZ2UnKSIsICIwIik7Ci1zaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51
bWJlckZvckVsZW1lbnRCeUlkKCdzZWNvbmRQYWdlMScpIiwgIjEiKTsKLXNob3VsZEJlKCJsYXlv
dXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoJ3NlY29uZFBhZ2UyJyki
LCAiMSIpOwotc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVt
ZW50QnlJZCgndGhpcmRQYWdlJykiLCAiMiIpOworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hv
dWxkQmUoJ2ZpcnN0UGFnZScsIDApOworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hvdWxkQmUo
J3NlY29uZFBhZ2UxJywgMSk7CisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91bGRCZSgnc2Vj
b25kUGFnZTInLCAxKTsKKyAgICAvLyBUaGVyZSBtdXN0IGJlIG9ubHkgb25lIHBhZ2UgYnJlYWsg
YmV0d2VlbiAncGFnZS1icmVhay1hZnRlcjogYWx3YXlzJyBhbmQgJ3BhZ2UtYnJlYWstYmVmb3Jl
OiBhbHdheXMnCisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91bGRCZSgndGhpcmRQYWdlJywg
Mik7CiAKLWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InNhbmRib3giKSk7CisgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2FuZGJveCIpKTsKK30KIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZS1i
cmVhay1pbnNpZGUtYXZvaWQuanMgYi9MYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMv
cGFnZS1icmVhay1pbnNpZGUtYXZvaWQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI4YzQ3NzQzZWViNzc1OWVj
MjczNWJiN2RkNzVjNDVhNGIwN2JhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3By
aW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC5qcwpAQCAtMCwwICsx
LDQyIEBACitkZXNjcmlwdGlvbigiVGVzdCBmb3IgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQiKTsK
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY3JlYXRlQmxvY2tXaXRoUmF0aW9Ub1BhZ2VIZWln
aHQoInBhZ2UxLTEiLCAwLjUpLnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJhbHdheXMiOworICAg
IC8vIGJsb2NrICdwYWdlMS0yJyBzaG91bGQgYmUgc3BsaXR0ZWQuCisgICAgY3JlYXRlQmxvY2tX
aXRoTnVtYmVyT2ZMaW5lcygicGFnZTEtMiIsIDIwKTsKKyAgICBjcmVhdGVCbG9ja1dpdGhSYXRp
b1RvUGFnZUhlaWdodCgicGFnZTIiLCAwLjEpOworCisgICAgY3JlYXRlQmxvY2tXaXRoUmF0aW9U
b1BhZ2VIZWlnaHQoInBhZ2UzIiwgMC41KS5zdHlsZS5wYWdlQnJlYWtCZWZvcmUgPSAiYWx3YXlz
IjsKKyAgICAvLyBXZSBzaG91bGQgcGxhY2UgYmxvY2sgJ3BhZ2U0JyBpbiB0aGUgbmV4dCBwYWdl
IGJlY2F1c2Ugb2YgJ3BhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZCcuCisgICAgY3JlYXRlQmxvY2tX
aXRoTnVtYmVyT2ZMaW5lcygicGFnZTQiLCAyMCkuc3R5bGUucGFnZUJyZWFrSW5zaWRlID0gImF2
b2lkIjsKKworICAgIGNyZWF0ZUJsb2NrV2l0aFJhdGlvVG9QYWdlSGVpZ2h0KCJwYWdlNSIsIDAu
OCkuc3R5bGUucGFnZUJyZWFrQmVmb3JlID0gImFsd2F5cyI7CisgICAgLy8gYmxvY2sgJ3BhZ2U1
LTInIGlzIGEgdmVyeSBsYXJnZSBibG9jaywgb2NjdXB5aW5nIG1vcmUgdGhhbiAyIHBhZ2VzLgor
ICAgIC8vIFdlIGRvbid0IGRlZmluZSBmcm9tIHdoZXJlIHRoaXMgbGFyZ2UgYmxvY2sgc3RhcnRz
LiBNYXliZSBmcm9tIHRoZSBuZXh0IHBhZ2UuCisgICAgY3JlYXRlQmxvY2tXaXRoTnVtYmVyT2ZM
aW5lcygicGFnZTVvcjYiLCAyMCAqIDIgKyAxMCkuc3R5bGUucGFnZUJyZWFrSW5zaWRlID0gImF2
b2lkIjsKKyAgICBjcmVhdGVCbG9ja1dpdGhSYXRpb1RvUGFnZUhlaWdodCgicGFnZTgiLCAwLjEp
OworCisgICAgY3JlYXRlQmxvY2tXaXRoUmF0aW9Ub1BhZ2VIZWlnaHQoInBhZ2U5LTEiLCAwLjEp
LnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJhbHdheXMiOworICAgIGNyZWF0ZUJsb2NrV2l0aFJh
dGlvVG9QYWdlSGVpZ2h0KCJwYWdlOS0yIiwgMC4xKS5zdHlsZS5wYWdlQnJlYWtBZnRlciA9ICJh
bHdheXMiOworICAgIC8vIE1ha2Ugc3VyZSBwYWdlLWJyZWFrIG9ubHkgaGFwcGVucyBvbmNlLCBu
b3QgdHdpY2UuCisgICAgY3JlYXRlQmxvY2tXaXRoTnVtYmVyT2ZMaW5lcygicGFnZTEwIiwgMjAp
LnN0eWxlLnBhZ2VCcmVha0luc2lkZSA9ICJhdm9pZCI7CisKKyAgICBwYWdlTnVtYmVyRm9yRWxl
bWVudFNob3VsZEJlKCdwYWdlMS0xJywgMSk7CisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91
bGRCZSgncGFnZTEtMicsIDEpOworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hvdWxkQmUoJ3Bh
Z2UyJywgMik7CisKKyAgICBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3VsZEJlKCdwYWdlMycsIDMp
OworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hvdWxkQmUoJ3BhZ2U0JywgNCk7CisKKyAgICBw
YWdlTnVtYmVyRm9yRWxlbWVudFNob3VsZEJlKCdwYWdlNScsIDUpOworICAgIHBhZ2VOdW1iZXJG
b3JFbGVtZW50U2hvdWxkQmUoJ3BhZ2U4JywgOCk7CisKKyAgICBwYWdlTnVtYmVyRm9yRWxlbWVu
dFNob3VsZEJlKCdwYWdlOS0xJywgOSk7CisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91bGRC
ZSgncGFnZTktMicsIDkpOworICAgIHBhZ2VOdW1iZXJGb3JFbGVtZW50U2hvdWxkQmUoJ3BhZ2Ux
MCcsIDEwKTsKKworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInNhbmRib3giKSk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJl
YWstaW5zaWRlLmpzIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2UtYnJl
YWstaW5zaWRlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGE4MTgxNTc1MzA0
NTg3YmE0NTA5Yjk5YjZmNDQwNTU4NzU4MzA4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9wYWdl
LWJyZWFrLWluc2lkZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLWRlc2NyaXB0
aW9uKCJUZXN0IGZvciBwYWdlLWJyZWFrLWluc2lkZTphdm9pZCIpOwotCi1mdW5jdGlvbiBjcmVh
dGVQYXJhZ3JhcGgoaWQsIGhlaWdodCkKLXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGVsZW1lbnQuaWQgPSBpZDsKLSAgICBlbGVtZW50LnN0
eWxlLmhlaWdodCA9IGhlaWdodDsKLSAgICBlbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJmb29iYXIiKSk7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNh
bmRib3giKS5hcHBlbmRDaGlsZChlbGVtZW50KTsKLSAgICByZXR1cm4gZWxlbWVudDsKLX0KLQot
dmFyIHBhZ2VIZWlnaHRJblBpeGVscyA9IDEwMDA7Ci0KLWZ1bmN0aW9uIHBhZ2VOdW1iZXIoaWQp
IHsKLSAgcmV0dXJuIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJ
ZChpZCwgMTAwMCwgcGFnZUhlaWdodEluUGl4ZWxzKTsKLX0KLQotY3JlYXRlUGFyYWdyYXBoKCJw
YWdlMSIsIDkwMCkuc3R5bGUucGFnZUJyZWFrQmVmb3JlID0gImFsd2F5cyI7Ci1jcmVhdGVQYXJh
Z3JhcGgoInBhZ2UyIiwgOTAwKS5zdHlsZS5wYWdlQnJlYWtJbnNpZGUgPSAiYXZvaWQiOwotCi1j
cmVhdGVQYXJhZ3JhcGgoInBhZ2UzLTEiLCA5MDApLnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJh
bHdheXMiOwotY3JlYXRlUGFyYWdyYXBoKCJwYWdlMy0yIiwgMTAwKS5zdHlsZS5wYWdlQnJlYWtJ
bnNpZGUgPSAiYXZvaWQiOwotCi1jcmVhdGVQYXJhZ3JhcGgoInBhZ2U0IiwgOTAwKS5zdHlsZS5w
YWdlQnJlYWtCZWZvcmUgPSAiYWx3YXlzIjsKLWNyZWF0ZVBhcmFncmFwaCgicGFnZTUiLCAxMDEp
LnN0eWxlLnBhZ2VCcmVha0luc2lkZSA9ICJhdm9pZCI7Ci0KLWNyZWF0ZVBhcmFncmFwaCgicGFn
ZTYiLCAxMDApLnN0eWxlLnBhZ2VCcmVha0JlZm9yZSA9ICJhbHdheXMiOwotY3JlYXRlUGFyYWdy
YXBoKCJwYWdlNyIsIDIxMDApLnN0eWxlLnBhZ2VCcmVha0luc2lkZSA9ICJhdm9pZCI7Ci1jcmVh
dGVQYXJhZ3JhcGgoInBhZ2U5IiwgMTAwKTsKLQotY3JlYXRlUGFyYWdyYXBoKCJwYWdlMTAtMSIs
IDEwMCkuc3R5bGUucGFnZUJyZWFrQmVmb3JlID0gImFsd2F5cyI7Ci1jcmVhdGVQYXJhZ3JhcGgo
InBhZ2UxMC0yIiwgMTAwKS5zdHlsZS5wYWdlQnJlYWtBZnRlciA9ICJhbHdheXMiOwotLy8gTWFr
ZSBzdXJlIHBhZ2UtYnJlYWsgb25seSBoYXBwZW5zIG9uY2UsIG5vdCB0d2ljZS4KLWNyZWF0ZVBh
cmFncmFwaCgicGFnZTExIiwgOTAwKS5zdHlsZS5wYWdlQnJlYWtJbnNpZGUgPSAiYXZvaWQiOwot
Ci0vLyBCZWZvcmUgY2FsbGluZyAic2hvdWxkQmUiIHRlc3RzLCBzZXRzICJkaXNwbGF5OiBub25l
IiBzdHlsZSB0byB8Y29uc29sZXwgZWxlbWVudCBzbyB0aGF0IHRoZSByZXN1bHRzIG9mIHBhZ2VO
dW1iZXIgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZC4KLS8vIEZJWE1FOiBVc2UgZnVuY3Rpb25zIGRl
ZmluZWQgaW4gcHJpbnRpbmcvcmVzb3VyY2VzL3BhZ2VkLW1lZGlhLXRlc3QtdXRpbHMuanMgaW5z
dGVhZCBvZiB0aGlzIGhhY2suCi1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnN0
eWxlLmRpc3BsYXkgPSAnbm9uZSc7Ci0KLXNob3VsZEJlKCJwYWdlTnVtYmVyKCdwYWdlMScpIiwg
IjEiKTsKLXNob3VsZEJlKCJwYWdlTnVtYmVyKCdwYWdlMicpIiwgIjIiKTsKLQotc2hvdWxkQmUo
InBhZ2VOdW1iZXIoJ3BhZ2UzLTEnKSIsICIzIik7Ci1zaG91bGRCZSgicGFnZU51bWJlcigncGFn
ZTMtMicpIiwgIjMiKTsKLQotc2hvdWxkQmUoInBhZ2VOdW1iZXIoJ3BhZ2U0JykiLCAiNCIpOwot
c2hvdWxkQmUoInBhZ2VOdW1iZXIoJ3BhZ2U1JykiLCAiNSIpOwotCi1zaG91bGRCZSgicGFnZU51
bWJlcigncGFnZTYnKSIsICI2Iik7Ci1zaG91bGRCZSgicGFnZU51bWJlcigncGFnZTcnKSIsICI3
Iik7Ci1zaG91bGRCZSgicGFnZU51bWJlcigncGFnZTknKSIsICI5Iik7Ci0KLXNob3VsZEJlKCJw
YWdlTnVtYmVyKCdwYWdlMTAtMScpIiwgIjEwIik7Ci1zaG91bGRCZSgicGFnZU51bWJlcigncGFn
ZTEwLTInKSIsICIxMCIpOwotc2hvdWxkQmUoInBhZ2VOdW1iZXIoJ3BhZ2UxMScpIiwgIjExIik7
Ci0KLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuc3R5bGUuZGlzcGxheSA9ICdi
bG9jayc7Ci0KLWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNhbmRib3giKSk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2VOdW1lckZvckVsZW1l
bnRCeUlkLmpzIGIvTGF5b3V0VGVzdHMvcHJpbnRpbmcvc2NyaXB0LXRlc3RzL3BhZ2VOdW1lckZv
ckVsZW1lbnRCeUlkLmpzCmluZGV4IDg3ZDg4ZWM2YTQ3ZGZkNmUxYWI5NGY1ZGRkZjBlNzBmYTRl
NTc2N2EuLjI2ODg1MzkyNzliZjcxOWFlMWZiMWRkZTM4ZDU5YWJmMTM1MDJjYTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3ByaW50aW5nL3NjcmlwdC10ZXN0cy9wYWdlTnVtZXJGb3JFbGVtZW50
QnlJZC5qcworKysgYi9MYXlvdXRUZXN0cy9wcmludGluZy9zY3JpcHQtdGVzdHMvcGFnZU51bWVy
Rm9yRWxlbWVudEJ5SWQuanMKQEAgLTEsMzEgKzEsMjAgQEAKIGRlc2NyaXB0aW9uKCJUZXN0IGZv
ciBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQoKSIpOwogCi1m
dW5jdGlvbiBjcmVhdGVQYXJhZ3JhcGgoaWQpCitmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGVsZW1lbnQuaWQg
PSBpZDsKLSAgICBlbGVtZW50LndpZHRoID0gMTAwOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzYW5kYm94IikuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci0gICAgcmV0dXJuIGVsZW1lbnQ7
Ci19Ci0KLXZhciBmaXJzdFBhZ2UgPSBjcmVhdGVQYXJhZ3JhcGgoImZpcnN0UGFnZSIpOwotZmly
c3RQYWdlLnN0eWxlLmhlaWdodCA9IDEwMDA7Ci0KLXZhciBzZWNvbmRQYWdlID0gY3JlYXRlUGFy
YWdyYXBoKCJzZWNvbmRQYWdlIik7Ci1zZWNvbmRQYWdlLnN0eWxlLmhlaWdodCA9IDEwMDA7Cisg
ICAgLy8gQXNzdW1pbmcgdGhhdCBvbmUgcGFnZSBoYXMgYWJvdXQgMjAgbGluZXMuCisgICAgY3Jl
YXRlQmxvY2tXaXRoTnVtYmVyT2ZMaW5lcygiZmlyc3RQYWdlIiwgMjApOworICAgIGNyZWF0ZUJs
b2NrV2l0aE51bWJlck9mTGluZXMoInNlY29uZFBhZ2UiLCAyMCk7CiAKLXZhciB0aGlyZFBhZ2Ug
PSBjcmVhdGVQYXJhZ3JhcGgoInRoaXJkUGFnZSIpOwotdGhpcmRQYWdlLnN0eWxlLmhlaWdodCA9
IDEwMDsKKyAgICBjcmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxpbmVzKCJ0aGlyZFBhZ2UiLCA1KTsK
KyAgICBjcmVhdGVCbG9ja1dpdGhOdW1iZXJPZkxpbmVzKCJ0aGlyZFBhZ2UyIiwgNSk7CiAKLXZh
ciB0aGlyZFBhZ2UyID0gY3JlYXRlUGFyYWdyYXBoKCJ0aGlyZFBhZ2UyIik7Ci10aGlyZFBhZ2Uy
LnN0eWxlLmhlaWdodCA9IDcwMDsKKyAgICBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3VsZEJlKCdm
aXJzdFBhZ2UnLCAwKTsKKyAgICBwYWdlTnVtYmVyRm9yRWxlbWVudFNob3VsZEJlKCdzZWNvbmRQ
YWdlJywgMSk7CisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91bGRCZSgndGhpcmRQYWdlJywg
Mik7CisgICAgcGFnZU51bWJlckZvckVsZW1lbnRTaG91bGRCZSgndGhpcmRQYWdlMicsIDIpOwog
Ci1zaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlk
KCdmaXJzdFBhZ2UnLCAxMDAwLCAxMDAwKSIsICIwIik7Ci1zaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCdzZWNvbmRQYWdlJywgMTAwMCwgMTAw
MCkiLCAiMSIpOwotc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JF
bGVtZW50QnlJZCgndGhpcmRQYWdlJywgMTAwMCwgMTAwMCkiLCAiMiIpOwotc2hvdWxkQmUoImxh
eW91dFRlc3RDb250cm9sbGVyLnBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgndGhpcmRQYWdlMics
IDEwMDAsIDEwMDApIiwgIjIiKTsKLQotZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2FuZGJveCIpKTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYW5kYm94IikpOworfQogCiB2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="45022"
          type_id="1"
          status="+"
          setter="hamaji"
    />
          </attachment>
      

    </bug>

</bugzilla>