<?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>92655</bug_id>
          
          <creation_ts>2012-07-30 10:06:20 -0700</creation_ts>
          <short_desc>REGRESSION(r123966): This patch is causing assertion failures. (Requested by mrobinson on #webkit).</short_desc>
          <delta_ts>2012-07-30 13:30:38 -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>DUPLICATE</resolution>
          <dup_id>92656</dup_id>
          
          <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>90269</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>mario</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>682117</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 10:06:20 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/123966 broke the build:
This patch is causing assertion failures. (Requested by mrobinson on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682119</commentid>
    <comment_count>1</comment_count>
      <attachid>155312</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 10:06:59 -0700</bug_when>
    <thetext>Created attachment 155312
ROLLOUT of r123966

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682335</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-30 13:30:38 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 92656 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155312</attachid>
            <date>2012-07-30 10:06:59 -0700</date>
            <delta_ts>2012-07-30 10:12:42 -0700</delta_ts>
            <desc>ROLLOUT of r123966</desc>
            <filename>bug-92655-20120730171233.patch</filename>
            <type>text/plain</type>
            <size>24085</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5MTc5Njc5NjNiMzAz
ZDNhOWMxYWM4ZTNmNWVjODljMDJkZWUxZi4uN2Y0Zjc4ZjY3N2U2OGQ3OGI2ZjI0YWFlZDcyMDJh
MjljOTBjOGFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA3LTMwICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTIzOTY2LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMjM5NjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkyNjU1CisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBjYXVzaW5nIGFzc2VydGlv
biBmYWlsdXJlcy4gKFJlcXVlc3RlZCBieQorICAgICAgICBtcm9iaW5zb24gb24gI3dlYmtpdCku
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvZ3RrL1RleHRDaGVja2VyRW5jaGFudC5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50
Lmg6IFJlbW92ZWQuCisKIDIwMTItMDctMzAgIFZpbmVldCBDaGF1ZGhhcnkgIDxyZ2Y3NDhAbW90
b3JvbGEuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MjY0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGYwYjRiYmQ0M2JjM2Q4OTc4MzBiMzNjNmQw
NWVhMzExYjNjZDBmMzAuLjhhZDFkY2FmNzQ5ZmM3ZTNmY2UzNGE3MDQwNTUyNjMxZGEyYzFjMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNy0zMCAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEyMzk2Ni4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTIzOTY2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MjY1NQorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgY2F1c2luZyBhc3NlcnRpb24gZmFp
bHVyZXMuIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgbXJvYmluc29uIG9uICN3ZWJraXQpLgorCisg
ICAgICAgICogd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwOgorICAgICAgICAo
X1dlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlKToKKyAgICAgICAgKGNyZWF0ZUVuY2hh
bnRCcm9rZXJJZk5lZWRlZCk6CisgICAgICAgIChmcmVlU3BlbGxDaGVja2luZ0xhbmd1YWdlKToK
KyAgICAgICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfZmluYWxpemUpOgorICAgICAg
ICAod2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9jbGFzc19pbml0KToKKyAgICAgICAgKHdl
YmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfaW5pdCk6CisgICAgICAgICh3b3JkRW5kSXNBQ29u
dHJhY3Rpb25BcG9zdHJvcGhlKToKKyAgICAgICAgKGNoZWNrU3BlbGxpbmdPZlN0cmluZyk6Cisg
ICAgICAgIChnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgIChnZXRBdmFpbGFibGVEaWN0aW9u
YXJpZXNDYWxsYmFjayk6CisgICAgICAgICh1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKToK
KyAgICAgICAgKGxlYXJuV29yZCk6CisgICAgICAgIChpZ25vcmVXb3JkKToKKwogMjAxMi0wNy0z
MCAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
dGtdIEFkZCBXSzEgQVBJIGZvciBzbmFwc2hvdCByZXRyaWV2YWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggMzJhZjVjMzdjZjdmMDgwNjc5NmRiOTViYmVmNGExMjEzNjYzMGRlMC4uMjk1ODlhYmY1
MjMzZmM0NTE1NmM4YzVkZDkwZDU5MTUyZDNlMmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTExNyw4ICsxMTcsNyBAQCB3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIgXAogCS1JJChzcmNkaXIp
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ayBcCiAJLUkkKHNyY2RpcikvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrIFwKLQktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAgXAotCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvZ3RrCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwCiAKICMgLS0tCiAjIEZlYXR1cmVzIGVuYWJsZWQgYnkgZGVmYXVsdCBhdCBjb21waWxh
dGlvbiB0aW1lCkBAIC03NDksMTQgKzc0OCw2IEBAIEZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVf
TElOS19QUkVGRVRDSD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0xJTktfUFJFRkVU
Q0g9MQogZW5kaWYgICMgRU5EIEVOQUJMRV9MSU5LX1BSRUZFVENICiAKLSMgLS0tCi0jIFNwZWxs
IGNoZWNrIHN1cHBvcnQKLSMgLS0tCi1pZiBFTkFCTEVfU1BFTExDSEVDSwotRkVBVFVSRV9ERUZJ
TkVTICs9IEVOQUJMRV9TUEVMTENIRUNLPTEKLXdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
U1BFTExDSEVDSz0xCi1lbmRpZiAgIyBFTkQgRU5BQkxFX1NQRUxMQ0hFQ0sKLQogRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9DU1NQcm9wZXJ0eU5hbWVzLmgKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlO
YW1lcy5oOiAkKFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTKSAkKFdlYkNvcmUpL2Nzcy9tYWtl
cHJvcC5wbAogCSQoQU1fVl9HRU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1
ZWE0NzI5NzU3YjU2ZTk0N2M0MmYzYjExYWU3MTIxNjE1YWQ0MDUxLi4wYTE3YzhiNmE2ZTZkNTZh
YTA4ZGE5ZTI1NzgxNDY0ZWJkYjVhNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTYyOTAsMTMgKzYyOTAsMyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmlkbAogCiBlbmRpZiAgIyBF
TkQgRU5BQkxFX1FVT1RBCi0KLSMgLS0tLQotIyBTcGVsbCBjaGVjayBzdXBwb3J0Ci0jIC0tLS0K
LWlmIEVOQUJMRV9TUEVMTENIRUNLCi13ZWJjb3JlX3NvdXJjZXMgKz0gXAotCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDaGVja2VyRW5jaGFudC5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCi1lbmRpZiAjIEVO
RCBFTkFCTEVfU1BFTExDSEVDSwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2d0ay9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDBkOTljMGZjMzQ4ODk0ZjM1NjFhYjczODQyOWFiODI5MTRmOGY5Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTk2ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiVGV4dENoZWNrZXJFbmNoYW50LmgiCi0KLSNpZiBFTkFCTEUoU1BFTExDSEVDSykKLQot
I2luY2x1ZGUgPHBhbmdvL3BhbmdvLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bU51bWJlck9mU3VnZ2VzdGlvbnMgPSAx
MDsKLQotc3RhdGljIHZvaWQgZ2V0QXZhaWxhYmxlRGljdGlvbmFyaWVzQ2FsbGJhY2soY29uc3Qg
Y2hhciogY29uc3QgbGFuZ3VhZ2VUYWcsIGNvbnN0IGNoYXIqIGNvbnN0LCBjb25zdCBjaGFyKiBj
b25zdCwgY29uc3QgY2hhciogY29uc3QsIHZvaWQqIGRhdGEpCi17Ci0gICAgVmVjdG9yPENTdHJp
bmc+KiBkaWN0aW9uYXJpZXMgPSBzdGF0aWNfY2FzdDxWZWN0b3I8Q1N0cmluZz4qPihkYXRhKTsK
LSAgICBkaWN0aW9uYXJpZXMtPmFwcGVuZChsYW5ndWFnZVRhZyk7Ci19Ci0KLXN0YXRpYyBib29s
IHdvcmRFbmRJc0FDb250cmFjdGlvbkFwb3N0cm9waGUoY29uc3QgY2hhciogc3RyaW5nLCBsb25n
IG9mZnNldCkKLXsKLSAgICBpZiAoZ191dGY4X2dldF9jaGFyKGdfdXRmOF9vZmZzZXRfdG9fcG9p
bnRlcihzdHJpbmcsIG9mZnNldCkpICE9IGdfdXRmOF9nZXRfY2hhcigiJyIpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICAvLyBJZiB0aGlzIGlzIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0
aGUgc3RyaW5nLCBpdCBjYW5ub3QgYmUgdGhlIGFwb3N0cm9waGUgcGFydCBvZiBhIGNvbnRyYWN0
aW9uLgotICAgIGlmIChvZmZzZXQgPT0gZ191dGY4X3N0cmxlbihzdHJpbmcsIC0xKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGdfdW5pY2hhcl9pc2FscGhhKGdfdXRmOF9n
ZXRfY2hhcihnX3V0Zjhfb2Zmc2V0X3RvX3BvaW50ZXIoc3RyaW5nLCBvZmZzZXQgKyAxKSkpOwot
fQotCi1UZXh0Q2hlY2tlckVuY2hhbnQ6OlRleHRDaGVja2VyRW5jaGFudCgpCi0gICAgOiBtX2Jy
b2tlcihlbmNoYW50X2Jyb2tlcl9pbml0KCkpCi0gICAgLCBtX2VuY2hhbnREaWN0aW9uYXJpZXMo
MCkKLXsKLX0KLQotVGV4dENoZWNrZXJFbmNoYW50Ojp+VGV4dENoZWNrZXJFbmNoYW50KCkKLXsK
LSAgICBpZiAoIW1fYnJva2VyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmcmVlRW5jaGFudEJy
b2tlckRpY3Rpb25hcmllcygpOwotICAgIGVuY2hhbnRfYnJva2VyX2ZyZWUobV9icm9rZXIpOwot
fQotCi12b2lkIFRleHRDaGVja2VyRW5jaGFudDo6aWdub3JlV29yZChjb25zdCBTdHJpbmcmIHdv
cmQpCi17Ci0gICAgZm9yIChWZWN0b3I8RW5jaGFudERpY3QqPjo6Y29uc3RfaXRlcmF0b3IgaXRl
ciA9IG1fZW5jaGFudERpY3Rpb25hcmllcy5iZWdpbigpOyBpdGVyICE9IG1fZW5jaGFudERpY3Rp
b25hcmllcy5lbmQoKTsgKytpdGVyKQotICAgICAgICBlbmNoYW50X2RpY3RfYWRkX3RvX3Nlc3Np
b24oKml0ZXIsIHdvcmQudXRmOCgpLmRhdGEoKSwgLTEpOwotfQotCi12b2lkIFRleHRDaGVja2Vy
RW5jaGFudDo6bGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCkKLXsKLSAgICBmb3IgKFZlY3Rv
cjxFbmNoYW50RGljdCo+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9lbmNoYW50RGljdGlvbmFy
aWVzLmJlZ2luKCk7IGl0ZXIgIT0gbV9lbmNoYW50RGljdGlvbmFyaWVzLmVuZCgpOyArK2l0ZXIp
Ci0gICAgICAgIGVuY2hhbnRfZGljdF9hZGRfdG9fcGVyc29uYWwoKml0ZXIsIHdvcmQudXRmOCgp
LmRhdGEoKSwgLTEpOwotfQotCi12b2lkIFRleHRDaGVja2VyRW5jaGFudDo6Y2hlY2tTcGVsbGlu
Z09mU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQmIG1pc3NwZWxsaW5nTG9jYXRpb24s
IGludCYgbWlzc3BlbGxpbmdMZW5ndGgpCi17Ci0gICAgaWYgKG1fZW5jaGFudERpY3Rpb25hcmll
cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBWZWN0b3I8RW5jaGFudERpY3QqPjo6
Y29uc3RfaXRlcmF0b3IgZGljdEl0ZXIgPSBtX2VuY2hhbnREaWN0aW9uYXJpZXMuYmVnaW4oKTsK
LQotICAgIEdPd25QdHI8Z2NoYXI+IGNTdHJpbmcoZ19zdHJkdXAoc3RyaW5nLnV0ZjgoKS5kYXRh
KCkpKTsKLSAgICBzaXplX3QgbGVuZ3RoID0gc3RyaW5nLnV0ZjgoKS5sZW5ndGgoKTsKLQotICAg
IFBhbmdvTGFuZ3VhZ2UqIGxhbmd1YWdlKHBhbmdvX2xhbmd1YWdlX2dldF9kZWZhdWx0KCkpOwot
ICAgIEdPd25QdHI8UGFuZ29Mb2dBdHRyPiBhdHRycyhnX25ldyhQYW5nb0xvZ0F0dHIsIGxlbmd0
aCArIDEpKTsKLQotICAgIC8vIHBhbmdvX2dldF9sb2dfYXR0cnMgdXNlcyBhbiBhZGl0aW9uYWwg
cG9zaXRpb24gYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC4KLSAgICBwYW5nb19nZXRfbG9nX2F0dHJz
KGNTdHJpbmcuZ2V0KCksIC0xLCAtMSwgbGFuZ3VhZ2UsIGF0dHJzLmdldCgpLCBsZW5ndGggKyAx
KTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoICsgMTsgaSsrKSB7Ci0gICAg
ICAgIC8vIFdlIGdvIHRocm91Z2ggZWFjaCBjaGFyYWN0ZXIgdW50aWwgd2UgZmluZCBhbiBpc193
b3JkX3N0YXJ0LAotICAgICAgICAvLyB0aGVuIHdlIGdldCBpbnRvIGFuIGlubmVyIGxvb3AgdG8g
ZmluZCB0aGUgaXNfd29yZF9lbmQgY29ycmVzcG9uZGluZwotICAgICAgICAvLyB0byBpdC4KLSAg
ICAgICAgaWYgKGF0dHJzLmdldCgpW2ldLmlzX3dvcmRfc3RhcnQpIHsKLSAgICAgICAgICAgIGlu
dCBzdGFydCA9IGk7Ci0gICAgICAgICAgICBpbnQgZW5kID0gaTsKLSAgICAgICAgICAgIGludCB3
b3JkTGVuZ3RoOwotCi0gICAgICAgICAgICB3aGlsZSAoYXR0cnMuZ2V0KClbZW5kXS5pc193b3Jk
X2VuZCA8IDEgIHx8IHdvcmRFbmRJc0FDb250cmFjdGlvbkFwb3N0cm9waGUoY1N0cmluZy5nZXQo
KSwgZW5kKSkKLSAgICAgICAgICAgICAgICBlbmQrKzsKLQotICAgICAgICAgICAgd29yZExlbmd0
aCA9IGVuZCAtIHN0YXJ0OwotICAgICAgICAgICAgLy8gU2V0IHRoZSBpdGVyYXRvciB0byBiZSBh
dCB0aGUgY3VycmVudCB3b3JkIGVuZCwgc28gd2UgZG9uJ3QKLSAgICAgICAgICAgIC8vIGNoZWNr
IGNoYXJhY3RlcnMgdHdpY2UuCi0gICAgICAgICAgICBpID0gZW5kOwotCi0gICAgICAgICAgICBn
Y2hhciogY3N0YXJ0ID0gZ191dGY4X29mZnNldF90b19wb2ludGVyKGNTdHJpbmcuZ2V0KCksIHN0
YXJ0KTsKLSAgICAgICAgICAgIGdpbnQgYnl0ZXMgPSBzdGF0aWNfY2FzdDxnaW50PihnX3V0Zjhf
b2Zmc2V0X3RvX3BvaW50ZXIoY1N0cmluZy5nZXQoKSwgZW5kKSAtIGNzdGFydCk7Ci0gICAgICAg
ICAgICBHT3duUHRyPGdjaGFyPiB3b3JkKGdfbmV3MChnY2hhciwgYnl0ZXMgKyAxKSk7Ci0KLSAg
ICAgICAgICAgIGdfdXRmOF9zdHJuY3B5KHdvcmQuZ2V0KCksIGNzdGFydCwgd29yZExlbmd0aCk7
Ci0KLSAgICAgICAgICAgIGZvciAoOyBkaWN0SXRlciAhPSBtX2VuY2hhbnREaWN0aW9uYXJpZXMu
ZW5kKCk7ICsrZGljdEl0ZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAoZW5jaGFudF9kaWN0X2No
ZWNrKCpkaWN0SXRlciwgd29yZC5nZXQoKSwgd29yZExlbmd0aCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgbWlzc3BlbGxpbmdMb2NhdGlvbiA9IHN0YXJ0OwotICAgICAgICAgICAgICAgICAgICBt
aXNzcGVsbGluZ0xlbmd0aCA9IHdvcmRMZW5ndGg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgLy8gU3RvcCBjaGVja2luZywgdGhpcyB3b3JkIGlzIG9rIGlu
IGF0IGxlYXN0IG9uZSBkaWN0LgotICAgICAgICAgICAgICAgICAgICBtaXNzcGVsbGluZ0xvY2F0
aW9uID0gLTE7Ci0gICAgICAgICAgICAgICAgICAgIG1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgfQotfQotCi1WZWN0b3I8U3RyaW5nPiBUZXh0Q2hlY2tlckVuY2hh
bnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCkKLXsKLSAgICBWZWN0b3I8
U3RyaW5nPiBndWVzc2VzOwotICAgIGlmIChtX2VuY2hhbnREaWN0aW9uYXJpZXMuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gZ3Vlc3NlczsKLQotICAgIGZvciAoVmVjdG9yPEVuY2hhbnREaWN0
Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX2VuY2hhbnREaWN0aW9uYXJpZXMuYmVnaW4oKTsg
aXRlciAhPSBtX2VuY2hhbnREaWN0aW9uYXJpZXMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBz
aXplX3QgbnVtYmVyT2ZTdWdnZXN0aW9uczsKLSAgICAgICAgc2l6ZV90IGk7Ci0KLSAgICAgICAg
Z2NoYXIqKiBzdWdnZXN0aW9ucyA9IGVuY2hhbnRfZGljdF9zdWdnZXN0KCppdGVyLCB3b3JkLnV0
ZjgoKS5kYXRhKCksIC0xLCAmbnVtYmVyT2ZTdWdnZXN0aW9ucyk7Ci0gICAgICAgIGlmIChudW1i
ZXJPZlN1Z2dlc3Rpb25zIDw9IDApCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBp
ZiAobnVtYmVyT2ZTdWdnZXN0aW9ucyA+IG1heGltdW1OdW1iZXJPZlN1Z2dlc3Rpb25zKQotICAg
ICAgICAgICAgbnVtYmVyT2ZTdWdnZXN0aW9ucyA9IG1heGltdW1OdW1iZXJPZlN1Z2dlc3Rpb25z
OwotCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1iZXJPZlN1Z2dlc3Rpb25zOyBpKyspCi0g
ICAgICAgICAgICBndWVzc2VzLmFwcGVuZChTdHJpbmcoc3VnZ2VzdGlvbnNbaV0pKTsKLQotICAg
ICAgICBlbmNoYW50X2RpY3RfZnJlZV9zdWdnZXN0aW9ucygqaXRlciwgc3VnZ2VzdGlvbnMpOwot
ICAgIH0KLQotICAgIHJldHVybiBndWVzc2VzOwotfQotCi12b2lkIFRleHRDaGVja2VyRW5jaGFu
dDo6dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyhjb25zdCBTdHJpbmcmIGxhbmd1YWdlcykK
LXsKLSAgICBWZWN0b3I8RW5jaGFudERpY3QqPiBzcGVsbERpY3Rpb25hcmllczsKLQotICAgIGlm
ICghbGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXNWZWN0b3I7Ci0gICAgICAgIGxhbmd1YWdlcy5zcGxpdChzdGF0aWNfY2FzdDxVQ2hhcj4oJywn
KSwgbGFuZ3VhZ2VzVmVjdG9yKTsKLSAgICAgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3Rf
aXRlcmF0b3IgaXRlciA9IGxhbmd1YWdlc1ZlY3Rvci5iZWdpbigpOyBpdGVyICE9IGxhbmd1YWdl
c1ZlY3Rvci5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgICAgICBHT3duUHRyPGdjaGFyPiBjdXJy
ZW50TGFuZ3VhZ2UoZ19zdHJkdXAoaXRlci0+dXRmOCgpLmRhdGEoKSkpOwotICAgICAgICAgICAg
aWYgKGVuY2hhbnRfYnJva2VyX2RpY3RfZXhpc3RzKG1fYnJva2VyLCBjdXJyZW50TGFuZ3VhZ2Uu
Z2V0KCkpKSB7Ci0gICAgICAgICAgICAgICAgRW5jaGFudERpY3QqIGRpY3QgPSBlbmNoYW50X2Jy
b2tlcl9yZXF1ZXN0X2RpY3QobV9icm9rZXIsIGN1cnJlbnRMYW5ndWFnZS5nZXQoKSk7Ci0gICAg
ICAgICAgICAgICAgc3BlbGxEaWN0aW9uYXJpZXMuYXBwZW5kKGRpY3QpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgY29uc3QgY2hhciogbGFuZ3VhZ2Ug
PSBwYW5nb19sYW5ndWFnZV90b19zdHJpbmcocGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKSk7
Ci0gICAgICAgIGlmIChlbmNoYW50X2Jyb2tlcl9kaWN0X2V4aXN0cyhtX2Jyb2tlciwgbGFuZ3Vh
Z2UpKSB7Ci0gICAgICAgICAgICBFbmNoYW50RGljdCogZGljdCA9IGVuY2hhbnRfYnJva2VyX3Jl
cXVlc3RfZGljdChtX2Jyb2tlciwgbGFuZ3VhZ2UpOwotICAgICAgICAgICAgc3BlbGxEaWN0aW9u
YXJpZXMuYXBwZW5kKGRpY3QpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gTm8g
ZGljdGlvbmFyaWVzIHNlbGVjdGVkLCB3ZSBnZXQgb25lIGZyb20gdGhlIGxpc3QuCi0gICAgICAg
ICAgICBWZWN0b3I8Q1N0cmluZz4gYWxsRGljdGlvbmFyaWVzOwotICAgICAgICAgICAgZW5jaGFu
dF9icm9rZXJfbGlzdF9kaWN0cyhtX2Jyb2tlciwgZ2V0QXZhaWxhYmxlRGljdGlvbmFyaWVzQ2Fs
bGJhY2ssICZhbGxEaWN0aW9uYXJpZXMpOwotICAgICAgICAgICAgaWYgKCFhbGxEaWN0aW9uYXJp
ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgRW5jaGFudERpY3QqIGRpY3QgPSBlbmNo
YW50X2Jyb2tlcl9yZXF1ZXN0X2RpY3QobV9icm9rZXIsIGFsbERpY3Rpb25hcmllc1swXS5kYXRh
KCkpOwotICAgICAgICAgICAgICAgIHNwZWxsRGljdGlvbmFyaWVzLmFwcGVuZChkaWN0KTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICBmcmVlRW5jaGFudEJyb2tlckRpY3Rp
b25hcmllcygpOwotICAgIG1fZW5jaGFudERpY3Rpb25hcmllcyA9IHNwZWxsRGljdGlvbmFyaWVz
OwotfQotCi12b2lkIFRleHRDaGVja2VyRW5jaGFudDo6ZnJlZUVuY2hhbnRCcm9rZXJEaWN0aW9u
YXJpZXMoKQotewotICAgIGZvciAoVmVjdG9yPEVuY2hhbnREaWN0Kj46OmNvbnN0X2l0ZXJhdG9y
IGl0ZXIgPSBtX2VuY2hhbnREaWN0aW9uYXJpZXMuYmVnaW4oKTsgaXRlciAhPSBtX2VuY2hhbnRE
aWN0aW9uYXJpZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgZW5jaGFudF9icm9rZXJfZnJlZV9k
aWN0KG1fYnJva2VyLCAqaXRlcik7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU1BFTExDSEVDSykK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNr
ZXJFbmNoYW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q2hlY2tl
ckVuY2hhbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM5NzU1ZTQyNGFiOWRj
OWYzZDE5NjJiZTMxYWUwMTQ5MDM2ZDliYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q2hl
Y2tlckVuY2hhbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBUZXh0Q2hlY2tlckVuY2hhbnRfaAot
I2RlZmluZSBUZXh0Q2hlY2tlckVuY2hhbnRfaAotCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0K
LSNpbmNsdWRlIDxlbmNoYW50Lmg+Ci0jaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBUZXh0Q2hlY2tlckVuY2hhbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotCi1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8VGV4dENoZWNrZXJFbmNoYW50PiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFB0cihuZXcgVGV4dENoZWNrZXJFbmNoYW50KTsgfQotICAgIHZpcnR1
YWwgflRleHRDaGVja2VyRW5jaGFudCgpOwotCi0gICAgdm9pZCBpZ25vcmVXb3JkKGNvbnN0IFN0
cmluZyYpOwotICAgIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2hl
Y2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFN0cmluZyYsIGludCYgbWlzc3BlbGxpbmdMb2NhdGlv
biwgaW50JiBtaXNzcGVsbGluZ0xlbmd0aCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gZ2V0R3Vlc3Nl
c0ZvcldvcmQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFu
Z3VhZ2VzKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VzKTsKLQotcHJpdmF0ZToKLSAgICBUZXh0Q2hl
Y2tlckVuY2hhbnQoKTsKLSAgICB2b2lkIGZyZWVFbmNoYW50QnJva2VyRGljdGlvbmFyaWVzKCk7
Ci0KLSAgICBFbmNoYW50QnJva2VyKiBtX2Jyb2tlcjsKLSAgICBWZWN0b3I8RW5jaGFudERpY3Qq
PiBtX2VuY2hhbnREaWN0aW9uYXJpZXM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoU1BFTExDSEVDSykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAKaW5kZXgg
MGEyMjY5MjhiMmRiOWE2MDNkOGQ2ZWUyMWE2ZTYzNDI2ZDA5YzEyNi4uMGViNDk4NmQxZDliYzA5
NmQ0MzliYTVlOWRhMWJhNjRkNDhhODBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcApAQCAtMjEsMTUgKzIxLDEy
IEBACiAKICNpZiBFTkFCTEUoU1BFTExDSEVDSykKIAotI2luY2x1ZGUgIlRleHRDaGVja2VyRW5j
aGFudC5oIgogI2luY2x1ZGUgIndlYmtpdHNwZWxsY2hlY2tlci5oIgorI2luY2x1ZGUgPGVuY2hh
bnQuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiAvKioKICAqIFNFQ1RJT046d2Via2l0
c3BlbGxjaGVja2VyZW5jaGFudAogICogQHNob3J0X2Rlc2NyaXB0aW9uOiB0aGUgZGVmYXVsdCBz
cGVsbCBjaGVja2luZyBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViS2l0R1RLKy4KQEAgLTM4LDkgKzM1
LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICogV2ViS2l0R1RLKy4gSXQgdXNlcyB0
aGUgRW5jaGFudCBkaWN0aW9uYXJpZXMgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0gdG8KICAqIGNv
cnJlY3Qgc3BlbGxpbmcuCiAgKi8KK3N0YXRpYyBFbmNoYW50QnJva2VyKiBicm9rZXIgPSAwOwog
CiBzdHJ1Y3QgX1dlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlIHsKLSAgICBPd25QdHI8
VGV4dENoZWNrZXJFbmNoYW50PiB0ZXh0Q2hlY2tlckVuY2hhbnQ7CisgICAgR1NMaXN0KiBlbmNo
YW50RGljdHM7CiB9OwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50
X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNl
KiBpbnRlcmZhY2UpOwpAQCAtNDksMTYgKzQ3LDM1IEBAIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RF
KFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnQsIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX1RZ
UEVfU1BFTExfQ0hFQ0tFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X3NwZWxsX2NoZWNrZXJfaW50ZXJm
YWNlX2luaXQpKQogCitzdGF0aWMgdm9pZCBjcmVhdGVFbmNoYW50QnJva2VySWZOZWVkZWQoKQor
eworICAgIGlmICghYnJva2VyKQorICAgICAgICBicm9rZXIgPSBlbmNoYW50X2Jyb2tlcl9pbml0
KCk7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVTcGVsbENoZWNraW5nTGFuZ3VhZ2UoZ3BvaW50ZXIg
ZGF0YSwgZ3BvaW50ZXIpCit7CisgICAgY3JlYXRlRW5jaGFudEJyb2tlcklmTmVlZGVkKCk7CisK
KyAgICBlbmNoYW50X2Jyb2tlcl9mcmVlX2RpY3QoYnJva2VyLCBzdGF0aWNfY2FzdDxFbmNoYW50
RGljdCo+KGRhdGEpKTsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5j
aGFudF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgV2ViS2l0U3BlbGxDaGVja2Vy
RW5jaGFudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5UKG9iamVj
dCktPnByaXY7Ci0gICAgcHJpdi0+fldlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlKCk7
CisKKyAgICBnX3NsaXN0X2ZvcmVhY2gocHJpdi0+ZW5jaGFudERpY3RzLCBmcmVlU3BlbGxDaGVj
a2luZ0xhbmd1YWdlLCAwKTsKKyAgICBnX3NsaXN0X2ZyZWUocHJpdi0+ZW5jaGFudERpY3RzKTsK
KworICAgIFdFQktJVF9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQob2JqZWN0KS0+cHJpdi0+fldlYktp
dFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlKCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9z
cGVsbF9jaGVja2VyX2VuY2hhbnRfY2xhc3NfaW5pdChXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50
Q2xhc3MqIGtsYXNzKQogewogICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVD
VF9DTEFTUyhrbGFzcyk7CisKICAgICBvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfc3Bl
bGxfY2hlY2tlcl9lbmNoYW50X2ZpbmFsaXplOworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2
YXRlKGtsYXNzLCBzaXplb2YoV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGUpKTsKIH0K
IApAQCAtNjgsMzggKzg1LDE0OSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9l
bmNoYW50X2luaXQoV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudCogY2hlY2tlcgogICAgIGNoZWNr
ZXItPnByaXYgPSBwcml2OwogICAgIG5ldyAocHJpdikgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFu
dFByaXZhdGUoKTsKIAotICAgIHByaXYtPnRleHRDaGVja2VyRW5jaGFudCA9IFRleHRDaGVja2Vy
RW5jaGFudDo6Y3JlYXRlKCk7CisgICAgcHJpdi0+ZW5jaGFudERpY3RzID0gMDsKK30KKworc3Rh
dGljIGJvb2wgd29yZEVuZElzQUNvbnRyYWN0aW9uQXBvc3Ryb3BoZShjb25zdCBjaGFyKiBzdHJp
bmcsIGxvbmcgb2Zmc2V0KQoreworICAgIGlmIChnX3V0ZjhfZ2V0X2NoYXIoZ191dGY4X29mZnNl
dF90b19wb2ludGVyKHN0cmluZywgb2Zmc2V0KSkgIT0gZ191dGY4X2dldF9jaGFyKCInIikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIElmIHRoaXMgaXMgdGhlIGxhc3QgY2hhcmFj
dGVyIGluIHRoZSBzdHJpbmcsIGl0IGNhbm5vdCBiZSB0aGUgYXBvc3Ryb3BoZSBwYXJ0IG9mIGEg
Y29udHJhY3Rpb24uCisgICAgaWYgKG9mZnNldCA9PSBnX3V0Zjhfc3RybGVuKHN0cmluZywgLTEp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZ191bmljaGFyX2lzYWxwaGEo
Z191dGY4X2dldF9jaGFyKGdfdXRmOF9vZmZzZXRfdG9fcG9pbnRlcihzdHJpbmcsIG9mZnNldCAr
IDEpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhXZWJLaXRTcGVs
bENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIHN0cmluZywgaW50KiBtaXNzcGVsbGluZ0xv
Y2F0aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKQogewogICAgIFdlYktpdFNwZWxsQ2hlY2tl
ckVuY2hhbnRQcml2YXRlKiBwcml2ID0gV0VCS0lUX1NQRUxMX0NIRUNLRVJfRU5DSEFOVChjaGVj
a2VyKS0+cHJpdjsKLSAgICBwcml2LT50ZXh0Q2hlY2tlckVuY2hhbnQtPmNoZWNrU3BlbGxpbmdP
ZlN0cmluZyhTdHJpbmcoc3RyaW5nKSwgKm1pc3NwZWxsaW5nTG9jYXRpb24sICptaXNzcGVsbGlu
Z0xlbmd0aCk7CisKKyAgICBHU0xpc3QqIGRpY3RzID0gcHJpdi0+ZW5jaGFudERpY3RzOworICAg
IGlmICghZGljdHMpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBsZW5ndGggPSBnX3V0Zjhf
c3RybGVuKHN0cmluZywgLTEpOworCisgICAgUGFuZ29MYW5ndWFnZSogbGFuZ3VhZ2UocGFuZ29f
bGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKSk7CisgICAgR093blB0cjxQYW5nb0xvZ0F0dHI+IGF0dHJz
KGdfbmV3KFBhbmdvTG9nQXR0ciwgbGVuZ3RoICsgMSkpOworCisgICAgLy8gcGFuZ29fZ2V0X2xv
Z19hdHRycyB1c2VzIGFuIGFkaXRpb25hbCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0
LgorICAgIHBhbmdvX2dldF9sb2dfYXR0cnMoc3RyaW5nLCAtMSwgLTEsIGxhbmd1YWdlLCBhdHRy
cy5nZXQoKSwgbGVuZ3RoICsgMSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aCAr
IDE7IGkrKykgeworICAgICAgICAvLyBXZSBnbyB0aHJvdWdoIGVhY2ggY2hhcmFjdGVyIHVudGls
IHdlIGZpbmQgYW4gaXNfd29yZF9zdGFydCwKKyAgICAgICAgLy8gdGhlbiB3ZSBnZXQgaW50byBh
biBpbm5lciBsb29wIHRvIGZpbmQgdGhlIGlzX3dvcmRfZW5kIGNvcnJlc3BvbmRpbmcKKyAgICAg
ICAgLy8gdG8gaXQuCisgICAgICAgIGlmIChhdHRycy5nZXQoKVtpXS5pc193b3JkX3N0YXJ0KSB7
CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpOworICAgICAgICAgICAgaW50IGVuZCA9IGk7Cisg
ICAgICAgICAgICBpbnQgd29yZExlbmd0aDsKKworICAgICAgICAgICAgd2hpbGUgKGF0dHJzLmdl
dCgpW2VuZF0uaXNfd29yZF9lbmQgPCAxIHx8IHdvcmRFbmRJc0FDb250cmFjdGlvbkFwb3N0cm9w
aGUoc3RyaW5nLCBlbmQpKQorICAgICAgICAgICAgICAgIGVuZCsrOworCisgICAgICAgICAgICB3
b3JkTGVuZ3RoID0gZW5kIC0gc3RhcnQ7CisgICAgICAgICAgICAvLyBTZXQgdGhlIGl0ZXJhdG9y
IHRvIGJlIGF0IHRoZSBjdXJyZW50IHdvcmQgZW5kLCBzbyB3ZSBkb24ndAorICAgICAgICAgICAg
Ly8gY2hlY2sgY2hhcmFjdGVycyB0d2ljZS4KKyAgICAgICAgICAgIGkgPSBlbmQ7CisKKyAgICAg
ICAgICAgIGdjaGFyKiBjc3RhcnQgPSBnX3V0Zjhfb2Zmc2V0X3RvX3BvaW50ZXIoc3RyaW5nLCBz
dGFydCk7CisgICAgICAgICAgICBnaW50IGJ5dGVzID0gc3RhdGljX2Nhc3Q8Z2ludD4oZ191dGY4
X29mZnNldF90b19wb2ludGVyKHN0cmluZywgZW5kKSAtIGNzdGFydCk7CisgICAgICAgICAgICBH
T3duUHRyPGdjaGFyPiB3b3JkKGdfbmV3MChnY2hhciwgYnl0ZXMgKyAxKSk7CisKKyAgICAgICAg
ICAgIGdfdXRmOF9zdHJuY3B5KHdvcmQuZ2V0KCksIGNzdGFydCwgd29yZExlbmd0aCk7CisKKyAg
ICAgICAgICAgIGZvciAoOyBkaWN0czsgZGljdHMgPSBkaWN0cy0+bmV4dCkgeworICAgICAgICAg
ICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gc3RhdGljX2Nhc3Q8RW5jaGFudERpY3QqPihkaWN0
cy0+ZGF0YSk7CisgICAgICAgICAgICAgICAgaWYgKGVuY2hhbnRfZGljdF9jaGVjayhkaWN0LCB3
b3JkLmdldCgpLCB3b3JkTGVuZ3RoKSkgeworICAgICAgICAgICAgICAgICAgICAqbWlzc3BlbGxp
bmdMb2NhdGlvbiA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAqbWlzc3BlbGxpbmdMZW5n
dGggPSB3b3JkTGVuZ3RoOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFN0b3AgY2hlY2tpbmcsIHRoaXMgd29yZCBpcyBvayBpbiBhdCBsZWFzdCBvbmUg
ZGljdC4KKyAgICAgICAgICAgICAgICAgICAgKm1pc3NwZWxsaW5nTG9jYXRpb24gPSAtMTsKKyAg
ICAgICAgICAgICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQogfQogCiBzdGF0aWMgY2hhcioqIGdldEd1ZXNzZXNGb3JXb3JkKFdlYktpdFNwZWxs
Q2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29yZCwgY29uc3QgY2hhciogY29udGV4dCkK
IHsKICAgICBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9T
UEVMTF9DSEVDS0VSX0VOQ0hBTlQoY2hlY2tlciktPnByaXY7CiAKLSAgICBWZWN0b3I8U3RyaW5n
PiBndWVzc2VzID0gcHJpdi0+dGV4dENoZWNrZXJFbmNoYW50LT5nZXRHdWVzc2VzRm9yV29yZChT
dHJpbmcod29yZCkpOworICAgIEdTTGlzdCogZGljdHMgPSBwcml2LT5lbmNoYW50RGljdHM7Cisg
ICAgY2hhcioqIGd1ZXNzZXMgPSAwOwogCi0gICAgaWYgKGd1ZXNzZXMuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICBmb3IgKDsgZGljdHM7IGRpY3RzID0gZGljdHMtPm5leHQpIHsK
KyAgICAgICAgc2l6ZV90IG51bWJlck9mU3VnZ2VzdGlvbnM7CisgICAgICAgIHNpemVfdCBpOwog
Ci0gICAgaW50IGkgPSAwOwotICAgIGludCBudW1iZXJPZkd1ZXNzZXMgPSBndWVzc2VzLnNpemUo
KTsKLSAgICBjaGFyKiogZ3Vlc3Nlc0FycmF5ID0gc3RhdGljX2Nhc3Q8Y2hhcioqPihnX21hbGxv
YzAoKG51bWJlck9mR3Vlc3NlcyArIDEpICogc2l6ZW9mKGNoYXIqKSkpOwotICAgIGZvciAoVmVj
dG9yPFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBndWVzc2VzLmJlZ2luKCk7IGl0ZXIg
IT0gZ3Vlc3Nlcy5lbmQoKTsgKytpdGVyKQotICAgICAgICBndWVzc2VzQXJyYXlbaSsrXSA9IGdf
c3RyZHVwKGl0ZXItPnV0ZjgoKS5kYXRhKCkpOwotICAgIGd1ZXNzZXNBcnJheVtpXSA9IDA7Cisg
ICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gc3RhdGljX2Nhc3Q8RW5jaGFudERpY3QqPihkaWN0
cy0+ZGF0YSk7CisgICAgICAgIGdjaGFyKiogc3VnZ2VzdGlvbnMgPSBlbmNoYW50X2RpY3Rfc3Vn
Z2VzdChkaWN0LCB3b3JkLCAtMSwgJm51bWJlck9mU3VnZ2VzdGlvbnMpOwogCi0gICAgcmV0dXJu
IGd1ZXNzZXNBcnJheTsKKyAgICAgICAgaWYgKG51bWJlck9mU3VnZ2VzdGlvbnMgPiAwKSB7Cisg
ICAgICAgICAgICBpZiAobnVtYmVyT2ZTdWdnZXN0aW9ucyA+IDEwKQorICAgICAgICAgICAgICAg
IG51bWJlck9mU3VnZ2VzdGlvbnMgPSAxMDsKKworICAgICAgICAgICAgZ3Vlc3NlcyA9IHN0YXRp
Y19jYXN0PGNoYXIqKj4oZ19tYWxsb2MwKChudW1iZXJPZlN1Z2dlc3Rpb25zICsgMSkgKiBzaXpl
b2YoY2hhciopKSk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtYmVyT2ZTdWdnZXN0
aW9ucyAmJiBpIDwgMTA7IGkrKykKKyAgICAgICAgICAgICAgICBndWVzc2VzW2ldID0gZ19zdHJk
dXAoc3VnZ2VzdGlvbnNbaV0pOworCisgICAgICAgICAgICBndWVzc2VzW2ldID0gMDsKKworICAg
ICAgICAgICAgZW5jaGFudF9kaWN0X2ZyZWVfc3VnZ2VzdGlvbnMoZGljdCwgc3VnZ2VzdGlvbnMp
OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGd1ZXNzZXM7Cit9CisKK3N0YXRpYyB2
b2lkIGdldEF2YWlsYWJsZURpY3Rpb25hcmllc0NhbGxiYWNrKGNvbnN0IGNoYXIqIGNvbnN0IGxh
bmd1YWdlVGFnLCBjb25zdCBjaGFyKiBjb25zdCwgY29uc3QgY2hhciogY29uc3QsIGNvbnN0IGNo
YXIqIGNvbnN0LCB2b2lkKiBkYXRhKQoreworICAgIFZlY3RvcjxDU3RyaW5nPiogZGljdHMgPSBz
dGF0aWNfY2FzdDxWZWN0b3I8Q1N0cmluZz4qPihkYXRhKTsKKworICAgIGRpY3RzLT5hcHBlbmQo
bGFuZ3VhZ2VUYWcpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3Vh
Z2VzKFdlYktpdFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogbGFuZ3VhZ2VzKQog
eworICAgIEdTTGlzdCogc3BlbGxEaWN0aW9uYXJpZXMgPSAwOworCiAgICAgV2ViS2l0U3BlbGxD
aGVja2VyRW5jaGFudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5U
KGNoZWNrZXIpLT5wcml2OwotICAgIHByaXYtPnRleHRDaGVja2VyRW5jaGFudC0+dXBkYXRlU3Bl
bGxDaGVja2luZ0xhbmd1YWdlcyhTdHJpbmcobGFuZ3VhZ2VzKSk7CisKKyAgICBjcmVhdGVFbmNo
YW50QnJva2VySWZOZWVkZWQoKTsKKworICAgIGlmIChsYW5ndWFnZXMpIHsKKyAgICAgICAgY2hh
cioqIGxhbmdzID0gZ19zdHJzcGxpdChsYW5ndWFnZXMsICIsIiwgLTEpOworICAgICAgICBmb3Ig
KGludCBpID0gMDsgbGFuZ3NbaV07IGkrKykgeworICAgICAgICAgICAgaWYgKGVuY2hhbnRfYnJv
a2VyX2RpY3RfZXhpc3RzKGJyb2tlciwgbGFuZ3NbaV0pKSB7CisgICAgICAgICAgICAgICAgRW5j
aGFudERpY3QqIGRpY3QgPSBlbmNoYW50X2Jyb2tlcl9yZXF1ZXN0X2RpY3QoYnJva2VyLCBsYW5n
c1tpXSk7CisgICAgICAgICAgICAgICAgc3BlbGxEaWN0aW9uYXJpZXMgPSBnX3NsaXN0X2FwcGVu
ZChzcGVsbERpY3Rpb25hcmllcywgZGljdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgZ19zdHJmcmVldihsYW5ncyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc3QgY2hh
ciogbGFuZ3VhZ2UgPSBwYW5nb19sYW5ndWFnZV90b19zdHJpbmcoZ3RrX2dldF9kZWZhdWx0X2xh
bmd1YWdlKCkpOworICAgICAgICBpZiAoZW5jaGFudF9icm9rZXJfZGljdF9leGlzdHMoYnJva2Vy
LCBsYW5ndWFnZSkpIHsKKyAgICAgICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gZW5jaGFudF9i
cm9rZXJfcmVxdWVzdF9kaWN0KGJyb2tlciwgbGFuZ3VhZ2UpOworICAgICAgICAgICAgc3BlbGxE
aWN0aW9uYXJpZXMgPSBnX3NsaXN0X2FwcGVuZChzcGVsbERpY3Rpb25hcmllcywgZGljdCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBObyBkaWN0aW9uYXJpZXMgc2VsZWN0ZWQs
IHdlIGdldCBvbmUgZnJvbSB0aGUgbGlzdC4KKyAgICAgICAgICAgIFZlY3RvcjxDU3RyaW5nPiBh
bGxEaWN0aW9uYXJpZXM7CisgICAgICAgICAgICBlbmNoYW50X2Jyb2tlcl9saXN0X2RpY3RzKGJy
b2tlciwgZ2V0QXZhaWxhYmxlRGljdGlvbmFyaWVzQ2FsbGJhY2ssICZhbGxEaWN0aW9uYXJpZXMp
OworICAgICAgICAgICAgaWYgKCFhbGxEaWN0aW9uYXJpZXMuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICAgICAgRW5jaGFudERpY3QqIGRpY3QgPSBlbmNoYW50X2Jyb2tlcl9yZXF1ZXN0X2RpY3Qo
YnJva2VyLCBhbGxEaWN0aW9uYXJpZXNbMF0uZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBzcGVs
bERpY3Rpb25hcmllcyA9IGdfc2xpc3RfYXBwZW5kKHNwZWxsRGljdGlvbmFyaWVzLCBkaWN0KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBnX3NsaXN0X2ZvcmVhY2gocHJp
di0+ZW5jaGFudERpY3RzLCBmcmVlU3BlbGxDaGVja2luZ0xhbmd1YWdlLCAwKTsKKyAgICBnX3Ns
aXN0X2ZyZWUocHJpdi0+ZW5jaGFudERpY3RzKTsKKyAgICBwcml2LT5lbmNoYW50RGljdHMgPSBz
cGVsbERpY3Rpb25hcmllczsKIH0KIAogc3RhdGljIGNoYXIqIGdldEF1dG9jb3JyZWN0U3VnZ2Vz
dGlvbnNGb3JNaXNzcGVsbGVkV29yZChXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0
IGNoYXIqIHdvcmQpCkBAIC0xMTAsMTMgKzIzOCwyNSBAQCBzdGF0aWMgY2hhciogZ2V0QXV0b2Nv
cnJlY3RTdWdnZXN0aW9uc0Zvck1pc3NwZWxsZWRXb3JkKFdlYktpdFNwZWxsQ2hlY2tlciogY2hl
Ywogc3RhdGljIHZvaWQgbGVhcm5Xb3JkKFdlYktpdFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29u
c3QgY2hhciogd29yZCkKIHsKICAgICBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSog
cHJpdiA9IFdFQktJVF9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQoY2hlY2tlciktPnByaXY7Ci0gICAg
cHJpdi0+dGV4dENoZWNrZXJFbmNoYW50LT5sZWFybldvcmQoU3RyaW5nKHdvcmQpKTsKKyAgICBH
U0xpc3QqIGRpY3RzID0gcHJpdi0+ZW5jaGFudERpY3RzOworCisgICAgZm9yICg7IGRpY3RzOyBk
aWN0cyA9IGRpY3RzLT5uZXh0KSB7CisgICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gc3RhdGlj
X2Nhc3Q8RW5jaGFudERpY3QqPihkaWN0cy0+ZGF0YSk7CisKKyAgICAgICAgZW5jaGFudF9kaWN0
X2FkZF90b19wZXJzb25hbChkaWN0LCB3b3JkLCAtMSk7CisgICAgfQogfQogCiBzdGF0aWMgdm9p
ZCBpZ25vcmVXb3JkKFdlYktpdFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29y
ZCkKIHsKICAgICBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSogcHJpdiA9IFdFQktJ
VF9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQoY2hlY2tlciktPnByaXY7Ci0gICAgcHJpdi0+dGV4dENo
ZWNrZXJFbmNoYW50LT5pZ25vcmVXb3JkKFN0cmluZyh3b3JkKSk7CisgICAgR1NMaXN0KiBkaWN0
cyA9IHByaXYtPmVuY2hhbnREaWN0czsKKworICAgIGZvciAoOyBkaWN0czsgZGljdHMgPSBkaWN0
cy0+bmV4dCkgeworICAgICAgICBFbmNoYW50RGljdCogZGljdCA9IHN0YXRpY19jYXN0PEVuY2hh
bnREaWN0Kj4oZGljdHMtPmRhdGEpOworCisgICAgICAgIGVuY2hhbnRfZGljdF9hZGRfdG9fc2Vz
c2lvbihkaWN0LCB3b3JkLCAtMSk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfc3Bl
bGxfY2hlY2tlcl9lbmNoYW50X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3Bl
bGxDaGVja2VySW50ZXJmYWNlKiBpbnRlcmZhY2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>