<?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>98996</bug_id>
          
          <creation_ts>2012-10-10 23:42:35 -0700</creation_ts>
          <short_desc>DFG should inline code blocks that use new_array_buffer</short_desc>
          <delta_ts>2012-10-11 12:36:35 -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>98608</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>739645</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-10 23:42:35 -0700</bug_when>
    <thetext>It doesn&apos;t do so right now because of a really silly piece of missing functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739661</commentid>
    <comment_count>1</comment_count>
      <attachid>168153</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-11 00:23:26 -0700</bug_when>
    <thetext>Created attachment 168153
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739672</commentid>
    <comment_count>2</comment_count>
      <attachid>168153</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-11 00:48:24 -0700</bug_when>
    <thetext>Comment on attachment 168153
the patch

Attachment 168153 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14252494

New failing tests:
inspector/profiler/memory-instrumentation-canvas.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740023</commentid>
    <comment_count>3</comment_count>
      <attachid>168153</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-10-11 09:04:54 -0700</bug_when>
    <thetext>Comment on attachment 168153
the patch

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

Are those test failures real?

This patch does not appear to do the inlining yet...

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        hash-cons them, either.

&quot;const&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740032</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-11 09:19:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 168153 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168153&amp;action=review
&gt; 
&gt; Are those test failures real?

I don&apos;t think so. :-/  I will investigate though.

&gt; 
&gt; This patch does not appear to do the inlining yet...

It just enables inlining of code blocks that use new_array_buffer.  Array allocations themselves are not yet inlined; that&apos;s https://bugs.webkit.org/show_bug.cgi?id=98608.

&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:10
&gt; &gt; +        hash-cons them, either.
&gt; 
&gt; &quot;const&quot;

http://en.wikipedia.org/wiki/Hash_consing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740174</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-11 12:36:20 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/131087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740175</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-11 12:36:35 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 168153 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168153&amp;action=review
&gt; &gt; 
&gt; &gt; Are those test failures real?
&gt; 
&gt; I don&apos;t think so. :-/  I will investigate though.

I don&apos;t see this locally.  Assuming it&apos;s a flaky test.

&gt; 
&gt; &gt; 
&gt; &gt; This patch does not appear to do the inlining yet...
&gt; 
&gt; It just enables inlining of code blocks that use new_array_buffer.  Array allocations themselves are not yet inlined; that&apos;s https://bugs.webkit.org/show_bug.cgi?id=98608.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/ChangeLog:10
&gt; &gt; &gt; +        hash-cons them, either.
&gt; &gt; 
&gt; &gt; &quot;const&quot;
&gt; 
&gt; http://en.wikipedia.org/wiki/Hash_consing</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168153</attachid>
            <date>2012-10-11 00:23:26 -0700</date>
            <delta_ts>2012-10-11 09:04:54 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>newarraybuffer_1.patch</filename>
            <type>text/plain</type>
            <size>17900</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMxMDE4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDEyLTEwLTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBpbmxpbmUgY29kZSBibG9ja3MgdGhhdCB1c2UgbmV3X2FycmF5X2J1ZmZlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg5OTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFkZHMg
