<?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>101569</bug_id>
          
          <creation_ts>2012-11-08 02:46:36 -0800</creation_ts>
          <short_desc>[WebSocket]  send() and close() should not throw an exception for an unpaired surrogate but use the replacement character</short_desc>
          <delta_ts>2012-11-13 17:53:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>
          <dependson>101678</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>ap</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>761527</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 02:46:36 -0800</bug_when>
    <thetext>Chromium bug entry: http://code.google.com/p/chromium/issues/detail?id=159568

The WebSocket API specification has changed. When a message of send() (or a reason of close()) has unpaired surrogates, they should be replaced with replacement character (U+FFFE), instead of throwing SYNTAX_ERR.

Specification diff:
http://html5.org/tools/web-apps-tracker?from=7083&amp;to=7084

How to use replacement character:
http://dev.w3.org/2006/webapi/WebIDL/#dfn-obtain-unicode

The current WebKit throws SYNTAX_ERR. Following w3c-test is failing because of this behavior:
http://www.w3c-test.org/webapps/WebSockets/tests/submissions/Microsoft/Send-Unpaired-Surrogates.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761548</commentid>
    <comment_count>1</comment_count>
      <attachid>172980</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 03:06:59 -0800</bug_when>
    <thetext>Created attachment 172980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761620</commentid>
    <comment_count>2</comment_count>
      <attachid>172980</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 04:06:07 -0800</bug_when>
    <thetext>Comment on attachment 172980
Patch

Attachment 172980 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14759745</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761625</commentid>
    <comment_count>3</comment_count>
      <attachid>173006</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 04:14:02 -0800</bug_when>
    <thetext>Created attachment 173006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761945</commentid>
    <comment_count>4</comment_count>
      <attachid>173006</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-08 10:34:07 -0800</bug_when>
    <thetext>Comment on attachment 173006
Patch

This is generic UTF-8 manipulation code, it should be in WTF, not in WebSocket files.

Also, I&apos;m not sure why we need two passes now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762386</commentid>
    <comment_count>5</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 18:01:18 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 173006 [details])
&gt; This is generic UTF-8 manipulation code, it should be in WTF, not in WebSocket files.

I see. The code would be able to merge with String::utf8(). I&apos;ll create a separate bug entry for it.

&gt; Also, I&apos;m not sure why we need two passes now.

m_channel can be null in WebSocketChannel::close() so we need to check the length of reason in utf-8 at WebSocket::close().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763841</commentid>
    <comment_count>6</comment_count>
      <attachid>173505</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-11 06:27:40 -0800</bug_when>
    <thetext>Created attachment 173505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766163</commentid>
    <comment_count>7</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-13 16:30:28 -0800</bug_when>
    <thetext>Hi Alexey,

Could you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766223</commentid>
    <comment_count>8</comment_count>
      <attachid>173505</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-13 17:30:26 -0800</bug_when>
    <thetext>Comment on attachment 173505
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766246</commentid>
    <comment_count>9</comment_count>
      <attachid>173505</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 17:53:07 -0800</bug_when>
    <thetext>Comment on attachment 173505
Patch

Clearing flags on attachment: 173505

Committed r134515: &lt;http://trac.webkit.org/changeset/134515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766247</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 17:53:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172980</attachid>
            <date>2012-11-08 03:06:59 -0800</date>
            <delta_ts>2012-11-08 04:13:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101569-20121108200508.patch</filename>
            <type>text/plain</type>
            <size>16638</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZmMjM1MmYyNjU0ZjA5
