<?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>77930</bug_id>
          
          <creation_ts>2012-02-06 20:31:43 -0800</creation_ts>
          <short_desc>INPUT shouldn&apos;t create ShadowRoot dynamically.</short_desc>
          <delta_ts>2012-05-30 18:55:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>
          
          <blocked>77503</blocked>
    
    <blocked>77608</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>550580</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-06 20:31:43 -0800</bug_when>
    <thetext>Currently INPUT recreates shadow root if its type is changed.
We can reuse shadow root to stop recreating it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551833</commentid>
    <comment_count>1</comment_count>
      <attachid>126017</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-07 23:27:08 -0800</bug_when>
    <thetext>Created attachment 126017
W.I.P.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551838</commentid>
    <comment_count>2</comment_count>
      <attachid>126018</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-07 23:37:34 -0800</bug_when>
    <thetext>Created attachment 126018
W.I.P.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551880</commentid>
    <comment_count>3</comment_count>
      <attachid>126018</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 01:26:40 -0800</bug_when>
    <thetext>Comment on attachment 126018
W.I.P.

Attachment 126018 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11460321

New failing tests:
fast/speech/speech-input-scripting.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553683</commentid>
    <comment_count>4</comment_count>
      <attachid>126420</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 18:12:32 -0800</bug_when>
    <thetext>Created attachment 126420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553788</commentid>
    <comment_count>5</comment_count>
      <attachid>126420</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-02-09 21:05:52 -0800</bug_when>
    <thetext>Comment on attachment 126420
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Media control elements are implemented input elements. These elements should also

The meaning of &quot;Media control elements are implemented input elements&quot; is not clear to me.

&gt; Source/WebCore/html/FileInputType.cpp:270
&gt; +    element()-&gt;shadowRoot()-&gt;appendChild(element()-&gt;multiple() ? UploadButtonElement::createForMultiple(element()-&gt;document()): UploadButtonElement::create(element()-&gt;document()), ec);

Won’t this be problematic if I attach an author shadow root to the input element? Then the UploadButtonElement will be leaked into my author shadow root.

&gt; Source/WebCore/html/InputType.cpp:382
&gt; +        while (root-&gt;hasChildNodes())

What about root-&gt;removeAllChildren() or root-&gt;removeChildren()

*I’m not sure which one of these you want. Probably removeChildren.*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553816</commentid>
    <comment_count>6</comment_count>
      <attachid>126420</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 21:53:44 -0800</bug_when>
    <thetext>Comment on attachment 126420
Patch

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

&gt;&gt; Source/WebCore/html/FileInputType.cpp:270
&gt;&gt; +    element()-&gt;shadowRoot()-&gt;appendChild(element()-&gt;multiple() ? UploadButtonElement::createForMultiple(element()-&gt;document()): UploadButtonElement::create(element()-&gt;document()), ec);
&gt; 
&gt; Won’t this be problematic if I attach an author shadow root to the input element? Then the UploadButtonElement will be leaked into my author shadow root.

Since we don&apos;t support multiple shadow subtrees, and we have disabled to add an author shadow root into INPUT element, this shouldn&apos;t cause a problem.
I&apos;m now writing a patch to support multiple shadow subtrees. Your anxiety will be fixed in that (coming) patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553819</commentid>
    <comment_count>7</comment_count>
      <attachid>126420</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 21:56:05 -0800</bug_when>
    <thetext>Comment on attachment 126420
Patch

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

&gt;&gt; Source/WebCore/html/InputType.cpp:382
&gt;&gt; +        while (root-&gt;hasChildNodes())
&gt; 
&gt; What about root-&gt;removeAllChildren() or root-&gt;removeChildren()
&gt; 
&gt; *I’m not sure which one of these you want. Probably removeChildren.*

Ah, I didn&apos;t notice ContainerNode has removeChildren() method...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553833</commentid>
    <comment_count>8</comment_count>
      <attachid>126453</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 22:18:21 -0800</bug_when>
    <thetext>Created attachment 126453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553857</commentid>
    <comment_count>9</comment_count>
      <attachid>126453</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 22:49:53 -0800</bug_when>
    <thetext>Comment on attachment 126453
Patch

Attachment 126453 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11447573

New failing tests:
fast/speech/speech-input-scripting.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553872</commentid>
    <comment_count>10</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-09 23:15:10 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 126453 [details])
&gt; Attachment 126453 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11447573
&gt; 
&gt; New failing tests:
&gt; fast/speech/speech-input-scripting.html

Why is chromium bot complaining...?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553893</commentid>
    <comment_count>11</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-10 00:01:19 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 126453 [details] [details])
&gt; &gt; Attachment 126453 [details] [details] did not pass chromium-ews (chromium-xvfb):
&gt; &gt; Output: http://queues.webkit.org/results/11447573
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; fast/speech/speech-input-scripting.html
&gt; 
&gt; Why is chromium bot complaining...?

Ah, removeChildren() is not correct, maybe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553901</commentid>
    <comment_count>12</comment_count>
      <attachid>126468</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-10 00:05:56 -0800</bug_when>
    <thetext>Created attachment 126468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554108</commentid>
    <comment_count>13</comment_count>
      <attachid>126468</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-10 09:19:08 -0800</bug_when>
    <thetext>Comment on attachment 126468
Patch

This is great! Nice and simple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554957</commentid>
    <comment_count>14</comment_count>
      <attachid>126468</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-12 19:53:22 -0800</bug_when>
    <thetext>Comment on attachment 126468
Patch

Clearing flags on attachment: 126468

Committed r107524: &lt;http://trac.webkit.org/changeset/107524&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554958</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-12 19:53:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637311</commentid>
    <comment_count>16</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-30 09:39:21 -0700</bug_when>
    <thetext>If this is fixed, should we remove the check here: http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/dom/ShadowRoot.cpp&amp;exact_package=chromium&amp;q=allowsAuthorShadowRoot&amp;type=cs&amp;l=75</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126017</attachid>
            <date>2012-02-07 23:27:08 -0800</date>
            <delta_ts>2012-02-07 23:37:27 -0800</delta_ts>
            <desc>W.I.P.</desc>
            <filename>bug-77930-20120208162706.patch</filename>
            <type>text/plain</type>
            <size>15768</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ4NzgzZmM0NTAwMmM4
