<?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>61490</bug_id>
          
          <creation_ts>2011-05-25 17:30:21 -0700</creation_ts>
          <short_desc>Make RegExp GC allocated</short_desc>
          <delta_ts>2011-05-25 18:13:08 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>410052</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 17:30:21 -0700</bug_when>
    <thetext>Make RegExp GC allocated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410053</commentid>
    <comment_count>1</comment_count>
      <attachid>94886</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 17:34:30 -0700</bug_when>
    <thetext>Created attachment 94886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410062</commentid>
    <comment_count>2</comment_count>
      <attachid>94886</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-25 17:40:46 -0700</bug_when>
    <thetext>Comment on attachment 94886
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410066</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 17:43:20 -0700</bug_when>
    <thetext>Waiting on the windows bot to tell me what def i need to change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410077</commentid>
    <comment_count>4</comment_count>
      <attachid>94886</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-25 17:49:53 -0700</bug_when>
    <thetext>Comment on attachment 94886
Patch

Attachment 94886 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8733756</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410079</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 17:54:56 -0700</bug_when>
    <thetext>Fixed qt build locally, still waiting on windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410088</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 18:01:31 -0700</bug_when>
    <thetext>Committed r87343: &lt;http://trac.webkit.org/changeset/87343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410096</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-05-25 18:13:08 -0700</bug_when>
    <thetext>Committed r87346: &lt;http://trac.webkit.org/changeset/87346&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94886</attachid>
            <date>2011-05-25 17:34:30 -0700</date>
            <delta_ts>2011-05-25 17:49:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61490-20110525173429.patch</filename>
            <type>text/plain</type>
            <size>28927</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODczMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJi
