<?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>159246</bug_id>
          
          <creation_ts>2016-06-28 21:44:56 -0700</creation_ts>
          <short_desc>ES6SampleBench should have a harness</short_desc>
          <delta_ts>2016-06-28 22:56:19 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1206292</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-28 21:44:56 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206296</commentid>
    <comment_count>1</comment_count>
      <attachid>282318</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-28 21:50:25 -0700</bug_when>
    <thetext>Created attachment 282318
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206302</commentid>
    <comment_count>2</comment_count>
      <attachid>282318</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-06-28 22:06:53 -0700</bug_when>
    <thetext>Comment on attachment 282318
the patch

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

&gt; PerformanceTests/ES6SampleBench/driver.js:152
&gt; +            magicFrame.contentDocument.write(
&gt; +                &quot;&lt;!DOCTYPE html&gt;&lt;head&gt;&lt;title&gt;benchmark payload&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;script&gt;\n&quot; +
&gt; +                &quot;window.onerror = top.&quot; + this._key + &quot;.reportError;\n&quot; +
&gt; +                &quot;function reportResult()\n&quot; +
&gt; +                &quot;{\n&quot; +
&gt; +                &quot;    var driver = top.&quot; + this._key + &quot;;\n&quot; +
&gt; +                &quot;    driver.reportResult.apply(driver, arguments);\n&quot; +
&gt; +                &quot;}\n&quot; +
&gt; +                &quot;&lt;/script&gt;\n&quot; +
&gt; +                this._benchmark.code + &quot;&lt;/body&gt;&lt;/html&gt;&quot;);

Nit: This would be easier to read as a template literal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206312</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-28 22:54:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 282318 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282318&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/ES6SampleBench/driver.js:152
&gt; &gt; +            magicFrame.contentDocument.write(
&gt; &gt; +                &quot;&lt;!DOCTYPE html&gt;&lt;head&gt;&lt;title&gt;benchmark payload&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;script&gt;\n&quot; +
&gt; &gt; +                &quot;window.onerror = top.&quot; + this._key + &quot;.reportError;\n&quot; +
&gt; &gt; +                &quot;function reportResult()\n&quot; +
&gt; &gt; +                &quot;{\n&quot; +
&gt; &gt; +                &quot;    var driver = top.&quot; + this._key + &quot;;\n&quot; +
&gt; &gt; +                &quot;    driver.reportResult.apply(driver, arguments);\n&quot; +
&gt; &gt; +                &quot;}\n&quot; +
&gt; &gt; +                &quot;&lt;/script&gt;\n&quot; +
&gt; &gt; +                this._benchmark.code + &quot;&lt;/body&gt;&lt;/html&gt;&quot;);
&gt; 
&gt; Nit: This would be easier to read as a template literal

Good idea!  Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206313</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-28 22:56:19 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/202613</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282318</attachid>
            <date>2016-06-28 21:50:25 -0700</date>
            <delta_ts>2016-06-28 22:06:53 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>34217</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDI2MTApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNiBAQAorMjAxNi0wNi0yOCAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEVTNlNhbXBsZUJlbmNo
