<?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>104707</bug_id>
          
          <creation_ts>2012-12-11 13:06:51 -0800</creation_ts>
          <short_desc>[Texmap] Remove lowp/highp indicators as they&apos;re not needed with ANGLE.</short_desc>
          <delta_ts>2012-12-12 17:33:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>788712</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 13:06:51 -0800</bug_when>
    <thetext>[Texmap] Remove lowp/highp indicators as they&apos;re not needed with ANGLE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788714</commentid>
    <comment_count>1</comment_count>
      <attachid>178859</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 13:08:13 -0800</bug_when>
    <thetext>Created attachment 178859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789182</commentid>
    <comment_count>2</comment_count>
      <attachid>178859</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 21:47:04 -0800</bug_when>
    <thetext>Comment on attachment 178859
Patch

Rejecting attachment 178859 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ed at 382 (offset 17 lines).
Hunk #17 succeeded at 395 (offset 17 lines).
Hunk #18 succeeded at 427 (offset 17 lines).
Hunk #19 succeeded at 461 (offset 17 lines).
Hunk #20 succeeded at 485 (offset 17 lines).
3 out of 20 hunks FAILED -- saving rejects to file Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Martin Rob...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/15285146</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789291</commentid>
    <comment_count>3</comment_count>
      <attachid>178987</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-12 00:23:10 -0800</bug_when>
    <thetext>Created attachment 178987
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789297</commentid>
    <comment_count>4</comment_count>
      <attachid>178987</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 00:35:53 -0800</bug_when>
    <thetext>Comment on attachment 178987
Patch for landing

Rejecting attachment 178987 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

/mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/15281404</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789796</commentid>
    <comment_count>5</comment_count>
      <attachid>179101</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-12 12:21:48 -0800</bug_when>
    <thetext>Created attachment 179101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789800</commentid>
    <comment_count>6</comment_count>
      <attachid>179101</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-12 12:25:29 -0800</bug_when>
    <thetext>Comment on attachment 179101
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +
&gt; +        lowp/highp indicator were needed for GLES2, but ANGLE does not require them.

What is the harm? I mean can you explain this better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789802</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-12 12:30:37 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 179101 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179101&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +
&gt; &gt; +        lowp/highp indicator were needed for GLES2, but ANGLE does not require them.
&gt; 
&gt; What is the harm? I mean can you explain this better?
It&apos;s code with very little benefit if any, that makes the shaders harder to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790110</commentid>
    <comment_count>8</comment_count>
      <attachid>179101</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 17:33:18 -0800</bug_when>
    <thetext>Comment on attachment 179101
Patch

Clearing flags on attachment: 179101

Committed r137545: &lt;http://trac.webkit.org/changeset/137545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790111</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 17:33:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178859</attachid>
            <date>2012-12-11 13:08:13 -0800</date>
            <delta_ts>2012-12-12 00:23:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104707-20121211130540.patch</filename>
            <type>text/plain</type>
            <size>16196</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU3MzI2ODkyMWUzNjNi