NjcwNjY4MTViMzFjNTI2ZDZlZmEyZTk2ZDM0MGI2ZjU4NmE0NDMuLjA1NmM2N2I2NzUwNjM4NDRk
MGYwNDExZTI5OGFiNGNkMjUzNjEyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDYyIEBACiAyMDExLTA1LTI1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBSZWdF
eHAgR0MgYWxsb2NhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MTQ5MAorCisgICAgICAgIE1ha2UgUmVnRXhwIEdDIGFsbG9jYXRlZC4gIEJhc2lj
YWxseSBtZWNoYW5pY2FsIGNoYW5nZSB0byByZXBsYWNlCisgICAgICAgIG1vc3QgdXNlIG9mIFtQ
YXNzXVJlZlB0cjxSZWdFeHA+IHdpdGggUmVnRXhwKiBvciBXcml0ZUJhcnJpZXI8UmVnRXhwPgor
ICAgICAgICB3aGVyZSBhY3R1YWwgb3duZXJzaGlwIGhhcHBlbnMuCisKKyAgICAgICAgTWFkZSB0
aGUgUmVnRXhwQ2FjaGUgdXNlIFN0cm9uZzw+IHJlZmVyZW5jZXMgY3VycmVudGx5IHRvIGF2b2lk
IGFueQorICAgICAgICBjaGFuZ2VzIGluIGJlaGF2aW91ci4KKworICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLmV4cDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OnZpc2l0QWdncmVnYXRlKToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjphZGRSZWdFeHApOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVj
b2RlR2VuZXJhdG9yOjphZGRSZWdFeHApOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdE5ld1JlZ0V4cCk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRh
KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpjbGVhckJ1aWx0aW5TdHJ1Y3R1cmVzKToK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjphZGRSZWdFeHBUb1RyYWNlKToKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6cmVzZXQpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjpSZWdFeHApOgorICAg
ICAgICAoSlNDOjpSZWdFeHA6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6aW52YWxp
ZGF0ZUNvZGUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwLmg6CisgICAgICAgIChKU0M6OlJl
Z0V4cDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENhY2hlLmNw
cDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ2FjaGU6Omxvb2t1cE9yQ3JlYXRlKToKKyAgICAgICAg
KEpTQzo6UmVnRXhwQ2FjaGU6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDYWNo
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
SlNDOjpjb25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QpOgorICAgICAgICAo
SlNDOjpSZWdFeHBPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvUmVn
RXhwT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6c2V0UmVnRXhwKToKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3REYXRhOjpSZWdFeHBPYmplY3RE
YXRhKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cFByb3RvdHlwZTo6UmVnRXhwUHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6cmVn
RXhwUHJvdG9GdW5jQ29tcGlsZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUu
aDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OnN0cmluZ1Byb3RvRnVuY01hdGNoKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU2Vh
cmNoKToKKworMjAxMS0wNS0yNSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgogCiAgICAgICAgIEdlbmVyYXRlIHJl
Z2V4cCBjb2RlIGxhemlseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAK
aW5kZXggZmIzNzBmYmQ4Y2MwNWJhM2MyZDVlYWYzOGExZDEzMjdkNDU4ZmJlOC4uNmQ2Y2VkMmJl
ZDQ4ZjRkZWI3Njg2MWJhNGEwMjQ5NWM1OTdiMzA5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xMzcsNyArMTM3LDcgQEAgX19aTjNKU0MxMkpTR2xvYmFs
RGF0YTIyY2xlYXJCdWlsdGluU3RydWN0dXJlc0V2CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhNmNy
ZWF0ZUVOU18xNVRocmVhZFN0YWNrVHlwZUUKIF9fWk4zSlNDMTJKU0dsb2JhbERhdGFEMUV2CiBf
X1pOM0pTQzEyUmVnRXhwT2JqZWN0NnNfaW5mb0UKLV9fWk4zSlNDMTJSZWdFeHBPYmplY3RDMUVQ
TlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUVOM1dURjE3Tm9uTnVsbFBhc3NSZWZQ
dHJJTlNfNlJlZ0V4cEVFRQorX19aTjNKU0MxMlJlZ0V4cE9iamVjdEMxRVBOU18xNEpTR2xvYmFs
T2JqZWN0RVBOU185U3RydWN0dXJlRVBOU182UmVnRXhwRQogX19aTjNKU0MxMlNhbXBsaW5nVG9v
bDVzZXR1cEV2CiBfX1pOM0pTQzEyU21hbGxTdHJpbmdzMTdjcmVhdGVFbXB0eVN0cmluZ0VQTlNf
MTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzEyU21hbGxTdHJpbmdzMjdjcmVhdGVTaW5nbGVDaGFy
YWN0ZXJTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRWgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNmEwYzg3OTUxZDM3MDJjODI0ZGRkODE1ZDk0
YTlhMDliZjE2ZjcwNi4uZGE0Y2E0NWMxNmUzMzg0NjYxN2I2MzdjNjI4ZmQ5NWU5ZDUzZWJlOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTE0
NzAsOCArMTQ3MCwxMyBAQCB2b2lkIENvZGVCbG9jazo6dmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiB7CiAgICAgdmlzaXRvci5hcHBlbmQoJm1fZ2xvYmFsT2JqZWN0KTsKICAg
ICB2aXNpdG9yLmFwcGVuZCgmbV9vd25lckV4ZWN1dGFibGUpOwotICAgIGlmIChtX3JhcmVEYXRh
KQorICAgIGlmIChtX3JhcmVEYXRhKSB7CiAgICAgICAgIG1fcmFyZURhdGEtPm1fZXZhbENvZGVD
YWNoZS52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKKyAgICAgICAgc2l6ZV90IHJlZ0V4cENvdW50
ID0gbV9yYXJlRGF0YS0+bV9yZWdleHBzLnNpemUoKTsKKyAgICAgICAgV3JpdGVCYXJyaWVyPFJl
Z0V4cD4qIHJlZ2V4cHMgPSBtX3JhcmVEYXRhLT5tX3JlZ2V4cHMuZGF0YSgpOworICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHJlZ0V4cENvdW50OyBpKyspCisgICAgICAgICAgICB2aXNp
dG9yLmFwcGVuZChyZWdleHBzICsgaSk7CisgICAgfQogICAgIHZpc2l0b3IuYXBwZW5kVmFsdWVz
KG1fY29uc3RhbnRSZWdpc3RlcnMuZGF0YSgpLCBtX2NvbnN0YW50UmVnaXN0ZXJzLnNpemUoKSk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Z1bmN0aW9uRXhwcnMuc2l6ZSgpOyArK2kp
CiAgICAgICAgIHZpc2l0b3IuYXBwZW5kKCZtX2Z1bmN0aW9uRXhwcnNbaV0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IDMzZTM5YzUzNWNjNDUxN2I5
MmJiNWU5NWU0OTNkNGY3ZTA1MWFjYTcuLmNlMThmMDkwNzdhODNkMmYxY2VjNDExYjM3NjYwNGRh
YTU4MzQ4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgK
QEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUg
Ikp1bXBUYWJsZS5oIgogI2luY2x1ZGUgIk5vZGVzLmgiCi0jaW5jbHVkZSAiUmVnRXhwLmgiCisj
aW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiVVN0cmluZy5oIgogI2luY2x1ZGUg
PHd0Zi9GYXN0QWxsb2NCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTQ1
MSw3ICs0NTEsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgRnVuY3Rp
b25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4cHIoaW50IGluZGV4KSB7IHJldHVybiBtX2Z1bmN0aW9u
RXhwcnNbaW5kZXhdLmdldCgpOyB9CiAKLSAgICAgICAgdW5zaWduZWQgYWRkUmVnRXhwKFBhc3NS
ZWZQdHI8UmVnRXhwPiByKSB7IGNyZWF0ZVJhcmVEYXRhSWZOZWNlc3NhcnkoKTsgdW5zaWduZWQg
c2l6ZSA9IG1fcmFyZURhdGEtPm1fcmVnZXhwcy5zaXplKCk7IG1fcmFyZURhdGEtPm1fcmVnZXhw
cy5hcHBlbmQocik7IHJldHVybiBzaXplOyB9CisgICAgICAgIHVuc2lnbmVkIGFkZFJlZ0V4cChS
ZWdFeHAqIHIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNyZWF0ZVJhcmVEYXRhSWZOZWNlc3Nh
cnkoKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3JhcmVEYXRhLT5tX3JlZ2V4cHMu
c2l6ZSgpOworICAgICAgICAgICAgbV9yYXJlRGF0YS0+bV9yZWdleHBzLmFwcGVuZChXcml0ZUJh
cnJpZXI8UmVnRXhwPigqbV9nbG9iYWxEYXRhLCBvd25lckV4ZWN1dGFibGUoKSwgcikpOworICAg
ICAgICAgICAgcmV0dXJuIHNpemU7CisgICAgICAgIH0KICAgICAgICAgUmVnRXhwKiByZWdleHAo
aW50IGluZGV4KSBjb25zdCB7IEFTU0VSVChtX3JhcmVEYXRhKTsgcmV0dXJuIG1fcmFyZURhdGEt
Pm1fcmVnZXhwc1tpbmRleF0uZ2V0KCk7IH0KIAogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KCkgeyByZXR1cm4gbV9nbG9iYWxPYmplY3QuZ2V0KCk7IH0KQEAgLTU1NSw3ICs1
NjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFZlY3RvcjxIYW5kbGVySW5mbz4g
bV9leGNlcHRpb25IYW5kbGVyczsKIAogICAgICAgICAgICAgLy8gUmFyZSBDb25zdGFudHMKLSAg
ICAgICAgICAgIFZlY3RvcjxSZWZQdHI8UmVnRXhwPiA+IG1fcmVnZXhwczsKKyAgICAgICAgICAg
IFZlY3RvcjxXcml0ZUJhcnJpZXI8UmVnRXhwPiA+IG1fcmVnZXhwczsKIAogICAgICAgICAgICAg
Ly8gSnVtcCBUYWJsZXMKICAgICAgICAgICAgIFZlY3RvcjxTaW1wbGVKdW1wVGFibGU+IG1faW1t
ZWRpYXRlU3dpdGNoSnVtcFRhYmxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggMWMxMjZkZTcxYzQy
OTlhOGRhODgxNDM5NGVhOTkxM2JjYTFmMDhiNC4uMDY0ZGYyZGQ1ZDk4YWNjYzc4MmM3Y2NhNThh
MjkxNjgxY2MxOTc2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTk2Niw3ICs5NjYsNyBAQCBSZWdp
c3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6YWRkQ29uc3RhbnRWYWx1ZShKU1ZhbHVlIHYpCiAg
ICAgcmV0dXJuICZtX2NvbnN0YW50UG9vbFJlZ2lzdGVyc1tpbmRleF07CiB9CiAKLXVuc2lnbmVk
IEJ5dGVjb2RlR2VuZXJhdG9yOjphZGRSZWdFeHAoUGFzc1JlZlB0cjxSZWdFeHA+IHIpCit1bnNp
Z25lZCBCeXRlY29kZUdlbmVyYXRvcjo6YWRkUmVnRXhwKFJlZ0V4cCogcikKIHsKICAgICByZXR1
cm4gbV9jb2RlQmxvY2stPmFkZFJlZ0V4cChyKTsKIH0KQEAgLTE1OTIsNyArMTU5Miw3IEBAIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TmV3RnVuY3Rpb25JbnRlcm5hbChSZWdp
c3RlcklEKiBkc3QsIHVuc2lnbmVkCiAgICAgcmV0dXJuIGRzdDsKIH0KIAotUmVnaXN0ZXJJRCog
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXROZXdSZWdFeHAoUmVnaXN0ZXJJRCogZHN0LCBQYXNzUmVm
UHRyPFJlZ0V4cD4gcmVnRXhwKQorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRO
ZXdSZWdFeHAoUmVnaXN0ZXJJRCogZHN0LCBSZWdFeHAqIHJlZ0V4cCkKIHsKICAgICBlbWl0T3Bj
b2RlKG9wX25ld19yZWdleHApOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCmluZGV4IDgxMmIxMDEyZGY2ZGFjNzdkNDUxZDcxZmJhMjI0Y2UyMzlh
ZjBkYjcuLmIxMjMwZTYxYTUwZGVjMmYyOGQxMmZiZDRmYTkwOWYxMTBkMjgwZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmgKQEAgLTI5MSw3ICsyOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdExhenlOZXdGdW5jdGlvbihSZWdpc3RlcklEKiBkc3QsIEZ1bmN0aW9uQm9keU5v
ZGUqIGJvZHkpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0TmV3RnVuY3Rpb25JbnRlcm5hbChS
ZWdpc3RlcklEKiBkc3QsIHVuc2lnbmVkIGluZGV4LCBib29sIHNob3VsZE51bGxDaGVjayk7CiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdGdW5jdGlvbkV4cHJlc3Npb24oUmVnaXN0ZXJJRCog
ZHN0LCBGdW5jRXhwck5vZGUqIGZ1bmMpOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0TmV3UmVn
RXhwKFJlZ2lzdGVySUQqIGRzdCwgUGFzc1JlZlB0cjxSZWdFeHA+IHJlZ0V4cCk7CisgICAgICAg
IFJlZ2lzdGVySUQqIGVtaXROZXdSZWdFeHAoUmVnaXN0ZXJJRCogZHN0LCBSZWdFeHAqKTsKIAog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0TW92ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IHNyYyk7CiAKQEAgLTQ3NSw3ICs0NzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB1
bnNpZ25lZCBhZGRDb25zdGFudChjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lzdGVy
SUQqIGFkZENvbnN0YW50VmFsdWUoSlNWYWx1ZSk7Ci0gICAgICAgIHVuc2lnbmVkIGFkZFJlZ0V4
cChQYXNzUmVmUHRyPFJlZ0V4cD4pOworICAgICAgICB1bnNpZ25lZCBhZGRSZWdFeHAoUmVnRXhw
Kik7CiAKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBtYWtlRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBGdW5jdGlvbkJvZHlOb2RlKiBib2R5KQogICAgICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDk1OTVmZGQwOTQzYzAyZTQyZWQ2NTFmNDFlOTJj
NmZlYzk2MmU0NmEuLjNmYmM0ZGZiZGEyN2RlYjAyNDE0YzBmOWQ5MjU2NDI1MWU5MDUwMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC03MSw2ICs3MSw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQgY2xhc3MgU2NvcGVDaGFpbk5vZGU7CiAgICAg
ICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmU7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1
cmVDaGFpbjsKKyAgICAgICAgZnJpZW5kIGNsYXNzIFJlZ0V4cDsKICAgICAgICAgZW51bSBDcmVh
dGluZ0Vhcmx5Q2VsbFRhZyB7IENyZWF0aW5nRWFybHlDZWxsIH07CiAKICAgICBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAppbmRl
eCA2NmQ2MTUzMDM5NWNmOTYwODExMmM0NjI5YmY0OTk2ODYwOGY0YjRjLi41MGFkNTU4MWY5MGU4
YjIwYjQ3YTQwODk3MTNjNTM2NDM3YjEwYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJO
b2Rlcy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlJlZ0V4cENhY2hlLmgiCisj
aW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRpb24u
aCIKICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgogI2lmIEVOQUJMRShSRUdFWFBfVFJB
Q0lORykKQEAgLTIxOSw2ICsyMjAsNyBAQCBKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9i
YWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZSwgVGhyZWFkU3RhY2tUeXBlIHRocmVhZAogICAgIHBy
b2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLnNldCgqdGhpcywgUHJvZ3JhbUV4ZWN1dGFibGU6OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkpKTsKICAgICBmdW5jdGlvbkV4ZWN1dGFibGVT
dHJ1Y3R1cmUuc2V0KCp0aGlzLCBGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgq
dGhpcywganNOdWxsKCkpKTsKICAgICBkdW1teU1hcmthYmxlQ2VsbFN0cnVjdHVyZS5zZXQoKnRo
aXMsIEpTQ2VsbDo6Y3JlYXRlRHVtbXlTdHJ1Y3R1cmUoKnRoaXMpKTsKKyAgICByZWdFeHBTdHJ1
Y3R1cmUuc2V0KCp0aGlzLCBSZWdFeHA6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywganNOdWxsKCkp
KTsKICAgICBzdHJ1Y3R1cmVDaGFpblN0cnVjdHVyZS5zZXQoKnRoaXMsIFN0cnVjdHVyZUNoYWlu
OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIGpzTnVsbCgpKSk7CiAKICNpZiBFTkFCTEUoSlNDX1pP
TUJJRVMpCkBAIC0yNzksOCArMjgxLDkgQEAgdm9pZCBKU0dsb2JhbERhdGE6OmNsZWFyQnVpbHRp
blN0cnVjdHVyZXMoKQogICAgIHByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLmNsZWFyKCk7CiAg
ICAgZnVuY3Rpb25FeGVjdXRhYmxlU3RydWN0dXJlLmNsZWFyKCk7CiAgICAgZHVtbXlNYXJrYWJs
ZUNlbGxTdHJ1Y3R1cmUuY2xlYXIoKTsKKyAgICByZWdFeHBTdHJ1Y3R1cmUuY2xlYXIoKTsKICAg
ICBzdHJ1Y3R1cmVDaGFpblN0cnVjdHVyZS5jbGVhcigpOwotICAgIAorCiAjaWYgRU5BQkxFKEpT
Q19aT01CSUVTKQogICAgIHpvbWJpZVN0cnVjdHVyZS5jbGVhcigpOwogI2VuZGlmCkBAIC00NDYs
NyArNDQ5LDcgQEAgdm9pZCBKU0dsb2JhbERhdGE6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCkK
IH0KIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKLXZvaWQgSlNHbG9iYWxEYXRhOjphZGRS
ZWdFeHBUb1RyYWNlKFBhc3NSZWZQdHI8UmVnRXhwPiByZWdFeHApCit2b2lkIEpTR2xvYmFsRGF0
YTo6YWRkUmVnRXhwVG9UcmFjZShSZWdFeHAqIHJlZ0V4cCkKIHsKICAgICBtX3J0VHJhY2VMaXN0
LT5hZGQocmVnRXhwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsRGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxEYXRhLmgKaW5kZXggN2JmNzgwNmZkM2UzZTBhYTdiMmJmYjM0YTlhYmVmNjU2NGYwN2I4MC4u
YWY1MzgzNjJkYTMwYTRiYmIyOWY0Mjc4YjMxZWE1ODFkNmQyNGFmMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gcHJvZ3JhbUV4ZWN1dGFi
bGVTdHJ1Y3R1cmU7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGZ1bmN0aW9uRXhlY3V0YWJs
ZVN0cnVjdHVyZTsKICAgICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gZHVtbXlNYXJrYWJsZUNlbGxT
dHJ1Y3R1cmU7CisgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHJlZ0V4cFN0cnVjdHVyZTsKICAg
ICAgICAgU3Ryb25nPFN0cnVjdHVyZT4gc3RydWN0dXJlQ2hhaW5TdHJ1Y3R1cmU7CiAKICNpZiBF
TkFCTEUoSlNDX1pPTUJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKaW5kZXggM2U3ZmNmZWEyOWE0MjJhNzQ5NjFjNjc2Y2Q5OGQwMTgw
NTk4MjMwMy4uNGJiMjBhYTczNWY4MjFkMGM2MjUyZjkwNDFkMWFjOTYyMzFiYmM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAt
MjIyLDcgKzIyMiw5IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIG1fZGF0ZVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBu
ZXcgKGV4ZWMpIERhdGVQcm90b3R5cGUoZXhlYywgdGhpcywgRGF0ZVByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSk7
CiAgICAgbV9kYXRlU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIERhdGVJ
bnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9kYXRlUHJvdG90
eXBlLmdldCgpKSk7CiAKLSAgICBtX3JlZ0V4cFByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFJlZ0V4cFByb3RvdHlwZShleGVjLCB0aGlzLCBSZWdFeHBQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJv
dG90eXBlLmdldCgpKSkpOworICAgIFJlZ0V4cCogZW1wdHlSZWdleCA9IFJlZ0V4cDo6Y3JlYXRl
KCZleGVjLT5nbG9iYWxEYXRhKCksICIiLCBOb0ZsYWdzKTsKKyAgICAKKyAgICBtX3JlZ0V4cFBy
b3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFJlZ0V4cFBy
b3RvdHlwZShleGVjLCB0aGlzLCBSZWdFeHBQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSwgZW1wdHlSZWdleCkpOwog
ICAgIG1fcmVnRXhwU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIFJlZ0V4
cE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9yZWdFeHBQcm90
b3R5cGUuZ2V0KCkpKTsKIAogICAgIG1fbWV0aG9kQ2FsbER1bW15LnNldChleGVjLT5nbG9iYWxE
YXRhKCksIHRoaXMsIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IGZkMzFjZGZlZTJlOThlYTE1YjNkYmQyZTcz
YjFiNmI5ZDY0MmVlYTAuLmNiNjY3YjI1ZTlmNDI5MzIwMTQ5NTBiOWU0YjY0NTdmNzI2MmFjNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtMzQsNiArMzQs
OCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cDo6c19pbmZv
ID0geyAiUmVnRXhwIiwgMCwgMCwgMCB9OworCiBSZWdFeHBGbGFncyByZWdFeHBGbGFncyhjb25z
dCBVU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgUmVnRXhwRmxhZ3MgZmxhZ3MgPSBOb0ZsYWdzOwpA
QCAtNzMsOCArNzUsOSBAQCBzdHJ1Y3QgUmVnRXhwUmVwcmVzZW50YXRpb24gewogICAgIE93blB0
cjxZYXJyOjpCeXRlY29kZVBhdHRlcm4+IG1fcmVnRXhwQnl0ZWNvZGU7CiB9OwogCi1pbmxpbmUg
UmVnRXhwOjpSZWdFeHAoSlNHbG9iYWxEYXRhKiwgY29uc3QgVVN0cmluZyYgcGF0dGVyblN0cmlu
ZywgUmVnRXhwRmxhZ3MgZmxhZ3MpCi0gICAgOiBtX3N0YXRlKE5vdENvbXBpbGVkKQoraW5saW5l
IFJlZ0V4cDo6UmVnRXhwKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYg
cGF0dGVyblN0cmluZywgUmVnRXhwRmxhZ3MgZmxhZ3MpCisgICAgOiBKU0NlbGwoKmdsb2JhbERh
dGEsIGdsb2JhbERhdGEtPnJlZ0V4cFN0cnVjdHVyZS5nZXQoKSkKKyAgICAsIG1fc3RhdGUoTm90
Q29tcGlsZWQpCiAgICAgLCBtX3BhdHRlcm5TdHJpbmcocGF0dGVyblN0cmluZykKICAgICAsIG1f
ZmxhZ3MoZmxhZ3MpCiAgICAgLCBtX2NvbnN0cnVjdGlvbkVycm9yKDApCkBAIC05NSwxMyArOTgs
MTMgQEAgUmVnRXhwOjp+UmVnRXhwKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxSZWdFeHA+IFJlZ0V4
cDo6Y3JlYXRlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgcGF0dGVy
blN0cmluZywgUmVnRXhwRmxhZ3MgZmxhZ3MpCitSZWdFeHAqIFJlZ0V4cDo6Y3JlYXRlKEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgcGF0dGVyblN0cmluZywgUmVnRXhw
RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgUmVmUHRyPFJlZ0V4cD4gcmVzID0gYWRvcHRSZWYobmV3IFJl
Z0V4cChnbG9iYWxEYXRhLCBwYXR0ZXJuU3RyaW5nLCBmbGFncykpOworICAgIFJlZ0V4cCogcmVz
ID0gbmV3IChnbG9iYWxEYXRhKSBSZWdFeHAoZ2xvYmFsRGF0YSwgcGF0dGVyblN0cmluZywgZmxh
Z3MpOwogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKICAgICBnbG9iYWxEYXRhLT5hZGRSZWdF
eHBUb1RyYWNlKHJlcyk7CiAjZW5kaWYKLSAgICByZXR1cm4gcmVzLnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gcmVzOwogfQogCiB2b2lkIFJlZ0V4cDo6Y29tcGlsZShKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEpCkBAIC0xOTQsNiArMTk3LDEwIEBAIGludCBSZWdFeHA6Om1hdGNoKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBWCiAgICAg
cmV0dXJuIC0xOwogfQogCit2b2lkIFJlZ0V4cDo6aW52YWxpZGF0ZUNvZGUoKQoreworICAgIG1f
cmVwcmVzZW50YXRpb24uY2xlYXIoKTsKK30KIAogI2lmIEVOQUJMRShZQVJSX0pJVF9ERUJVRykK
IHZvaWQgUmVnRXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgVVN0cmluZyYg
cywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqIG9mZnNldFZlY3RvciwgaW50IGppdFJlc3VsdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKaW5kZXggOTk3YTQyZmZkOTNjYjRjNGQw
NGVhMjkwMDM1YmFlNDBhZjdkMWMwNS4uMGIzYTIzNWVmYjEzODg3NzllODVkMGQ2Nzk4Yzc0NmRk
MjRkMGQwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKQEAgLTI0LDYg
KzI0LDcgQEAKIAogI2luY2x1ZGUgIlVTdHJpbmcuaCIKICNpbmNsdWRlICJFeGVjdXRhYmxlQWxs
b2NhdG9yLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiUmVnRXhwS2V5Lmgi
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpA
QCAtMzUsOSArMzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIFJlZ0V4cEZsYWdzIHJlZ0V4
cEZsYWdzKGNvbnN0IFVTdHJpbmcmKTsKIAotICAgIGNsYXNzIFJlZ0V4cCA6IHB1YmxpYyBSZWZD
b3VudGVkPFJlZ0V4cD4geworICAgIGNsYXNzIFJlZ0V4cCA6IHB1YmxpYyBKU0NlbGwgewogICAg
IHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVnRXhwPiBjcmVhdGUoSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBwYXR0ZXJuLCBSZWdFeHBGbGFncyk7
CisgICAgICAgIHN0YXRpYyBSZWdFeHAqIGNyZWF0ZShKU0dsb2JhbERhdGEqLCBjb25zdCBVU3Ry
aW5nJiBwYXR0ZXJuLCBSZWdFeHBGbGFncyk7CiAgICAgICAgIH5SZWdFeHAoKTsKIAogICAgICAg
ICBib29sIGdsb2JhbCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBGbGFnR2xvYmFsOyB9CkBA
IC01MiwxMCArNTMsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGludCBtYXRjaChKU0ds
b2JhbERhdGEmLCBjb25zdCBVU3RyaW5nJiwgaW50IHN0YXJ0T2Zmc2V0LCBWZWN0b3I8aW50LCAz
Mj4qIG92ZWN0b3IgPSAwKTsKICAgICAgICAgdW5zaWduZWQgbnVtU3VicGF0dGVybnMoKSBjb25z
dCB7IHJldHVybiBtX251bVN1YnBhdHRlcm5zOyB9CiAgICAgICAgIAorICAgICAgICB2b2lkIGlu
dmFsaWRhdGVDb2RlKCk7CisgICAgICAgIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKICAg
ICAgICAgdm9pZCBwcmludFRyYWNlRGF0YSgpOwogI2VuZGlmCiAKKyAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1
ZSBwcm90b3R5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKExlYWZUeXBlLCAwKSwgMCwgJnNf
aW5mbyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRB
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CisgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAg
IFJlZ0V4cChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIHBhdHRlcm4s
IFJlZ0V4cEZsYWdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q2FjaGUuY3BwCmluZGV4IGM5NmIwNDcyMGU5ZDI1OThhY2E3M2RiNGE5MjA2M2I2MGNjZDdjNTgu
LjY3ZTAxM2ZkZWExYWEzMGI1ZTZkYTRiNWE3YmRkMDFiOWZkYTExOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5jcHAKQEAgLTI4LDMxICsyOCwzMSBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiUmVnRXhwQ2FjaGUuaCIKKyNpbmNs
dWRlICJSZWdFeHBPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKLVBhc3NSZWZQdHI8UmVn
RXhwPiBSZWdFeHBDYWNoZTo6bG9va3VwT3JDcmVhdGUoY29uc3QgVVN0cmluZyYgcGF0dGVyblN0
cmluZywgUmVnRXhwRmxhZ3MgZmxhZ3MpCitSZWdFeHAqIFJlZ0V4cENhY2hlOjpsb29rdXBPckNy
ZWF0ZShjb25zdCBVU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBSZWdFeHBGbGFncyBmbGFncykKIHsK
ICAgICBpZiAocGF0dGVyblN0cmluZy5sZW5ndGgoKSA8IG1heENhY2hlYWJsZVBhdHRlcm5MZW5n
dGgpIHsKLSAgICAgICAgcGFpcjxSZWdFeHBDYWNoZU1hcDo6aXRlcmF0b3IsIGJvb2w+IHJlc3Vs
dCA9IG1fY2FjaGVNYXAuYWRkKFJlZ0V4cEtleShmbGFncywgcGF0dGVyblN0cmluZyksIDApOwor
ICAgICAgICBwYWlyPFJlZ0V4cENhY2hlTWFwOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0gbV9j
YWNoZU1hcC5hZGQoUmVnRXhwS2V5KGZsYWdzLCBwYXR0ZXJuU3RyaW5nKSwgU3Ryb25nPFJlZ0V4
cD4oKSk7CiAgICAgICAgIGlmICghcmVzdWx0LnNlY29uZCkKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQuZmlyc3QtPnNlY29uZDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QtPnNl
Y29uZC5nZXQoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShwYXR0
ZXJuU3RyaW5nLCBmbGFncywgcmVzdWx0LmZpcnN0KTsKICAgICB9CiAgICAgcmV0dXJuIGNyZWF0
ZShwYXR0ZXJuU3RyaW5nLCBmbGFncywgbV9jYWNoZU1hcC5lbmQoKSk7CiB9CiAKLVBhc3NSZWZQ
dHI8UmVnRXhwPiBSZWdFeHBDYWNoZTo6Y3JlYXRlKGNvbnN0IFVTdHJpbmcmIHBhdHRlcm5TdHJp
bmcsIFJlZ0V4cEZsYWdzIGZsYWdzLCBSZWdFeHBDYWNoZU1hcDo6aXRlcmF0b3IgaXRlcmF0b3Ip
IAorUmVnRXhwKiBSZWdFeHBDYWNoZTo6Y3JlYXRlKGNvbnN0IFVTdHJpbmcmIHBhdHRlcm5TdHJp
bmcsIFJlZ0V4cEZsYWdzIGZsYWdzLCBSZWdFeHBDYWNoZU1hcDo6aXRlcmF0b3IgaXRlcmF0b3Ip
IAogewotICAgIFJlZlB0cjxSZWdFeHA+IHJlZ0V4cCA9IFJlZ0V4cDo6Y3JlYXRlKG1fZ2xvYmFs
RGF0YSwgcGF0dGVyblN0cmluZywgZmxhZ3MpOwotCisgICAgUmVnRXhwKiByZWdFeHAgPSBSZWdF
eHA6OmNyZWF0ZShtX2dsb2JhbERhdGEsIHBhdHRlcm5TdHJpbmcsIGZsYWdzKTsKICAgICBpZiAo
cGF0dGVyblN0cmluZy5sZW5ndGgoKSA+PSBtYXhDYWNoZWFibGVQYXR0ZXJuTGVuZ3RoKQogICAg
ICAgICByZXR1cm4gcmVnRXhwOwogCiAgICAgUmVnRXhwS2V5IGtleSA9IFJlZ0V4cEtleShmbGFn
cywgcGF0dGVyblN0cmluZyk7CiAgICAgaXRlcmF0b3ItPmZpcnN0ID0ga2V5OwotICAgIGl0ZXJh
dG9yLT5zZWNvbmQgPSByZWdFeHA7CisgICAgaXRlcmF0b3ItPnNlY29uZC5zZXQoKm1fZ2xvYmFs
RGF0YSwgcmVnRXhwKTsKIAogICAgICsrbV9uZXh0S2V5VG9FdmljdDsKICAgICBpZiAobV9uZXh0
S2V5VG9FdmljdCA9PSBtYXhDYWNoZWFibGVFbnRyaWVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ2FjaGUuaAppbmRleCBiNGE2YWU1MjJjMDVmYTg4OGM2ZGY4YmI0
M2Q2N2QyZjkyMTcwODhiLi4zZWY2YjcwOWY5NDU3MmVjMDA3NTljODg0ZWI1NDUwZjNlYTQwMThi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDYWNoZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmgKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlJlZ0V4cC5oIgogI2luY2x1ZGUgIlJlZ0V4cEtleS5o
IgorI2luY2x1ZGUgIlN0cm9uZy5oIgogI2luY2x1ZGUgIlVTdHJpbmcuaCIKICNpbmNsdWRlIDx3
dGYvRml4ZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zOCwxMSArMzks
MTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIFJlZ0V4cENhY2hlIHsKIAotdHlwZWRlZiBI
YXNoTWFwPFJlZ0V4cEtleSwgUmVmUHRyPFJlZ0V4cD4gPiBSZWdFeHBDYWNoZU1hcDsKK3R5cGVk
ZWYgSGFzaE1hcDxSZWdFeHBLZXksIFN0cm9uZzxSZWdFeHA+ID4gUmVnRXhwQ2FjaGVNYXA7CiAK
IHB1YmxpYzoKLSAgICBQYXNzUmVmUHRyPFJlZ0V4cD4gbG9va3VwT3JDcmVhdGUoY29uc3QgVVN0
cmluZyYgcGF0dGVyblN0cmluZywgUmVnRXhwRmxhZ3MpOwotICAgIFBhc3NSZWZQdHI8UmVnRXhw
PiBjcmVhdGUoY29uc3QgVVN0cmluZyYgcGF0dGVyblN0cmluZywgUmVnRXhwRmxhZ3MsIFJlZ0V4
cENhY2hlTWFwOjppdGVyYXRvcik7CisgICAgUmVnRXhwKiBsb29rdXBPckNyZWF0ZShjb25zdCBV
U3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBSZWdFeHBGbGFncyk7CisgICAgUmVnRXhwKiBjcmVhdGUo
Y29uc3QgVVN0cmluZyYgcGF0dGVyblN0cmluZywgUmVnRXhwRmxhZ3MsIFJlZ0V4cENhY2hlTWFw
OjppdGVyYXRvcik7CiAgICAgUmVnRXhwQ2FjaGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmNwcAppbmRleCAzZGEwMTk4MWNiZTg3M2VlOTc4ZTQyNmZiOTAyMDQyYWJm
NzY0ODNjLi5iYzBiNTczNzY4OGRiYjg2YzY4ZTljMTRkNDQwMmIwNzc1M2YwMTQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
CkBAIC0zMTcsMTAgKzMxNywxMCBAQCBKU09iamVjdCogY29uc3RydWN0UmVnRXhwKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQQogICAgICAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkludmFs
aWQgZmxhZ3Mgc3VwcGxpZWQgdG8gUmVnRXhwIGNvbnN0cnVjdG9yLiIpKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8UmVnRXhwPiByZWdFeHAgPSBleGVjLT5nbG9iYWxEYXRhKCkucmVnRXhwQ2FjaGUo
KS0+bG9va3VwT3JDcmVhdGUocGF0dGVybiwgZmxhZ3MpOworICAgIFJlZ0V4cCogcmVnRXhwID0g
ZXhlYy0+Z2xvYmFsRGF0YSgpLnJlZ0V4cENhY2hlKCktPmxvb2t1cE9yQ3JlYXRlKHBhdHRlcm4s
IGZsYWdzKTsKICAgICBpZiAoIXJlZ0V4cC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCByZWdFeHAtPmVycm9yTWVzc2Fn
ZSgpKSk7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgUmVnRXhwT2JqZWN0KGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVnRXhwLnJl
bGVhc2UoKSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgUmVnRXhwT2JqZWN0KGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSwgZ2xvYmFsT2JqZWN0LT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVnRXhw
KTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0
aFJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IGJlMTJmZWExOGQ5ODVlNDEzNzM5
OGI5NmVlZTE0MmJmYmE3NTkwZTAuLjgzZTdjNWE3NTczYTRmZjlkMTBjNjRhYTY1M2NjOGI4ODQy
NGNiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmNwcApAQCAtNjEsOSArNjEsOSBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwT2JqZWN0OjpzX2lu
Zm8gPSB7ICJSZWdFeHAiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzXwogQGVuZAogKi8K
IAotUmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5vbk51bGxQYXNzUmVmUHRyPFJlZ0V4cD4gcmVnRXhw
KQorUmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cCogcmVnRXhwKQogICAgIDogSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQotICAgICwgZChhZG9wdFB0
cihuZXcgUmVnRXhwT2JqZWN0RGF0YShyZWdFeHApKSkKKyAgICAsIGQoYWRvcHRQdHIobmV3IFJl
Z0V4cE9iamVjdERhdGEoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4cCkp
KQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CkBAIC03OCw2ICs3OCw4IEBA
IHZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQog
ICAgIENPTVBJTEVfQVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7CiAgICAgQVNTRVJU
KHN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7CiAgICAg
QmFzZTo6dmlzaXRDaGlsZHJlbih2aXNpdG9yKTsKKyAgICBpZiAoZC0+cmVnRXhwKQorICAgICAg
ICB2aXNpdG9yLmFwcGVuZCgmZC0+cmVnRXhwKTsKICAgICBpZiAoVU5MSUtFTFkoIWQtPmxhc3RJ
bmRleC5nZXQoKS5pc0ludDMyKCkpKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmZC0+bGFzdElu
ZGV4KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgK
aW5kZXggYTA4MDNlYmRhZDFmMjY2Y2FiOTBkZDEzYTk2ZWFjZWQxNjc1NjJiOS4uNmZjNmNiOWE3
MmYyOTg1MjdjM2E2NTRlZjU1YjgyNDhlN2ViMDc0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTI1LDE1ICsyNSwxNSBAQAogI2luY2x1ZGUg
IlJlZ0V4cC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLQorICAgIAogICAgIGNsYXNzIFJlZ0V4cE9i
amVjdCA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKIAotICAgICAgICBS
ZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBOb25OdWxsUGFzc1JlZlB0
cjxSZWdFeHA+KTsKKyAgICAgICAgUmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgUmVnRXhwKik7CiAgICAgICAgIHZpcnR1YWwgflJlZ0V4cE9iamVjdCgpOwogCi0gICAg
ICAgIHZvaWQgc2V0UmVnRXhwKFBhc3NSZWZQdHI8UmVnRXhwPiByKSB7IGQtPnJlZ0V4cCA9IHI7
IH0KKyAgICAgICAgdm9pZCBzZXRSZWdFeHAoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBSZWdF
eHAqIHIpIHsgZC0+cmVnRXhwLnNldChnbG9iYWxEYXRhLCB0aGlzLCByKTsgfQogICAgICAgICBS
ZWdFeHAqIHJlZ0V4cCgpIGNvbnN0IHsgcmV0dXJuIGQtPnJlZ0V4cC5nZXQoKTsgfQogCiAgICAg
ICAgIHZvaWQgc2V0TGFzdEluZGV4KHNpemVfdCBsYXN0SW5kZXgpCkBAIC03NCwxMyArNzQsMTMg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0cnVjdCBSZWdFeHBPYmplY3REYXRhIHsKICAg
ICAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgICAgICBwdWJsaWM6Ci0gICAg
ICAgICAgICBSZWdFeHBPYmplY3REYXRhKE5vbk51bGxQYXNzUmVmUHRyPFJlZ0V4cD4gcmVnRXhw
KQotICAgICAgICAgICAgICAgIDogcmVnRXhwKHJlZ0V4cCkKKyAgICAgICAgICAgIFJlZ0V4cE9i
amVjdERhdGEoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBSZWdFeHBPYmplY3QqIG93bmVyLCBS
ZWdFeHAqIHJlZ0V4cCkKKyAgICAgICAgICAgICAgICA6IHJlZ0V4cChnbG9iYWxEYXRhLCBvd25l
ciwgcmVnRXhwKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGxhc3RJbmRleC5zZXRX
aXRob3V0V3JpdGVCYXJyaWVyKGpzTnVtYmVyKDApKTsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgUmVmUHRyPFJlZ0V4cD4gcmVnRXhwOworICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFJl
Z0V4cD4gcmVnRXhwOwogICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IGxhc3RJbmRl
eDsKICAgICAgICAgfTsKICNpZiBDT01QSUxFUihNU1ZDKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggMjBiYjZlMDY2YTAwNGQ1
OTllZWJiYzUxYzkyZDhkNjQyMzM2MzQwZi4uYTMxZjFjZjFmZDM5ODQxZjQxOGU5YzVkYTIyMzA0
MmJmMmY2YTdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBQcm90b3R5cGUuY3BwCkBAIC02Miw4ICs2Miw4IEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBQ
cm90b3R5cGU6OnNfaW5mbyA9IHsgIlJlZ0V4cCIsICZSZWdFeHBPYmplY3Q6OnNfaW5mbywgMCwK
IAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChSZWdFeHBQcm90b3R5cGUpOwogCi1SZWdFeHBQ
cm90b3R5cGU6OlJlZ0V4cFByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogUmVnRXhwT2JqZWN0
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBSZWdFeHA6OmNyZWF0ZSgmZXhlYy0+Z2xvYmFsRGF0
YSgpLCAiIiwgTm9GbGFncykpCitSZWdFeHBQcm90b3R5cGU6OlJlZ0V4cFByb3RvdHlwZShFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgUmVnRXhwKiByZWdFeHApCisgICAgOiBSZWdFeHBPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUsIHJlZ0V4cCkKIHsKIH0KIApAQCAtMTAxLDcgKzEwMSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJlJlZ0V4cE9iamVjdDo6c19pbmZvKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBSZWZQdHI8UmVnRXhwPiBy
ZWdFeHA7CisgICAgUmVnRXhwKiByZWdFeHA7CiAgICAgSlNWYWx1ZSBhcmcwID0gZXhlYy0+YXJn
dW1lbnQoMCk7CiAgICAgSlNWYWx1ZSBhcmcxID0gZXhlYy0+YXJndW1lbnQoMSk7CiAgICAgCkBA
IC0xMjgsNyArMTI4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90
b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXJlZ0V4cC0+aXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4
ZWMsIHJlZ0V4cC0+ZXJyb3JNZXNzYWdlKCkpKTsKIAotICAgIGFzUmVnRXhwT2JqZWN0KHRoaXNW
YWx1ZSktPnNldFJlZ0V4cChyZWdFeHAucmVsZWFzZSgpKTsKKyAgICBhc1JlZ0V4cE9iamVjdCh0
aGlzVmFsdWUpLT5zZXRSZWdFeHAoZXhlYy0+Z2xvYmFsRGF0YSgpLCByZWdFeHApOwogICAgIGFz
UmVnRXhwT2JqZWN0KHRoaXNWYWx1ZSktPnNldExhc3RJbmRleCgwKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAppbmRleCBlYjVmOGRmNDJlOGQzNDA5MmI4Y2Vl
MjQzMjQ2Zjk4NTY1Y2E4MmRiLi44M2U3NWJlMDI1MjkxMmQ0ZDM0OWNmZmFiNjE0OTJjZDhhYmY1
ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90
b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuaApAQCAtMjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFJlZ0V4
cFByb3RvdHlwZSA6IHB1YmxpYyBSZWdFeHBPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAg
UmVnRXhwUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7
CisgICAgICAgIFJlZ0V4cFByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIFJlZ0V4cCopOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19p
bmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcAppbmRleCBkMjEyOWUyNWYxZGM2YTEwNmM1ZDUzZjc1NTM4NmRhMTUxMzM0OTI0Li5l
NzBiMzg4MzZjYTMxMzY4ZmVlNDg2Zjc5ZjFmZDUyZmM4Yjk1MjYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTYwNiw3ICs2
MDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY01hdGNo
KEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsK
IAotICAgIFJlZlB0cjxSZWdFeHA+IHJlZzsKKyAgICBSZWdFeHAqIHJlZzsKICAgICBpZiAoYTAu
aW5oZXJpdHMoJlJlZ0V4cE9iamVjdDo6c19pbmZvKSkKICAgICAgICAgcmVnID0gYXNSZWdFeHBP
YmplY3QoYTApLT5yZWdFeHAoKTsKICAgICBlbHNlIHsKQEAgLTYyMCw3ICs2MjAsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY01hdGNoKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBSZWdFeHBDb25zdHJ1Y3RvciogcmVnRXhwQ29uc3RydWN0b3IgPSBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cENvbnN0cnVjdG9yKCk7CiAgICAgaW50IHBvczsK
ICAgICBpbnQgbWF0Y2hMZW5ndGggPSAwOwotICAgIHJlZ0V4cENvbnN0cnVjdG9yLT5wZXJmb3Jt
TWF0Y2goKmdsb2JhbERhdGEsIHJlZy5nZXQoKSwgcywgMCwgcG9zLCBtYXRjaExlbmd0aCk7Cisg
ICAgcmVnRXhwQ29uc3RydWN0b3ItPnBlcmZvcm1NYXRjaCgqZ2xvYmFsRGF0YSwgcmVnLCBzLCAw
LCBwb3MsIG1hdGNoTGVuZ3RoKTsKICAgICBpZiAoIShyZWctPmdsb2JhbCgpKSkgewogICAgICAg
ICAvLyBjYXNlIHdpdGhvdXQgJ2cnIGZsYWcgaXMgaGFuZGxlZCBsaWtlIFJlZ0V4cC5wcm90b3R5
cGUuZXhlYwogICAgICAgICBpZiAocG9zIDwgMCkKQEAgLTYzMyw3ICs2MzMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY01hdGNoKEV4ZWNTdGF0ZSogZXhl
YykKICAgICB3aGlsZSAocG9zID49IDApIHsKICAgICAgICAgbGlzdC5hcHBlbmQoanNTdWJzdHJp
bmcoZXhlYywgcywgcG9zLCBtYXRjaExlbmd0aCkpOwogICAgICAgICBwb3MgKz0gbWF0Y2hMZW5n
dGggPT0gMCA/IDEgOiBtYXRjaExlbmd0aDsKLSAgICAgICAgcmVnRXhwQ29uc3RydWN0b3ItPnBl
cmZvcm1NYXRjaCgqZ2xvYmFsRGF0YSwgcmVnLmdldCgpLCBzLCBwb3MsIHBvcywgbWF0Y2hMZW5n
dGgpOworICAgICAgICByZWdFeHBDb25zdHJ1Y3Rvci0+cGVyZm9ybU1hdGNoKCpnbG9iYWxEYXRh
LCByZWcsIHMsIHBvcywgcG9zLCBtYXRjaExlbmd0aCk7CiAgICAgfQogICAgIGlmIChsaXN0Lmlz
RW1wdHkoKSkgewogICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcyBhdCBhbGwsIGl0
J3MgaW1wb3J0YW50IHRvIHJldHVybgpAQCAtNjU1LDcgKzY1NSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU2VhcmNoKEV4ZWNTdGF0ZSogZXhlYykKIAog
ICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsKIAotICAgIFJlZlB0cjxSZWdFeHA+
IHJlZzsKKyAgICBSZWdFeHAqIHJlZzsKICAgICBpZiAoYTAuaW5oZXJpdHMoJlJlZ0V4cE9iamVj
dDo6c19pbmZvKSkKICAgICAgICAgcmVnID0gYXNSZWdFeHBPYmplY3QoYTApLT5yZWdFeHAoKTsK
ICAgICBlbHNlIHsgCkBAIC02NjksNyArNjY5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTZWFyY2goRXhlY1N0YXRlKiBleGVjKQogICAgIFJlZ0V4cENv
bnN0cnVjdG9yKiByZWdFeHBDb25zdHJ1Y3RvciA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+cmVnRXhwQ29uc3RydWN0b3IoKTsKICAgICBpbnQgcG9zOwogICAgIGludCBtYXRjaExlbmd0
aCA9IDA7Ci0gICAgcmVnRXhwQ29uc3RydWN0b3ItPnBlcmZvcm1NYXRjaCgqZ2xvYmFsRGF0YSwg
cmVnLmdldCgpLCBzLCAwLCBwb3MsIG1hdGNoTGVuZ3RoKTsKKyAgICByZWdFeHBDb25zdHJ1Y3Rv
ci0+cGVyZm9ybU1hdGNoKCpnbG9iYWxEYXRhLCByZWcsIHMsIDAsIHBvcywgbWF0Y2hMZW5ndGgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocG9zKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjMzE0ODU0YjdhYTQ2OGFkMjhlMGNmY2Y1MGU5ZmUxZDBjZWE3ZTE4Li4wYjFkYTU1
MzM2MWMzYjY1MzU2ZmI5ZWZiNDVlNjYzYWIxNzViNTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTEtMDUtMjUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFJlZ0V4cCBH
QyBhbGxvY2F0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxNDkwCisKKyAgICAgICAgUmVnRXhwIGlzIEdDJ2Qgc28gd2UgZG9uJ3QgbmVlZCB0aGUg
UmVmUHRyIHNoZW5hbmlnYW5zIGFueW1vcmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6
ZXI6OnJlYWRUZXJtaW5hbCk6CisKIDIwMTEtMDUtMjUgIEFuZHJldyBTY2hlcmt1cyAgPHNjaGVy
a3VzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAppbmRleCBiYmUwY2E0NDI0OWU2MmE3OTMyMDRmYzUwNWM3NTc3YzE0YjYxZmMxLi43NGJj
YmJhOWU4ZDRhYThmOGExOGJkNzU0MzcxOTU3ZTM0ZThkMWEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTExNjYs
NyArMTE2Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsK
ICAgICAgICAgICAgIFJlZ0V4cEZsYWdzIHJlRmxhZ3MgPSByZWdFeHBGbGFncyhmbGFncy0+dXN0
cmluZygpKTsKICAgICAgICAgICAgIEFTU0VSVChyZUZsYWdzICE9IEludmFsaWRGbGFncyk7Ci0g
ICAgICAgICAgICBSZWZQdHI8UmVnRXhwPiByZWdFeHAgPSBSZWdFeHA6OmNyZWF0ZSgmbV9leGVj
LT5nbG9iYWxEYXRhKCksIHBhdHRlcm4tPnVzdHJpbmcoKSwgcmVGbGFncyk7CisgICAgICAgICAg
ICBSZWdFeHAqIHJlZ0V4cCA9IFJlZ0V4cDo6Y3JlYXRlKCZtX2V4ZWMtPmdsb2JhbERhdGEoKSwg
cGF0dGVybi0+dXN0cmluZygpLCByZUZsYWdzKTsKICAgICAgICAgICAgIHJldHVybiBuZXcgKG1f
ZXhlYykgUmVnRXhwT2JqZWN0KG1fZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBtX2dsb2Jh
bE9iamVjdC0+cmVnRXhwU3RydWN0dXJlKCksIHJlZ0V4cCk7IAogICAgICAgICB9CiAgICAgICAg
IGNhc2UgT2JqZWN0UmVmZXJlbmNlVGFnOiB7Cg==
</data>
<flag name="review"
          id="88280"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="88286"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>