<?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>120972</bug_id>
          
          <creation_ts>2013-09-07 15:32:43 -0700</creation_ts>
          <short_desc>FTL should support typed array PutByVal</short_desc>
          <delta_ts>2013-09-07 21:07:31 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>112840</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>926279</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-07 15:32:43 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926280</commentid>
    <comment_count>1</comment_count>
      <attachid>210928</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-07 15:33:24 -0700</bug_when>
    <thetext>Created attachment 210928
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926281</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-07 15:35:25 -0700</bug_when>
    <thetext>Attachment 210928 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/ftl/FTLAbbreviations.h&apos;, u&apos;Source/JavaScriptCore/ftl/FTLCapabilities.cpp&apos;, u&apos;Source/JavaScriptCore/ftl/FTLIntrinsicRepository.h&apos;, u&apos;Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp&apos;, u&apos;Source/JavaScriptCore/ftl/FTLOutput.h&apos;]&quot; exit_code: 1
Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2219:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 6 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>926284</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-07 15:43:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 210928 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/ftl/FTLAbbreviations.h&apos;, u&apos;Source/JavaScriptCore/ftl/FTLCapabilities.cpp&apos;, u&apos;Source/JavaScriptCore/ftl/FTLIntrinsicRepository.h&apos;, u&apos;Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp&apos;, u&apos;Source/JavaScriptCore/ftl/FTLOutput.h&apos;]&quot; exit_code: 1
&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2219:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

Fixed.

&gt; Total errors found: 1 in 6 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926343</commentid>
    <comment_count>4</comment_count>
      <attachid>210928</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-09-07 19:48:25 -0700</bug_when>
    <thetext>Comment on attachment 210928
the patch

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

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:2219
&gt;&gt; +                       
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

Random spaces by the looks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926366</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-09-07 21:07:31 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/155281</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210928</attachid>
            <date>2013-09-07 15:33:24 -0700</date>
            <delta_ts>2013-09-07 19:48:24 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>19596</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1MjY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDEzLTA5LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIHNob3VsZCBzdXBwb3J0IHR5cGVkIGFycmF5IFB1dEJ5VmFsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA5NzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZ0bC9GVExBYmJyZXZpYXRpb25zLmg6