ZmEzMjQzY2FkZTE1NTI2Yjc3YTg1YWI3Ny4uMjhkOWZjMTA5OWMyMzA2NDcxNDRlNjdkZGRiZTZh
NDM0OGI5MjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAyLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSU5QVVQgc2hvdWxk
bid0IGNyZWF0ZSBTaGFkb3dSb290IGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAg
ICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6ZGVz
dHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVz
c2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbE11dGVC
dXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKwogMjAxMi0wMi0wNyAgRGF2aWQg
UmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUkVH
UkVTU0lPTihyMTAxODU0KTogQ2F1c2luZyBsYXJnZSBhbW91bnRzIG9mIHVubmVjZXNzYXJ5IHJl
cGFpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDA3MWNj
MzQxNmMxNjZmM2NjZDIwNDVmNzkxMDk3YjBmODdlNGE0MDcuLjk3MzE2ZDQ5OTcwZTIxMTA0ODE0
NzRlOTI2ZjQxMTI0YjQzZDU2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
Y3BwCkBAIC0xMDYsNiArMTA2LDggQEAgQ29sb3IgQ29sb3JJbnB1dFR5cGU6OnZhbHVlQXNDb2xv
cigpIGNvbnN0CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
eworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVt
ZW50PiB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIHdyYXBwZXJFbGVtZW50LT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1jb2xvci1zd2F0
Y2gtd3JhcHBlciIpOwpAQCAtMTE0LDcgKzExNiw3IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHdyYXBw
ZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaC5yZWxlYXNlKCksIGVjKTsKICAgICBB
U1NFUlQoIWVjKTsKLSAgICBlbGVtZW50KCktPmVuc3VyZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hp
bGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgZWxlbWVudCgpLT5zaGFkb3dS
b290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50LnJlbGVhc2UoKSwgZWMpOwogICAgIEFT
U0VSVCghZWMpOwogICAgIAogICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBlYTlhMmVlNjhmYjI1NDAwODgwZDVhMjNmZDhiNGZh
MzNiOTlhZDQ1Li5mYzFiZGMxMTUyOTNlZjE5YzM2ODE0MzkxMDZhZmJhN2ZjZTFmZTUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI2NSwxMyArMjY1LDE1IEBAIGJv
b2wgRmlsZUlucHV0VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29uc3QKIAogdm9pZCBGaWxlSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFk
b3dSb290KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGVsZW1lbnQoKS0+ZW5z
dXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxv
YWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkp
OiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSwgZWMp
OworICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11
bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50
KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5k
b2N1bWVudCgpKSwgZWMpOwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmli
dXRlQ2hhbmdlZCgpCiB7Ci0gICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGlj
X2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9vdCgp
LT5maXJzdENoaWxkKCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7Cisg
ICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9u
RWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogICAgIGlm
IChidXR0b24pCiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLT5tdWx0aXBsZSgp
ID8gZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29z
ZUZpbGVMYWJlbCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IGZjZWFhMzNiMjhlNjkzM2Q2ZDMwYWE0NTlmNjYyOTQ5ZWM5NWE2ZmQuLjA0ZmZkNzBi
ZTIwNzI4M2ExM2I4YmZmZDJkNWRjNDUyNDBmZmViMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVk
ZSAiU2VhcmNoSW5wdXRUeXBlLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUg
IlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTEwOCw2ICsxMDksOSBAQCBQYXNzUmVmUHRyPEhUTUxJ
bnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
eworICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBTaGFkb3dSb290OjpjcmVhdGUodGhp
cywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKICAgICBtX2lucHV0VHlwZS0+Y3JlYXRlU2hhZG93
U3VidHJlZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggOTc5ZmJmODM1
NTY3ZWE3YzVlMWQxZDQ5Mjc5ZDA4N2NlNjk2YjI5My4uMDI4NTNmZTI2MjdkYWE0ZDQ1YjVkOGNi
MzdhZDczNjVmMWM3ZmNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMzgwLDcg
KzM4MCwxNCBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQg
SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7CisjaWYgMAogICAgIGVsZW1lbnQo
KS0+cmVtb3ZlU2hhZG93Um9vdCgpOworI2Vsc2UKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9
IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgIHdoaWxlIChyb290LT5oYXNDaGls
ZE5vZGVzKCkpCisgICAgICAgICAgICByb290LT5yZW1vdmVDaGlsZChyb290LT5maXJzdENoaWxk
KCkpOworICAgIH0KKyNlbmRpZgogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91Ymxl
KGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGFjZmUxY2NhNTI0NzgzZjEyNTc3MDNmZTJmMTBi
M2NjMjNiYWYwMTQuLmZlM2MzYWFiMDYyOWVmYWZkYzQ2ZjdjMmEyOTE2YTU1YjM4OTVmZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yMzMsNiArMjMzLDggQEAg
dm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2
ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKKyAg
ICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworCiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4g
dHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0cmFjay0+c2V0
U2hhZG93UHNldWRvSWQoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIik7CkBAIC0yNDEs
NyArMjQzLDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAg
ICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVs
ZWFzZSgpLCBlYyk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dS
b290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50
KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOwog
fQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCAzZWMxNWJjZGVhMDU2ZTg0NTU5NzY5MTg4NGE0MTFj
OWFmOTA0ZTg5Li5iYmNmNTZjOTE4OTIxOWM2MDFmMTNlZGQ5MjMwNDA4ZGZmMDAyMjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0xODksNiArMTg5
LDggQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QKIAog
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogeworICAgIEFT
U0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisKICAgICBBU1NFUlQoIW1faW5uZXJUZXh0
KTsKICAgICBBU1NFUlQoIW1faW5uZXJCbG9jayk7CiAgICAgQVNTRVJUKCFtX2lubmVyU3BpbkJ1
dHRvbik7CkBAIC0yMDEsMTEgKzIwMywxMSBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgbV9pbm5l
clRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS0+ZW5zdXJlU2hh
ZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgZWMpOworICAgICAgICBlbGVtZW50
KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCkt
PmVuc3VyZVNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVu
dCgpLT5zaGFkb3dSb290KCk7CiAgICAgbV9jb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJr
aXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIik7CiAgICAgc2hhZG93Um9vdC0+YXBw
ZW5kQ2hpbGQobV9jb250YWluZXIsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9u
TWVzc2FnZS5jcHAKaW5kZXggYmMzYzQ1NDg5ZGZiODYyYTE0YmI0ZTUzMGU3MDRiOWE4Y2RjNjY4
Yy4uYzdmODUzYTE0NTNjMDI5ZWIwYTY1MjI1ZmE3N2I3ZDRiNGZiOGJlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTEzMSw2ICsxMzEsMTIgQEAgc3Rh
dGljIHZvaWQgYWRqdXN0QnViYmxlUG9zaXRpb24oY29uc3QgTGF5b3V0UmVjdCYgaG9zdFJlY3Qs
IEhUTUxFbGVtZW50KiBidWJibGUKIAogdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJi
bGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiB7CisjaWYgMQorICAgIC8vIE1heWJl
IGhvc3Qgc2hvdWxkIGhhdmUgYSBzaGFkb3cgcm9vdC4uLiwgSSdtIG5vdCBzdXJlLgorICAgIC8v
IEJ1dCBpZiB0aGUgaG9zdCBkb2Vzbid0IGhhdmUgYSBzaGFkb3cgcm9vdCwgcmVuZGVyaW5nIG1h
eSBiZSBjb3JydXB0LCBJIGd1ZXNzLgorICAgIEFTU0VSVCh0b0hUTUxFbGVtZW50KG1fZWxlbWVu
dCktPnNoYWRvd1Jvb3QoKSk7CisjZW5kaWYKKwogICAgIEhUTUxFbGVtZW50KiBob3N0ID0gdG9I
VE1MRWxlbWVudChtX2VsZW1lbnQpOwogICAgIERvY3VtZW50KiBkb2MgPSBob3N0LT5kb2N1bWVu
dCgpOwogICAgIG1fYnViYmxlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmlu
ZGV4IGU5MzJlNzNkMzhjOTlkODkzYThhZmE4ZWJkMzk2ZTNjY2I0Mjk5ODAuLmI2ZWM0NzUwZTcw
YWJmNjZjN2VjODg2MmQyYjViMGFmNzUyOWExMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQ5Myw2ICs0OTMsNyBA
QCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbgogICAgIEFTU0VSVChjb250cm9scyk7CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRS
ZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIGNvbnRy
b2xzKSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5z
ZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTUy
MSw2ICs1MjIsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdQogUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAg
UmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBidXR0b24g
PSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQo
ZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0
b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpA
QCAtNTQxLDYgKzU0Myw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvCiBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UGxheUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQbGF5
QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJl
ZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5y
ZWxlYXNlKCk7CiB9CkBAIC02NjAsNiArNjYzLDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFNlZWtG
b3J3YXJkQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW4K
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChk
b2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRv
bi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBA
IC02ODAsNiArNjg0LDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KERvY3UKIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3Jl
YXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAg
cmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC03MDAsNiArNzA1LDcgQEAgaW5saW5lIE1l
ZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVu
dD4gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoZG9jdW1l
bnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNl
dFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAtNzMw
LDYgKzczNiw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxl
bWVudDo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1CiBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudChk
b2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRv
bi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgYnV0dG9uLT5oaWRlKCk7CiAgICAgcmV0dXJuIGJ1
dHRvbi5yZWxlYXNlKCk7CkBAIC03NjAsNiArNzY3LDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2EKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50PiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1
dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9u
Iik7CiAgICAgYnV0dG9uLT5oaWRlKCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CkBA
IC04MDEsNiArODA5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+
IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKERvY3UKICAgICBBU1NFUlQoY29u
dHJvbHMpOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxp
bmUgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50KGRvY3VtZW50LCBj
b250cm9scykpOworICAgIHRpbWVsaW5lLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgdGlt
ZWxpbmUtPnNldFR5cGUoInJhbmdlIik7CiAgICAgdGltZWxpbmUtPnNldEF0dHJpYnV0ZShwcmVj
aXNpb25BdHRyLCAiZmxvYXQiKTsKICAgICByZXR1cm4gdGltZWxpbmUucmVsZWFzZSgpOwpAQCAt
ODY1LDYgKzg3NCw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50CiBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgc2xpZGVyLT5jcmVhdGVTaGFkb3dT
dWJ0cmVlKCk7CiAgICAgc2xpZGVyLT5zZXRUeXBlKCJyYW5nZSIpOwogICAgIHNsaWRlci0+c2V0
QXR0cmlidXRlKHByZWNpc2lvbkF0dHIsICJmbG9hdCIpOwogICAgIHNsaWRlci0+c2V0QXR0cmli
dXRlKG1heEF0dHIsICIxIik7CkBAIC05MTUsNiArOTI1LDcgQEAgaW5saW5lIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2wKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgc2xpZGVyLT5jcmVhdGVT
aGFkb3dTdWJ0cmVlKCk7CiAgICAgc2xpZGVyLT5zZXRUeXBlKCJyYW5nZSIpOwogICAgIHNsaWRl
ci0+c2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIsICJmbG9hdCIpOwogICAgIHNsaWRlci0+c2V0
QXR0cmlidXRlKG1heEF0dHIsICIxIik7CkBAIC05NDAsNiArOTUxLDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVl
bkJ1dHRvbkVsZW0KICAgICBBU1NFUlQoY29udHJvbHMpOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7CisgICAg
YnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0
b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsK
QEAgLTk4Myw2ICs5OTUsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1p
bkJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bQogUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25F
bGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZU1pbkJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0
b24ucmVsZWFzZSgpOwogfQpAQCAtMTAxMyw2ICsxMDI2LDcgQEAgaW5saW5lIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW0KIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0
dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24i
KTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126018</attachid>
            <date>2012-02-07 23:37:34 -0800</date>
            <delta_ts>2012-02-09 18:12:25 -0800</delta_ts>
            <desc>W.I.P.</desc>
            <filename>bug-77930-20120208163732.patch</filename>
            <type>text/plain</type>
            <size>15768</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ4NzgzZmM0NTAwMmM4
