<?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>145102</bug_id>
          
          <creation_ts>2015-05-16 17:11:55 -0700</creation_ts>
          <short_desc>[JSC] Make StringRecursionChecker faster in the simple cases without any recursion</short_desc>
          <delta_ts>2015-05-17 23:23:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1095466</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-16 17:11:55 -0700</bug_when>
    <thetext>[JSC] Make StringRecursionChecker faster in the simple cases without any recursion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095467</commentid>
    <comment_count>1</comment_count>
      <attachid>253281</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-16 17:19:31 -0700</bug_when>
    <thetext>Created attachment 253281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095473</commentid>
    <comment_count>2</comment_count>
      <attachid>253281</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-17 09:47:02 -0700</bug_when>
    <thetext>Comment on attachment 253281
Patch

I really like this optimization.

I wish, however, that instead of custom code we had a class that was “HashSet plus single element kept outside the set”. Then this fix would just be changing the class name from HashSet to that new class. In theory. If the class was designed and implemented tightly enough. I’d really like to be able to apply this kind of optimization trivially in various places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095536</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-17 18:10:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 253281 [details]
&gt; Patch
&gt; 
&gt; I really like this optimization.
&gt; 
&gt; I wish, however, that instead of custom code we had a class that was
&gt; “HashSet plus single element kept outside the set”. Then this fix would just
&gt; be changing the class name from HashSet to that new class. In theory. If the
&gt; class was designed and implemented tightly enough. I’d really like to be
&gt; able to apply this kind of optimization trivially in various places.

I believe Alex is working on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095548</commentid>
    <comment_count>4</comment_count>
      <attachid>253281</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-17 23:23:35 -0700</bug_when>
    <thetext>Comment on attachment 253281
Patch

Clearing flags on attachment: 253281

Committed r184447: &lt;http://trac.webkit.org/changeset/184447&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095549</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-17 23:23:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253281</attachid>
            <date>2015-05-16 17:19:31 -0700</date>
            <delta_ts>2015-05-17 23:23:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145102-20150516171805.patch</filename>
            <type>text/plain</type>
            <size>17546</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ODA5ZjFmNTU0MjIwNWUzZmZhYzkwYzJlZmQ1OTViYTcwMTM2NjMyLi5hMmVhYzcwNTg0NDIyOGMy