CisgICAgICAgIChKU0M6OkZUTDo6YnVpbGRGUFRvVUkpOgorICAgICAgICAqIGZ0bC9GVExDYXBh
YmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAq
IGZ0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVB1
dEJ5VmFsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6ZG91YmxlVG9JbnQz
Mik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmRvdWJsZVRvVUludDMyKToK
KyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpm
cFRvVUludCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpmcFRvVUludDMyKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnN0b3JlOCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0
OjpzdG9yZTE2KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnN0b3JlRmxvYXQpOgorCiAy
MDEzLTA5LTA3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAg
ICAgR2V0IHJpZCBvZiBQYXNzT3duQXJyYXlQdHIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJicmV2aWF0aW9ucy5oCShyZXZpc2lvbiAxNTUyNjApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjA1LDYgKzIwNSw3IEBAIHN0YXRpYyBpbmxpbmUgTFZhbHVlIGJ1aWxkU3RvcmUoTEJ1aWxkZXIK
IHN0YXRpYyBpbmxpbmUgTFZhbHVlIGJ1aWxkU0V4dChMQnVpbGRlciBidWlsZGVyLCBMVmFsdWUg
dmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIExMVk1CdWlsZFNFeHQoYnVpbGRlciwgdmFsdWUs
IHR5cGUsICIiKTsgfQogc3RhdGljIGlubGluZSBMVmFsdWUgYnVpbGRaRXh0KExCdWlsZGVyIGJ1
aWxkZXIsIExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gTExWTUJ1aWxkWkV4dChi
dWlsZGVyLCB2YWx1ZSwgdHlwZSwgIiIpOyB9CiBzdGF0aWMgaW5saW5lIExWYWx1ZSBidWlsZEZQ
VG9TSShMQnVpbGRlciBidWlsZGVyLCBMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJu
IExMVk1CdWlsZEZQVG9TSShidWlsZGVyLCB2YWx1ZSwgdHlwZSwgIiIpOyB9CitzdGF0aWMgaW5s
aW5lIExWYWx1ZSBidWlsZEZQVG9VSShMQnVpbGRlciBidWlsZGVyLCBMVmFsdWUgdmFsdWUsIExU
eXBlIHR5cGUpIHsgcmV0dXJuIExMVk1CdWlsZEZQVG9VSShidWlsZGVyLCB2YWx1ZSwgdHlwZSwg
IiIpOyB9CiBzdGF0aWMgaW5saW5lIExWYWx1ZSBidWlsZFNJVG9GUChMQnVpbGRlciBidWlsZGVy
LCBMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIExMVk1CdWlsZFNJVG9GUChidWls
ZGVyLCB2YWx1ZSwgdHlwZSwgIiIpOyB9CiBzdGF0aWMgaW5saW5lIExWYWx1ZSBidWlsZFVJVG9G
UChMQnVpbGRlciBidWlsZGVyLCBMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIExM
Vk1CdWlsZFVJVG9GUChidWlsZGVyLCB2YWx1ZSwgdHlwZSwgIiIpOyB9CiBzdGF0aWMgaW5saW5l
IExWYWx1ZSBidWlsZEludENhc3QoTEJ1aWxkZXIgYnVpbGRlciwgTFZhbHVlIHZhbHVlLCBMVHlw
ZSB0eXBlKSB7IHJldHVybiBMTFZNQnVpbGRJbnRDYXN0KGJ1aWxkZXIsIHZhbHVlLCB0eXBlLCAi
Iik7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAJKHJldmlzaW9uIDE1NTI2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUwLDYgKzE1MCw4IEBAIGlubGlu
ZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAgICAgICAgY2FzZSBBcnJheTo6
Q29udGlndW91czoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgaWYgKGlzVHlwZWRWaWV3KG5vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJyYXlUeXBlKCkp
KQorICAgICAgICAgICAgICAgIHJldHVybiBDYW5Db21waWxlQW5kT1NSRW50ZXI7CiAgICAgICAg
ICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3Np
dG9yeS5oCShyZXZpc2lvbiAxNTUyNjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEludHJpbnNpY1JlcG9zaXRvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksOCBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSl9ERkdPcGVyYXRpb25f
RSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oUF9ERkdPcGVyYXRp
b25fRUMsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3Jv
KFZfREZHT3BlcmF0aW9uX0VPWkQsIGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50UHRyLCBpbnRQ
dHIsIGludDMyLCBkb3VibGVUeXBlKSkgXAotICAgIG1hY3JvKFZfREZHT3BlcmF0aW9uX0VPWkos
IGZ1bmN0aW9uVHlwZSh2b2lkVHlwZSwgaW50UHRyLCBpbnRQdHIsIGludDMyLCBpbnQ2NCkpCisg
ICAgbWFjcm8oVl9ERkdPcGVyYXRpb25fRU9aSiwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQ
dHIsIGludFB0ciwgaW50MzIsIGludDY0KSkgXAorICAgIG1hY3JvKFpfREZHT3BlcmF0aW9uX0Qs
IGZ1bmN0aW9uVHlwZShpbnQzMiwgZG91YmxlVHlwZSkpCiAKIGNsYXNzIEludHJpbnNpY1JlcG9z
aXRvcnkgOiBwdWJsaWMgQ29tbW9uVmFsdWVzIHsKIHB1YmxpYzoKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNTUy
NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQwOCw3MiArMTQwOCwyMDMgQEAgcHJpdmF0ZToKICAgICAgICAg
TFZhbHVlIGluZGV4ID0gbG93SW50MzIoY2hpbGQyKTsKICAgICAgICAgTFZhbHVlIHN0b3JhZ2Ug
PSBsb3dTdG9yYWdlKGNoaWxkNCk7CiAgICAgICAgIAotICAgICAgICBMQmFzaWNCbG9jayBjb250
aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlB1dEJ5VmFsIGNvbnRpbnVhdGlvbiIp
KTsKLSAgICAgICAgTEJhc2ljQmxvY2sgb3V0ZXJMYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG1f
b3V0Lm1fYmxvY2ssIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICAKICAgICAgICAgc3dpdGNo
IChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQz
MjoKKyAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFycmF5OjpDb250
aWd1b3VzOiB7Ci0gICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKGNoaWxkMywg
TWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYg
KG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpJbnQzMikKLSAgICAgICAgICAg
ICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUodmFsdWUpLCBjaGlsZDMsIFNwZWNJbnQz
MiwgaXNOb3RJbnQzMih2YWx1ZSkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBUeXBlZFBv
aW50ZXIgZWxlbWVudFBvaW50ZXIgPSBtX291dC5iYXNlSW5kZXgoCi0gICAgICAgICAgICAgICAg
bV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkgPT0gQXJyYXk6OkludDMyID8KLSAgICAgICAgICAg
ICAgICBtX2hlYXBzLmluZGV4ZWRJbnQzMlByb3BlcnRpZXMgOiBtX2hlYXBzLmluZGV4ZWRDb250
aWd1b3VzUHJvcGVydGllcywKLSAgICAgICAgICAgICAgICBzdG9yYWdlLCBtX291dC56ZXJvRXh0
KGluZGV4LCBtX291dC5pbnRQdHIpLAotICAgICAgICAgICAgICAgIG1fc3RhdGUuZm9yTm9kZShj
aGlsZDIpLm1fdmFsdWUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobV9ub2RlLT5v
cCgpID09IFB1dEJ5VmFsQWxpYXMpIHsKLSAgICAgICAgICAgICAgICBtX291dC5zdG9yZTY0KHZh
bHVlLCBlbGVtZW50UG9pbnRlcik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIlB1dEJ5VmFsIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIG91dGVyTGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhtX291dC5tX2Jsb2NrLCBjb250aW51
YXRpb24pOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBjb250aWd1b3VzUHV0QnlWYWxPdXRP
ZkJvdW5kcygKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkKKyAg
ICAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKKyAgICAgICAg
ICAgIGNhc2UgQXJyYXk6OkludDMyOgorICAgICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91
czogeworICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoY2hpbGQzLCBN
YW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJheTo6SW50MzIpCisgICAg
ICAgICAgICAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZSh2YWx1ZSksIGNoaWxk
MywgU3BlY0ludDMyLCBpc05vdEludDMyKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgVHlwZWRQb2ludGVyIGVsZW1lbnRQb2ludGVyID0gbV9vdXQuYmFzZUluZGV4
KAorICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJh
eTo6SW50MzIgPworICAgICAgICAgICAgICAgICAgICBtX2hlYXBzLmluZGV4ZWRJbnQzMlByb3Bl
cnRpZXMgOiBtX2hlYXBzLmluZGV4ZWRDb250aWd1b3VzUHJvcGVydGllcywKKyAgICAgICAgICAg
ICAgICAgICAgc3RvcmFnZSwgbV9vdXQuemVyb0V4dChpbmRleCwgbV9vdXQuaW50UHRyKSwKKyAg
ICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikubV92YWx1ZSk7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG1fbm9kZS0+b3AoKSA9PSBQdXRCeVZh
bEFsaWFzKSB7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQodmFsdWUsIGVsZW1l
bnRQb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNvbnRpZ3VvdXNQdXRCeVZhbE91
dE9mQm91bmRzKAorICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2soKS0+aXNTdHJpY3RNb2Rl
KCkKICAgICAgICAgICAgICAgICAgICAgPyBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5Qm91
bmRzU3RyaWN0CiAgICAgICAgICAgICAgICAgICAgIDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRB
cnJheUJvdW5kc05vblN0cmljdCwKLSAgICAgICAgICAgICAgICBiYXNlLCBzdG9yYWdlLCBpbmRl
eCwgdmFsdWUsIGNvbnRpbnVhdGlvbik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIG1fb3V0
LnN0b3JlNjQodmFsdWUsIGVsZW1lbnRQb2ludGVyKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7Ci0gICAg
ICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dEb3VibGUoY2hpbGQzKTsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCi0gICAgICAgICAgICAgICAgZG91YmxlVmFsdWUo
dmFsdWUpLCBjaGlsZDMsIFNwZWNSZWFsTnVtYmVyLAotICAgICAgICAgICAgICAgIG1fb3V0LmRv
dWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQodmFsdWUsIHZhbHVlKSk7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIFR5cGVkUG9pbnRlciBlbGVtZW50UG9pbnRlciA9IG1fb3V0LmJhc2VJbmRleCgK
LSAgICAgICAgICAgICAgICBtX2hlYXBzLmluZGV4ZWREb3VibGVQcm9wZXJ0aWVzLAotICAgICAg
ICAgICAgICAgIHN0b3JhZ2UsIG1fb3V0Lnplcm9FeHQoaW5kZXgsIG1fb3V0LmludFB0ciksCi0g
ICAgICAgICAgICAgICAgbV9zdGF0ZS5mb3JOb2RlKGNoaWxkMikubV92YWx1ZSk7Ci0KLSAgICAg
ICAgICAgIGlmIChtX25vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgewotICAgICAgICAgICAg
ICAgIG1fb3V0LnN0b3JlRG91YmxlKHZhbHVlLCBlbGVtZW50UG9pbnRlcik7CisgICAgICAgICAg
ICAgICAgICAgIGJhc2UsIHN0b3JhZ2UsIGluZGV4LCB2YWx1ZSwgY29udGludWF0aW9uKTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5zdG9yZTY0KHZhbHVlLCBlbGVt
ZW50UG9pbnRlcik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNvbnRpZ3VvdXNQdXRCeVZhbE91dE9mQm91bmRzKAotICAg
ICAgICAgICAgICAgIGNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKQorICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgY2FzZSBBcnJheTo6RG91YmxlOiB7CisgICAgICAgICAgICAgICAgTFZh
bHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxkMyk7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICAgICAgICAgIGRvdWJsZVZhbHVl
KHZhbHVlKSwgY2hpbGQzLCBTcGVjUmVhbE51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgbV9v
dXQuZG91YmxlTm90RXF1YWxPclVub3JkZXJlZCh2YWx1ZSwgdmFsdWUpKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBUeXBlZFBvaW50ZXIgZWxlbWVudFBvaW50ZXIgPSBtX291
dC5iYXNlSW5kZXgoCisgICAgICAgICAgICAgICAgICAgIG1faGVhcHMuaW5kZXhlZERvdWJsZVBy
b3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UsIG1fb3V0Lnplcm9FeHQoaW5k
ZXgsIG1fb3V0LmludFB0ciksCisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuZm9yTm9kZShj
aGlsZDIpLm1fdmFsdWUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICht
X25vZGUtPm9wKCkgPT0gUHV0QnlWYWxBbGlhcykgeworICAgICAgICAgICAgICAgICAgICBtX291
dC5zdG9yZURvdWJsZSh2YWx1ZSwgZWxlbWVudFBvaW50ZXIpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgY29udGlndW91c1B1dEJ5VmFsT3V0T2ZCb3VuZHMoCisgICAgICAgICAgICAgICAgICAg
IGNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKQogICAgICAgICAgICAgICAgICAgICA/IG9wZXJh
dGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QKICAgICAgICAgICAgICAg
ICAgICAgOiBvcGVyYXRpb25QdXREb3VibGVCeVZhbEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0
LAotICAgICAgICAgICAgICAgIGJhc2UsIHN0b3JhZ2UsIGluZGV4LCB2YWx1ZSwgY29udGludWF0
aW9uKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUs
IGVsZW1lbnRQb2ludGVyKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBiYXNlLCBzdG9yYWdlLCBpbmRleCwgdmFsdWUsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVEb3VibGUodmFsdWUsIGVsZW1lbnRQ
b2ludGVyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9vdXQu
anVtcChjb250aW51YXRpb24pOworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0
aW9uLCBvdXRlckxhc3ROZXh0KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBUeXBlZEFycmF5VHlwZSB0
eXBlID0gbV9ub2RlLT5hcnJheU1vZGUoKS50eXBlZEFycmF5VHlwZSgpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAoaXNUeXBlZFZpZXcodHlwZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAobV9ub2RlLT5vcCgpID09IFB1dEJ5VmFsKSB7CisgICAgICAgICAgICAgICAgICAgIHNwZWN1
bGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIE91dE9mQm91bmRzLCBub1ZhbHVlKCksIDAs
CisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTQXJy
YXlCdWZmZXJWaWV3X2xlbmd0aCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgVHlwZWRQb2ludGVyIHBvaW50ZXIgPSBUeXBlZFBvaW50ZXIo
CisgICAgICAgICAgICAgICAgICAgIG1faGVhcHMudHlwZWRBcnJheVByb3BlcnRpZXMsCisgICAg
ICAgICAgICAgICAgICAgIG1fb3V0LmFkZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0b3Jh
Z2UsCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5zaGwoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuemVyb0V4dChpbmRleCwgbV9vdXQuaW50UHRyKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX291dC5jb25zdEludFB0cihsb2dFbGVtZW50U2l6ZSh0eXBl
KSkpKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGlzSW50KHR5cGUp
KSB7CisgICAgICAgICAgICAgICAgICAgIExWYWx1ZSBpbnRWYWx1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgc3dpdGNoIChjaGlsZDMudXNlS2luZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNh
c2UgSW50MzJVc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludFZhbHVlID0gbG93SW50
MzIoY2hpbGQzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0NsYW1wZWQodHlwZSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZWxlbWVudFNpemUodHlwZSkg
PT0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgYXRMZWFzdFplcm8gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IlB1dEJ5VmFsIGludCBjbGFtcCBhdExlYXN0WmVybyIpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
IlB1dEJ5VmFsIGludCBjbGFtcCBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJs
b2NrLCAyPiBpbnRWYWx1ZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50VmFsdWVz
LmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX291dC5sZXNzVGhhbihpbnRWYWx1ZSwgbV9vdXQuaW50MzJaZXJvKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWF0aW9uLCBhdExlYXN0WmVybyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhhdExlYXN0WmVybywgY29udGludWF0aW9u
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnRWYWx1ZXMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5zZWxlY3QoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmdyZWF0ZXJUaGFuKGludFZhbHVlLCBtX291
dC5jb25zdEludDMyKDI1NSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX291
dC5jb25zdEludDMyKDI1NSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFZh
bHVlKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0
aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnRWYWx1ZSA9IG1fb3V0LnBoaShtX291dC5pbnQzMiwgaW50
VmFsdWVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBOdW1iZXJVc2U6IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIExWYWx1ZSBkb3VibGVWYWx1ZSA9IGxvd0RvdWJsZShjaGlsZDMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNDbGFtcGVk
KHR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGVsZW1lbnRTaXpl
KHR5cGUpID09IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGF0TGVhc3RaZXJvID0gRlRMX05FV19CTE9DSyht
X291dCwgKCJQdXRCeVZhbCBkb3VibGUgY2xhbXAgYXRMZWFzdFplcm8iKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgd2l0aGluUmFuZ2UgPSBGVExfTkVXX0JMT0NL
KG1fb3V0LCAoIlB1dEJ5VmFsIGRvdWJsZSBjbGFtcCB3aXRoaW5SYW5nZSIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JM
T0NLKG1fb3V0LCAoIlB1dEJ5VmFsIGRvdWJsZSBjbGFtcCBjb250aW51YXRpb24iKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVj
dG9yPFZhbHVlRnJvbUJsb2NrLCAzPiBpbnRWYWx1ZXM7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50VmFsdWVzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX291dC5kb3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkKGRvdWJsZVZh
bHVlLCBtX291dC5kb3VibGVaZXJvKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWF0aW9uLCBhdExlYXN0WmVybyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291
dC5hcHBlbmRUbyhhdExlYXN0WmVybywgd2l0aGluUmFuZ2UpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludFZhbHVlcy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmNvbnN0SW50MzIo
MjU1KSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuZG91YmxlR3JlYXRlclRoYW4oZG91Ymxl
VmFsdWUsIG1fb3V0LmNvbnN0RG91YmxlKDI1NSkpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51YXRpb24sIHdpdGhpblJhbmdlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyh3aXRo
aW5SYW5nZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRW
YWx1ZXMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5mcFRvSW50MzIoZG91YmxlVmFsdWUpKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludFZhbHVlID0gbV9vdXQucGhpKG1fb3V0LmludDMyLCBpbnRWYWx1ZXMp
OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1NpZ25lZCh0eXBlKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRWYWx1ZSA9IGRvdWJsZVRvSW50MzIoZG91Ymxl
VmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludFZhbHVlID0gZG91YmxlVG9VSW50MzIoZG91YmxlVmFsdWUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgc3dp
dGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZTgobV9vdXQuaW50Q2FzdChpbnRWYWx1
ZSwgbV9vdXQuaW50OCksIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LnN0b3JlMTYobV9vdXQuaW50Q2FzdChpbnRWYWx1ZSwgbV9vdXQuaW50MTYpLCBwb2ludGVy
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBj
YXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5zdG9yZTMyKGludFZhbHVlLCBw
b2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXNGbG9hdCh0eXBlKSk7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93RG91YmxlKGNoaWxk
Myk7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICAgICAgY2Fz
ZSBUeXBlRmxvYXQzMjoKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmVGbG9hdChtX291
dC5mcENhc3QodmFsdWUsIG1fb3V0LmZsb2F0VHlwZSksIHBvaW50ZXIpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDY0OgorICAgICAg
ICAgICAgICAgICAgICBtX291dC5zdG9yZURvdWJsZSh2YWx1ZSwgcG9pbnRlcik7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAog
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9Ci0KLSAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotICAg
ICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIG91dGVyTGFzdE5leHQpOwogICAgIH0K
ICAgICAKICAgICB2b2lkIGNvbXBpbGVHZXRCeU9mZnNldCgpCkBAIC0yMDQ4LDYgKzIxNzksNTUg
QEAgcHJpdmF0ZToKICAgICAgICAgbV9vdXQuc3dpdGNoSW5zdHJ1Y3Rpb24oc3dpdGNoVmFsdWUs
IGNhc2VzLCBsb3dCbG9jayhkYXRhLT5mYWxsVGhyb3VnaCkpOwogICAgIH0KICAgICAKKyAgICBM
VmFsdWUgZG91YmxlVG9JbnQzMihMVmFsdWUgZG91YmxlVmFsdWUsIGRvdWJsZSBsb3csIGRvdWJs
ZSBoaWdoLCBib29sIGlzU2lnbmVkID0gdHJ1ZSkKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBP
cHRpbWl6ZSBkb3VibGUtdG8taW50IGNvbnZlcnNpb25zLgorICAgICAgICAvLyA8cmRhcjovL3By
b2JsZW0vMTQ5Mzg0NjU+CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBncmVhdEVub3Vn
aCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiZG91YmxlVG9JbnQzMiBncmVhdEVub3VnaCIpKTsK
KyAgICAgICAgTEJhc2ljQmxvY2sgd2l0aGluUmFuZ2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
ImRvdWJsZVRvSW50MzIgd2l0aGluUmFuZ2UiKSk7CisgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dQ
YXRoID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJkb3VibGVUb0ludDMyIHNsb3dQYXRoIikpOwor
ICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAo
ImRvdWJsZVRvSW50MzIgY29udGludWF0aW9uIikpOworICAgICAgICAKKyAgICAgICAgVmVjdG9y
PFZhbHVlRnJvbUJsb2NrLCAyPiByZXN1bHRzOworICAgICAgICAKKyAgICAgICAgbV9vdXQuYnJh
bmNoKAorICAgICAgICAgICAgbV9vdXQuZ3JlYXRlclRoYW5PckVxdWFsKGRvdWJsZVZhbHVlLCBt
X291dC5jb25zdERvdWJsZShsb3cpKSwKKyAgICAgICAgICAgIGdyZWF0RW5vdWdoLCBzbG93UGF0
aCk7CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVu
ZFRvKGdyZWF0RW5vdWdoLCB3aXRoaW5SYW5nZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAg
ICAgICAgICAgIG1fb3V0Lmxlc3NUaGFuT3JFcXVhbChkb3VibGVWYWx1ZSwgbV9vdXQuY29uc3RE
b3VibGUoaGlnaCkpLAorICAgICAgICAgICAgd2l0aGluUmFuZ2UsIHNsb3dQYXRoKTsKKyAgICAg
ICAgCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHdpdGhpblJhbmdlLCBzbG93UGF0aCk7CisgICAg
ICAgIExWYWx1ZSBmYXN0UmVzdWx0OworICAgICAgICBpZiAoaXNTaWduZWQpCisgICAgICAgICAg
ICBmYXN0UmVzdWx0ID0gbV9vdXQuZnBUb0ludDMyKGRvdWJsZVZhbHVlKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgZmFzdFJlc3VsdCA9IG1fb3V0LmZwVG9VSW50MzIoZG91YmxlVmFsdWUp
OworICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IoZmFzdFJlc3VsdCkpOworICAg
ICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291dC5h
cHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAgICAgICAgcmVzdWx0cy5hcHBlbmQo
bV9vdXQuYW5jaG9yKG1fb3V0LmNhbGwobV9vdXQub3BlcmF0aW9uKHRvSW50MzIpLCBkb3VibGVW
YWx1ZSkpKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAKKyAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHJl
dHVybiBtX291dC5waGkobV9vdXQuaW50MzIsIHJlc3VsdHMpOworICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgTFZhbHVlIGRvdWJsZVRvSW50MzIoTFZhbHVlIGRvdWJsZVZhbHVl
KQorICAgIHsKKyAgICAgICAgZG91YmxlIGxpbWl0ID0gcG93KDIsIDMxKSAtIDE7CisgICAgICAg
IHJldHVybiBkb3VibGVUb0ludDMyKGRvdWJsZVZhbHVlLCAtbGltaXQsIGxpbWl0KTsKKyAgICB9
CisgICAgCisgICAgTFZhbHVlIGRvdWJsZVRvVUludDMyKExWYWx1ZSBkb3VibGVWYWx1ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBkb3VibGVUb0ludDMyKGRvdWJsZVZhbHVlLCAwLCBwb3coMiwg
MzIpIC0gMSwgZmFsc2UpOworICAgIH0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZUJhY2t3YXJk
KAogICAgICAgICBFeGl0S2luZCBraW5kLCBGb3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwgTm9kZSog
aGlnaFZhbHVlLCBMVmFsdWUgZmFpbENvbmRpdGlvbikKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHJldmlzaW9uIDE1NTI2MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw3ICsxNzQs
OSBAQCBwdWJsaWM6CiAgICAgTFZhbHVlIHNpZ25FeHQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBl
KSB7IHJldHVybiBidWlsZFNFeHQobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0KICAgICBMVmFs
dWUgemVyb0V4dChMVmFsdWUgdmFsdWUsIExUeXBlIHR5cGUpIHsgcmV0dXJuIGJ1aWxkWkV4dCht
X2J1aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQogICAgIExWYWx1ZSBmcFRvSW50KExWYWx1ZSB2YWx1
ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRGUFRvU0kobV9idWlsZGVyLCB2YWx1ZSwgdHlw
ZSk7IH0KKyAgICBMVmFsdWUgZnBUb1VJbnQoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJl
dHVybiBidWlsZEZQVG9VSShtX2J1aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQogICAgIExWYWx1ZSBm
cFRvSW50MzIoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBmcFRvSW50KHZhbHVlLCBpbnQzMik7IH0K
KyAgICBMVmFsdWUgZnBUb1VJbnQzMihMVmFsdWUgdmFsdWUpIHsgcmV0dXJuIGZwVG9VSW50KHZh
bHVlLCBpbnQzMik7IH0KICAgICBMVmFsdWUgaW50VG9GUChMVmFsdWUgdmFsdWUsIExUeXBlIHR5
cGUpIHsgcmV0dXJuIGJ1aWxkU0lUb0ZQKG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CiAgICAg
TFZhbHVlIGludFRvRG91YmxlKExWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gaW50VG9GUCh2YWx1ZSwg
ZG91YmxlVHlwZSk7IH0KICAgICBMVmFsdWUgdW5zaWduZWRUb0ZQKExWYWx1ZSB2YWx1ZSwgTFR5
cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRVSVRvRlAobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0K
QEAgLTIwNyw5ICsyMDksMTIgQEAgcHVibGljOgogICAgIExWYWx1ZSBsb2FkUHRyKFR5cGVkUG9p
bnRlciBwb2ludGVyKSB7IHJldHVybiBsb2FkKHBvaW50ZXIsIHJlZlB0cik7IH0KICAgICBMVmFs
dWUgbG9hZEZsb2F0KFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHJldHVybiBsb2FkKHBvaW50ZXIs
IHJlZkZsb2F0KTsgfQogICAgIExWYWx1ZSBsb2FkRG91YmxlKFR5cGVkUG9pbnRlciBwb2ludGVy
KSB7IHJldHVybiBsb2FkKHBvaW50ZXIsIHJlZkRvdWJsZSk7IH0KKyAgICB2b2lkIHN0b3JlOChM
VmFsdWUgdmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2ludGVy
LCByZWY4KTsgfQorICAgIHZvaWQgc3RvcmUxNihMVmFsdWUgdmFsdWUsIFR5cGVkUG9pbnRlciBw
b2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2ludGVyLCByZWYxNik7IH0KICAgICB2b2lkIHN0b3Jl
MzIoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyBzdG9yZSh2YWx1ZSwgcG9p
bnRlciwgcmVmMzIpOyB9CiAgICAgdm9pZCBzdG9yZTY0KExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2lu
dGVyIHBvaW50ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZjY0KTsgfQogICAgIHZvaWQg
c3RvcmVQdHIoTFZhbHVlIHZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlcikgeyBzdG9yZSh2YWx1
ZSwgcG9pbnRlciwgcmVmUHRyKTsgfQorICAgIHZvaWQgc3RvcmVGbG9hdChMVmFsdWUgdmFsdWUs
IFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHN0b3JlKHZhbHVlLCBwb2ludGVyLCByZWZGbG9hdCk7
IH0KICAgICB2b2lkIHN0b3JlRG91YmxlKExWYWx1ZSB2YWx1ZSwgVHlwZWRQb2ludGVyIHBvaW50
ZXIpIHsgc3RvcmUodmFsdWUsIHBvaW50ZXIsIHJlZkRvdWJsZSk7IH0KIAogICAgIExWYWx1ZSBh
ZGRQdHIoTFZhbHVlIHZhbHVlLCBwdHJkaWZmX3QgaW1tZWRpYXRlID0gMCkK
</data>
<flag name="review"
          id="232959"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>