ZmEzMjQzY2FkZTE1NTI2Yjc3YTg1YWI3Ny4uMjhkOWZjMTA5OWMyMzA2NDcxNDRlNjdkZGRiZTZh
NDM0OGI5MjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAyLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSU5QVVQgc2hvdWxk
bid0IGNyZWF0ZSBTaGFkb3dSb290IGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAg
ICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6ZGVz
dHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVz
c2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbE11dGVC
dXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3Nl
ZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKwogMjAxMi0wMi0wNyAgRGF2aWQg
UmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUkVH
UkVTU0lPTihyMTAxODU0KTogQ2F1c2luZyBsYXJnZSBhbW91bnRzIG9mIHVubmVjZXNzYXJ5IHJl
cGFpbnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDA3MWNj
MzQxNmMxNjZmM2NjZDIwNDVmNzkxMDk3YjBmODdlNGE0MDcuLjk3MzE2ZDQ5OTcwZTIxMTA0ODE0
NzRlOTI2ZjQxMTI0YjQzZDU2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
Y3BwCkBAIC0xMDYsNiArMTA2LDggQEAgQ29sb3IgQ29sb3JJbnB1dFR5cGU6OnZhbHVlQXNDb2xv
cigpIGNvbnN0CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
eworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisKICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVt
ZW50PiB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgIHdyYXBwZXJFbGVtZW50LT5zZXRTaGFkb3dQc2V1ZG9JZCgiLXdlYmtpdC1jb2xvci1zd2F0
Y2gtd3JhcHBlciIpOwpAQCAtMTE0LDcgKzExNiw3IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHdyYXBw
ZXJFbGVtZW50LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaC5yZWxlYXNlKCksIGVjKTsKICAgICBB
U1NFUlQoIWVjKTsKLSAgICBlbGVtZW50KCktPmVuc3VyZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hp
bGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgpLCBlYyk7CisgICAgZWxlbWVudCgpLT5zaGFkb3dS
b290KCktPmFwcGVuZENoaWxkKHdyYXBwZXJFbGVtZW50LnJlbGVhc2UoKSwgZWMpOwogICAgIEFT
U0VSVCghZWMpOwogICAgIAogICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBlYTlhMmVlNjhmYjI1NDAwODgwZDVhMjNmZDhiNGZh
MzNiOTlhZDQ1Li5mYzFiZGMxMTUyOTNlZjE5YzM2ODE0MzkxMDZhZmJhN2ZjZTFmZTUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI2NSwxMyArMjY1LDE1IEBAIGJv
b2wgRmlsZUlucHV0VHlwZTo6aXNGaWxlVXBsb2FkKCkgY29uc3QKIAogdm9pZCBGaWxlSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFk
b3dSb290KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGVsZW1lbnQoKS0+ZW5z
dXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxv
YWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkp
OiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSwgZWMp
OworICAgIGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11
bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50
KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5k
b2N1bWVudCgpKSwgZWMpOwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmli
dXRlQ2hhbmdlZCgpCiB7Ci0gICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGlj
X2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9vdCgp
LT5maXJzdENoaWxkKCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7Cisg
ICAgVXBsb2FkQnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9u
RWxlbWVudCo+KGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogICAgIGlm
IChidXR0b24pCiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLT5tdWx0aXBsZSgp
ID8gZmlsZUJ1dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29z
ZUZpbGVMYWJlbCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CmluZGV4IGZjZWFhMzNiMjhlNjkzM2Q2ZDMwYWE0NTlmNjYyOTQ5ZWM5NWE2ZmQuLjA0ZmZkNzBi
ZTIwNzI4M2ExM2I4YmZmZDJkNWRjNDUyNDBmZmViMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVk
ZSAiU2VhcmNoSW5wdXRUeXBlLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUg
IlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTEwOCw2ICsxMDksOSBAQCBQYXNzUmVmUHRyPEhUTUxJ
bnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQog
eworICAgIEFTU0VSVCghc2hhZG93Um9vdCgpKTsKKyAgICBTaGFkb3dSb290OjpjcmVhdGUodGhp
cywgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKICAgICBtX2lucHV0VHlwZS0+Y3JlYXRlU2hhZG93
U3VidHJlZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggOTc5ZmJmODM1
NTY3ZWE3YzVlMWQxZDQ5Mjc5ZDA4N2NlNjk2YjI5My4uMDI4NTNmZTI2MjdkYWE0ZDQ1YjVkOGNi
MzdhZDczNjVmMWM3ZmNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMzgwLDcg
KzM4MCwxNCBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQg
SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7CisjaWYgMAogICAgIGVsZW1lbnQo
KS0+cmVtb3ZlU2hhZG93Um9vdCgpOworI2Vsc2UKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9
IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgIHdoaWxlIChyb290LT5oYXNDaGls
ZE5vZGVzKCkpCisgICAgICAgICAgICByb290LT5yZW1vdmVDaGlsZChyb290LT5maXJzdENoaWxk
KCkpOworICAgIH0KKyNlbmRpZgogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91Ymxl
KGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGFjZmUxY2NhNTI0NzgzZjEyNTc3MDNmZTJmMTBi
M2NjMjNiYWYwMTQuLmZlM2MzYWFiMDYyOWVmYWZkYzQ2ZjdjMmEyOTE2YTU1YjM4OTVmZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yMzMsNiArMjMzLDggQEAg
dm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2
ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKKyAg
ICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworCiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4g
dHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0cmFjay0+c2V0
U2hhZG93UHNldWRvSWQoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIik7CkBAIC0yNDEs
NyArMjQzLDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAg
ICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2sucmVs
ZWFzZSgpLCBlYyk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dS
b290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50
KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMpOwog
fQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCAzZWMxNWJjZGVhMDU2ZTg0NTU5NzY5MTg4NGE0MTFj
OWFmOTA0ZTg5Li5iYmNmNTZjOTE4OTIxOWM2MDFmMTNlZGQ5MjMwNDA4ZGZmMDAyMjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0xODksNiArMTg5
LDggQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QKIAog
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogeworICAgIEFT
U0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisKICAgICBBU1NFUlQoIW1faW5uZXJUZXh0
KTsKICAgICBBU1NFUlQoIW1faW5uZXJCbG9jayk7CiAgICAgQVNTRVJUKCFtX2lubmVyU3BpbkJ1
dHRvbik7CkBAIC0yMDEsMTEgKzIwMywxMSBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3Jl
YXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgbV9pbm5l
clRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS0+ZW5zdXJlU2hh
ZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgZWMpOworICAgICAgICBlbGVtZW50
KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCkt
PmVuc3VyZVNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVu
dCgpLT5zaGFkb3dSb290KCk7CiAgICAgbV9jb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hhZG93UHNldWRvSWQoIi13ZWJr
aXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIik7CiAgICAgc2hhZG93Um9vdC0+YXBw
ZW5kQ2hpbGQobV9jb250YWluZXIsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9u
TWVzc2FnZS5jcHAKaW5kZXggYmMzYzQ1NDg5ZGZiODYyYTE0YmI0ZTUzMGU3MDRiOWE4Y2RjNjY4
Yy4uNzZlMjQzZGY5N2U2NjhiMTk1NDAwNjg2M2ZiMTMxN2JmMWRhM2IwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTEzMSw2ICsxMzEsMTIgQEAgc3Rh
dGljIHZvaWQgYWRqdXN0QnViYmxlUG9zaXRpb24oY29uc3QgTGF5b3V0UmVjdCYgaG9zdFJlY3Qs
IEhUTUxFbGVtZW50KiBidWJibGUKIAogdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJi
bGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiB7CisjaWYgMAorICAgIC8vIE1heWJl
IGhvc3Qgc2hvdWxkIGhhdmUgYSBzaGFkb3cgcm9vdC4uLiwgSSdtIG5vdCBzdXJlLgorICAgIC8v
IEJ1dCBpZiB0aGUgaG9zdCBkb2Vzbid0IGhhdmUgYSBzaGFkb3cgcm9vdCwgcmVuZGVyaW5nIG1h
eSBiZSBjb3JydXB0LCBJIGd1ZXNzLgorICAgIEFTU0VSVCh0b0hUTUxFbGVtZW50KG1fZWxlbWVu
dCktPnNoYWRvd1Jvb3QoKSk7CisjZW5kaWYKKwogICAgIEhUTUxFbGVtZW50KiBob3N0ID0gdG9I
VE1MRWxlbWVudChtX2VsZW1lbnQpOwogICAgIERvY3VtZW50KiBkb2MgPSBob3N0LT5kb2N1bWVu
dCgpOwogICAgIG1fYnViYmxlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmlu
ZGV4IGU5MzJlNzNkMzhjOTlkODkzYThhZmE4ZWJkMzk2ZTNjY2I0Mjk5ODAuLmI2ZWM0NzUwZTcw
YWJmNjZjN2VjODg2MmQyYjViMGFmNzUyOWExMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQ5Myw2ICs0OTMsNyBA
QCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbgogICAgIEFTU0VSVChjb250cm9scyk7CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRS
ZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIGNvbnRy
b2xzKSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5z
ZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTUy
MSw2ICs1MjIsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdQogUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAg
UmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBidXR0b24g
PSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQo
ZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0
b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpA
QCAtNTQxLDYgKzU0Myw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvCiBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UGxheUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQbGF5
QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJl
ZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5y
ZWxlYXNlKCk7CiB9CkBAIC02NjAsNiArNjYzLDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFNlZWtG
b3J3YXJkQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW4K
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChk
b2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRv
bi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBA
IC02ODAsNiArNjg0LDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KERvY3UKIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3Jl
YXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAg
cmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC03MDAsNiArNzA1LDcgQEAgaW5saW5lIE1l
ZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVu
dD4gTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoZG9jdW1l
bnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNl
dFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAtNzMw
LDYgKzczNiw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxl
bWVudDo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1CiBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1Jl
YWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudChk
b2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRv
bi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgYnV0dG9uLT5oaWRlKCk7CiAgICAgcmV0dXJuIGJ1
dHRvbi5yZWxlYXNlKCk7CkBAIC03NjAsNiArNzY3LDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFRv
Z2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2EKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVt
ZW50PiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1
dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9u
Iik7CiAgICAgYnV0dG9uLT5oaWRlKCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CkBA
IC04MDEsNiArODA5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+
IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKERvY3UKICAgICBBU1NFUlQoY29u
dHJvbHMpOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxp
bmUgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50KGRvY3VtZW50LCBj
b250cm9scykpOworICAgIHRpbWVsaW5lLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgdGlt
ZWxpbmUtPnNldFR5cGUoInJhbmdlIik7CiAgICAgdGltZWxpbmUtPnNldEF0dHJpYnV0ZShwcmVj
aXNpb25BdHRyLCAiZmxvYXQiKTsKICAgICByZXR1cm4gdGltZWxpbmUucmVsZWFzZSgpOwpAQCAt
ODY1LDYgKzg3NCw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50CiBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgc2xpZGVyLT5jcmVhdGVTaGFkb3dT
dWJ0cmVlKCk7CiAgICAgc2xpZGVyLT5zZXRUeXBlKCJyYW5nZSIpOwogICAgIHNsaWRlci0+c2V0
QXR0cmlidXRlKHByZWNpc2lvbkF0dHIsICJmbG9hdCIpOwogICAgIHNsaWRlci0+c2V0QXR0cmli
dXRlKG1heEF0dHIsICIxIik7CkBAIC05MTUsNiArOTI1LDcgQEAgaW5saW5lIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2wKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CisgICAgc2xpZGVyLT5jcmVhdGVT
aGFkb3dTdWJ0cmVlKCk7CiAgICAgc2xpZGVyLT5zZXRUeXBlKCJyYW5nZSIpOwogICAgIHNsaWRl
ci0+c2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIsICJmbG9hdCIpOwogICAgIHNsaWRlci0+c2V0
QXR0cmlidXRlKG1heEF0dHIsICIxIik7CkBAIC05NDAsNiArOTUxLDcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVl
bkJ1dHRvbkVsZW0KICAgICBBU1NFUlQoY29udHJvbHMpOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7CisgICAg
YnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0
b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsK
QEAgLTk4Myw2ICs5OTUsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1p
bkJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bQogUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25F
bGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZU1pbkJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0
b24ucmVsZWFzZSgpOwogfQpAQCAtMTAxMyw2ICsxMDI2LDcgQEAgaW5saW5lIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW0KIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0
dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24i
KTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126420</attachid>
            <date>2012-02-09 18:12:32 -0800</date>
            <delta_ts>2012-02-09 22:18:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77930-20120210111231.patch</filename>
            <type>text/plain</type>
            <size>19031</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE5MzI0OWZkMzA2OTQ1