OTU1ZDQ4ZWY0NmNiMjg3NDFmMTUzZmMyOS4uYjcwODc5ZDdlODcwMWUxNDE5NjRmNGEyNjY5NjY5
ZWJkYjJkZDg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1RleG1hcF0gUmVtb3Zl
IGxvd3AvaGlnaHAgaW5kaWNhdG9ycyBhcyB0aGV5J3JlIG5vdCBuZWVkZWQgd2l0aCBBTkdMRS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGxvd3AvaGln
aHAgaW5kaWNhdG9yIHdlcmUgbmVlZGVkIGZvciBHTEVTMiwgYnV0IEFOR0xFIGRvZXMgbm90IHJl
cXVpcmUgdGhlbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFNoYWRlclNwZWMpOgorCisyMDEyLTEyLTExICBO
bydhbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKICAgICAgICAgW1RleG1hcF0gQ29u
c29saWRhdGUgcmVkdW5kYW50IGNvZGUgZm9yIEFSQl9SRUNUIHRleHR1cmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcAppbmRleCBmYTNhNzZkMzZiYmU4M2FkNTg3
MGRmYTIzOWZiNjk5ZWFjM2Q3ZjM5Li5mYjk2Njc1MjFjYjEwNTk1YzI2YzJlNzQ2YjZlMDI4Zjgz
YjFmODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKQEAg
LTEyNCwxNCArMTI0LDE0IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgICAgICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
c2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfbWFzazsKLSAgICAgICAg
ICAgIHVuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhp
Z2hwIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVj
MiB2X21hc2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2
YXJ5aW5nIHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJl
MkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKLSAgICAgICAgICAgICAgICBsb3dwIHZl
YzQgbWFza0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgdl9tYXNrVGV4Q29vcmQpOwotICAgICAg
ICAgICAgICAgIGxvd3AgZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xv
ci5hOworICAgICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkQoc19zYW1wbGVyLCB2
X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1
cmUyRChzX21hc2ssIHZfbWFza1RleENvb3JkKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBmcmFn
bWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0NvbG9yLmE7CiAgICAgICAgICAgICAgICAgZ2xf
RnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBmcmFnbWVudEFscGhhLCBjb2xvci5hICogZnJh
Z21lbnRBbHBoYSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICk7CkBAIC0xNDEsMTQgKzE0MSwx
NCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
OjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICAgICAgcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CiAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRFJlY3Qgc19zYW1wbGVyOwog
ICAgICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkRSZWN0IHNfbWFzazsKLSAgICAgICAgICAgIHVu
aWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZl
YzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X21h
c2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAg
ICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5n
IHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0
KHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0
IG1hc2tDb2xvciA9IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7Ci0gICAg
ICAgICAgICAgICAgbG93cCBmbG9hdCBmcmFnbWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0Nv
bG9yLmE7CisgICAgICAgICAgICAgICAgdmVjNCBjb2xvciA9IHRleHR1cmUyRFJlY3Qoc19zYW1w
bGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9
IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7CisgICAgICAgICAgICAgICAg
ZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xvci5hOwogICAgICAgICAg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IucmdiICogZnJhZ21lbnRBbHBoYSwgY29s
b3IuYSAqIGZyYWdtZW50QWxwaGEpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTU2
LDExICsxNTYsMTEgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogdmVydGV4T3BhY2l0eUFuZE1hc2sgPQogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAg
ICAgICB1bmlmb3JtIG1hdDQgdV9tYXRyaXg7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxv
YXQgdV9mbGlwOwotICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzIgdV90ZXh0dXJlU2l6ZTsK
KyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9mbGlwOworICAgICAgICAgICAgdW5pZm9ybSB2
ZWMyIHVfdGV4dHVyZVNpemU7CiAgICAgICAgICAgICBhdHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOwotICAgICAg
ICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfbWFza1RleENvb3JkOworICAgICAgICAgICAgdmFy
eWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl9t
YXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRleC54LCBtaXgo
YV92ZXJ0ZXgueSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKSAqIHVfdGV4dHVyZVNpemU7CkBA
IC0xNzMsMTEgKzE3MywxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBTVFJJ
TkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAg
IHVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCBm
bG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VU
ZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAgICAg
ICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4o
dm9pZCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0
ZXh0dXJlMkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2
ZWM0IGNvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7CiAgICAg
ICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiB1X29wYWNpdHksIGNv
bG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTg2LDgg
KzE4Niw4IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1h
bmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAg
ICAgICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwogICAgICAgICAgICAgdW5pZm9ybSBz
YW1wbGVyMkQgc19zYW1wbGVyOwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfc291
cmNlVGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1
bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsKICAgICAgICAgICAgIHVuaWZvcm0gdmVjMyB1X2V4cGFu
ZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVs4XTsKICAgICAgICAgICAgIHZvaWQgbWFpbigpCiAg
ICAgICAgICAgICB7CkBAIC0yMjUsMTEgKzIyNSwxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJT
cGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZl
cgogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9h
dDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEUmVjdCBzX3NhbXBsZXI7Ci0gICAgICAg
ICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5OwotICAgICAgICAgICAgdmFyeWluZyBo
aWdocCB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVf
b3BhY2l0eTsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAg
ICAgICAgICAgdm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
bG93cCB2ZWM0IGNvbG9yID0gdGV4dHVyZTJEUmVjdChzX3NhbXBsZXIsIHZfc291cmNlVGV4Q29v
cmQpOworICAgICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNfc2FtcGxl
ciwgdl9zb3VyY2VUZXhDb29yZCk7CiAgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVj
NChjb2xvci5yZ2IgKiB1X29wYWNpdHksIGNvbG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAg
ICAgfQogICAgICAgICApOwpAQCAtMjM3LDEwICsyMzcsMTAgQEAgc3RhdGljIHZvaWQgZ2V0U2hh
ZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5n
JiB2ZXIKICAgICBzdGF0aWMgY29uc3QgY2hhciogdmVydGV4U2ltcGxlID0KICAgICAgICAgU1RS
SU5HSUZZKAogICAgICAgICAgICAgdW5pZm9ybSBtYXQ0IHVfbWF0cml4OwotICAgICAgICAgICAg
dW5pZm9ybSBsb3dwIGZsb2F0IHVfZmxpcDsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCB2ZWMy
IHVfdGV4dHVyZVNpemU7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZmxpcDsKKyAgICAg
ICAgICAgIHVuaWZvcm0gdmVjMiB1X3RleHR1cmVTaXplOwogICAgICAgICAgICAgYXR0cmlidXRl
IHZlYzQgYV92ZXJ0ZXg7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VU
ZXhDb29yZDsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAg
ICAgICAgICAgdm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
dl9zb3VyY2VUZXhDb29yZCA9IHZlYzIoYV92ZXJ0ZXgueCwgbWl4KGFfdmVydGV4LnksIDEuIC0g
YV92ZXJ0ZXgueSwgdV9mbGlwKSkgKiB1X3RleHR1cmVTaXplOwpAQCAtMjczLDcgKzI3Myw3IEBA
IHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNo
YWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAg
IGF0dHJpYnV0ZSB2ZWM0IGFfdmVydGV4OwogICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV90
ZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOworICAg
ICAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4o
dm9pZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2X3RleENvb3JkID0gdmVjMihh
X3RleENvb3JkKTsKQEAgLTI4MywxNiArMjgzLDE2IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNw
ZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVy
CiAKICNkZWZpbmUgU1RBTkRBUkRfRklMVEVSKC4uLikgXAogICAgICAgICAicHJlY2lzaW9uIG1l
ZGl1bXAgZmxvYXQ7XG4iXAotICAgICAgICAidmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7
XG4iXAotICAgICAgICAidW5pZm9ybSBoaWdocCBmbG9hdCB1X2Ftb3VudDtcbiJcCisgICAgICAg
ICJ2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDtcbiJcCisgICAgICAgICJ1bmlmb3JtIGZsb2F0IHVf
YW1vdW50O1xuIlwKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjtcbiIjX19W
QV9BUkdTX18gXAogICAgICAgICAidm9pZCBtYWluKHZvaWQpXG4geyBnbF9GcmFnQ29sb3IgPSBz
aGFkZSh0ZXh0dXJlMkQoc19zYW1wbGVyLCB2X3RleENvb3JkKSk7IH0iCiAKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogZnJhZ21lbnRHcmF5c2NhbGVGaWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9G
SUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9yKQorICAg
ICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAgICAgICAg
ICAgICAgICBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdmVjNCgoMC4yMTI2ICsgMC43ODc0ICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC43MTUy
IC0gMC43MTUyICogYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4wNzIyIC0gMC4wNzIyICogYW1vdW50
KSAqIGNvbG9yLmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMjEyNiAtIDAuMjEy
NiAqIGFtb3VudCkgKiBjb2xvci5yICsgKDAuNzE1MiArIDAuMjg0OCAqIGFtb3VudCkgKiBjb2xv
ci5nICsgKDAuMDcyMiAtIDAuMDcyMiAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgwLjIxMjYgLSAwLjIxMjYgKiBhbW91bnQpICogY29sb3IuciArICgw
LjcxNTIgLSAwLjcxNTIgKiBhbW91bnQpICogY29sb3IuZyArICgwLjA3MjIgKyAwLjkyNzggKiBh
bW91bnQpICogY29sb3IuYiwKQEAgLTMwMiw5ICszMDIsOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFk
ZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcm
IHZlcgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2VwaWFGaWx0ZXIgPQogICAg
ICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2
ZWM0IGNvbG9yKQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ft
b3VudDsKKyAgICAgICAgICAgICAgICBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdmVjNCgoMC4zOTMgKyAwLjYwNyAqIGFtb3VudCkgKiBjb2xv
ci5yICsgKDAuNzY5IC0gMC43NjkgKiBhbW91bnQpICogY29sb3IuZyArICgwLjE4OSAtIDAuMTg5
ICogYW1vdW50KSAqIGNvbG9yLmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMzQ5
IC0gMC4zNDkgKiBhbW91bnQpICogY29sb3IuciArICgwLjY4NiArIDAuMzE0ICogYW1vdW50KSAq
IGNvbG9yLmcgKyAoMC4xNjggLSAwLjE2OCAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgwLjI3MiAtIDAuMjcyICogYW1vdW50KSAqIGNvbG9yLnIgKyAo
MC41MzQgLSAwLjUzNCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAuMTMxICsgMC44NjkgKiBhbW91
bnQpICogY29sb3IuYiwKQEAgLTMxNCw3ICszMTQsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJT
cGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZl
cgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2F0dXJhdGVGaWx0ZXIgPQogICAg
ICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2
ZWM0IGNvbG9yKQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoKDAuMjEzICsgMC43ODcgKiB1
X2Ftb3VudCkgKiBjb2xvci5yICsgKDAuNzE1IC0gMC43MTUgKiB1X2Ftb3VudCkgKiBjb2xvci5n
ICsgKDAuMDcyIC0gMC4wNzIgKiB1X2Ftb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgwLjIxMyAtIDAuMjEzICogdV9hbW91bnQpICogY29sb3IuciArICgwLjcx
NSArIDAuMjg1ICogdV9hbW91bnQpICogY29sb3IuZyArICgwLjA3MiAtIDAuMDcyICogdV9hbW91
bnQpICogY29sb3IuYiwKQEAgLTMyNSwxMSArMzI1LDExIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRl
clNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYg
dmVyCiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRIdWVSb3RhdGVGaWx0ZXIgPQog
ICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93
cCB2ZWM0IGNvbG9yKQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaGlnaHAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1
MzU4OTc5MzIzODQ2OwotICAgICAgICAgICAgICAgIGhpZ2hwIGZsb2F0IGMgPSBjb3ModV9hbW91
bnQgKiBwaSAvIDE4MC4wKTsKLSAgICAgICAgICAgICAgICBoaWdocCBmbG9hdCBzID0gc2luKHVf
YW1vdW50ICogcGkgLyAxODAuMCk7CisgICAgICAgICAgICAgICAgZmxvYXQgcGkgPSAzLjE0MTU5
MjY1MzU4OTc5MzIzODQ2OworICAgICAgICAgICAgICAgIGZsb2F0IGMgPSBjb3ModV9hbW91bnQg
KiBwaSAvIDE4MC4wKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBzID0gc2luKHVfYW1vdW50ICog
cGkgLyAxODAuMCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoY29sb3IuciAqICgwLjIx
MyArIGMgKiAwLjc4NyAtIHMgKiAwLjIxMykgKyBjb2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1
IC0gcyAqIDAuNzE1KSArIGNvbG9yLmIgKiAoMC4wNzIgLSBjICogMC4wNzIgKyBzICogMC45Mjgp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnIgKiAoMC4yMTMgLSBjICogMC4y
MTMgKyBzICogMC4xNDMpICsgY29sb3IuZyAqICgwLjcxNSArIGMgKiAwLjI4NSArIHMgKiAwLjE0
MCkgKyBjb2xvci5iICogKDAuMDcyIC0gYyAqIDAuMDcyIC0gcyAqIDAuMjgzKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb2xvci5yICogKDAuMjEzIC0gYyAqIDAuMjEzIC0gcyAqIDAu
Nzg3KSArICBjb2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1ICsgcyAqIDAuNzE1KSArIGNvbG9y
LmIgKiAoMC4wNzIgKyBjICogMC45MjggKyBzICogMC4wNzIpLApAQCAtMzM5LDggKzMzOSw4IEBA
IHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNo
YWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21l
bnRJbnZlcnRGaWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBs
b3dwIGZsb2F0IGludmVydChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuICgxLjAgLSBuKSAqIHVfYW1v
dW50ICsgbiAqICgxLjAgLSB1X2Ftb3VudCk7IH0KLSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFk
ZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICBmbG9hdCBpbnZlcnQobG93cCBmbG9hdCBu
KSB7IHJldHVybiAoMS4wIC0gbikgKiB1X2Ftb3VudCArIG4gKiAoMS4wIC0gdV9hbW91bnQpOyB9
CisgICAgICAgICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdmVjNChpbnZlcnQoY29sb3IuciksIGludmVydChjb2xv
ci5nKSwgaW52ZXJ0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAgIH0KQEAgLTM0OCw3
ICszNDgsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJN
YW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGZyYWdtZW50QnJpZ2h0bmVzc0ZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJEX0ZJTFRFUigK
LSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAg
ICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdmVjNChjb2xvci5yZ2IgKiAoMS4wICsgdV9hbW91bnQpLCBjb2xvci5hKTsK
ICAgICAgICAgICAgIH0KQEAgLTM1Niw4ICszNTYsOCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJT
cGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZl
cgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50Q29udHJhc3RGaWx0ZXIgPQogICAg
ICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIGZsb2F0IGNvbnRyYXN0KGxv
d3AgZmxvYXQgbikgeyByZXR1cm4gKG4gLSAwLjUpICogdV9hbW91bnQgKyAwLjU7IH0KLSAgICAg
ICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICBmbG9h
dCBjb250cmFzdChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuIChuIC0gMC41KSAqIHVfYW1vdW50ICsg
MC41OyB9CisgICAgICAgICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICByZXR1cm4gdmVjNChjb250cmFzdChjb2xvci5yKSwgY29u
dHJhc3QoY29sb3IuZyksIGNvbnRyYXN0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAg
IH0KQEAgLTM2NSw3ICszNjUsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVN
YXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGZyYWdtZW50T3BhY2l0eUZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJE
X0ZJTFRFUigKLSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisg
ICAgICAgICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdmVjNChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCBjb2xv
ci5hICogdV9hbW91bnQpOwogICAgICAgICAgICAgfQpAQCAtMzc4LDEyICszNzgsMTIgQEAgc3Rh
dGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVy
S2V5IGtleSwgU3RyaW5nJiB2ZXIKICAgICAgICAgU1RSSU5HSUZZKAogICAgICAgICAgICAgLy8g
Q3JlYXRlIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiAyMSB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQg
Mi4KICAgICAgICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotICAgICAgICAgICAgdmFy
eWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVj
MiB1X2JsdXJSYWRpdXM7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsKKyAg
ICAgICAgICAgIHVuaWZvcm0gdmVjMiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICB1bmlmb3Jt
IHNhbXBsZXIyRCBzX3NhbXBsZXI7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3Np
YW5LZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBsb3dw
IHZlYzQgc2FtcGxlQ29sb3IoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgdmVjNCBzYW1wbGVD
b2xvcihmbG9hdCByYWRpdXMpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmVjMiBj
b29yZCA9IHZfdGV4Q29vcmQgKyByYWRpdXMgKiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKSAqIGZsb2F0KGNvb3JkLnggPiAw
LiAmJiBjb29yZC55ID4gMC4gJiYgY29vcmQueCA8IDEuICYmIGNvb3JkLnkgPCAxLik7CkBAIC00
MTAsMTkgKzQxMCwxOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBCTFVSX0NP
TlNUQU5UUwogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVt
cCBmbG9hdDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOwotICAg
ICAgICAgICAgdW5pZm9ybSBsb3dwIGZsb2F0IHVfYmx1clJhZGl1czsKLSAgICAgICAgICAgIHVu
aWZvcm0gbG93cCB2ZWMyIHVfc2hhZG93T2Zmc2V0OworICAgICAgICAgICAgdmFyeWluZyB2ZWMy
IHZfdGV4Q29vcmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfYmx1clJhZGl1czsKKyAg
ICAgICAgICAgIHVuaWZvcm0gdmVjMiB1X3NoYWRvd09mZnNldDsKICAgICAgICAgICAgIHVuaWZv
cm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVz
c2lhbktlcm5lbFtHQVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSF07CiAKLSAgICAgICAgICAgIGxv
d3AgZmxvYXQgc2FtcGxlQWxwaGEoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgZmxvYXQgc2Ft
cGxlQWxwaGEoZmxvYXQgcmFkaXVzKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZl
YzIgY29vcmQgPSB2X3RleENvb3JkIC0gdV9zaGFkb3dPZmZzZXQgKyB2ZWMyKHJhZGl1cyAqIHVf
Ymx1clJhZGl1cywgMC4pOwogICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlMkQoc19zYW1w
bGVyLCBjb29yZCkuYSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29yZC55ID4gMC4gJiYgY29v
cmQueCA8IDEuICYmIGNvb3JkLnkgPCAxLik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGxvd3AgZmxvYXQgc2hhZG93Qmx1ckhvcml6b250YWwoKQorICAgICAgICAgICAgZmxvYXQgc2hh
ZG93Qmx1ckhvcml6b250YWwoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGZsb2F0
IHRvdGFsID0gc2FtcGxlQWxwaGEoMC4pICogdV9nYXVzc2lhbktlcm5lbFswXTsKICAgICAgICAg
ICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyBp
KyspIHsKQEAgLTQ0NCwyMCArNDQ0LDIwIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAg
ICAgIEJMVVJfQ09OU1RBTlRTCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIHByZWNp
c2lvbiBtZWRpdW1wIGZsb2F0OwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4
Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9ibHVyUmFkaXVzOwotICAg
ICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzQgdV9zaGFkb3dDb2xvcjsKKyAgICAgICAgICAgIHZh
cnlpbmcgdmVjMiB2X3RleENvb3JkOworICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2JsdXJS
YWRpdXM7CisgICAgICAgICAgICB1bmlmb3JtIHZlYzQgdV9zaGFkb3dDb2xvcjsKICAgICAgICAg
ICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2Ft
cGxlcjJEIHNfY29udGVudFRleHR1cmU7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1
c3NpYW5LZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBs
b3dwIGZsb2F0IHNhbXBsZUFscGhhKGZsb2F0IHIpCisgICAgICAgICAgICBmbG9hdCBzYW1wbGVB
bHBoYShmbG9hdCByKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZlYzIgY29vcmQg
PSB2X3RleENvb3JkICsgdmVjMigwLiwgciAqIHVfYmx1clJhZGl1cyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKS5hICogZmxvYXQoY29vcmQueCA+
IDAuICYmIGNvb3JkLnkgPiAwLiAmJiBjb29yZC54IDwgMS4gJiYgY29vcmQueSA8IDEuKTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgbG93cCBmbG9hdCBzaGFkb3dCbHVyVmVydGljYWwo
KQorICAgICAgICAgICAgZmxvYXQgc2hhZG93Qmx1clZlcnRpY2FsKCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDAuKSAqIHVfZ2F1c3Np
YW5LZXJuZWxbMF07CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBHQVVTU0lB
Tl9LRVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CkBAIC00NjgsNyArNDY4LDcgQEAgc3RhdGljIHZv
aWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtl
eSwgU3RyaW5nJiB2ZXIKICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWw7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGxvd3AgdmVjNCBzb3VyY2VPdmVyKGxvd3AgdmVjNCBzb3VyY2Us
IGxvd3AgdmVjNCBkZXN0aW5hdGlvbikKKyAgICAgICAgICAgIHZlYzQgc291cmNlT3Zlcihsb3dw
IHZlYzQgc291cmNlLCB2ZWM0IGRlc3RpbmF0aW9uKQogICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgIC8vIENvbXBvc2l0ZSB0aGUgc2hhZG93IHdpdGggdGhlIG9yaWdpbmFsIHRleHR1cmUu
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZSArIGRlc3RpbmF0aW9uICogKDEuIC0gc291
cmNlLmEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178987</attachid>
            <date>2012-12-12 00:23:10 -0800</date>
            <delta_ts>2012-12-12 12:21:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104707-20121212002040.patch</filename>
            <type>text/plain</type>
            <size>16244</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThiYjJlYjExMDE1NWZh