IHNob3VsZCBoYXZlIGEgaGFybmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU5MjQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGFkZHMgYSBzaW1wbGUgd2ViIGhhcm5lc3MgZm9y
IEVTNlNhbXBsZUJlbmNoLiBJdCBydW5zIEFpciBhbmQgQmFzaWMgMTAgdGltZXMgZm9yIDIwMAor
ICAgICAgICBpdGVyYXRpb25zIGVhY2ggYW5kIHJlcG9ydHMgdGhyZWUgbWV0cmljczoKKyAgICAg
ICAgCisgICAgICAgIEZpcnN0IGl0ZXJhdGlvbjogdGhlIHRpbWUgaXQgdGFrZXMgZm9yIHRoZSBm
aXJzdCBpdGVyYXRpb24gdG8gcnVuLiBUaGlzIGlzIHRoZSBmaXJzdAorICAgICAgICBpdGVyYXRp
b24gYWZ0ZXIgdGhlIGJlbmNobWFyayBpcyBsb2FkZWQgaW50byB0aGUgaWZyYW1lLCBzbyBpdCdz
IHJlcHJlc2VudGF0aXZlIG9mIHdoYXQKKyAgICAgICAgd291bGQgaGFwcGVuIGlmIG9uZSBvZiB0
aGVzZSB3b3JrbG9hZHMgb25seSByYW4gZm9yIGEgc2hvcnQgdGltZS4KKyAgICAgICAgCisgICAg
ICAgIFdvcnN0IDIlOiBvZiB0aGUgbGFzdCAxOTkgaXRlcmF0aW9ucywgdGhlIGF2ZXJhZ2Ugb2Yg
dGhlIHdvcnN0IDIlIGl0ZXJhdGlvbnMuIElmIGNvZGUgbGlrZQorICAgICAgICBhbnkgb2YgdGhl
c2Ugd29ya2xvYWRzIHdhcyB1c2VkIGluIGFuIGltcG9ydGFudCBldmVudCBoYW5kbGVyLCB5b3Un
ZCB3YW50IHRoYXQgY29kZSB0byBydW4KKyAgICAgICAgd2VsbCBpbiB0aGUgd29yc3QgY2FzZSBp
biBhZGRpdGlvbiB0byBoYXZpbmcgZ3JlYXQgdGhyb3VnaHB1dC4KKyAgICAgICAgCisgICAgICAg
IFN0ZWFkeSBzdGF0ZTogdGhlIHRvdGFsIG9mIHRoZSBsYXN0IDE5OSBpdGVyYXRpb25zLiBUaGlz
IGlzIHJlcHJlc2VudGF0aXZlIG9mIHdoYXQgd291bGQKKyAgICAgICAgaGFwcGVuIGlmIHlvdSBy
YW4gY29kZSBsaWtlIHRoaXMgZm9yIGEgbG9uZyB0aW1lLgorICAgICAgICAKKyAgICAgICAgVGhl
IHRvdGFsIHNjb3JlIGlzIHRoZSBnZW9tZWFuIG9mIHRoZSBmaXJzdEl0ZXJhdGlvbi93b3JzdENh
c2Uvc3RlYWR5U3RhdGUgbnVtYmVycyBvZiB0aGUKKyAgICAgICAgdHdvIGJlbmNobWFya3MuCisg
ICAgICAgIAorICAgICAgICBUaGUgaGFybmVzcyBkb2VzIHN0YXRpc3RpY3MgdXNpbmcgU3R1ZGVu
dCdzIFQtZGlzdHJpYnV0aW9uIGNvbmZpZGVuY2UgaW50ZXJ2YWxzLgorCisgICAgICAgICogRVM2
U2FtcGxlQmVuY2gvQmFzaWMvYmVuY2htYXJrLmpzOgorICAgICAgICAoQmVuY2htYXJrKToKKyAg
ICAgICAgKiBFUzZTYW1wbGVCZW5jaC9haXJfYmVuY2htYXJrLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBFUzZTYW1wbGVCZW5jaC9iYXNpY19iZW5jaG1hcmsuanM6IEFkZGVkLgorICAgICAgICAqIEVT
NlNhbXBsZUJlbmNoL2RyaXZlci5qczogQWRkZWQuCisgICAgICAgIChEcml2ZXIpOgorICAgICAg
ICAoRHJpdmVyLnByb3RvdHlwZS5hZGRCZW5jaG1hcmspOgorICAgICAgICAoRHJpdmVyLnByb3Rv
dHlwZS5zdGFydCk6CisgICAgICAgIChEcml2ZXIucHJvdG90eXBlLnJlcG9ydFJlc3VsdCk6Cisg
ICAgICAgIChEcml2ZXIucHJvdG90eXBlLnJlcG9ydEVycm9yKToKKyAgICAgICAgKERyaXZlci5w
cm90b3R5cGUuX3JlY29tcHV0ZVN1bW1hcnkuR2VvbWVhbik6CisgICAgICAgIChEcml2ZXIucHJv
dG90eXBlLl9yZWNvbXB1dGVTdW1tYXJ5Lkdlb21lYW4ucHJvdG90eXBlLmFkZCk6CisgICAgICAg
IChEcml2ZXIucHJvdG90eXBlLl9yZWNvbXB1dGVTdW1tYXJ5Lkdlb21lYW4ucHJvdG90eXBlLmdl
dCByZXN1bHQpOgorICAgICAgICAoRHJpdmVyLnByb3RvdHlwZS5fcmVjb21wdXRlU3VtbWFyeSk6
CisgICAgICAgIChEcml2ZXIucHJvdG90eXBlLl9pdGVyYXRlKToKKyAgICAgICAgKERyaXZlci5w
cm90b3R5cGUuX3VwZGF0ZUl0ZXJhdGlvbnMpOgorICAgICAgICAqIEVTNlNhbXBsZUJlbmNoL2ds
dWUuanM6IEFkZGVkLgorICAgICAgICAqIEVTNlNhbXBsZUJlbmNoL2luZGV4Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIEVTNlNhbXBsZUJlbmNoL3Jlc3VsdHMuanM6IEFkZGVkLgorICAgICAgICAo
UmVzdWx0cyk6CisgICAgICAgIChSZXN1bHRzLnByb3RvdHlwZS5nZXQgYmVuY2htYXJrKToKKyAg
ICAgICAgKFJlc3VsdHMucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFJlc3VsdHMucHJvdG90
eXBlLnJlcG9ydFJ1bm5pbmcpOgorICAgICAgICAoUmVzdWx0cy5wcm90b3R5cGUucmVwb3J0RG9u
ZSk6CisgICAgICAgIChSZXN1bHRzLnByb3RvdHlwZS5yZXBvcnRSZXN1bHQuYXZlcmFnZUFib3Zl
UGVyY2VudGlsZSk6CisgICAgICAgIChSZXN1bHRzLnByb3RvdHlwZS5yZXBvcnRSZXN1bHQpOgor
ICAgICAgICAoUmVzdWx0cy5wcm90b3R5cGUucmVwb3J0RXJyb3IpOgorICAgICAgICAqIEVTNlNh
bXBsZUJlbmNoL3N0YXRzLmpzOiBBZGRlZC4KKyAgICAgICAgKFN0YXRzKToKKyAgICAgICAgKFN0
YXRzLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChTdGF0cy5wcm90b3R5cGUuYWRkKToKKyAg
ICAgICAgKFN0YXRzLnByb3RvdHlwZS5nZXQgbnVtSXRlcmF0aW9ucyk6CisgICAgICAgIChTdGF0
cy5wcm90b3R5cGUudmFsdWVGb3JJdGVyYXRpb24pOgorICAgICAgICAoU3RhdHMuZ2V0IHJlc3Vs
dC50RGlzdCk6CisgICAgICAgIChTdGF0cy5wcm90b3R5cGUuZ2V0IHJlc3VsdCk6CisgICAgICAg
IChTdGF0cy5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoU3RhdHMucHJvdG90eXBlLl91
cGRhdGUpOgorICAgICAgICAqIEVTNlNhbXBsZUJlbmNoL3N0eWxlLmNzczogQWRkZWQuCisgICAg
ICAgIChib2R5KToKKyAgICAgICAgKGJvZHksIHRoLCB0cik6CisgICAgICAgIChoMSwgaDIsIGgz
LCBoNCk6CisgICAgICAgIChoMSk6CisgICAgICAgIChoMik6CisgICAgICAgIChoMyk6CisgICAg
ICAgIChocik6CisgICAgICAgIChhZGRyZXNzKToKKyAgICAgICAgKGltZyk6CisgICAgICAgICgu
dW5kZXJsaW5lKToKKyAgICAgICAgKG9sLmxvd2VyYWxwaGEpOgorICAgICAgICAob2wudXBwZXJh
bHBoYSk6CisgICAgICAgIChvbC5sb3dlcnJvbWFuKToKKyAgICAgICAgKG9sLnVwcGVycm9tYW4p
OgorICAgICAgICAob2wuYXJhYmljKToKKyAgICAgICAgKC5iYW5uZXItbGluazpsaW5rLCAuYmFu
bmVyLWxpbms6dmlzaXRlZCk6CisgICAgICAgICg6bGluaywgOnZpc2l0ZWQpOgorICAgICAgICAo
aDQgOmxpbmssIGg0IDp2aXNpdGVkLCBoNSA6bGluaywgaDUgOnZpc2l0ZWQsIGg2IDpsaW5rLCBo
NiA6dmlzaXRlZCk6CisgICAgICAgICguYW5jaG9yOmxpbmssIC5hbmNob3I6dmlzaXRlZCk6Cisg
ICAgICAgICgqID4gLmFuY2hvcjpsaW5rLCAqID4gLmFuY2hvcjp2aXNpdGVkKToKKyAgICAgICAg
KHNwYW46aG92ZXIgLmFuY2hvcik6CisgICAgICAgIChhLmZvcmJpZGRlbiwgc3Bhbi5mb3JiaWRk
ZW4pOgorICAgICAgICAoYS5taXNzaW5nOmhvdmVyKToKKyAgICAgICAgKGEuY2xvc2VkOmxpbmss
IGEuY2xvc2VkOnZpc2l0ZWQsIHNwYW4uY2xvc2VkKToKKyAgICAgICAgKHByZSk6CisgICAgICAg
IChkaXYuY29kZSk6CisgICAgICAgIChkaXYuY29kZSBwcmUpOgorICAgICAgICAoZHQpOgorICAg
ICAgICAoZGQpOgorICAgICAgICAoZGQ6bGFzdC1jaGlsZCk6CisgICAgICAgICguc2l0ZS1sb2dv
KToKKyAgICAgICAgKC5zaXRlLWxvZ28gLnRhZ2xpbmUpOgorICAgICAgICAodGFibGUpOgorICAg
ICAgICAoI2NvbnRlbnRzKToKKyAgICAgICAgKHApOgorICAgICAgICAocDpsYXN0LWNoaWxkKToK
KyAgICAgICAgKHRoKToKKyAgICAgICAgKHRkKToKKwogMjAxNi0wNi0yOCAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGZvY3VzIHRlc3QKSW5kZXg6IFBlcmZv
cm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvYWlyX2JlbmNobWFyay5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL2Fpcl9iZW5jaG1hcmsuanMJKHJldmlz
aW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL2Fpcl9iZW5jaG1hcmsu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworInVzZSBzdHJpY3QiOworCitjb25zdCBBaXJCZW5jaG1h
cmtDb2RlID0gU3RyaW5nLnJhd2AKKzxzY3JpcHQgc3JjPSJBaXIvc3ltYm9scy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iQWlyL3RtcF9iYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJBaXIvYXJnLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBaXIvYmFzaWNfYmxvY2suanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFpci9jb2RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJBaXIvZnJlcXVlbnRlZF9ibG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQWly
L2luc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFpci9vcGNvZGUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkFpci9yZWcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFpci9z
dGFja19zbG90LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBaXIvdG1wLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJBaXIvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQWly
L2N1c3RvbS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQWlyL2xpdmVuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJBaXIvaW5zZXJ0aW9uX3NldC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iQWlyL2FsbG9jYXRlX3N0YWNrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJB
aXIvcGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJBaXIvcGF5bG9hZC1pbWFnaW5nLWdhdXNzaWFuLWJsdXItZ2F1c3NpYW5CbHVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBaXIvcGF5bG9hZC1haXJqcy1BQ0xqOEMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkFpci9wYXlsb2FkLXR5cGVzY3JpcHQtc2NhbklkZW50aWZpZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFpci9iZW5jaG1hcmsuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK3ZhciByZXN1bHRzID0gW107Cit2YXIgYmVuY2htYXJrID0gbmV3IEJlbmNobWFy
aygpOwordmFyIG51bUl0ZXJhdGlvbnMgPSAyMDA7Citmb3IgKHZhciBpID0gMDsgaSA8IG51bUl0
ZXJhdGlvbnM7ICsraSkgeworICAgIHZhciBiZWZvcmUgPSBjdXJyZW50VGltZSgpOworICAgIGJl
bmNobWFyay5ydW5JdGVyYXRpb24oKTsKKyAgICB2YXIgYWZ0ZXIgPSBjdXJyZW50VGltZSgpOwor
ICAgIHJlc3VsdHMucHVzaChhZnRlciAtIGJlZm9yZSk7Cit9CityZXBvcnRSZXN1bHQocmVzdWx0
cyk7Cis8L3NjcmlwdD5gOworCitjb25zdCBBaXJCZW5jaG1hcmsgPSB7CisgICAgY29kZTogQWly
QmVuY2htYXJrQ29kZSwKKyAgICBjZWxsczogeworICAgICAgICBmaXJzdEl0ZXJhdGlvbjogZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkFpckZpcnN0SXRlcmF0aW9uIiksCisgICAgICAgIGF2ZXJh
Z2VXb3JzdENhc2U6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJBaXJBdmVyYWdlV29yc3RDYXNl
IiksCisgICAgICAgIHN0ZWFkeVN0YXRlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiQWlyU3Rl
YWR5U3RhdGUiKSwKKyAgICAgICAgbWVzc2FnZTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkFp
ck1lc3NhZ2UiKQorICAgIH0KK307CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxl
QmVuY2gvYmFzaWNfYmVuY2htYXJrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMv
RVM2U2FtcGxlQmVuY2gvYmFzaWNfYmVuY2htYXJrLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9y
bWFuY2VUZXN0cy9FUzZTYW1wbGVCZW5jaC9iYXNpY19iZW5jaG1hcmsuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworInVzZSBzdHJpY3QiOworCitjb25zdCBCYXNpY0JlbmNobWFya0NvZGUgPSBTdHJp
bmcucmF3YAorPHNjcmlwdCBzcmM9IkJhc2ljL2FzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iQmFzaWMvYmFzaWMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJhc2ljL2Nhc2VsZXNz
X21hcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQmFzaWMvbGV4ZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkJhc2ljL251bWJlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
QmFzaWMvcGFyc2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCYXNpYy9yYW5kb20uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJhc2ljL3N0YXRlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJCYXNpYy91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCYXNpYy9iZW5j
aG1hcmsuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciByZXN1bHRzID0gW107Cit2YXIgYmVu
Y2htYXJrID0gbmV3IEJlbmNobWFyaygpOwordmFyIG51bUl0ZXJhdGlvbnMgPSAyMDA7Citmb3Ig
KHZhciBpID0gMDsgaSA8IG51bUl0ZXJhdGlvbnM7ICsraSkgeworICAgIHZhciBiZWZvcmUgPSBj
dXJyZW50VGltZSgpOworICAgIGJlbmNobWFyay5ydW5JdGVyYXRpb24oKTsKKyAgICB2YXIgYWZ0
ZXIgPSBjdXJyZW50VGltZSgpOworICAgIHJlc3VsdHMucHVzaChhZnRlciAtIGJlZm9yZSk7Cit9
CityZXBvcnRSZXN1bHQocmVzdWx0cyk7Cis8L3NjcmlwdD5gOworCitjb25zdCBCYXNpY0JlbmNo
bWFyayA9IHsKKyAgICBjb2RlOiBCYXNpY0JlbmNobWFya0NvZGUsCisgICAgY2VsbHM6IHsKKyAg
ICAgICAgZmlyc3RJdGVyYXRpb246IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJCYXNpY0ZpcnN0
SXRlcmF0aW9uIiksCisgICAgICAgIGF2ZXJhZ2VXb3JzdENhc2U6IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJCYXNpY0F2ZXJhZ2VXb3JzdENhc2UiKSwKKyAgICAgICAgc3RlYWR5U3RhdGU6IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJCYXNpY1N0ZWFkeVN0YXRlIiksCisgICAgICAgIG1lc3Nh
Z2U6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJCYXNpY01lc3NhZ2UiKQorICAgIH0KK307Cklu
ZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL2RyaXZlci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL2RyaXZlci5qcwkocmV2aXNpb24g
MCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvZHJpdmVyLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIERyaXZlciB7CisgICAgY29uc3Ry
dWN0b3IodHJpZ2dlckNlbGwsIG1hZ2ljQ2VsbCwgc3VtbWFyeUNlbGwsIGtleSkKKyAgICB7Cisg
ICAgICAgIGlmICghbWFnaWNDZWxsKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOZWVk
IG1hZ2ljIGNlbGwiKTsKKyAgICAgICAgaWYgKCFzdW1tYXJ5Q2VsbCkKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiTmVlZCBzdW1tYXJ5IGNlbGwiKTsKKyAgICAgICAgCisgICAgICAgIHRo
aXMuX2JlbmNobWFya3MgPSBuZXcgTWFwKCk7CisgICAgICAgIHRoaXMuX3RyaWdnZXJDZWxsID0g
dHJpZ2dlckNlbGw7CisgICAgICAgIHRoaXMuX21hZ2ljQ2VsbCA9IG1hZ2ljQ2VsbDsKKyAgICAg
ICAgdGhpcy5fc3VtbWFyeSA9IG5ldyBTdGF0cyhzdW1tYXJ5Q2VsbCk7CisgICAgICAgIHRoaXMu
X2tleSA9IGtleTsKKyAgICAgICAgd2luZG93W2tleV0gPSB0aGlzOworICAgIH0KKyAgICAKKyAg
ICBhZGRCZW5jaG1hcmsoYmVuY2htYXJrKQorICAgIHsKKyAgICAgICAgdGhpcy5fYmVuY2htYXJr
cy5zZXQoYmVuY2htYXJrLCBuZXcgUmVzdWx0cyhiZW5jaG1hcmspKTsKKyAgICB9CisgICAgCisg
ICAgc3RhcnQobnVtSXRlcmF0aW9ucykKKyAgICB7CisgICAgICAgIHRoaXMuX3RyaWdnZXJDZWxs
U2F2ZWQgPSB0aGlzLl90cmlnZ2VyQ2VsbC5pbm5lckhUTUw7CisgICAgICAgIHRoaXMuX3VwZGF0
ZUl0ZXJhdGlvbnMoKTsKKyAgICAgICAgCisgICAgICAgIHRoaXMuX3N1bW1hcnkucmVzZXQoKTsK
KyAgICAgICAgZm9yIChsZXQgW2JlbmNobWFyaywgcmVzdWx0c10gb2YgdGhpcy5fYmVuY2htYXJr
cykKKyAgICAgICAgICAgIHJlc3VsdHMucmVzZXQoKTsKKyAgICAgICAgdGhpcy5faXNSdW5uaW5n
ID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fbnVtSXRlcmF0aW9ucyA9IG51bUl0ZXJhdGlvbnM7Cisg
ICAgICAgIHRoaXMuX2l0ZXJhdG9yID0gbnVsbDsKKyAgICAgICAgdGhpcy5faXRlcmF0ZSgpOwor
ICAgIH0KKyAgICAKKyAgICByZXBvcnRSZXN1bHQoLi4uYXJncykKKyAgICB7CisgICAgICAgIHRo
aXMuX2JlbmNobWFya3MuZ2V0KHRoaXMuX2JlbmNobWFyaykucmVwb3J0UmVzdWx0KC4uLmFyZ3Mp
OworICAgICAgICB0aGlzLl9yZWNvbXB1dGVTdW1tYXJ5KCk7CisgICAgICAgIHRoaXMuX2l0ZXJh
dGUoKTsKKyAgICB9CisgICAgCisgICAgcmVwb3J0RXJyb3IoLi4uYXJncykKKyAgICB7CisgICAg
ICAgIHRoaXMuX2JlbmNobWFya3MuZ2V0KHRoaXMuX2JlbmNobWFyaykucmVwb3J0RXJyb3IoLi4u
YXJncyk7CisgICAgICAgIHRoaXMuX3JlY29tcHV0ZVN1bW1hcnkoKTsKKyAgICAgICAgdGhpcy5f
aXRlcmF0ZSgpOworICAgIH0KKyAgICAKKyAgICBfcmVjb21wdXRlU3VtbWFyeSgpCisgICAgewor
ICAgICAgICBjbGFzcyBHZW9tZWFuIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9jb3VudCA9IDA7CisgICAgICAgICAgICAg
ICAgdGhpcy5fc3VtID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgYWRkKHZhbHVlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRoaXMuX2NvdW50
Kys7CisgICAgICAgICAgICAgICAgdGhpcy5fc3VtICs9IE1hdGgubG9nKHZhbHVlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2V0IHJlc3VsdCgpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguZXhwKHRoaXMuX3N1bSAqICgxIC8g
dGhpcy5fY291bnQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgbGV0IHN0YXRzZXMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgcmVzdWx0cyBvZiB0aGlzLl9i
ZW5jaG1hcmtzLnZhbHVlcygpKSB7CisgICAgICAgICAgICBmb3IgKGxldCBzdWJSZXN1bHQgb2Yg
UmVzdWx0cy5zdWJSZXN1bHRzKQorICAgICAgICAgICAgICAgIHN0YXRzZXMucHVzaChyZXN1bHRz
W3N1YlJlc3VsdF0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsZXQgbnVtSXRlcmF0
aW9ucyA9IE1hdGgubWluKC4uLnN0YXRzZXMubWFwKHN0YXRzID0+IHN0YXRzLm51bUl0ZXJhdGlv
bnMpKTsKKyAgICAgICAgbGV0IGRhdGEgPSBuZXcgQXJyYXkobnVtSXRlcmF0aW9ucyk7CisgICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRh
dGFbaV0gPSBuZXcgR2VvbWVhbigpOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgc3RhdHMg
b2Ygc3RhdHNlcykgeworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0
aDsgKytpKQorICAgICAgICAgICAgICAgIGRhdGFbaV0uYWRkKHN0YXRzLnZhbHVlRm9ySXRlcmF0
aW9uKGkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbGV0IGdlb21lYW5zID0gZGF0
YS5tYXAoZ2VvbWVhbiA9PiBnZW9tZWFuLnJlc3VsdCk7CisgICAgICAgIAorICAgICAgICB0aGlz
Ll9zdW1tYXJ5LnJlc2V0KC4uLmdlb21lYW5zKTsKKyAgICB9CisgICAgCisgICAgX2l0ZXJhdGUo
KQorICAgIHsKKyAgICAgICAgdGhpcy5fYmVuY2htYXJrID0gdGhpcy5faXRlcmF0b3IgPyB0aGlz
Ll9pdGVyYXRvci5uZXh0KCkudmFsdWUgOiBudWxsOworICAgICAgICBpZiAoIXRoaXMuX2JlbmNo
bWFyaykgeworICAgICAgICAgICAgaWYgKCF0aGlzLl9udW1JdGVyYXRpb25zKSB7CisgICAgICAg
ICAgICAgICAgdGhpcy5fdHJpZ2dlckNlbGwuaW5uZXJIVE1MID0gdGhpcy5fdHJpZ2dlckNlbGxT
YXZlZDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICB0aGlzLl9udW1JdGVyYXRpb25zLS07CisgICAgICAgICAgICB0aGlzLl91cGRhdGVJdGVyYXRp
b25zKCk7CisgICAgICAgICAgICB0aGlzLl9pdGVyYXRvciA9IHRoaXMuX2JlbmNobWFya3Mua2V5
cygpOworICAgICAgICAgICAgdGhpcy5fYmVuY2htYXJrID0gdGhpcy5faXRlcmF0b3IubmV4dCgp
LnZhbHVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0aGlzLl9iZW5jaG1hcmtzLmdl
dCh0aGlzLl9iZW5jaG1hcmspLnJlcG9ydFJ1bm5pbmcoKTsKKyAgICAgICAgCisgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgIGlmICghdGhpcy5faXNSdW5uaW5n
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGhp
cy5fbWFnaWNDZWxsLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50ID0gIiI7CisgICAg
ICAgICAgICB0aGlzLl9tYWdpY0NlbGwuY29udGVudERvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0g
IjxpZnJhbWUgaWQ9XCJtYWdpY0ZyYW1lXCIgZnJhbWVib3JkZXI9XCIwXCI+IjsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgbGV0IG1hZ2ljRnJhbWUgPSB0aGlzLl9tYWdpY0NlbGwuY29udGVu
dERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWdpY0ZyYW1lIik7CisgICAgICAgICAgICBtYWdp
Y0ZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7CisgICAgICAgICAgICBtYWdpY0ZyYW1lLmNv
bnRlbnREb2N1bWVudC53cml0ZSgKKyAgICAgICAgICAgICAgICAiPCFET0NUWVBFIGh0bWw+PGhl
YWQ+PHRpdGxlPmJlbmNobWFyayBwYXlsb2FkPC90aXRsZT48L2hlYWQ+PGJvZHk+PHNjcmlwdD5c
biIgKworICAgICAgICAgICAgICAgICJ3aW5kb3cub25lcnJvciA9IHRvcC4iICsgdGhpcy5fa2V5
ICsgIi5yZXBvcnRFcnJvcjtcbiIgKworICAgICAgICAgICAgICAgICJmdW5jdGlvbiByZXBvcnRS
ZXN1bHQoKVxuIiArCisgICAgICAgICAgICAgICAgIntcbiIgKworICAgICAgICAgICAgICAgICIg
ICAgdmFyIGRyaXZlciA9IHRvcC4iICsgdGhpcy5fa2V5ICsgIjtcbiIgKworICAgICAgICAgICAg
ICAgICIgICAgZHJpdmVyLnJlcG9ydFJlc3VsdC5hcHBseShkcml2ZXIsIGFyZ3VtZW50cyk7XG4i
ICsKKyAgICAgICAgICAgICAgICAifVxuIiArCisgICAgICAgICAgICAgICAgIjwvc2NyaXB0Plxu
IiArCisgICAgICAgICAgICAgICAgdGhpcy5fYmVuY2htYXJrLmNvZGUgKyAiPC9ib2R5PjwvaHRt
bD4iKTsKKyAgICAgICAgfSwgMTAwKTsKKyAgICB9CisgICAgCisgICAgX3VwZGF0ZUl0ZXJhdGlv
bnMoKQorICAgIHsKKyAgICAgICAgdGhpcy5fdHJpZ2dlckNlbGwuaW5uZXJIVE1MID0gIlJ1bm5p
bmcuLi4gKCIgKyAodGhpcy5fbnVtSXRlcmF0aW9ucyArIDEpICsgIiB0byBnbykiOworICAgIH0K
K30KKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9FUzZTYW1wbGVCZW5jaC9nbHVlLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvZ2x1ZS5qcwkocmV2aXNp
b24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvZ2x1ZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisidXNlIHN0cmljdCI7CisKK2NvbnN0IGRyaXZlciA9IG5ldyBEcml2ZXIo
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRyaWdnZXIiKSwKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibWFnaWMiKSwKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiR2Vv
bWVhbiIpLAorICAgICJzYW1wbGVCZW5jaCIpOworCitkcml2ZXIuYWRkQmVuY2htYXJrKEFpckJl
bmNobWFyayk7Citkcml2ZXIuYWRkQmVuY2htYXJrKEJhc2ljQmVuY2htYXJrKTsKSW5kZXg6IFBl
cmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvaW5kZXguaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQ
ZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL2luZGV4Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBQZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL2luZGV4Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5FUzYgU2FtcGxlIEJl
bmNoPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9
InN0eWxlLmNzcyI+Cis8L2hlYWQ+Cis8c2NyaXB0IHNyYz0iZHJpdmVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXN1bHRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdGF0cy5q
cyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnRlbnRzIj4KKzxoMT5FUzYgU2FtcGxl
IEJlbmNoPC9oMT4KKzxwPlRoaXMgaXMgYSBiZW5jaG1hcmsgc3VpdGUgdGhhdCBjb25zaXN0cyBv
ZiBFUzYgc2FtcGxlIGNvZGUuICBBbGwgcmVzdWx0cyBhcmUgaW4KK21pbGxpc2Vjb25kcy4gIExv
d2VyIGlzIGJldHRlci48L3A+Cis8cCBpZD0idHJpZ2dlciI+PGEgaHJlZj0iamF2YXNjcmlwdDpk
cml2ZXIuc3RhcnQoMTApIj5TdGFydCBCZW5jaG1hcms8L2E+PC9wPgorPHA+PGI+R2VvbWV0cmlj
IE1lYW4gUmVzdWx0OiA8c3BhbiBpZD0iR2VvbWVhbiI+Li4uPC9zcGFuPjwvYj48L3A+Cis8dGFi
bGUgY2VsbHNwYWNpbmc9MCBjZWxscGFkZGluZz0wIGJvcmRlcj0wPgorICA8dHI+CisgICAgPHRo
IHdpZHRoPTE4MD5CZW5jaG1hcms8L3RoPgorICAgIDx0aCB3aWR0aD0xODA+Rmlyc3QgSXRlcmF0
aW9uPC90aD4KKyAgICA8dGggd2lkdGg9MTgwPldvcnN0IDIlPC90aD4KKyAgICA8dGggd2lkdGg9
MTgwPlN0ZWFkeSBTdGF0ZTwvdGg+CisgIDx0cj4KKyAgICA8dGg+QWlyPC90aD4KKyAgICA8dGQg
aWQ9IkFpckZpcnN0SXRlcmF0aW9uIj4uLi48L3RkPgorICAgIDx0ZCBpZD0iQWlyQXZlcmFnZVdv
cnN0Q2FzZSI+Li4uPC90ZD4KKyAgICA8dGQgaWQ9IkFpclN0ZWFkeVN0YXRlIj4uLi48L3RkPgor
ICAgIDx0ZCBpZD0iQWlyTWVzc2FnZSI+PC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0aD5C
YXNpYzwvdGg+CisgICAgPHRkIGlkPSJCYXNpY0ZpcnN0SXRlcmF0aW9uIj4uLi48L3RkPgorICAg
IDx0ZCBpZD0iQmFzaWNBdmVyYWdlV29yc3RDYXNlIj4uLi48L3RkPgorICAgIDx0ZCBpZD0iQmFz
aWNTdGVhZHlTdGF0ZSI+Li4uPC90ZD4KKyAgICA8dGQgaWQ9IkJhc2ljTWVzc2FnZSI+PC90ZD4K
KyAgPC90cj4KKzwvdGFibGU+Cis8L2Rpdj4KKzxpZnJhbWUgaWQ9Im1hZ2ljIiBmcmFtZUJvcmRl
cj0wPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9ImFpcl9iZW5jaG1hcmsuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9ImJhc2ljX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Z2x1ZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBQZXJmb3JtYW5jZVRl
c3RzL0VTNlNhbXBsZUJlbmNoL3Jlc3VsdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VU
ZXN0cy9FUzZTYW1wbGVCZW5jaC9yZXN1bHRzLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFu
Y2VUZXN0cy9FUzZTYW1wbGVCZW5jaC9yZXN1bHRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisi
dXNlIHN0cmljdCI7CisKK2NsYXNzIFJlc3VsdHMgeworICAgIGNvbnN0cnVjdG9yKGJlbmNobWFy
aykKKyAgICB7CisgICAgICAgIHRoaXMuX2JlbmNobWFyayA9IGJlbmNobWFyazsKKyAgICAgICAg
Zm9yIChsZXQgc3ViUmVzdWx0IG9mIFJlc3VsdHMuc3ViUmVzdWx0cykKKyAgICAgICAgICAgIHRo
aXNbc3ViUmVzdWx0XSA9IG5ldyBTdGF0cyhiZW5jaG1hcmsuY2VsbHNbc3ViUmVzdWx0XSk7Cisg
ICAgfQorICAgIAorICAgIGdldCBiZW5jaG1hcmsoKSB7IHJldHVybiB0aGlzLl9iZW5jaG1hcms7
IH0KKyAgICAKKyAgICByZXNldCgpCisgICAgeworICAgICAgICBmb3IgKGxldCBzdWJSZXN1bHQg
b2YgUmVzdWx0cy5zdWJSZXN1bHRzKQorICAgICAgICAgICAgdGhpc1tzdWJSZXN1bHRdLnJlc2V0
KCk7CisgICAgfQorICAgIAorICAgIHJlcG9ydFJ1bm5pbmcoKQorICAgIHsKKyAgICAgICAgdGhp
cy5fYmVuY2htYXJrLmNlbGxzLm1lc3NhZ2UuaW5uZXJIVE1MID0gIlJ1bm5pbmcuLi4iOworICAg
IH0KKyAgICAKKyAgICByZXBvcnREb25lKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2JlbmNobWFy
ay5jZWxscy5tZXNzYWdlLmlubmVySFRNTCA9ICIiOworICAgIH0KKyAgICAKKyAgICByZXBvcnRS
ZXN1bHQodGltZXMpCisgICAgeworICAgICAgICBmdW5jdGlvbiBhdmVyYWdlQWJvdmVQZXJjZW50
aWxlKG51bWJlcnMsIHBlcmNlbnRpbGUpIHsKKyAgICAgICAgICAgIC8vIERvbid0IGNoYW5nZSB0
aGUgb3JpZ2luYWwgYXJyYXkuCisgICAgICAgICAgICBudW1iZXJzID0gbnVtYmVycy5zbGljZSgp
OworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBTb3J0IGluIGFzY2VuZGluZyBvcmRlci4K
KyAgICAgICAgICAgIG51bWJlcnMuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhIC0gYjsg
fSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdyB0aGUgZWxlbWVudHMgd2Ugd2Fu
dCBhcmUgYXQgdGhlIGVuZC4gS2VlcCByZW1vdmluZyB0aGVtIHVudGlsIHRoZSBhcnJheSBzaXpl
IHNocmlua3MgdG9vIG11Y2guCisgICAgICAgICAgICAvLyBFeGFtcGxlcyBhc3N1bWluZyBwZXJj
ZW50aWxlID0gOTk6CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gLSBudW1iZXJzLmxl
bmd0aCBzdGFydHMgYXQgMTAwOiB3ZSB3aWxsIHJlbW92ZSBqdXN0IHRoZSB3b3JzdCBlbnRyeSBh
bmQgdGhlbiBub3QgcmVtb3ZlIGFueW1vcmUsCisgICAgICAgICAgICAvLyAgIHNpbmNlIHRoZW4g
bnVtYmVycy5sZW5ndGggLyBvcmlnaW5hbExlbmd0aCA9IDAuOTkuCisgICAgICAgICAgICAvLwor
ICAgICAgICAgICAgLy8gLSBudW1iZXJzLmxlbmd0aCBzdGFydHMgYXQgMTAwMDogd2Ugd2lsbCBy
ZW1vdmUgdGhlIHRlbiB3b3JzdC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAtIG51
bWJlcnMubGVuZ3RoIHN0YXJ0cyBhdCAxMDogd2Ugd2lsbCByZW1vdmUganVzdCB0aGUgd29yc3Qu
CisgICAgICAgICAgICB2YXIgbnVtYmVyc1dlV2FudCA9IFtdOworICAgICAgICAgICAgdmFyIG9y
aWdpbmFsTGVuZ3RoID0gbnVtYmVycy5sZW5ndGg7CisgICAgICAgICAgICB3aGlsZSAobnVtYmVy
cy5sZW5ndGggLyBvcmlnaW5hbExlbmd0aCA+IHBlcmNlbnRpbGUgLyAxMDApCisgICAgICAgICAg
ICAgICAgbnVtYmVyc1dlV2FudC5wdXNoKG51bWJlcnMucG9wKCkpOworICAgICAgICAgICAgCisg
ICAgICAgICAgICB2YXIgc3VtID0gMDsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bnVtYmVyc1dlV2FudC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBzdW0gKz0gbnVtYmVy
c1dlV2FudFtpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHN1bSAv
IG51bWJlcnNXZVdhbnQubGVuZ3RoOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBEbyBh
IHNhbml0eSBjaGVjay4KKyAgICAgICAgICAgIGlmIChudW1iZXJzLmxlbmd0aCAmJiByZXN1bHQg
PCBudW1iZXJzW251bWJlcnMubGVuZ3RoIC0gMV0pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyAi
U2FuaXR5IGNoZWNrIGZhaWw6IHRoZSB3b3JzdCBjYXNlIHJlc3VsdCBpcyAiICsgcmVzdWx0ICsK
KyAgICAgICAgICAgICAgICAgICAgIiBidXQgd2UgZGlkbid0IHRha2UgaW50byBhY2NvdW50ICIg
KyBudW1iZXJzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5maXJzdEl0ZXJhdGlvbi5hZGQo
dGltZXNbMF0pOworICAgICAgICBsZXQgc3RlYWR5VGltZXMgPSB0aW1lcy5zbGljZSgxKTsKKyAg
ICAgICAgdGhpcy5hdmVyYWdlV29yc3RDYXNlLmFkZChhdmVyYWdlQWJvdmVQZXJjZW50aWxlKHN0
ZWFkeVRpbWVzLCA5OCkpOworICAgICAgICB0aGlzLnN0ZWFkeVN0YXRlLmFkZChzdGVhZHlUaW1l
cy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiBwcmV2aW91cyArIGN1cnJlbnQpKTsKKyAg
ICAgICAgdGhpcy5yZXBvcnREb25lKCk7CisgICAgfQorICAgIAorICAgIHJlcG9ydEVycm9yKG1l
c3NhZ2UsIHVybCwgbGluZU51bWJlcikKKyAgICB7CisgICAgICAgIGZvciAobGV0IHN1YlJlc3Vs
dCBvZiBSZXN1bHRzLnN1YlJlc3VsdHMpCisgICAgICAgICAgICB0aGlzW3N1YlJlc3VsdF0ucmVw
b3J0UmVzdWx0KFN0YXRzLmVycm9yKTsKKyAgICAgICAgdGhpcy5fYmVuY2htYXJrLmNlbGxzLm1l
c3NhZ2UuaW5uZXJIVE1MID0gdXJsICsgIjoiICsgbGluZU51bWJlciArICI6ICIgKyBtZXNzYWdl
OworICAgIH0KK30KKworUmVzdWx0cy5zdWJSZXN1bHRzID0gWyJmaXJzdEl0ZXJhdGlvbiIsICJh
dmVyYWdlV29yc3RDYXNlIiwgInN0ZWFkeVN0YXRlIl07CkluZGV4OiBQZXJmb3JtYW5jZVRlc3Rz
L0VTNlNhbXBsZUJlbmNoL3N0YXRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMv
RVM2U2FtcGxlQmVuY2gvc3RhdHMuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0VTNlNhbXBsZUJlbmNoL3N0YXRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisidXNlIHN0cmlj
dCI7CisKK2NsYXNzIFN0YXRzIHsKKyAgICBjb25zdHJ1Y3RvcihjZWxsKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fY2VsbCA9IGNlbGw7CisgICAgICAgIHRoaXMuX2RhdGEgPSBbXTsKKyAgICB9Cisg
ICAgCisgICAgcmVzZXQoLi4uZGF0YSkKKyAgICB7CisgICAgICAgIHRoaXMuX2RhdGEgPSBkYXRh
OworICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICB9CisgICAgCisgICAgYWRkKC4uLmRhdGEp
CisgICAgeworICAgICAgICB0aGlzLl9kYXRhLnB1c2goLi4uZGF0YSk7CisgICAgICAgIHRoaXMu
X3VwZGF0ZSgpOworICAgIH0KKyAgICAKKyAgICBnZXQgbnVtSXRlcmF0aW9ucygpIHsgcmV0dXJu
IHRoaXMuX2RhdGEubGVuZ3RoOyB9CisgICAgdmFsdWVGb3JJdGVyYXRpb24oaW5kZXgpIHsgcmV0
dXJuIHRoaXMuX2RhdGFbaW5kZXhdOyB9CisgICAgCisgICAgZ2V0IHJlc3VsdCgpCisgICAgewor
ICAgICAgICB2YXIgdERpc3RyaWJ1dGlvbiA9IFtOYU4sIE5hTiwgMTIuNzEsIDQuMzAsIDMuMTgs
IDIuNzgsIDIuNTcsIDIuNDUsIDIuMzYsIDIuMzEsIDIuMjYsIDIuMjMsIDIuMjAsIDIuMTgsIDIu
MTYsIDIuMTQsIDIuMTMsIDIuMTIsIDIuMTEsIDIuMTAsIDIuMDksIDIuMDksIDIuMDgsIDIuMDcs
IDIuMDcsIDIuMDYsIDIuMDYsIDIuMDYsIDIuMDUsIDIuMDUsIDIuMDUsIDIuMDQsIDIuMDQsIDIu
MDQsIDIuMDMsIDIuMDMsIDIuMDMsIDIuMDMsIDIuMDMsIDIuMDIsIDIuMDIsIDIuMDIsIDIuMDIs
IDIuMDIsIDIuMDIsIDIuMDIsIDIuMDEsIDIuMDEsIDIuMDEsIDIuMDEsIDIuMDEsIDIuMDEsIDIu
MDEsIDIuMDEsIDIuMDEsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAs
IDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDIuMDAsIDEuOTksIDEu
OTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTks
IDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEu
OTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTksIDEuOTgsIDEuOTgsIDEuOTgs
IDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEu
OTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgs
IDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEu
OTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgs
IDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEu
OTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgsIDEuOTgs
IDEuOTgsIDEuOTgsIDEuOTgsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcs
IDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEu
OTcsIDEuOTcsIDEuOTcsIDEuOTcsIDEuOTZdOworICAgICAgICB2YXIgdE1heCA9IHREaXN0cmli
dXRpb24ubGVuZ3RoOworICAgICAgICB2YXIgdExpbWl0ID0gMS45NjsKKworICAgICAgICBmdW5j
dGlvbiB0RGlzdChuKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobiA+IHRNYXgpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRMaW1pdDsKKyAgICAgICAgICAgIHJldHVybiB0RGlzdHJpYnV0
aW9uW25dOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsZXQgc3VtID0gMDsKKyAgICAg
ICAgbGV0IG4gPSAwOworICAgICAgICBmb3IgKGxldCBkYXR1bSBvZiB0aGlzLl9kYXRhKSB7Cisg
ICAgICAgICAgICBzdW0gKz0gZGF0dW07CisgICAgICAgICAgICBuKys7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGxldCBtZWFuID0gc3VtIC8gbjsKKyAgICAgICAgCisgICAgICAgIGlm
IChuIDw9IDIpCisgICAgICAgICAgICByZXR1cm4ge24sIG1lYW59OworICAgICAgICAKKyAgICAg
ICAgbGV0IHN1bUZvclN0ZERldiA9IDA7CisgICAgICAgIGZvciAobGV0IGRhdHVtIG9mIHRoaXMu
X2RhdGEpCisgICAgICAgICAgICBzdW1Gb3JTdGREZXYgKz0gTWF0aC5wb3coZGF0dW0gLSBtZWFu
LCAyKTsKKyAgICAgICAgbGV0IHN0YW5kYXJkRGV2aWF0aW9uID0gTWF0aC5zcXJ0KHN1bUZvclN0
ZERldiAvIChuIC0gMSkpOworICAgICAgICBsZXQgc3RhbmRhcmRFcnJvciA9IHN0YW5kYXJkRGV2
aWF0aW9uIC8gTWF0aC5zcXJ0KG4pOworICAgICAgICBsZXQgaW50ZXJ2YWwgPSB0RGlzdChuKSAq
IHN0YW5kYXJkRXJyb3I7CisgICAgICAgIHJldHVybiB7biwgbWVhbiwgaW50ZXJ2YWx9OworICAg
IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gdGhp
cy5yZXN1bHQ7CisgICAgICAgIAorICAgICAgICBpZiAoIXJlc3VsdC5uKQorICAgICAgICAgICAg
cmV0dXJuICIuLi4iOworICAgICAgICAKKyAgICAgICAgaWYgKHJlc3VsdC5tZWFuICE9IHJlc3Vs
dC5tZWFuKQorICAgICAgICAgICAgcmV0dXJuICJFUlJPUiI7CisgICAgICAgIAorICAgICAgICBp
ZiAoImludGVydmFsIiBpbiByZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gYCR7cmVzdWx0Lm1l
YW4udG9GaXhlZCgyKX0gbXMgJnBsdXNtbjsgJHtyZXN1bHQuaW50ZXJ2YWwudG9GaXhlZCgyKX0g
bXNgOworCisgICAgICAgIHJldHVybiBgJHtyZXN1bHQubWVhbi50b0ZpeGVkKDIpfSBtc2A7Cisg
ICAgfQorICAgIAorICAgIF91cGRhdGUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2NlbGwp
CisgICAgICAgICAgICB0aGlzLl9jZWxsLmlubmVySFRNTCA9IHRoaXMudG9TdHJpbmcoKTsKKyAg
ICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvc3R5bGUuY3Nz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvc3R5bGUuY3Nz
CShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9FUzZTYW1wbGVCZW5jaC9zdHlsZS5j
c3MJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDIgQEAKK2JvZHkgeworICAgIGJhY2tncm91
bmQ6ICNmZmY7CisgICAgY29sb3I6ICMwMDA7CisgICAgbWFyZ2luOiAxMHB4OworICAgIHBhZGRp
bmc6IDA7Cit9Citib2R5LCB0aCwgdHIgeworICAgIGZvbnQ6IG5vcm1hbCAxM3B4IFZlcmRhbmEs
QXJpYWwsJ0JpdHN0cmVhbSBWZXJhIFNhbnMnLEhlbHZldGljYSxzYW5zLXNlcmlmOworfQoraDEs
IGgyLCBoMywgaDQgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCxWZXJkYW5hLCdCaXRzdHJlYW0g
VmVyYSBTYW5zJyxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsKKyAgICBmb250LXdlaWdodDogYm9sZDsK
KyAgICBsZXR0ZXItc3BhY2luZzogLTAuMDE4ZW07CisgICAgcGFnZS1icmVhay1hZnRlcjogYXZv
aWQ7Cit9CitoMSB7IGZvbnQtc2l6ZTogMjBweDsgdGV4dC1pbmRlbnQ6IC0xMHB4IH0KK2gyIHsg
Zm9udC1zaXplOiAxN3B4OyB0ZXh0LWluZGVudDogLTEwcHggfQoraDMgeyBmb250LXNpemU6IDE1
cHg7IHRleHQtaW5kZW50OiAtMTBweCB9CitociB7IGJvcmRlcjogbm9uZTsgIGJvcmRlci10b3A6
IDFweCBzb2xpZCAjY2NiOyBtYXJnaW46IDJlbSAwIH0KK2FkZHJlc3MgeyBmb250LXN0eWxlOiBu
b3JtYWwgfQoraW1nIHsgYm9yZGVyOiBub25lIH0KKworLnVuZGVybGluZSB7IHRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lIH0KK29sLmxvd2VyYWxwaGEgeyBsaXN0LXN0eWxlLXR5cGU6IGxvd2Vy
LWFscGhhIH0KK29sLnVwcGVyYWxwaGEgeyBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLWFscGhhIH0K
K29sLmxvd2Vycm9tYW4geyBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLXJvbWFuIH0KK29sLnVwcGVy
cm9tYW4geyBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuIH0KK29sLmFyYWJpYyB7IGxpc3Qt
c3R5bGUtdHlwZTogZGVjaW1hbCB9CisKKy5iYW5uZXItbGluazpsaW5rLCAuYmFubmVyLWxpbms6
dmlzaXRlZCB7CisgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGNvbG9yOiAjYjAwOwor
ICAgIGJvcmRlci1ib3R0b206IDBweDsKK30KKworLyogTGluayBzdHlsZXMgKi8KKzpsaW5rLCA6
dmlzaXRlZCB7CisgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGNvbG9yOiAjYjAwOwor
ICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2JiYjsKK30KK2gxIDpsaW5rLCBoMSA6dmlz
aXRlZCAsaDIgOmxpbmssIGgyIDp2aXNpdGVkLCBoMyA6bGluaywgaDMgOnZpc2l0ZWQsCitoNCA6
bGluaywgaDQgOnZpc2l0ZWQsIGg1IDpsaW5rLCBoNSA6dmlzaXRlZCwgaDYgOmxpbmssIGg2IDp2
aXNpdGVkIHsKKyAgICBjb2xvcjogaW5oZXJpdDsKK30KKworLyogSGVhZGluZyBhbmNob3JzICov
CisuYW5jaG9yOmxpbmssIC5hbmNob3I6dmlzaXRlZCB7CisgICAgYm9yZGVyOiBub25lOworICAg
IGNvbG9yOiAjZDdkN2Q3OworICAgIGZvbnQtc2l6ZTogLjhlbTsKKyAgICB2ZXJ0aWNhbC1hbGln
bjogdGV4dC10b3A7Cit9CisqID4gLmFuY2hvcjpsaW5rLCAqID4gLmFuY2hvcjp2aXNpdGVkIHsK
KyAgICB2aXNpYmlsaXR5OiBoaWRkZW47Cit9CitoMTpob3ZlciAuYW5jaG9yLCBoMjpob3ZlciAu
YW5jaG9yLCBoMzpob3ZlciAuYW5jaG9yLAoraDQ6aG92ZXIgLmFuY2hvciwgaDU6aG92ZXIgLmFu
Y2hvciwgaDY6aG92ZXIgLmFuY2hvciwKK3NwYW46aG92ZXIgLmFuY2hvciB7CisgICAgdmlzaWJp
bGl0eTogdmlzaWJsZTsKK30KKworYS5taXNzaW5nOmxpbmssIGEubWlzc2luZzp2aXNpdGVkLCBh
Lm1pc3NpbmcsIHNwYW4ubWlzc2luZywKK2EuZm9yYmlkZGVuLCBzcGFuLmZvcmJpZGRlbiB7IGNv
bG9yOiAjOTk4IH0KK2EubWlzc2luZzpob3ZlciB7IGNvbG9yOiAjMDAwIH0KK2EuY2xvc2VkOmxp
bmssIGEuY2xvc2VkOnZpc2l0ZWQsIHNwYW4uY2xvc2VkIHsgdGV4dC1kZWNvcmF0aW9uOiBsaW5l
LXRocm91Z2ggfQorCitwcmUgeworICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7CisgICAgYm9yZGVy
OiAxcHggc29saWQgI2Q3ZDdkNzsKKyAgICBtYXJnaW46IDFlbSAxLjc1ZW07CisgICAgcGFkZGlu
ZzogLjI1ZW07CisgICAgb3ZlcmZsb3c6IGF1dG87Cit9CisKK2Rpdi5jb2RlIHsKKyAgICBiYWNr
Z3JvdW5kOiAjZjdmN2Y3OworICAgIGJvcmRlcjogMXB4IHNvbGlkICNkN2Q3ZDc7CisgICAgbWFy
Z2luOiAxZW0gMS43NWVtOworICAgIHBhZGRpbmc6IC4yNWVtOworICAgIG92ZXJmbG93OiBhdXRv
Cit9CisKK2Rpdi5jb2RlIHByZSB7IG1hcmdpbjogMDsgfQorCitkdCB7CisgICAgZm9udC13ZWln
aHQ6IGJvbGQ7Cit9CitkZCB7CisgICAgcGFkZGluZzogMCAwIDAuOGVtIDA7Cit9CitkZDpsYXN0
LWNoaWxkIHsKKyAgICBwYWRkaW5nOiAwIDAgMCAwOworfQorCisvKiogTG9nbyAqKi8KKy5zaXRl
LWxvZ28geworICAgIGZvbnQtc2l6ZTogM3JlbTsKKyAgICBsaW5lLWhlaWdodDogM3JlbTsKKyAg
ICBmb250LXdlaWdodDogMjAwOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBiYWNr
Z3JvdW5kOiB1cmwoJy4uLy4uL3dwLWNvbnRlbnQvdGhlbWVzL3dlYmtpdC9pbWFnZXMvd2Via2l0
LnN2ZycpIG5vLXJlcGVhdDsKKyAgICBwYWRkaW5nLWxlZnQ6IDdyZW07CisgICAgY29sb3I6ICMz
MzM7Cit9CisKKy5zaXRlLWxvZ28gLnRhZ2xpbmUgeworICAgIGRpc3BsYXk6IGJsb2NrOworICAg
IGZvbnQtc2l6ZTogMS4ycmVtOworICAgIGxpbmUtaGVpZ2h0OiAycmVtOworICAgIGxldHRlci1z
cGFjaW5nOiAtMC4wNXJlbTsKKyAgICBjb2xvcjogIzY2NjsKK30KKwordGFibGUgeworICAgIHBh
ZGRpbmc6IDAgMCAwIDA7Cit9CisKKyNjb250ZW50cyB7CisgICAgZm9udC1zaXplOiA5MCU7Cisg
ICAgcGFkZGluZzogMWVtIDJlbSAyZW0gMmVtCit9CisKK3AgeworICAgIG1hcmdpbjogMCAwIDFl
bSAwOworfQorCitwOmxhc3QtY2hpbGQgeworICAgIG1hcmdpbjogMCAwIDAgMDsKK30KKwordGgg
eworICAgIGZvbnQtc2l6ZTogOTAlOworICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAgIAorICAgIHBh
ZGRpbmc6IDAgMCAxZW0gMDsKK30KKwordGQgeworICAgIGZvbnQtc2l6ZTogOTAlOworICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKKyAgICBwYWRkaW5nOiAwIDAgMWVtIDA7Cit9CkluZGV4OiBQZXJm
b3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL0Jhc2ljL2JlbmNobWFyay5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL0Jhc2ljL2JlbmNobWFyay5qcwko
cmV2aXNpb24gMjAyNTkxKQorKysgUGVyZm9ybWFuY2VUZXN0cy9FUzZTYW1wbGVCZW5jaC9CYXNp
Yy9iZW5jaG1hcmsuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3Ry
aWN0IjsKIAogY2xhc3MgQmVuY2htYXJrIHsKLSAgICBjb25zdHJ1Y3Rvcih2ZXJib3NlKQorICAg
IGNvbnN0cnVjdG9yKHZlcmJvc2UgPSAwKQogICAgIHsKICAgICAgICAgdGhpcy5fdmVyYm9zZSA9
IHZlcmJvc2U7CiAgICAgfQo=
</data>
<flag name="review"
          id="306139"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>