ODFmNjY1YTIwOWFkZDcyNTI3MTk5NTIyMi4uN2E2NjJkMDg4N2JkNzQ4MmZmNmRlMjM4ODIwYzc2
NTk4NjQzMDljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAyLTA5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSU5QVVQgc2hvdWxk
bid0IGNyZWF0ZSBTaGFkb3dSb290IGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGlucHV0IHR5cGUgaXMgY2hhbmdlZCwgU2hh
ZG93Um9vdCB3YXMgYmVpbmcgcmUtY3JlYXRlZC4gVGhpcyBtYWtlcyBpdCBkaWZmaWN1bHQgdG8K
KyAgICAgICAgc3VwcG9ydCBtdWx0aXBsZSBzaGFkb3cgc3VidHJlZXMuIFRoaXMgcGF0Y2ggbWFr
ZXMgaW5wdXQgbm90IHRvIHJlLWNyZWF0ZSBhIHNoYWRvdyByb290LAorICAgICAgICBhbmQgcmUt
dXNlIHRoZSBleGlzdGluZyBzaGFkb3cgcm9vdC4gQSBzaGFkb3cgcm9vdCBpcyBjcmVhdGVkIHdo
ZW4gYW4gZWxlbWVudCBpcyBjcmVhdGVkLgorCisgICAgICAgIE1lZGlhIGNvbnRyb2wgZWxlbWVu
dHMgYXJlIGltcGxlbWVudGVkIGlucHV0IGVsZW1lbnRzLiBUaGVzZSBlbGVtZW50cyBzaG91bGQg
YWxzbworICAgICAgICBjcmVhdGUgYSBzaGFkb3cgcm9vdCBpbiBpdHMgY29uc3RydWN0aW9uIHBo
YXNlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9jaGFu
Z2UuaHRtbAorICAgICAgICBUZXN0cyByZWxhdGVkIHRvIG1lZGlhIGNvbnRyb2xzIHNob3VsZCBi
ZSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHA6CisgICAgICAgICAgQ3JlYXRlcyBhIHNoYWRvdyB0cmVlIGluIHRoZSBj
b25zdHJ1Y3Rpb24gcGhhc2UuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKwogMjAxMi0wMi0wOSAgT2ph
biBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBUcmVlT3JkZXJJ
dGVyYXRvciBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBjaGlsZCBib3hlcyBkaXJlY3RseS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggMDcxY2MzNDE2YzE2NmYzY2NkMjA0
NWY3OTEwOTdiMGY4N2U0YTQwNy4uOTczMTZkNDk5NzBlMjExMDQ4MTQ3NGU5MjZmNDExMjRiNDNk
NTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNiw2ICsx
MDYsOCBAQCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKIAogdm9p
ZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CisgICAgQVNTRVJUKGVs
ZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1l
bnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHdyYXBwZXJFbGVt
ZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgd3JhcHBlckVsZW1l
bnQtPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIik7CkBA
IC0xMTQsNyArMTE2LDcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgd3JhcHBlckVsZW1lbnQtPmFwcGVu
ZENoaWxkKGNvbG9yU3dhdGNoLnJlbGVhc2UoKSwgZWMpOwogICAgIEFTU0VSVCghZWMpOwotICAg
IGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh3cmFwcGVyRWxlbWVu
dC5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hp
bGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgpLCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CiAgICAg
CiAgICAgdXBkYXRlQ29sb3JTd2F0Y2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCmluZGV4IGVhOWEyZWU2OGZiMjU0MDA4ODBkNWEyM2ZkOGI0ZmEzM2I5OWFkNDUuLmZjMWJk
YzExNTI5M2VmMTljMzY4MTQzOTEwNmFmYmE3ZmNlMWZlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcApAQCAtMjY1LDEzICsyNjUsMTUgQEAgYm9vbCBGaWxlSW5wdXRUeXBl
Ojppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKQogeworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dSb290KCkt
PmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7CisgICAgZWxlbWVudCgp
LT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9h
ZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6
IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7
CiB9CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkKIHsK
LSAgICBVcGxvYWRCdXR0b25FbGVtZW50KiBidXR0b24gPSBzdGF0aWNfY2FzdDxVcGxvYWRCdXR0
b25FbGVtZW50Kj4oZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBVcGxvYWRCdXR0b25F
bGVtZW50KiBidXR0b24gPSBzdGF0aWNfY2FzdDxVcGxvYWRCdXR0b25FbGVtZW50Kj4oZWxlbWVu
dCgpLT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAgICAgaWYgKGJ1dHRvbikKICAgICAg
ICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9uQ2hv
b3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggOTYwMDQwZmRk
MTljZTAyMjMwMzFkNWJiZTViZjcyZWVkNDZkMjRkMS4uZDlmOTUwZTBmZGZiYjU1YzFhNGI2YTBk
M2EzMzhkY2U0NTAzNGMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5
cGUuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgpAQCAtMTA4LDYgKzEwOSw5IEBAIFBhc3NSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gSFRN
TElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CisgICAgQVNTRVJUKCFz
aGFkb3dSb290KCkpOworICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpD
cmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04pOworCiAgICAg
bV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCmluZGV4IGYzNGU2ZWIzMmNmOWIxNTRkNmVhMzRhZTZkNTRlNDY0YjU3ZTkzMGUu
LjJjNGQxYjBkNmNkNjJkYmU5NjllZDM5NDkzZjE3MWI2MzM5MDg0NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKQEAgLTM3OCw3ICszNzgsMTAgQEAgdm9pZCBJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogCiB2b2lkIElucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUo
KQogewotICAgIGVsZW1lbnQoKS0+cmVtb3ZlU2hhZG93Um9vdCgpOworICAgIGlmIChTaGFkb3dS
b290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCkpIHsKKyAgICAgICAgd2hpbGUgKHJv
b3QtPmhhc0NoaWxkTm9kZXMoKSkKKyAgICAgICAgICAgIHJvb3QtPnJlbW92ZUNoaWxkKHJvb3Qt
PmZpcnN0Q2hpbGQoKSk7CisgICAgfQogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91
YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGFjZmUxY2NhNTI0NzgzZjEyNTc3MDNmZTJm
MTBiM2NjMjNiYWYwMTQuLmZlM2MzYWFiMDYyOWVmYWZkYzQ2ZjdjMmEyOTE2YTU1YjM4OTVmZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0yMzMsNiArMjMzLDgg
QEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQq
IGV2ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsK
KyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworCiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0cmFjay0+
c2V0U2hhZG93UHNldWRvSWQoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIik7CkBAIC0y
NDEsNyArMjQzLDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjb250YWluZXIgPSBTbGlkZXJDb250YWluZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodHJhY2su
cmVsZWFzZSgpLCBlYyk7CiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChUcmFja0xpbWl0ZXJF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpLCBlYyk7Ci0gICAgZWxlbWVudCgpLT5lbnN1cmVTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVt
ZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoY29udGFpbmVyLnJlbGVhc2UoKSwgZWMp
OwogfQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCAzZWMxNWJjZGVhMDU2ZTg0NTU5NzY5MTg4NGE0
MTFjOWFmOTA0ZTg5Li5iYmNmNTZjOTE4OTIxOWM2MDFmMTNlZGQ5MjMwNDA4ZGZmMDAyMjViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0xODksNiAr
MTg5LDggQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6Om5lZWRzQ29udGFpbmVyKCkgY29uc3QK
IAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogeworICAg
IEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CisKICAgICBBU1NFUlQoIW1faW5uZXJU
ZXh0KTsKICAgICBBU1NFUlQoIW1faW5uZXJCbG9jayk7CiAgICAgQVNTRVJUKCFtX2lubmVyU3Bp
bkJ1dHRvbik7CkBAIC0yMDEsMTEgKzIwMywxMSBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6
Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgbV9p
bm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7Ci0gICAgICAgIGVsZW1lbnQoKS0+ZW5zdXJl
U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgZWMpOworICAgICAgICBlbGVt
ZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSBlbGVtZW50
KCktPmVuc3VyZVNoYWRvd1Jvb3QoKTsKKyAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxl
bWVudCgpLT5zaGFkb3dSb290KCk7CiAgICAgbV9jb250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0U2hhZG93UHNldWRvSWQoIi13
ZWJraXQtdGV4dGZpZWxkLWRlY29yYXRpb24tY29udGFpbmVyIik7CiAgICAgc2hhZG93Um9vdC0+
YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCBlOTMyZTczZDM4Yzk5ZDg5
M2E4YWZhOGViZDM5NmUzY2NiNDI5OTgwLi5iNmVjNDc1MGU3MGFiZjY2YzdlYzg4NjJkMmI1YjBh
Zjc1MjlhMTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCkBAIC00OTMsNiArNDkzLDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25F
bGVtZW4KICAgICBBU1NFUlQoY29udHJvbHMpOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBh
bmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQ
YW5lbE11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50LCBjb250cm9scykpOworICAgIGJ1dHRvbi0+
Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAg
ICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC01MjEsNiArNTIyLDcgQEAgaW5saW5l
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnUKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0
ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50
OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0
dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24i
KTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTU0MSw2ICs1NDMsNyBAQCBp
bmxpbmUgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBsYXlCdXR0
b25FbGVtZW50KERvY3VtZW50KiBkbwogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9u
RWxlbWVudD4gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBi
dXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQoZG9jdW1l
bnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNl
dFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAtNjYw
LDYgKzY2Myw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVuCiBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0
b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIp
OwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAtNjgwLDYgKzY4NCw3IEBAIGlu
bGluZSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFNlZWtC
YWNrQnV0dG9uRWxlbWVudChEb2N1CiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0
dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsK
ICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFz
ZSgpOwogfQpAQCAtNzAwLDYgKzcwNSw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50KERvY3VtZW50CiBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFJld2lu
ZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5j
cmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAg
ICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTczMCw2ICs3MzYsNyBAQCBpbmxpbmUg
TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdQogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0
b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIp
OwogICAgIGJ1dHRvbi0+aGlkZSgpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwpAQCAt
NzYwLDYgKzc2Nyw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhCiBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVs
ZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0
aW9uc0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIGJ1dHRvbi0+aGlk
ZSgpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwpAQCAtODAxLDYgKzgwOSw3IEBAIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1CiAgICAgQVNTRVJUKGNvbnRyb2xzKTsKIAogICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gYWRvcHRSZWYobmV3IE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsKKyAgICB0aW1l
bGluZS0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIHRpbWVsaW5lLT5zZXRUeXBlKCJyYW5n
ZSIpOwogICAgIHRpbWVsaW5lLT5zZXRBdHRyaWJ1dGUocHJlY2lzaW9uQXR0ciwgImZsb2F0Iik7
CiAgICAgcmV0dXJuIHRpbWVsaW5lLnJlbGVhc2UoKTsKQEAgLTg2NSw2ICs4NzQsNyBAQCBpbmxp
bmUgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyRWxlbWVudChEb2N1bWVudAogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJF
bGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
PiBzbGlkZXIgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChk
b2N1bWVudCkpOworICAgIHNsaWRlci0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIHNsaWRl
ci0+c2V0VHlwZSgicmFuZ2UiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShwcmVjaXNpb25B
dHRyLCAiZmxvYXQiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShtYXhBdHRyLCAiMSIpOwpA
QCAtOTE1LDYgKzkyNSw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xp
ZGVyRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsCiBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IHNs
aWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxl
bWVudChkb2N1bWVudCkpOworICAgIHNsaWRlci0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAg
IHNsaWRlci0+c2V0VHlwZSgicmFuZ2UiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShwcmVj
aXNpb25BdHRyLCAiZmxvYXQiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShtYXhBdHRyLCAi
MSIpOwpAQCAtOTQwLDYgKzk1MSw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVl
bkJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtCiAgICAgQVNT
RVJUKGNvbnRyb2xzKTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9u
RWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0
b25FbGVtZW50KGRvY3VtZW50LCBjb250cm9scykpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93
U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgYnV0dG9uLT5o
aWRlKCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CkBAIC05ODMsNiArOTk1LDcgQEAg
aW5saW5lIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW0KIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5C
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRv
cHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KGRv
Y3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9u
LT5zZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAg
LTEwMTMsNiArMTAyNiw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtCiBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
TWF4QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRv
bi5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWZhNzg4YmQ2ZjNlNzk4NzE2ZmM2MDFiNGNjZTAwYmNi
ODRjMzE3Ni4uZjlhZjVlYzA5NjUwNGVhNDk1ZGUzYTgyZWM5MGFjYWYyMGRjOTg4YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTA5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgSU5QVVQgc2hvdWxkbid0IGNyZWF0ZSBTaGFkb3dSb290IGR5
bmFtaWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzc5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFbnN1cmVzIGNoZWFnaW5nIGlucHV0IHR5cGUgZG9lcyBub3QgY2F1c2Ugc2hhZG93IHJvb3Qg
cmVjcmVhdGlvbi4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9j
aGFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2lucHV0LXNoYWRv
dy1ub2NoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTAyLTA5ICBKdWxpZW4gQ2hh
ZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIEFub3RoZXIgdW5yZXZp
ZXdlZCBtYXNzaXZlIFNWRyByZWJhc2VsaW5lIChhbGwgb3VyIHdpbmRvd3MgYm90cyB0aGF0IEkg
bWlzc2VkKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC1z
aGFkb3ctbm9jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2lucHV0LXNoYWRvdy1ub2NoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk3NGZhNjM2
MDQ4N2M1MGZlMzI5ZDhmMDQ4ODI0ZWI5Y2QzZjNmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9jaGFuZ2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNTIgQEAKK1RoaXMgdGVzdCBjaGVja3MgaW5wdXQncyBzaGFkb3cgcm9vdCBp
cyBub3QgY2hhbmdlZCBpZiBpbnB1dCB0eXBlIGlzIGNoYW5nZWQuCisKK2hpZGRlbgorUEFTUyBu
ZXdTaGFkb3cgaXMgc2hhZG93Cit0ZXh0CitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK3NlYXJj
aAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Cit0ZWwKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRv
dwordXJsCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK2VtYWlsCitQQVNTIG5ld1NoYWRvdyBp
cyBzaGFkb3cKK3Bhc3N3b3JkCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK2RhdGV0aW1lCitQ
QVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK2RhdGUKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwor
bW9udGgKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdword2VlaworUEFTUyBuZXdTaGFkb3cgaXMg
c2hhZG93Cit0aW1lCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK2RhdGV0aW1lLWxvY2FsCitQ
QVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK251bWJlcgorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93
CityYW5nZQorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Citjb2xvcgorUEFTUyBuZXdTaGFkb3cg
aXMgc2hhZG93CitjaGVja2JveAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CityYWRpbworUEFT
UyBuZXdTaGFkb3cgaXMgc2hhZG93CitmaWxlCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK3N1
Ym1pdAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitpbWFnZQorUEFTUyBuZXdTaGFkb3cgaXMg
c2hhZG93CityZXNldAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitidXR0b24KK1BBU1MgbmV3
U2hhZG93IGlzIHNoYWRvdworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1
dC1zaGFkb3ctbm9jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1
dC1zaGFkb3ctbm9jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjQwNDZkNDFmMGE2NTFjNjdiZDA4
ZmE5N2MzZjBlZTFhNDE1YzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2lucHV0LXNoYWRvdy1ub2NoYW5nZS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgY2hlY2tzIGlucHV0J3Mgc2hhZG93IHJvb3QgaXMgbm90IGNoYW5nZWQgaWYgaW5wdXQg
dHlwZSBpcyBjaGFuZ2VkLjwvcD4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPGRpdiBpZD0i
Y29udGFpbmVyIj48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBjb250YWluZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisKK2Z1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBp
ZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB8fCAhd2luZG93LmludGVybmFscykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
CisgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKyAgICB2
YXIgaW5wdXRUeXBlcyA9IFsKKyAgICAgICAgImhpZGRlbiIsICJ0ZXh0IiwgInNlYXJjaCIsICJ0
ZWwiLCAidXJsIiwgImVtYWlsIiwgInBhc3N3b3JkIiwgImRhdGV0aW1lIiwKKyAgICAgICAgImRh
dGUiLCAibW9udGgiLCAid2VlayIsICJ0aW1lIiwgImRhdGV0aW1lLWxvY2FsIiwgIm51bWJlciIs
ICJyYW5nZSIsCisgICAgICAgICJjb2xvciIsICJjaGVja2JveCIsICJyYWRpbyIsICJmaWxlIiwg
InN1Ym1pdCIsICJpbWFnZSIsICJyZXNldCIsICJidXR0b24iCisgICAgXTsKKworICAgIHNoYWRv
dyA9IGludGVybmFscy5zaGFkb3dSb290KGlucHV0KTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGlucHV0VHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaW5wdXQudHlwZSA9IGlucHV0VHlw
ZXNbaV07CisKKyAgICAgICAgbmV3U2hhZG93ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QoaW5wdXQp
OworCisgICAgICAgIGRlYnVnKGlucHV0VHlwZXNbaV0pOworICAgICAgICBzaG91bGRCZSgibmV3
U2hhZG93IiwgInNoYWRvdyIpOworICAgIH0KK30KKworZG9UZXN0KCk7Cit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126453</attachid>
            <date>2012-02-09 22:18:21 -0800</date>
            <delta_ts>2012-02-10 00:05:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77930-20120210151819.patch</filename>
            <type>text/plain</type>
            <size>18963</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE5MzI0OWZkMzA2OTQ1