Y2QxNTNkOTk2NTU0OTQyOWQ2NzhmMzc3OS4uNDllNGY4MzY5YmEyMWMxNGQ5YTE0MjYyOWQ0MWY1
YjA4NTg2NDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTExLTA4ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViU29ja2V0
XSAgc2VuZCgpIGFuZCBjbG9zZSgpIHNob3VsZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBh
biB1bnBhaXJlZCBzdXJyb2dhdGUgYnV0IHVzZSB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1NjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVu
cGFpcmVkIHN1cnJvZ2F0ZXMgd2l0aCByZXBsYWNlbWVudCBjaGFyYWN0ZXIoVStGRkZEKSwgbm90
IHRocm93aW5nIFNZTlRBWF9FUlIKKyAgICAgICAgdG8gZm9sbG93IHRoZSBjaGFuZ2VzIG9uIHRo
ZSBXZWJTb2NrZXQgQVBJIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmcuaHRtbAorCisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpsZW5ndGhJblVURjgpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0OjpjbG9zZSk6CisgICAgICAgIC0gVXNlIGxlbmd0aEluVVRGOCgpIHRv
IGNoZWNrIHRoZSBsZW5ndGggb2YgY2xvc2UgcmVhc29uIGluc3RlYWQgb2YgdXNpbmcgU3RyaW5n
Ojp1dGY4KCkuCisgICAgICAgIC0gRGVsZXRlZCB1dGYtOCB2YWxpZGF0aW9uIGNoZWNrLgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVVURjhGcm9tU3RyaW5nV2l0aFJlcGxhY2luZ0NoYXJhY3Rlcik6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpzZW5kKToKKyAgICAgICAgLSBVc2UgY3JlYXRlVVRGOEZyb21TdHJpbmdXaXRoUmVwbGFj
aW5nQ2hhcmFjdGVyKCkgdG8gZW5jb2RlIHRoZSBtZXNzYWdlIHRvIHV0Zi04LgorICAgICAgICAg
IElmIHRoZXJlIGlzIGEgdW5wYWlyZWQgc3Vycm9nYXRlLCBpdCB3aWxsIGJlIHJlcGxhY2VkIHdp
dGggdGhlIHJlcGxhY2VtZW50IGNoYXJhY3Rlci4KKyAgICAgICAgLSBEZWxldGVkIHV0Zi04IHZh
bGlkYXRpb24gY2hlY2suCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzdGFy
dENsb3NpbmdIYW5kc2hha2UpOgorICAgICAgICBVc2UgY3JlYXRlVVRGOEZyb21TdHJpbmdXaXRo
UmVwbGFjaW5nQ2hhcmFjdGVyKCkgdG8gZW5jb2RlIHRoZSBjbG9zZSByZWFzb24gdG8gdXRmLTgu
CisKIDIwMTItMTEtMDcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbVjhdIEludHJ1c2l2ZURPTVdyYXBwZXJNYXAgc2hvdWxkIGJlIHVzYWJsZSBmb3IgbW9yZSB0
aGFuIGp1c3QgTm9kZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAKaW5kZXggNDZkNjJkZTg5ZjQ2NjhmZTdhMTUxZmVlZDUzMTEzODI0NzMwMjdk
YS4uODkyYWY4YjcwOGM0YTIwZmQwNzM1ODEwODQyNjFhY2JkNWIwYzYzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTQ5LDYgKzQ5
LDcgQEAKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJT
dXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWwuaCIKICNpbmNsdWRl
IDx3dGYvQXJyYXlCdWZmZXIuaD4KQEAgLTgwLDYgKzgxLDM4IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc1ZhbGlkUHJvdG9jb2xDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQogICAgICAgICAmJiBj
aGFyYWN0ZXIgIT0gJ3snICYmIGNoYXJhY3RlciAhPSAnfSc7CiB9CiAKK3N0YXRpYyB1bnNpZ25l
ZCBsZW5ndGhJblVURjgoY29uc3QgU3RyaW5nJiBzb3VyY2UpCit7CisgICAgQVNTRVJUKCFjaGFy
YWN0ZXJzLmlzOEJpdCgpKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCA9IDA7CisgICAgU3Vycm9n
YXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yIGl0ZXJhdG9yKHNvdXJjZS5jaGFyYWN0ZXJzMTYoKSwg
MCwgc291cmNlLmxlbmd0aCgpLCBzb3VyY2UubGVuZ3RoKCkpOworICAgIGNvbnN0IFVDaGFyKiBj
aGFyYWN0ZXJzRW5kID0gc291cmNlLmNoYXJhY3RlcnMxNigpICsgc291cmNlLmxlbmd0aCgpOwor
ICAgIHdoaWxlIChpdGVyYXRvci5jaGFyYWN0ZXJzKCkgPCBjaGFyYWN0ZXJzRW5kKSB7CisgICAg
ICAgIFVDaGFyMzIgY2hhcmFjdGVyOworICAgICAgICB1bnNpZ25lZCBjbHVzdGVyTGVuZ3RoOwor
ICAgICAgICAvLyBjb25zdW1lKCkgZmFpbHMgaWYgdGhlcmUgaXMgYW4gdW5wYWlyZWQgc3Vycm9n
YXRlLgorICAgICAgICBpZiAoIWl0ZXJhdG9yLmNvbnN1bWUoY2hhcmFjdGVyLCBjbHVzdGVyTGVu
Z3RoKSkgeworICAgICAgICAgICAgY2hhcmFjdGVyID0gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7Cisg
ICAgICAgICAgICBjbHVzdGVyTGVuZ3RoID0gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2hh
cmFjdGVyIDwgc3RhdGljX2Nhc3Q8VUNoYXIzMj4oMHg4MCkpCisgICAgICAgICAgICBsZW5ndGgg
Kz0gMTsKKyAgICAgICAgZWxzZSBpZiAoY2hhcmFjdGVyIDwgc3RhdGljX2Nhc3Q8VUNoYXIzMj4o
MHg4MDApKQorICAgICAgICAgICAgbGVuZ3RoICs9IDI7CisgICAgICAgIGVsc2UgaWYgKGNoYXJh
Y3RlciA8IHN0YXRpY19jYXN0PFVDaGFyMzI+KDB4MTAwMDApKQorICAgICAgICAgICAgbGVuZ3Ro
ICs9IDM7CisgICAgICAgIGVsc2UgaWYgKGNoYXJhY3RlciA8IHN0YXRpY19jYXN0PFVDaGFyMzI+
KDB4MjAwMDAwKSkKKyAgICAgICAgICAgIGxlbmd0aCArPSA0OworICAgICAgICBlbHNlIGlmIChj
aGFyYWN0ZXIgPCBzdGF0aWNfY2FzdDxVQ2hhcjMyPigweDQwMDAwMDApKQorICAgICAgICAgICAg
bGVuZ3RoICs9IDU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxlbmd0aCArPSA2OworICAg
ICAgICBpdGVyYXRvci5hZHZhbmNlKGNsdXN0ZXJMZW5ndGgpOworICAgIH0KKyAgICByZXR1cm4g
bGVuZ3RoOworfQorCiBzdGF0aWMgYm9vbCBpc1ZhbGlkUHJvdG9jb2xTdHJpbmcoY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCkKIHsKICAgICBpZiAocHJvdG9jb2wuaXNFbXB0eSgpKQpAQCAtMzQxLDE4
ICszNzQsMTIgQEAgdm9pZCBXZWJTb2NrZXQ6OmNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcm
IHJlYXNvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBDU3RyaW5n
IHV0ZjggPSByZWFzb24udXRmOCh0cnVlKTsKLSAgICAgICAgaWYgKHV0ZjgubGVuZ3RoKCkgPiBt
YXhSZWFzb25TaXplSW5CeXRlcykgeworICAgICAgICB1bnNpZ25lZCB1dGY4TGVuZ3RoID0gbGVu
Z3RoSW5VVEY4KHJlYXNvbik7CisgICAgICAgIGlmICh1dGY4TGVuZ3RoID4gbWF4UmVhc29uU2l6
ZUluQnl0ZXMpIHsKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29u
c29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsICJXZWJTb2NrZXQgY2xvc2UgbWVzc2FnZSBpcyB0b28gbG9uZy4iKTsKICAgICAgICAg
ICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAg
ICAgICAvLyBDaGVja3Mgd2hldGhlciByZWFzb24gaXMgdmFsaWQgdXRmOC4KLSAgICAgICAgaWYg
KHV0ZjguaXNOdWxsKCkgJiYgcmVhc29uLmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiV2ViU29ja2V0IGNsb3NlIG1lc3NhZ2Ug
Y29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIocykuIik7Ci0gICAgICAgICAgICBlYyA9IFNZTlRB
WF9FUlI7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBpZiAo
bV9zdGF0ZSA9PSBDTE9TSU5HIHx8IG1fc3RhdGUgPT0gQ0xPU0VEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4
IDM3MWNlMmE3MTUwMTk1ZGE4NjAxYTcwMDljYTQ3NDRiZmEwZDhiM2YuLjQ3MWYwZjIwMGM2YzRk
NTEwODBlN2IwMjYzYWZlOTU1YzJlMWNiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTYzLDEzICs2Myw0
NiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvVVRGOC5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwordXNpbmcgbmFtZXNw
YWNlIFdURjo6VW5pY29kZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBkb3VibGUg
VENQTWF4aW11bVNlZ21lbnRMaWZldGltZSA9IDIgKiA2MC4wOwogCitzdGF0aWMgQ1N0cmluZyBj
cmVhdGVVVEY4RnJvbVN0cmluZ1dpdGhSZXBsYWNpbmdDaGFyYWN0ZXIoY29uc3QgU3RyaW5nJiBz
b3VyY2UpCit7CisgICAgQVNTRVJUKCFzb3VyY2UuaXM4Qml0KCkpOworICAgIHVuc2lnbmVkIGxl
bmd0aCA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHNv
dXJjZS5jaGFyYWN0ZXJzMTYoKTsKKyAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVyc0VuZCA9IGNo
YXJhY3RlcnMgKyBsZW5ndGg7CisKKyAgICAvLyBVc2UgdGhlIHNhbWUgaGV1cmlzdGljcyBvZiBT
dHJpbmc6OnV0ZjgoKSBmb3IgdGVtcG9yYXJ5IGJ1ZmZlci4KKyAgICBpZiAobGVuZ3RoID4gbnVt
ZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAvIDMpCisgICAgICAgIHJldHVybiBDU3RyaW5n
KCk7CisgICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZmZlclZlY3RvcihsZW5ndGggKiAzKTsKKyAg
ICBjaGFyKiBidWZmZXIgPSBidWZmZXJWZWN0b3IuZGF0YSgpOworICAgIGNoYXIqIGJ1ZmZlckVu
ZCA9IGJ1ZmZlciArIGJ1ZmZlclZlY3Rvci5zaXplKCk7CisKKyAgICB3aGlsZSAoY2hhcmFjdGVy
cyA8IGNoYXJhY3RlcnNFbmQgJiYgYnVmZmVyIDwgYnVmZmVyRW5kKSB7CisgICAgICAgIC8vIFVz
ZSBzdHJpY3QgY29udmVyc2lvbiB0byBkZXRlY3QgdW5wYWlyZWQgc3Vycm9nYXRlcy4KKyAgICAg
ICAgQ29udmVyc2lvblJlc3VsdCByZXN1bHQgPSBjb252ZXJ0VVRGMTZUb1VURjgoJmNoYXJhY3Rl
cnMsIGNoYXJhY3RlcnNFbmQsICZidWZmZXIsIGJ1ZmZlckVuZCwgdHJ1ZSk7CisgICAgICAgIEFT
U0VSVChyZXN1bHQgIT0gdGFyZ2V0RXhoYXVzdGVkKTsKKworICAgICAgICBpZiAocmVzdWx0ICE9
IGNvbnZlcnNpb25PSykgeworICAgICAgICAgICAgQVNTRVJUKGJ1ZmZlckVuZCAtIGJ1ZmZlciA+
PSAzKTsKKyAgICAgICAgICAgIC8vIFB1dCByZXBsYWNpbmcgY2hhcmFjdGVyKFUrRkZGRCwgJ1x4
ZWZceGJmXHhiZCcgaW4gdXRmLTgpIGluc3RlYWQgb2YgYW4gdW5wYWlyZWQgc3Vycm9nYXRlLgor
ICAgICAgICAgICAgKmJ1ZmZlcisrID0gJ1x4ZWYnOworICAgICAgICAgICAgKmJ1ZmZlcisrID0g
J1x4YmYnOworICAgICAgICAgICAgKmJ1ZmZlcisrID0gJ1x4YmQnOworICAgICAgICAgICAgKytj
aGFyYWN0ZXJzOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBDU3RyaW5nKGJ1ZmZlclZl
Y3Rvci5kYXRhKCksIGJ1ZmZlciAtIGJ1ZmZlclZlY3Rvci5kYXRhKCkpOworfQorCiBXZWJTb2Nr
ZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50KiBkb2N1bWVudCwgV2ViU29ja2V0
Q2hhbm5lbENsaWVudCogY2xpZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAs
IG1fY2xpZW50KGNsaWVudCkKQEAgLTEzNyw5ICsxNzAsNyBAQCBTdHJpbmcgV2ViU29ja2V0Q2hh
bm5lbDo6ZXh0ZW5zaW9ucygpCiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3Vs
dCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBM
T0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgc2VuZCAlcyIsIHRoaXMsIG1lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSk7Ci0gICAgQ1N0cmluZyB1dGY4ID0gbWVzc2FnZS51dGY4KHRydWUpOwot
ICAgIGlmICh1dGY4LmlzTnVsbCgpICYmIG1lc3NhZ2UubGVuZ3RoKCkpCi0gICAgICAgIHJldHVy
biBJbnZhbGlkTWVzc2FnZTsKKyAgICBDU3RyaW5nIHV0ZjggPSBjcmVhdGVVVEY4RnJvbVN0cmlu
Z1dpdGhSZXBsYWNpbmdDaGFyYWN0ZXIobWVzc2FnZSk7CiAgICAgZW5xdWV1ZVRleHRGcmFtZSh1
dGY4KTsKICAgICAvLyBBY2NvcmRpbmcgdG8gV2ViU29ja2V0IEFQSSBzcGVjaWZpY2F0aW9uLCBX
ZWJTb2NrZXQuc2VuZCgpIHNob3VsZCByZXR1cm4gdm9pZCBpbnN0ZWFkCiAgICAgLy8gb2YgYm9v
bGVhbi4gSG93ZXZlciwgb3VyIGltcGxlbWVudGF0aW9uIHN0aWxsIHJldHVybnMgYm9vbGVhbiBk
dWUgdG8gY29tcGF0aWJpbGl0eQpAQCAtNDgwLDcgKzUxMSw4IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6c3RhcnRDbG9zaW5nSGFuZHNoYWtlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNv
bikKICAgICAgICAgdW5zaWduZWQgY2hhciBsb3dCeXRlID0gY29kZTsKICAgICAgICAgYnVmLmFw
cGVuZChzdGF0aWNfY2FzdDxjaGFyPihoaWdoQnl0ZSkpOwogICAgICAgICBidWYuYXBwZW5kKHN0
YXRpY19jYXN0PGNoYXI+KGxvd0J5dGUpKTsKLSAgICAgICAgYnVmLmFwcGVuZChyZWFzb24udXRm
OCgpLmRhdGEoKSwgcmVhc29uLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgICAgIENTdHJpbmcgdXRm
OCA9IGNyZWF0ZVVURjhGcm9tU3RyaW5nV2l0aFJlcGxhY2luZ0NoYXJhY3RlcihyZWFzb24pOwor
ICAgICAgICBidWYuYXBwZW5kKHV0ZjguZGF0YSgpLCB1dGY4Lmxlbmd0aCgpKTsKICAgICB9CiAg
ICAgZW5xdWV1ZVJhd0ZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGVDbG9zZSwgYnVmLmRhdGEo
KSwgYnVmLnNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZjA3NzUwM2QyOTgzODAzYzFmM2MxYzQ5OTllZDM0
ZDU4Y2FjMDVhLi5kNGI4NjU1M2VkMGNiMDE2ZWViNzM2NGNmN2ZlMWM2ZWY4NDNiZjhkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMTEtMDggIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJTb2NrZXRdICBzZW5kKCkgYW5kIGNsb3NlKCkg
c2hvdWxkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZSBi
dXQgdXNlIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gVXBkYXRlZCB0ZXN0cyB3aGljaCB0cnkgdG8gc2Vu
ZCB1bnBhaXJlZCBzdXJyb2dhdGVzLgorICAgICAgICAgIFRoZXNlIHRlc3RzIHNob3VsZCBub3Qg
dGhyb3cgU1lOVEFYX0VSUi4KKyAgICAgICAgLSBBZGQgYSB0ZXN0IHRoYXQgY2hlY2tzIHdoZXRo
ZXIgV2ViS2l0IHRocm93cyBTWU5UQVhfRVJSIHdoZW4gYSBjbG9zZQorICAgICAgICAgIHJlYXNv
biBpcyB0b28gbG9uZy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvY2xvc2UtcmVhc29uLXRvby1sb25nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmcuaHRt
bDogRGl0dG8uCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBh
aXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dh
dGVzLWluLWNsb3NlLXJlYXNvbi5odG1sOiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS1leHBlY3Rl
ZC50eHQ6IERpdHRvLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
dW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNzYWdlLmh0bWw6IERpdHRvLgorCiAyMDEyLTExLTA3
ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHVwZGF0ZSBjaHJvbWl1bS1tYWMtbW91bnRhaW5saW9uIGJhc2VsaW5lcyBmb3IgY3NzMi4x
LzIwMTEvMDMyMwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYjFiYjc3ZWE0ZTE0MDYyMzI3MDIyNmQ4ZjQxZDA0
ZDhjY2JiNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2Nsb3NlLXJlYXNvbi10b28tbG9uZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBXZWJTb2NrZXQgY2xvc2UgbWVzc2FnZSBpcyB0
b28gbG9uZy4KK0NoZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdoZW4gYXR0ZW1w
dGluZyB0byBzZW5kIHRvbyBsb25nIHJlYXNvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCitDb25uZWN0ZWQuCitQQVNTIFNZTlRBWF9FUlIgd2FzIHRocm93bi4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlLXJlYXNvbi10b28t
bG9uZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9j
bG9zZS1yZWFzb24tdG9vLWxvbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjEzMTc0NDUzOGIzOWZlYjI5
OTAxYTlmOGY4OWI0YjJkMDcyMzFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmcuaHRtbApA
QCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitkZXNjcmlwdGlvbigiQ2hlY2tzIHdoZXRoZXIg
U1lOVEFYX0VSUiBpcyB0aHJvd24gd2hlbiBhdHRlbXB0aW5nIHRvIHNlbmQgdG9vIGxvbmcgcmVh
c29uLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciB3cyA9IG5ldyBX
ZWJTb2NrZXQoIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNobyIp
OwordmFyIG1lc3NhZ2U7Cit2YXIgbG9uZ1JlYXNvbiA9ICcnOworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMjQ7ICsraSkKKyAgICBsb25nUmVhc29uICs9ICdhJzsKKword3Mub25vcGVuID0gZnVuY3Rp
b24oKQoreworICAgIGRlYnVnKCJDb25uZWN0ZWQuIik7CisgICAgdHJ5IHsKKyAgICAgICAgd3Mu
Y2xvc2UoMTAwMCwgbG9uZ1JlYXNvbik7CisgICAgICAgIHRlc3RGYWlsZWQoJ1NZTlRBWF9FUlIg
c2hvdWxkIGJlIHRocm93bi4nKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGlmIChlLm5h
bWUgPT0gJ1NZTlRBWF9FUlInKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgnU1lOVEFYX0VSUiB3
YXMgdGhyb3duLicpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdVbmV4
cGVjdGVkIGV4Y2VwdGlvbjogJyArIGUpOworICAgIH0KKyAgICB3cy5jbG9zZSgpOworfTsKKwor
d3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KQoreworICAgIG1lc3NhZ2UgPSBldmVudC5k
YXRhOworICAgIHRlc3RGYWlsZWQoIm9ubWVzc2FnZSgpIHdhcyBjYWxsZWQuIChtZXNzYWdlID0g
XCIiICsgbWVzc2FnZSArICJcIikiKTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbigpCit7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9OworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFp
cmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29uLWV4cGVjdGVkLnR4dAppbmRleCBlZWJiNWMy
N2MyZjQyYjAwZDNjNTlkZjE4OWRmNTQ3ZGYyODI0YTA3Li42YTljNTM4ZTAxNjdhODA0NGFiOGI0
OTU0NmI5YWI0OTk0OWQ0Zjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29uLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29uLWV4cGVjdGVkLnR4dApAQCAt
MSwxMCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFdlYlNvY2tldCBjbG9zZSBtZXNzYWdlIGNv
bnRhaW5zIGludmFsaWQgY2hhcmFjdGVyKHMpLgotQ2hlY2tzIHdoZXRoZXIgU1lOVEFYX0VSUiBp
cyB0aHJvd24gd2hlbiBhdHRlbXBpbmcgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24gd2l0aCB1bnBh
aXJlZCBzdXJyb2dhdGVzLgorQ2hlY2tzIHdoZXRoZXIgdW5wYWlyZWQgc3Vycm9nYXRlcyBpbiBh
IGNsb3NlIHJlYXNvbiBhcmUgc2lsZW50bHkgY29udmVydGVkIHRvIFUrRkZGRCBhbmQgU1lOVEFY
X0VSUiBpcyBub3QgdGhyb3duLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIENvbm5l
Y3RlZC4KLVBBU1MgU1lOVEFYX0VSUiB3YXMgdGhyb3duLgorUEFTUyBjbG9zZUV2ZW50Lndhc0Ns
ZWFuIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWlu
LWNsb3NlLXJlYXNvbi5odG1sCmluZGV4IDZiMTMxOTE0NzNlNTIzMmZhMDA1NjU3MDQyN2E2Y2I0
N2JmYjRkOTUuLjA3Y2FkMjhmNmIxY2Y3OTdjNzFkMmEyYmI2M2MwY2QzZDQxYjFmZTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWly
ZWQtc3Vycm9nYXRlcy1pbi1jbG9zZS1yZWFzb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2Ut
cmVhc29uLmh0bWwKQEAgLTcsMzUgKzcsMzAgQEAKIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rp
dj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotZGVzY3JpcHRpb24oIkNoZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdo
ZW4gYXR0ZW1waW5nIHRvIGNsb3NlIHRoZSBjb25uZWN0aW9uIHdpdGggdW5wYWlyZWQgc3Vycm9n
YXRlcy4iKTsKK2Rlc2NyaXB0aW9uKCJDaGVja3Mgd2hldGhlciB1bnBhaXJlZCBzdXJyb2dhdGVz
IGluIGEgY2xvc2UgcmVhc29uIGFyZSBzaWxlbnRseSBjb252ZXJ0ZWQgdG8gVStGRkZEIGFuZCBT
WU5UQVhfRVJSIGlzIG5vdCB0aHJvd24uIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9lY2hvIik7Cit2YXIgbWVzc2FnZTsKK3ZhciBjbG9zZUV2ZW50OwogCiB3
cy5vbm9wZW4gPSBmdW5jdGlvbigpCiB7CiAgICAgZGVidWcoIkNvbm5lY3RlZC4iKTsKLSAgICB0
cnkgewotICAgICAgICB3cy5jbG9zZSgxMDAwLCAnXHVEODA3Jyk7Ci0gICAgICAgIHRlc3RGYWls
ZWQoJ1NZTlRBWF9FUlIgc2hvdWxkIGJlIHRocm93bi4nKTsKLSAgICB9IGNhdGNoKGUpIHsKLSAg
ICAgICAgaWYgKGUubmFtZSA9PSAnU1lOVEFYX0VSUicpCi0gICAgICAgICAgICB0ZXN0UGFzc2Vk
KCdTWU5UQVhfRVJSIHdhcyB0aHJvd24uJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRl
c3RGYWlsZWQoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAnICsgZSk7Ci0gICAgfQotICAgIHdzLmNs
b3NlKCk7CisgICAgd3MuY2xvc2UoMTAwMCwgJ1x1RDgwNycpOwogfTsKIAogd3Mub25tZXNzYWdl
ID0gZnVuY3Rpb24gKGV2ZW50KQogewotICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAg
ICBtZXNzYWdlID0gZXZlbnQuZGF0YTsKICAgICB0ZXN0RmFpbGVkKCJvbm1lc3NhZ2UoKSB3YXMg
Y2FsbGVkLiAobWVzc2FnZSA9IFwiIiArIG1lc3NhZ2UgKyAiXCIpIik7CiB9OwogCi13cy5vbmNs
b3NlID0gZnVuY3Rpb24oKQord3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQogeworICAgIGNs
b3NlRXZlbnQgPSBldmVudDsKKyAgICBzaG91bGRCZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4i
KTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNz
YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNzYWdlLWV4cGVjdGVkLnR4dAppbmRleCBh
MTgxMDYwNWE1M2NlOWQxNjlmNzliYTAyYmI0YWQxOTcwMjI3NDhjLi43MDMxN2E0MGJkZGUwNDFh
MTk5ZjhkNWEzZDY3YTY1NWM5YmI0MWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLW1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC0xLDEw
ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogV2Vic29ja2V0IG1lc3NhZ2UgY29udGFpbnMgaW52
YWxpZCBjaGFyYWN0ZXIocykuCi1DaGVja3Mgd2hldGhlciBTWU5UQVhfRVJSIGlzIHRocm93biB3
aGVuIGF0dGVtcGluZyB0byBzZW5kIHVucGFpcmVkIHN1cnJvZ2F0ZXMuCitDaGVja3Mgd2hldGhl
ciB1bnBhaXJlZCBzdXJyb2dhdGVzIGFyZSByZXBsYWNlZCB3aXRoIFUrRkZGRC4KIAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiBDb25uZWN0ZWQuCi1QQVNTIFNZTlRBWF9FUlIgd2FzIHRo
cm93bi4KK1BBU1MgbWVzc2FnZSBpcyAn77+9JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1z
dXJyb2dhdGVzLWluLW1lc3NhZ2UuaHRtbAppbmRleCA0NDA3OGI3NTU0NjAzMDI4YTczMWVmNDNi
ZmIyN2MyYmMzN2VkZDk4Li5iNjQwMjdlYmJjZjBmZWI2YWVhYWIyY2QyOTRiOTM5NDIxNzE0NzA4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNz
YWdlLmh0bWwKQEAgLTcsMzEgKzcsMjMgQEAKIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotZGVzY3JpcHRpb24oIkNoZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdoZW4g
YXR0ZW1waW5nIHRvIHNlbmQgdW5wYWlyZWQgc3Vycm9nYXRlcy4iKTsKK2Rlc2NyaXB0aW9uKCJD
aGVja3Mgd2hldGhlciB1bnBhaXJlZCBzdXJyb2dhdGVzIGFyZSByZXBsYWNlZCB3aXRoIFUrRkZG
RC4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiB2YXIgd3MgPSBuZXcgV2Vi
U29ja2V0KCJ3czovL2xvY2FsaG9zdDo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2VjaG8iKTsK
K3ZhciBtZXNzYWdlOwogCiB3cy5vbm9wZW4gPSBmdW5jdGlvbigpCiB7CiAgICAgZGVidWcoIkNv
bm5lY3RlZC4iKTsKLSAgICB0cnkgewotICAgICAgICB3cy5zZW5kKCdcdUQ4MDcnKTsKLSAgICAg
ICAgdGVzdEZhaWxlZCgnU1lOVEFYX0VSUiBzaG91bGQgYmUgdGhyb3duLicpOwotICAgIH0gY2F0
Y2goZSkgewotICAgICAgICBpZiAoZS5uYW1lID09ICdTWU5UQVhfRVJSJykKLSAgICAgICAgICAg
IHRlc3RQYXNzZWQoJ1NZTlRBWF9FUlIgd2FzIHRocm93bi4nKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgdGVzdEZhaWxlZCgnVW5leHBlY3RlZCBleGNlcHRpb246ICcgKyBlKTsKLSAgICB9
Ci0gICAgd3MuY2xvc2UoKTsKKyAgICB3cy5zZW5kKCJcdUQ4MDciKTsKIH07CiAKIHdzLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uIChldmVudCkKIHsKLSAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7
Ci0gICAgdGVzdEZhaWxlZCgib25tZXNzYWdlKCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIg
KyBtZXNzYWdlICsgIlwiKSIpOworICAgIG1lc3NhZ2UgPSBldmVudC5kYXRhOworICAgIHNob3Vs
ZEJlKCJtZXNzYWdlIiwgIidcdUZGRkQnIik7CiAgICAgd3MuY2xvc2UoKTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173006</attachid>
            <date>2012-11-08 04:14:02 -0800</date>
            <delta_ts>2012-11-11 06:27:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101569-20121108211211.patch</filename>
            <type>text/plain</type>
            <size>16632</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZmMjM1MmYyNjU0ZjA5