cGx1bWJpbmcgdG8gZHJvcCBpbiBjb25zdGFudCBidWZmZXJzIGZyb20gdGhlIGlubGluZWVzIHRv
IHRoZSBpbmxpbmVyLgorICAgICAgICBJdCdzIHNtYXJ0IGFib3V0IG5vdCBkdXBsaWNhdGluZyBi
dWZmZXJzIG5lZWRsZXNzbHkgYnV0IGRvZXNuJ3QgdHJ5IHRvIGNvbXBsZXRlbHkKKyAgICAgICAg
aGFzaC1jb25zIHRoZW0sIGVpdGhlci4KKworICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5o
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Om51bWJlck9mQ29uc3RhbnRCdWZmZXJzKToKKyAg
ICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRDb25zdGFudEJ1ZmZlcik6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6Y29uc3RhbnRCdWZmZXJBc1ZlY3Rvcik6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6Y29uc3RhbnRCdWZmZXIpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdFN0YXRlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRlKToKKyAgICAgICAg
KiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoQ29uc3RhbnRCdWZmZXJLZXkp
OgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50QnVmZmVyS2V5OjpDb25zdGFudEJ1ZmZlcktl
eSk6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRCdWZmZXJLZXk6Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50QnVmZmVyS2V5OjpoYXNoKToKKyAgICAgICAgKEpT
Qzo6REZHOjpDb25zdGFudEJ1ZmZlcktleTo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUpOgorICAg
ICAgICAoSlNDOjpERkc6OkNvbnN0YW50QnVmZmVyS2V5Ojpjb2RlQmxvY2spOgorICAgICAgICAo
SlNDOjpERkc6OkNvbnN0YW50QnVmZmVyS2V5OjppbmRleCk6CisgICAgICAgIChERkcpOgorICAg
ICAgICAoSlNDOjpERkc6OkNvbnN0YW50QnVmZmVyS2V5SGFzaDo6aGFzaCk6CisgICAgICAgIChK
U0M6OkRGRzo6Q29uc3RhbnRCdWZmZXJLZXlIYXNoOjplcXVhbCk6CisgICAgICAgIChDb25zdGFu
dEJ1ZmZlcktleUhhc2gpOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKEJ5dGVDb2RlUGFyc2Vy
KToKKyAgICAgICAgKElubGluZVN0YWNrRW50cnkpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNl
cjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6CisgICAgICAgICogZGZnL0RG
R0NhcGFiaWxpdGllcy5oOgorICAgICAgICAoSlNDOjpERkc6OmNhbklubGluZU9wY29kZSk6Cisg
ICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRp
b25zLmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKwogMjAxMi0xMC0xMCAg
Wm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQYWdlbG9hZCB0
ZXN0cyBzaG91bGQgbWVhc3VyZSBtZW1vcnkgdXNhZ2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDEzMDg2NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtOTI1
LDE4ICs5MjUsMzIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgUmVnRXhw
KiByZWdleHAoaW50IGluZGV4KSBjb25zdCB7IEFTU0VSVChtX3JhcmVEYXRhKTsgcmV0dXJuIG1f
cmFyZURhdGEtPm1fcmVnZXhwc1tpbmRleF0uZ2V0KCk7IH0KIAotICAgICAgICB1bnNpZ25lZCBh
ZGRDb25zdGFudEJ1ZmZlcih1bnNpZ25lZCBsZW5ndGgpCisgICAgICAgIHVuc2lnbmVkIG51bWJl
ck9mQ29uc3RhbnRCdWZmZXJzKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFt
X3JhcmVEYXRhKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJu
IG1fcmFyZURhdGEtPm1fY29uc3RhbnRCdWZmZXJzLnNpemUoKTsKKyAgICAgICAgfQorICAgICAg
ICB1bnNpZ25lZCBhZGRDb25zdGFudEJ1ZmZlcihjb25zdCBWZWN0b3I8SlNWYWx1ZT4mIGJ1ZmZl
cikKICAgICAgICAgewogICAgICAgICAgICAgY3JlYXRlUmFyZURhdGFJZk5lY2Vzc2FyeSgpOwog
ICAgICAgICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fcmFyZURhdGEtPm1fY29uc3RhbnRCdWZmZXJz
LnNpemUoKTsKLSAgICAgICAgICAgIG1fcmFyZURhdGEtPm1fY29uc3RhbnRCdWZmZXJzLmFwcGVu
ZChWZWN0b3I8SlNWYWx1ZT4obGVuZ3RoKSk7CisgICAgICAgICAgICBtX3JhcmVEYXRhLT5tX2Nv
bnN0YW50QnVmZmVycy5hcHBlbmQoYnVmZmVyKTsKICAgICAgICAgICAgIHJldHVybiBzaXplOwog
ICAgICAgICB9CisgICAgICAgIHVuc2lnbmVkIGFkZENvbnN0YW50QnVmZmVyKHVuc2lnbmVkIGxl
bmd0aCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkZENvbnN0YW50QnVmZmVyKFZl
Y3RvcjxKU1ZhbHVlPihsZW5ndGgpKTsKKyAgICAgICAgfQogCi0gICAgICAgIEpTVmFsdWUqIGNv
bnN0YW50QnVmZmVyKHVuc2lnbmVkIGluZGV4KQorICAgICAgICBWZWN0b3I8SlNWYWx1ZT4mIGNv
bnN0YW50QnVmZmVyQXNWZWN0b3IodW5zaWduZWQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEFTU0VSVChtX3JhcmVEYXRhKTsKLSAgICAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5t
X2NvbnN0YW50QnVmZmVyc1tpbmRleF0uZGF0YSgpOworICAgICAgICAgICAgcmV0dXJuIG1fcmFy
ZURhdGEtPm1fY29uc3RhbnRCdWZmZXJzW2luZGV4XTsKKyAgICAgICAgfQorICAgICAgICBKU1Zh
bHVlKiBjb25zdGFudEJ1ZmZlcih1bnNpZ25lZCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGNvbnN0YW50QnVmZmVyQXNWZWN0b3IoaW5kZXgpLmRhdGEoKTsKICAgICAgICAg
fQogCiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiBtX2ds
b2JhbE9iamVjdC5nZXQoKTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0U3RhdGUuY3BwCShyZXZpc2lvbiAxMzA4NjUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI2
LDEwICsxMTI2LDkgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAog
ICAgICAgICBicmVhazsKICAgICAgICAgCiAgICAgY2FzZSBOZXdBcnJheUJ1ZmZlcjoKLSAgICAg
ICAgLy8gVW5sZXNzIHdlJ3JlIGhhdmluZyBhIGJhZCB0aW1lLCB0aGlzIG5vZGUgY2FuIGNoYW5n
ZSBpdHMgbWluZCBhYm91dCB3aGF0IHN0cnVjdHVyZQotICAgICAgICAvLyBpdCB1c2VzLgotICAg
ICAgICBub2RlLnNldENhbkV4aXQoZmFsc2UpOwotICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCku
c2V0KFNwZWNBcnJheSk7CisgICAgICAgIG5vZGUuc2V0Q2FuRXhpdCh0cnVlKTsKKyAgICAgICAg
Zm9yTm9kZShub2RlSW5kZXgpLnNldChtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLmNvZGVP
cmlnaW4pLT5hcnJheVN0cnVjdHVyZSgpKTsKKyAgICAgICAgbV9oYXZlU3RydWN0dXJlcyA9IHRy
dWU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJl
dmlzaW9uIDEzMDg2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3NiBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKK2NsYXNzIENvbnN0YW50QnVmZmVyS2V5IHsKK3B1Ymxp
YzoKKyAgICBDb25zdGFudEJ1ZmZlcktleSgpCisgICAgICAgIDogbV9jb2RlQmxvY2soMCkKKyAg
ICAgICAgLCBtX2luZGV4KDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBDb25zdGFudEJ1ZmZl
cktleShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCisgICAgICAgIDogbV9jb2RlQmxv
Y2soMCkKKyAgICAgICAgLCBtX2luZGV4KDEpCisgICAgeworICAgIH0KKyAgICAKKyAgICBDb25z
dGFudEJ1ZmZlcktleShDb2RlQmxvY2sqIGNvZGVCbG9jaywgdW5zaWduZWQgaW5kZXgpCisgICAg
ICAgIDogbV9jb2RlQmxvY2soY29kZUJsb2NrKQorICAgICAgICAsIG1faW5kZXgoaW5kZXgpCisg
ICAgeworICAgIH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29uc3RhbnRCdWZm
ZXJLZXkmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY29kZUJsb2NrID09
IG90aGVyLm1fY29kZUJsb2NrCisgICAgICAgICAgICAmJiBtX2luZGV4ID09IG90aGVyLm1faW5k
ZXg7CisgICAgfQorICAgIAorICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFdURjo6UHRySGFzaDxDb2RlQmxvY2sqPjo6aGFzaChtX2NvZGVCbG9jaykgXiBt
X2luZGV4OworICAgIH0KKyAgICAKKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhbV9jb2RlQmxvY2sgJiYgbV9pbmRleDsKKyAg
ICB9CisgICAgCisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSBjb25zdCB7IHJldHVybiBtX2Nv
ZGVCbG9jazsgfQorICAgIHVuc2lnbmVkIGluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsg
fQorICAgIAorcHJpdmF0ZToKKyAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOworICAgIHVuc2ln
bmVkIG1faW5kZXg7Cit9OworCitzdHJ1Y3QgQ29uc3RhbnRCdWZmZXJLZXlIYXNoIHsKKyAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBDb25zdGFudEJ1ZmZlcktleSYga2V5KSB7IHJldHVy
biBrZXkuaGFzaCgpOyB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ29uc3RhbnRCdWZm
ZXJLZXkmIGEsIGNvbnN0IENvbnN0YW50QnVmZmVyS2V5JiBiKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGEgPT0gYjsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29t
cGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkRGRworCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERl
ZmF1bHRIYXNoOwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpERkc6OkNvbnN0
YW50QnVmZmVyS2V5PiB7CisgICAgdHlwZWRlZiBKU0M6OkRGRzo6Q29uc3RhbnRCdWZmZXJLZXlI
YXNoIEhhc2g7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsK
K3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpERkc6OkNvbnN0YW50QnVmZmVyS2V5
PiA6IFNpbXBsZUNsYXNzSGFzaFRyYWl0czxKU0M6OkRGRzo6Q29uc3RhbnRCdWZmZXJLZXk+IHsg
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKKwogLy8gPT09IEJ5dGVDb2RlUGFyc2VyID09PQogLy8KIC8vIFRoaXMgY2xhc3MgaXMgdXNl
ZCB0byBjb21waWxlIHRoZSBkYXRhZmxvdyBncmFwaCBmcm9tIGEgQ29kZUJsb2NrLgpAQCAtMTA1
Miw2ICsxMTIyLDggQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UGhpU3RhY2tFbnRyeSwgMTY+IG1f
YXJndW1lbnRQaGlTdGFjazsKICAgICBWZWN0b3I8UGhpU3RhY2tFbnRyeSwgMTY+IG1fbG9jYWxQ
aGlTdGFjazsKICAgICAKKyAgICBIYXNoTWFwPENvbnN0YW50QnVmZmVyS2V5LCB1bnNpZ25lZD4g
bV9jb25zdGFudEJ1ZmZlckNhY2hlOworICAgIAogICAgIHN0cnVjdCBJbmxpbmVTdGFja0VudHJ5
IHsKICAgICAgICAgQnl0ZUNvZGVQYXJzZXIqIG1fYnl0ZUNvZGVQYXJzZXI7CiAgICAgICAgIApA
QCAtMTA3MCw2ICsxMTQyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gZGlyZWN0LCBjYWxsZXIp
LgogICAgICAgICBWZWN0b3I8dW5zaWduZWQ+IG1faWRlbnRpZmllclJlbWFwOwogICAgICAgICBW
ZWN0b3I8dW5zaWduZWQ+IG1fY29uc3RhbnRSZW1hcDsKKyAgICAgICAgVmVjdG9yPHVuc2lnbmVk
PiBtX2NvbnN0YW50QnVmZmVyUmVtYXA7CiAgICAgICAgIAogICAgICAgICAvLyBCbG9ja3MgaW50
cm9kdWNlZCBieSB0aGlzIGNvZGUgYmxvY2ssIHdoaWNoIG5lZWQgc3VjY2Vzc29yIGxpbmtpbmcu
CiAgICAgICAgIC8vIE1heSBpbmNsdWRlIHVwIHRvIG9uZSBiYXNpYyBibG9jayB0aGF0IGluY2x1
ZGVzIHRoZSBjb250aW51YXRpb24gYWZ0ZXIKQEAgLTE4OTYsNyArMTk2OSw3IEBAIGJvb2wgQnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgY2FzZSBvcF9uZXdfYXJy
YXlfYnVmZmVyOiB7CiAgICAgICAgICAgICBpbnQgc3RhcnRDb25zdGFudCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgbnVtQ29uc3RhbnRzID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICAgICAgICAgIHNldChjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKE5ld0FycmF5QnVmZmVyLCBPcEluZm8o
c3RhcnRDb25zdGFudCksIE9wSW5mbyhudW1Db25zdGFudHMpKSk7CisgICAgICAgICAgICBzZXQo
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgYWRkVG9HcmFwaChOZXdBcnJheUJ1ZmZl
ciwgT3BJbmZvKG1faW5saW5lU3RhY2tUb3AtPm1fY29uc3RhbnRCdWZmZXJSZW1hcFtzdGFydENv
bnN0YW50XSksIE9wSW5mbyhudW1Db25zdGFudHMpKSk7CiAgICAgICAgICAgICBORVhUX09QQ09E
RShvcF9uZXdfYXJyYXlfYnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0zMjUx
LDYgKzMzMjQsNyBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lCiAg
ICAgICAgIAogICAgICAgICBtX2lkZW50aWZpZXJSZW1hcC5yZXNpemUoY29kZUJsb2NrLT5udW1i
ZXJPZklkZW50aWZpZXJzKCkpOwogICAgICAgICBtX2NvbnN0YW50UmVtYXAucmVzaXplKGNvZGVC
bG9jay0+bnVtYmVyT2ZDb25zdGFudFJlZ2lzdGVycygpKTsKKyAgICAgICAgbV9jb25zdGFudEJ1
ZmZlclJlbWFwLnJlc2l6ZShjb2RlQmxvY2stPm51bWJlck9mQ29uc3RhbnRCdWZmZXJzKCkpOwog
CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29kZUJsb2NrLT5udW1iZXJPZklkZW50
aWZpZXJzKCk7ICsraSkgewogICAgICAgICAgICAgU3RyaW5nSW1wbCogcmVwID0gY29kZUJsb2Nr
LT5pZGVudGlmaWVyKGkpLmltcGwoKTsKQEAgLTMyNzksNiArMzM1MywyMCBAQCBCeXRlQ29kZVBh
cnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lCiAgICAgICAgIH0KICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZHbG9iYWxSZXNvbHZlSW5mb3Mo
KTsgKytpKQogICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5hZGRHbG9i
YWxSZXNvbHZlSW5mbyhzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY29kZUJsb2NrLT5udW1iZXJPZkNvbnN0YW50
QnVmZmVycygpOyArK2kpIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGlubGluZSB0aGUgc2FtZSBj
b2RlIGJsb2NrIG11bHRpcGxlIHRpbWVzLCB3ZSBkb24ndCB3YW50IHRvIG5lZWRsZXNzbHkKKyAg
ICAgICAgICAgIC8vIGR1cGxpY2F0ZSBpdHMgY29uc3RhbnQgYnVmZmVycy4KKyAgICAgICAgICAg
IEhhc2hNYXA8Q29uc3RhbnRCdWZmZXJLZXksIHVuc2lnbmVkPjo6aXRlcmF0b3IgaXRlciA9Cisg
ICAgICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29uc3RhbnRCdWZmZXJDYWNoZS5maW5k
KENvbnN0YW50QnVmZmVyS2V5KGNvZGVCbG9jaywgaSkpOworICAgICAgICAgICAgaWYgKGl0ZXIg
IT0gYnl0ZUNvZGVQYXJzZXItPm1fY29uc3RhbnRCdWZmZXJDYWNoZS5lbmQoKSkgeworICAgICAg
ICAgICAgICAgIG1fY29uc3RhbnRCdWZmZXJSZW1hcFtpXSA9IGl0ZXItPnZhbHVlOworICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVmVjdG9yPEpT
VmFsdWU+JiBidWZmZXIgPSBjb2RlQmxvY2stPmNvbnN0YW50QnVmZmVyQXNWZWN0b3IoaSk7Cisg
ICAgICAgICAgICB1bnNpZ25lZCBuZXdJbmRleCA9IGJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9j
ay0+YWRkQ29uc3RhbnRCdWZmZXIoYnVmZmVyKTsKKyAgICAgICAgICAgIG1fY29uc3RhbnRCdWZm
ZXJSZW1hcFtpXSA9IG5ld0luZGV4OworICAgICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29u
c3RhbnRCdWZmZXJDYWNoZS5hZGQoQ29uc3RhbnRCdWZmZXJLZXkoY29kZUJsb2NrLCBpKSwgbmV3
SW5kZXgpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX2NhbGxzaXRlQmxvY2tIZWFk
TmVlZHNMaW5raW5nID0gdHJ1ZTsKICAgICB9IGVsc2UgewpAQCAtMzI5NCwxMSArMzM4MiwxNCBA
QCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lCiAKICAgICAgICAgbV9p
ZGVudGlmaWVyUmVtYXAucmVzaXplKGNvZGVCbG9jay0+bnVtYmVyT2ZJZGVudGlmaWVycygpKTsK
ICAgICAgICAgbV9jb25zdGFudFJlbWFwLnJlc2l6ZShjb2RlQmxvY2stPm51bWJlck9mQ29uc3Rh
bnRSZWdpc3RlcnMoKSk7CisgICAgICAgIG1fY29uc3RhbnRCdWZmZXJSZW1hcC5yZXNpemUoY29k
ZUJsb2NrLT5udW1iZXJPZkNvbnN0YW50QnVmZmVycygpKTsKIAogICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZJZGVudGlmaWVycygpOyArK2kpCiAgICAg
ICAgICAgICBtX2lkZW50aWZpZXJSZW1hcFtpXSA9IGk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY29kZUJsb2NrLT5udW1iZXJPZkNvbnN0YW50UmVnaXN0ZXJzKCk7ICsraSkKICAg
ICAgICAgICAgIG1fY29uc3RhbnRSZW1hcFtpXSA9IGkgKyBGaXJzdENvbnN0YW50UmVnaXN0ZXJJ
bmRleDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb2RlQmxvY2stPm51bWJlck9m
Q29uc3RhbnRCdWZmZXJzKCk7ICsraSkKKyAgICAgICAgICAgIG1fY29uc3RhbnRCdWZmZXJSZW1h
cFtpXSA9IGk7CiAKICAgICAgICAgbV9jYWxsc2l0ZUJsb2NrSGVhZE5lZWRzTGlua2luZyA9IGZh
bHNlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuaAkocmV2aXNpb24gMTMwODY1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYXBhYmlsaXRpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDEwICsyMDEsNiBAQCBpbmxp
bmUgYm9vbCBjYW5JbmxpbmVPcGNvZGUoT3Bjb2RlSUQgb3BjCiAgICAgY2FzZSBvcF9yZXNvbHZl
OgogICAgIGNhc2Ugb3BfcmVzb2x2ZV9iYXNlOgogICAgICAgICAKLSAgICAvLyBDb25zdGFudCBi
dWZmZXJzIGFyZW4ndCBjb3BpZWQgY29ycmVjdGx5LiBUaGlzIGlzIGVhc3kgdG8gZml4LCBidXQg
Zm9yCi0gICAgLy8gbm93IHdlIGp1c3QgZGlzYWJsZSBpbmxpbmluZyBmb3IgZnVuY3Rpb25zIHRo
YXQgdXNlIHRoZW0uCi0gICAgY2FzZSBvcF9uZXdfYXJyYXlfYnVmZmVyOgotICAgICAgICAKICAg
ICAvLyBJbmxpbmluZyBkb2Vzbid0IGNvcnJlY3RseSByZW1hcCByZWd1bGFyIGV4cHJlc3Npb24g
b3BlcmFuZHMuCiAgICAgY2FzZSBvcF9uZXdfcmVnZXhwOgogICAgICAgICAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMTMwODY1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEyNCwxMSArMTEyNCwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFU
SU9OIG9wZXJhdGlvbk5lCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5OjpjcmVh
dGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBhcnJheVN0cnVjdHVyZSwgc2l6ZSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0FycmF5QnVmZmVyKEV4ZWNTdGF0
ZSogZXhlYywgc2l6ZV90IHN0YXJ0LCBzaXplX3Qgc2l6ZSkKK0VuY29kZWRKU1ZhbHVlIERGR19P
UEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlCdWZmZXIoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIGFycmF5U3RydWN0dXJlLCBzaXplX3Qgc3RhcnQsIHNpemVfdCBzaXplKQogewogICAgIEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICBOYXRpdmVD
YWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZnbG9iYWxEYXRhLCBleGVjKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEFycmF5KGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5jb25z
dGFudEJ1ZmZlcihzdGFydCksIHNpemUpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNv
bnN0cnVjdEFycmF5KGV4ZWMsIGFycmF5U3RydWN0dXJlLCBleGVjLT5jb2RlQmxvY2soKS0+Y29u
c3RhbnRCdWZmZXIoc3RhcnQpLCBzaXplKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVS
QVRJT04gb3BlcmF0aW9uTmV3UmVnZXhwKEV4ZWNTdGF0ZSogZXhlYywgdm9pZCogcmVnZXhwUHRy
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHJldmlz
aW9uIDEzMDg2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5o
CSh3b3JraW5nIGNvcHkpCkBAIC04MCw2ICs4MCw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
REZHX09QRVJBVElPTiAoKkoKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiAo
KkpfREZHT3BlcmF0aW9uX0VTdCkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CiB0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gKCpKX0RGR09wZXJhdGlvbl9FU3RaKShFeGVjU3Rh
dGUqLCBTdHJ1Y3R1cmUqLCBpbnQzMl90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgREZHX09Q
RVJBVElPTiAoKkpfREZHT3BlcmF0aW9uX0VTdFBTKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCB2
b2lkKiwgc2l6ZV90KTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiAoKkpf
REZHT3BlcmF0aW9uX0VTdFNTKShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBzaXplX3QsIHNpemVf
dCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gKCpKX0RGR09wZXJhdGlv
bl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIERGR19P
UEVSQVRJT04gKCpKX0RGR09wZXJhdGlvbl9FWkljZlopKEV4ZWNTdGF0ZSosIGludDMyX3QsIElu
bGluZUNhbGxGcmFtZSosIGludDMyX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BF
UkFUSU9OICgqSl9ERkdPcGVyYXRpb25fRVpaKShFeGVjU3RhdGUqLCBpbnQzMl90LCBpbnQzMl90
KTsKQEAgLTEzNyw3ICsxMzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJh
dGlvblJlCiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJpbWl0aXZl
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblN0ckNhdChFeGVjU3RhdGUqLCB2b2lkKiwgc2l6ZV90
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5l
d0FycmF5KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIHZvaWQqLCBzaXplX3QpIFdURl9JTlRFUk5B
TDsKLUVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlCdWZmZXIo
RXhlY1N0YXRlKiwgc2l6ZV90LCBzaXplX3QpIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXlCdWZmZXIoRXhlY1N0YXRlKiwgU3RydWN0
dXJlKiwgc2l6ZV90LCBzaXplX3QpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIERGR19P
UEVSQVRJT04gb3BlcmF0aW9uTmV3RW1wdHlBcnJheShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld0Fy
cmF5V2l0aFNpemUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFM
OwogRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25OZXdSZWdleHAoRXhlY1N0
YXRlKiwgdm9pZCopIFdURl9JTlRFUk5BTDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTMwODY1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzU4NSwxMSArMzU4NSwxNSBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIE5ld0Fy
cmF5QnVmZmVyOiB7CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2pp
dC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihub2RlLmNvZGVPcmlnaW4pOworICAgICAgICBpZiAo
IWdsb2JhbE9iamVjdC0+aXNIYXZpbmdBQmFkVGltZSgpKQorICAgICAgICAgICAgZ2xvYmFsT2Jq
ZWN0LT5oYXZpbmdBQmFkVGltZVdhdGNocG9pbnQoKS0+YWRkKHNwZWN1bGF0aW9uV2F0Y2hwb2lu
dCgpKTsKKyAgICAgICAgCiAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgICAgIEdQUlJl
c3VsdCByZXN1bHRQYXlsb2FkKHRoaXMpOwogICAgICAgICBHUFJSZXN1bHQyIHJlc3VsdFRhZyh0
aGlzKTsKICAgICAgICAgCi0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlC
dWZmZXIsIHJlc3VsdFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgbm9kZS5zdGFydENv
bnN0YW50KCksIG5vZGUubnVtQ29uc3RhbnRzKCkpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbk5ld0FycmF5QnVmZmVyLCByZXN1bHRUYWcuZ3ByKCksIHJlc3VsdFBheWxvYWQuZ3By
KCksIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmUoKSwgbm9kZS5zdGFydENvbnN0YW50KCks
IG5vZGUubnVtQ29uc3RhbnRzKCkpOwogICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IG1ha2Ug
dGhlIGNhbGxPcGVyYXRpb24gYWJvdmUgZXhwbGljaXRseSByZXR1cm4gYSBjZWxsIHJlc3VsdCwg
b3Igaml0QXNzZXJ0IHRoZSB0YWcgaXMgYSBjZWxsIHRhZy4KICAgICAgICAgY2VsbFJlc3VsdChy
ZXN1bHRQYXlsb2FkLmdwcigpLCBtX2NvbXBpbGVJbmRleCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDEz
MDg2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1OTEsMTAgKzM1OTEsMTQgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBOZXdB
cnJheUJ1ZmZlcjogeworICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9q
aXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3Iobm9kZS5jb2RlT3JpZ2luKTsKKyAgICAgICAgaWYg
KCFnbG9iYWxPYmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSkKKyAgICAgICAgICAgIGdsb2JhbE9i
amVjdC0+aGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KCktPmFkZChzcGVjdWxhdGlvbldhdGNocG9p
bnQoKSk7CisgICAgICAgIAogICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBHUFJS
ZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgICAgICAKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25OZXdBcnJheUJ1ZmZlciwgcmVzdWx0LmdwcigpLCBub2RlLnN0YXJ0Q29uc3RhbnQoKSwg
bm9kZS5udW1Db25zdGFudHMoKSk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTmV3
QXJyYXlCdWZmZXIsIHJlc3VsdC5ncHIoKSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZSgp
LCBub2RlLnN0YXJ0Q29uc3RhbnQoKSwgbm9kZS5udW1Db25zdGFudHMoKSk7CiAgICAgICAgIAog
ICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbV9jb21waWxlSW5kZXgpOwogICAgICAg
ICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgJKHJldmlzaW9uIDEzMDg2NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzOSw2ICsxMjM5LDExIEBA
IHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0
ZWRJbW1QdHIoc3RydWN0dXJlKSwgVHJ1c3RlZEltbVB0cihwb2ludGVyKSwgVHJ1c3RlZEltbVB0
cihzaXplKSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0
UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FU3RTUyBvcGVyYXRpb24sIEdQUlJlZyByZXN1
bHQsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBzaXplX3QgaW5kZXgsIHNpemVfdCBzaXplKQorICAg
IHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1Q
dHIoc3RydWN0dXJlKSwgVHJ1c3RlZEltbVB0cihpbmRleCksIFRydXN0ZWRJbW1QdHIoc2l6ZSkp
OworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChv
cGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9ERkdPcGVyYXRpb25fRVBTIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgdm9pZCog
cG9pbnRlciwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihwb2ludGVyKSwgVHJ1c3RlZEltbVB0cihzaXpl
KSk7CkBAIC0xNTYyLDYgKzE1NjcsMTEgQEAgcHVibGljOgogICAgICAgICBtX2ppdC5zZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBUcnVzdGVkSW1t
UHRyKHBvaW50ZXIpLCBUcnVzdGVkSW1tUHRyKHNpemUpKTsKICAgICAgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2Fk
LCByZXN1bHRUYWcpOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KEpfREZHT3BlcmF0aW9uX0VTdFNTIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVn
IHJlc3VsdFBheWxvYWQsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBzaXplX3QgaW5kZXgsIHNpemVf
dCBzaXplKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KFRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgVHJ1c3RlZEltbVB0cihpbmRleCksIFRydXN0ZWRJ
bW1QdHIoc2l6ZSkpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
a1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7CisgICAgfQog
ICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRVBTIG9w
ZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIHZvaWQqIHBv
aW50ZXIsIHNpemVfdCBzaXplKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIocG9pbnRlciksIFRydXN0ZWRJbW1QdHIoc2l6ZSkp
Owo=
</data>
<flag name="review"
          id="181064"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="181065"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>