ODFmNjY1YTIwOWFkZDcyNTI3MTk5NTIyMi4uN2E2NjJkMDg4N2JkNzQ4MmZmNmRlMjM4ODIwYzc2
NTk4NjQzMDljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAyLTA5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSU5QVVQgc2hvdWxk
bid0IGNyZWF0ZSBTaGFkb3dSb290IGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGlucHV0IHR5cGUgaXMgY2hhbmdlZCwgU2hh
ZG93Um9vdCB3YXMgYmVpbmcgcmUtY3JlYXRlZC4gVGhpcyBtYWtlcyBpdCBkaWZmaWN1bHQgdG8K
KyAgICAgICAgc3VwcG9ydCBtdWx0aXBsZSBzaGFkb3cgc3VidHJlZXMuIFRoaXMgcGF0Y2ggbWFr
ZXMgaW5wdXQgbm90IHRvIHJlLWNyZWF0ZSBhIHNoYWRvdyByb290LAorICAgICAgICBhbmQgcmUt
dXNlIHRoZSBleGlzdGluZyBzaGFkb3cgcm9vdC4gQSBzaGFkb3cgcm9vdCBpcyBjcmVhdGVkIHdo
ZW4gYW4gZWxlbWVudCBpcyBjcmVhdGVkLgorCisgICAgICAgIE1lZGlhIGNvbnRyb2wgZWxlbWVu
dHMgYXJlIGltcGxlbWVudGVkIGlucHV0IGVsZW1lbnRzLiBUaGVzZSBlbGVtZW50cyBzaG91bGQg
YWxzbworICAgICAgICBjcmVhdGUgYSBzaGFkb3cgcm9vdCBpbiBpdHMgY29uc3RydWN0aW9uIHBo
YXNlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9jaGFu
Z2UuaHRtbAorICAgICAgICBUZXN0cyByZWxhdGVkIHRvIG1lZGlhIGNvbnRyb2xzIHNob3VsZCBi
ZSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBl
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHA6CisgICAgICAgICAgQ3JlYXRlcyBhIHNoYWRvdyB0cmVlIGluIHRoZSBj
b25zdHJ1Y3Rpb24gcGhhc2UuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKwogMjAxMi0wMi0wOSAgT2ph
biBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBUcmVlT3JkZXJJ
dGVyYXRvciBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBjaGlsZCBib3hlcyBkaXJlY3RseS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggMDcxY2MzNDE2YzE2NmYzY2NkMjA0
NWY3OTEwOTdiMGY4N2U0YTQwNy4uOTczMTZkNDk5NzBlMjExMDQ4MTQ3NGU5MjZmNDExMjRiNDNk
NTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNiw2ICsx
MDYsOCBAQCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKIAogdm9p
ZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CisgICAgQVNTRVJUKGVs
ZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1l
bnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHdyYXBwZXJFbGVt
ZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgd3JhcHBlckVsZW1l
bnQtPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LWNvbG9yLXN3YXRjaC13cmFwcGVyIik7CkBA
IC0xMTQsNyArMTE2LDcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgd3JhcHBlckVsZW1lbnQtPmFwcGVu
ZENoaWxkKGNvbG9yU3dhdGNoLnJlbGVhc2UoKSwgZWMpOwogICAgIEFTU0VSVCghZWMpOwotICAg
IGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh3cmFwcGVyRWxlbWVu
dC5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hp
bGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgpLCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CiAgICAg
CiAgICAgdXBkYXRlQ29sb3JTd2F0Y2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCmluZGV4IGVhOWEyZWU2OGZiMjU0MDA4ODBkNWEyM2ZkOGI0ZmEzM2I5OWFkNDUuLmZjMWJk
YzExNTI5M2VmMTljMzY4MTQzOTEwNmFmYmE3ZmNlMWZlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcApAQCAtMjY1LDEzICsyNjUsMTUgQEAgYm9vbCBGaWxlSW5wdXRUeXBl
Ojppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKQogeworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dSb290KCkt
PmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6
OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7CisgICAgZWxlbWVudCgp
LT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9h
ZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6
IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7
CiB9CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkKIHsK
LSAgICBVcGxvYWRCdXR0b25FbGVtZW50KiBidXR0b24gPSBzdGF0aWNfY2FzdDxVcGxvYWRCdXR0
b25FbGVtZW50Kj4oZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKyAgICBVcGxvYWRCdXR0b25F
bGVtZW50KiBidXR0b24gPSBzdGF0aWNfY2FzdDxVcGxvYWRCdXR0b25FbGVtZW50Kj4oZWxlbWVu
dCgpLT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAgICAgaWYgKGJ1dHRvbikKICAgICAg
ICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9uQ2hv
b3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggOTYwMDQwZmRk
MTljZTAyMjMwMzFkNWJiZTViZjcyZWVkNDZkMjRkMS4uZDlmOTUwZTBmZGZiYjU1YzFhNGI2YTBk
M2EzMzhkY2U0NTAzNGMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5
cGUuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgpAQCAtMTA4LDYgKzEwOSw5IEBAIFBhc3NSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gSFRN
TElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CisgICAgQVNTRVJUKCFz
aGFkb3dSb290KCkpOworICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpD
cmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04pOworCiAgICAg
bV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCmluZGV4IGYzNGU2ZWIzMmNmOWIxNTRkNmVhMzRhZTZkNTRlNDY0YjU3ZTkzMGUu
LmI3MjM5MmM5NzBiNzA3MGY5YzVhNGFjMzI2Y2RlODc2OWQyOWZlYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKQEAgLTM3OCw3ICszNzgsOCBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgp
CiB7Ci0gICAgZWxlbWVudCgpLT5yZW1vdmVTaGFkb3dSb290KCk7CisgICAgaWYgKFNoYWRvd1Jv
b3QqIHJvb3QgPSBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcm9vdC0+cmVtb3Zl
Q2hpbGRyZW4oKTsKIH0KIAogZG91YmxlIElucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBT
dHJpbmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmNwcAppbmRleCBhY2ZlMWNjYTUyNDc4M2YxMjU3NzAzZmUyZjEwYjNjYzIzYmFm
MDE0Li5mZTNjM2FhYjA2MjllZmFmZGM0NmY3YzJhMjkxNmE1NWIzODk1ZmU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMjMzLDYgKzIzMyw4IEBAIHZvaWQgUmFu
Z2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIAog
dm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CisgICAgQVNTRVJU
KGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHRyYWNrID0g
SFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgdHJhY2stPnNldFNoYWRvd1Bz
ZXVkb0lkKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayIpOwpAQCAtMjQxLDcgKzI0Myw3
IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIFJlZlB0
cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICBjb250YWluZXItPmFwcGVuZENoaWxkKHRyYWNrLnJlbGVhc2UoKSwg
ZWMpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoVHJhY2tMaW1pdGVyRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KSwgZWMpOwotICAgIGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9vdCgpLT5h
cHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBlYyk7CisgICAgZWxlbWVudCgpLT5zaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5yZWxlYXNlKCksIGVjKTsKIH0KIAogUmVu
ZGVyT2JqZWN0KiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFy
ZW5hLCBSZW5kZXJTdHlsZSopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAKaW5kZXggM2VjMTViY2RlYTA1NmU4NDU1OTc2OTE4ODRhNDExYzlhZjkwNGU4
OS4uYmJjZjU2YzkxODkyMTljNjAxZjEzZWRkOTIzMDQwOGRmZjAwMjI1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAtMTg5LDYgKzE4OSw4IEBAIGJv
b2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CiAKIHZvaWQgVGV4
dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKKyAgICBBU1NFUlQoZWxl
bWVudCgpLT5zaGFkb3dSb290KCkpOworCiAgICAgQVNTRVJUKCFtX2lubmVyVGV4dCk7CiAgICAg
QVNTRVJUKCFtX2lubmVyQmxvY2spOwogICAgIEFTU0VSVCghbV9pbm5lclNwaW5CdXR0b24pOwpA
QCAtMjAxLDExICsyMDMsMTEgQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIG1faW5uZXJUZXh0ID0g
VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGlmICgh
Y3JlYXRlc0NvbnRhaW5lcikgewotICAgICAgICBlbGVtZW50KCktPmVuc3VyZVNoYWRvd1Jvb3Qo
KS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsKKyAgICAgICAgZWxlbWVudCgpLT5zaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0LCBlYyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBTaGFkb3dSb290KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLT5lbnN1cmVT
aGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IGVsZW1lbnQoKS0+c2hh
ZG93Um9vdCgpOwogICAgIG1fY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgbV9jb250YWluZXItPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXRleHRm
aWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAgIHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxk
KG1fY29udGFpbmVyLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggZTkzMmU3M2QzOGM5OWQ4OTNhOGFmYThlYmQz
OTZlM2NjYjQyOTk4MC4uYjZlYzQ3NTBlNzBhYmY2NmM3ZWM4ODYyZDJiNWIwYWY3NTI5YTEyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcApAQCAtNDkzLDYgKzQ5Myw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVuCiAgICAg
QVNTRVJUKGNvbnRyb2xzKTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0
b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0
dG9uRWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRv
d1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBi
dXR0b24ucmVsZWFzZSgpOwogfQpAQCAtNTIxLDYgKzUyMiw3IEBAIGlubGluZSBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
TXV0ZUJ1CiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVt
ZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRl
U2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0
dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC01NDEsNiArNTQzLDcgQEAgaW5saW5lIE1lZGlh
Q29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChE
b2N1bWVudCogZG8KIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IE1l
ZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQog
ewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRv
cHRSZWYobmV3IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAg
YnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0
b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTY2MCw2ICs2NjMsNyBA
QCBpbmxpbmUgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRy
b2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbgogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9y
d2FyZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vl
a0ZvcndhcmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
U2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVT
aGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1
cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTY4MCw2ICs2ODQsNyBAQCBpbmxpbmUgTWVkaWFD
b250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVs
ZW1lbnQoRG9jdQogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+
IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBi
dXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KGRv
Y3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9u
LT5zZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAg
LTcwMCw2ICs3MDUsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChEb2N1bWVudAogUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xSZXdpbmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
UmV3aW5kQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93
U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1
dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC03MzAsNiArNzM2LDcgQEAgaW5saW5lIE1lZGlhQ29udHJv
bFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0
aW1lQnUKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1l
bnQ+IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJldHVy
blRvUmVhbHRpbWVCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVT
aGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICBidXR0
b24tPmhpZGUoKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKQEAgLTc2MCw2ICs3Njcs
NyBAQCBpbmxpbmUgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYQogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAg
ICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKICAgICBy
ZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKQEAgLTgwMSw2ICs4MDksNyBAQCBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50Ojpj
cmVhdGUoRG9jdQogICAgIEFTU0VSVChjb250cm9scyk7CiAKICAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7CisgICAgdGltZWxpbmUtPmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKTsKICAgICB0aW1lbGluZS0+c2V0VHlwZSgicmFuZ2UiKTsKICAgICB0
aW1lbGluZS0+c2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIsICJmbG9hdCIpOwogICAgIHJldHVy
biB0aW1lbGluZS5yZWxlYXNlKCk7CkBAIC04NjUsNiArODc0LDcgQEAgaW5saW5lIE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQo
RG9jdW1lbnQKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkK
IHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0g
YWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoZG9jdW1lbnQpKTsK
KyAgICBzbGlkZXItPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBzbGlkZXItPnNldFR5cGUo
InJhbmdlIik7CiAgICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUocHJlY2lzaW9uQXR0ciwgImZsb2F0
Iik7CiAgICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUobWF4QXR0ciwgIjEiKTsKQEAgLTkxNSw2ICs5
MjUsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbAogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9w
dFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoZG9jdW1l
bnQpKTsKKyAgICBzbGlkZXItPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBzbGlkZXItPnNl
dFR5cGUoInJhbmdlIik7CiAgICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUocHJlY2lzaW9uQXR0ciwg
ImZsb2F0Iik7CiAgICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUobWF4QXR0ciwgIjEiKTsKQEAgLTk0
MCw2ICs5NTEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVt
ZW50PiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbQogICAgIEFTU0VSVChjb250cm9s
cyk7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGJ1
dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChk
b2N1bWVudCwgY29udHJvbHMpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsK
ICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIGJ1dHRvbi0+aGlkZSgpOwogICAg
IHJldHVybiBidXR0b24ucmVsZWFzZSgpOwpAQCAtOTgzLDYgKzk5NSw3IEBAIGlubGluZSBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5C
dXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwor
ICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgi
YnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC0xMDEzLDYgKzEw
MjYsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1l
bnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bQogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAg
UmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVs
ZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAg
ICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgp
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDFmYTc4OGJkNmYzZTc5ODcxNmZjNjAxYjRjY2UwMGJjYjg0YzMxNzYuLmY5
YWY1ZWMwOTY1MDRlYTQ5NWRlM2E4MmVjOTBhY2FmMjBkYzk4OGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgor
CisgICAgICAgIElOUFVUIHNob3VsZG4ndCBjcmVhdGUgU2hhZG93Um9vdCBkeW5hbWljYWxseS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTMwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlcyBj
aGVhZ2luZyBpbnB1dCB0eXBlIGRvZXMgbm90IGNhdXNlIHNoYWRvdyByb290IHJlY3JlYXRpb24u
CisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9jaGFuZ2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0wMi0wOSAgSnVsaWVuIENoYWZmcmFpeCAgPGpj
aGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBBbm90aGVyIHVucmV2aWV3ZWQgbWFzc2l2
ZSBTVkcgcmViYXNlbGluZSAoYWxsIG91ciB3aW5kb3dzIGJvdHMgdGhhdCBJIG1pc3NlZCkuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hh
bmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFk
b3ctbm9jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NzRmYTYzNjA0ODdjNTBmZTMy
OWQ4ZjA0ODgyNGViOWNkM2YzZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUyIEBACitUaGlzIHRlc3QgY2hlY2tzIGlucHV0J3Mgc2hhZG93IHJvb3QgaXMgbm90IGNoYW5n
ZWQgaWYgaW5wdXQgdHlwZSBpcyBjaGFuZ2VkLgorCitoaWRkZW4KK1BBU1MgbmV3U2hhZG93IGlz
IHNoYWRvdwordGV4dAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitzZWFyY2gKK1BBU1MgbmV3
U2hhZG93IGlzIHNoYWRvdwordGVsCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK3VybAorUEFT
UyBuZXdTaGFkb3cgaXMgc2hhZG93CitlbWFpbAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93Citw
YXNzd29yZAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitkYXRldGltZQorUEFTUyBuZXdTaGFk
b3cgaXMgc2hhZG93CitkYXRlCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK21vbnRoCitQQVNT
IG5ld1NoYWRvdyBpcyBzaGFkb3cKK3dlZWsKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwordGlt
ZQorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitkYXRldGltZS1sb2NhbAorUEFTUyBuZXdTaGFk
b3cgaXMgc2hhZG93CitudW1iZXIKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworcmFuZ2UKK1BB
U1MgbmV3U2hhZG93IGlzIHNoYWRvdworY29sb3IKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwor
Y2hlY2tib3gKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworcmFkaW8KK1BBU1MgbmV3U2hhZG93
IGlzIHNoYWRvdworZmlsZQorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitzdWJtaXQKK1BBU1Mg
bmV3U2hhZG93IGlzIHNoYWRvdworaW1hZ2UKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworcmVz
ZXQKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworYnV0dG9uCitQQVNTIG5ld1NoYWRvdyBpcyBz
aGFkb3cKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5v
Y2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5v
Y2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI0MDQ2ZDQxZjBhNjUxYzY3YmQwOGZhOTdjM2YwZWUx
YTQxNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9p
bnB1dC1zaGFkb3ctbm9jaGFuZ2UuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGNoZWNr
cyBpbnB1dCdzIHNoYWRvdyByb290IGlzIG5vdCBjaGFuZ2VkIGlmIGlucHV0IHR5cGUgaXMgY2hh
bmdlZC48L3A+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+
PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnRhaW5lciIpOworCitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJldHVy
bjsKKworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBp
bnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisgICAgdmFyIGlucHV0VHlw
ZXMgPSBbCisgICAgICAgICJoaWRkZW4iLCAidGV4dCIsICJzZWFyY2giLCAidGVsIiwgInVybCIs
ICJlbWFpbCIsICJwYXNzd29yZCIsICJkYXRldGltZSIsCisgICAgICAgICJkYXRlIiwgIm1vbnRo
IiwgIndlZWsiLCAidGltZSIsICJkYXRldGltZS1sb2NhbCIsICJudW1iZXIiLCAicmFuZ2UiLAor
ICAgICAgICAiY29sb3IiLCAiY2hlY2tib3giLCAicmFkaW8iLCAiZmlsZSIsICJzdWJtaXQiLCAi
aW1hZ2UiLCAicmVzZXQiLCAiYnV0dG9uIgorICAgIF07CisKKyAgICBzaGFkb3cgPSBpbnRlcm5h
bHMuc2hhZG93Um9vdChpbnB1dCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dFR5cGVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlucHV0LnR5cGUgPSBpbnB1dFR5cGVzW2ldOworCisg
ICAgICAgIG5ld1NoYWRvdyA9IGludGVybmFscy5zaGFkb3dSb290KGlucHV0KTsKKworICAgICAg
ICBkZWJ1ZyhpbnB1dFR5cGVzW2ldKTsKKyAgICAgICAgc2hvdWxkQmUoIm5ld1NoYWRvdyIsICJz
aGFkb3ciKTsKKyAgICB9Cit9CisKK2RvVGVzdCgpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126468</attachid>
            <date>2012-02-10 00:05:56 -0800</date>
            <delta_ts>2012-02-12 19:53:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77930-20120210170553.patch</filename>
            <type>text/plain</type>
            <size>18987</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE5MzI0OWZkMzA2OTQ1