Y2QxNTNkOTk2NTU0OTQyOWQ2NzhmMzc3OS4uOGNkZjlmNWUxMTU2OWM3MTQ3NjRjZTkwZjgyZGVh
NWE3NWVlZjA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTExLTA4ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViU29ja2V0
XSBzZW5kKCkgYW5kIGNsb3NlKCkgc2hvdWxkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGFu
IHVucGFpcmVkIHN1cnJvZ2F0ZSBidXQgdXNlIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdW5w
YWlyZWQgc3Vycm9nYXRlcyB3aXRoIHJlcGxhY2VtZW50IGNoYXJhY3RlcihVK0ZGRkQpLCBub3Qg
dGhyb3dpbmcgU1lOVEFYX0VSUgorICAgICAgICB0byBmb2xsb3cgdGhlIGNoYW5nZXMgb24gdGhl
IFdlYlNvY2tldCBBUEkgc3BlY2lmaWNhdGlvbi4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlLXJlYXNvbi10b28tbG9uZy5odG1sCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Omxlbmd0aEluVVRGOCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXQ6OmNsb3NlKToKKyAgICAgICAgLSBVc2UgbGVuZ3RoSW5VVEY4KCkgdG8g
Y2hlY2sgdGhlIGxlbmd0aCBvZiBjbG9zZSByZWFzb24gaW5zdGVhZCBvZiB1c2luZyBTdHJpbmc6
OnV0ZjgoKS4KKyAgICAgICAgLSBEZWxldGVkIHV0Zi04IHZhbGlkYXRpb24gY2hlY2suCisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlVVRGOEZyb21TdHJpbmdXaXRoUmVwbGFjaW5nQ2hhcmFjdGVyKTogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5u
ZWw6OnNlbmQpOgorICAgICAgICAtIFVzZSBjcmVhdGVVVEY4RnJvbVN0cmluZ1dpdGhSZXBsYWNp
bmdDaGFyYWN0ZXIoKSB0byBlbmNvZGUgdGhlIG1lc3NhZ2UgdG8gdXRmLTguCisgICAgICAgICAg
SWYgdGhlcmUgaXMgYSB1bnBhaXJlZCBzdXJyb2dhdGUsIGl0IHdpbGwgYmUgcmVwbGFjZWQgd2l0
aCB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLgorICAgICAgICAtIERlbGV0ZWQgdXRmLTggdmFs
aWRhdGlvbiBjaGVjay4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnN0YXJ0
Q2xvc2luZ0hhbmRzaGFrZSk6CisgICAgICAgIFVzZSBjcmVhdGVVVEY4RnJvbVN0cmluZ1dpdGhS
ZXBsYWNpbmdDaGFyYWN0ZXIoKSB0byBlbmNvZGUgdGhlIGNsb3NlIHJlYXNvbiB0byB1dGYtOC4K
KwogMjAxMi0xMS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtWOF0gSW50cnVzaXZlRE9NV3JhcHBlck1hcCBzaG91bGQgYmUgdXNhYmxlIGZvciBtb3JlIHRo
YW4ganVzdCBOb2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcAppbmRleCA0NmQ2MmRlODlmNDY2OGZlN2ExNTFmZWVkNTMxMTM4MjQ3MzAyN2Rh
Li4wM2NkZWUwYTE0N2JiNjQ5ZTU2MmVmOWQ3YTEyY2E2MjlkOGZhYzVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNDksNiArNDks
NyBAQAogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlN1
cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUg
PHd0Zi9BcnJheUJ1ZmZlci5oPgpAQCAtODAsNiArODEsMzggQEAgc3RhdGljIGlubGluZSBib29s
IGlzVmFsaWRQcm90b2NvbENoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIpCiAgICAgICAgICYmIGNo
YXJhY3RlciAhPSAneycgJiYgY2hhcmFjdGVyICE9ICd9JzsKIH0KIAorc3RhdGljIHVuc2lnbmVk
IGxlbmd0aEluVVRGOChjb25zdCBTdHJpbmcmIHNvdXJjZSkKK3sKKyAgICBBU1NFUlQoIXNvdXJj
ZS5pczhCaXQoKSk7CisKKyAgICB1bnNpZ25lZCBsZW5ndGggPSAwOworICAgIFN1cnJvZ2F0ZVBh
aXJBd2FyZVRleHRJdGVyYXRvciBpdGVyYXRvcihzb3VyY2UuY2hhcmFjdGVyczE2KCksIDAsIHNv
dXJjZS5sZW5ndGgoKSwgc291cmNlLmxlbmd0aCgpKTsKKyAgICBjb25zdCBVQ2hhciogY2hhcmFj
dGVyc0VuZCA9IHNvdXJjZS5jaGFyYWN0ZXJzMTYoKSArIHNvdXJjZS5sZW5ndGgoKTsKKyAgICB3
aGlsZSAoaXRlcmF0b3IuY2hhcmFjdGVycygpIDwgY2hhcmFjdGVyc0VuZCkgeworICAgICAgICBV
Q2hhcjMyIGNoYXJhY3RlcjsKKyAgICAgICAgdW5zaWduZWQgY2x1c3Rlckxlbmd0aDsKKyAgICAg
ICAgLy8gY29uc3VtZSgpIGZhaWxzIGlmIHRoZXJlIGlzIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZS4K
KyAgICAgICAgaWYgKCFpdGVyYXRvci5jb25zdW1lKGNoYXJhY3RlciwgY2x1c3Rlckxlbmd0aCkp
IHsKKyAgICAgICAgICAgIGNoYXJhY3RlciA9IHJlcGxhY2VtZW50Q2hhcmFjdGVyOworICAgICAg
ICAgICAgY2x1c3Rlckxlbmd0aCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoYXJhY3Rl
ciA8IHN0YXRpY19jYXN0PFVDaGFyMzI+KDB4ODApKQorICAgICAgICAgICAgbGVuZ3RoICs9IDE7
CisgICAgICAgIGVsc2UgaWYgKGNoYXJhY3RlciA8IHN0YXRpY19jYXN0PFVDaGFyMzI+KDB4ODAw
KSkKKyAgICAgICAgICAgIGxlbmd0aCArPSAyOworICAgICAgICBlbHNlIGlmIChjaGFyYWN0ZXIg
PCBzdGF0aWNfY2FzdDxVQ2hhcjMyPigweDEwMDAwKSkKKyAgICAgICAgICAgIGxlbmd0aCArPSAz
OworICAgICAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPCBzdGF0aWNfY2FzdDxVQ2hhcjMyPigweDIw
MDAwMCkpCisgICAgICAgICAgICBsZW5ndGggKz0gNDsKKyAgICAgICAgZWxzZSBpZiAoY2hhcmFj
dGVyIDwgc3RhdGljX2Nhc3Q8VUNoYXIzMj4oMHg0MDAwMDAwKSkKKyAgICAgICAgICAgIGxlbmd0
aCArPSA1OworICAgICAgICBlbHNlCisgICAgICAgICAgICBsZW5ndGggKz0gNjsKKyAgICAgICAg
aXRlcmF0b3IuYWR2YW5jZShjbHVzdGVyTGVuZ3RoKTsKKyAgICB9CisgICAgcmV0dXJuIGxlbmd0
aDsKK30KKwogc3RhdGljIGJvb2wgaXNWYWxpZFByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wpCiB7CiAgICAgaWYgKHByb3RvY29sLmlzRW1wdHkoKSkKQEAgLTM0MSwxOCArMzc0
LDEyIEBAIHZvaWQgV2ViU29ja2V0OjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgQ1N0cmluZyB1dGY4
ID0gcmVhc29uLnV0ZjgodHJ1ZSk7Ci0gICAgICAgIGlmICh1dGY4Lmxlbmd0aCgpID4gbWF4UmVh
c29uU2l6ZUluQnl0ZXMpIHsKKyAgICAgICAgdW5zaWduZWQgdXRmOExlbmd0aCA9IGxlbmd0aElu
VVRGOChyZWFzb24pOworICAgICAgICBpZiAodXRmOExlbmd0aCA+IG1heFJlYXNvblNpemVJbkJ5
dGVzKSB7CiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVN
ZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCAiV2ViU29ja2V0IGNsb3NlIG1lc3NhZ2UgaXMgdG9vIGxvbmcuIik7CiAgICAgICAgICAgICBl
YyA9IFNZTlRBWF9FUlI7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
Ly8gQ2hlY2tzIHdoZXRoZXIgcmVhc29uIGlzIHZhbGlkIHV0ZjguCi0gICAgICAgIGlmICh1dGY4
LmlzTnVsbCgpICYmIHJlYXNvbi5sZW5ndGgoKSkgewotICAgICAgICAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIldlYlNvY2tldCBjbG9zZSBtZXNzYWdlIGNvbnRh
aW5zIGludmFsaWQgY2hhcmFjdGVyKHMpLiIpOwotICAgICAgICAgICAgZWMgPSBTWU5UQVhfRVJS
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fc3Rh
dGUgPT0gQ0xPU0lORyB8fCBtX3N0YXRlID09IENMT1NFRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCAzNzFj
ZTJhNzE1MDE5NWRhODYwMWE3MDA5Y2E0NzQ0YmZhMGQ4YjNmLi40NzFmMGYyMDBjNmM0ZDUxMDgw
ZTdiMDI2M2FmZTk1NWMyZTFjYjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC02MywxMyArNjMsNDYgQEAK
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi91
bmljb2RlL1VURjguaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBX
VEY6OlVuaWNvZGU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgZG91YmxlIFRDUE1h
eGltdW1TZWdtZW50TGlmZXRpbWUgPSAyICogNjAuMDsKIAorc3RhdGljIENTdHJpbmcgY3JlYXRl
VVRGOEZyb21TdHJpbmdXaXRoUmVwbGFjaW5nQ2hhcmFjdGVyKGNvbnN0IFN0cmluZyYgc291cmNl
KQoreworICAgIEFTU0VSVCghc291cmNlLmlzOEJpdCgpKTsKKyAgICB1bnNpZ25lZCBsZW5ndGgg
PSBzb3VyY2UubGVuZ3RoKCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBzb3VyY2Uu
Y2hhcmFjdGVyczE2KCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnNFbmQgPSBjaGFyYWN0
ZXJzICsgbGVuZ3RoOworCisgICAgLy8gVXNlIHRoZSBzYW1lIGhldXJpc3RpY3Mgb2YgU3RyaW5n
Ojp1dGY4KCkgZm9yIHRlbXBvcmFyeSBidWZmZXIuCisgICAgaWYgKGxlbmd0aCA+IG51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgLyAzKQorICAgICAgICByZXR1cm4gQ1N0cmluZygpOwor
ICAgIFZlY3RvcjxjaGFyLCAxMDI0PiBidWZmZXJWZWN0b3IobGVuZ3RoICogMyk7CisgICAgY2hh
ciogYnVmZmVyID0gYnVmZmVyVmVjdG9yLmRhdGEoKTsKKyAgICBjaGFyKiBidWZmZXJFbmQgPSBi
dWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6ZSgpOworCisgICAgd2hpbGUgKGNoYXJhY3RlcnMgPCBj
aGFyYWN0ZXJzRW5kICYmIGJ1ZmZlciA8IGJ1ZmZlckVuZCkgeworICAgICAgICAvLyBVc2Ugc3Ry
aWN0IGNvbnZlcnNpb24gdG8gZGV0ZWN0IHVucGFpcmVkIHN1cnJvZ2F0ZXMuCisgICAgICAgIENv
bnZlcnNpb25SZXN1bHQgcmVzdWx0ID0gY29udmVydFVURjE2VG9VVEY4KCZjaGFyYWN0ZXJzLCBj
aGFyYWN0ZXJzRW5kLCAmYnVmZmVyLCBidWZmZXJFbmQsIHRydWUpOworICAgICAgICBBU1NFUlQo
cmVzdWx0ICE9IHRhcmdldEV4aGF1c3RlZCk7CisKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBjb252
ZXJzaW9uT0spIHsKKyAgICAgICAgICAgIEFTU0VSVChidWZmZXJFbmQgLSBidWZmZXIgPj0gMyk7
CisgICAgICAgICAgICAvLyBQdXQgcmVwbGFjaW5nIGNoYXJhY3RlcihVK0ZGRkQsICdceGVmXHhi
Zlx4YmQnIGluIHV0Zi04KSBpbnN0ZWFkIG9mIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZS4KKyAgICAg
ICAgICAgICpidWZmZXIrKyA9ICdceGVmJzsKKyAgICAgICAgICAgICpidWZmZXIrKyA9ICdceGJm
JzsKKyAgICAgICAgICAgICpidWZmZXIrKyA9ICdceGJkJzsKKyAgICAgICAgICAgICsrY2hhcmFj
dGVyczsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gQ1N0cmluZyhidWZmZXJWZWN0b3Iu
ZGF0YSgpLCBidWZmZXIgLSBidWZmZXJWZWN0b3IuZGF0YSgpKTsKK30KKwogV2ViU29ja2V0Q2hh
bm5lbDo6V2ViU29ja2V0Q2hhbm5lbChEb2N1bWVudCogZG9jdW1lbnQsIFdlYlNvY2tldENoYW5u
ZWxDbGllbnQqIGNsaWVudCkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX2Ns
aWVudChjbGllbnQpCkBAIC0xMzcsOSArMTcwLDcgQEAgU3RyaW5nIFdlYlNvY2tldENoYW5uZWw6
OmV4dGVuc2lvbnMoKQogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV2Vi
U29ja2V0Q2hhbm5lbDo6c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgTE9HKE5l
dHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIHNlbmQgJXMiLCB0aGlzLCBtZXNzYWdlLnV0Zjgo
KS5kYXRhKCkpOwotICAgIENTdHJpbmcgdXRmOCA9IG1lc3NhZ2UudXRmOCh0cnVlKTsKLSAgICBp
ZiAodXRmOC5pc051bGwoKSAmJiBtZXNzYWdlLmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gSW52
YWxpZE1lc3NhZ2U7CisgICAgQ1N0cmluZyB1dGY4ID0gY3JlYXRlVVRGOEZyb21TdHJpbmdXaXRo
UmVwbGFjaW5nQ2hhcmFjdGVyKG1lc3NhZ2UpOwogICAgIGVucXVldWVUZXh0RnJhbWUodXRmOCk7
CiAgICAgLy8gQWNjb3JkaW5nIHRvIFdlYlNvY2tldCBBUEkgc3BlY2lmaWNhdGlvbiwgV2ViU29j
a2V0LnNlbmQoKSBzaG91bGQgcmV0dXJuIHZvaWQgaW5zdGVhZAogICAgIC8vIG9mIGJvb2xlYW4u
IEhvd2V2ZXIsIG91ciBpbXBsZW1lbnRhdGlvbiBzdGlsbCByZXR1cm5zIGJvb2xlYW4gZHVlIHRv
IGNvbXBhdGliaWxpdHkKQEAgLTQ4MCw3ICs1MTEsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OnN0YXJ0Q2xvc2luZ0hhbmRzaGFrZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAg
ICAgICAgIHVuc2lnbmVkIGNoYXIgbG93Qnl0ZSA9IGNvZGU7CiAgICAgICAgIGJ1Zi5hcHBlbmQo
c3RhdGljX2Nhc3Q8Y2hhcj4oaGlnaEJ5dGUpKTsKICAgICAgICAgYnVmLmFwcGVuZChzdGF0aWNf
Y2FzdDxjaGFyPihsb3dCeXRlKSk7Ci0gICAgICAgIGJ1Zi5hcHBlbmQocmVhc29uLnV0ZjgoKS5k
YXRhKCksIHJlYXNvbi51dGY4KCkubGVuZ3RoKCkpOworICAgICAgICBDU3RyaW5nIHV0ZjggPSBj
cmVhdGVVVEY4RnJvbVN0cmluZ1dpdGhSZXBsYWNpbmdDaGFyYWN0ZXIocmVhc29uKTsKKyAgICAg
ICAgYnVmLmFwcGVuZCh1dGY4LmRhdGEoKSwgdXRmOC5sZW5ndGgoKSk7CiAgICAgfQogICAgIGVu
cXVldWVSYXdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ2xvc2UsIGJ1Zi5kYXRhKCksIGJ1
Zi5zaXplKCkpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2YwNzc1MDNkMjk4MzgwM2MxZjNjMWM0OTk5ZWQzNGQ1OGNh
YzA1YS4uYmQwNTQ3YTlhZjIyYjI3ZGZkZTQzMDZkNzY4ODUzZTNkODQyODlmNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIyIEBACisyMDEyLTExLTA4ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbV2ViU29ja2V0XSBzZW5kKCkgYW5kIGNsb3NlKCkgc2hvdWxk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZSBidXQgdXNl
IHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTU2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIC0gVXBkYXRlZCB0ZXN0cyB3aGljaCB0cnkgdG8gc2VuZCB1bnBh
aXJlZCBzdXJyb2dhdGVzLgorICAgICAgICAgIFRoZXNlIHRlc3RzIHNob3VsZCBub3QgdGhyb3cg
U1lOVEFYX0VSUi4KKyAgICAgICAgLSBBZGQgYSB0ZXN0IHRoYXQgY2hlY2tzIHdoZXRoZXIgV2Vi
S2l0IHRocm93cyBTWU5UQVhfRVJSIHdoZW4gYSBjbG9zZQorICAgICAgICAgIHJlYXNvbiBpcyB0
b28gbG9uZy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xv
c2UtcmVhc29uLXRvby1sb25nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmcuaHRtbDogRGl0
dG8uCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1z
dXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWlu
LWNsb3NlLXJlYXNvbi5odG1sOiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS1leHBlY3RlZC50eHQ6
IERpdHRvLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWly
ZWQtc3Vycm9nYXRlcy1pbi1tZXNzYWdlLmh0bWw6IERpdHRvLgorCiAyMDEyLTExLTA3ICBEaXJr
IFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVw
ZGF0ZSBjaHJvbWl1bS1tYWMtbW91bnRhaW5saW9uIGJhc2VsaW5lcyBmb3IgY3NzMi4xLzIwMTEv
MDMyMwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFkYjFiYjc3ZWE0ZTE0MDYyMzI3MDIyNmQ4ZjQxZDA0ZDhjY2Ji
NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2Nsb3NlLXJlYXNvbi10b28tbG9uZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MSBAQAorQ09OU09MRSBNRVNTQUdFOiBXZWJTb2NrZXQgY2xvc2UgbWVzc2FnZSBpcyB0b28gbG9u
Zy4KK0NoZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0
byBzZW5kIHRvbyBsb25nIHJlYXNvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitD
b25uZWN0ZWQuCitQQVNTIFNZTlRBWF9FUlIgd2FzIHRocm93bi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlLXJlYXNvbi10b28tbG9uZy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1y
ZWFzb24tdG9vLWxvbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjEzMTc0NDUzOGIzOWZlYjI5OTAxYTlm
OGY4OWI0YjJkMDcyMzFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmcuaHRtbApAQCAtMCww
ICsxLDQ5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CitkZXNjcmlwdGlvbigiQ2hlY2tzIHdoZXRoZXIgU1lOVEFY
X0VSUiBpcyB0aHJvd24gd2hlbiBhdHRlbXB0aW5nIHRvIHNlbmQgdG9vIGxvbmcgcmVhc29uLiIp
OworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciB3cyA9IG5ldyBXZWJTb2Nr
ZXQoIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNobyIpOwordmFy
IG1lc3NhZ2U7Cit2YXIgbG9uZ1JlYXNvbiA9ICcnOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMjQ7
ICsraSkKKyAgICBsb25nUmVhc29uICs9ICdhJzsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQor
eworICAgIGRlYnVnKCJDb25uZWN0ZWQuIik7CisgICAgdHJ5IHsKKyAgICAgICAgd3MuY2xvc2Uo
MTAwMCwgbG9uZ1JlYXNvbik7CisgICAgICAgIHRlc3RGYWlsZWQoJ1NZTlRBWF9FUlIgc2hvdWxk
IGJlIHRocm93bi4nKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGlmIChlLm5hbWUgPT0g
J1NZTlRBWF9FUlInKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgnU1lOVEFYX0VSUiB3YXMgdGhy
b3duLicpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCdVbmV4cGVjdGVk
IGV4Y2VwdGlvbjogJyArIGUpOworICAgIH0KKyAgICB3cy5jbG9zZSgpOworfTsKKword3Mub25t
ZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KQoreworICAgIG1lc3NhZ2UgPSBldmVudC5kYXRhOwor
ICAgIHRlc3RGYWlsZWQoIm9ubWVzc2FnZSgpIHdhcyBjYWxsZWQuIChtZXNzYWdlID0gXCIiICsg
bWVzc2FnZSArICJcIikiKTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbigpCit7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9OworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1
cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29uLWV4cGVjdGVkLnR4dAppbmRleCBlZWJiNWMyN2MyZjQy
YjAwZDNjNTlkZjE4OWRmNTQ3ZGYyODI0YTA3Li42YTljNTM4ZTAxNjdhODA0NGFiOGI0OTU0NmI5
YWI0OTk0OWQ0Zjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29uLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Vu
cGFpcmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29uLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFdlYlNvY2tldCBjbG9zZSBtZXNzYWdlIGNvbnRhaW5z
IGludmFsaWQgY2hhcmFjdGVyKHMpLgotQ2hlY2tzIHdoZXRoZXIgU1lOVEFYX0VSUiBpcyB0aHJv
d24gd2hlbiBhdHRlbXBpbmcgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24gd2l0aCB1bnBhaXJlZCBz
dXJyb2dhdGVzLgorQ2hlY2tzIHdoZXRoZXIgdW5wYWlyZWQgc3Vycm9nYXRlcyBpbiBhIGNsb3Nl
IHJlYXNvbiBhcmUgc2lsZW50bHkgY29udmVydGVkIHRvIFUrRkZGRCBhbmQgU1lOVEFYX0VSUiBp
cyBub3QgdGhyb3duLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIENvbm5lY3RlZC4K
LVBBU1MgU1lOVEFYX0VSUiB3YXMgdGhyb3duLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlz
IHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91
bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3Nl
LXJlYXNvbi5odG1sCmluZGV4IDZiMTMxOTE0NzNlNTIzMmZhMDA1NjU3MDQyN2E2Y2I0N2JmYjRk
OTUuLjA3Y2FkMjhmNmIxY2Y3OTdjNzFkMmEyYmI2M2MwY2QzZDQxYjFmZTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vy
cm9nYXRlcy1pbi1jbG9zZS1yZWFzb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29u
Lmh0bWwKQEAgLTcsMzUgKzcsMzAgQEAKIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KIDxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgot
ZGVzY3JpcHRpb24oIkNoZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdoZW4gYXR0
ZW1waW5nIHRvIGNsb3NlIHRoZSBjb25uZWN0aW9uIHdpdGggdW5wYWlyZWQgc3Vycm9nYXRlcy4i
KTsKK2Rlc2NyaXB0aW9uKCJDaGVja3Mgd2hldGhlciB1bnBhaXJlZCBzdXJyb2dhdGVzIGluIGEg
Y2xvc2UgcmVhc29uIGFyZSBzaWxlbnRseSBjb252ZXJ0ZWQgdG8gVStGRkZEIGFuZCBTWU5UQVhf
RVJSIGlzIG5vdCB0aHJvd24uIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAog
dmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVz
dHMvaHliaS9lY2hvIik7Cit2YXIgbWVzc2FnZTsKK3ZhciBjbG9zZUV2ZW50OwogCiB3cy5vbm9w
ZW4gPSBmdW5jdGlvbigpCiB7CiAgICAgZGVidWcoIkNvbm5lY3RlZC4iKTsKLSAgICB0cnkgewot
ICAgICAgICB3cy5jbG9zZSgxMDAwLCAnXHVEODA3Jyk7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ1NZ
TlRBWF9FUlIgc2hvdWxkIGJlIHRocm93bi4nKTsKLSAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAg
aWYgKGUubmFtZSA9PSAnU1lOVEFYX0VSUicpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCdTWU5U
QVhfRVJSIHdhcyB0aHJvd24uJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRlc3RGYWls
ZWQoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAnICsgZSk7Ci0gICAgfQotICAgIHdzLmNsb3NlKCk7
CisgICAgd3MuY2xvc2UoMTAwMCwgJ1x1RDgwNycpOwogfTsKIAogd3Mub25tZXNzYWdlID0gZnVu
Y3Rpb24gKGV2ZW50KQogewotICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAgICBtZXNz
YWdlID0gZXZlbnQuZGF0YTsKICAgICB0ZXN0RmFpbGVkKCJvbm1lc3NhZ2UoKSB3YXMgY2FsbGVk
LiAobWVzc2FnZSA9IFwiIiArIG1lc3NhZ2UgKyAiXCIpIik7CiB9OwogCi13cy5vbmNsb3NlID0g
ZnVuY3Rpb24oKQord3Mub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQogeworICAgIGNsb3NlRXZl
bnQgPSBldmVudDsKKyAgICBzaG91bGRCZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNzYWdlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
dW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNzYWdlLWV4cGVjdGVkLnR4dAppbmRleCBhMTgxMDYw
NWE1M2NlOWQxNjlmNzliYTAyYmI0YWQxOTcwMjI3NDhjLi43MDMxN2E0MGJkZGUwNDFhMTk5Zjhk
NWEzZDY3YTY1NWM5YmI0MWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91
bnBhaXJlZC1zdXJyb2dhdGVzLWluLW1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDkg
QEAKLUNPTlNPTEUgTUVTU0FHRTogV2Vic29ja2V0IG1lc3NhZ2UgY29udGFpbnMgaW52YWxpZCBj
aGFyYWN0ZXIocykuCi1DaGVja3Mgd2hldGhlciBTWU5UQVhfRVJSIGlzIHRocm93biB3aGVuIGF0
dGVtcGluZyB0byBzZW5kIHVucGFpcmVkIHN1cnJvZ2F0ZXMuCitDaGVja3Mgd2hldGhlciB1bnBh
aXJlZCBzdXJyb2dhdGVzIGFyZSByZXBsYWNlZCB3aXRoIFUrRkZGRC4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCiBDb25uZWN0ZWQuCi1QQVNTIFNZTlRBWF9FUlIgd2FzIHRocm93bi4K
K1BBU1MgbWVzc2FnZSBpcyAn77+9JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dh
dGVzLWluLW1lc3NhZ2UuaHRtbAppbmRleCA0NDA3OGI3NTU0NjAzMDI4YTczMWVmNDNiZmIyN2My
YmMzN2VkZDk4Li5iNjQwMjdlYmJjZjBmZWI2YWVhYWIyY2QyOTRiOTM5NDIxNzE0NzA4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFp
cmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNzYWdlLmh0
bWwKQEAgLTcsMzEgKzcsMjMgQEAKIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KIDxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotZGVz
Y3JpcHRpb24oIkNoZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdoZW4gYXR0ZW1w
aW5nIHRvIHNlbmQgdW5wYWlyZWQgc3Vycm9nYXRlcy4iKTsKK2Rlc2NyaXB0aW9uKCJDaGVja3Mg
d2hldGhlciB1bnBhaXJlZCBzdXJyb2dhdGVzIGFyZSByZXBsYWNlZCB3aXRoIFUrRkZGRC4iKTsK
IAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0
KCJ3czovL2xvY2FsaG9zdDo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2VjaG8iKTsKK3ZhciBt
ZXNzYWdlOwogCiB3cy5vbm9wZW4gPSBmdW5jdGlvbigpCiB7CiAgICAgZGVidWcoIkNvbm5lY3Rl
ZC4iKTsKLSAgICB0cnkgewotICAgICAgICB3cy5zZW5kKCdcdUQ4MDcnKTsKLSAgICAgICAgdGVz
dEZhaWxlZCgnU1lOVEFYX0VSUiBzaG91bGQgYmUgdGhyb3duLicpOwotICAgIH0gY2F0Y2goZSkg
ewotICAgICAgICBpZiAoZS5uYW1lID09ICdTWU5UQVhfRVJSJykKLSAgICAgICAgICAgIHRlc3RQ
YXNzZWQoJ1NZTlRBWF9FUlIgd2FzIHRocm93bi4nKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGVzdEZhaWxlZCgnVW5leHBlY3RlZCBleGNlcHRpb246ICcgKyBlKTsKLSAgICB9Ci0gICAg
d3MuY2xvc2UoKTsKKyAgICB3cy5zZW5kKCJcdUQ4MDciKTsKIH07CiAKIHdzLm9ubWVzc2FnZSA9
IGZ1bmN0aW9uIChldmVudCkKIHsKLSAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7Ci0gICAg
dGVzdEZhaWxlZCgib25tZXNzYWdlKCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIgKyBtZXNz
YWdlICsgIlwiKSIpOworICAgIG1lc3NhZ2UgPSBldmVudC5kYXRhOworICAgIHNob3VsZEJlKCJt
ZXNzYWdlIiwgIidcdUZGRkQnIik7CiAgICAgd3MuY2xvc2UoKTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173505</attachid>
            <date>2012-11-11 06:27:40 -0800</date>
            <delta_ts>2012-11-13 17:53:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101569-20121111232544.patch</filename>
            <type>text/plain</type>
            <size>12559</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY1ZGE5YWQ3MmYxNzEx