MzdlYjYxOTA1Nzg2MDkyMDBmNjJhZmIyYS4uYTQ2Mzk5Yzc1NjI3ZDFlZjllNzczNTdkYzgwNzM1
NGFmZGRkYzhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1RleG1hcF0gUmVtb3Zl
IGxvd3AvaGlnaHAgaW5kaWNhdG9ycyBhcyB0aGV5J3JlIG5vdCBuZWVkZWQgd2l0aCBBTkdMRS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGxvd3AvaGln
aHAgaW5kaWNhdG9yIHdlcmUgbmVlZGVkIGZvciBHTEVTMiwgYnV0IEFOR0xFIGRvZXMgbm90IHJl
cXVpcmUgdGhlbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFNoYWRlclNwZWMpOgorCisyMDEyLTEyLTExICBO
bydhbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKICAgICAgICAgW1RleG1hcF0gQ29u
c29saWRhdGUgcmVkdW5kYW50IGNvZGUgZm9yIEFSQl9SRUNUIHRleHR1cmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcAppbmRleCBlMDRmODU4NzM1YTBlZjA4OTMy
YmUwMWNjNTY0NjljNDRjY2M1MGI4Li4yMTc1NjIwYWUxN2Y0M2VmYzQ4MWZhNTY3MzgzN2JmN2Ex
NjhmYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKQEAg
LTEyNCwxNCArMTI0LDE0IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgICAgICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
c2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfbWFzazsKLSAgICAgICAg
ICAgIHVuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhp
Z2hwIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVj
MiB2X21hc2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2
YXJ5aW5nIHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJl
MkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKLSAgICAgICAgICAgICAgICBsb3dwIHZl
YzQgbWFza0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgdl9tYXNrVGV4Q29vcmQpOwotICAgICAg
ICAgICAgICAgIGxvd3AgZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xv
ci5hOworICAgICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkQoc19zYW1wbGVyLCB2
X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1
cmUyRChzX21hc2ssIHZfbWFza1RleENvb3JkKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBmcmFn
bWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0NvbG9yLmE7CiAgICAgICAgICAgICAgICAgZ2xf
RnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBmcmFnbWVudEFscGhhLCBjb2xvci5hICogZnJh
Z21lbnRBbHBoYSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICk7CkBAIC0xNDEsMTQgKzE0MSwx
NCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
OjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICAgICAgcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CiAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRFJlY3Qgc19zYW1wbGVyOwog
ICAgICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkRSZWN0IHNfbWFzazsKLSAgICAgICAgICAgIHVu
aWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZl
YzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X21h
c2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAg
ICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5n
IHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0
KHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0
IG1hc2tDb2xvciA9IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7Ci0gICAg
ICAgICAgICAgICAgbG93cCBmbG9hdCBmcmFnbWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0Nv
bG9yLmE7CisgICAgICAgICAgICAgICAgdmVjNCBjb2xvciA9IHRleHR1cmUyRFJlY3Qoc19zYW1w
bGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9
IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7CisgICAgICAgICAgICAgICAg
ZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xvci5hOwogICAgICAgICAg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IucmdiICogZnJhZ21lbnRBbHBoYSwgY29s
b3IuYSAqIGZyYWdtZW50QWxwaGEpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTU2
LDExICsxNTYsMTEgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogdmVydGV4T3BhY2l0eUFuZE1hc2sgPQogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAg
ICAgICB1bmlmb3JtIG1hdDQgdV9tYXRyaXg7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxv
YXQgdV9mbGlwOwotICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzIgdV90ZXh0dXJlU2l6ZTsK
KyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9mbGlwOworICAgICAgICAgICAgdW5pZm9ybSB2
ZWMyIHVfdGV4dHVyZVNpemU7CiAgICAgICAgICAgICBhdHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOwotICAgICAg
ICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfbWFza1RleENvb3JkOworICAgICAgICAgICAgdmFy
eWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl9t
YXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRleC54LCBtaXgo
YV92ZXJ0ZXgueSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKSAqIHVfdGV4dHVyZVNpemU7CkBA
IC0xNzMsMTEgKzE3MywxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBTVFJJ
TkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAg
IHVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCBm
bG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VU
ZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAgICAg
ICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4o
dm9pZCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0
ZXh0dXJlMkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2
ZWM0IGNvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7CiAgICAg
ICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiB1X29wYWNpdHksIGNv
bG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTg2LDgg
KzE4Niw4IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1h
bmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAg
ICAgICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwogICAgICAgICAgICAgdW5pZm9ybSBz
YW1wbGVyMkQgc19zYW1wbGVyOwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfc291
cmNlVGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1
bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsKICAgICAgICAgICAgIHVuaWZvcm0gdmVjMyB1X2V4cGFu
ZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVs4XTsKIAogICAgICAgICAgICAgICAgIC8vIFRoZSBk
YXRhIHBhc3NlZCBpbiB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZSBpcyBtZXJlbHkg
dGhlCkBAIC0yNDMsMTEgKzI0MywxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAg
ICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAg
ICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEUmVjdCBzX3NhbXBsZXI7Ci0gICAgICAgICAgICB1bmlm
b3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5OwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMy
IHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsK
KyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAg
dm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0
IGNvbG9yID0gdGV4dHVyZTJEUmVjdChzX3NhbXBsZXIsIHZfc291cmNlVGV4Q29vcmQpOworICAg
ICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNfc2FtcGxlciwgdl9zb3Vy
Y2VUZXhDb29yZCk7CiAgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5y
Z2IgKiB1X29wYWNpdHksIGNvbG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAgICAgfQogICAg
ICAgICApOwpAQCAtMjU1LDEwICsyNTUsMTAgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhU
ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogdmVydGV4U2ltcGxlID0KICAgICAgICAgU1RSSU5HSUZZKAog
ICAgICAgICAgICAgdW5pZm9ybSBtYXQ0IHVfbWF0cml4OwotICAgICAgICAgICAgdW5pZm9ybSBs
b3dwIGZsb2F0IHVfZmxpcDsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCB2ZWMyIHVfdGV4dHVy
ZVNpemU7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZmxpcDsKKyAgICAgICAgICAgIHVu
aWZvcm0gdmVjMiB1X3RleHR1cmVTaXplOwogICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV92
ZXJ0ZXg7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsK
KyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAg
dm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdl9zb3VyY2VU
ZXhDb29yZCA9IHZlYzIoYV92ZXJ0ZXgueCwgbWl4KGFfdmVydGV4LnksIDEuIC0gYV92ZXJ0ZXgu
eSwgdV9mbGlwKSkgKiB1X3RleHR1cmVTaXplOwpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyB2
b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBr
ZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIGF0dHJpYnV0
ZSB2ZWM0IGFfdmVydGV4OwogICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV90ZXhDb29yZDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOworICAgICAgICAgICAg
dmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2X3RleENvb3JkID0gdmVjMihhX3RleENvb3Jk
KTsKQEAgLTMwMSwxNiArMzAxLDE2IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAKICNkZWZp
bmUgU1RBTkRBUkRfRklMVEVSKC4uLikgXAogICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7XG4iXAotICAgICAgICAidmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7XG4iXAotICAg
ICAgICAidW5pZm9ybSBoaWdocCBmbG9hdCB1X2Ftb3VudDtcbiJcCisgICAgICAgICJ2YXJ5aW5n
IHZlYzIgdl90ZXhDb29yZDtcbiJcCisgICAgICAgICJ1bmlmb3JtIGZsb2F0IHVfYW1vdW50O1xu
IlwKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjtcbiIjX19WQV9BUkdTX18g
XAogICAgICAgICAidm9pZCBtYWluKHZvaWQpXG4geyBnbF9GcmFnQ29sb3IgPSBzaGFkZSh0ZXh0
dXJlMkQoc19zYW1wbGVyLCB2X3RleENvb3JkKSk7IH0iCiAKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogZnJhZ21lbnRHcmF5c2NhbGVGaWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0g
ICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9yKQorICAgICAgICAgICAg
dmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAgICAgICAgICAgICAgICBm
bG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAgICAgICAgICAgICAgICByZXR1cm4gdmVj
NCgoMC4yMTI2ICsgMC43ODc0ICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC43MTUyIC0gMC43MTUy
ICogYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4wNzIyIC0gMC4wNzIyICogYW1vdW50KSAqIGNvbG9y
LmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMjEyNiAtIDAuMjEyNiAqIGFtb3Vu
dCkgKiBjb2xvci5yICsgKDAuNzE1MiArIDAuMjg0OCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAu
MDcyMiAtIDAuMDcyMiAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgwLjIxMjYgLSAwLjIxMjYgKiBhbW91bnQpICogY29sb3IuciArICgwLjcxNTIgLSAw
LjcxNTIgKiBhbW91bnQpICogY29sb3IuZyArICgwLjA3MjIgKyAwLjkyNzggKiBhbW91bnQpICog
Y29sb3IuYiwKQEAgLTMyMCw5ICszMjAsOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2VwaWFGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9y
KQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAg
ICAgICAgICAgICAgICBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdmVjNCgoMC4zOTMgKyAwLjYwNyAqIGFtb3VudCkgKiBjb2xvci5yICsgKDAu
NzY5IC0gMC43NjkgKiBhbW91bnQpICogY29sb3IuZyArICgwLjE4OSAtIDAuMTg5ICogYW1vdW50
KSAqIGNvbG9yLmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMzQ5IC0gMC4zNDkg
KiBhbW91bnQpICogY29sb3IuciArICgwLjY4NiArIDAuMzE0ICogYW1vdW50KSAqIGNvbG9yLmcg
KyAoMC4xNjggLSAwLjE2OCAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgwLjI3MiAtIDAuMjcyICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC41MzQgLSAw
LjUzNCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAuMTMxICsgMC44NjkgKiBhbW91bnQpICogY29s
b3IuYiwKQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2F0dXJhdGVGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9y
KQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoKDAuMjEzICsgMC43ODcgKiB1X2Ftb3VudCkg
KiBjb2xvci5yICsgKDAuNzE1IC0gMC43MTUgKiB1X2Ftb3VudCkgKiBjb2xvci5nICsgKDAuMDcy
IC0gMC4wNzIgKiB1X2Ftb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgwLjIxMyAtIDAuMjEzICogdV9hbW91bnQpICogY29sb3IuciArICgwLjcxNSArIDAuMjg1
ICogdV9hbW91bnQpICogY29sb3IuZyArICgwLjA3MiAtIDAuMDcyICogdV9hbW91bnQpICogY29s
b3IuYiwKQEAgLTM0MywxMSArMzQzLDExIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRIdWVSb3RhdGVGaWx0ZXIgPQogICAgICAgICBT
VEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNv
bG9yKQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaGlnaHAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5MzIz
ODQ2OwotICAgICAgICAgICAgICAgIGhpZ2hwIGZsb2F0IGMgPSBjb3ModV9hbW91bnQgKiBwaSAv
IDE4MC4wKTsKLSAgICAgICAgICAgICAgICBoaWdocCBmbG9hdCBzID0gc2luKHVfYW1vdW50ICog
cGkgLyAxODAuMCk7CisgICAgICAgICAgICAgICAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5
MzIzODQ2OworICAgICAgICAgICAgICAgIGZsb2F0IGMgPSBjb3ModV9hbW91bnQgKiBwaSAvIDE4
MC4wKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBzID0gc2luKHVfYW1vdW50ICogcGkgLyAxODAu
MCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoY29sb3IuciAqICgwLjIxMyArIGMgKiAw
Ljc4NyAtIHMgKiAwLjIxMykgKyBjb2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1IC0gcyAqIDAu
NzE1KSArIGNvbG9yLmIgKiAoMC4wNzIgLSBjICogMC4wNzIgKyBzICogMC45MjgpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnIgKiAoMC4yMTMgLSBjICogMC4yMTMgKyBzICog
MC4xNDMpICsgY29sb3IuZyAqICgwLjcxNSArIGMgKiAwLjI4NSArIHMgKiAwLjE0MCkgKyBjb2xv
ci5iICogKDAuMDcyIC0gYyAqIDAuMDcyIC0gcyAqIDAuMjgzKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2xvci5yICogKDAuMjEzIC0gYyAqIDAuMjEzIC0gcyAqIDAuNzg3KSArICBj
b2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1ICsgcyAqIDAuNzE1KSArIGNvbG9yLmIgKiAoMC4w
NzIgKyBjICogMC45MjggKyBzICogMC4wNzIpLApAQCAtMzU3LDggKzM1Nyw4IEBAIHN0YXRpYyB2
b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBr
ZXksIFN0cmluZyYgdmVyCiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRJbnZlcnRG
aWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIGZsb2F0
IGludmVydChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuICgxLjAgLSBuKSAqIHVfYW1vdW50ICsgbiAq
ICgxLjAgLSB1X2Ftb3VudCk7IH0KLSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZl
YzQgY29sb3IpCisgICAgICAgICAgICBmbG9hdCBpbnZlcnQobG93cCBmbG9hdCBuKSB7IHJldHVy
biAoMS4wIC0gbikgKiB1X2Ftb3VudCArIG4gKiAoMS4wIC0gdV9hbW91bnQpOyB9CisgICAgICAg
ICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdmVjNChpbnZlcnQoY29sb3IuciksIGludmVydChjb2xvci5nKSwgaW52
ZXJ0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAgIH0KQEAgLTM2Niw3ICszNjYsNyBA
QCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpT
aGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdt
ZW50QnJpZ2h0bmVzc0ZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJEX0ZJTFRFUigKLSAgICAgICAg
ICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICB2ZWM0IHNo
YWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICByZXR1
cm4gdmVjNChjb2xvci5yZ2IgKiAoMS4wICsgdV9hbW91bnQpLCBjb2xvci5hKTsKICAgICAgICAg
ICAgIH0KQEAgLTM3NCw4ICszNzQsOCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50Q29udHJhc3RGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIGZsb2F0IGNvbnRyYXN0KGxvd3AgZmxvYXQg
bikgeyByZXR1cm4gKG4gLSAwLjUpICogdV9hbW91bnQgKyAwLjU7IH0KLSAgICAgICAgICAgIGxv
d3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICBmbG9hdCBjb250cmFz
dChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuIChuIC0gMC41KSAqIHVfYW1vdW50ICsgMC41OyB9Cisg
ICAgICAgICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdmVjNChjb250cmFzdChjb2xvci5yKSwgY29udHJhc3QoY29s
b3IuZyksIGNvbnRyYXN0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAgIH0KQEAgLTM4
Myw3ICszODMsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFk
ZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGZyYWdtZW50T3BhY2l0eUZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJEX0ZJTFRFUigK
LSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAg
ICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdmVjNChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCBjb2xvci5hICogdV9h
bW91bnQpOwogICAgICAgICAgICAgfQpAQCAtMzk2LDEyICszOTYsMTIgQEAgc3RhdGljIHZvaWQg
Z2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwg
U3RyaW5nJiB2ZXIKICAgICAgICAgU1RSSU5HSUZZKAogICAgICAgICAgICAgLy8gQ3JlYXRlIGEg
bm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiAyMSB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQgMi4KICAgICAg
ICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotICAgICAgICAgICAgdmFyeWluZyBoaWdo
cCB2ZWMyIHZfdGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X2JsdXJS
YWRpdXM7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsKKyAgICAgICAgICAg
IHVuaWZvcm0gdmVjMiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIy
RCBzX3NhbXBsZXI7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5LZXJuZWxb
R0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2Ft
cGxlQ29sb3IoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgdmVjNCBzYW1wbGVDb2xvcihmbG9h
dCByYWRpdXMpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmVjMiBjb29yZCA9IHZf
dGV4Q29vcmQgKyByYWRpdXMgKiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29y
ZC55ID4gMC4gJiYgY29vcmQueCA8IDEuICYmIGNvb3JkLnkgPCAxLik7CkBAIC00MjgsMTkgKzQy
OCwxOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5h
Z2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBCTFVSX0NPTlNUQU5UUwog
ICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOwotICAgICAgICAgICAg
dW5pZm9ybSBsb3dwIGZsb2F0IHVfYmx1clJhZGl1czsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93
cCB2ZWMyIHVfc2hhZG93T2Zmc2V0OworICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29v
cmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfYmx1clJhZGl1czsKKyAgICAgICAgICAg
IHVuaWZvcm0gdmVjMiB1X3NoYWRvd09mZnNldDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxl
cjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVzc2lhbktlcm5l
bFtHQVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSF07CiAKLSAgICAgICAgICAgIGxvd3AgZmxvYXQg
c2FtcGxlQWxwaGEoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgZmxvYXQgc2FtcGxlQWxwaGEo
ZmxvYXQgcmFkaXVzKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZlYzIgY29vcmQg
PSB2X3RleENvb3JkIC0gdV9zaGFkb3dPZmZzZXQgKyB2ZWMyKHJhZGl1cyAqIHVfYmx1clJhZGl1
cywgMC4pOwogICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlMkQoc19zYW1wbGVyLCBjb29y
ZCkuYSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29yZC55ID4gMC4gJiYgY29vcmQueCA8IDEu
ICYmIGNvb3JkLnkgPCAxLik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxvd3AgZmxv
YXQgc2hhZG93Qmx1ckhvcml6b250YWwoKQorICAgICAgICAgICAgZmxvYXQgc2hhZG93Qmx1ckhv
cml6b250YWwoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsID0g
c2FtcGxlQWxwaGEoMC4pICogdV9nYXVzc2lhbktlcm5lbFswXTsKICAgICAgICAgICAgICAgICBm
b3IgKGludCBpID0gMTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyBpKyspIHsKQEAg
LTQ2MiwyMCArNDYyLDIwIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIEJMVVJf
Q09OU1RBTlRTCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIHByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7Ci0g
ICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9ibHVyUmFkaXVzOwotICAgICAgICAgICAg
dW5pZm9ybSBsb3dwIHZlYzQgdV9zaGFkb3dDb2xvcjsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVj
MiB2X3RleENvb3JkOworICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2JsdXJSYWRpdXM7Cisg
ICAgICAgICAgICB1bmlmb3JtIHZlYzQgdV9zaGFkb3dDb2xvcjsKICAgICAgICAgICAgIHVuaWZv
cm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
Y29udGVudFRleHR1cmU7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5LZXJu
ZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBsb3dwIGZsb2F0
IHNhbXBsZUFscGhhKGZsb2F0IHIpCisgICAgICAgICAgICBmbG9hdCBzYW1wbGVBbHBoYShmbG9h
dCByKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZlYzIgY29vcmQgPSB2X3RleENv
b3JkICsgdmVjMigwLiwgciAqIHVfYmx1clJhZGl1cyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKS5hICogZmxvYXQoY29vcmQueCA+IDAuICYmIGNv
b3JkLnkgPiAwLiAmJiBjb29yZC54IDwgMS4gJiYgY29vcmQueSA8IDEuKTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgbG93cCBmbG9hdCBzaGFkb3dCbHVyVmVydGljYWwoKQorICAgICAg
ICAgICAgZmxvYXQgc2hhZG93Qmx1clZlcnRpY2FsKCkKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDAuKSAqIHVfZ2F1c3NpYW5LZXJuZWxb
MF07CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBHQVVTU0lBTl9LRVJORUxf
SEFMRl9XSURUSDsgaSsrKSB7CkBAIC00ODYsNyArNDg2LDcgQEAgc3RhdGljIHZvaWQgZ2V0U2hh
ZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5n
JiB2ZXIKICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWw7CiAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgIGxvd3AgdmVjNCBzb3VyY2VPdmVyKGxvd3AgdmVjNCBzb3VyY2UsIGxvd3AgdmVj
NCBkZXN0aW5hdGlvbikKKyAgICAgICAgICAgIHZlYzQgc291cmNlT3Zlcihsb3dwIHZlYzQgc291
cmNlLCB2ZWM0IGRlc3RpbmF0aW9uKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8v
IENvbXBvc2l0ZSB0aGUgc2hhZG93IHdpdGggdGhlIG9yaWdpbmFsIHRleHR1cmUuCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHNvdXJjZSArIGRlc3RpbmF0aW9uICogKDEuIC0gc291cmNlLmEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179101</attachid>
            <date>2012-12-12 12:21:48 -0800</date>
            <delta_ts>2012-12-12 17:33:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104707-20121212121915.patch</filename>
            <type>text/plain</type>
            <size>16244</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgwZDQzMzdiOTZiZjE3
N2EzOTUwYmU4OTBmNTRjN2ZiNjQ2ZDgxMC4uNzRlOTMxM2U2NTUwZDU2NjAyYzQ5Njc3ZDUyNmE1
NGE0MzI0YTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAyMDEyLTEyLTExICBObydh
bSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1RleG1hcF0gUmVtb3Zl
IGxvd3AvaGlnaHAgaW5kaWNhdG9ycyBhcyB0aGV5J3JlIG5vdCBuZWVkZWQgd2l0aCBBTkdMRS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGxvd3AvaGln
aHAgaW5kaWNhdG9yIHdlcmUgbmVlZGVkIGZvciBHTEVTMiwgYnV0IEFOR0xFIGRvZXMgbm90IHJl
cXVpcmUgdGhlbS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFNoYWRlclNwZWMpOgorCisyMDEyLTEyLTExICBO
bydhbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKICAgICAgICAgW1RleG1hcF0gQ29u
c29saWRhdGUgcmVkdW5kYW50IGNvZGUgZm9yIEFSQl9SRUNUIHRleHR1cmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDcwNQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcAppbmRleCBlMDRmODU4NzM1YTBlZjA4OTMy
YmUwMWNjNTY0NjljNDRjY2M1MGI4Li4yMTc1NjIwYWUxN2Y0M2VmYzQ4MWZhNTY3MzgzN2JmN2Ex
NjhmYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKQEAg
LTEyNCwxNCArMTI0LDE0IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgICAgICBw
cmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
c2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNfbWFzazsKLSAgICAgICAg
ICAgIHVuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhp
Z2hwIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVj
MiB2X21hc2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2
YXJ5aW5nIHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJl
MkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKLSAgICAgICAgICAgICAgICBsb3dwIHZl
YzQgbWFza0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgdl9tYXNrVGV4Q29vcmQpOwotICAgICAg
ICAgICAgICAgIGxvd3AgZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xv
ci5hOworICAgICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkQoc19zYW1wbGVyLCB2
X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1
cmUyRChzX21hc2ssIHZfbWFza1RleENvb3JkKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBmcmFn
bWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0NvbG9yLmE7CiAgICAgICAgICAgICAgICAgZ2xf
RnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBmcmFnbWVudEFscGhhLCBjb2xvci5hICogZnJh
Z21lbnRBbHBoYSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICk7CkBAIC0xNDEsMTQgKzE0MSwx
NCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2Vy
OjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICAgICAgcHJlY2lzaW9uIG1lZGl1
bXAgZmxvYXQ7CiAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRFJlY3Qgc19zYW1wbGVyOwog
ICAgICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkRSZWN0IHNfbWFzazsKLSAgICAgICAgICAgIHVu
aWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZl
YzIgdl9zb3VyY2VUZXhDb29yZDsKLSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X21h
c2tUZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAg
ICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5n
IHZlYzIgdl9tYXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0
KHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0
IG1hc2tDb2xvciA9IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7Ci0gICAg
ICAgICAgICAgICAgbG93cCBmbG9hdCBmcmFnbWVudEFscGhhID0gdV9vcGFjaXR5ICogbWFza0Nv
bG9yLmE7CisgICAgICAgICAgICAgICAgdmVjNCBjb2xvciA9IHRleHR1cmUyRFJlY3Qoc19zYW1w
bGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9
IHRleHR1cmUyRFJlY3Qoc19tYXNrLCB2X21hc2tUZXhDb29yZCk7CisgICAgICAgICAgICAgICAg
ZmxvYXQgZnJhZ21lbnRBbHBoYSA9IHVfb3BhY2l0eSAqIG1hc2tDb2xvci5hOwogICAgICAgICAg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IucmdiICogZnJhZ21lbnRBbHBoYSwgY29s
b3IuYSAqIGZyYWdtZW50QWxwaGEpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTU2
LDExICsxNTYsMTEgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogdmVydGV4T3BhY2l0eUFuZE1hc2sgPQogICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAg
ICAgICB1bmlmb3JtIG1hdDQgdV9tYXRyaXg7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxv
YXQgdV9mbGlwOwotICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzIgdV90ZXh0dXJlU2l6ZTsK
KyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9mbGlwOworICAgICAgICAgICAgdW5pZm9ybSB2
ZWMyIHVfdGV4dHVyZVNpemU7CiAgICAgICAgICAgICBhdHRyaWJ1dGUgdmVjNCBhX3ZlcnRleDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3NvdXJjZVRleENvb3JkOwotICAgICAg
ICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfbWFza1RleENvb3JkOworICAgICAgICAgICAgdmFy
eWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl9t
YXNrVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICB2X3NvdXJjZVRleENvb3JkID0gdmVjMihhX3ZlcnRleC54LCBtaXgo
YV92ZXJ0ZXgueSwgMS4gLSBhX3ZlcnRleC55LCB1X2ZsaXApKSAqIHVfdGV4dHVyZVNpemU7CkBA
IC0xNzMsMTEgKzE3MywxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBTVFJJ
TkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAgICAgICAg
IHVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCBm
bG9hdCB1X29wYWNpdHk7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VU
ZXhDb29yZDsKKyAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5OworICAgICAgICAg
ICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4o
dm9pZCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsb3dwIHZlYzQgY29sb3IgPSB0
ZXh0dXJlMkQoc19zYW1wbGVyLCB2X3NvdXJjZVRleENvb3JkKTsKKyAgICAgICAgICAgICAgICB2
ZWM0IGNvbG9yID0gdGV4dHVyZTJEKHNfc2FtcGxlciwgdl9zb3VyY2VUZXhDb29yZCk7CiAgICAg
ICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IgKiB1X29wYWNpdHksIGNv
bG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAgICAgfQogICAgICAgICApOwpAQCAtMTg2LDgg
KzE4Niw4IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1h
bmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAg
ICAgICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwogICAgICAgICAgICAgdW5pZm9ybSBz
YW1wbGVyMkQgc19zYW1wbGVyOwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfc291
cmNlVGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5Owor
ICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1
bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsKICAgICAgICAgICAgIHVuaWZvcm0gdmVjMyB1X2V4cGFu
ZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZVs4XTsKIAogICAgICAgICAgICAgICAgIC8vIFRoZSBk
YXRhIHBhc3NlZCBpbiB1X2V4cGFuZGVkUXVhZEVkZ2VzSW5TY3JlZW5TcGFjZSBpcyBtZXJlbHkg
dGhlCkBAIC0yNDMsMTEgKzI0MywxMSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAg
ICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKICAgICAg
ICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEUmVjdCBzX3NhbXBsZXI7Ci0gICAgICAgICAgICB1bmlm
b3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5OwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMy
IHZfc291cmNlVGV4Q29vcmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTsK
KyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAg
dm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbG93cCB2ZWM0
IGNvbG9yID0gdGV4dHVyZTJEUmVjdChzX3NhbXBsZXIsIHZfc291cmNlVGV4Q29vcmQpOworICAg
ICAgICAgICAgICAgIHZlYzQgY29sb3IgPSB0ZXh0dXJlMkRSZWN0KHNfc2FtcGxlciwgdl9zb3Vy
Y2VUZXhDb29yZCk7CiAgICAgICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5y
Z2IgKiB1X29wYWNpdHksIGNvbG9yLmEgKiB1X29wYWNpdHkpOwogICAgICAgICAgICAgfQogICAg
ICAgICApOwpAQCAtMjU1LDEwICsyNTUsMTAgQEAgc3RhdGljIHZvaWQgZ2V0U2hhZGVyU3BlYyhU
ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5nJiB2ZXIKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogdmVydGV4U2ltcGxlID0KICAgICAgICAgU1RSSU5HSUZZKAog
ICAgICAgICAgICAgdW5pZm9ybSBtYXQ0IHVfbWF0cml4OwotICAgICAgICAgICAgdW5pZm9ybSBs
b3dwIGZsb2F0IHVfZmxpcDsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93cCB2ZWMyIHVfdGV4dHVy
ZVNpemU7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZmxpcDsKKyAgICAgICAgICAgIHVu
aWZvcm0gdmVjMiB1X3RleHR1cmVTaXplOwogICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV92
ZXJ0ZXg7Ci0gICAgICAgICAgICB2YXJ5aW5nIGhpZ2hwIHZlYzIgdl9zb3VyY2VUZXhDb29yZDsK
KyAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3NvdXJjZVRleENvb3JkOwogICAgICAgICAgICAg
dm9pZCBtYWluKHZvaWQpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdl9zb3VyY2VU
ZXhDb29yZCA9IHZlYzIoYV92ZXJ0ZXgueCwgbWl4KGFfdmVydGV4LnksIDEuIC0gYV92ZXJ0ZXgu
eSwgdV9mbGlwKSkgKiB1X3RleHR1cmVTaXplOwpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyB2
b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBr
ZXksIFN0cmluZyYgdmVyCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIGF0dHJpYnV0
ZSB2ZWM0IGFfdmVydGV4OwogICAgICAgICAgICAgYXR0cmlidXRlIHZlYzQgYV90ZXhDb29yZDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOworICAgICAgICAgICAg
dmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7CiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2X3RleENvb3JkID0gdmVjMihhX3RleENvb3Jk
KTsKQEAgLTMwMSwxNiArMzAxLDE2IEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVy
ZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAKICNkZWZp
bmUgU1RBTkRBUkRfRklMVEVSKC4uLikgXAogICAgICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7XG4iXAotICAgICAgICAidmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7XG4iXAotICAg
ICAgICAidW5pZm9ybSBoaWdocCBmbG9hdCB1X2Ftb3VudDtcbiJcCisgICAgICAgICJ2YXJ5aW5n
IHZlYzIgdl90ZXhDb29yZDtcbiJcCisgICAgICAgICJ1bmlmb3JtIGZsb2F0IHVfYW1vdW50O1xu
IlwKICAgICAgICAgInVuaWZvcm0gc2FtcGxlcjJEIHNfc2FtcGxlcjtcbiIjX19WQV9BUkdTX18g
XAogICAgICAgICAidm9pZCBtYWluKHZvaWQpXG4geyBnbF9GcmFnQ29sb3IgPSBzaGFkZSh0ZXh0
dXJlMkQoc19zYW1wbGVyLCB2X3RleENvb3JkKSk7IH0iCiAKICAgICBzdGF0aWMgY29uc3QgY2hh
ciogZnJhZ21lbnRHcmF5c2NhbGVGaWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0g
ICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9yKQorICAgICAgICAgICAg
dmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAgICAgICAgICAgICAgICBm
bG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAgICAgICAgICAgICAgICByZXR1cm4gdmVj
NCgoMC4yMTI2ICsgMC43ODc0ICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC43MTUyIC0gMC43MTUy
ICogYW1vdW50KSAqIGNvbG9yLmcgKyAoMC4wNzIyIC0gMC4wNzIyICogYW1vdW50KSAqIGNvbG9y
LmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMjEyNiAtIDAuMjEyNiAqIGFtb3Vu
dCkgKiBjb2xvci5yICsgKDAuNzE1MiArIDAuMjg0OCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAu
MDcyMiAtIDAuMDcyMiAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgwLjIxMjYgLSAwLjIxMjYgKiBhbW91bnQpICogY29sb3IuciArICgwLjcxNTIgLSAw
LjcxNTIgKiBhbW91bnQpICogY29sb3IuZyArICgwLjA3MjIgKyAwLjkyNzggKiBhbW91bnQpICog
Y29sb3IuYiwKQEAgLTMyMCw5ICszMjAsOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2VwaWFGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9y
KQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgbG93cCBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKKyAg
ICAgICAgICAgICAgICBmbG9hdCBhbW91bnQgPSAxLjAgLSB1X2Ftb3VudDsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdmVjNCgoMC4zOTMgKyAwLjYwNyAqIGFtb3VudCkgKiBjb2xvci5yICsgKDAu
NzY5IC0gMC43NjkgKiBhbW91bnQpICogY29sb3IuZyArICgwLjE4OSAtIDAuMTg5ICogYW1vdW50
KSAqIGNvbG9yLmIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAuMzQ5IC0gMC4zNDkg
KiBhbW91bnQpICogY29sb3IuciArICgwLjY4NiArIDAuMzE0ICogYW1vdW50KSAqIGNvbG9yLmcg
KyAoMC4xNjggLSAwLjE2OCAqIGFtb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgwLjI3MiAtIDAuMjcyICogYW1vdW50KSAqIGNvbG9yLnIgKyAoMC41MzQgLSAw
LjUzNCAqIGFtb3VudCkgKiBjb2xvci5nICsgKDAuMTMxICsgMC44NjkgKiBhbW91bnQpICogY29s
b3IuYiwKQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50U2F0dXJhdGVGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNvbG9y
KQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoKDAuMjEzICsgMC43ODcgKiB1X2Ftb3VudCkg
KiBjb2xvci5yICsgKDAuNzE1IC0gMC43MTUgKiB1X2Ftb3VudCkgKiBjb2xvci5nICsgKDAuMDcy
IC0gMC4wNzIgKiB1X2Ftb3VudCkgKiBjb2xvci5iLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgwLjIxMyAtIDAuMjEzICogdV9hbW91bnQpICogY29sb3IuciArICgwLjcxNSArIDAuMjg1
ICogdV9hbW91bnQpICogY29sb3IuZyArICgwLjA3MiAtIDAuMDcyICogdV9hbW91bnQpICogY29s
b3IuYiwKQEAgLTM0MywxMSArMzQzLDExIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRIdWVSb3RhdGVGaWx0ZXIgPQogICAgICAgICBT
VEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2hhZGUobG93cCB2ZWM0IGNv
bG9yKQorICAgICAgICAgICAgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaGlnaHAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5MzIz
ODQ2OwotICAgICAgICAgICAgICAgIGhpZ2hwIGZsb2F0IGMgPSBjb3ModV9hbW91bnQgKiBwaSAv
IDE4MC4wKTsKLSAgICAgICAgICAgICAgICBoaWdocCBmbG9hdCBzID0gc2luKHVfYW1vdW50ICog
cGkgLyAxODAuMCk7CisgICAgICAgICAgICAgICAgZmxvYXQgcGkgPSAzLjE0MTU5MjY1MzU4OTc5
MzIzODQ2OworICAgICAgICAgICAgICAgIGZsb2F0IGMgPSBjb3ModV9hbW91bnQgKiBwaSAvIDE4
MC4wKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBzID0gc2luKHVfYW1vdW50ICogcGkgLyAxODAu
MCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHZlYzQoY29sb3IuciAqICgwLjIxMyArIGMgKiAw
Ljc4NyAtIHMgKiAwLjIxMykgKyBjb2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1IC0gcyAqIDAu
NzE1KSArIGNvbG9yLmIgKiAoMC4wNzIgLSBjICogMC4wNzIgKyBzICogMC45MjgpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnIgKiAoMC4yMTMgLSBjICogMC4yMTMgKyBzICog
MC4xNDMpICsgY29sb3IuZyAqICgwLjcxNSArIGMgKiAwLjI4NSArIHMgKiAwLjE0MCkgKyBjb2xv
ci5iICogKDAuMDcyIC0gYyAqIDAuMDcyIC0gcyAqIDAuMjgzKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2xvci5yICogKDAuMjEzIC0gYyAqIDAuMjEzIC0gcyAqIDAuNzg3KSArICBj
b2xvci5nICogKDAuNzE1IC0gYyAqIDAuNzE1ICsgcyAqIDAuNzE1KSArIGNvbG9yLmIgKiAoMC4w
NzIgKyBjICogMC45MjggKyBzICogMC4wNzIpLApAQCAtMzU3LDggKzM1Nyw4IEBAIHN0YXRpYyB2
b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBr
ZXksIFN0cmluZyYgdmVyCiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogZnJhZ21lbnRJbnZlcnRG
aWx0ZXIgPQogICAgICAgICBTVEFOREFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIGZsb2F0
IGludmVydChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuICgxLjAgLSBuKSAqIHVfYW1vdW50ICsgbiAq
ICgxLjAgLSB1X2Ftb3VudCk7IH0KLSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZl
YzQgY29sb3IpCisgICAgICAgICAgICBmbG9hdCBpbnZlcnQobG93cCBmbG9hdCBuKSB7IHJldHVy
biAoMS4wIC0gbikgKiB1X2Ftb3VudCArIG4gKiAoMS4wIC0gdV9hbW91bnQpOyB9CisgICAgICAg
ICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdmVjNChpbnZlcnQoY29sb3IuciksIGludmVydChjb2xvci5nKSwgaW52
ZXJ0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAgIH0KQEAgLTM2Niw3ICszNjYsNyBA
QCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpT
aGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGZyYWdt
ZW50QnJpZ2h0bmVzc0ZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJEX0ZJTFRFUigKLSAgICAgICAg
ICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICB2ZWM0IHNo
YWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICByZXR1
cm4gdmVjNChjb2xvci5yZ2IgKiAoMS4wICsgdV9hbW91bnQpLCBjb2xvci5hKTsKICAgICAgICAg
ICAgIH0KQEAgLTM3NCw4ICszNzQsOCBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGZyYWdtZW50Q29udHJhc3RGaWx0ZXIgPQogICAgICAgICBTVEFO
REFSRF9GSUxURVIoCi0gICAgICAgICAgICBsb3dwIGZsb2F0IGNvbnRyYXN0KGxvd3AgZmxvYXQg
bikgeyByZXR1cm4gKG4gLSAwLjUpICogdV9hbW91bnQgKyAwLjU7IH0KLSAgICAgICAgICAgIGxv
d3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAgICBmbG9hdCBjb250cmFz
dChsb3dwIGZsb2F0IG4pIHsgcmV0dXJuIChuIC0gMC41KSAqIHVfYW1vdW50ICsgMC41OyB9Cisg
ICAgICAgICAgICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICByZXR1cm4gdmVjNChjb250cmFzdChjb2xvci5yKSwgY29udHJhc3QoY29s
b3IuZyksIGNvbnRyYXN0KGNvbG9yLmIpLCBjb2xvci5hKTsKICAgICAgICAgICAgIH0KQEAgLTM4
Myw3ICszODMsNyBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFk
ZXJNYW5hZ2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogCiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGZyYWdtZW50T3BhY2l0eUZpbHRlciA9CiAgICAgICAgIFNUQU5EQVJEX0ZJTFRFUigK
LSAgICAgICAgICAgIGxvd3AgdmVjNCBzaGFkZShsb3dwIHZlYzQgY29sb3IpCisgICAgICAgICAg
ICB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICByZXR1cm4gdmVjNChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCBjb2xvci5hICogdV9h
bW91bnQpOwogICAgICAgICAgICAgfQpAQCAtMzk2LDEyICszOTYsMTIgQEAgc3RhdGljIHZvaWQg
Z2V0U2hhZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwg
U3RyaW5nJiB2ZXIKICAgICAgICAgU1RSSU5HSUZZKAogICAgICAgICAgICAgLy8gQ3JlYXRlIGEg
bm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiAyMSB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQgMi4KICAgICAg
ICAgICAgIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwotICAgICAgICAgICAgdmFyeWluZyBoaWdo
cCB2ZWMyIHZfdGV4Q29vcmQ7Ci0gICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X2JsdXJS
YWRpdXM7CisgICAgICAgICAgICB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsKKyAgICAgICAgICAg
IHVuaWZvcm0gdmVjMiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIy
RCBzX3NhbXBsZXI7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5LZXJuZWxb
R0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBsb3dwIHZlYzQgc2Ft
cGxlQ29sb3IoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgdmVjNCBzYW1wbGVDb2xvcihmbG9h
dCByYWRpdXMpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmVjMiBjb29yZCA9IHZf
dGV4Q29vcmQgKyByYWRpdXMgKiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29y
ZC55ID4gMC4gJiYgY29vcmQueCA8IDEuICYmIGNvb3JkLnkgPCAxLik7CkBAIC00MjgsMTkgKzQy
OCwxOSBAQCBzdGF0aWMgdm9pZCBnZXRTaGFkZXJTcGVjKFRleHR1cmVNYXBwZXJTaGFkZXJNYW5h
Z2VyOjpTaGFkZXJLZXkga2V5LCBTdHJpbmcmIHZlcgogICAgICAgICBCTFVSX0NPTlNUQU5UUwog
ICAgICAgICBTVFJJTkdJRlkoCiAgICAgICAgICAgICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsK
LSAgICAgICAgICAgIHZhcnlpbmcgaGlnaHAgdmVjMiB2X3RleENvb3JkOwotICAgICAgICAgICAg
dW5pZm9ybSBsb3dwIGZsb2F0IHVfYmx1clJhZGl1czsKLSAgICAgICAgICAgIHVuaWZvcm0gbG93
cCB2ZWMyIHVfc2hhZG93T2Zmc2V0OworICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29v
cmQ7CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfYmx1clJhZGl1czsKKyAgICAgICAgICAg
IHVuaWZvcm0gdmVjMiB1X3NoYWRvd09mZnNldDsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxl
cjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVzc2lhbktlcm5l
bFtHQVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSF07CiAKLSAgICAgICAgICAgIGxvd3AgZmxvYXQg
c2FtcGxlQWxwaGEoZmxvYXQgcmFkaXVzKQorICAgICAgICAgICAgZmxvYXQgc2FtcGxlQWxwaGEo
ZmxvYXQgcmFkaXVzKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZlYzIgY29vcmQg
PSB2X3RleENvb3JkIC0gdV9zaGFkb3dPZmZzZXQgKyB2ZWMyKHJhZGl1cyAqIHVfYmx1clJhZGl1
cywgMC4pOwogICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlMkQoc19zYW1wbGVyLCBjb29y
ZCkuYSAqIGZsb2F0KGNvb3JkLnggPiAwLiAmJiBjb29yZC55ID4gMC4gJiYgY29vcmQueCA8IDEu
ICYmIGNvb3JkLnkgPCAxLik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxvd3AgZmxv
YXQgc2hhZG93Qmx1ckhvcml6b250YWwoKQorICAgICAgICAgICAgZmxvYXQgc2hhZG93Qmx1ckhv
cml6b250YWwoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsID0g
c2FtcGxlQWxwaGEoMC4pICogdV9nYXVzc2lhbktlcm5lbFswXTsKICAgICAgICAgICAgICAgICBm
b3IgKGludCBpID0gMTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyBpKyspIHsKQEAg
LTQ2MiwyMCArNDYyLDIwIEBAIHN0YXRpYyB2b2lkIGdldFNoYWRlclNwZWMoVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNoYWRlcktleSBrZXksIFN0cmluZyYgdmVyCiAgICAgICAgIEJMVVJf
Q09OU1RBTlRTCiAgICAgICAgIFNUUklOR0lGWSgKICAgICAgICAgICAgIHByZWNpc2lvbiBtZWRp
dW1wIGZsb2F0OwotICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7Ci0g
ICAgICAgICAgICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9ibHVyUmFkaXVzOwotICAgICAgICAgICAg
dW5pZm9ybSBsb3dwIHZlYzQgdV9zaGFkb3dDb2xvcjsKKyAgICAgICAgICAgIHZhcnlpbmcgdmVj
MiB2X3RleENvb3JkOworICAgICAgICAgICAgdW5pZm9ybSBmbG9hdCB1X2JsdXJSYWRpdXM7Cisg
ICAgICAgICAgICB1bmlmb3JtIHZlYzQgdV9zaGFkb3dDb2xvcjsKICAgICAgICAgICAgIHVuaWZv
cm0gc2FtcGxlcjJEIHNfc2FtcGxlcjsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHNf
Y29udGVudFRleHR1cmU7CiAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5LZXJu
ZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCi0gICAgICAgICAgICBsb3dwIGZsb2F0
IHNhbXBsZUFscGhhKGZsb2F0IHIpCisgICAgICAgICAgICBmbG9hdCBzYW1wbGVBbHBoYShmbG9h
dCByKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZlYzIgY29vcmQgPSB2X3RleENv
b3JkICsgdmVjMigwLiwgciAqIHVfYmx1clJhZGl1cyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRleHR1cmUyRChzX3NhbXBsZXIsIGNvb3JkKS5hICogZmxvYXQoY29vcmQueCA+IDAuICYmIGNv
b3JkLnkgPiAwLiAmJiBjb29yZC54IDwgMS4gJiYgY29vcmQueSA8IDEuKTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgbG93cCBmbG9hdCBzaGFkb3dCbHVyVmVydGljYWwoKQorICAgICAg
ICAgICAgZmxvYXQgc2hhZG93Qmx1clZlcnRpY2FsKCkKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDAuKSAqIHVfZ2F1c3NpYW5LZXJuZWxb
MF07CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBHQVVTU0lBTl9LRVJORUxf
SEFMRl9XSURUSDsgaSsrKSB7CkBAIC00ODYsNyArNDg2LDcgQEAgc3RhdGljIHZvaWQgZ2V0U2hh
ZGVyU3BlYyhUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6U2hhZGVyS2V5IGtleSwgU3RyaW5n
JiB2ZXIKICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWw7CiAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgIGxvd3AgdmVjNCBzb3VyY2VPdmVyKGxvd3AgdmVjNCBzb3VyY2UsIGxvd3AgdmVj
NCBkZXN0aW5hdGlvbikKKyAgICAgICAgICAgIHZlYzQgc291cmNlT3Zlcihsb3dwIHZlYzQgc291
cmNlLCB2ZWM0IGRlc3RpbmF0aW9uKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8v
IENvbXBvc2l0ZSB0aGUgc2hhZG93IHdpdGggdGhlIG9yaWdpbmFsIHRleHR1cmUuCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHNvdXJjZSArIGRlc3RpbmF0aW9uICogKDEuIC0gc291cmNlLmEpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>