ODFmNjY1YTIwOWFkZDcyNTI3MTk5NTIyMi4uZWQ2MmQzZDg3NDgwYmY1MDFhZDU5MDIxYzM2Yzg2
M2JhNzBmZDhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAyLTA5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSU5QVVQgc2hvdWxk
bid0IGNyZWF0ZSBTaGFkb3dSb290IGR5bmFtaWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGlucHV0IHR5cGUgaXMgY2hhbmdlZCwgU2hh
ZG93Um9vdCB3YXMgYmVpbmcgcmUtY3JlYXRlZC4gVGhpcyBtYWtlcyBpdCBkaWZmaWN1bHQgdG8K
KyAgICAgICAgc3VwcG9ydCBtdWx0aXBsZSBzaGFkb3cgc3VidHJlZXMuIFRoaXMgcGF0Y2ggbWFr
ZXMgaW5wdXQgcmUtdXNlIHRoZSBleGlzdGluZyBzaGFkb3cgcm9vdAorICAgICAgICBpbnN0ZWFk
IG9mIHJlLWNyZWF0aW5nIGEgc2hhb3cgcm9vdC4gQSBzaGFkb3cgcm9vdCBzaG91bGQgYmUgY3Jl
YXRlZCB3aGVuIGFuIGVsZW1lbnQgaXMgY3JlYXRlZC4KKworICAgICAgICBTaW5jZSBtZWRpYSBj
b250cm9sIGVsZW1lbnRzIGFyZSBpbXBsZW1lbnRlZCB1c2luZyBpbnB1dCBlbGVtZW50cywgdGhl
c2UgZWxlbWVudHMgc2hvdWxkIGFsc28KKyAgICAgICAgY3JlYXRlIGEgc2hhZG93IHJvb3QgaW4g
dGhlaXIgY29uc3RydWN0aW9uIHBoYXNlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRv
dy9pbnB1dC1zaGFkb3ctbm9jaGFuZ2UuaHRtbAorICAgICAgICBUZXN0cyByZWxhdGVkIHRvIG1l
ZGlhIGNvbnRyb2xzIHNob3VsZCBiZSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpk
ZXN0cm95U2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgICAgQ3JlYXRlcyBh
IHNoYWRvdyB0cmVlIGluIHRoZSBjb25zdHJ1Y3Rpb24gcGhhc2UuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJld2lu
ZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVy
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5CdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRl
KToKKwogMjAxMi0wMi0wOSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBUcmVlT3JkZXJJdGVyYXRvciBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBjaGlsZCBi
b3hlcyBkaXJlY3RseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXgg
MDcxY2MzNDE2YzE2NmYzY2NkMjA0NWY3OTEwOTdiMGY4N2U0YTQwNy4uOTczMTZkNDk5NzBlMjEx
MDQ4MTQ3NGU5MjZmNDExMjRiNDNkNTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5jcHAKQEAgLTEwNiw2ICsxMDYsOCBAQCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVB
c0NvbG9yKCkgY29uc3QKIAogdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiB7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKwogICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8SFRNTERp
dkVsZW1lbnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgd3JhcHBlckVsZW1lbnQtPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LWNvbG9y
LXN3YXRjaC13cmFwcGVyIik7CkBAIC0xMTQsNyArMTE2LDcgQEAgdm9pZCBDb2xvcklucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
d3JhcHBlckVsZW1lbnQtPmFwcGVuZENoaWxkKGNvbG9yU3dhdGNoLnJlbGVhc2UoKSwgZWMpOwog
ICAgIEFTU0VSVCghZWMpOwotICAgIGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBl
bmRDaGlsZCh3cmFwcGVyRWxlbWVudC5yZWxlYXNlKCksIGVjKTsKKyAgICBlbGVtZW50KCktPnNo
YWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQod3JhcHBlckVsZW1lbnQucmVsZWFzZSgpLCBlYyk7CiAg
ICAgQVNTRVJUKCFlYyk7CiAgICAgCiAgICAgdXBkYXRlQ29sb3JTd2F0Y2goKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IGVhOWEyZWU2OGZiMjU0MDA4ODBkNWEyM2Zk
OGI0ZmEzM2I5OWFkNDUuLmZjMWJkYzExNTI5M2VmMTljMzY4MTQzOTEwNmFmYmE3ZmNlMWZlNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjY1LDEzICsyNjUsMTUg
QEAgYm9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogeworICAgIEFTU0VSVChlbGVtZW50KCkt
PnNoYWRvd1Jvb3QoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZWxlbWVudCgp
LT5lbnN1cmVTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/
IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9jdW1l
bnQoKSk6IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkp
LCBlYyk7CisgICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGVsZW1lbnQo
KS0+bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50
KCktPmRvY3VtZW50KCkpLCBlYyk7CiB9CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6bXVsdGlwbGVB
dHRyaWJ1dGVDaGFuZ2VkKCkKIHsKLSAgICBVcGxvYWRCdXR0b25FbGVtZW50KiBidXR0b24gPSBz
dGF0aWNfY2FzdDxVcGxvYWRCdXR0b25FbGVtZW50Kj4oZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dS
b290KCktPmZpcnN0Q2hpbGQoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgp
KTsKKyAgICBVcGxvYWRCdXR0b25FbGVtZW50KiBidXR0b24gPSBzdGF0aWNfY2FzdDxVcGxvYWRC
dXR0b25FbGVtZW50Kj4oZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAg
ICAgaWYgKGJ1dHRvbikKICAgICAgICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRp
cGxlKCkgPyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKaW5kZXggOTYwMDQwZmRkMTljZTAyMjMwMzFkNWJiZTViZjcyZWVkNDZkMjRkMS4uZDlm
OTUwZTBmZGZiYjU1YzFhNGI2YTBkM2EzMzhkY2U0NTAzNGMzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNp
bmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTA4LDYgKzEwOSw5IEBAIFBhc3NSZWZQdHI8
SFRNTElucHV0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hCiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiB7CisgICAgQVNTRVJUKCFzaGFkb3dSb290KCkpOworICAgIFNoYWRvd1Jvb3Q6OmNyZWF0
ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9O
T19FWENFUFRJT04pOworCiAgICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGYzNGU2ZWIzMmNmOWIxNTRkNmVh
MzRhZTZkNTRlNDY0YjU3ZTkzMGUuLjdjZWEwNTljMjFiNjRiZjBiYjYzZWNjNjU1OTJhODUyOWQz
MDllNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTM3OCw3ICszNzgsOCBAQCB2
b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpk
ZXN0cm95U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgZWxlbWVudCgpLT5yZW1vdmVTaGFkb3dSb290
KCk7CisgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSkK
KyAgICAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKIH0KIAogZG91YmxlIElucHV0VHlw
ZTo6cGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBhY2ZlMWNjYTUyNDc4
M2YxMjU3NzAzZmUyZjEwYjNjYzIzYmFmMDE0Li5mZTNjM2FhYjA2MjllZmFmZGM0NmY3YzJhMjkx
NmE1NWIzODk1ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAt
MjMzLDYgKzIzMyw4IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChL
ZXlib2FyZEV2ZW50KiBldmVudCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKKwogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8
SFRNTERpdkVsZW1lbnQ+IHRyYWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgdHJhY2stPnNldFNoYWRvd1BzZXVkb0lkKCItd2Via2l0LXNsaWRlci1ydW5uYWJsZS10
cmFjayIpOwpAQCAtMjQxLDcgKzI0Myw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY29udGFpbmVyID0gU2xpZGVy
Q29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250YWluZXItPmFwcGVu
ZENoaWxkKHRyYWNrLnJlbGVhc2UoKSwgZWMpOwogICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
VHJhY2tMaW1pdGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KSwgZWMpOwotICAgIGVsZW1lbnQo
KS0+ZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChjb250YWluZXIucmVsZWFzZSgpLCBl
Yyk7CisgICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGNvbnRhaW5lci5y
ZWxlYXNlKCksIGVjKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggM2VjMTViY2RlYTA1NmU4
NDU1OTc2OTE4ODRhNDExYzlhZjkwNGU4OS4uYmJjZjU2YzkxODkyMTljNjAxZjEzZWRkOTIzMDQw
OGRmZjAwMjI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cApAQCAtMTg5LDYgKzE4OSw4IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBlOjpuZWVkc0NvbnRh
aW5lcigpIGNvbnN0CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0
cmVlKCkKIHsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOworCiAgICAgQVNT
RVJUKCFtX2lubmVyVGV4dCk7CiAgICAgQVNTRVJUKCFtX2lubmVyQmxvY2spOwogICAgIEFTU0VS
VCghbV9pbm5lclNwaW5CdXR0b24pOwpAQCAtMjAxLDExICsyMDMsMTEgQEAgdm9pZCBUZXh0Rmll
bGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewotICAgICAgICBlbGVt
ZW50KCktPmVuc3VyZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9pbm5lclRleHQsIGVjKTsK
KyAgICAgICAgZWxlbWVudCgpLT5zaGFkb3dSb290KCktPmFwcGVuZENoaWxkKG1faW5uZXJUZXh0
LCBlYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTaGFkb3dSb290KiBzaGFkb3dS
b290ID0gZWxlbWVudCgpLT5lbnN1cmVTaGFkb3dSb290KCk7CisgICAgU2hhZG93Um9vdCogc2hh
ZG93Um9vdCA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOwogICAgIG1fY29udGFpbmVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgbV9jb250YWluZXItPnNldFNoYWRv
d1BzZXVkb0lkKCItd2Via2l0LXRleHRmaWVsZC1kZWNvcmF0aW9uLWNvbnRhaW5lciIpOwogICAg
IHNoYWRvd1Jvb3QtPmFwcGVuZENoaWxkKG1fY29udGFpbmVyLCBlYyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggZTkz
MmU3M2QzOGM5OWQ4OTNhOGFmYThlYmQzOTZlM2NjYjQyOTk4MC4uYjZlYzQ3NTBlNzBhYmY2NmM3
ZWM4ODYyZDJiNWIwYWY3NTI5YTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtNDkzLDYgKzQ5Myw3IEBAIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sUGFu
ZWxNdXRlQnV0dG9uRWxlbWVuCiAgICAgQVNTRVJUKGNvbnRyb2xzKTsKIAogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcg
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsK
KyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUo
ImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAtNTIxLDYgKzUy
Miw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1CiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0
UmVmKG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChkb2N1bWVu
dCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0
VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC01NDEs
NiArNTQzLDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCogZG8KIFBhc3NSZWZQdHI8TWVkaWFDb250
cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0
dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBsYXlCdXR0b25F
bGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAg
ICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2Uo
KTsKIH0KQEAgLTY2MCw2ICs2NjMsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRC
dXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbgogUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNl
ZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBh
ZG9wdFJlZihuZXcgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KGRvY3VtZW50
KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRU
eXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTY4MCw2
ICs2ODQsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpNZWRp
YUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdQogUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFk
b3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4g
YnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTcwMCw2ICs3MDUsNyBAQCBpbmxpbmUgTWVkaWFDb250
cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChE
b2N1bWVudAogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBNZWRp
YUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQog
ewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBh
ZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwor
ICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgi
YnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC03MzAsNiArNzM2
LDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpN
ZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnUKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV0
dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRS
ZWYobmV3IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50KGRvY3VtZW50
KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRU
eXBlKCJidXR0b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKICAgICByZXR1cm4gYnV0dG9uLnJl
bGVhc2UoKTsKQEAgLTc2MCw2ICs3NjcsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYQogUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IE1l
ZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2Fw
dGlvbnNCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5j
cmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAg
ICBidXR0b24tPmhpZGUoKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKQEAgLTgwMSw2
ICs4MDksNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gTWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoRG9jdQogICAgIEFTU0VSVChjb250cm9scyk7
CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IGFk
b3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xz
KSk7CisgICAgdGltZWxpbmUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICB0aW1lbGluZS0+
c2V0VHlwZSgicmFuZ2UiKTsKICAgICB0aW1lbGluZS0+c2V0QXR0cmlidXRlKHByZWNpc2lvbkF0
dHIsICJmbG9hdCIpOwogICAgIHJldHVybiB0aW1lbGluZS5yZWxlYXNlKCk7CkBAIC04NjUsNiAr
ODc0LDcgQEAgaW5saW5lIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoRG9jdW1lbnQKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyRWxlbWVudD4gc2xpZGVyID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBzbGlkZXItPmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KTsKICAgICBzbGlkZXItPnNldFR5cGUoInJhbmdlIik7CiAgICAgc2xpZGVyLT5zZXRBdHRyaWJ1
dGUocHJlY2lzaW9uQXR0ciwgImZsb2F0Iik7CiAgICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUobWF4
QXR0ciwgIjEiKTsKQEAgLTkxNSw2ICs5MjUsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbAog
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVk
aWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlk
ZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBzbGlkZXItPmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKTsKICAgICBzbGlkZXItPnNldFR5cGUoInJhbmdlIik7CiAgICAgc2xpZGVyLT5zZXRB
dHRyaWJ1dGUocHJlY2lzaW9uQXR0ciwgImZsb2F0Iik7CiAgICAgc2xpZGVyLT5zZXRBdHRyaWJ1
dGUobWF4QXR0ciwgIjEiKTsKQEAgLTk0MCw2ICs5NTEsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9u
RWxlbQogICAgIEFTU0VSVChjb250cm9scyk7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVs
bHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuQnV0dG9uRWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsKKyAgICBidXR0b24t
PmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwog
ICAgIGJ1dHRvbi0+aGlkZSgpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwpAQCAtOTgz
LDYgKzk5NSw3IEBAIGlubGluZSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9u
RWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtCiBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+
IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0
dG9uRWxlbWVudChkb2N1bWVudCkpOworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgp
OwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxl
YXNlKCk7CiB9CkBAIC0xMDEzLDYgKzEwMjYsNyBAQCBpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bQog
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4g
TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVNYXhCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAg
IHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFmYTc4OGJkNmYzZTc5ODcxNmZj
NjAxYjRjY2UwMGJjYjg0YzMxNzYuLmY5YWY1ZWMwOTY1MDRlYTQ5NWRlM2E4MmVjOTBhY2FmMjBk
Yzk4OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0wOSAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIElOUFVUIHNob3VsZG4ndCBjcmVhdGUg
U2hhZG93Um9vdCBkeW5hbWljYWxseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3OTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRW5zdXJlcyBjaGVhZ2luZyBpbnB1dCB0eXBlIGRvZXMgbm90IGNhdXNl
IHNoYWRvdyByb290IHJlY3JlYXRpb24uCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvaW5w
dXQtc2hhZG93LW5vY2hhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9pbnB1dC1zaGFkb3ctbm9jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMi0wMi0w
OSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBB
bm90aGVyIHVucmV2aWV3ZWQgbWFzc2l2ZSBTVkcgcmViYXNlbGluZSAoYWxsIG91ciB3aW5kb3dz
IGJvdHMgdGhhdCBJIG1pc3NlZCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk5NzRmYTYzNjA0ODdjNTBmZTMyOWQ4ZjA0ODgyNGViOWNkM2YzZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUyIEBACitUaGlzIHRlc3QgY2hlY2tzIGlucHV0J3Mg
c2hhZG93IHJvb3QgaXMgbm90IGNoYW5nZWQgaWYgaW5wdXQgdHlwZSBpcyBjaGFuZ2VkLgorCito
aWRkZW4KK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwordGV4dAorUEFTUyBuZXdTaGFkb3cgaXMg
c2hhZG93CitzZWFyY2gKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdwordGVsCitQQVNTIG5ld1No
YWRvdyBpcyBzaGFkb3cKK3VybAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitlbWFpbAorUEFT
UyBuZXdTaGFkb3cgaXMgc2hhZG93CitwYXNzd29yZAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93
CitkYXRldGltZQorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitkYXRlCitQQVNTIG5ld1NoYWRv
dyBpcyBzaGFkb3cKK21vbnRoCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK3dlZWsKK1BBU1Mg
bmV3U2hhZG93IGlzIHNoYWRvdwordGltZQorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitkYXRl
dGltZS1sb2NhbAorUEFTUyBuZXdTaGFkb3cgaXMgc2hhZG93CitudW1iZXIKK1BBU1MgbmV3U2hh
ZG93IGlzIHNoYWRvdworcmFuZ2UKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworY29sb3IKK1BB
U1MgbmV3U2hhZG93IGlzIHNoYWRvdworY2hlY2tib3gKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRv
dworcmFkaW8KK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworZmlsZQorUEFTUyBuZXdTaGFkb3cg
aXMgc2hhZG93CitzdWJtaXQKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworaW1hZ2UKK1BBU1Mg
bmV3U2hhZG93IGlzIHNoYWRvdworcmVzZXQKK1BBU1MgbmV3U2hhZG93IGlzIHNoYWRvdworYnV0
dG9uCitQQVNTIG5ld1NoYWRvdyBpcyBzaGFkb3cKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvaW5wdXQtc2hhZG93LW5vY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI0MDQ2ZDQx
ZjBhNjUxYzY3YmQwOGZhOTdjM2YwZWUxYTQxNWMzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9pbnB1dC1zaGFkb3ctbm9jaGFuZ2UuaHRtbApAQCAtMCww
ICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IGNoZWNrcyBpbnB1dCdzIHNoYWRvdyByb290IGlzIG5vdCBjaGFu
Z2VkIGlmIGlucHV0IHR5cGUgaXMgY2hhbmdlZC48L3A+Cis8cHJlIGlkPSJjb25zb2xlIj48L3By
ZT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgY29udGFpbmVy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworCitmdW5jdGlvbiBkb1Rl
c3QoKSB7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgIHJldHVybjsKKworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKworICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lu
cHV0Jyk7CisgICAgdmFyIGlucHV0VHlwZXMgPSBbCisgICAgICAgICJoaWRkZW4iLCAidGV4dCIs
ICJzZWFyY2giLCAidGVsIiwgInVybCIsICJlbWFpbCIsICJwYXNzd29yZCIsICJkYXRldGltZSIs
CisgICAgICAgICJkYXRlIiwgIm1vbnRoIiwgIndlZWsiLCAidGltZSIsICJkYXRldGltZS1sb2Nh
bCIsICJudW1iZXIiLCAicmFuZ2UiLAorICAgICAgICAiY29sb3IiLCAiY2hlY2tib3giLCAicmFk
aW8iLCAiZmlsZSIsICJzdWJtaXQiLCAiaW1hZ2UiLCAicmVzZXQiLCAiYnV0dG9uIgorICAgIF07
CisKKyAgICBzaGFkb3cgPSBpbnRlcm5hbHMuc2hhZG93Um9vdChpbnB1dCk7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBpbnB1dFR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlucHV0LnR5
cGUgPSBpbnB1dFR5cGVzW2ldOworCisgICAgICAgIG5ld1NoYWRvdyA9IGludGVybmFscy5zaGFk
b3dSb290KGlucHV0KTsKKworICAgICAgICBkZWJ1ZyhpbnB1dFR5cGVzW2ldKTsKKyAgICAgICAg
c2hvdWxkQmUoIm5ld1NoYWRvdyIsICJzaGFkb3ciKTsKKyAgICB9Cit9CisKK2RvVGVzdCgpOwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>