ZDg1ODc0NWI3MTNhNzE5NjM4NDRjNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNS0wNS0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gTWFrZSBTdHJpbmdSZWN1cnNpb25DaGVja2VyIGZhc3Rl
ciBpbiB0aGUgc2ltcGxlIGNhc2VzIHdpdGhvdXQgYW55IHJlY3Vyc2lvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MTAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gZ2VuZXJhbCwgdGhlIGFycmF5
IHRhcmdldGVkIGJ5IEFycmF5LnRvU3RyaW5nKCkgb3IgQXJyYXkuam9pbigpIGFyZSBwcmV0dHkK
KyAgICAgICAgc2ltcGxlLiBJbiB0aG9zZSBzaW1wbGUgY2FzZXMsIHdlIHNwZW5kIGFzIG11Y2gg
dGltZSBpbiBTdHJpbmdSZWN1cnNpb25DaGVja2VyCisgICAgICAgIGFzIHdlIGRvIG9uIHRoZSBh
Y3R1YWwgb3BlcmF0aW9uLgorCisgICAgICAgIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhlIEhh
c2hTZXQgc3RyaW5nUmVjdXJzaW9uQ2hlY2tWaXNpdGVkT2JqZWN0cyB1c2VkCisgICAgICAgIHRv
IGRldGVjdCByZWN1cnNpb24uIFdlIGFyZSBjb25zdGFudGx5IGFkZGluZyBhbmQgcmVtb3Zpbmcg
b2JqZWN0cyB3aGljaAorICAgICAgICBkaXJ0eSBidWNrZXRzIGFuZCBmb3JjZSBjb25zdGFudCBy
ZWhhc2guCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgc2ltcGxlIHNob3J0Y3V0IGZvciB0
aG9zZSBzaW1wbGUgY2FzZTogaW4gYWRkaXRpb24gdG8gdGhlIEhhc2hTZXQsCisgICAgICAgIHdl
IGtlZXAgYSBwb2ludGVyIHRvIHRoZSByb290IG9iamVjdCBvZiB0aGUgcmVjdXJzaW9uLgorICAg
ICAgICBJbiB0aGUgdmFzdCBtYWpvcml0eSBvZiBjYXNlcywgd2Ugbm8gbG9uZ2VyIHRvdWNoIHRo
ZSBIYXNoU2V0IGF0IGFsbC4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGEgMTIlIHByb2dyZXNz
aW9uIG9uIHRoZSBvdmVyYWxsIHNjb3JlIG9mIEFycmF5V2VpZ2h0ZWQuCisKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUmVj
dXJzaW9uQ2hlY2tlcjo6cGVyZm9ybUNoZWNrKToKKyAgICAgICAgKEpTQzo6U3RyaW5nUmVjdXJz
aW9uQ2hlY2tlcjo6flN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIpOgorICAgICAgICAqIHJ1bnRpbWUv
Vk0uaDoKKwogMjAxNS0wNS0xNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIEluc2VydCBzdG9yZSBiYXJyaWVycyBsYXRlIHNvIHRoYXQgSVIgdHJhbnNmb3JtYXRp
b25zIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlbQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5oCmluZGV4IGM5OWRk
NGZmMTNiZWI4YmJlMGM4N2VlNzE5YmM3YTU0NGRlOTBkN2UuLjBmMTk5MGU3NmYwZjI0ODJjOWQ5
YjAzNGNiNTEzMWJmMWJmYjViOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVja2VyLmgKQEAgLTUyLDcgKzUyLDE1IEBAIGlu
bGluZSBKU1ZhbHVlIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXI6OnBlcmZvcm1DaGVjaygpCiAgICAg
Vk0mIHZtID0gbV9leGVjLT52bSgpOwogICAgIGlmICghdm0uaXNTYWZlVG9SZWN1cnNlKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcigpOwotICAgIGJvb2wgYWxyZWFk
eVZpc2l0ZWQgPSAhdm0uc3RyaW5nUmVjdXJzaW9uQ2hlY2tWaXNpdGVkT2JqZWN0cy5hZGQobV90
aGlzT2JqZWN0KS5pc05ld0VudHJ5OworCisgICAgYm9vbCBhbHJlYWR5VmlzaXRlZCA9IGZhbHNl
OworICAgIGlmICghdm0uc3RyaW5nUmVjdXJzaW9uQ2hlY2tGaXJzdE9iamVjdCkKKyAgICAgICAg
dm0uc3RyaW5nUmVjdXJzaW9uQ2hlY2tGaXJzdE9iamVjdCA9IG1fdGhpc09iamVjdDsKKyAgICBl
bHNlIGlmICh2bS5zdHJpbmdSZWN1cnNpb25DaGVja0ZpcnN0T2JqZWN0ID09IG1fdGhpc09iamVj
dCkKKyAgICAgICAgYWxyZWFkeVZpc2l0ZWQgPSB0cnVlOworICAgIGVsc2UKKyAgICAgICAgYWxy
ZWFkeVZpc2l0ZWQgPSAhdm0uc3RyaW5nUmVjdXJzaW9uQ2hlY2tWaXNpdGVkT2JqZWN0cy5hZGQo
bV90aGlzT2JqZWN0KS5pc05ld0VudHJ5OworCiAgICAgaWYgKGFscmVhZHlWaXNpdGVkKQogICAg
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsgLy8gUmV0dXJuIGVtcHR5IHN0cmluZyB0byBhdm9p
ZCBpbmZpbml0ZSByZWN1cnNpb24uCiAgICAgcmV0dXJuIEpTVmFsdWUoKTsgLy8gSW5kaWNhdGUg
c3VjY2Vzcy4KQEAgLTc0LDggKzgyLDE0IEBAIGlubGluZSBTdHJpbmdSZWN1cnNpb25DaGVja2Vy
Ojp+U3RyaW5nUmVjdXJzaW9uQ2hlY2tlcigpCiB7CiAgICAgaWYgKG1fZWFybHlSZXR1cm5WYWx1
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChtX2V4ZWMtPnZtKCkuc3RyaW5nUmVjdXJz
aW9uQ2hlY2tWaXNpdGVkT2JqZWN0cy5jb250YWlucyhtX3RoaXNPYmplY3QpKTsKLSAgICBtX2V4
ZWMtPnZtKCkuc3RyaW5nUmVjdXJzaW9uQ2hlY2tWaXNpdGVkT2JqZWN0cy5yZW1vdmUobV90aGlz
T2JqZWN0KTsKKworICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKKyAgICBpZiAodm0uc3RyaW5n
UmVjdXJzaW9uQ2hlY2tGaXJzdE9iamVjdCA9PSBtX3RoaXNPYmplY3QpCisgICAgICAgIHZtLnN0
cmluZ1JlY3Vyc2lvbkNoZWNrRmlyc3RPYmplY3QgPSBudWxscHRyOworICAgIGVsc2UgeworICAg
ICAgICBBU1NFUlQodm0uc3RyaW5nUmVjdXJzaW9uQ2hlY2tWaXNpdGVkT2JqZWN0cy5jb250YWlu
cyhtX3RoaXNPYmplY3QpKTsKKyAgICAgICAgdm0uc3RyaW5nUmVjdXJzaW9uQ2hlY2tWaXNpdGVk
T2JqZWN0cy5yZW1vdmUobV90aGlzT2JqZWN0KTsKKyAgICB9CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCmluZGV4IDVlNTc0MTI3OWRiMDgwODU3ODMxMDY0YjRhZTUxY2YwNGU5
MTVlMGIuLjNiYmRhZjExZGFjMWY3OTYzYTAzYjRmY2QwOTBlYzZlMzVhMGQ3ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNDUzLDYgKzQ1Myw3IEBAIHB1YmxpYzoKIAogICAg
IFZNRW50cnlTY29wZSogZW50cnlTY29wZTsKIAorICAgIEpTT2JqZWN0KiBzdHJpbmdSZWN1cnNp
b25DaGVja0ZpcnN0T2JqZWN0IHsgbnVsbHB0ciB9OwogICAgIEhhc2hTZXQ8SlNPYmplY3QqPiBz
dHJpbmdSZWN1cnNpb25DaGVja1Zpc2l0ZWRPYmplY3RzOwogCiAgICAgTG9jYWxUaW1lT2Zmc2V0
Q2FjaGUgbG9jYWxUaW1lT2Zmc2V0Q2FjaGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjQ0NTNhOTMzNzJjNTAwZGFlOTEx
YjM0YzU0Mjk0MWY3NjQ3OGJhYy4uY2ZhZWIzZWY0NTg0NjFhZDY1OTY0M2M0YWZkNmUyYzM5NzVj
NWRjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA1LTE2ICBCZW5qYW1pbiBQb3VsYWlu
ICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBbSlNDXSBNYWtlIFN0cmluZ1JlY3Vy
c2lvbkNoZWNrZXIgZmFzdGVyIGluIHRoZSBzaW1wbGUgY2FzZXMgd2l0aG91dCBhbnkgcmVjdXJz
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUx
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBy
b3ZlIHRoZSBjb3ZlcmFnZSBhIHRpbnkgYml0LgorCisgICAgICAgICoganMvYXJyYXktc3RyaW5n
LXJlY3Vyc2lvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2FycmF5LXN0cmlu
Zy1yZWN1cnNpb24uaHRtbDogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2FycmF5
LXN0cmluZy1yZWN1cnNpb24uanM6IEFkZGVkLgorCiAyMDE1LTA1LTE1ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGdldEVsZW1lbnRCeUlkIHRvIERvY3VtZW50
RnJhZ21lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2FycmF5LXN0cmluZy1yZWN1cnNp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvYXJyYXktc3RyaW5nLXJlY3Vyc2lvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYzNmM5ZTg1ZWVmYTA4YzdlMzA1ZDYwMGE2MzEwOTM5
ZjQxZGJlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2FycmF5LXN0cmluZy1y
ZWN1cnNpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODQgQEAKK1ZlcmlmeSB0aGF0IHdlIGRv
IG5vdCByZWN1cnNlIGluZmluaXRlbHkgdGhyb3VnaCBvbmUgb2YgdGhlIEFycmF5LT5zdHJpbmcg
Y29udmVyc2lvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFyIGFy
cmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmID0gW107CisgICAgYXJyYXlEaXJlY3RseUNvbnRh
aW5pbmdJdHNlbGYucHVzaChhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZik7CisgICAgYXJy
YXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYudG9TdHJpbmcoKTsgaXMgIiIKK1BBU1MgdmFyIGFy
cmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmID0gW107CisgICAgYXJyYXlEaXJlY3RseUNvbnRh
aW5pbmdJdHNlbGYucHVzaChhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZik7CisgICAgYXJy
YXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYudG9Mb2NhbGVTdHJpbmcoKTsgaXMgIiIKK1BBU1Mg
dmFyIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmID0gW107CisgICAgYXJyYXlEaXJlY3Rs
eUNvbnRhaW5pbmdJdHNlbGYucHVzaChhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZik7Cisg
ICAgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYuam9pbigiLCIpOyBpcyAiIgorUEFTUyB2
YXIgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYgPSBbXTsKKyAgICBhcnJheURpcmVjdGx5
Q29udGFpbmluZ0l0c2VsZi5wdXNoKDEpOworICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRz
ZWxmLnB1c2goYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYpOworICAgIGFycmF5RGlyZWN0
bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldlYktpdCEiKTsKKyAgICBhcnJheURpcmVjdGx5Q29u
dGFpbmluZ0l0c2VsZi5wdXNoKGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmKTsKKyAgICBh
cnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi50b1N0cmluZygpOyBpcyAiMSwsV2ViS2l0ISwi
CitQQVNTIHZhciBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZiA9IFtdOworICAgIGFycmF5
RGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goMSk7CisgICAgYXJyYXlEaXJlY3RseUNvbnRh
aW5pbmdJdHNlbGYucHVzaChhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZik7CisgICAgYXJy
YXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaCgiV2ViS2l0ISIpOworICAgIGFycmF5RGly
ZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYp
OworICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnRvTG9jYWxlU3RyaW5nKCk7IGlz
ICIxLCxXZWJLaXQhLCIKK1BBU1MgdmFyIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmID0g
W107CisgICAgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaCgxKTsKKyAgICBhcnJh
eURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRz
ZWxmKTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKCJXZWJLaXQhIik7
CisgICAgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaChhcnJheURpcmVjdGx5Q29u
dGFpbmluZ0l0c2VsZik7CisgICAgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYuam9pbigi
LSIpOyBpcyAiMS0tV2ViS2l0IS0iCitQQVNTIHZhciBhcnJheUluZGlyZWN0bHlDb250YWluaW5n
SXRzZWxmID0gW107CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKDEp
OworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaChbMSwgMiwgWzUsIDYs
IFthcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmXV1dKTsKKyAgICBhcnJheUluZGlyZWN0
bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldlYktpdCEiKTsKKyAgICBhcnJheUluZGlyZWN0bHlD
b250YWluaW5nSXRzZWxmLnRvU3RyaW5nKCk7IGlzICIxLDEsMiw1LDYsLFdlYktpdCEiCitQQVNT
IHZhciBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmID0gW107CisgICAgYXJyYXlJbmRp
cmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKDEpOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRh
aW5pbmdJdHNlbGYucHVzaChbMSwgMiwgWzUsIDYsIFthcnJheUluZGlyZWN0bHlDb250YWluaW5n
SXRzZWxmXV1dKTsKKyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldl
YktpdCEiKTsKKyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnRvTG9jYWxlU3Ry
aW5nKCk7IGlzICIxLDEsMiw1LDYsLFdlYktpdCEiCitQQVNTIHZhciBhcnJheUluZGlyZWN0bHlD
b250YWluaW5nSXRzZWxmID0gW107CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2Vs
Zi5wdXNoKDEpOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaChbMSwg
MiwgWzUsIDYsIFthcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmXV1dKTsKKyAgICBhcnJh
eUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldlYktpdCEiKTsKKyAgICBhcnJheUlu
ZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLmpvaW4oIj0iKTsgaXMgIjE9MSwyLDUsNiw9V2ViS2l0
ISIKK1BBU1MgdmFyIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYgPSBbXTsKKyAgICBh
cnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goMSk7CisgICAgYXJyYXlJbmRpcmVj
dGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKFsxLCAyLCBbNSwgNiwgW2FycmF5SW5kaXJlY3RseUNv
bnRhaW5pbmdJdHNlbGZdXV0pOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYu
cHVzaCgiV2ViS2l0ISIpOworICAgIFsieiIsIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNl
bGYsIDldLnRvU3RyaW5nKCk7IGlzICJ6LDEsMSwyLDUsNiwsV2ViS2l0ISw5IgorUEFTUyB2YXIg
YXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZiA9IFtdOworICAgIGFycmF5SW5kaXJlY3Rs
eUNvbnRhaW5pbmdJdHNlbGYucHVzaCgxKTsKKyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5n
SXRzZWxmLnB1c2goWzEsIDIsIFs1LCA2LCBbYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2Vs
Zl1dXSk7CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKCJXZWJLaXQh
Iik7CisgICAgWyJ6IiwgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZiwgOV0udG9Mb2Nh
bGVTdHJpbmcoKTsgaXMgInosMSwxLDIsNSw2LCxXZWJLaXQhLDkiCitQQVNTIHZhciBhcnJheUlu
ZGlyZWN0bHlDb250YWluaW5nSXRzZWxmID0gW107CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udGFp
bmluZ0l0c2VsZi5wdXNoKDEpOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYu
cHVzaChbMSwgMiwgWzUsIDYsIFthcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmXV1dKTsK
KyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldlYktpdCEiKTsKKyAg
ICBbInoiLCBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLCA5XS5qb2luKCImIik7IGlz
ICJ6JjEsMSwyLDUsNiwsV2ViS2l0ISY5IgorUEFTUyB2YXIgYXJyYXlJbmRpcmVjdGx5Q29udmVy
dGluZ0l0c2VsZiA9IFsiYSJdOworICAgIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYu
cHVzaCh7IGFycmF5OiBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLCB0b1N0cmluZzog
ZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLmFycmF5LnRvU3RyaW5nKCkgfSB9KTsKKyAgICBhcnJh
eUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLnB1c2goeyBhcnJheTogYXJyYXlJbmRpcmVjdGx5
Q29udmVydGluZ0l0c2VsZiwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5hcnJh
eS50b0xvY2FsZVN0cmluZygpIH0gfSk7CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0
c2VsZi5wdXNoKHsgYXJyYXk6IGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYsIHRvU3Ry
aW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuYXJyYXkuam9pbigifiIpIH0gfSk7CisgICAg
YXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZi5wdXNoKCJXZWJLaXQhIik7CisgICAgWyJ6
IiwgYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZiwgOV0udG9TdHJpbmcoKTsgaXMgInos
YSwsLCxXZWJLaXQhLDkiCitQQVNTIHZhciBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxm
ID0gWyJhIl07CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZi5wdXNoKHsgYXJy
YXk6IGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYsIHRvU3RyaW5nOiBmdW5jdGlvbigp
IHsgcmV0dXJuIHRoaXMuYXJyYXkudG9TdHJpbmcoKSB9IH0pOworICAgIGFycmF5SW5kaXJlY3Rs
eUNvbnZlcnRpbmdJdHNlbGYucHVzaCh7IGFycmF5OiBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5n
SXRzZWxmLCB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLmFycmF5LnRvTG9jYWxl
U3RyaW5nKCkgfSB9KTsKKyAgICBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLnB1c2go
eyBhcnJheTogYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZiwgdG9TdHJpbmc6IGZ1bmN0
aW9uKCkgeyByZXR1cm4gdGhpcy5hcnJheS5qb2luKCJ+IikgfSB9KTsKKyAgICBhcnJheUluZGly
ZWN0bHlDb252ZXJ0aW5nSXRzZWxmLnB1c2goIldlYktpdCEiKTsKKyAgICBbInoiLCBhcnJheUlu
ZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLCA5XS50b0xvY2FsZVN0cmluZygpOyBpcyAieixhLCws
LFdlYktpdCEsOSIKK1BBU1MgdmFyIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYgPSBb
ImEiXTsKKyAgICBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLnB1c2goeyBhcnJheTog
YXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZiwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gdGhpcy5hcnJheS50b1N0cmluZygpIH0gfSk7CisgICAgYXJyYXlJbmRpcmVjdGx5Q29u
dmVydGluZ0l0c2VsZi5wdXNoKHsgYXJyYXk6IGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNl
bGYsIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuYXJyYXkudG9Mb2NhbGVTdHJp
bmcoKSB9IH0pOworICAgIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYucHVzaCh7IGFy
cmF5OiBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLCB0b1N0cmluZzogZnVuY3Rpb24o
KSB7IHJldHVybiB0aGlzLmFycmF5LmpvaW4oIn4iKSB9IH0pOworICAgIGFycmF5SW5kaXJlY3Rs
eUNvbnZlcnRpbmdJdHNlbGYucHVzaCgiV2ViS2l0ISIpOworICAgIFsieiIsIGFycmF5SW5kaXJl
Y3RseUNvbnZlcnRpbmdJdHNlbGYsIDldLmpvaW4oIioiKTsgaXMgInoqYSwsLCxXZWJLaXQhKjki
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvYXJyYXktc3RyaW5nLXJlY3Vyc2lvbi5odG1sIGIvTGF5
b3V0VGVzdHMvanMvYXJyYXktc3RyaW5nLXJlY3Vyc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkN2Vi
ZmQxYjI2OTY2MDA0NDNjNjZiOWY5NTMxMmI3ZmNhOGYwMmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9qcy9hcnJheS1zdHJpbmctcmVjdXJzaW9uLmh0bWwKQEAgLTAsMCArMSwxMCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2FycmF5LXN0
cmluZy1yZWN1cnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LXN0cmluZy1yZWN1cnNpb24uanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYXJyYXktc3RyaW5nLXJlY3Vyc2lvbi5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42MTc5MDQyZDQxNTJkYTI5ZWU1ODNhY2I0NzdiMDkwZmZkNGRhOTQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2FycmF5LXN0cmluZy1yZWN1
cnNpb24uanMKQEAgLTAsMCArMSw4NyBAQAorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHdlIGRv
IG5vdCByZWN1cnNlIGluZmluaXRlbHkgdGhyb3VnaCBvbmUgb2YgdGhlIEFycmF5LT5zdHJpbmcg
Y29udmVyc2lvbi4iKTsKKworLy8gQXJyYXkgdGhhdCBvbmx5IGNvbnRhaW5zIGl0c2VsZi4KK3No
b3VsZEJlRXF1YWxUb1N0cmluZyhgdmFyIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmID0g
W107CisgICAgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaChhcnJheURpcmVjdGx5
Q29udGFpbmluZ0l0c2VsZik7CisgICAgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYudG9T
dHJpbmcoKTtgLCAiIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoYHZhciBhcnJheURpcmVjdGx5
Q29udGFpbmluZ0l0c2VsZiA9IFtdOworICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxm
LnB1c2goYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYpOworICAgIGFycmF5RGlyZWN0bHlD
b250YWluaW5nSXRzZWxmLnRvTG9jYWxlU3RyaW5nKCk7YCwgIiIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKGB2YXIgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYgPSBbXTsKKyAgICBhcnJh
eURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRz
ZWxmKTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5qb2luKCIsIik7YCwgIiIp
OworCisvLyBBcnJheSBjb250YWluaW5nIGl0c2VsZiBhbmQgYSBidW5jaCBvZiBvdGhlciBvYmpl
Y3RzLgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGB2YXIgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJ
dHNlbGYgPSBbXTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKDEpOwor
ICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goYXJyYXlEaXJlY3RseUNvbnRh
aW5pbmdJdHNlbGYpOworICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldl
YktpdCEiKTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKGFycmF5RGly
ZWN0bHlDb250YWluaW5nSXRzZWxmKTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2Vs
Zi50b1N0cmluZygpO2AsICIxLCxXZWJLaXQhLCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGB2
YXIgYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYgPSBbXTsKKyAgICBhcnJheURpcmVjdGx5
Q29udGFpbmluZ0l0c2VsZi5wdXNoKDEpOworICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRz
ZWxmLnB1c2goYXJyYXlEaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYpOworICAgIGFycmF5RGlyZWN0
bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldlYktpdCEiKTsKKyAgICBhcnJheURpcmVjdGx5Q29u
dGFpbmluZ0l0c2VsZi5wdXNoKGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmKTsKKyAgICBh
cnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi50b0xvY2FsZVN0cmluZygpO2AsICIxLCxXZWJL
aXQhLCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGB2YXIgYXJyYXlEaXJlY3RseUNvbnRhaW5p
bmdJdHNlbGYgPSBbXTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKDEp
OworICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goYXJyYXlEaXJlY3RseUNv
bnRhaW5pbmdJdHNlbGYpOworICAgIGFycmF5RGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2go
IldlYktpdCEiKTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKGFycmF5
RGlyZWN0bHlDb250YWluaW5nSXRzZWxmKTsKKyAgICBhcnJheURpcmVjdGx5Q29udGFpbmluZ0l0
c2VsZi5qb2luKCItIik7YCwgIjEtLVdlYktpdCEtIik7CisKKy8vIEFycmF5IGluZGlyZWN0bHkg
Y29udGFpbmluZyBpdHNlbGYuCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoYHZhciBhcnJheUluZGly
ZWN0bHlDb250YWluaW5nSXRzZWxmID0gW107CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmlu
Z0l0c2VsZi5wdXNoKDEpOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVz
aChbMSwgMiwgWzUsIDYsIFthcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmXV1dKTsKKyAg
ICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goIldlYktpdCEiKTsKKyAgICBh
cnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnRvU3RyaW5nKCk7YCwgIjEsMSwyLDUsNiws
V2ViS2l0ISIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGB2YXIgYXJyYXlJbmRpcmVjdGx5Q29u
dGFpbmluZ0l0c2VsZiA9IFtdOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYu
cHVzaCgxKTsKKyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goWzEsIDIs
IFs1LCA2LCBbYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZl1dXSk7CisgICAgYXJyYXlJ
bmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKCJXZWJLaXQhIik7CisgICAgYXJyYXlJbmRp
cmVjdGx5Q29udGFpbmluZ0l0c2VsZi50b0xvY2FsZVN0cmluZygpO2AsICIxLDEsMiw1LDYsLFdl
YktpdCEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZyhgdmFyIGFycmF5SW5kaXJlY3RseUNvbnRh
aW5pbmdJdHNlbGYgPSBbXTsKKyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1
c2goMSk7CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKFsxLCAyLCBb
NSwgNiwgW2FycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGZdXV0pOworICAgIGFycmF5SW5k
aXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaCgiV2ViS2l0ISIpOworICAgIGFycmF5SW5kaXJl
Y3RseUNvbnRhaW5pbmdJdHNlbGYuam9pbigiPSIpO2AsICIxPTEsMiw1LDYsPVdlYktpdCEiKTsK
KworLy8gQXJyYXkgY29udGFpbmluZyBhbm90aGVyIGFycmF5IHdpdGggcmVjdXJzaW9uLgorc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKGB2YXIgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZiA9
IFtdOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaCgxKTsKKyAgICBh
cnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goWzEsIDIsIFs1LCA2LCBbYXJyYXlJ
bmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZl1dXSk7CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udGFp
bmluZ0l0c2VsZi5wdXNoKCJXZWJLaXQhIik7CisgICAgWyJ6IiwgYXJyYXlJbmRpcmVjdGx5Q29u
dGFpbmluZ0l0c2VsZiwgOV0udG9TdHJpbmcoKTtgLCAieiwxLDEsMiw1LDYsLFdlYktpdCEsOSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGB2YXIgYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0
c2VsZiA9IFtdOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNlbGYucHVzaCgxKTsK
KyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goWzEsIDIsIFs1LCA2LCBb
YXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZl1dXSk7CisgICAgYXJyYXlJbmRpcmVjdGx5
Q29udGFpbmluZ0l0c2VsZi5wdXNoKCJXZWJLaXQhIik7CisgICAgWyJ6IiwgYXJyYXlJbmRpcmVj
dGx5Q29udGFpbmluZ0l0c2VsZiwgOV0udG9Mb2NhbGVTdHJpbmcoKTtgLCAieiwxLDEsMiw1LDYs
LFdlYktpdCEsOSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGB2YXIgYXJyYXlJbmRpcmVjdGx5
Q29udGFpbmluZ0l0c2VsZiA9IFtdOworICAgIGFycmF5SW5kaXJlY3RseUNvbnRhaW5pbmdJdHNl
bGYucHVzaCgxKTsKKyAgICBhcnJheUluZGlyZWN0bHlDb250YWluaW5nSXRzZWxmLnB1c2goWzEs
IDIsIFs1LCA2LCBbYXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZl1dXSk7CisgICAgYXJy
YXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZi5wdXNoKCJXZWJLaXQhIik7CisgICAgWyJ6Iiwg
YXJyYXlJbmRpcmVjdGx5Q29udGFpbmluZ0l0c2VsZiwgOV0uam9pbigiJiIpO2AsICJ6JjEsMSwy
LDUsNiwsV2ViS2l0ISY5Iik7CisKKy8vIEluZGlyZWN0bHkgcmVjdXJzZSB0byBhbiBvdGhlciBv
ZiB0aGUgZnVuY3Rpb25zLiBUaGUgb2JqZWN0IGRvIG5vdCBjb250YWlucyBpdHNlbGYsIGJ1dCBj
b250YWlucyBvYmplY3QgdGhhdCByZWN1cnNpdmVseSBjYWxsCisvLyBhbiBhcnJheSB0byBzdHJp
bmcgY29udmVyc2lvbi4KK3Nob3VsZEJlRXF1YWxUb1N0cmluZyhgdmFyIGFycmF5SW5kaXJlY3Rs
eUNvbnZlcnRpbmdJdHNlbGYgPSBbImEiXTsKKyAgICBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5n
SXRzZWxmLnB1c2goeyBhcnJheTogYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZiwgdG9T
dHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5hcnJheS50b1N0cmluZygpIH0gfSk7Cisg
ICAgYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZi5wdXNoKHsgYXJyYXk6IGFycmF5SW5k
aXJlY3RseUNvbnZlcnRpbmdJdHNlbGYsIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuIHRo
aXMuYXJyYXkudG9Mb2NhbGVTdHJpbmcoKSB9IH0pOworICAgIGFycmF5SW5kaXJlY3RseUNvbnZl
cnRpbmdJdHNlbGYucHVzaCh7IGFycmF5OiBhcnJheUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxm
LCB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLmFycmF5LmpvaW4oIn4iKSB9IH0p
OworICAgIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYucHVzaCgiV2ViS2l0ISIpOwor
ICAgIFsieiIsIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYsIDldLnRvU3RyaW5nKCk7
YCwgInosYSwsLCxXZWJLaXQhLDkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZyhgdmFyIGFycmF5
SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYgPSBbImEiXTsKKyAgICBhcnJheUluZGlyZWN0bHlD
b252ZXJ0aW5nSXRzZWxmLnB1c2goeyBhcnJheTogYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0
c2VsZiwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5hcnJheS50b1N0cmluZygp
IH0gfSk7CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2VsZi5wdXNoKHsgYXJyYXk6
IGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYsIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsg
cmV0dXJuIHRoaXMuYXJyYXkudG9Mb2NhbGVTdHJpbmcoKSB9IH0pOworICAgIGFycmF5SW5kaXJl
Y3RseUNvbnZlcnRpbmdJdHNlbGYucHVzaCh7IGFycmF5OiBhcnJheUluZGlyZWN0bHlDb252ZXJ0
aW5nSXRzZWxmLCB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzLmFycmF5LmpvaW4o
In4iKSB9IH0pOworICAgIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYucHVzaCgiV2Vi
S2l0ISIpOworICAgIFsieiIsIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYsIDldLnRv
TG9jYWxlU3RyaW5nKCk7YCwgInosYSwsLCxXZWJLaXQhLDkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZyhgdmFyIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYgPSBbImEiXTsKKyAgICBh
cnJheUluZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLnB1c2goeyBhcnJheTogYXJyYXlJbmRpcmVj
dGx5Q29udmVydGluZ0l0c2VsZiwgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5h
cnJheS50b1N0cmluZygpIH0gfSk7CisgICAgYXJyYXlJbmRpcmVjdGx5Q29udmVydGluZ0l0c2Vs
Zi5wdXNoKHsgYXJyYXk6IGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYsIHRvU3RyaW5n
OiBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMuYXJyYXkudG9Mb2NhbGVTdHJpbmcoKSB9IH0pOwor
ICAgIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJdHNlbGYucHVzaCh7IGFycmF5OiBhcnJheUlu
ZGlyZWN0bHlDb252ZXJ0aW5nSXRzZWxmLCB0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiB0
aGlzLmFycmF5LmpvaW4oIn4iKSB9IH0pOworICAgIGFycmF5SW5kaXJlY3RseUNvbnZlcnRpbmdJ
dHNlbGYucHVzaCgiV2ViS2l0ISIpOworICAgIFsieiIsIGFycmF5SW5kaXJlY3RseUNvbnZlcnRp
bmdJdHNlbGYsIDldLmpvaW4oIioiKTtgLCAieiphLCwsLFdlYktpdCEqOSIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>