YzY3ZTljZDUyMzAzMDUzODk1YWUxYzc5Mi4uNzgzZDVlNGJhMmFkMDZhYmRjYmFhZmNmNDQxYjky
NTcwZGQ0OGIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDEyLTExLTExICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbV2ViU29ja2V0
XSBzZW5kKCkgYW5kIGNsb3NlKCkgc2hvdWxkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGFu
IHVucGFpcmVkIHN1cnJvZ2F0ZSBidXQgdXNlIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTU2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdW5w
YWlyZWQgc3Vycm9nYXRlcyB3aXRoIHJlcGxhY2luZyBjaGFyYWN0ZXIgKFUrRkZGRCkgd2hlbgor
ICAgICAgICBlbmNvZGluZyB0ZXh0IG1lc3NhZ2VzIGFuZCBjbG9zZSByZWFzb25zLiBUaGlzIGNo
YW5nZSBpcyBhaW1lZCBhdAorICAgICAgICBmb2xsb3dpbmcgdGhlIGNoYW5nZXMgb24gdGhlIFdl
YlNvY2tldCBBUEkgc3BlY2lmaWNhdGlvbi4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlLXJlYXNvbi10b28tbG9uZy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldDo6Y2xvc2UpOgorICAgICAgICBVc2UgU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uUmVw
bGFjaW5nVW5wYWlyZWRTdXJyb2dhdGVzV2l0aEZGRkQgbW9kZSB0byBlbmNvZGUKKyAgICAgICAg
dGV4dCBtZXNzYWdlLiBSZW1vdmUgaW52YWxpZCB1dGYtOCBjaGVjay4KKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRDaGFubmVsOjpzZW5kKToKKyAgICAgICAgVXNlIFN0cmluZzo6U3RyaWN0Q29udmVy
c2lvblJlcGxhY2luZ1VucGFpcmVkU3Vycm9nYXRlc1dpdGhGRkZEIG1vZGUgdG8gZW5jb2RlCisg
ICAgICAgIGNsb3NlIHJlYXNvbi4gUmVtb3ZlIGludmFsaWQgdXRmLTggY2hlY2suCisKKzIwMTIt
MTEtMTEgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFdURlN0cmluZzo6dXRmOCgpIHNob3VsZCBoYXZlIGEgbW9kZSBvZiBjb252ZXJzaW9uIHRvIHVz
ZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMTY3OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGMzYzcwYTRkNDJjYjdjYTI1MGUwNzU3ODVhZTUw
YWE0Y2I0ODExN2MuLjY5YzRiYjEzYjM3MGRhZjA0YWI5YzdiNjFkNzYxNzY1MTk0MWY4NzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBA
IC0zNDEsMTggKzM0MSwxMiBAQCB2b2lkIFdlYlNvY2tldDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg
IENTdHJpbmcgdXRmOCA9IHJlYXNvbi51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbik7Cisg
ICAgICAgIENTdHJpbmcgdXRmOCA9IHJlYXNvbi51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lv
blJlcGxhY2luZ1VucGFpcmVkU3Vycm9nYXRlc1dpdGhGRkZEKTsKICAgICAgICAgaWYgKHV0Zjgu
bGVuZ3RoKCkgPiBtYXhSZWFzb25TaXplSW5CeXRlcykgewogICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIldlYlNvY2tldCBjbG9zZSBtZXNzYWdlIGlz
IHRvbyBsb25nLiIpOwogICAgICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIC8vIENoZWNrcyB3aGV0aGVyIHJlYXNvbiBpcyB2
YWxpZCB1dGY4LgotICAgICAgICBpZiAodXRmOC5pc051bGwoKSAmJiByZWFzb24ubGVuZ3RoKCkp
IHsKLSAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJX
ZWJTb2NrZXQgY2xvc2UgbWVzc2FnZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcihzKS4iKTsK
LSAgICAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQogICAgIH0KIAogICAgIGlmIChtX3N0YXRlID09IENMT1NJTkcgfHwgbV9zdGF0ZSA9PSBD
TE9TRUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMDYyODg1NzA1MWVjYzdmZDRmYTQ0NTJjODQ3ODUwMGI0
MjMwMWMyNS4uNDM2NGRlMmVhNWQ0MGQxMzNmN2ZlNjBiNDRmN2MwYjU4ZGY2ZjdmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcApAQCAtMTM3LDkgKzEzNyw3IEBAIFN0cmluZyBXZWJTb2NrZXRDaGFubmVsOjpleHRl
bnNpb25zKCkKIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IFdlYlNvY2tl
dENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIExPRyhOZXR3b3Jr
LCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBzZW5kICVzIiwgdGhpcywgbWVzc2FnZS51dGY4KCkuZGF0
YSgpKTsKLSAgICBDU3RyaW5nIHV0ZjggPSBtZXNzYWdlLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252
ZXJzaW9uKTsKLSAgICBpZiAodXRmOC5pc051bGwoKSAmJiBtZXNzYWdlLmxlbmd0aCgpKQotICAg
ICAgICByZXR1cm4gSW52YWxpZE1lc3NhZ2U7CisgICAgQ1N0cmluZyB1dGY4ID0gbWVzc2FnZS51
dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvblJlcGxhY2luZ1VucGFpcmVkU3Vycm9nYXRlc1dp
dGhGRkZEKTsKICAgICBlbnF1ZXVlVGV4dEZyYW1lKHV0ZjgpOwogICAgIC8vIEFjY29yZGluZyB0
byBXZWJTb2NrZXQgQVBJIHNwZWNpZmljYXRpb24sIFdlYlNvY2tldC5zZW5kKCkgc2hvdWxkIHJl
dHVybiB2b2lkIGluc3RlYWQKICAgICAvLyBvZiBib29sZWFuLiBIb3dldmVyLCBvdXIgaW1wbGVt
ZW50YXRpb24gc3RpbGwgcmV0dXJucyBib29sZWFuIGR1ZSB0byBjb21wYXRpYmlsaXR5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMDQ3YjllMzI5OTRiYTU3M2I3MmFiYmVkYzU4N2NlNzE1ZTY4NzFiZS4uZWYyZWI4NjE3NjI1
YTIwYzY3OGI2MjM2NWNmMTM2YmI2ODc1N2QwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEy
LTExLTExICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbV2ViU29ja2V0XSBzZW5kKCkgYW5kIGNsb3NlKCkgc2hvdWxkIG5vdCB0aHJvdyBhbiBleGNl
cHRpb24gZm9yIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZSBidXQgdXNlIHRoZSByZXBsYWNlbWVudCBj
aGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTU2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IC0gVXBkYXRlZCB0ZXN0cyB3aGljaCB0cnkgdG8gc2VuZCB1bnBhaXJlZCBzdXJyb2dhdGVzLgor
ICAgICAgICAgIFRoZXNlIHRlc3RzIHNob3VsZCBub3QgdGhyb3cgU1lOVEFYX0VSUi4KKyAgICAg
ICAgLSBBZGQgYSB0ZXN0IHRoYXQgY2hlY2tzIHdoZXRoZXIgV2ViS2l0IHRocm93cyBTWU5UQVhf
RVJSIHdoZW4gYSBjbG9zZQorICAgICAgICAgIHJlYXNvbiBpcyB0b28gbG9uZy4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2UtcmVhc29uLXRvby1sb25n
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmcuaHRtbDogRGl0dG8uCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3Nl
LXJlYXNvbi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi5odG1s
OiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFp
cmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1t
ZXNzYWdlLmh0bWw6IERpdHRvLgorCiAyMDEyLTExLTEwICBNaWtlIFdlc3QgIDxta3dzdEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTXVsdGlwbGUgJyVjJyBmb3JtYXR0
aW5nIG9wdGlvbnMgc2hvdWxkIGFsbCBoYXZlIGVmZmVjdC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2UtcmVhc29uLXRvby1sb25n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvY2xvc2UtcmVhc29uLXRvby1sb25nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGIxYmI3
N2VhNGUxNDA2MjMyNzAyMjZkOGY0MWQwNGQ4Y2NiYjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZS1yZWFzb24tdG9v
LWxvbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogV2Vi
U29ja2V0IGNsb3NlIG1lc3NhZ2UgaXMgdG9vIGxvbmcuCitDaGVja3Mgd2hldGhlciBTWU5UQVhf
RVJSIGlzIHRocm93biB3aGVuIGF0dGVtcHRpbmcgdG8gc2VuZCB0b28gbG9uZyByZWFzb24uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworQ29ubmVjdGVkLgorUEFTUyBTWU5UQVhfRVJS
IHdhcyB0aHJvd24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9jbG9zZS1yZWFzb24tdG9vLWxvbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2UtcmVhc29uLXRvby1sb25nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjYxMzE3NDQ1MzhiMzlmZWIyOTkwMWE5ZjhmODliNGIyZDA3MjMxZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xv
c2UtcmVhc29uLXRvby1sb25nLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVz
Y3JpcHRpb24oIkNoZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdoZW4gYXR0ZW1w
dGluZyB0byBzZW5kIHRvbyBsb25nIHJlYXNvbi4iKTsKKword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovL2xvY2FsaG9zdDo4ODgwL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2VjaG8iKTsKK3ZhciBtZXNzYWdlOwordmFyIGxvbmdSZWFzb24g
PSAnJzsKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTI0OyArK2kpCisgICAgbG9uZ1JlYXNvbiArPSAn
YSc7CisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKK3sKKyAgICBkZWJ1ZygiQ29ubmVjdGVkLiIp
OworICAgIHRyeSB7CisgICAgICAgIHdzLmNsb3NlKDEwMDAsIGxvbmdSZWFzb24pOworICAgICAg
ICB0ZXN0RmFpbGVkKCdTWU5UQVhfRVJSIHNob3VsZCBiZSB0aHJvd24uJyk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBpZiAoZS5uYW1lID09ICdTWU5UQVhfRVJSJykKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoJ1NZTlRBWF9FUlIgd2FzIHRocm93bi4nKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgnVW5leHBlY3RlZCBleGNlcHRpb246ICcgKyBlKTsKKyAgICB9
CisgICAgd3MuY2xvc2UoKTsKK307CisKK3dzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldmVudCkK
K3sKKyAgICBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAgICB0ZXN0RmFpbGVkKCJvbm1lc3NhZ2Uo
KSB3YXMgY2FsbGVkLiAobWVzc2FnZSA9IFwiIiArIG1lc3NhZ2UgKyAiXCIpIik7Cit9OworCit3
cy5vbmNsb3NlID0gZnVuY3Rpb24oKQoreworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRl
cy1pbi1jbG9zZS1yZWFzb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi1l
eHBlY3RlZC50eHQKaW5kZXggZWViYjVjMjdjMmY0MmIwMGQzYzU5ZGYxODlkZjU0N2RmMjgyNGEw
Ny4uNmE5YzUzOGUwMTY3YTgwNDRhYjhiNDk1NDZiOWFiNDk5NDlkNGY5NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJy
b2dhdGVzLWluLWNsb3NlLXJlYXNvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLWNsb3Nl
LXJlYXNvbi1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBX
ZWJTb2NrZXQgY2xvc2UgbWVzc2FnZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcihzKS4KLUNo
ZWNrcyB3aGV0aGVyIFNZTlRBWF9FUlIgaXMgdGhyb3duIHdoZW4gYXR0ZW1waW5nIHRvIGNsb3Nl
IHRoZSBjb25uZWN0aW9uIHdpdGggdW5wYWlyZWQgc3Vycm9nYXRlcy4KK0NoZWNrcyB3aGV0aGVy
IHVucGFpcmVkIHN1cnJvZ2F0ZXMgaW4gYSBjbG9zZSByZWFzb24gYXJlIHNpbGVudGx5IGNvbnZl
cnRlZCB0byBVK0ZGRkQgYW5kIFNZTlRBWF9FUlIgaXMgbm90IHRocm93bi4KIAogT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgogCiBDb25uZWN0ZWQuCi1QQVNTIFNZTlRBWF9FUlIgd2FzIHRocm93
bi4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1jbG9z
ZS1yZWFzb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1jbG9zZS1yZWFzb24uaHRtbAppbmRleCA2YjEzMTkx
NDczZTUyMzJmYTAwNTY1NzA0MjdhNmNiNDdiZmI0ZDk1Li4wN2NhZDI4ZjZiMWNmNzk3YzcxZDJh
MmJiNjNjMGNkM2Q0MWIxZmUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tY2xvc2UtcmVhc29uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBh
aXJlZC1zdXJyb2dhdGVzLWluLWNsb3NlLXJlYXNvbi5odG1sCkBAIC03LDM1ICs3LDMwIEBACiA8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWRlc2NyaXB0aW9uKCJDaGVja3Mgd2hldGhl
ciBTWU5UQVhfRVJSIGlzIHRocm93biB3aGVuIGF0dGVtcGluZyB0byBjbG9zZSB0aGUgY29ubmVj
dGlvbiB3aXRoIHVucGFpcmVkIHN1cnJvZ2F0ZXMuIik7CitkZXNjcmlwdGlvbigiQ2hlY2tzIHdo
ZXRoZXIgdW5wYWlyZWQgc3Vycm9nYXRlcyBpbiBhIGNsb3NlIHJlYXNvbiBhcmUgc2lsZW50bHkg
Y29udmVydGVkIHRvIFUrRkZGRCBhbmQgU1lOVEFYX0VSUiBpcyBub3QgdGhyb3duLiIpOwogCiB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndz
Oi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNobyIpOwordmFyIG1lc3Nh
Z2U7Cit2YXIgY2xvc2VFdmVudDsKIAogd3Mub25vcGVuID0gZnVuY3Rpb24oKQogewogICAgIGRl
YnVnKCJDb25uZWN0ZWQuIik7Ci0gICAgdHJ5IHsKLSAgICAgICAgd3MuY2xvc2UoMTAwMCwgJ1x1
RDgwNycpOwotICAgICAgICB0ZXN0RmFpbGVkKCdTWU5UQVhfRVJSIHNob3VsZCBiZSB0aHJvd24u
Jyk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChlLm5hbWUgPT0gJ1NZTlRBWF9FUlIn
KQotICAgICAgICAgICAgdGVzdFBhc3NlZCgnU1lOVEFYX0VSUiB3YXMgdGhyb3duLicpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICB0ZXN0RmFpbGVkKCdVbmV4cGVjdGVkIGV4Y2VwdGlvbjog
JyArIGUpOwotICAgIH0KLSAgICB3cy5jbG9zZSgpOworICAgIHdzLmNsb3NlKDEwMDAsICdcdUQ4
MDcnKTsKIH07CiAKIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldmVudCkKIHsKLSAgICB2YXIg
bWVzc2FnZSA9IGV2ZW50LmRhdGE7CisgICAgbWVzc2FnZSA9IGV2ZW50LmRhdGE7CiAgICAgdGVz
dEZhaWxlZCgib25tZXNzYWdlKCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIgKyBtZXNzYWdl
ICsgIlwiKSIpOwogfTsKIAotd3Mub25jbG9zZSA9IGZ1bmN0aW9uKCkKK3dzLm9uY2xvc2UgPSBm
dW5jdGlvbihldmVudCkKIHsKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVU
cnVlKCJjbG9zZUV2ZW50Lndhc0NsZWFuIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9OwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Vu
cGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VucGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVz
c2FnZS1leHBlY3RlZC50eHQKaW5kZXggYTE4MTA2MDVhNTNjZTlkMTY5Zjc5YmEwMmJiNGFkMTk3
MDIyNzQ4Yy4uNzAzMTdhNDBiZGRlMDQxYTE5OWY4ZDVhM2Q2N2E2NTVjOWJiNDFmYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJl
ZC1zdXJyb2dhdGVzLWluLW1lc3NhZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNz
YWdlLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFdlYnNv
Y2tldCBtZXNzYWdlIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyKHMpLgotQ2hlY2tzIHdoZXRo
ZXIgU1lOVEFYX0VSUiBpcyB0aHJvd24gd2hlbiBhdHRlbXBpbmcgdG8gc2VuZCB1bnBhaXJlZCBz
dXJyb2dhdGVzLgorQ2hlY2tzIHdoZXRoZXIgdW5wYWlyZWQgc3Vycm9nYXRlcyBhcmUgcmVwbGFj
ZWQgd2l0aCBVK0ZGRkQuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogQ29ubmVjdGVk
LgotUEFTUyBTWU5UQVhfRVJSIHdhcyB0aHJvd24uCitQQVNTIG1lc3NhZ2UgaXMgJ++/vScKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1z
dXJyb2dhdGVzLWluLW1lc3NhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvdW5wYWlyZWQtc3Vycm9nYXRlcy1pbi1tZXNzYWdlLmh0bWwKaW5kZXgg
NDQwNzhiNzU1NDYwMzAyOGE3MzFlZjQzYmZiMjdjMmJjMzdlZGQ5OC4uYjY0MDI3ZWJiY2YwZmVi
NmFlYWFiMmNkMjk0YjkzOTQyMTcxNDcwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91bnBhaXJlZC1zdXJyb2dhdGVzLWluLW1lc3NhZ2Uu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Vu
cGFpcmVkLXN1cnJvZ2F0ZXMtaW4tbWVzc2FnZS5odG1sCkBAIC03LDMxICs3LDIzIEBACiA8ZGl2
IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWRlc2NyaXB0aW9uKCJDaGVja3Mgd2hldGhlciBT
WU5UQVhfRVJSIGlzIHRocm93biB3aGVuIGF0dGVtcGluZyB0byBzZW5kIHVucGFpcmVkIHN1cnJv
Z2F0ZXMuIik7CitkZXNjcmlwdGlvbigiQ2hlY2tzIHdoZXRoZXIgdW5wYWlyZWQgc3Vycm9nYXRl
cyBhcmUgcmVwbGFjZWQgd2l0aCBVK0ZGRkQuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJz
b2NrZXQvdGVzdHMvaHliaS9lY2hvIik7Cit2YXIgbWVzc2FnZTsKIAogd3Mub25vcGVuID0gZnVu
Y3Rpb24oKQogewogICAgIGRlYnVnKCJDb25uZWN0ZWQuIik7Ci0gICAgdHJ5IHsKLSAgICAgICAg
d3Muc2VuZCgnXHVEODA3Jyk7Ci0gICAgICAgIHRlc3RGYWlsZWQoJ1NZTlRBWF9FUlIgc2hvdWxk
IGJlIHRocm93bi4nKTsKLSAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgaWYgKGUubmFtZSA9PSAn
U1lOVEFYX0VSUicpCi0gICAgICAgICAgICB0ZXN0UGFzc2VkKCdTWU5UQVhfRVJSIHdhcyB0aHJv
d24uJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoJ1VuZXhwZWN0ZWQg
ZXhjZXB0aW9uOiAnICsgZSk7Ci0gICAgfQotICAgIHdzLmNsb3NlKCk7CisgICAgd3Muc2VuZCgi
XHVEODA3Iik7CiB9OwogCiB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpCiB7Ci0gICAg
dmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhOwotICAgIHRlc3RGYWlsZWQoIm9ubWVzc2FnZSgpIHdh
cyBjYWxsZWQuIChtZXNzYWdlID0gXCIiICsgbWVzc2FnZSArICJcIikiKTsKKyAgICBtZXNzYWdl
ID0gZXZlbnQuZGF0YTsKKyAgICBzaG91bGRCZSgibWVzc2FnZSIsICInXHVGRkZEJyIpOwogICAg
IHdzLmNsb3NlKCk7CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>