<?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>77031</bug_id>
          
          <creation_ts>2012-01-25 11:20:30 -0800</creation_ts>
          <short_desc>[Qt] Inspector WebSocket backend protocol update</short_desc>
          <delta_ts>2012-09-17 02:37:32 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34598</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Leo Franchi">leo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>542477</commentid>
    <comment_count>0</comment_count>
    <who name="Leo Franchi">leo</who>
    <bug_when>2012-01-25 11:20:30 -0800</bug_when>
    <thetext>Inspector WebSocket backend protocol update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542480</commentid>
    <comment_count>1</comment_count>
      <attachid>123977</attachid>
    <who name="Leo Franchi">leo</who>
    <bug_when>2012-01-25 11:24:23 -0800</bug_when>
    <thetext>Created attachment 123977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542501</commentid>
    <comment_count>2</comment_count>
      <attachid>123980</attachid>
    <who name="Leo Franchi">leo</who>
    <bug_when>2012-01-25 11:48:04 -0800</bug_when>
    <thetext>Created attachment 123980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714124</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-09-06 22:42:03 -0700</bug_when>
    <thetext>Jocelyn, does this patch still apply, i.e. do we still need it?

Apologies Leo, this one seems to have slipped through the cracks entirely. Hadn&apos;t noticed this patch since you uploaded it in January :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714310</commentid>
    <comment_count>4</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-07 02:16:01 -0700</bug_when>
    <thetext>Oh, yes! Else it won&apos;t be possible to use the remote inspector at all for webkit1 since our client also got the new protocol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714311</commentid>
    <comment_count>5</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-07 02:17:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Apologies Leo, this one seems to have slipped through the cracks entirely. Hadn&apos;t noticed this patch since you uploaded it in January :(

My fault, I should have put myself on CC after I gave feedback to Leo about it on IRC :S</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714421</commentid>
    <comment_count>6</comment_count>
    <who name="Leo Franchi">leo</who>
    <bug_when>2012-09-07 05:14:49 -0700</bug_when>
    <thetext>I admit I also somewhat forgot about it too. Do I need to rebase and retest, has a lot of stuff changed over the last few months?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714450</commentid>
    <comment_count>7</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-07 06:27:18 -0700</bug_when>
    <thetext>There isn&apos;t probably much that changed, so it&apos;s more a matter of rebasing it and verify if it still works with a QtTestBrowser client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717126</commentid>
    <comment_count>8</comment_count>
      <attachid>163354</attachid>
    <who name="Leo Franchi">leo</who>
    <bug_when>2012-09-11 07:05:39 -0700</bug_when>
    <thetext>Created attachment 163354
Updated/rebased patch for updated websocket protocol version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717128</commentid>
    <comment_count>9</comment_count>
    <who name="Leo Franchi">leo</who>
    <bug_when>2012-09-11 07:07:19 -0700</bug_when>
    <thetext>Ok, I rebased the patch on current HEAD. I tested with QtTestBrowser---now with this patch I am able to connect to the remote web inspector both with QtTestBrowser and with a recent WebKit browser like Chrome v23.

I don&apos;t remember the code super well as it was 9 months ago, so have a go at reviewing and I&apos;ll fix things up as they come up :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717129</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 07:09:10 -0700</bug_when>
    <thetext>Attachment 163354 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/qt/ChangeLog&apos;, u&apos;Source/WebK...&quot; exit_code: 1
Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp:195:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718262</commentid>
    <comment_count>11</comment_count>
      <attachid>163606</attachid>
    <who name="Leo Franchi">leo</who>
    <bug_when>2012-09-12 05:47:12 -0700</bug_when>
    <thetext>Created attachment 163606
Updated/rebased patch for updated websocket protocol version

Tab removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721772</commentid>
    <comment_count>12</comment_count>
      <attachid>163606</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 02:37:29 -0700</bug_when>
    <thetext>Comment on attachment 163606
Updated/rebased patch for updated websocket protocol version

Clearing flags on attachment: 163606

Committed r128731: &lt;http://trac.webkit.org/changeset/128731&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721773</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 02:37:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123977</attachid>
            <date>2012-01-25 11:24:23 -0800</date>
            <delta_ts>2012-01-25 11:44:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77031-20120125142416.patch</filename>
            <type>text/plain</type>
            <size>12755</size>
            <attacher name="Leo Franchi">leo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDhhNTBmNjU2Zjc1
MDA5YzBlNWJjM2YwNzNjMWI2YWE4MTBhNDBmZGUuLjliN2RjNmNiNjY0ZDIwZWEwODU4ZmM1NTE2
MTM4ZmI0ZjU0OTczMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDEt
MjUgIExlbyBGcmFuY2hpICA8bGZyYW5jaGlAa2RlLm9yZz4KKworICAgICAgICBJbnNwZWN0b3Ig
V2ViU29ja2V0IGJhY2tlbmQgcHJvdG9jb2wgdXBkYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsc28gYWRkcyBzdXBwb3J0IGZvciBtdWx0aS1mcmFt
ZSBtZXNzYWdlcyBhbmQgbm9uLXRleHQKKyAgICAgICAgbWVzc2FnZXMuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZW5lcmF0ZVdlYlNvY2tldENoYWxsZW5nZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OnRjcFJlYWR5UmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRTZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGx5TWFzayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFJl
YWR5UmVhZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQuaDoK
KyAgICAgICAgKEluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQpOgorCiAyMDEyLTAxLTE3
ICBWaWF0Y2hlc2xhdiBPc3RhcGVua28gIDxvc3RhcGVua28udmlhdGNoZXNsYXZAbm9raWEuY29t
PgogCiAgICAgICAgIFtRdF0gRGVidWcgYnVpbGQgZmFpbHMgd2l0aCBkZWJ1ZyBxdDUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQu
Y3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJRdC5j
cHAKaW5kZXggZmRjMTRmNTMzNjI4ZDAzOThiZmJhMzU5NTE1YTYxMmNjMDI3OWI2ZS4uN2FiMzJj
ZDMxZjFlZTYzOTU5ODFhMTA2MjFiY2E1NzdiN2VhNjE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJRdC5jcHAKQEAgLTIwLDkg
KzIwLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU2VydmVy
UXQuaCIKIAorI2luY2x1ZGUgIkJhc2U2NC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudFF0
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIk1ENS5oIgor
I2luY2x1ZGUgIlNIQTEuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAicWh0dHBoZWFk
ZXJfcC5oIgogI2luY2x1ZGUgInF3ZWJwYWdlLmgiCkBAIC00MCw0NSArNDEsMTkgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLyohCi0gICAgQ29tcHV0ZXMgdGhlIFdlYlNvY2tldCBoYW5kc2hh
a2UgcmVzcG9uc2UgZ2l2ZW4gdGhlIHR3byBjaGFsbGVuZ2UgbnVtYmVycyBhbmQga2V5My4KKyAg
ICBDb21wdXRlcyB0aGUgV2ViU29ja2V0IGhhbmRzaGFrZSByZXNwb25zZSBnaXZlbiB0aGUgaW5w
dXQga2V5CiAgKi8KLXN0YXRpYyB2b2lkIGdlbmVyYXRlV2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9u
c2UodWludDMyX3QgbnVtYmVyMSwgdWludDMyX3QgbnVtYmVyMiwgY29uc3QgdW5zaWduZWQgY2hh
ciBrZXkzWzhdLCB1bnNpZ25lZCBjaGFyIHJlc3BvbnNlWzE2XSkKK3N0YXRpYyBRQnl0ZUFycmF5
IGdlbmVyYXRlV2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2UoY29uc3QgUUJ5dGVBcnJheSYga2V5
KQogewotICAgIHVpbnQ4X3QgY2hhbGxlbmdlWzE2XTsKLSAgICBxVG9CaWdFbmRpYW48cWludDMy
PihudW1iZXIxLCAmY2hhbGxlbmdlWzBdKTsKLSAgICBxVG9CaWdFbmRpYW48cWludDMyPihudW1i
ZXIyLCAmY2hhbGxlbmdlWzRdKTsKLSAgICBtZW1jcHkoJmNoYWxsZW5nZVs4XSwga2V5MywgOCk7
Ci0gICAgTUQ1IG1kNTsKLSAgICBtZDUuYWRkQnl0ZXMoY2hhbGxlbmdlLCBzaXplb2YoY2hhbGxl
bmdlKSk7Ci0gICAgVmVjdG9yPHVpbnQ4X3QsIDE2PiBkaWdlc3Q7Ci0gICAgbWQ1LmNoZWNrc3Vt
KGRpZ2VzdCk7Ci0gICAgbWVtY3B5KHJlc3BvbnNlLCBkaWdlc3QuZGF0YSgpLCAxNik7Ci19Ci0K
LS8qIQotICAgIFBhcnNlcyBhbmQgcmV0dXJucyBhIFdlYlNvY2tldCBjaGFsbGVuZ2UgbnVtYmVy
IGFjY29yZGluZyB0byB0aGUKLSAgICBtZXRob2Qgc3BlY2lmaWVkIGluIHRoZSBXZWJTb2NrZXQg
cHJvdG9jb2wuCi0KLSAgICBUaGUgZmllbGQgY29udGFpbnMgbnVtZXJpYyBkaWdpdHMgaW50ZXJz
cGVyc2VkIHdpdGggc3BhY2VzIGFuZAotICAgIG5vbi1udW1lcmljIGRpZ2l0cy4gVGhlIHByb3Rv
Y29sIGlnbm9yZXMgdGhlIGNoYXJhY3RlcnMgdGhhdCBhcmUKLSAgICBuZWl0aGVyIGRpZ2l0cyBu
b3Igc3BhY2VzLiBUaGUgZGlnaXRzIGFyZSBjb25jYXRlbmF0ZWQgYW5kCi0gICAgaW50ZXJwcmV0
ZWQgYXMgYSBsb25nIGludC4gVGhlIHJlc3VsdCBpcyB0aGlzIG51bWJlciBkaXZpZGVkIGJ5Ci0g
ICAgdGhlIG51bWJlciBvZiBzcGFjZXMuCi0gKi8KLXN0YXRpYyBxdWludDMyIHBhcnNlV2ViU29j
a2V0Q2hhbGxlbmdlTnVtYmVyKFFTdHJpbmcgZmllbGQpCi17Ci0gICAgUVN0cmluZyBuU3RyaW5n
OwotICAgIGludCBudW1TcGFjZXMgPSAwOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmllbGQu
c2l6ZSgpOyBpKyspIHsKLSAgICAgICAgUUNoYXIgYyA9IGZpZWxkW2ldOwotICAgICAgICBpZiAo
YyA9PSBRTGF0aW4xQ2hhcignICcpKQotICAgICAgICAgICAgbnVtU3BhY2VzKys7Ci0gICAgICAg
IGVsc2UgaWYgKChjID49IFFMYXRpbjFDaGFyKCcwJykpICYmIChjIDw9IFFMYXRpbjFDaGFyKCc5
JykpKQotICAgICAgICAgICAgblN0cmluZy5hcHBlbmQoYyk7Ci0gICAgfQotICAgIHF1aW50MzIg
bnVtID0gblN0cmluZy50b1VMb25nKCk7Ci0gICAgcXVpbnQzMiByZXN1bHQgPSAobnVtU3BhY2Vz
ID8gKG51bSAvIG51bVNwYWNlcykgOiBudW0pOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgU0hB
MSBzaGExOworICAgIFZlY3Rvcjx1aW50OF90LCAyMD4gZGlnZXN0OworICAgIFZlY3RvcjxjaGFy
PiBlbmNvZGVkOworICAgIFFCeXRlQXJyYXkgdG9IYXNoKCIyNThFQUZBNS1FOTE0LTQ3REEtOTVD
QS1DNUFCMERDODVCMTEiKTsKKyAgICB0b0hhc2gucHJlcGVuZChrZXkpOworICAgIHNoYTEuYWRk
Qnl0ZXMoKHVpbnQ4X3QqKXRvSGFzaC5kYXRhKCksIHRvSGFzaC5zaXplKCkpOworICAgIHNoYTEu
Y29tcHV0ZUhhc2goZGlnZXN0KTsKKyAgICBiYXNlNjRFbmNvZGUoKGNoYXIqKWRpZ2VzdC5kYXRh
KCksIGRpZ2VzdC5zaXplKCksIGVuY29kZWQpOworICAgIHJldHVybiBRQnl0ZUFycmF5KGVuY29k
ZWQuZGF0YSgpLCBlbmNvZGVkLnNpemUoKSk7CiB9CiAKIHN0YXRpYyBJbnNwZWN0b3JTZXJ2ZXJR
dCogc19pbnNwZWN0b3JTZXJ2ZXI7CkBAIC0xOTIsNyArMTY3LDcgQEAgdm9pZCBJbnNwZWN0b3JT
ZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp0Y3BSZWFkeVJlYWQoKQogICAgICAgICAgICAgICAgIG1f
cGF0aCA9IGhlYWRlci5wYXRoKCk7CiAgICAgICAgICAgICAgICAgbV9jb250ZW50VHlwZSA9IGhl
YWRlci5jb250ZW50VHlwZSgpLnRvTGF0aW4xKCk7CiAgICAgICAgICAgICAgICAgbV9jb250ZW50
TGVuZ3RoID0gaGVhZGVyLmNvbnRlbnRMZW5ndGgoKTsKLSAgICAgICAgICAgICAgICBpZiAoaGVh
ZGVyLmhhc0tleShRTGF0aW4xU3RyaW5nKCJVcGdyYWRlIikpICYmIChoZWFkZXIudmFsdWUoUUxh
dGluMVN0cmluZygiVXBncmFkZSIpKSA9PSBRTGF0aW4xU3RyaW5nKCJXZWJTb2NrZXQiKSkpCisg
ICAgICAgICAgICAgICAgaWYgKGhlYWRlci5oYXNLZXkoUUxhdGluMVN0cmluZygiVXBncmFkZSIp
KSAmJiAoaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIlVwZ3JhZGUiKSkgPT0gUUxhdGluMVN0
cmluZygid2Vic29ja2V0IikpKQogICAgICAgICAgICAgICAgICAgICBpc1dlYlNvY2tldCA9IHRy
dWU7CiAKICAgICAgICAgICAgICAgICBtX2RhdGEuY2xlYXIoKTsKQEAgLTIwOSwyNSArMTg0LDIw
IEBAIHZvaWQgSW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdDo6dGNwUmVhZHlSZWFkKCkK
ICAgICAgICAgICAgIC8vIHN3aXRjaCB0byB3ZWJzb2NrZXQtc3R5bGUgV2ViU29ja2V0U2Vydmlj
ZSBtZXNzYWdpbmcKICAgICAgICAgICAgIGlmIChtX3RjcENvbm5lY3Rpb24pIHsKICAgICAgICAg
ICAgICAgICBtX3RjcENvbm5lY3Rpb24tPmRpc2Nvbm5lY3QoU0lHTkFMKHJlYWR5UmVhZCgpKSk7
Ci0gICAgICAgICAgICAgICAgY29ubmVjdChtX3RjcENvbm5lY3Rpb24sIFNJR05BTChyZWFkeVJl
YWQoKSksIFNMT1Qod2ViU29ja2V0UmVhZHlSZWFkKCkpKTsKLQotICAgICAgICAgICAgICAgIFFC
eXRlQXJyYXkga2V5MyA9IG1fdGNwQ29ubmVjdGlvbi0+cmVhZCg4KTsKLQotICAgICAgICAgICAg
ICAgIHF1aW50MzIgbnVtYmVyMSA9IHBhcnNlV2ViU29ja2V0Q2hhbGxlbmdlTnVtYmVyKGhlYWRl
ci52YWx1ZShRTGF0aW4xU3RyaW5nKCJTZWMtV2ViU29ja2V0LUtleTEiKSkpOwotICAgICAgICAg
ICAgICAgIHF1aW50MzIgbnVtYmVyMiA9IHBhcnNlV2ViU29ja2V0Q2hhbGxlbmdlTnVtYmVyKGhl
YWRlci52YWx1ZShRTGF0aW4xU3RyaW5nKCJTZWMtV2ViU29ja2V0LUtleTIiKSkpOwotCi0gICAg
ICAgICAgICAgICAgY2hhciByZXNwb25zZURhdGFbMTZdOwotICAgICAgICAgICAgICAgIGdlbmVy
YXRlV2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2UobnVtYmVyMSwgbnVtYmVyMiwgKHVuc2lnbmVk
IGNoYXIqKWtleTMuZGF0YSgpLCAodW5zaWduZWQgY2hhciopcmVzcG9uc2VEYXRhKTsKLSAgICAg
ICAgICAgICAgICBRQnl0ZUFycmF5IHJlc3BvbnNlKHJlc3BvbnNlRGF0YSwgc2l6ZW9mKHJlc3Bv
bnNlRGF0YSkpOworICAgICAgICAgICAgICAgIGNvbm5lY3QobV90Y3BDb25uZWN0aW9uLCBTSUdO
QUwocmVhZHlSZWFkKCkpLCBTTE9UKHdlYlNvY2tldFJlYWR5UmVhZCgpKSwgUXQ6OlF1ZXVlZENv
bm5lY3Rpb24pOwogCisgICAgICAgICAgICAgICAgUUJ5dGVBcnJheSBrZXkgPSBoZWFkZXIudmFs
dWUoUUxhdGluMVN0cmluZygiU2VjLVdlYlNvY2tldC1LZXkiKSkudG9MYXRpbjEoKTsKKyAgICAg
ICAgICAgICAgICBRU3RyaW5nIGFjY2VwdCA9IFFTdHJpbmc6OmZyb21MYXRpbjEoZ2VuZXJhdGVX
ZWJTb2NrZXRDaGFsbGVuZ2VSZXNwb25zZShrZXkpKTsKKyAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICBXZWJLaXQ6OlFIdHRwUmVzcG9uc2VIZWFkZXIgcmVzcG9uc2VIZWFkZXIoMTAx
LCBRTGF0aW4xU3RyaW5nKCJXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlIiksIDEsIDEpOwog
ICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFMYXRpbjFTdHJpbmcoIlVw
Z3JhZGUiKSwgaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIlVwZ3JhZGUiKSkpOwogICAgICAg
ICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFMYXRpbjFTdHJpbmcoIkNvbm5lY3Rp
b24iKSwgaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIkNvbm5lY3Rpb24iKSkpOwotICAgICAg
ICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFMYXRpbjFTdHJpbmcoIlNlYy1XZWJT
b2NrZXQtT3JpZ2luIiksIGhlYWRlci52YWx1ZShRTGF0aW4xU3RyaW5nKCJPcmlnaW4iKSkpOwot
ICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFMYXRpbjFTdHJpbmcoIlNl
Yy1XZWJTb2NrZXQtTG9jYXRpb24iKSwgKFFMYXRpbjFTdHJpbmcoIndzOi8vIikgKyBoZWFkZXIu
dmFsdWUoUUxhdGluMVN0cmluZygiSG9zdCIpKSArIG1fcGF0aCkpOwotICAgICAgICAgICAgICAg
IHJlc3BvbnNlSGVhZGVyLnNldENvbnRlbnRMZW5ndGgocmVzcG9uc2Uuc2l6ZSgpKTsKKyAgICAg
ICAgICAgICAgICByZXNwb25zZUhlYWRlci5zZXRWYWx1ZShRTGF0aW4xU3RyaW5nKCJTZWMtV2Vi
U29ja2V0LUFjY2VwdCIpLCBhY2NlcHQpOworICAgICAgICAgICAgICAgIAorLy8gICAgICAgICAg
ICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFMYXRpbjFTdHJpbmcoIlNlYy1XZWJTb2Nr
ZXQtT3JpZ2luIiksIGhlYWRlci52YWx1ZShRTGF0aW4xU3RyaW5nKCJPcmlnaW4iKSkpOworLy8g
ICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFMYXRpbjFTdHJpbmcoIlNl
Yy1XZWJTb2NrZXQtTG9jYXRpb24iKSwgKFFMYXRpbjFTdHJpbmcoIndzOi8vIikgKyBoZWFkZXIu
dmFsdWUoUUxhdGluMVN0cmluZygiSG9zdCIpKSArIG1fcGF0aCkpOwogICAgICAgICAgICAgICAg
IG1fdGNwQ29ubmVjdGlvbi0+d3JpdGUocmVzcG9uc2VIZWFkZXIudG9TdHJpbmcoKS50b0xhdGlu
MSgpKTsKLSAgICAgICAgICAgICAgICBtX3RjcENvbm5lY3Rpb24tPndyaXRlKHJlc3BvbnNlKTsK
Ky8vICAgICAgICAgICAgICAgICBtX3RjcENvbm5lY3Rpb24tPndyaXRlKHJlc3BvbnNlKTsKICAg
ICAgICAgICAgICAgICBtX3RjcENvbm5lY3Rpb24tPmZsdXNoKCk7CiAKICAgICAgICAgICAgICAg
ICBpZiAoKHdvcmRzLnNpemUoKSA9PSA0KQpAQCAtMzA2LDI2ICsyNzYsNDQgQEAgdm9pZCBJbnNw
ZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp0Y3BDb25uZWN0aW9uRGlzY29ubmVjdGVkKCkK
ICAgICBtX3RjcENvbm5lY3Rpb24gPSAwOwogfQogCi1pbnQgSW5zcGVjdG9yU2VydmVyUmVxdWVz
dEhhbmRsZXJRdDo6d2ViU29ja2V0U2VuZChRQnl0ZUFycmF5IHBheWxvYWQpCitpbnQgSW5zcGVj
dG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdDo6d2ViU29ja2V0U2VuZChjb25zdCBRU3RyaW5nJiBt
ZXNzYWdlKQogewogICAgIFFfQVNTRVJUKG1fdGNwQ29ubmVjdGlvbik7Ci0gICAgbV90Y3BDb25u
ZWN0aW9uLT5wdXRDaGFyKDB4MDApOwotICAgIGludCBuQnl0ZXMgPSBtX3RjcENvbm5lY3Rpb24t
PndyaXRlKHBheWxvYWQpOwotICAgIG1fdGNwQ29ubmVjdGlvbi0+cHV0Q2hhcigweEZGKTsKLSAg
ICBtX3RjcENvbm5lY3Rpb24tPmZsdXNoKCk7Ci0gICAgcmV0dXJuIG5CeXRlczsKKyAgICBRQnl0
ZUFycmF5IHBheWxvYWQgPSBtZXNzYWdlLnRvVXRmOCgpOworICAgIHJldHVybiB3ZWJTb2NrZXRT
ZW5kKHBheWxvYWQuZGF0YSgpLCBwYXlsb2FkLnNpemUoKSk7CiB9CiAKIGludCBJbnNwZWN0b3JT
ZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRTZW5kKGNvbnN0IGNoYXIqIGRhdGEsIHNp
emVfdCBsZW5ndGgpCiB7CiAgICAgUV9BU1NFUlQobV90Y3BDb25uZWN0aW9uKTsKLSAgICBtX3Rj
cENvbm5lY3Rpb24tPnB1dENoYXIoMHgwMCk7CisgICAgbV90Y3BDb25uZWN0aW9uLT5wdXRDaGFy
KDB4ODEpOworICAgIGlmIChsZW5ndGggPD0gMTI1KQorICAgICAgICBtX3RjcENvbm5lY3Rpb24t
PnB1dENoYXIoc3RhdGljX2Nhc3Q8dWludDhfdD4obGVuZ3RoKSk7CisgICAgZWxzZSBpZiAobGVu
Z3RoIDw9IHBvdygyLCAxNikpIHsKKyAgICAgICAgbV90Y3BDb25uZWN0aW9uLT5wdXRDaGFyKDEy
Nik7CisgICAgICAgIHF1aW50MTYgbGVuZ3RoMTYgPSBxVG9CaWdFbmRpYW48cXVpbnQxNj4oc3Rh
dGljX2Nhc3Q8cXVpbnQxNj4obGVuZ3RoKSk7CisgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+d3Jp
dGUocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmxlbmd0aDE2KSwgMik7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgbV90Y3BDb25uZWN0aW9uLT5wdXRDaGFyKDEyNyk7CisgICAgICAgIHF1aW50NjQg
bGVuZ3RoNjQgPSBxVG9CaWdFbmRpYW48cXVpbnQ2ND4oc3RhdGljX2Nhc3Q8cXVpbnQ2ND4obGVu
Z3RoKSk7CisgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+d3JpdGUocmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4oJmxlbmd0aDY0KSwgOCk7CisgICAgfQogICAgIGludCBuQnl0ZXMgPSBtX3RjcENvbm5l
Y3Rpb24tPndyaXRlKGRhdGEsIGxlbmd0aCk7Ci0gICAgbV90Y3BDb25uZWN0aW9uLT5wdXRDaGFy
KDB4RkYpOwogICAgIG1fdGNwQ29ubmVjdGlvbi0+Zmx1c2goKTsKICAgICByZXR1cm4gbkJ5dGVz
OwogfQogCitzdGF0aWMgUUJ5dGVBcnJheSBhcHBseU1hc2soY29uc3QgUUJ5dGVBcnJheSYgcGF5
bG9hZCwgY29uc3QgUUJ5dGVBcnJheSYgbWFza2luZ0tleSkKK3sKKyAgICBRX0FTU0VSVChtYXNr
aW5nS2V5LnNpemUoKSA9PSA0KTsKKyAgICBRQnl0ZUFycmF5IHVubWFza2VkUGF5bG9hZDsKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHBheWxvYWQuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY2hh
ciB1bm1hc2tlZEJ5dGUgPSBwYXlsb2FkW2ldIF4gbWFza2luZ0tleVtpICUgNF07CisgICAgICAg
IHVubWFza2VkUGF5bG9hZC5hcHBlbmQodW5tYXNrZWRCeXRlKTsKKyAgICB9CisgICAgcmV0dXJu
IHVubWFza2VkUGF5bG9hZDsKK30KKwogdm9pZCBJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxl
clF0Ojp3ZWJTb2NrZXRSZWFkeVJlYWQoKQogewogICAgIFFfQVNTRVJUKG1fdGNwQ29ubmVjdGlv
bik7CkBAIC0zMzMsMzkgKzMyMSw1MSBAQCB2b2lkIEluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5k
bGVyUXQ6OndlYlNvY2tldFJlYWR5UmVhZCgpCiAgICAgICAgIHJldHVybjsKICAgICBRQnl0ZUFy
cmF5IGNvbnRlbnQgPSBtX3RjcENvbm5lY3Rpb24tPnJlYWQobV90Y3BDb25uZWN0aW9uLT5ieXRl
c0F2YWlsYWJsZSgpKTsKICAgICBtX2RhdGEuYXBwZW5kKGNvbnRlbnQpOwotICAgIHdoaWxlICht
X2RhdGEuc2l6ZSgpID4gMCkgewotICAgICAgICAvLyBmaXJzdCBieXRlIGluIHdlYnNvY2tldCBm
cmFtZSBzaG91bGQgYmUgMAotICAgICAgICBRX0FTU0VSVCghbV9kYXRhWzBdKTsKLQotICAgICAg
ICAvLyBTdGFydCBvZiBXZWJTb2NrZXQgZnJhbWUgaXMgaW5kaWNhdGVkIGJ5IDAKLSAgICAgICAg
aWYgKG1fZGF0YVswXSkgewotICAgICAgICAgICAgcUNyaXRpY2FsKCkgPDwgICJ3ZWJTb2NrZXRS
ZWFkeVJlYWQ6IHVua25vd24gZnJhbWUgdHlwZSIgPDwgbV9kYXRhWzBdOwotICAgICAgICAgICAg
bV9kYXRhLmNsZWFyKCk7Ci0gICAgICAgICAgICBtX3RjcENvbm5lY3Rpb24tPmNsb3NlKCk7Ci0g
ICAgICAgICAgICByZXR1cm47CisgICAgd2hpbGUgKG1fZGF0YS5zaXplKCkgPiAwKSB7ICAgICAg
ICAKKworICAgICAgICBib29sIGlzTWFza2VkID0gbV9kYXRhWzFdICYgMHg4MDsKKyAgICAgICAg
cXVpbnQ2NCBwYXlsb2FkTGVuID0gbV9kYXRhWzFdICYgMHg3RjsKKyAgICAgICAgaW50IHBvcyA9
IDI7CisgICAgICAgIAorICAgICAgICBpZiAocGF5bG9hZExlbiA9PSAxMjYpIHsKKyAgICAgICAg
ICAgIHBheWxvYWRMZW4gPSBxRnJvbUJpZ0VuZGlhbjxxdWludDE2PigqcmVpbnRlcnByZXRfY2Fz
dDxxdWludDE2Kj4obV9kYXRhLm1pZChwb3MsIDIpLmRhdGEoKSkpOworICAgICAgICAgICAgcG9z
ID0gNDsKKyAgICAgICAgfSBlbHNlIGlmIChwYXlsb2FkTGVuID09IDEyNykgeworICAgICAgICAg
ICAgcGF5bG9hZExlbiA9IHFGcm9tQmlnRW5kaWFuPHF1aW50NjQ+KCpyZWludGVycHJldF9jYXN0
PHF1aW50NjQqPihtX2RhdGEubWlkKHBvcywgOCkuZGF0YSgpKSk7CisgICAgICAgICAgICBwb3Mg
PSA4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBRQnl0ZUFycmF5IHBheWxvYWQ7Cisg
ICAgICAgIGlmIChpc01hc2tlZCkgeworICAgICAgICAgICAgUUJ5dGVBcnJheSBtYXNraW5nS2V5
ID0gbV9kYXRhLm1pZChwb3MsIDQpOworICAgICAgICAgICAgcG9zICs9IDQ7CisgICAgICAgICAg
ICBwYXlsb2FkID0gYXBwbHlNYXNrKG1fZGF0YS5taWQocG9zLCBwYXlsb2FkTGVuKSwgbWFza2lu
Z0tleSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcGF5bG9hZCA9IG1fZGF0YS5taWQo
cG9zLCBwYXlsb2FkTGVuKTsKKyAgICAgICAgCisgICAgICAgIC8vIEhhbmRsZSBmcmFnbWVudGF0
aW9uCisgICAgICAgIGlmICghKG1fZGF0YVswXSAmIDB4ODApKSB7IC8vIE5vbi1sYXN0IGZyYWdt
ZW50ZWQgcGF5bG9hZAorICAgICAgICAgICAgbV9mcmFnbWVudGVkUGF5bG9hZC5hcHBlbmQocGF5
bG9hZCk7ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fZGF0YSA9IG1fZGF0YS5taWQo
cG9zICsgcGF5bG9hZExlbik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgaWYgKCEobV9kYXRhWzBdICYgMHgwRikpIHsgLy8gTGFzdCBmcmFnbWVu
dAorICAgICAgICAgICAgbV9mcmFnbWVudGVkUGF5bG9hZC5hcHBlbmQocGF5bG9hZCk7ICAgCisg
ICAgICAgICAgICBwYXlsb2FkID0gbV9mcmFnbWVudGVkUGF5bG9hZDsKKyAgICAgICAgICAgIG1f
ZnJhZ21lbnRlZFBheWxvYWQuY2xlYXIoKTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIEVuZCBv
ZiBXZWJTb2NrZXQgZnJhbWUgaW5kaWNhdGVkIGJ5IDB4ZmYuCi0gICAgICAgIGludCBwb3MgPSBt
X2RhdGEuaW5kZXhPZigweGZmLCAxKTsKLSAgICAgICAgaWYgKHBvcyA8IDEpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgLy8gQWZ0ZXIgYWJvdmUgY2hlY2tzLCBsZW5ndGggd2lsbCBi
ZSA+PSAwLgotICAgICAgICBzaXplX3QgbGVuZ3RoID0gcG9zIC0gMTsKLSAgICAgICAgaWYgKGxl
bmd0aCA8PSAwKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFFCeXRlQXJyYXkgcGF5
bG9hZCA9IG1fZGF0YS5taWQoMSwgbGVuZ3RoKTsKLQorICAgICAgICAvLyBSZW1vdmUgdGhpcyBX
ZWJTb2NrZXQgbWVzc2FnZSBmcm9tIG1fZGF0YSAocGF5bG9hZCwgc3RhcnQtb2YtZnJhbWUgYnl0
ZSwgZW5kLW9mLWZyYW1lIGJ5dGUpLgorICAgICAgICAvLyBEbyBpdCBiZWZvcmUgZGlzcGF0Y2hp
bmcgdGhlIHBheWxvYWQsIGFzIGEgbmVzdGVkIGV2ZW50IGxvb3AgbWF5IGNhdXNlIHdlYlNvY2tl
dFJlYWR5UmVhZCB0byBiZSByZS1lbnRlcmVkCisgICAgICAgIG1fZGF0YSA9IG1fZGF0YS5taWQo
cG9zICsgcGF5bG9hZExlbik7CisgICAgICAgIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAg
ICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkgewogICAgICAgICAgIEluc3BlY3RvckNvbnRyb2xs
ZXIqIGluc3BlY3RvckNvbnRyb2xsZXIgPSBtX2luc3BlY3RvckNsaWVudC0+bV9pbnNwZWN0ZWRX
ZWJQYWdlLT5kLT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7CiAgICAgICAgICAgaW5zcGVj
dG9yQ29udHJvbGxlci0+ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKFFTdHJpbmc6OmZyb21V
dGY4KHBheWxvYWQpKTsKICAgICAgICAgfQogI2VuZGlmCi0KLSAgICAgICAgLy8gUmVtb3ZlIHRo
aXMgV2ViU29ja2V0IG1lc3NhZ2UgZnJvbSBtX2RhdGEgKHBheWxvYWQsIHN0YXJ0LW9mLWZyYW1l
IGJ5dGUsIGVuZC1vZi1mcmFtZSBieXRlKS4KLSAgICAgICAgbV9kYXRhID0gbV9kYXRhLm1pZChs
ZW5ndGggKyAyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQuaAppbmRleCAwNjM4Zjg2MTQ0YzkyNWMzODc5ZDdi
MTAwMzc1ZGJmYmFkODllNWNjLi42MzNiZGI4MjMyOWRkODU0MGI4NDg2NGRkOTkzOWM1NmI2YWMy
M2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
clNlcnZlclF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JTZXJ2ZXJRdC5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIEluc3BlY3RvclNl
cnZlclJlcXVlc3RIYW5kbGVyUXQoUVRjcFNvY2tldCAqdGNwQ29ubmVjdGlvbiwgSW5zcGVjdG9y
U2VydmVyUXQgKnNlcnZlcik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yU2VydmVyUmVxdWVzdEhh
bmRsZXJRdCgpOwotICAgIHZpcnR1YWwgaW50IHdlYlNvY2tldFNlbmQoUUJ5dGVBcnJheSBwYXls
b2FkKTsKKyAgICB2aXJ0dWFsIGludCB3ZWJTb2NrZXRTZW5kKGNvbnN0IFFTdHJpbmcmIG1lc3Nh
Z2UpOwogICAgIHZpcnR1YWwgaW50IHdlYlNvY2tldFNlbmQoY29uc3QgY2hhciAqcGF5bG9hZCwg
c2l6ZV90IGxlbmd0aCk7CiAKIHByaXZhdGUgc2xvdHM6CkBAIC04OSw2ICs4OSw3IEBAIHByaXZh
dGU6CiAgICAgaW50IG1fY29udGVudExlbmd0aDsKICAgICBib29sIG1fZW5kT2ZIZWFkZXJzOwog
ICAgIFFCeXRlQXJyYXkgbV9kYXRhOworICAgIFFCeXRlQXJyYXkgbV9mcmFnbWVudGVkUGF5bG9h
ZDsKICAgICBJbnNwZWN0b3JDbGllbnRRdCogbV9pbnNwZWN0b3JDbGllbnQ7CiAKICAgICB2b2lk
IGhhbmRsZUluc3BlY3RvclJlcXVlc3QoUVN0cmluZ0xpc3Qgd29yZHMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123980</attachid>
            <date>2012-01-25 11:48:04 -0800</date>
            <delta_ts>2012-09-11 07:05:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77031-20120125144802.patch</filename>
            <type>text/plain</type>
            <size>12006</size>
            <attacher name="Leo Franchi">leo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDhhNTBmNjU2Zjc1
MDA5YzBlNWJjM2YwNzNjMWI2YWE4MTBhNDBmZGUuLjZlMjc3ZTJjYmZkZWM5ZDgzYjE0MGJmMDFm
Y2I1NDg3NzRkZmI3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDEt
MjUgIExlbyBGcmFuY2hpICA8bGZyYW5jaGlAa2RlLm9yZz4KKworICAgICAgICBbUXRdIEluc3Bl
Y3RvciBXZWJTb2NrZXQgYmFja2VuZCBwcm90b2NvbCB1cGRhdGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MDMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxzbyBhZGRzIHN1cHBvcnQgZm9yIG11bHRp
LWZyYW1lIG1lc3NhZ2VzIGFuZCBub24tdGV4dCBtZXNzYWdlcy4KKyAgICAgICAgVGhhbmtzIHRv
IEpvY2VseW4gVHVyY290dGUgZm9yIG1vc3Qgb2YgdGhlIFdlYlNvY2tldCB1cGRhdGUgY29kZSEK
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZlclF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmdlbmVyYXRlV2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdDo6dGNwUmVhZHlSZWFk
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6Ondl
YlNvY2tldFNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlNYXNrKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJR
dDo6d2ViU29ja2V0UmVhZHlSZWFkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JTZXJ2ZXJRdC5oOgorICAgICAgICAoSW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdCk6
CisKIDIwMTItMDEtMTcgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hl
c2xhdkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBEZWJ1ZyBidWlsZCBmYWlscyB3aXRoIGRl
YnVnIHF0NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JTZXJ2ZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvclNlcnZlclF0LmNwcAppbmRleCBmZGMxNGY1MzM2MjhkMDM5OGJmYmEzNTk1MTVhNjEyY2Mw
Mjc5YjZlLi5mYzVlNGY5MTQwNTQwZmFkNWQ1MWY5YjhmZjA4NWU5MWI2MTM1Yzc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZlclF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZlclF0
LmNwcApAQCAtMjAsOSArMjAsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JTZXJ2ZXJRdC5oIgogCisjaW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQ2xpZW50UXQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCi0jaW5j
bHVkZSAiTUQ1LmgiCisjaW5jbHVkZSAiU0hBMS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJxaHR0cGhlYWRlcl9wLmgiCiAjaW5jbHVkZSAicXdlYnBhZ2UuaCIKQEAgLTQwLDQ1ICs0
MSwxOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvKiEKLSAgICBDb21wdXRlcyB0aGUgV2Vi
U29ja2V0IGhhbmRzaGFrZSByZXNwb25zZSBnaXZlbiB0aGUgdHdvIGNoYWxsZW5nZSBudW1iZXJz
IGFuZCBrZXkzLgorICAgIENvbXB1dGVzIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlIHJlc3BvbnNl
IGdpdmVuIHRoZSBpbnB1dCBrZXkKICAqLwotc3RhdGljIHZvaWQgZ2VuZXJhdGVXZWJTb2NrZXRD
aGFsbGVuZ2VSZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJfdCBudW1iZXIyLCBjb25z
dCB1bnNpZ25lZCBjaGFyIGtleTNbOF0sIHVuc2lnbmVkIGNoYXIgcmVzcG9uc2VbMTZdKQorc3Rh
dGljIFFCeXRlQXJyYXkgZ2VuZXJhdGVXZWJTb2NrZXRDaGFsbGVuZ2VSZXNwb25zZShjb25zdCBR
Qnl0ZUFycmF5JiBrZXkpCiB7Ci0gICAgdWludDhfdCBjaGFsbGVuZ2VbMTZdOwotICAgIHFUb0Jp
Z0VuZGlhbjxxaW50MzI+KG51bWJlcjEsICZjaGFsbGVuZ2VbMF0pOwotICAgIHFUb0JpZ0VuZGlh
bjxxaW50MzI+KG51bWJlcjIsICZjaGFsbGVuZ2VbNF0pOwotICAgIG1lbWNweSgmY2hhbGxlbmdl
WzhdLCBrZXkzLCA4KTsKLSAgICBNRDUgbWQ1OwotICAgIG1kNS5hZGRCeXRlcyhjaGFsbGVuZ2Us
IHNpemVvZihjaGFsbGVuZ2UpKTsKLSAgICBWZWN0b3I8dWludDhfdCwgMTY+IGRpZ2VzdDsKLSAg
ICBtZDUuY2hlY2tzdW0oZGlnZXN0KTsKLSAgICBtZW1jcHkocmVzcG9uc2UsIGRpZ2VzdC5kYXRh
KCksIDE2KTsKLX0KLQotLyohCi0gICAgUGFyc2VzIGFuZCByZXR1cm5zIGEgV2ViU29ja2V0IGNo
YWxsZW5nZSBudW1iZXIgYWNjb3JkaW5nIHRvIHRoZQotICAgIG1ldGhvZCBzcGVjaWZpZWQgaW4g
dGhlIFdlYlNvY2tldCBwcm90b2NvbC4KLQotICAgIFRoZSBmaWVsZCBjb250YWlucyBudW1lcmlj
IGRpZ2l0cyBpbnRlcnNwZXJzZWQgd2l0aCBzcGFjZXMgYW5kCi0gICAgbm9uLW51bWVyaWMgZGln
aXRzLiBUaGUgcHJvdG9jb2wgaWdub3JlcyB0aGUgY2hhcmFjdGVycyB0aGF0IGFyZQotICAgIG5l
aXRoZXIgZGlnaXRzIG5vciBzcGFjZXMuIFRoZSBkaWdpdHMgYXJlIGNvbmNhdGVuYXRlZCBhbmQK
LSAgICBpbnRlcnByZXRlZCBhcyBhIGxvbmcgaW50LiBUaGUgcmVzdWx0IGlzIHRoaXMgbnVtYmVy
IGRpdmlkZWQgYnkKLSAgICB0aGUgbnVtYmVyIG9mIHNwYWNlcy4KLSAqLwotc3RhdGljIHF1aW50
MzIgcGFyc2VXZWJTb2NrZXRDaGFsbGVuZ2VOdW1iZXIoUVN0cmluZyBmaWVsZCkKLXsKLSAgICBR
U3RyaW5nIG5TdHJpbmc7Ci0gICAgaW50IG51bVNwYWNlcyA9IDA7Ci0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBmaWVsZC5zaXplKCk7IGkrKykgewotICAgICAgICBRQ2hhciBjID0gZmllbGRbaV07
Ci0gICAgICAgIGlmIChjID09IFFMYXRpbjFDaGFyKCcgJykpCi0gICAgICAgICAgICBudW1TcGFj
ZXMrKzsKLSAgICAgICAgZWxzZSBpZiAoKGMgPj0gUUxhdGluMUNoYXIoJzAnKSkgJiYgKGMgPD0g
UUxhdGluMUNoYXIoJzknKSkpCi0gICAgICAgICAgICBuU3RyaW5nLmFwcGVuZChjKTsKLSAgICB9
Ci0gICAgcXVpbnQzMiBudW0gPSBuU3RyaW5nLnRvVUxvbmcoKTsKLSAgICBxdWludDMyIHJlc3Vs
dCA9IChudW1TcGFjZXMgPyAobnVtIC8gbnVtU3BhY2VzKSA6IG51bSk7Ci0gICAgcmV0dXJuIHJl
c3VsdDsKKyAgICBTSEExIHNoYTE7CisgICAgVmVjdG9yPHVpbnQ4X3QsIDIwPiBkaWdlc3Q7Cisg
ICAgVmVjdG9yPGNoYXI+IGVuY29kZWQ7CisgICAgUUJ5dGVBcnJheSB0b0hhc2goIjI1OEVBRkE1
LUU5MTQtNDdEQS05NUNBLUM1QUIwREM4NUIxMSIpOworICAgIHRvSGFzaC5wcmVwZW5kKGtleSk7
CisgICAgc2hhMS5hZGRCeXRlcygodWludDhfdCopdG9IYXNoLmRhdGEoKSwgdG9IYXNoLnNpemUo
KSk7CisgICAgc2hhMS5jb21wdXRlSGFzaChkaWdlc3QpOworICAgIGJhc2U2NEVuY29kZSgoY2hh
ciopZGlnZXN0LmRhdGEoKSwgZGlnZXN0LnNpemUoKSwgZW5jb2RlZCk7CisgICAgcmV0dXJuIFFC
eXRlQXJyYXkoZW5jb2RlZC5kYXRhKCksIGVuY29kZWQuc2l6ZSgpKTsKIH0KIAogc3RhdGljIElu
c3BlY3RvclNlcnZlclF0KiBzX2luc3BlY3RvclNlcnZlcjsKQEAgLTE5Miw3ICsxNjcsNyBAQCB2
b2lkIEluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OnRjcFJlYWR5UmVhZCgpCiAgICAg
ICAgICAgICAgICAgbV9wYXRoID0gaGVhZGVyLnBhdGgoKTsKICAgICAgICAgICAgICAgICBtX2Nv
bnRlbnRUeXBlID0gaGVhZGVyLmNvbnRlbnRUeXBlKCkudG9MYXRpbjEoKTsKICAgICAgICAgICAg
ICAgICBtX2NvbnRlbnRMZW5ndGggPSBoZWFkZXIuY29udGVudExlbmd0aCgpOwotICAgICAgICAg
ICAgICAgIGlmIChoZWFkZXIuaGFzS2V5KFFMYXRpbjFTdHJpbmcoIlVwZ3JhZGUiKSkgJiYgKGhl
YWRlci52YWx1ZShRTGF0aW4xU3RyaW5nKCJVcGdyYWRlIikpID09IFFMYXRpbjFTdHJpbmcoIldl
YlNvY2tldCIpKSkKKyAgICAgICAgICAgICAgICBpZiAoaGVhZGVyLmhhc0tleShRTGF0aW4xU3Ry
aW5nKCJVcGdyYWRlIikpICYmIChoZWFkZXIudmFsdWUoUUxhdGluMVN0cmluZygiVXBncmFkZSIp
KSA9PSBRTGF0aW4xU3RyaW5nKCJ3ZWJzb2NrZXQiKSkpCiAgICAgICAgICAgICAgICAgICAgIGlz
V2ViU29ja2V0ID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIG1fZGF0YS5jbGVhcigpOwpAQCAt
MjExLDIzICsxODYsMTQgQEAgdm9pZCBJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp0
Y3BSZWFkeVJlYWQoKQogICAgICAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+ZGlzY29ubmVj
dChTSUdOQUwocmVhZHlSZWFkKCkpKTsKICAgICAgICAgICAgICAgICBjb25uZWN0KG1fdGNwQ29u
bmVjdGlvbiwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgU0xPVCh3ZWJTb2NrZXRSZWFkeVJlYWQoKSkp
OwogCi0gICAgICAgICAgICAgICAgUUJ5dGVBcnJheSBrZXkzID0gbV90Y3BDb25uZWN0aW9uLT5y
ZWFkKDgpOwotCi0gICAgICAgICAgICAgICAgcXVpbnQzMiBudW1iZXIxID0gcGFyc2VXZWJTb2Nr
ZXRDaGFsbGVuZ2VOdW1iZXIoaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIlNlYy1XZWJTb2Nr
ZXQtS2V5MSIpKSk7Ci0gICAgICAgICAgICAgICAgcXVpbnQzMiBudW1iZXIyID0gcGFyc2VXZWJT
b2NrZXRDaGFsbGVuZ2VOdW1iZXIoaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIlNlYy1XZWJT
b2NrZXQtS2V5MiIpKSk7Ci0KLSAgICAgICAgICAgICAgICBjaGFyIHJlc3BvbnNlRGF0YVsxNl07
Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdGVXZWJTb2NrZXRDaGFsbGVuZ2VSZXNwb25zZShudW1i
ZXIxLCBudW1iZXIyLCAodW5zaWduZWQgY2hhciopa2V5My5kYXRhKCksICh1bnNpZ25lZCBjaGFy
KilyZXNwb25zZURhdGEpOwotICAgICAgICAgICAgICAgIFFCeXRlQXJyYXkgcmVzcG9uc2UocmVz
cG9uc2VEYXRhLCBzaXplb2YocmVzcG9uc2VEYXRhKSk7Ci0KKyAgICAgICAgICAgICAgICBRQnl0
ZUFycmF5IGtleSA9IGhlYWRlci52YWx1ZShRTGF0aW4xU3RyaW5nKCJTZWMtV2ViU29ja2V0LUtl
eSIpKS50b0xhdGluMSgpOworICAgICAgICAgICAgICAgIFFTdHJpbmcgYWNjZXB0ID0gUVN0cmlu
Zzo6ZnJvbUxhdGluMShnZW5lcmF0ZVdlYlNvY2tldENoYWxsZW5nZVJlc3BvbnNlKGtleSkpOwor
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIFdlYktpdDo6UUh0dHBSZXNwb25zZUhl
YWRlciByZXNwb25zZUhlYWRlcigxMDEsIFFMYXRpbjFTdHJpbmcoIldlYlNvY2tldCBQcm90b2Nv
bCBIYW5kc2hha2UiKSwgMSwgMSk7CiAgICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXIuc2V0
VmFsdWUoUUxhdGluMVN0cmluZygiVXBncmFkZSIpLCBoZWFkZXIudmFsdWUoUUxhdGluMVN0cmlu
ZygiVXBncmFkZSIpKSk7CiAgICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXIuc2V0VmFsdWUo
UUxhdGluMVN0cmluZygiQ29ubmVjdGlvbiIpLCBoZWFkZXIudmFsdWUoUUxhdGluMVN0cmluZygi
Q29ubmVjdGlvbiIpKSk7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXIuc2V0VmFsdWUo
UUxhdGluMVN0cmluZygiU2VjLVdlYlNvY2tldC1PcmlnaW4iKSwgaGVhZGVyLnZhbHVlKFFMYXRp
bjFTdHJpbmcoIk9yaWdpbiIpKSk7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXIuc2V0
VmFsdWUoUUxhdGluMVN0cmluZygiU2VjLVdlYlNvY2tldC1Mb2NhdGlvbiIpLCAoUUxhdGluMVN0
cmluZygid3M6Ly8iKSArIGhlYWRlci52YWx1ZShRTGF0aW4xU3RyaW5nKCJIb3N0IikpICsgbV9w
YXRoKSk7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXIuc2V0Q29udGVudExlbmd0aChy
ZXNwb25zZS5zaXplKCkpOworICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVl
KFFMYXRpbjFTdHJpbmcoIlNlYy1XZWJTb2NrZXQtQWNjZXB0IiksIGFjY2VwdCk7CiAgICAgICAg
ICAgICAgICAgbV90Y3BDb25uZWN0aW9uLT53cml0ZShyZXNwb25zZUhlYWRlci50b1N0cmluZygp
LnRvTGF0aW4xKCkpOwotICAgICAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+d3JpdGUocmVz
cG9uc2UpOwogICAgICAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+Zmx1c2goKTsKIAogICAg
ICAgICAgICAgICAgIGlmICgod29yZHMuc2l6ZSgpID09IDQpCkBAIC0zMDYsMjYgKzI3Miw0NCBA
QCB2b2lkIEluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OnRjcENvbm5lY3Rpb25EaXNj
b25uZWN0ZWQoKQogICAgIG1fdGNwQ29ubmVjdGlvbiA9IDA7CiB9CiAKLWludCBJbnNwZWN0b3JT
ZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRTZW5kKFFCeXRlQXJyYXkgcGF5bG9hZCkK
K2ludCBJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRTZW5kKGNvbnN0
IFFTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgUV9BU1NFUlQobV90Y3BDb25uZWN0aW9uKTsKLSAg
ICBtX3RjcENvbm5lY3Rpb24tPnB1dENoYXIoMHgwMCk7Ci0gICAgaW50IG5CeXRlcyA9IG1fdGNw
Q29ubmVjdGlvbi0+d3JpdGUocGF5bG9hZCk7Ci0gICAgbV90Y3BDb25uZWN0aW9uLT5wdXRDaGFy
KDB4RkYpOwotICAgIG1fdGNwQ29ubmVjdGlvbi0+Zmx1c2goKTsKLSAgICByZXR1cm4gbkJ5dGVz
OworICAgIFFCeXRlQXJyYXkgcGF5bG9hZCA9IG1lc3NhZ2UudG9VdGY4KCk7CisgICAgcmV0dXJu
IHdlYlNvY2tldFNlbmQocGF5bG9hZC5kYXRhKCksIHBheWxvYWQuc2l6ZSgpKTsKIH0KIAogaW50
IEluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFNlbmQoY29uc3QgY2hh
ciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBRX0FTU0VSVChtX3RjcENvbm5lY3Rpb24p
OwotICAgIG1fdGNwQ29ubmVjdGlvbi0+cHV0Q2hhcigweDAwKTsKKyAgICBtX3RjcENvbm5lY3Rp
b24tPnB1dENoYXIoMHg4MSk7CisgICAgaWYgKGxlbmd0aCA8PSAxMjUpCisgICAgICAgIG1fdGNw
Q29ubmVjdGlvbi0+cHV0Q2hhcihzdGF0aWNfY2FzdDx1aW50OF90PihsZW5ndGgpKTsKKyAgICBl
bHNlIGlmIChsZW5ndGggPD0gcG93KDIsIDE2KSkgeworICAgICAgICBtX3RjcENvbm5lY3Rpb24t
PnB1dENoYXIoMTI2KTsKKyAgICAgICAgcXVpbnQxNiBsZW5ndGgxNiA9IHFUb0JpZ0VuZGlhbjxx
dWludDE2PihzdGF0aWNfY2FzdDxxdWludDE2PihsZW5ndGgpKTsKKyAgICAgICAgbV90Y3BDb25u
ZWN0aW9uLT53cml0ZShyZWludGVycHJldF9jYXN0PGNoYXIqPigmbGVuZ3RoMTYpLCAyKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBtX3RjcENvbm5lY3Rpb24tPnB1dENoYXIoMTI3KTsKKyAgICAg
ICAgcXVpbnQ2NCBsZW5ndGg2NCA9IHFUb0JpZ0VuZGlhbjxxdWludDY0PihzdGF0aWNfY2FzdDxx
dWludDY0PihsZW5ndGgpKTsKKyAgICAgICAgbV90Y3BDb25uZWN0aW9uLT53cml0ZShyZWludGVy
cHJldF9jYXN0PGNoYXIqPigmbGVuZ3RoNjQpLCA4KTsKKyAgICB9CiAgICAgaW50IG5CeXRlcyA9
IG1fdGNwQ29ubmVjdGlvbi0+d3JpdGUoZGF0YSwgbGVuZ3RoKTsKLSAgICBtX3RjcENvbm5lY3Rp
b24tPnB1dENoYXIoMHhGRik7CiAgICAgbV90Y3BDb25uZWN0aW9uLT5mbHVzaCgpOwogICAgIHJl
dHVybiBuQnl0ZXM7CiB9CiAKK3N0YXRpYyBRQnl0ZUFycmF5IGFwcGx5TWFzayhjb25zdCBRQnl0
ZUFycmF5JiBwYXlsb2FkLCBjb25zdCBRQnl0ZUFycmF5JiBtYXNraW5nS2V5KQoreworICAgIFFf
QVNTRVJUKG1hc2tpbmdLZXkuc2l6ZSgpID09IDQpOworICAgIFFCeXRlQXJyYXkgdW5tYXNrZWRQ
YXlsb2FkOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF5bG9hZC5zaXplKCk7ICsraSkgewor
ICAgICAgICBjaGFyIHVubWFza2VkQnl0ZSA9IHBheWxvYWRbaV0gXiBtYXNraW5nS2V5W2kgJSA0
XTsKKyAgICAgICAgdW5tYXNrZWRQYXlsb2FkLmFwcGVuZCh1bm1hc2tlZEJ5dGUpOworICAgIH0K
KyAgICByZXR1cm4gdW5tYXNrZWRQYXlsb2FkOworfQorCiB2b2lkIEluc3BlY3RvclNlcnZlclJl
cXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFJlYWR5UmVhZCgpCiB7CiAgICAgUV9BU1NFUlQobV90
Y3BDb25uZWN0aW9uKTsKQEAgLTMzMywzMCArMzE3LDQwIEBAIHZvaWQgSW5zcGVjdG9yU2VydmVy
UmVxdWVzdEhhbmRsZXJRdDo6d2ViU29ja2V0UmVhZHlSZWFkKCkKICAgICAgICAgcmV0dXJuOwog
ICAgIFFCeXRlQXJyYXkgY29udGVudCA9IG1fdGNwQ29ubmVjdGlvbi0+cmVhZChtX3RjcENvbm5l
Y3Rpb24tPmJ5dGVzQXZhaWxhYmxlKCkpOwogICAgIG1fZGF0YS5hcHBlbmQoY29udGVudCk7Ci0g
ICAgd2hpbGUgKG1fZGF0YS5zaXplKCkgPiAwKSB7Ci0gICAgICAgIC8vIGZpcnN0IGJ5dGUgaW4g
d2Vic29ja2V0IGZyYW1lIHNob3VsZCBiZSAwCi0gICAgICAgIFFfQVNTRVJUKCFtX2RhdGFbMF0p
OwotCi0gICAgICAgIC8vIFN0YXJ0IG9mIFdlYlNvY2tldCBmcmFtZSBpcyBpbmRpY2F0ZWQgYnkg
MAotICAgICAgICBpZiAobV9kYXRhWzBdKSB7Ci0gICAgICAgICAgICBxQ3JpdGljYWwoKSA8PCAg
IndlYlNvY2tldFJlYWR5UmVhZDogdW5rbm93biBmcmFtZSB0eXBlIiA8PCBtX2RhdGFbMF07Ci0g
ICAgICAgICAgICBtX2RhdGEuY2xlYXIoKTsKLSAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+
Y2xvc2UoKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICB3aGlsZSAobV9kYXRhLnNpemUoKSA+
IDApIHsgICAgICAgIAorICAgICAgICBib29sIGlzTWFza2VkID0gbV9kYXRhWzFdICYgMHg4MDsK
KyAgICAgICAgcXVpbnQ2NCBwYXlsb2FkTGVuID0gbV9kYXRhWzFdICYgMHg3RjsKKyAgICAgICAg
aW50IHBvcyA9IDI7CisgICAgICAgIAorICAgICAgICBpZiAocGF5bG9hZExlbiA9PSAxMjYpIHsK
KyAgICAgICAgICAgIHBheWxvYWRMZW4gPSBxRnJvbUJpZ0VuZGlhbjxxdWludDE2PigqcmVpbnRl
cnByZXRfY2FzdDxxdWludDE2Kj4obV9kYXRhLm1pZChwb3MsIDIpLmRhdGEoKSkpOworICAgICAg
ICAgICAgcG9zID0gNDsKKyAgICAgICAgfSBlbHNlIGlmIChwYXlsb2FkTGVuID09IDEyNykgewor
ICAgICAgICAgICAgcGF5bG9hZExlbiA9IHFGcm9tQmlnRW5kaWFuPHF1aW50NjQ+KCpyZWludGVy
cHJldF9jYXN0PHF1aW50NjQqPihtX2RhdGEubWlkKHBvcywgOCkuZGF0YSgpKSk7CisgICAgICAg
ICAgICBwb3MgPSA4OwogICAgICAgICB9Ci0KLSAgICAgICAgLy8gRW5kIG9mIFdlYlNvY2tldCBm
cmFtZSBpbmRpY2F0ZWQgYnkgMHhmZi4KLSAgICAgICAgaW50IHBvcyA9IG1fZGF0YS5pbmRleE9m
KDB4ZmYsIDEpOwotICAgICAgICBpZiAocG9zIDwgMSkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICAvLyBBZnRlciBhYm92ZSBjaGVja3MsIGxlbmd0aCB3aWxsIGJlID49IDAuCi0gICAg
ICAgIHNpemVfdCBsZW5ndGggPSBwb3MgLSAxOwotICAgICAgICBpZiAobGVuZ3RoIDw9IDApCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgUUJ5dGVBcnJheSBwYXlsb2FkID0gbV9kYXRh
Lm1pZCgxLCBsZW5ndGgpOwotCisgICAgICAgIAorICAgICAgICBRQnl0ZUFycmF5IHBheWxvYWQ7
CisgICAgICAgIGlmIChpc01hc2tlZCkgeworICAgICAgICAgICAgUUJ5dGVBcnJheSBtYXNraW5n
S2V5ID0gbV9kYXRhLm1pZChwb3MsIDQpOworICAgICAgICAgICAgcG9zICs9IDQ7CisgICAgICAg
ICAgICBwYXlsb2FkID0gYXBwbHlNYXNrKG1fZGF0YS5taWQocG9zLCBwYXlsb2FkTGVuKSwgbWFz
a2luZ0tleSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcGF5bG9hZCA9IG1fZGF0YS5t
aWQocG9zLCBwYXlsb2FkTGVuKTsKKyAgICAgICAgCisgICAgICAgIC8vIEhhbmRsZSBmcmFnbWVu
dGF0aW9uCisgICAgICAgIGlmICghKG1fZGF0YVswXSAmIDB4ODApKSB7IC8vIE5vbi1sYXN0IGZy
YWdtZW50ZWQgcGF5bG9hZAorICAgICAgICAgICAgbV9mcmFnbWVudGVkUGF5bG9hZC5hcHBlbmQo
cGF5bG9hZCk7ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fZGF0YSA9IG1fZGF0YS5t
aWQocG9zICsgcGF5bG9hZExlbik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgaWYgKCEobV9kYXRhWzBdICYgMHgwRikpIHsgLy8gTGFzdCBmcmFn
bWVudAorICAgICAgICAgICAgbV9mcmFnbWVudGVkUGF5bG9hZC5hcHBlbmQocGF5bG9hZCk7ICAg
CisgICAgICAgICAgICBwYXlsb2FkID0gbV9mcmFnbWVudGVkUGF5bG9hZDsKKyAgICAgICAgICAg
IG1fZnJhZ21lbnRlZFBheWxvYWQuY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICAKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBpZiAobV9pbnNwZWN0b3JDbGllbnQpIHsKICAgICAg
ICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyID0gbV9pbnNwZWN0
b3JDbGllbnQtPm1faW5zcGVjdGVkV2ViUGFnZS0+ZC0+cGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpOwpAQCAtMzY1LDcgKzM1OSw3IEBAIHZvaWQgSW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRs
ZXJRdDo6d2ViU29ja2V0UmVhZHlSZWFkKCkKICNlbmRpZgogCiAgICAgICAgIC8vIFJlbW92ZSB0
aGlzIFdlYlNvY2tldCBtZXNzYWdlIGZyb20gbV9kYXRhIChwYXlsb2FkLCBzdGFydC1vZi1mcmFt
ZSBieXRlLCBlbmQtb2YtZnJhbWUgYnl0ZSkuCi0gICAgICAgIG1fZGF0YSA9IG1fZGF0YS5taWQo
bGVuZ3RoICsgMik7CisgICAgICAgIG1fZGF0YSA9IG1fZGF0YS5taWQocG9zICsgcGF5bG9hZExl
bik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvclNlcnZlclF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvclNlcnZlclF0LmgKaW5kZXggMDYzOGY4NjE0NGM5MjVjMzg3OWQ3YjEwMDM3NWRi
ZmJhZDg5ZTVjYy4uNjMzYmRiODIzMjlkZDg1NDBiODQ4NjRkZDk5MzljNTZiNmFjMjNhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJR
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVy
UXQuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICBJbnNwZWN0b3JTZXJ2ZXJSZXF1
ZXN0SGFuZGxlclF0KFFUY3BTb2NrZXQgKnRjcENvbm5lY3Rpb24sIEluc3BlY3RvclNlcnZlclF0
ICpzZXJ2ZXIpOwogICAgIHZpcnR1YWwgfkluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQo
KTsKLSAgICB2aXJ0dWFsIGludCB3ZWJTb2NrZXRTZW5kKFFCeXRlQXJyYXkgcGF5bG9hZCk7Cisg
ICAgdmlydHVhbCBpbnQgd2ViU29ja2V0U2VuZChjb25zdCBRU3RyaW5nJiBtZXNzYWdlKTsKICAg
ICB2aXJ0dWFsIGludCB3ZWJTb2NrZXRTZW5kKGNvbnN0IGNoYXIgKnBheWxvYWQsIHNpemVfdCBs
ZW5ndGgpOwogCiBwcml2YXRlIHNsb3RzOgpAQCAtODksNiArODksNyBAQCBwcml2YXRlOgogICAg
IGludCBtX2NvbnRlbnRMZW5ndGg7CiAgICAgYm9vbCBtX2VuZE9mSGVhZGVyczsKICAgICBRQnl0
ZUFycmF5IG1fZGF0YTsKKyAgICBRQnl0ZUFycmF5IG1fZnJhZ21lbnRlZFBheWxvYWQ7CiAgICAg
SW5zcGVjdG9yQ2xpZW50UXQqIG1faW5zcGVjdG9yQ2xpZW50OwogCiAgICAgdm9pZCBoYW5kbGVJ
bnNwZWN0b3JSZXF1ZXN0KFFTdHJpbmdMaXN0IHdvcmRzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163354</attachid>
            <date>2012-09-11 07:05:39 -0700</date>
            <delta_ts>2012-09-12 05:47:12 -0700</delta_ts>
            <desc>Updated/rebased patch for updated websocket protocol version</desc>
            <filename>qt_webinspector_update_websocket_protocol.patch</filename>
            <type>text/plain</type>
            <size>11514</size>
            <attacher name="Leo Franchi">leo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKaW5kZXggOTk1YzA5Yi4uOWUyMzE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wOS0xMSAgTGVvIEZyYW5jaGkgIDxsZW9Aa2RhYi5jb20+CisKKyAg
ICAgICAgW1F0XSBJbnNwZWN0b3IgV2ViU29ja2V0IGJhY2tlbmQgcHJvdG9jb2wgdXBkYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzAzMQorCisg
ICAgICAgIEFsc28gYWRkcyBzdXBwb3J0IGZvciBtdWx0aS1mcmFtZSBtZXNzYWdlcyBhbmQgbm9u
LXRleHQgbWVzc2FnZXMuCisgICAgICAgIFRoYW5rcyB0byBKb2NlbHluIFR1cmNvdHRlIGZvciBt
b3N0IG9mIHRoZSBXZWJTb2NrZXQgdXBkYXRlIGNvZGUhCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2
ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRl
V2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
U2VydmVyUmVxdWVzdEhhbmRsZXJRdDo6dGNwUmVhZHlSZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFNlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6YXBwbHlNYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclNlcnZl
clJlcXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFJlYWR5UmVhZCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQuaDoKKyAgICAgICAgKEluc3BlY3RvclNlcnZlclJl
cXVlc3RIYW5kbGVyUXQpOgorCiAyMDEyLTA5LTA3ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxh
bGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFgxMSBHbG9iYWwgU2VsZWN0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZl
clF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVy
UXQuY3BwCmluZGV4IDE0ZjVkZDcuLjczYzQyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQuY3BwCkBAIC0zNCw1MSArMzQs
MjYgQEAKICNpbmNsdWRlIDxRVXJsPgogI2luY2x1ZGUgPFFXaWRnZXQ+CiAjaW5jbHVkZSA8cWVu
ZGlhbi5oPgotI2luY2x1ZGUgPHd0Zi9NRDUuaD4KKyNpbmNsdWRlIDx3dGYvU0hBMS5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvKiEKLSAgICBDb21wdXRlcyB0aGUgV2ViU29ja2V0
IGhhbmRzaGFrZSByZXNwb25zZSBnaXZlbiB0aGUgdHdvIGNoYWxsZW5nZSBudW1iZXJzIGFuZCBr
ZXkzLgorICAgIENvbXB1dGVzIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlIHJlc3BvbnNlIGdpdmVu
IHRoZSBpbnB1dCBrZXkKICAqLwotc3RhdGljIHZvaWQgZ2VuZXJhdGVXZWJTb2NrZXRDaGFsbGVu
Z2VSZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJfdCBudW1iZXIyLCBjb25zdCB1bnNp
Z25lZCBjaGFyIGtleTNbOF0sIHVuc2lnbmVkIGNoYXIgcmVzcG9uc2VbMTZdKQorc3RhdGljIFFC
eXRlQXJyYXkgZ2VuZXJhdGVXZWJTb2NrZXRDaGFsbGVuZ2VSZXNwb25zZShjb25zdCBRQnl0ZUFy
cmF5JiBrZXkpCiB7Ci0gICAgdWludDhfdCBjaGFsbGVuZ2VbMTZdOwotICAgIHFUb0JpZ0VuZGlh
bjxxaW50MzI+KG51bWJlcjEsICZjaGFsbGVuZ2VbMF0pOwotICAgIHFUb0JpZ0VuZGlhbjxxaW50
MzI+KG51bWJlcjIsICZjaGFsbGVuZ2VbNF0pOwotICAgIG1lbWNweSgmY2hhbGxlbmdlWzhdLCBr
ZXkzLCA4KTsKLSAgICBNRDUgbWQ1OwotICAgIG1kNS5hZGRCeXRlcyhjaGFsbGVuZ2UsIHNpemVv
ZihjaGFsbGVuZ2UpKTsKLSAgICBWZWN0b3I8dWludDhfdCwgMTY+IGRpZ2VzdDsKLSAgICBtZDUu
Y2hlY2tzdW0oZGlnZXN0KTsKLSAgICBtZW1jcHkocmVzcG9uc2UsIGRpZ2VzdC5kYXRhKCksIDE2
KTsKLX0KLQotLyohCi0gICAgUGFyc2VzIGFuZCByZXR1cm5zIGEgV2ViU29ja2V0IGNoYWxsZW5n
ZSBudW1iZXIgYWNjb3JkaW5nIHRvIHRoZQotICAgIG1ldGhvZCBzcGVjaWZpZWQgaW4gdGhlIFdl
YlNvY2tldCBwcm90b2NvbC4KLQotICAgIFRoZSBmaWVsZCBjb250YWlucyBudW1lcmljIGRpZ2l0
cyBpbnRlcnNwZXJzZWQgd2l0aCBzcGFjZXMgYW5kCi0gICAgbm9uLW51bWVyaWMgZGlnaXRzLiBU
aGUgcHJvdG9jb2wgaWdub3JlcyB0aGUgY2hhcmFjdGVycyB0aGF0IGFyZQotICAgIG5laXRoZXIg
ZGlnaXRzIG5vciBzcGFjZXMuIFRoZSBkaWdpdHMgYXJlIGNvbmNhdGVuYXRlZCBhbmQKLSAgICBp
bnRlcnByZXRlZCBhcyBhIGxvbmcgaW50LiBUaGUgcmVzdWx0IGlzIHRoaXMgbnVtYmVyIGRpdmlk
ZWQgYnkKLSAgICB0aGUgbnVtYmVyIG9mIHNwYWNlcy4KLSAqLwotc3RhdGljIHF1aW50MzIgcGFy
c2VXZWJTb2NrZXRDaGFsbGVuZ2VOdW1iZXIoUVN0cmluZyBmaWVsZCkKLXsKLSAgICBRU3RyaW5n
IG5TdHJpbmc7Ci0gICAgaW50IG51bVNwYWNlcyA9IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBmaWVsZC5zaXplKCk7IGkrKykgewotICAgICAgICBRQ2hhciBjID0gZmllbGRbaV07Ci0gICAg
ICAgIGlmIChjID09IFFMYXRpbjFDaGFyKCcgJykpCi0gICAgICAgICAgICBudW1TcGFjZXMrKzsK
LSAgICAgICAgZWxzZSBpZiAoKGMgPj0gUUxhdGluMUNoYXIoJzAnKSkgJiYgKGMgPD0gUUxhdGlu
MUNoYXIoJzknKSkpCi0gICAgICAgICAgICBuU3RyaW5nLmFwcGVuZChjKTsKLSAgICB9Ci0gICAg
cXVpbnQzMiBudW0gPSBuU3RyaW5nLnRvVUxvbmcoKTsKLSAgICBxdWludDMyIHJlc3VsdCA9IChu
dW1TcGFjZXMgPyAobnVtIC8gbnVtU3BhY2VzKSA6IG51bSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
KyAgICBTSEExIHNoYTE7CisgICAgVmVjdG9yPHVpbnQ4X3QsIDIwPiBkaWdlc3Q7CisgICAgVmVj
dG9yPGNoYXI+IGVuY29kZWQ7CisgICAgUUJ5dGVBcnJheSB0b0hhc2goIjI1OEVBRkE1LUU5MTQt
NDdEQS05NUNBLUM1QUIwREM4NUIxMSIpOworICAgIHRvSGFzaC5wcmVwZW5kKGtleSk7CisgICAg
c2hhMS5hZGRCeXRlcygodWludDhfdCopdG9IYXNoLmRhdGEoKSwgdG9IYXNoLnNpemUoKSk7Cisg
ICAgc2hhMS5jb21wdXRlSGFzaChkaWdlc3QpOworICAgIGJhc2U2NEVuY29kZSgoY2hhciopZGln
ZXN0LmRhdGEoKSwgZGlnZXN0LnNpemUoKSwgZW5jb2RlZCk7CisgICAgcmV0dXJuIFFCeXRlQXJy
YXkoZW5jb2RlZC5kYXRhKCksIGVuY29kZWQuc2l6ZSgpKTsKIH0KIAogc3RhdGljIEluc3BlY3Rv
clNlcnZlclF0KiBzX2luc3BlY3RvclNlcnZlcjsKQEAgLTE5Miw3ICsxNjcsNyBAQCB2b2lkIElu
c3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OnRjcFJlYWR5UmVhZCgpCiAgICAgICAgICAg
ICAgICAgbV9wYXRoID0gaGVhZGVyLnBhdGgoKTsKICAgICAgICAgICAgICAgICBtX2NvbnRlbnRU
eXBlID0gaGVhZGVyLmNvbnRlbnRUeXBlKCkudG9MYXRpbjEoKTsKICAgICAgICAgICAgICAgICBt
X2NvbnRlbnRMZW5ndGggPSBoZWFkZXIuY29udGVudExlbmd0aCgpOwotICAgICAgICAgICAgICAg
IGlmIChoZWFkZXIuaGFzS2V5KFFMYXRpbjFTdHJpbmcoIlVwZ3JhZGUiKSkgJiYgKGhlYWRlci52
YWx1ZShRTGF0aW4xU3RyaW5nKCJVcGdyYWRlIikpID09IFFMYXRpbjFTdHJpbmcoIldlYlNvY2tl
dCIpKSkKKyAgICAgICAgICAgICAgICBpZiAoaGVhZGVyLmhhc0tleShRTGF0aW4xU3RyaW5nKCJV
cGdyYWRlIikpICYmIChoZWFkZXIudmFsdWUoUUxhdGluMVN0cmluZygiVXBncmFkZSIpKSA9PSBR
TGF0aW4xU3RyaW5nKCJ3ZWJzb2NrZXQiKSkpCiAgICAgICAgICAgICAgICAgICAgIGlzV2ViU29j
a2V0ID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIG1fZGF0YS5jbGVhcigpOwpAQCAtMjExLDIz
ICsxODYsMTQgQEAgdm9pZCBJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp0Y3BSZWFk
eVJlYWQoKQogICAgICAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+ZGlzY29ubmVjdChTSUdO
QUwocmVhZHlSZWFkKCkpKTsKICAgICAgICAgICAgICAgICBjb25uZWN0KG1fdGNwQ29ubmVjdGlv
biwgU0lHTkFMKHJlYWR5UmVhZCgpKSwgU0xPVCh3ZWJTb2NrZXRSZWFkeVJlYWQoKSksIFF0OjpR
dWV1ZWRDb25uZWN0aW9uKTsKIAotICAgICAgICAgICAgICAgIFFCeXRlQXJyYXkga2V5MyA9IG1f
dGNwQ29ubmVjdGlvbi0+cmVhZCg4KTsKLQotICAgICAgICAgICAgICAgIHF1aW50MzIgbnVtYmVy
MSA9IHBhcnNlV2ViU29ja2V0Q2hhbGxlbmdlTnVtYmVyKGhlYWRlci52YWx1ZShRTGF0aW4xU3Ry
aW5nKCJTZWMtV2ViU29ja2V0LUtleTEiKSkpOwotICAgICAgICAgICAgICAgIHF1aW50MzIgbnVt
YmVyMiA9IHBhcnNlV2ViU29ja2V0Q2hhbGxlbmdlTnVtYmVyKGhlYWRlci52YWx1ZShRTGF0aW4x
U3RyaW5nKCJTZWMtV2ViU29ja2V0LUtleTIiKSkpOwotCi0gICAgICAgICAgICAgICAgY2hhciBy
ZXNwb25zZURhdGFbMTZdOwotICAgICAgICAgICAgICAgIGdlbmVyYXRlV2ViU29ja2V0Q2hhbGxl
bmdlUmVzcG9uc2UobnVtYmVyMSwgbnVtYmVyMiwgKHVuc2lnbmVkIGNoYXIqKWtleTMuZGF0YSgp
LCAodW5zaWduZWQgY2hhciopcmVzcG9uc2VEYXRhKTsKLSAgICAgICAgICAgICAgICBRQnl0ZUFy
cmF5IHJlc3BvbnNlKHJlc3BvbnNlRGF0YSwgc2l6ZW9mKHJlc3BvbnNlRGF0YSkpOworICAgICAg
ICAgICAgICAgIFFCeXRlQXJyYXkga2V5ID0gaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIlNl
Yy1XZWJTb2NrZXQtS2V5IikpLnRvTGF0aW4xKCk7CisgICAgICAgICAgICAgICAgUVN0cmluZyBh
Y2NlcHQgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKGdlbmVyYXRlV2ViU29ja2V0Q2hhbGxlbmdlUmVz
cG9uc2Uoa2V5KSk7CiAKICAgICAgICAgICAgICAgICBXZWJLaXQ6OlFIdHRwUmVzcG9uc2VIZWFk
ZXIgcmVzcG9uc2VIZWFkZXIoMTAxLCBRTGF0aW4xU3RyaW5nKCJXZWJTb2NrZXQgUHJvdG9jb2wg
SGFuZHNoYWtlIiksIDEsIDEpOwogICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZh
bHVlKFFMYXRpbjFTdHJpbmcoIlVwZ3JhZGUiKSwgaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmco
IlVwZ3JhZGUiKSkpOwogICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFM
YXRpbjFTdHJpbmcoIkNvbm5lY3Rpb24iKSwgaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIkNv
bm5lY3Rpb24iKSkpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFM
YXRpbjFTdHJpbmcoIlNlYy1XZWJTb2NrZXQtT3JpZ2luIiksIGhlYWRlci52YWx1ZShRTGF0aW4x
U3RyaW5nKCJPcmlnaW4iKSkpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZh
bHVlKFFMYXRpbjFTdHJpbmcoIlNlYy1XZWJTb2NrZXQtTG9jYXRpb24iKSwgKFFMYXRpbjFTdHJp
bmcoIndzOi8vIikgKyBoZWFkZXIudmFsdWUoUUxhdGluMVN0cmluZygiSG9zdCIpKSArIG1fcGF0
aCkpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldENvbnRlbnRMZW5ndGgocmVz
cG9uc2Uuc2l6ZSgpKTsKKwkgICAgICAgIHJlc3BvbnNlSGVhZGVyLnNldFZhbHVlKFFMYXRpbjFT
dHJpbmcoIlNlYy1XZWJTb2NrZXQtQWNjZXB0IiksIGFjY2VwdCk7CiAgICAgICAgICAgICAgICAg
bV90Y3BDb25uZWN0aW9uLT53cml0ZShyZXNwb25zZUhlYWRlci50b1N0cmluZygpLnRvTGF0aW4x
KCkpOwotICAgICAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+d3JpdGUocmVzcG9uc2UpOwog
ICAgICAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+Zmx1c2goKTsKIAogICAgICAgICAgICAg
ICAgIGlmICgod29yZHMuc2l6ZSgpID09IDQpCkBAIC0zMDYsMjYgKzI3Miw0MyBAQCB2b2lkIElu
c3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OnRjcENvbm5lY3Rpb25EaXNjb25uZWN0ZWQo
KQogICAgIG1fdGNwQ29ubmVjdGlvbiA9IDA7CiB9CiAKLWludCBJbnNwZWN0b3JTZXJ2ZXJSZXF1
ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRTZW5kKFFCeXRlQXJyYXkgcGF5bG9hZCkKK2ludCBJbnNw
ZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRTZW5kKGNvbnN0IFFTdHJpbmcm
IG1lc3NhZ2UpCiB7Ci0gICAgUV9BU1NFUlQobV90Y3BDb25uZWN0aW9uKTsKLSAgICBtX3RjcENv
bm5lY3Rpb24tPnB1dENoYXIoMHgwMCk7Ci0gICAgaW50IG5CeXRlcyA9IG1fdGNwQ29ubmVjdGlv
bi0+d3JpdGUocGF5bG9hZCk7Ci0gICAgbV90Y3BDb25uZWN0aW9uLT5wdXRDaGFyKDB4RkYpOwot
ICAgIG1fdGNwQ29ubmVjdGlvbi0+Zmx1c2goKTsKLSAgICByZXR1cm4gbkJ5dGVzOworICAgIFFC
eXRlQXJyYXkgcGF5bG9hZCA9IG1lc3NhZ2UudG9VdGY4KCk7CisgICAgcmV0dXJuIHdlYlNvY2tl
dFNlbmQocGF5bG9hZC5kYXRhKCksIHBheWxvYWQuc2l6ZSgpKTsKIH0KIAogaW50IEluc3BlY3Rv
clNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFNlbmQoY29uc3QgY2hhciogZGF0YSwg
c2l6ZV90IGxlbmd0aCkKIHsKICAgICBRX0FTU0VSVChtX3RjcENvbm5lY3Rpb24pOwotICAgIG1f
dGNwQ29ubmVjdGlvbi0+cHV0Q2hhcigweDAwKTsKKyAgICBtX3RjcENvbm5lY3Rpb24tPnB1dENo
YXIoMHg4MSk7CisgICAgaWYgKGxlbmd0aCA8PSAxMjUpCisgICAgICAgIG1fdGNwQ29ubmVjdGlv
bi0+cHV0Q2hhcihzdGF0aWNfY2FzdDx1aW50OF90PihsZW5ndGgpKTsKKyAgICBlbHNlIGlmIChs
ZW5ndGggPD0gcG93KDIsIDE2KSkgeworICAgICAgICBtX3RjcENvbm5lY3Rpb24tPnB1dENoYXIo
MTI2KTsKKyAgICAgICAgcXVpbnQxNiBsZW5ndGgxNiA9IHFUb0JpZ0VuZGlhbjxxdWludDE2Pihz
dGF0aWNfY2FzdDxxdWludDE2PihsZW5ndGgpKTsKKyAgICAgICAgbV90Y3BDb25uZWN0aW9uLT53
cml0ZShyZWludGVycHJldF9jYXN0PGNoYXIqPigmbGVuZ3RoMTYpLCAyKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBtX3RjcENvbm5lY3Rpb24tPnB1dENoYXIoMTI3KTsKKyAgICAgICAgcXVpbnQ2
NCBsZW5ndGg2NCA9IHFUb0JpZ0VuZGlhbjxxdWludDY0PihzdGF0aWNfY2FzdDxxdWludDY0Pihs
ZW5ndGgpKTsKKyAgICAgICAgbV90Y3BDb25uZWN0aW9uLT53cml0ZShyZWludGVycHJldF9jYXN0
PGNoYXIqPigmbGVuZ3RoNjQpLCA4KTsKKyAgICB9CiAgICAgaW50IG5CeXRlcyA9IG1fdGNwQ29u
bmVjdGlvbi0+d3JpdGUoZGF0YSwgbGVuZ3RoKTsKLSAgICBtX3RjcENvbm5lY3Rpb24tPnB1dENo
YXIoMHhGRik7CiAgICAgbV90Y3BDb25uZWN0aW9uLT5mbHVzaCgpOwogICAgIHJldHVybiBuQnl0
ZXM7CiB9CiAKK3N0YXRpYyBRQnl0ZUFycmF5IGFwcGx5TWFzayhjb25zdCBRQnl0ZUFycmF5JiBw
YXlsb2FkLCBjb25zdCBRQnl0ZUFycmF5JiBtYXNraW5nS2V5KQoreworICAgIFFfQVNTRVJUKG1h
c2tpbmdLZXkuc2l6ZSgpID09IDQpOworICAgIFFCeXRlQXJyYXkgdW5tYXNrZWRQYXlsb2FkOwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF5bG9hZC5zaXplKCk7ICsraSkgeworICAgICAgICBj
aGFyIHVubWFza2VkQnl0ZSA9IHBheWxvYWRbaV0gXiBtYXNraW5nS2V5W2kgJSA0XTsKKyAgICAg
ICAgdW5tYXNrZWRQYXlsb2FkLmFwcGVuZCh1bm1hc2tlZEJ5dGUpOworICAgIH0KKyAgICByZXR1
cm4gdW5tYXNrZWRQYXlsb2FkOworfQorCiB2b2lkIEluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5k
bGVyUXQ6OndlYlNvY2tldFJlYWR5UmVhZCgpCiB7CiAgICAgUV9BU1NFUlQobV90Y3BDb25uZWN0
aW9uKTsKQEAgLTMzMywzMyArMzE2LDQzIEBAIHZvaWQgSW5zcGVjdG9yU2VydmVyUmVxdWVzdEhh
bmRsZXJRdDo6d2ViU29ja2V0UmVhZHlSZWFkKCkKICAgICAgICAgcmV0dXJuOwogICAgIFFCeXRl
QXJyYXkgY29udGVudCA9IG1fdGNwQ29ubmVjdGlvbi0+cmVhZChtX3RjcENvbm5lY3Rpb24tPmJ5
dGVzQXZhaWxhYmxlKCkpOwogICAgIG1fZGF0YS5hcHBlbmQoY29udGVudCk7Ci0gICAgd2hpbGUg
KG1fZGF0YS5zaXplKCkgPiAwKSB7Ci0gICAgICAgIC8vIGZpcnN0IGJ5dGUgaW4gd2Vic29ja2V0
IGZyYW1lIHNob3VsZCBiZSAwCi0gICAgICAgIFFfQVNTRVJUKCFtX2RhdGFbMF0pOwotCi0gICAg
ICAgIC8vIFN0YXJ0IG9mIFdlYlNvY2tldCBmcmFtZSBpcyBpbmRpY2F0ZWQgYnkgMAotICAgICAg
ICBpZiAobV9kYXRhWzBdKSB7Ci0gICAgICAgICAgICBxQ3JpdGljYWwoKSA8PCAgIndlYlNvY2tl
dFJlYWR5UmVhZDogdW5rbm93biBmcmFtZSB0eXBlIiA8PCBtX2RhdGFbMF07Ci0gICAgICAgICAg
ICBtX2RhdGEuY2xlYXIoKTsKLSAgICAgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+Y2xvc2UoKTsK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICB3aGlsZSAobV9kYXRhLnNpemUoKSA+IDApIHsgICAg
ICAgIAorICAgICAgICBjb25zdCBib29sIGlzTWFza2VkID0gbV9kYXRhWzFdICYgMHg4MDsKKyAg
ICAgICAgcXVpbnQ2NCBwYXlsb2FkTGVuID0gbV9kYXRhWzFdICYgMHg3RjsKKyAgICAgICAgaW50
IHBvcyA9IDI7CisgICAgICAgIAorICAgICAgICBpZiAocGF5bG9hZExlbiA9PSAxMjYpIHsKKyAg
ICAgICAgICAgIHBheWxvYWRMZW4gPSBxRnJvbUJpZ0VuZGlhbjxxdWludDE2PigqcmVpbnRlcnBy
ZXRfY2FzdDxxdWludDE2Kj4obV9kYXRhLm1pZChwb3MsIDIpLmRhdGEoKSkpOworICAgICAgICAg
ICAgcG9zID0gNDsKKyAgICAgICAgfSBlbHNlIGlmIChwYXlsb2FkTGVuID09IDEyNykgeworICAg
ICAgICAgICAgcGF5bG9hZExlbiA9IHFGcm9tQmlnRW5kaWFuPHF1aW50NjQ+KCpyZWludGVycHJl
dF9jYXN0PHF1aW50NjQqPihtX2RhdGEubWlkKHBvcywgOCkuZGF0YSgpKSk7CisgICAgICAgICAg
ICBwb3MgPSA4OwogICAgICAgICB9Ci0KLSAgICAgICAgLy8gRW5kIG9mIFdlYlNvY2tldCBmcmFt
ZSBpbmRpY2F0ZWQgYnkgMHhmZi4KLSAgICAgICAgaW50IHBvcyA9IG1fZGF0YS5pbmRleE9mKDB4
ZmYsIDEpOwotICAgICAgICBpZiAocG9zIDwgMSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICAvLyBBZnRlciBhYm92ZSBjaGVja3MsIGxlbmd0aCB3aWxsIGJlID49IDAuCi0gICAgICAg
IHNpemVfdCBsZW5ndGggPSBwb3MgLSAxOwotICAgICAgICBpZiAobGVuZ3RoIDw9IDApCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgUUJ5dGVBcnJheSBwYXlsb2FkID0gbV9kYXRhLm1p
ZCgxLCBsZW5ndGgpOwotCisgICAgICAgIAorICAgICAgICBRQnl0ZUFycmF5IHBheWxvYWQ7Cisg
ICAgICAgIGlmIChpc01hc2tlZCkgeworICAgICAgICAgICAgUUJ5dGVBcnJheSBtYXNraW5nS2V5
ID0gbV9kYXRhLm1pZChwb3MsIDQpOworICAgICAgICAgICAgcG9zICs9IDQ7CisgICAgICAgICAg
ICBwYXlsb2FkID0gYXBwbHlNYXNrKG1fZGF0YS5taWQocG9zLCBwYXlsb2FkTGVuKSwgbWFza2lu
Z0tleSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcGF5bG9hZCA9IG1fZGF0YS5taWQo
cG9zLCBwYXlsb2FkTGVuKTsKKyAgICAgICAgCisgICAgICAgIC8vIEhhbmRsZSBmcmFnbWVudGF0
aW9uCisgICAgICAgIGlmICghKG1fZGF0YVswXSAmIDB4ODApKSB7IC8vIE5vbi1sYXN0IGZyYWdt
ZW50ZWQgcGF5bG9hZAorICAgICAgICAgICAgbV9mcmFnbWVudGVkUGF5bG9hZC5hcHBlbmQocGF5
bG9hZCk7ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fZGF0YSA9IG1fZGF0YS5taWQo
cG9zICsgcGF5bG9hZExlbik7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgaWYgKCEobV9kYXRhWzBdICYgMHgwRikpIHsgLy8gTGFzdCBmcmFnbWVu
dAorICAgICAgICAgICAgbV9mcmFnbWVudGVkUGF5bG9hZC5hcHBlbmQocGF5bG9hZCk7ICAgCisg
ICAgICAgICAgICBwYXlsb2FkID0gbV9mcmFnbWVudGVkUGF5bG9hZDsKKyAgICAgICAgICAgIG1f
ZnJhZ21lbnRlZFBheWxvYWQuY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAg
Ly8gUmVtb3ZlIHRoaXMgV2ViU29ja2V0IG1lc3NhZ2UgZnJvbSBtX2RhdGEgKHBheWxvYWQsIHN0
YXJ0LW9mLWZyYW1lIGJ5dGUsIGVuZC1vZi1mcmFtZSBieXRlKS4KICAgICAgICAgLy8gVHJ1bmNh
dGUgZGF0YSBiZWZvcmUgZGVsaXZlcmluZyBtZXNzYWdlIGluIGNhc2Ugb2YgcmUtZW50cmFuY3ku
Ci0gICAgICAgIG1fZGF0YSA9IG1fZGF0YS5taWQobGVuZ3RoICsgMik7CisgICAgICAgIG1fZGF0
YSA9IG1fZGF0YS5taWQocG9zICsgcGF5bG9hZExlbik7CiAgICAgICAgIAogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJRdC5oIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJRdC5oCmluZGV4IGIx
MzBiMGEuLmIwYmIwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yU2VydmVyUXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvclNlcnZlclF0LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogCiAgICAg
SW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdChRVGNwU29ja2V0ICp0Y3BDb25uZWN0aW9u
LCBJbnNwZWN0b3JTZXJ2ZXJRdCAqc2VydmVyKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JTZXJ2
ZXJSZXF1ZXN0SGFuZGxlclF0KCk7Ci0gICAgdmlydHVhbCBpbnQgd2ViU29ja2V0U2VuZChRQnl0
ZUFycmF5IHBheWxvYWQpOworICAgIHZpcnR1YWwgaW50IHdlYlNvY2tldFNlbmQoY29uc3QgUVN0
cmluZyYgbWVzc2FnZSk7CiAgICAgdmlydHVhbCBpbnQgd2ViU29ja2V0U2VuZChjb25zdCBjaGFy
ICpwYXlsb2FkLCBzaXplX3QgbGVuZ3RoKTsKIAogcHJpdmF0ZSBRX1NMT1RTOgpAQCAtODksNiAr
ODksNyBAQCBwcml2YXRlOgogICAgIGludCBtX2NvbnRlbnRMZW5ndGg7CiAgICAgYm9vbCBtX2Vu
ZE9mSGVhZGVyczsKICAgICBRQnl0ZUFycmF5IG1fZGF0YTsKKyAgICBRQnl0ZUFycmF5IG1fZnJh
Z21lbnRlZFBheWxvYWQ7CiAgICAgSW5zcGVjdG9yQ2xpZW50UXQqIG1faW5zcGVjdG9yQ2xpZW50
OwogCiAgICAgdm9pZCBoYW5kbGVJbnNwZWN0b3JSZXF1ZXN0KFFTdHJpbmdMaXN0IHdvcmRzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163606</attachid>
            <date>2012-09-12 05:47:12 -0700</date>
            <delta_ts>2012-09-17 02:37:28 -0700</delta_ts>
            <desc>Updated/rebased patch for updated websocket protocol version</desc>
            <filename>qt_webinspector_update_websocket_protocol.patch</filename>
            <type>text/plain</type>
            <size>11525</size>
            <attacher name="Leo Franchi">leo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKaW5kZXggOTk1YzA5Yi4uOWUyMzE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wOS0xMSAgTGVvIEZyYW5jaGkgIDxsZnJhbmNoaUBrZGUub3JnPgor
CisgICAgICAgIFtRdF0gSW5zcGVjdG9yIFdlYlNvY2tldCBiYWNrZW5kIHByb3RvY29sIHVwZGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcwMzEK
KworICAgICAgICBBbHNvIGFkZHMgc3VwcG9ydCBmb3IgbXVsdGktZnJhbWUgbWVzc2FnZXMgYW5k
IG5vbi10ZXh0IG1lc3NhZ2VzLgorICAgICAgICBUaGFua3MgdG8gSm9jZWx5biBUdXJjb3R0ZSBm
b3IgbW9zdCBvZiB0aGUgV2ViU29ja2V0IHVwZGF0ZSBjb2RlIQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
U2VydmVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpnZW5l
cmF0ZVdlYlNvY2tldENoYWxsZW5nZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OnRjcFJlYWR5UmVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRTZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OmFwcGx5TWFzayk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
ZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRSZWFkeVJlYWQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZlclF0Lmg6CisgICAgICAgIChJbnNwZWN0b3JTZXJ2
ZXJSZXF1ZXN0SGFuZGxlclF0KToKKwogMjAxMi0wOS0wNyAgQWxsYW4gU2FuZGZlbGQgSmVuc2Vu
ICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBYMTEgR2xvYmFsIFNlbGVjdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JT
ZXJ2ZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNl
cnZlclF0LmNwcAppbmRleCAxNGY1ZGQ3Li42NWJiYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZlclF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZlclF0LmNwcApAQCAtMzQsNTEg
KzM0LDI2IEBACiAjaW5jbHVkZSA8UVVybD4KICNpbmNsdWRlIDxRV2lkZ2V0PgogI2luY2x1ZGUg
PHFlbmRpYW4uaD4KLSNpbmNsdWRlIDx3dGYvTUQ1Lmg+CisjaW5jbHVkZSA8d3RmL1NIQTEuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9CYXNlNjQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLyohCi0gICAgQ29tcHV0ZXMgdGhlIFdlYlNv
Y2tldCBoYW5kc2hha2UgcmVzcG9uc2UgZ2l2ZW4gdGhlIHR3byBjaGFsbGVuZ2UgbnVtYmVycyBh
bmQga2V5My4KKyAgICBDb21wdXRlcyB0aGUgV2ViU29ja2V0IGhhbmRzaGFrZSByZXNwb25zZSBn
aXZlbiB0aGUgaW5wdXQga2V5CiAgKi8KLXN0YXRpYyB2b2lkIGdlbmVyYXRlV2ViU29ja2V0Q2hh
bGxlbmdlUmVzcG9uc2UodWludDMyX3QgbnVtYmVyMSwgdWludDMyX3QgbnVtYmVyMiwgY29uc3Qg
dW5zaWduZWQgY2hhciBrZXkzWzhdLCB1bnNpZ25lZCBjaGFyIHJlc3BvbnNlWzE2XSkKK3N0YXRp
YyBRQnl0ZUFycmF5IGdlbmVyYXRlV2ViU29ja2V0Q2hhbGxlbmdlUmVzcG9uc2UoY29uc3QgUUJ5
dGVBcnJheSYga2V5KQogewotICAgIHVpbnQ4X3QgY2hhbGxlbmdlWzE2XTsKLSAgICBxVG9CaWdF
bmRpYW48cWludDMyPihudW1iZXIxLCAmY2hhbGxlbmdlWzBdKTsKLSAgICBxVG9CaWdFbmRpYW48
cWludDMyPihudW1iZXIyLCAmY2hhbGxlbmdlWzRdKTsKLSAgICBtZW1jcHkoJmNoYWxsZW5nZVs4
XSwga2V5MywgOCk7Ci0gICAgTUQ1IG1kNTsKLSAgICBtZDUuYWRkQnl0ZXMoY2hhbGxlbmdlLCBz
aXplb2YoY2hhbGxlbmdlKSk7Ci0gICAgVmVjdG9yPHVpbnQ4X3QsIDE2PiBkaWdlc3Q7Ci0gICAg
bWQ1LmNoZWNrc3VtKGRpZ2VzdCk7Ci0gICAgbWVtY3B5KHJlc3BvbnNlLCBkaWdlc3QuZGF0YSgp
LCAxNik7Ci19Ci0KLS8qIQotICAgIFBhcnNlcyBhbmQgcmV0dXJucyBhIFdlYlNvY2tldCBjaGFs
bGVuZ2UgbnVtYmVyIGFjY29yZGluZyB0byB0aGUKLSAgICBtZXRob2Qgc3BlY2lmaWVkIGluIHRo
ZSBXZWJTb2NrZXQgcHJvdG9jb2wuCi0KLSAgICBUaGUgZmllbGQgY29udGFpbnMgbnVtZXJpYyBk
aWdpdHMgaW50ZXJzcGVyc2VkIHdpdGggc3BhY2VzIGFuZAotICAgIG5vbi1udW1lcmljIGRpZ2l0
cy4gVGhlIHByb3RvY29sIGlnbm9yZXMgdGhlIGNoYXJhY3RlcnMgdGhhdCBhcmUKLSAgICBuZWl0
aGVyIGRpZ2l0cyBub3Igc3BhY2VzLiBUaGUgZGlnaXRzIGFyZSBjb25jYXRlbmF0ZWQgYW5kCi0g
ICAgaW50ZXJwcmV0ZWQgYXMgYSBsb25nIGludC4gVGhlIHJlc3VsdCBpcyB0aGlzIG51bWJlciBk
aXZpZGVkIGJ5Ci0gICAgdGhlIG51bWJlciBvZiBzcGFjZXMuCi0gKi8KLXN0YXRpYyBxdWludDMy
IHBhcnNlV2ViU29ja2V0Q2hhbGxlbmdlTnVtYmVyKFFTdHJpbmcgZmllbGQpCi17Ci0gICAgUVN0
cmluZyBuU3RyaW5nOwotICAgIGludCBudW1TcGFjZXMgPSAwOwotICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgZmllbGQuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgUUNoYXIgYyA9IGZpZWxkW2ldOwot
ICAgICAgICBpZiAoYyA9PSBRTGF0aW4xQ2hhcignICcpKQotICAgICAgICAgICAgbnVtU3BhY2Vz
Kys7Ci0gICAgICAgIGVsc2UgaWYgKChjID49IFFMYXRpbjFDaGFyKCcwJykpICYmIChjIDw9IFFM
YXRpbjFDaGFyKCc5JykpKQotICAgICAgICAgICAgblN0cmluZy5hcHBlbmQoYyk7Ci0gICAgfQot
ICAgIHF1aW50MzIgbnVtID0gblN0cmluZy50b1VMb25nKCk7Ci0gICAgcXVpbnQzMiByZXN1bHQg
PSAobnVtU3BhY2VzID8gKG51bSAvIG51bVNwYWNlcykgOiBudW0pOwotICAgIHJldHVybiByZXN1
bHQ7CisgICAgU0hBMSBzaGExOworICAgIFZlY3Rvcjx1aW50OF90LCAyMD4gZGlnZXN0OworICAg
IFZlY3RvcjxjaGFyPiBlbmNvZGVkOworICAgIFFCeXRlQXJyYXkgdG9IYXNoKCIyNThFQUZBNS1F
OTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEiKTsKKyAgICB0b0hhc2gucHJlcGVuZChrZXkpOwor
ICAgIHNoYTEuYWRkQnl0ZXMoKHVpbnQ4X3QqKXRvSGFzaC5kYXRhKCksIHRvSGFzaC5zaXplKCkp
OworICAgIHNoYTEuY29tcHV0ZUhhc2goZGlnZXN0KTsKKyAgICBiYXNlNjRFbmNvZGUoKGNoYXIq
KWRpZ2VzdC5kYXRhKCksIGRpZ2VzdC5zaXplKCksIGVuY29kZWQpOworICAgIHJldHVybiBRQnl0
ZUFycmF5KGVuY29kZWQuZGF0YSgpLCBlbmNvZGVkLnNpemUoKSk7CiB9CiAKIHN0YXRpYyBJbnNw
ZWN0b3JTZXJ2ZXJRdCogc19pbnNwZWN0b3JTZXJ2ZXI7CkBAIC0xOTIsNyArMTY3LDcgQEAgdm9p
ZCBJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0Ojp0Y3BSZWFkeVJlYWQoKQogICAgICAg
ICAgICAgICAgIG1fcGF0aCA9IGhlYWRlci5wYXRoKCk7CiAgICAgICAgICAgICAgICAgbV9jb250
ZW50VHlwZSA9IGhlYWRlci5jb250ZW50VHlwZSgpLnRvTGF0aW4xKCk7CiAgICAgICAgICAgICAg
ICAgbV9jb250ZW50TGVuZ3RoID0gaGVhZGVyLmNvbnRlbnRMZW5ndGgoKTsKLSAgICAgICAgICAg
ICAgICBpZiAoaGVhZGVyLmhhc0tleShRTGF0aW4xU3RyaW5nKCJVcGdyYWRlIikpICYmIChoZWFk
ZXIudmFsdWUoUUxhdGluMVN0cmluZygiVXBncmFkZSIpKSA9PSBRTGF0aW4xU3RyaW5nKCJXZWJT
b2NrZXQiKSkpCisgICAgICAgICAgICAgICAgaWYgKGhlYWRlci5oYXNLZXkoUUxhdGluMVN0cmlu
ZygiVXBncmFkZSIpKSAmJiAoaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIlVwZ3JhZGUiKSkg
PT0gUUxhdGluMVN0cmluZygid2Vic29ja2V0IikpKQogICAgICAgICAgICAgICAgICAgICBpc1dl
YlNvY2tldCA9IHRydWU7CiAKICAgICAgICAgICAgICAgICBtX2RhdGEuY2xlYXIoKTsKQEAgLTIx
MSwyMyArMTg2LDE0IEBAIHZvaWQgSW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdDo6dGNw
UmVhZHlSZWFkKCkKICAgICAgICAgICAgICAgICBtX3RjcENvbm5lY3Rpb24tPmRpc2Nvbm5lY3Qo
U0lHTkFMKHJlYWR5UmVhZCgpKSk7CiAgICAgICAgICAgICAgICAgY29ubmVjdChtX3RjcENvbm5l
Y3Rpb24sIFNJR05BTChyZWFkeVJlYWQoKSksIFNMT1Qod2ViU29ja2V0UmVhZHlSZWFkKCkpLCBR
dDo6UXVldWVkQ29ubmVjdGlvbik7CiAKLSAgICAgICAgICAgICAgICBRQnl0ZUFycmF5IGtleTMg
PSBtX3RjcENvbm5lY3Rpb24tPnJlYWQoOCk7Ci0KLSAgICAgICAgICAgICAgICBxdWludDMyIG51
bWJlcjEgPSBwYXJzZVdlYlNvY2tldENoYWxsZW5nZU51bWJlcihoZWFkZXIudmFsdWUoUUxhdGlu
MVN0cmluZygiU2VjLVdlYlNvY2tldC1LZXkxIikpKTsKLSAgICAgICAgICAgICAgICBxdWludDMy
IG51bWJlcjIgPSBwYXJzZVdlYlNvY2tldENoYWxsZW5nZU51bWJlcihoZWFkZXIudmFsdWUoUUxh
dGluMVN0cmluZygiU2VjLVdlYlNvY2tldC1LZXkyIikpKTsKLQotICAgICAgICAgICAgICAgIGNo
YXIgcmVzcG9uc2VEYXRhWzE2XTsKLSAgICAgICAgICAgICAgICBnZW5lcmF0ZVdlYlNvY2tldENo
YWxsZW5nZVJlc3BvbnNlKG51bWJlcjEsIG51bWJlcjIsICh1bnNpZ25lZCBjaGFyKilrZXkzLmRh
dGEoKSwgKHVuc2lnbmVkIGNoYXIqKXJlc3BvbnNlRGF0YSk7Ci0gICAgICAgICAgICAgICAgUUJ5
dGVBcnJheSByZXNwb25zZShyZXNwb25zZURhdGEsIHNpemVvZihyZXNwb25zZURhdGEpKTsKKyAg
ICAgICAgICAgICAgICBRQnl0ZUFycmF5IGtleSA9IGhlYWRlci52YWx1ZShRTGF0aW4xU3RyaW5n
KCJTZWMtV2ViU29ja2V0LUtleSIpKS50b0xhdGluMSgpOworICAgICAgICAgICAgICAgIFFTdHJp
bmcgYWNjZXB0ID0gUVN0cmluZzo6ZnJvbUxhdGluMShnZW5lcmF0ZVdlYlNvY2tldENoYWxsZW5n
ZVJlc3BvbnNlKGtleSkpOwogCiAgICAgICAgICAgICAgICAgV2ViS2l0OjpRSHR0cFJlc3BvbnNl
SGVhZGVyIHJlc3BvbnNlSGVhZGVyKDEwMSwgUUxhdGluMVN0cmluZygiV2ViU29ja2V0IFByb3Rv
Y29sIEhhbmRzaGFrZSIpLCAxLCAxKTsKICAgICAgICAgICAgICAgICByZXNwb25zZUhlYWRlci5z
ZXRWYWx1ZShRTGF0aW4xU3RyaW5nKCJVcGdyYWRlIiksIGhlYWRlci52YWx1ZShRTGF0aW4xU3Ry
aW5nKCJVcGdyYWRlIikpKTsKICAgICAgICAgICAgICAgICByZXNwb25zZUhlYWRlci5zZXRWYWx1
ZShRTGF0aW4xU3RyaW5nKCJDb25uZWN0aW9uIiksIGhlYWRlci52YWx1ZShRTGF0aW4xU3RyaW5n
KCJDb25uZWN0aW9uIikpKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZUhlYWRlci5zZXRWYWx1
ZShRTGF0aW4xU3RyaW5nKCJTZWMtV2ViU29ja2V0LU9yaWdpbiIpLCBoZWFkZXIudmFsdWUoUUxh
dGluMVN0cmluZygiT3JpZ2luIikpKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZUhlYWRlci5z
ZXRWYWx1ZShRTGF0aW4xU3RyaW5nKCJTZWMtV2ViU29ja2V0LUxvY2F0aW9uIiksIChRTGF0aW4x
U3RyaW5nKCJ3czovLyIpICsgaGVhZGVyLnZhbHVlKFFMYXRpbjFTdHJpbmcoIkhvc3QiKSkgKyBt
X3BhdGgpKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZUhlYWRlci5zZXRDb250ZW50TGVuZ3Ro
KHJlc3BvbnNlLnNpemUoKSk7CisgICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXIuc2V0VmFs
dWUoUUxhdGluMVN0cmluZygiU2VjLVdlYlNvY2tldC1BY2NlcHQiKSwgYWNjZXB0KTsKICAgICAg
ICAgICAgICAgICBtX3RjcENvbm5lY3Rpb24tPndyaXRlKHJlc3BvbnNlSGVhZGVyLnRvU3RyaW5n
KCkudG9MYXRpbjEoKSk7Ci0gICAgICAgICAgICAgICAgbV90Y3BDb25uZWN0aW9uLT53cml0ZShy
ZXNwb25zZSk7CiAgICAgICAgICAgICAgICAgbV90Y3BDb25uZWN0aW9uLT5mbHVzaCgpOwogCiAg
ICAgICAgICAgICAgICAgaWYgKCh3b3Jkcy5zaXplKCkgPT0gNCkKQEAgLTMwNiwyNiArMjcyLDQz
IEBAIHZvaWQgSW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdDo6dGNwQ29ubmVjdGlvbkRp
c2Nvbm5lY3RlZCgpCiAgICAgbV90Y3BDb25uZWN0aW9uID0gMDsKIH0KIAotaW50IEluc3BlY3Rv
clNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFNlbmQoUUJ5dGVBcnJheSBwYXlsb2Fk
KQoraW50IEluc3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQ6OndlYlNvY2tldFNlbmQoY29u
c3QgUVN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBRX0FTU0VSVChtX3RjcENvbm5lY3Rpb24pOwot
ICAgIG1fdGNwQ29ubmVjdGlvbi0+cHV0Q2hhcigweDAwKTsKLSAgICBpbnQgbkJ5dGVzID0gbV90
Y3BDb25uZWN0aW9uLT53cml0ZShwYXlsb2FkKTsKLSAgICBtX3RjcENvbm5lY3Rpb24tPnB1dENo
YXIoMHhGRik7Ci0gICAgbV90Y3BDb25uZWN0aW9uLT5mbHVzaCgpOwotICAgIHJldHVybiBuQnl0
ZXM7CisgICAgUUJ5dGVBcnJheSBwYXlsb2FkID0gbWVzc2FnZS50b1V0ZjgoKTsKKyAgICByZXR1
cm4gd2ViU29ja2V0U2VuZChwYXlsb2FkLmRhdGEoKSwgcGF5bG9hZC5zaXplKCkpOwogfQogCiBp
bnQgSW5zcGVjdG9yU2VydmVyUmVxdWVzdEhhbmRsZXJRdDo6d2ViU29ja2V0U2VuZChjb25zdCBj
aGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogewogICAgIFFfQVNTRVJUKG1fdGNwQ29ubmVjdGlv
bik7Ci0gICAgbV90Y3BDb25uZWN0aW9uLT5wdXRDaGFyKDB4MDApOworICAgIG1fdGNwQ29ubmVj
dGlvbi0+cHV0Q2hhcigweDgxKTsKKyAgICBpZiAobGVuZ3RoIDw9IDEyNSkKKyAgICAgICAgbV90
Y3BDb25uZWN0aW9uLT5wdXRDaGFyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGxlbmd0aCkpOworICAg
IGVsc2UgaWYgKGxlbmd0aCA8PSBwb3coMiwgMTYpKSB7CisgICAgICAgIG1fdGNwQ29ubmVjdGlv
bi0+cHV0Q2hhcigxMjYpOworICAgICAgICBxdWludDE2IGxlbmd0aDE2ID0gcVRvQmlnRW5kaWFu
PHF1aW50MTY+KHN0YXRpY19jYXN0PHF1aW50MTY+KGxlbmd0aCkpOworICAgICAgICBtX3RjcENv
bm5lY3Rpb24tPndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZsZW5ndGgxNiksIDIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIG1fdGNwQ29ubmVjdGlvbi0+cHV0Q2hhcigxMjcpOworICAg
ICAgICBxdWludDY0IGxlbmd0aDY0ID0gcVRvQmlnRW5kaWFuPHF1aW50NjQ+KHN0YXRpY19jYXN0
PHF1aW50NjQ+KGxlbmd0aCkpOworICAgICAgICBtX3RjcENvbm5lY3Rpb24tPndyaXRlKHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZsZW5ndGg2NCksIDgpOworICAgIH0KICAgICBpbnQgbkJ5dGVz
ID0gbV90Y3BDb25uZWN0aW9uLT53cml0ZShkYXRhLCBsZW5ndGgpOwotICAgIG1fdGNwQ29ubmVj
dGlvbi0+cHV0Q2hhcigweEZGKTsKICAgICBtX3RjcENvbm5lY3Rpb24tPmZsdXNoKCk7CiAgICAg
cmV0dXJuIG5CeXRlczsKIH0KIAorc3RhdGljIFFCeXRlQXJyYXkgYXBwbHlNYXNrKGNvbnN0IFFC
eXRlQXJyYXkmIHBheWxvYWQsIGNvbnN0IFFCeXRlQXJyYXkmIG1hc2tpbmdLZXkpCit7CisgICAg
UV9BU1NFUlQobWFza2luZ0tleS5zaXplKCkgPT0gNCk7CisgICAgUUJ5dGVBcnJheSB1bm1hc2tl
ZFBheWxvYWQ7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXlsb2FkLnNpemUoKTsgKytpKSB7
CisgICAgICAgIGNoYXIgdW5tYXNrZWRCeXRlID0gcGF5bG9hZFtpXSBeIG1hc2tpbmdLZXlbaSAl
IDRdOworICAgICAgICB1bm1hc2tlZFBheWxvYWQuYXBwZW5kKHVubWFza2VkQnl0ZSk7CisgICAg
fQorICAgIHJldHVybiB1bm1hc2tlZFBheWxvYWQ7Cit9CisKIHZvaWQgSW5zcGVjdG9yU2VydmVy
UmVxdWVzdEhhbmRsZXJRdDo6d2ViU29ja2V0UmVhZHlSZWFkKCkKIHsKICAgICBRX0FTU0VSVCht
X3RjcENvbm5lY3Rpb24pOwpAQCAtMzMzLDMzICszMTYsNDMgQEAgdm9pZCBJbnNwZWN0b3JTZXJ2
ZXJSZXF1ZXN0SGFuZGxlclF0Ojp3ZWJTb2NrZXRSZWFkeVJlYWQoKQogICAgICAgICByZXR1cm47
CiAgICAgUUJ5dGVBcnJheSBjb250ZW50ID0gbV90Y3BDb25uZWN0aW9uLT5yZWFkKG1fdGNwQ29u
bmVjdGlvbi0+Ynl0ZXNBdmFpbGFibGUoKSk7CiAgICAgbV9kYXRhLmFwcGVuZChjb250ZW50KTsK
LSAgICB3aGlsZSAobV9kYXRhLnNpemUoKSA+IDApIHsKLSAgICAgICAgLy8gZmlyc3QgYnl0ZSBp
biB3ZWJzb2NrZXQgZnJhbWUgc2hvdWxkIGJlIDAKLSAgICAgICAgUV9BU1NFUlQoIW1fZGF0YVsw
XSk7Ci0KLSAgICAgICAgLy8gU3RhcnQgb2YgV2ViU29ja2V0IGZyYW1lIGlzIGluZGljYXRlZCBi
eSAwCi0gICAgICAgIGlmIChtX2RhdGFbMF0pIHsKLSAgICAgICAgICAgIHFDcml0aWNhbCgpIDw8
ICAid2ViU29ja2V0UmVhZHlSZWFkOiB1bmtub3duIGZyYW1lIHR5cGUiIDw8IG1fZGF0YVswXTsK
LSAgICAgICAgICAgIG1fZGF0YS5jbGVhcigpOwotICAgICAgICAgICAgbV90Y3BDb25uZWN0aW9u
LT5jbG9zZSgpOwotICAgICAgICAgICAgcmV0dXJuOworICAgIHdoaWxlIChtX2RhdGEuc2l6ZSgp
ID4gMCkgeyAgICAgICAgCisgICAgICAgIGNvbnN0IGJvb2wgaXNNYXNrZWQgPSBtX2RhdGFbMV0g
JiAweDgwOworICAgICAgICBxdWludDY0IHBheWxvYWRMZW4gPSBtX2RhdGFbMV0gJiAweDdGOwor
ICAgICAgICBpbnQgcG9zID0gMjsKKyAgICAgICAgCisgICAgICAgIGlmIChwYXlsb2FkTGVuID09
IDEyNikgeworICAgICAgICAgICAgcGF5bG9hZExlbiA9IHFGcm9tQmlnRW5kaWFuPHF1aW50MTY+
KCpyZWludGVycHJldF9jYXN0PHF1aW50MTYqPihtX2RhdGEubWlkKHBvcywgMikuZGF0YSgpKSk7
CisgICAgICAgICAgICBwb3MgPSA0OworICAgICAgICB9IGVsc2UgaWYgKHBheWxvYWRMZW4gPT0g
MTI3KSB7CisgICAgICAgICAgICBwYXlsb2FkTGVuID0gcUZyb21CaWdFbmRpYW48cXVpbnQ2ND4o
KnJlaW50ZXJwcmV0X2Nhc3Q8cXVpbnQ2NCo+KG1fZGF0YS5taWQocG9zLCA4KS5kYXRhKCkpKTsK
KyAgICAgICAgICAgIHBvcyA9IDg7CiAgICAgICAgIH0KLQotICAgICAgICAvLyBFbmQgb2YgV2Vi
U29ja2V0IGZyYW1lIGluZGljYXRlZCBieSAweGZmLgotICAgICAgICBpbnQgcG9zID0gbV9kYXRh
LmluZGV4T2YoMHhmZiwgMSk7Ci0gICAgICAgIGlmIChwb3MgPCAxKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIC8vIEFmdGVyIGFib3ZlIGNoZWNrcywgbGVuZ3RoIHdpbGwgYmUgPj0g
MC4KLSAgICAgICAgc2l6ZV90IGxlbmd0aCA9IHBvcyAtIDE7Ci0gICAgICAgIGlmIChsZW5ndGgg
PD0gMCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBRQnl0ZUFycmF5IHBheWxvYWQg
PSBtX2RhdGEubWlkKDEsIGxlbmd0aCk7Ci0KKyAgICAgICAgCisgICAgICAgIFFCeXRlQXJyYXkg
cGF5bG9hZDsKKyAgICAgICAgaWYgKGlzTWFza2VkKSB7CisgICAgICAgICAgICBRQnl0ZUFycmF5
IG1hc2tpbmdLZXkgPSBtX2RhdGEubWlkKHBvcywgNCk7CisgICAgICAgICAgICBwb3MgKz0gNDsK
KyAgICAgICAgICAgIHBheWxvYWQgPSBhcHBseU1hc2sobV9kYXRhLm1pZChwb3MsIHBheWxvYWRM
ZW4pLCBtYXNraW5nS2V5KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBwYXlsb2FkID0g
bV9kYXRhLm1pZChwb3MsIHBheWxvYWRMZW4pOworICAgICAgICAKKyAgICAgICAgLy8gSGFuZGxl
IGZyYWdtZW50YXRpb24KKyAgICAgICAgaWYgKCEobV9kYXRhWzBdICYgMHg4MCkpIHsgLy8gTm9u
LWxhc3QgZnJhZ21lbnRlZCBwYXlsb2FkCisgICAgICAgICAgICBtX2ZyYWdtZW50ZWRQYXlsb2Fk
LmFwcGVuZChwYXlsb2FkKTsgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgbV9kYXRhID0g
bV9kYXRhLm1pZChwb3MgKyBwYXlsb2FkTGVuKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIShtX2RhdGFbMF0gJiAweDBGKSkgeyAvLyBM
YXN0IGZyYWdtZW50CisgICAgICAgICAgICBtX2ZyYWdtZW50ZWRQYXlsb2FkLmFwcGVuZChwYXls
b2FkKTsgICAKKyAgICAgICAgICAgIHBheWxvYWQgPSBtX2ZyYWdtZW50ZWRQYXlsb2FkOworICAg
ICAgICAgICAgbV9mcmFnbWVudGVkUGF5bG9hZC5jbGVhcigpOworICAgICAgICB9CisgICAgICAg
IAogICAgICAgICAvLyBSZW1vdmUgdGhpcyBXZWJTb2NrZXQgbWVzc2FnZSBmcm9tIG1fZGF0YSAo
cGF5bG9hZCwgc3RhcnQtb2YtZnJhbWUgYnl0ZSwgZW5kLW9mLWZyYW1lIGJ5dGUpLgogICAgICAg
ICAvLyBUcnVuY2F0ZSBkYXRhIGJlZm9yZSBkZWxpdmVyaW5nIG1lc3NhZ2UgaW4gY2FzZSBvZiBy
ZS1lbnRyYW5jeS4KLSAgICAgICAgbV9kYXRhID0gbV9kYXRhLm1pZChsZW5ndGggKyAyKTsKKyAg
ICAgICAgbV9kYXRhID0gbV9kYXRhLm1pZChwb3MgKyBwYXlsb2FkTGVuKTsKICAgICAgICAgCiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50KSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZl
clF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvclNlcnZlclF0
LmgKaW5kZXggYjEzMGIwYS4uYjBiYjBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JTZXJ2ZXJRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yU2VydmVyUXQuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJs
aWM6CiAKICAgICBJbnNwZWN0b3JTZXJ2ZXJSZXF1ZXN0SGFuZGxlclF0KFFUY3BTb2NrZXQgKnRj
cENvbm5lY3Rpb24sIEluc3BlY3RvclNlcnZlclF0ICpzZXJ2ZXIpOwogICAgIHZpcnR1YWwgfklu
c3BlY3RvclNlcnZlclJlcXVlc3RIYW5kbGVyUXQoKTsKLSAgICB2aXJ0dWFsIGludCB3ZWJTb2Nr
ZXRTZW5kKFFCeXRlQXJyYXkgcGF5bG9hZCk7CisgICAgdmlydHVhbCBpbnQgd2ViU29ja2V0U2Vu
ZChjb25zdCBRU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2aXJ0dWFsIGludCB3ZWJTb2NrZXRTZW5k
KGNvbnN0IGNoYXIgKnBheWxvYWQsIHNpemVfdCBsZW5ndGgpOwogCiBwcml2YXRlIFFfU0xPVFM6
CkBAIC04OSw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1fY29udGVudExlbmd0aDsKICAg
ICBib29sIG1fZW5kT2ZIZWFkZXJzOwogICAgIFFCeXRlQXJyYXkgbV9kYXRhOworICAgIFFCeXRl
QXJyYXkgbV9mcmFnbWVudGVkUGF5bG9hZDsKICAgICBJbnNwZWN0b3JDbGllbnRRdCogbV9pbnNw
ZWN0b3JDbGllbnQ7CiAKICAgICB2b2lkIGhhbmRsZUluc3BlY3RvclJlcXVlc3QoUVN0cmluZ0xp
c3Qgd29yZHMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>