<?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>57333</bug_id>
          
          <creation_ts>2011-03-29 06:49:06 -0700</creation_ts>
          <short_desc>REGRESSION(r82173): Causes assertion and test failures in run-javascriptcore-tests on Windows (Requested by aroben on #webkit).</short_desc>
          <delta_ts>2011-03-29 10:57:56 -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>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>MakingBotsRed, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>17250</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>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>375265</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 06:49:06 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82173 broke the build:
Causes assertion and test failures in run-javascriptcore-tests on Windows (Requested by aroben 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>375266</commentid>
    <comment_count>1</comment_count>
      <attachid>87307</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 06:49:32 -0700</bug_when>
    <thetext>Created attachment 87307
ROLLOUT of r82173

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375374</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-29 08:34:15 -0700</bug_when>
    <thetext>Killed the rollout as i&apos;m looking into this now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375394</commentid>
    <comment_count>3</comment_count>
      <attachid>87339</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-29 08:59:58 -0700</bug_when>
    <thetext>Created attachment 87339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375395</commentid>
    <comment_count>4</comment_count>
      <attachid>87339</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-29 09:00:42 -0700</bug_when>
    <thetext>Comment on attachment 87339
Patch

Seems reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375399</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-03-29 09:03:54 -0700</bug_when>
    <thetext>Committed r82261: &lt;http://trac.webkit.org/changeset/82261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375514</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-03-29 10:46:23 -0700</bug_when>
    <thetext>Thanks, Oliver!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375530</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 10:57:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82261 might have broken GTK Linux 32-bit Release
The following tests are not passing:
fast/loader/onload-willSendRequest-null-for-frame.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87307</attachid>
            <date>2011-03-29 06:49:32 -0700</date>
            <delta_ts>2011-03-29 08:59:47 -0700</delta_ts>
            <desc>ROLLOUT of r82173</desc>
            <filename>bug-57333-20110329134716.patch</filename>
            <type>text/plain</type>
            <size>54394</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyNDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxOTViOWExNDdjYzUzZDQ1MzA3ZmQw
MGRkMGU3MmE5ZWZiZGRiMWI1Li5jNzk2MWYxMGVhNmE2OTBjOWY1NzE5ZDgzNDhkNDg3OWNjYTVj
OGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMjkgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI4MjE3My4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvODIx
NzMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MzMz
CisKKyAgICAgICAgQ2F1c2VzIGFzc2VydGlvbiBhbmQgdGVzdCBmYWlsdXJlcyBpbiBydW4tamF2
YXNjcmlwdGNvcmUtdGVzdHMKKyAgICAgICAgb24gV2luZG93cyAoUmVxdWVzdGVkIGJ5IGFyb2Jl
biBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGZhc3QvanMvanMtY29uc3RydWN0b3JzLXVzZS1j
b3JyZWN0LWdsb2JhbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9qcy9q
cy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9qcy9yZXNvdXJjZXMvanMtY29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC5q
czogUmVtb3ZlZC4KKwogMjAxMS0wMy0yOSAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmls
ZS5jb20uY24+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3Qt
Z2xvYmFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvanMtY29uc3RydWN0b3Jz
LXVzZS1jb3JyZWN0LWdsb2JhbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDVkMmUxMWJlZTA2OWEyZTMxYzMyNzcwYjE1NGExNzA4NzE4YmJiOTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9q
cy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDM0ICswLDAgQEAKLVRlc3QgdG8gZW5zdXJlIHRoYXQganMgY29uc3RydWN0
b3JzIGNyZWF0ZSBvYmplY3RzIHdpdGggdGhlIGNvcnJlY3QgY29uc3RydWN0b3IKLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgbmV3IG90aGVyR2xvYmFsLk9iamVjdCgpIGlu
c3RhbmNlb2Ygb3RoZXJHbG9iYWwuT2JqZWN0IGlzIHRydWUKLVBBU1Mgb3RoZXJHbG9iYWwuT2Jq
ZWN0KCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5PYmplY3QgaXMgdHJ1ZQotUEFTUyBuZXcgb3Ro
ZXJHbG9iYWwuRnVuY3Rpb24oKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkZ1bmN0aW9uIGlzIHRy
dWUKLVBBU1Mgb3RoZXJHbG9iYWwuRnVuY3Rpb24oKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLkZ1
bmN0aW9uIGlzIHRydWUKLVBBU1MgbmV3IG90aGVyR2xvYmFsLkFycmF5KCkgaW5zdGFuY2VvZiBv
dGhlckdsb2JhbC5BcnJheSBpcyB0cnVlCi1QQVNTIG90aGVyR2xvYmFsLkFycmF5KCkgaW5zdGFu
Y2VvZiBvdGhlckdsb2JhbC5BcnJheSBpcyB0cnVlCi1QQVNTIG5ldyBvdGhlckdsb2JhbC5OdW1i
ZXIoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLk51bWJlciBpcyB0cnVlCi1QQVNTIG5ldyBvdGhl
ckdsb2JhbC5TdHJpbmcoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlN0cmluZyBpcyB0cnVlCi1Q
QVNTIG5ldyBvdGhlckdsb2JhbC5Cb29sZWFuKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5Cb29s
ZWFuIGlzIHRydWUKLVBBU1MgbmV3IG90aGVyR2xvYmFsLlJlZ0V4cCgpIGluc3RhbmNlb2Ygb3Ro
ZXJHbG9iYWwuUmVnRXhwIGlzIHRydWUKLVBBU1Mgb3RoZXJHbG9iYWwuUmVnRXhwKCkgaW5zdGFu
Y2VvZiBvdGhlckdsb2JhbC5SZWdFeHAgaXMgdHJ1ZQotUEFTUyBuZXcgb3RoZXJHbG9iYWwuRGF0
ZSgpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuRGF0ZSBpcyB0cnVlCi1QQVNTIG5ldyBvdGhlckds
b2JhbC5FcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuRXJyb3IgaXMgdHJ1ZQotUEFTUyBv
dGhlckdsb2JhbC5FcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuRXJyb3IgaXMgdHJ1ZQot
UEFTUyBuZXcgb3RoZXJHbG9iYWwuUmFuZ2VFcnJvcigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwu
UmFuZ2VFcnJvciBpcyB0cnVlCi1QQVNTIG90aGVyR2xvYmFsLlJhbmdlRXJyb3IoKSBpbnN0YW5j
ZW9mIG90aGVyR2xvYmFsLlJhbmdlRXJyb3IgaXMgdHJ1ZQotUEFTUyBuZXcgb3RoZXJHbG9iYWwu
UmVmZXJlbmNlRXJyb3IoKSBpbnN0YW5jZW9mIG90aGVyR2xvYmFsLlJlZmVyZW5jZUVycm9yIGlz
IHRydWUKLVBBU1Mgb3RoZXJHbG9iYWwuUmVmZXJlbmNlRXJyb3IoKSBpbnN0YW5jZW9mIG90aGVy
R2xvYmFsLlJlZmVyZW5jZUVycm9yIGlzIHRydWUKLVBBU1MgbmV3IG90aGVyR2xvYmFsLlN5bnRh
eEVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5TeW50YXhFcnJvciBpcyB0cnVlCi1QQVNT
IG90aGVyR2xvYmFsLlN5bnRheEVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5TeW50YXhF
cnJvciBpcyB0cnVlCi1QQVNTIG5ldyBvdGhlckdsb2JhbC5UeXBlRXJyb3IoKSBpbnN0YW5jZW9m
IG90aGVyR2xvYmFsLlR5cGVFcnJvciBpcyB0cnVlCi1QQVNTIG90aGVyR2xvYmFsLlR5cGVFcnJv
cigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuVHlwZUVycm9yIGlzIHRydWUKLVBBU1MgbmV3IG90
aGVyR2xvYmFsLlVSSUVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5VUklFcnJvciBpcyB0
cnVlCi1QQVNTIG90aGVyR2xvYmFsLlVSSUVycm9yKCkgaW5zdGFuY2VvZiBvdGhlckdsb2JhbC5V
UklFcnJvciBpcyB0cnVlCi1QQVNTIG5ldyBvdGhlckdsb2JhbC5JbWFnZSgpIGluc3RhbmNlb2Yg
b3RoZXJHbG9iYWwuSW1hZ2UgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvanMt
Y29uc3RydWN0b3JzLXVzZS1jb3JyZWN0LWdsb2JhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBkZWM2OTFlYTNiY2UwZjkzZjhmMDc3ZmMzY2Q1MTQ1NzRhNTgzN2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9qcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xvYmFsLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08aWZyYW1lPjwvaWZyYW1l
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3QtZ2xv
YmFsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLWNvbnN0cnVjdG9ycy11c2UtY29ycmVjdC1nbG9iYWwuanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9qcy1jb25zdHJ1Y3RvcnMtdXNlLWNvcnJlY3Qt
Z2xvYmFsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjhjYjA4NTU1NmUzNWZj
MmFmYmVmMjFiMGEzZjBjYmU3ZjE2ZTgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2pzLWNvbnN0cnVj
dG9ycy11c2UtY29ycmVjdC1nbG9iYWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBA
Ci1kZXNjcmlwdGlvbigiVGVzdCB0byBlbnN1cmUgdGhhdCBqcyBjb25zdHJ1Y3RvcnMgY3JlYXRl
IG9iamVjdHMgd2l0aCB0aGUgY29ycmVjdCBjb25zdHJ1Y3RvciIpOwotCi12YXIgb3RoZXJHbG9i
YWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0uY29udGVudFdp
bmRvdzsKLXZhciBjb25zdHJ1Y3RvcnMgPSBbIk9iamVjdCIsICJGdW5jdGlvbiIsICJBcnJheSIs
ICJOdW1iZXIiLCAiU3RyaW5nIiwgIkJvb2xlYW4iLCAiUmVnRXhwIiwgIkRhdGUiLCAiRXJyb3Ii
LCAiUmFuZ2VFcnJvciIsICJSZWZlcmVuY2VFcnJvciIsICJTeW50YXhFcnJvciIsICJUeXBlRXJy
b3IiLCAiVVJJRXJyb3IiLCAiSW1hZ2UiXTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCBjb25zdHJ1
Y3RvcnMubGVuZ3RoOyBpKyspIHsKLSAgICBzaG91bGRCZVRydWUoIm5ldyBvdGhlckdsb2JhbC4i
ICsgY29uc3RydWN0b3JzW2ldICsgIigpIGluc3RhbmNlb2Ygb3RoZXJHbG9iYWwuIiArIGNvbnN0
cnVjdG9yc1tpXSk7Ci0gICAgdHJ5IHsKLSAgICAgICAgaWYgKCh0eXBlb2YgKG90aGVyR2xvYmFs
W2NvbnN0cnVjdG9yc1tpXV0oKSkpID09PSAib2JqZWN0IiB8fCAodHlwZW9mIChvdGhlckdsb2Jh
bFtjb25zdHJ1Y3RvcnNbaV1dKCkpKSA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgib3RoZXJHbG9iYWwuIiArIGNvbnN0cnVjdG9yc1tpXSArICIoKSBpbnN0YW5jZW9m
IG90aGVyR2xvYmFsLiIgKyBjb25zdHJ1Y3RvcnNbaV0pOwotICAgIH0gY2F0Y2goZSkgewotICAg
IAotICAgIH0KLX0KLQotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5kZXggYWU0MDgzMGE1ZDc0NTA3MDNhY2Y5MzNk
ZjYwMjQwNjc4NThiNzRmNS4uMzZjYTMzOGI3MTljYjYzMTAwZTdhNDc0MmE2MWE0ZGIyMDQwMmQ3
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTEyNCw3
ICsxMjQsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYg
Y3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25lZCBwYQogICAgICAgICBhcmdzLmFwcGVuZChq
c1N0cmluZyhleGVjLCBwYXJhbWV0ZXJOYW1lc1tpXS0+dXN0cmluZygpKSk7CiAgICAgYXJncy5h
cHBlbmQoanNTdHJpbmcoZXhlYywgYm9keS0+dXN0cmluZygpKSk7CiAKLSAgICBKU09iamVjdCog
cmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCBhcmdzLCBuYW1lSUQsIHNvdXJjZVVSTC0+dXN0cmluZygpLCBzdGFydGluZ0xpbmVOdW1i
ZXIpOworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhcmdz
LCBuYW1lSUQsIHNvdXJjZVVSTC0+dXN0cmluZygpLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBpZiAoZXhjZXB0aW9uKQogICAg
ICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsKQEAg
LTIwNyw3ICsyMDcsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VSZWdFeHAoSlNDb250ZXh0
UmVmIGN0eCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVgogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYXJndW1lbnRDb3VudDsgKytpKQogICAgICAgICBhcmdMaXN0LmFwcGVuZCh0
b0pTKGV4ZWMsIGFyZ3VtZW50c1tpXSkpOwogCi0gICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0
cnVjdFJlZ0V4cChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksICBhcmdMaXN0KTsK
KyAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0UmVnRXhwKGV4ZWMsIGFyZ0xpc3QpOwog
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBpZiAoZXhjZXB0aW9uKQog
ICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IHRvUmVmKGV4ZWMsIGV4ZWMtPmV4Y2VwdGlvbigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFjMjI0YTViMWUzYTIzM2VhNGVlYWYyZGM5NTk5
ZGM5MTMxNjI1YWMuLjk2ZWQxZTUxYTdjOTBhMjA1NzRiYmQ4MDFlZDdkZjYyZGIwYjk3MjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDExLTAzLTI5ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByODIxNzMuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzgyMTczCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NzMzMworCisgICAgICAgIENhdXNlcyBhc3NlcnRpb24gYW5kIHRlc3QgZmFpbHVy
ZXMgaW4gcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzCisgICAgICAgIG9uIFdpbmRvd3MgKFJlcXVl
c3RlZCBieSBhcm9iZW4gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYu
Y3BwOgorICAgICAgICAoSlNPYmplY3RNYWtlRnVuY3Rpb24pOgorICAgICAgICAoSlNPYmplY3RN
YWtlUmVnRXhwKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAg
ICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAqIHJ1bnRp
bWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEFycmF5V2l0
aFNpemVRdWlyayk6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RCb29sZWFuKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0
Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5D
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0RGF0ZSk6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFu
Y2UuY3BwOgorICAgICAgICAoSlNDOjpEYXRlSW5zdGFuY2U6OkRhdGVJbnN0YW5jZSk6CisgICAg
ICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChKU0M6OmNhbGxFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRo
RnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlvbkNvbnN0cnVj
dG9yKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlND
OjpKU0NlbGw6OnB1dCk6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkpOgor
ICAgICAgICAoSlNDOjpKU0NlbGw6OnRvVGhpc09iamVjdCk6CisgICAgICAgIChKU0M6OkpTQ2Vs
bDo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6
OkpTQ2VsbDo6SlNWYWx1ZTo6dG9PYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OnRvT2JqZWN0KToKKyAgICAg
ICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnRvT2JqZWN0KToKKyAgICAgICAgKiBydW50
aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAg
IChKU0M6OlN0cmluZ09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRv
T2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvVGhpc09iamVjdCk6CisgICAgICAg
ICogcnVudGltZS9KU1N0cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTVmFsdWU6OnRvT2JqZWN0U2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpK
U1ZhbHVlOjp0b1RoaXNPYmplY3RTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnN5
bnRoZXNpemVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAq
IHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RX
aXRoTnVtYmVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0TnVtYmVyKToKKyAgICAgICAgKiBydW50aW1lL051
bWJlck9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RPYmplY3QpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RX
aXRoT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsT2JqZWN0Q29uc3RydWN0
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
SlNDOjpjb25zdHJ1Y3RSZWdFeHApOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoUmVnRXhw
Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjYWxsUmVnRXhwQ29uc3RydWN0b3IpOgorICAg
ICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aFN0cmluZ0Nv
bnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDExLTAz
LTI5ICBCZW4gVGF5bG9yICA8YmVudGF5bG9yLnNvbHg4NkBnbWFpbC5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAppbmRleCBlMjY0N2QxYTMxZWJkNzgwYTQ0YzcxYzY2ZmUwNDRkYjRiYTc5MTg0Li5m
ZDc3MTkzYTg4ZDNkNmYzOWRhNGExMjg4MzE1OTAzNGQ5ZTA1OWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTEyMiw2ICsxMjIsNyBAQCBfX1pOM0pTQzEx
Y3JlYXRlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmluZ0UKIF9fWk4zSlNDMTFyZWdF
eHBGbGFnc0VSS05TXzdVU3RyaW5nRQogX19aTjNKU0MxMkRhdGVJbnN0YW5jZTZzX2luZm9FCiBf
X1pOM0pTQzEyRGF0ZUluc3RhbmNlQzFFUE5TXzlFeGVjU3RhdGVFTjNXVEYxN05vbk51bGxQYXNz
UmVmUHRySU5TXzlTdHJ1Y3R1cmVFRUVkCitfX1pOM0pTQzEyRGF0ZUluc3RhbmNlQzFFUE5TXzlF
eGVjU3RhdGVFZAogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEwQ2xpZW50RGF0YUQyRXYKIF9fWk4z
SlNDMTJKU0dsb2JhbERhdGExMWpzQXJyYXlWUHRyRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTEy
Y3JlYXRlTGVha2VkRU5TXzE1VGhyZWFkU3RhY2tUeXBlRQpAQCAtMTgxLDcgKzE4Miw3IEBAIF9f
Wk4zSlNDMTZjcmVhdGVSYW5nZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCiBf
X1pOM0pTQzE2dGhyb3dTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTdCeXRl
Y29kZUdlbmVyYXRvcjIxc2V0RHVtcHNHZW5lcmF0ZWRDb2RlRWIKIF9fWk4zSlNDMTdQcm9wZXJ0
eU5hbWVBcnJheTNhZGRFUE4zV1RGMTBTdHJpbmdJbXBsRQotX19aTjNKU0MxN2NvbnN0cnVjdEZ1
bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVJLTlNfN0FyZ0xpc3RF
UktOU18xMElkZW50aWZpZXJFUktOU183VVN0cmluZ0VpCitfX1pOM0pTQzE3Y29uc3RydWN0RnVu
Y3Rpb25FUE5TXzlFeGVjU3RhdGVFUktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05T
XzdVU3RyaW5nRWkKIF9fWk4zSlNDMTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQogX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjExc2V0
V3JpdGFibGVFYgpAQCAtNTM0LDcgKzUzNSw3IEBAIF9fWk5LM0pTQzZKU0NlbGwxMXRvUHJpbWl0
aXZlRVBOU185RXhlY1N0YXRlRU5TXzIyUHJlZmVycmVkUHJpbWl0aXZlVHlwZUUKIF9fWk5LM0pT
QzZKU0NlbGwxMnRvVGhpc09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGwx
NGlzR2V0dGVyU2V0dGVyRXYKIF9fWk5LM0pTQzZKU0NlbGw4dG9OdW1iZXJFUE5TXzlFeGVjU3Rh
dGVFCi1fX1pOSzNKU0M2SlNDZWxsOHRvT2JqZWN0RVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xv
YmFsT2JqZWN0RQorX19aTkszSlNDNkpTQ2VsbDh0b09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9f
Wk5LM0pTQzZKU0NlbGw4dG9TdHJpbmdFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2SlNDZWxs
OWdldFN0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzZKU0NlbGw5Z2V0U3RyaW5nRVBO
U185RXhlY1N0YXRlRVJOU183VVN0cmluZ0UKQEAgLTU0Miw3ICs1NDMsNyBAQCBfX1pOSzNKU0M2
SlNDZWxsOWdldFVJbnQzMkVSagogX19aTkszSlNDNkpTQ2VsbDl0b0Jvb2xlYW5FUE5TXzlFeGVj
U3RhdGVFCiBfX1pOSzNKU0M3QXJnTGlzdDhnZXRTbGljZUVpUlMwXwogX19aTkszSlNDN0pTQXJy
YXkxMnN1YmNsYXNzRGF0YUV2Ci1fX1pOSzNKU0M3SlNWYWx1ZTE2dG9PYmplY3RTbG93Q2FzZUVQ
TlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKK19fWk5LM0pTQzdKU1ZhbHVlMTZ0
b09iamVjdFNsb3dDYXNlRVBOU185RXhlY1N0YXRlRQogX19aTkszSlNDN0pTVmFsdWUxOXN5bnRo
ZXNpemVQcm90b3R5cGVFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTIwdG9UaGlz
T2JqZWN0U2xvd0Nhc2VFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTl0b0ludGVn
ZXJFUE5TXzlFeGVjU3RhdGVFCkBAIC01NTUsNyArNTU2LDcgQEAgX19aTkszSlNDOEpTT2JqZWN0
MTJkZWZhdWx0VmFsdWVFUE5TXzlFeGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQcmltaXRpdmVUeXBl
RQogX19aTkszSlNDOEpTT2JqZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pO
SzNKU0M4SlNPYmplY3QxOHRvU3RyaWN0VGhpc09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5L
M0pTQzhKU09iamVjdDh0b051bWJlckVQTlNfOUV4ZWNTdGF0ZUUKLV9fWk5LM0pTQzhKU09iamVj
dDh0b09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKK19fWk5LM0pT
QzhKU09iamVjdDh0b09iamVjdEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzhKU09iamVjdDh0
b1N0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk5LM0pTQzhKU09iamVjdDljbGFzc05hbWVFdgog
X19aTkszSlNDOEpTT2JqZWN0OXRvQm9vbGVhbkVQTlNfOUV4ZWNTdGF0ZUUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggZDdjZGRm
NGY1OGI4OGMzZTUyMmY3YzUxMWI5NzYwMTM4M2FlMzI0NC4uNjIzNzQ0MGU4ZTllZDczNWQ5MmI5
NDkxMTU2ZWFkMDFhZWRjZDczYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTMsNiArMyw3IEBAIEVYUE9SVFMKICAgICA/PzBD
U3RyaW5nQFdURkBAUUFFQFBCREBaCiAgICAgPz8wQ1N0cmluZ0BXVEZAQFFBRUBQQkRJQFoKICAg
ICA/PzBDb2xsYXRvckBXVEZAQFFBRUBQQkRAWgorICAgID8/MERhdGVJbnN0YW5jZUBKU0NAQFFB
RUBQQVZFeGVjU3RhdGVAMUBOQFoKICAgICA/PzBEYXRlSW5zdGFuY2VASlNDQEBRQUVAUEFWRXhl
Y1N0YXRlQDFAVj8kTm9uTnVsbFBhc3NSZWZQdHJAVlN0cnVjdHVyZUBKU0NAQEBXVEZAQE5AWgog
ICAgID8/MERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2tASlNDQEBRQUVAUEFWSGVhcEAxQEBaCiAg
ICAgPz8wRHJvcEFsbExvY2tzQEpTTG9ja0BKU0NAQFFBRUBXNEpTTG9ja0JlaGF2aW9yQDJAQFoK
QEAgLTkzLDcgKzk0LDcgQEAgRVhQT1JUUwogICAgID9jb25zdHJ1Y3RBcnJheUBKU0NAQFlBUEFW
SlNBcnJheUAxQFBBVkV4ZWNTdGF0ZUAxQEFCVkFyZ0xpc3RAMUBAWgogICAgID9jb25zdHJ1Y3RF
bXB0eUFycmF5QEpTQ0BAWUFQQVZKU0FycmF5QDFAUEFWRXhlY1N0YXRlQDFAQFoKICAgICA/Y29u
c3RydWN0RW1wdHlPYmplY3RASlNDQEBZQVBBVkpTT2JqZWN0QDFAUEFWRXhlY1N0YXRlQDFAQFoK
LSAgICA/Y29uc3RydWN0RnVuY3Rpb25ASlNDQEBZQVBBVkpTT2JqZWN0QDFAUEFWRXhlY1N0YXRl
QDFAUEFWSlNHbG9iYWxPYmplY3RAMUBBQlZBcmdMaXN0QDFAQUJWSWRlbnRpZmllckAxQEFCVlVT
dHJpbmdAMUBIQFoKKyAgICA/Y29uc3RydWN0RnVuY3Rpb25ASlNDQEBZQVBBVkpTT2JqZWN0QDFA
UEFWRXhlY1N0YXRlQDFAQUJWQXJnTGlzdEAxQEFCVklkZW50aWZpZXJAMUBBQlZVU3RyaW5nQDFA
SEBaCiAgICAgP2NvbnZlcnRVVEYxNlRvVVRGOEBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lv
blJlc3VsdEAxMkBQQVBCX1dQQl9XUEFQQURQQURfTkBaCiAgICAgP2NvbnZlcnRVVEY4VG9VVEYx
NkBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCRFBCRFBBUEFfV1BB
X1dfTkBaCiAgICAgP2NyZWF0ZUBCeXRlQXJyYXlAV1RGQEBTQT9BVj8kUGFzc1JlZlB0ckBWQnl0
ZUFycmF5QFdURkBAQDJASUBaCkBAIC0zMzUsOSArMzM2LDEwIEBAIEVYUE9SVFMKICAgICA/dG9O
dW1iZXJASlNDZWxsQEpTQ0BAVUJFTlBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP3RvTnVtYmVyQEpT
T2JqZWN0QEpTQ0BAVUJFTlBBVkV4ZWNTdGF0ZUAyQEBaCiAgICAgP3RvTnVtYmVyQEpTU3RyaW5n
QEpTQ0BARUJFTlBBVkV4ZWNTdGF0ZUAyQEBaCi0gICAgP3RvT2JqZWN0QEpTQ2VsbEBKU0NAQFVC
RVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBAWgotICAg
ID90b09iamVjdEBKU09iamVjdEBKU0NAQFVCRVBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xv
YmFsT2JqZWN0QDJAQFoKLSAgICA/dG9PYmplY3RTbG93Q2FzZUBKU1ZhbHVlQEpTQ0BAQUJFUEFW
SlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBQQVZKU0dsb2JhbE9iamVjdEAyQEBaCisgICAgP3Rv
T2JqZWN0QEpTQ2VsbEBKU0NAQFVCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQFoKKyAg
ICA/dG9PYmplY3RASlNPYmplY3RASlNDQEBVQkVQQVYxMkBQQVZFeGVjU3RhdGVAMkBAWgorICAg
ID90b09iamVjdEBKU1N0cmluZ0BKU0NAQEVCRVBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJA
QFoKKyAgICA/dG9PYmplY3RTbG93Q2FzZUBKU1ZhbHVlQEpTQ0BAQUJFUEFWSlNPYmplY3RAMkBQ
QVZFeGVjU3RhdGVAMkBAWgogICAgID90b1ByaW1pdGl2ZUBKU0NlbGxASlNDQEBVQkU/QVZKU1Zh
bHVlQDJAUEFWRXhlY1N0YXRlQDJAVzRQcmVmZXJyZWRQcmltaXRpdmVUeXBlQDJAQFoKICAgICA/
dG9QcmltaXRpdmVASlNTdHJpbmdASlNDQEBFQkU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0YXRlQDJA
VzRQcmVmZXJyZWRQcmltaXRpdmVUeXBlQDJAQFoKICAgICA/dG9TdHJpY3RUaGlzT2JqZWN0QEpT
T2JqZWN0QEpTQ0BAVUJFP0FWSlNWYWx1ZUAyQFBBVkV4ZWNTdGF0ZUAyQEBaCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCmluZGV4IGI1ZGY1M2YyYWExOGNiNzIxYzU3Nzc0NWE4MjZhOTMxOTRhMDcxOGUuLmRiZGJi
NWJmM2M0MjQzYzc4MTE4ODliNDdhY2Q4YjA1MDA1M2E4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBA
IC0yNDgsNyArMjQ4LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFBy
b2dyYW1Ob2RlKiBwcm9ncmFtTm9kZSwgU2NvcGVDaGFpbk5vZGUqIHMKICAgICBTeW1ib2xUYWJs
ZTo6aXRlcmF0b3IgZW5kID0gc3ltYm9sVGFibGUtPmVuZCgpOwogICAgIGZvciAoU3ltYm9sVGFi
bGU6Oml0ZXJhdG9yIGl0ID0gc3ltYm9sVGFibGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
ICAgICAgICAgcmVnaXN0ZXJGb3IoaXQtPnNlY29uZC5nZXRJbmRleCgpKS5zZXRJbmRleChpdC0+
c2Vjb25kLmdldEluZGV4KCkgKyBtX2dsb2JhbFZhclN0b3JhZ2VPZmZzZXQpOwotCisgICAgICAg
IAogICAgIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyIG9wdGltaXplcigqbV9nbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QpOwogCiAgICAgY29uc3QgVmFyU3RhY2smIHZhclN0YWNrID0gcHJvZ3Jh
bU5vZGUtPnZhclN0YWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuY3BwCmluZGV4IGUwZjRiMjNmNDZiNDc4MmViMzhmMWViNTE3YWRj
NGRhNzQ3OTA1NjYuLmFmMmFmYzZkNDAwZTRlNzJkNTlmMzIyNGU3MjE1MDVmNDhjMzQ3MTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
Y3BwCkBAIC01MiwxOCArNTIsMTYgQEAgQXJyYXlDb25zdHJ1Y3Rvcjo6QXJyYXlDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKIAogc3RhdGlj
IGlubGluZSBKU09iamVjdCogY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0
KCk7Ci0KICAgICAvLyBhIHNpbmdsZSBudW1lcmljIGFyZ3VtZW50IGRlbm90ZXMgdGhlIGFycmF5
IHNpemUgKCEpCiAgICAgaWYgKGFyZ3Muc2l6ZSgpID09IDEgJiYgYXJncy5hdCgwKS5pc051bWJl
cigpKSB7CiAgICAgICAgIHVpbnQzMl90IG4gPSBhcmdzLmF0KDApLnRvVUludDMyKGV4ZWMpOwog
ICAgICAgICBpZiAobiAhPSBhcmdzLmF0KDApLnRvTnVtYmVyKGV4ZWMpKQogICAgICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiQXJyYXkgc2l6
ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iKSk7Ci0gICAgICAgIHJl
dHVybiBuZXcgKGV4ZWMpIEpTQXJyYXkoZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZSgpLCBu
LCBDcmVhdGVJbml0aWFsaXplZCk7CisgICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTQXJyYXko
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVjdHVyZSgpLCBuLCBDcmVhdGVJ
bml0aWFsaXplZCk7CiAgICAgfQogCiAgICAgLy8gb3RoZXJ3aXNlIHRoZSBhcnJheSBpcyBjb25z
dHJ1Y3RlZCB3aXRoIHRoZSBhcmd1bWVudHMgaW4gaXQKLSAgICByZXR1cm4gbmV3IChleGVjKSBK
U0FycmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZSgp
LCBhcmdzKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBKU0FycmF5KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVjdHVyZSgpLCBhcmdzKTsK
IH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEFy
cmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggZTViMGYzZDgzZjZl
Y2Y4MjFmMGRiYWQxNzlhODZjNTA2MTIzMzg0Zi4uMjFlZjViYmRlZDNhMTAwYTk4YjQzZjYzYjll
MjI5M2Y1NmUyZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC00MCw3ICs0MCw3IEBAIEJvb2xlYW5Db25zdHJ1
Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iCiAvLyBFQ01BIDE1LjYuMgogSlNPYmplY3QqIGNvbnN0cnVjdEJvb2xlYW4oRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEJvb2xlYW5PYmplY3Qq
IG9iaiA9IG5ldyAoZXhlYykgQm9vbGVhbk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGFzSW50
ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLT5ib29sZWFuT2Jq
ZWN0U3RydWN0dXJlKCkpOworICAgIEJvb2xlYW5PYmplY3QqIG9iaiA9IG5ldyAoZXhlYykgQm9v
bGVhbk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBvYmotPnNldEludGVybmFsVmFsdWUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc0Jvb2xlYW4oYXJncy5hdCgwKS50b0Jvb2xlYW4oZXhlYykp
KTsKICAgICByZXR1cm4gb2JqOwogfQpAQCAtNjksOSArNjksOSBAQCBDYWxsVHlwZSBCb29sZWFu
Q29uc3RydWN0b3I6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICByZXR1cm4g
Q2FsbFR5cGVIb3N0OwogfQogCi1KU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlh
dGVCb29sZWFuKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBpbW1lZGlhdGVCb29sZWFuVmFsdWUpCitKU09iamVjdCogY29uc3RydWN0Qm9vbGVh
bkZyb21JbW1lZGlhdGVCb29sZWFuKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBpbW1lZGlhdGVC
b29sZWFuVmFsdWUpCiB7Ci0gICAgQm9vbGVhbk9iamVjdCogb2JqID0gbmV3IChleGVjKSBCb29s
ZWFuT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5ib29sZWFuT2JqZWN0
U3RydWN0dXJlKCkpOworICAgIEJvb2xlYW5PYmplY3QqIG9iaiA9IG5ldyAoZXhlYykgQm9vbGVh
bk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
Ym9vbGVhbk9iamVjdFN0cnVjdHVyZSgpKTsKICAgICBvYmotPnNldEludGVybmFsVmFsdWUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBpbW1lZGlhdGVCb29sZWFuVmFsdWUpOwogICAgIHJldHVybiBvYmo7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1
Y3Rvci5oCmluZGV4IDI1NTBiM2IzNTQ3ZDZhMDljMzJmMDUwZTI5YmVlNzZmZTk2YzIyZmYuLjBm
M2VmYTdhODBjMzFhMjhlMmNiZTg4ZDgyZTk4OTE1MmY2ODhkODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBAIC0zNiw3ICsz
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxE
YXRhKENhbGxEYXRhJik7CiAgICAgfTsKIAotICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFu
RnJvbUltbWVkaWF0ZUJvb2xlYW4oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
KTsKKyAgICBKU09iamVjdCogY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKEV4
ZWNTdGF0ZSosIEpTVmFsdWUpOwogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RCb29sZWFuKEV4ZWNT
dGF0ZSosIGNvbnN0IEFyZ0xpc3QmKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBlMTky
NjdhOTE5MDg2M2FiZDZjOGEwNTM4MGNmZWY1NWY4OWI3M2EwLi5lZmFlYjBmMTIxYzQxNzdiM2Fm
NmYzZGM2OTcwMzJiZjk2M2JjNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBKU09iamVjdCog
Y29uc3RydWN0RGF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gbmV3IChleGVjKSBEYXRlSW5zdGFuY2UoZXhlYywg
YXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCktPmRhdGVT
dHJ1Y3R1cmUoKSwgdmFsdWUpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIERhdGVJbnN0YW5jZShl
eGVjLCB2YWx1ZSk7CiB9CiAgICAgCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCmluZGV4IDc0YWRkYTQ3
ZmFiM2ZhNmUxMTJiODhhNWY3NzZjNDc2NzYxODEzY2YuLjIwNGI4YWMyY2VjMGUzZWFhNzBmMTE5
NTZlN2I2MTA5ZjU2NDRiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlLmNwcApAQCAtNDgsNiArNDgsMTMgQEAgRGF0ZUluc3RhbmNlOjpEYXRlSW5z
dGFuY2UoRXhlY1N0YXRlKiBleGVjLCBOb25OdWxsUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVj
dHUKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIodGlt
ZUNsaXAodGltZSkpKTsKIH0KIAorRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRl
KiBleGVjLCBkb3VibGUgdGltZSkKKyAgICA6IEpTV3JhcHBlck9iamVjdChleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1Y3R1cmUoKSkKK3sKKyAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOworICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051
bWJlcih0aW1lQ2xpcCh0aW1lKSkpOworfQorCiBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0
ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShFeGVjU3RhdGUqIGV4ZWMpIGNv
bnN0CiB7CiAgICAgZG91YmxlIG1pbGxpID0gaW50ZXJuYWxOdW1iZXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggZDBkY2YwYmMzNDZkZDc3
Mjk1YzMxMDA5MTMxNjYzZDM0MjIyZjJhYy4uNmM5Nzc4OTdkOWRhY2JlN2ZkMWFkMDdkOWIzNWMy
ZmVlYWNhNzIyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3Rh
bmNlLmgKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBEYXRl
SW5zdGFuY2UgOiBwdWJsaWMgSlNXcmFwcGVyT2JqZWN0IHsKICAgICBwdWJsaWM6CisgICAgICAg
IERhdGVJbnN0YW5jZShFeGVjU3RhdGUqLCBkb3VibGUpOwogICAgICAgICBEYXRlSW5zdGFuY2Uo
RXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJlPiwgZG91YmxlKTsKICAgICAg
ICAgZXhwbGljaXQgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIE5vbk51bGxQYXNzUmVmUHRyPFN0
cnVjdHVyZT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
Q29uc3RydWN0b3IuY3BwCmluZGV4IDdmNGY4MmNlYzVlYmM0NThhYWQ5NDdmNGEzODg3YTM2NjFh
NDQwYjYuLjJlNTNiOTU0MDBlNzJjYWVhMTM4MGVjZTgxYjVkNTVmYWQ4Mjk1ZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCkBA
IC00Miw3ICs0Miw3IEBAIEVycm9yQ29uc3RydWN0b3I6OkVycm9yQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+YXJndW1lbnRDb3VudCgp
ID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgpOwotICAgIFN0cnVjdHVyZSogZXJy
b3JTdHJ1Y3R1cmUgPSBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxP
YmplY3QoKS0+ZXJyb3JTdHJ1Y3R1cmUoKTsKKyAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJl
ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5lcnJvclN0cnVjdHVyZSgpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGV4ZWMsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKQEAgLTU1LDcgKzU1LDcgQEAgQ29uc3RydWN0VHlwZSBF
cnJvckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJyb3JDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhlYy0+
YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkgOiBqc1VuZGVmaW5lZCgpOwotICAg
IFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2Fs
bGVlKCkpLT5nbG9iYWxPYmplY3QoKS0+ZXJyb3JTdHJ1Y3R1cmUoKTsKKyAgICBTdHJ1Y3R1cmUq
IGVycm9yU3RydWN0dXJlID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5lcnJvclN0cnVj
dHVyZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGV4ZWMsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggYTlm
MGEwNjYyZDlmZTA4Nzg1NWY4YjQxYzFkZTdkMjhkNGMxOWFiYS4uNTczYmQ1YjRlODlkYzIzNDQ5
NmM1YjRmMDA3NDBkOTg1NDI5NjUzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgRnVu
Y3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWwKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9i
YWxPYmplY3QoKSwgYXJncykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0
RnVuY3Rpb24oZXhlYywgYXJncykpOwogfQogCiBDb25zdHJ1Y3RUeXBlIEZ1bmN0aW9uQ29uc3Ry
dWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKQEAg
LTYxLDcgKzYxLDcgQEAgQ29uc3RydWN0VHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhc0ludGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVl
KCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0RnVuY3Rpb24oZXhlYywgYXJncykpOwogfQogCiAvLyBFQ01BIDE1LjMuMSBUaGUg
RnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVuY3Rpb24KQEAgLTcyLDcgKzcyLDcg
QEAgQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEmIGNh
bGxEYXRhKQogfQogCiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IKLUpT
T2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1
bmN0aW9uTmFtZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlcikKK0pT
T2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3Qm
IGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFtZSwgY29uc3QgVVN0cmluZyYgc291
cmNlVVJMLCBpbnQgbGluZU51bWJlcikKIHsKICAgICAvLyBGdW5jdGlvbnMgbmVlZCB0byBoYXZl
IGEgc3BhY2UgZm9sbG93aW5nIHRoZSBvcGVuaW5nIHsgZHVlIHRvIGZvciB3ZWIgY29tcGF0aWJp
bGl0eQogICAgIC8vIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQzNTAKQEAgLTk2LDYgKzk2LDcgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QKICAgICAgICAg
cHJvZ3JhbSA9IGJ1aWxkZXIudG9VU3RyaW5nKCk7CiAgICAgfQogCisgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEgPSBnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKTsKICAgICBT
b3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlVVJMLCBsaW5lTnVt
YmVyKTsKICAgICBKU09iamVjdCogZXhjZXB0aW9uID0gMDsKQEAgLTExMCw5ICsxMTEsOSBAQCBK
U09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdAogfQogCiAvLyBFQ01BIDE1LjMuMiBUaGUgRnVuY3Rpb24g
Q29uc3RydWN0b3IKLUpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCitKU09i
amVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBh
cmdzKQogewotICAgIHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3Qs
IGFyZ3MsIElkZW50aWZpZXIoZXhlYywgImFub255bW91cyIpLCBVU3RyaW5nKCksIDEpOworICAg
IHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvbihleGVjLCBhcmdzLCBJZGVudGlmaWVyKGV4ZWMsICJh
bm9ueW1vdXMiKSwgVVN0cmluZygpLCAxKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgK
aW5kZXggN2YyMWIyMGZjNTFhNjE3MTg1M2QzZGViZGVmY2E4YTA4NDAyMmJmZS4uNmFmNDg2MTFk
N2IyOGYyOTVhN2U1YzdkNGY1M2VmZWYyN2UyYjhlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAtMzYsOCArMzYsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShD
YWxsRGF0YSYpOwogICAgIH07CiAKLSAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBBcmdMaXN0JiwgY29uc3QgSWRlbnRpZmll
ciYgZnVuY3Rpb25OYW1lLCBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVy
KTsKLSAgICBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBjb25zdCBBcmdMaXN0Jik7CisgICAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9u
KEV4ZWNTdGF0ZSosIGNvbnN0IEFyZ0xpc3QmLCBjb25zdCBJZGVudGlmaWVyJiBmdW5jdGlvbk5h
bWUsIGNvbnN0IFVTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIpOworICAgIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqLCBjb25zdCBBcmdMaXN0Jik7CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNw
cAppbmRleCBjZTdmZTIyNzhiM2U2NTgxYTRiNDkwZTc2YzQ0YzBjMTZjYTMyYzgxLi45YWNiNzc3
YjYwNmE5ZTQzMWFjNDA5Mjg0NTBiOGZjZjc2NTdiZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBib29sIEpTQ2VsbDo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRp
ZmllciwgUAogICAgIC8vIFRoaXMgaXMgbm90IGEgZ2VuZXJhbCBwdXJwb3NlIGltcGxlbWVudGF0
aW9uIG9mIGdldE93blByb3BlcnR5U2xvdC4KICAgICAvLyBJdCBzaG91bGQgb25seSBiZSBjYWxs
ZWQgYnkgSlNWYWx1ZTo6Z2V0LgogICAgIC8vIEl0IGNhbGxzIGdldFByb3BlcnR5U2xvdCwgbm90
IGdldE93blByb3BlcnR5U2xvdC4KLSAgICBKU09iamVjdCogb2JqZWN0ID0gdG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0g
dG9PYmplY3QoZXhlYyk7CiAgICAgc2xvdC5zZXRCYXNlKG9iamVjdCk7CiAgICAgaWYgKCFvYmpl
Y3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAgc2xv
dC5zZXRVbmRlZmluZWQoKTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBib29sIEpTQ2VsbDo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVy
dHlTbAogICAgIC8vIFRoaXMgaXMgbm90IGEgZ2VuZXJhbCBwdXJwb3NlIGltcGxlbWVudGF0aW9u
IG9mIGdldE93blByb3BlcnR5U2xvdC4KICAgICAvLyBJdCBzaG91bGQgb25seSBiZSBjYWxsZWQg
YnkgSlNWYWx1ZTo6Z2V0LgogICAgIC8vIEl0IGNhbGxzIGdldFByb3BlcnR5U2xvdCwgbm90IGdl
dE93blByb3BlcnR5U2xvdC4KLSAgICBKU09iamVjdCogb2JqZWN0ID0gdG9PYmplY3QoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gdG9P
YmplY3QoZXhlYyk7CiAgICAgc2xvdC5zZXRCYXNlKG9iamVjdCk7CiAgICAgaWYgKCFvYmplY3Qt
PmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAgc2xvdC5z
ZXRVbmRlZmluZWQoKTsKQEAgLTE0MCwyNyArMTQwLDI3IEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0
eVNsCiAKIHZvaWQgSlNDZWxsOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0g
ICAgdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0KGV4ZWMs
IGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKKyAgICB0b09iamVjdChleGVjKS0+cHV0KGV4ZWMs
IGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0NlbGw6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgdG9P
YmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50
aWZpZXIsIHZhbHVlKTsKKyAgICB0b09iamVjdChleGVjKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIs
IHZhbHVlKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gdG9PYmplY3Qo
ZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+ZGVsZXRlUHJvcGVydHkoZXhlYywg
aWRlbnRpZmllcik7CisgICAgcmV0dXJuIHRvT2JqZWN0KGV4ZWMpLT5kZWxldGVQcm9wZXJ0eShl
eGVjLCBpZGVudGlmaWVyKTsKIH0KIAogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gdG9PYmplY3Qo
ZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+ZGVsZXRlUHJvcGVydHkoZXhlYywg
aWRlbnRpZmllcik7CisgICAgcmV0dXJuIHRvT2JqZWN0KGV4ZWMpLT5kZWxldGVQcm9wZXJ0eShl
eGVjLCBpZGVudGlmaWVyKTsKIH0KIAogSlNPYmplY3QqIEpTQ2VsbDo6dG9UaGlzT2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gdG9PYmplY3QoZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICByZXR1cm4gdG9PYmplY3QoZXhlYyk7CiB9CiAK
IEpTVmFsdWUgSlNDZWxsOjpnZXRKU051bWJlcigpCkBAIC0yMDMsNyArMjAzLDcgQEAgVVN0cmlu
ZyBKU0NlbGw6OnRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0CiAgICAgcmV0dXJuIFVTdHJpbmco
KTsKIH0KIAotSlNPYmplY3QqIEpTQ2VsbDo6dG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqKSBjb25zdAorSlNPYmplY3QqIEpTQ2VsbDo6dG9PYmplY3QoRXhlY1N0YXRlKikgY29u
c3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggNjJjZWUzNzhkOTdlYzcxOGU1ZTZiOThk
YTZhYTc0NzY5ZjlmNDExOC4uNDQ3NDg2Y2U1Y2M2ZTg1YTQzOTVmMDEyOWJhNDk5ZjUyNjlhZTA0
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKQEAgLTM1LDggKzM1LDYg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKLQogI2lm
IENPTVBJTEVSKE1TVkMpCiAgICAgLy8gSWYgV1RGX01BS0VfTk9OQ09QWUFCTEUgaXMgYXBwbGll
ZCB0byBKU0NlbGwgd2UgZW5kIHVwIHdpdGggYSBidW5jaCBvZgogICAgIC8vIHVuZGVmaW5lZCBy
ZWZlcmVuY2VzIHRvIHRoZSBKU0NlbGwgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudCBv
cGVyYXRvcgpAQCAtMTA4LDcgKzEwNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGRv
dWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBVU3RyaW5n
IHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0
b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgICAgICB2aXJ0
dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgICAgICAvLyBH
YXJiYWdlIGNvbGxlY3Rpb24uCiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QsIEV4
ZWNTdGF0ZSopOwpAQCAtMzM4LDEyICszMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGlu
bGluZSBKU09iamVjdCogSlNWYWx1ZTo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2JqZWN0KGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkgOiB0b09iamVjdFNsb3dDYXNlKGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIEpTT2JqZWN0
KiBKU1ZhbHVlOjp0b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gaXNDZWxsKCkgPyBhc0NlbGwo
KS0+dG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KSA6IHRvT2JqZWN0U2xvd0Nhc2UoZXhlYywg
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGlzQ2VsbCgpID8gYXNDZWxsKCktPnRvT2Jq
ZWN0KGV4ZWMpIDogdG9PYmplY3RTbG93Q2FzZShleGVjKTsKICAgICB9CiAKICAgICBpbmxpbmUg
SlNPYmplY3QqIEpTVmFsdWU6OnRvVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4
IDExMTVkYzA3MGI3NDQ0NGUyNjVlNDhlNDRlMzhiMzczNmVlM2YwMTQuLmUwMWI0MDEwMzFhMjdk
OTNlNTVhZjhlY2FjOGNjZWQxYjI2NGY5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFVTdHJpbmcgSlNO
b3RBbk9iamVjdDo6dG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiAi
IjsKIH0KIAotSlNPYmplY3QqIEpTTm90QW5PYmplY3Q6OnRvT2JqZWN0KEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqKSBjb25zdAorSlNPYmplY3QqIEpTTm90QW5PYmplY3Q6OnRvT2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKTsKICAgICByZXR1cm4gY29uc3RfY2FzdDxKU05vdEFuT2JqZWN0
Kj4odGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05v
dEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmgKaW5kZXggNzViY2ExOGQ4MDVkZjc3YjBjOTQzOWU0MmI0NDkwMzdiMWI0MmRjMC4uYjg4MjAz
OTFlZjYxNjVhYjFmZGUwNmMyMDA2ODk1YjU2OWEyYjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApAQCAtNTgsNyArNTgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKLSAgICAg
ICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
KSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKikg
Y29uc3Q7CiAKICAgICAgICAgLy8gSlNPYmplY3QgbWV0aG9kcwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKaW5kZXggYjMwNzU0MDc5Y2I5NDRiM2FhNjA2M2Y5NThiNWIzMDBhNGI2NTFh
NC4uZDc1NzBlOTEzYmZhYzRiYTM3OGUzODVkM2QwYTMyODYyODRmZjRhMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtNDg5LDcgKzQ4OSw3IEBAIFVT
dHJpbmcgSlNPYmplY3Q6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1
cm4gcHJpbWl0aXZlLnRvU3RyaW5nKGV4ZWMpOwogfQogCi1KU09iamVjdCogSlNPYmplY3Q6OnRv
T2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3QKK0pTT2JqZWN0KiBKU09i
amVjdDo6dG9PYmplY3QoRXhlY1N0YXRlKikgY29uc3QKIHsKICAgICByZXR1cm4gY29uc3RfY2Fz
dDxKU09iamVjdCo+KHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKaW5kZXggZmUwMWNiOTkyZDYzMDJhNGU4NjM5MjYwMDgxODExNjg5MjRlMGVmZS4uNjZh
YzJkNmJhMTYyMTczNjM3ZjdiMzkyMTBlNjM1MDU2ODkwMGY4NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZp
cnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0
OwogCiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIHRvU3RyaWN0VGhpc09iamVjdChFeGVjU3Rh
dGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcApp
bmRleCBkOWM0ZDQ2OGI3NTI1NTljZDM2NzU5MTljZjMxMTNkZDU5MDI1NWQ2Li5jNGFlOTY5Yzdh
NmY1YjcyZGZiMzgxZDI1YmNkZTBhZDY3NjNmZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC0yNTMsMTkgKzI1MywxOSBAQCBVU3RyaW5nIEpTU3Ry
aW5nOjp0b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHZhbHVlKGV4
ZWMpOwogfQogCi1pbmxpbmUgU3RyaW5nT2JqZWN0KiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTU3RyaW5nKiBzdHJp
bmcpCitpbmxpbmUgU3RyaW5nT2JqZWN0KiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTU3RyaW5nKiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgU3RyaW5n
T2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5zdHJpbmdPYmplY3RTdHJ1
Y3R1cmUoKSwgc3RyaW5nKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ09iamVj
dFN0cnVjdHVyZSgpLCBzdHJpbmcpOwogfQogCi1KU09iamVjdCogSlNTdHJpbmc6OnRvT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKK0pT
T2JqZWN0KiBKU1N0cmluZzo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAg
IHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QsIGNvbnN0X2Nh
c3Q8SlNTdHJpbmcqPih0aGlzKSk7CisgICAgcmV0dXJuIFN0cmluZ09iamVjdDo6Y3JlYXRlKGV4
ZWMsIGNvbnN0X2Nhc3Q8SlNTdHJpbmcqPih0aGlzKSk7CiB9CiAKIEpTT2JqZWN0KiBKU1N0cmlu
Zzo6dG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gU3Ry
aW5nT2JqZWN0OjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBjb25z
dF9jYXN0PEpTU3RyaW5nKj4odGhpcykpOworICAgIHJldHVybiBTdHJpbmdPYmplY3Q6OmNyZWF0
ZShleGVjLCBjb25zdF9jYXN0PEpTU3RyaW5nKj4odGhpcykpOwogfQogCiBib29sIEpTU3RyaW5n
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5oCmluZGV4IDkxMTNkNGEwNGZiMTNmNzM4NDUyMjRlYWE1OTNmMzk3NmQy
NjA1N2EuLjExMDAyZGIyNmYxMmZkOWYzODJmZDg3Y2Q4NzhmOTdlM2I5ZDU1MTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtNDAyLDcgKzQwMiw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEV4
ZWNTdGF0ZSosIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiB2YWx1ZSk7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgZG91
YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0
KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgICAgICB2
aXJ0dWFsIEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmly
dHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgICAgIHZpcnR1
YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKaW5kZXggZDNlZTg5ZWE4NmI3NWQ5YmI3NzE0
MTEwYjUwODQ0ODhhYTdhMDYwZi4uZjQ2NjJkYjcyZGViNjM4MGViZTZkNWFmNTNjYTkzMDBhMDI1
MTYzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKQEAgLTU0
LDE0ICs1NCwxNCBAQCBkb3VibGUgSlNWYWx1ZTo6dG9JbnRlZ2VyUHJlc2VydmVOYU4oRXhlY1N0
YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiB0cnVuYyh0b051bWJlcihleGVjKSk7CiB9CiAK
LUpTT2JqZWN0KiBKU1ZhbHVlOjp0b09iamVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKK0pTT2JqZWN0KiBKU1ZhbHVlOjp0b09i
amVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKICAgICBBU1NFUlQoIWlzQ2Vs
bCgpKTsKIAogICAgIGlmIChpc0ludDMyKCkgfHwgaXNEb3VibGUoKSkKLSAgICAgICAgcmV0dXJu
IGNvbnN0cnVjdE51bWJlcihleGVjLCBnbG9iYWxPYmplY3QsIGFzVmFsdWUoKSk7CisgICAgICAg
IHJldHVybiBjb25zdHJ1Y3ROdW1iZXIoZXhlYywgYXNWYWx1ZSgpKTsKICAgICBpZiAoaXNUcnVl
KCkgfHwgaXNGYWxzZSgpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0Qm9vbGVhbkZyb21JbW1l
ZGlhdGVCb29sZWFuKGV4ZWMsIGdsb2JhbE9iamVjdCwgYXNWYWx1ZSgpKTsKKyAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9vbGVhbihleGVjLCBhc1ZhbHVlKCkp
OwogCiAgICAgQVNTRVJUKGlzVW5kZWZpbmVkT3JOdWxsKCkpOwogICAgIHRocm93RXJyb3IoZXhl
YywgY3JlYXRlTm90QW5PYmplY3RFcnJvcihleGVjLCAqdGhpcykpOwpAQCAtNzMsOSArNzMsOSBA
QCBKU09iamVjdCogSlNWYWx1ZTo6dG9UaGlzT2JqZWN0U2xvd0Nhc2UoRXhlY1N0YXRlKiBleGVj
KSBjb25zdAogICAgIEFTU0VSVCghaXNDZWxsKCkpOwogCiAgICAgaWYgKGlzSW50MzIoKSB8fCBp
c0RvdWJsZSgpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0TnVtYmVyKGV4ZWMsIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSwgYXNWYWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0cnVj
dE51bWJlcihleGVjLCBhc1ZhbHVlKCkpOwogICAgIGlmIChpc1RydWUoKSB8fCBpc0ZhbHNlKCkp
Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhc1ZhbHVlKCkpOworICAgICAgICByZXR1
cm4gY29uc3RydWN0Qm9vbGVhbkZyb21JbW1lZGlhdGVCb29sZWFuKGV4ZWMsIGFzVmFsdWUoKSk7
CiAgICAgQVNTRVJUKGlzVW5kZWZpbmVkT3JOdWxsKCkpOwogICAgIHJldHVybiBleGVjLT5nbG9i
YWxUaGlzVmFsdWUoKTsKIH0KQEAgLTg0LDkgKzg0LDkgQEAgSlNPYmplY3QqIEpTVmFsdWU6OnN5
bnRoZXNpemVPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIEFTU0VSVCghaXND
ZWxsKCkpOwogICAgIGlmIChpc051bWJlcigpKQotICAgICAgICByZXR1cm4gY29uc3RydWN0TnVt
YmVyKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgYXNWYWx1ZSgpKTsKKyAgICAg
ICAgcmV0dXJuIGNvbnN0cnVjdE51bWJlcihleGVjLCBhc1ZhbHVlKCkpOwogICAgIGlmIChpc0Jv
b2xlYW4oKSkKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEJvb2xlYW5Gcm9tSW1tZWRpYXRlQm9v
bGVhbihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGFzVmFsdWUoKSk7CisgICAg
ICAgIHJldHVybiBjb25zdHJ1Y3RCb29sZWFuRnJvbUltbWVkaWF0ZUJvb2xlYW4oZXhlYywgYXNW
YWx1ZSgpKTsKIAogICAgIEFTU0VSVChpc1VuZGVmaW5lZE9yTnVsbCgpKTsKICAgICB0aHJvd0Vy
cm9yKGV4ZWMsIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoZXhlYywgKnRoaXMpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAppbmRleCAwOTgxMjNlMDI0Nzg5Njg0OWQ2ZWFh
Yjg4ODZhZmQzYmMyZDkyM2M4Li4wZmQ2YzRjYjQzMWY3MzcwMDAzN2FmZWQwYzU0OTQ2NThlYWJj
YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCkBAIC0zNyw3ICsz
Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIElkZW50aWZpZXI7CiAgICAgY2xhc3Mg
SlNDZWxsOwogICAgIGNsYXNzIEpTR2xvYmFsRGF0YTsKLSAgICBjbGFzcyBKU0dsb2JhbE9iamVj
dDsKICAgICBjbGFzcyBKU0ltbWVkaWF0ZTsKICAgICBjbGFzcyBKU09iamVjdDsKICAgICBjbGFz
cyBKU1N0cmluZzsKQEAgLTE5MCw3ICsxODksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
VVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgVVN0cmluZyB0b1By
aW1pdGl2ZVN0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgSlNPYmplY3QqIHRvT2Jq
ZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKIAogICAgICAgICAvLyBJbnRlZ2VyIGNvbnZl
cnNpb25zLgogICAgICAgICBkb3VibGUgdG9JbnRlZ2VyKEV4ZWNTdGF0ZSopIGNvbnN0OwpAQCAt
MjQ2LDcgKzI0NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlKEhhc2hUYWJs
ZURlbGV0ZWRWYWx1ZVRhZyk7CiAKICAgICAgICAgaW5saW5lIGNvbnN0IEpTVmFsdWUgYXNWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuICp0aGlzOyB9Ci0gICAgICAgIEpTT2JqZWN0KiB0b09iamVjdFNs
b3dDYXNlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgICAgIEpTT2Jq
ZWN0KiB0b09iamVjdFNsb3dDYXNlKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICBKU09iamVj
dCogdG9UaGlzT2JqZWN0U2xvd0Nhc2UoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgSlNP
YmplY3QqIHN5bnRoZXNpemVQcm90b3R5cGUoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
YWVlMTQzYTNmMDdkNTYxNmE2MGIxZGJmYTdjY2ViOTg0ZDZmN2JiZS4uM2U0ZDZjNzZlNmM5NWRk
MDg3MWRlZGQ4NGM5ZjM2YWMwYzk2N2NlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0
YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0cnVjdG9yTWluVmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSwgY29uc3QgSWRlbnRpZmllciYpCiAvLyBFQ01BIDE1LjcuMQogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aE51bWJlckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYykKIHsKLSAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVy
T2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxl
ZSgpKS0+Z2xvYmFsT2JqZWN0KCktPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsKKyAgICBOdW1i
ZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5udW1iZXJPYmplY3RTdHJ1Y3R1cmUo
KSk7CiAgICAgZG91YmxlIG4gPSBleGVjLT5hcmd1bWVudENvdW50KCkgPyBleGVjLT5hcmd1bWVu
dCgwKS50b051bWJlcihleGVjKSA6IDA7CiAgICAgb2JqZWN0LT5zZXRJbnRlcm5hbFZhbHVlKGV4
ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIobikpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlck9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuY3BwCmluZGV4IDc0YjVlOTgxZTNhZGY1YTUzMzljMjEzMjcyYzNkOTQ3ZGZiNGIxOTAuLjM5
NjMyOTRjZmE3Y2M2M2MxMjNjOWNiNDIwN2NjYTczOGZhMWYwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcApAQCAtNDIsOSArNDIsOSBAQCBK
U1ZhbHVlIE51bWJlck9iamVjdDo6Z2V0SlNOdW1iZXIoKQogICAgIHJldHVybiBpbnRlcm5hbFZh
bHVlKCk7CiB9CiAKLU51bWJlck9iamVjdCogY29uc3RydWN0TnVtYmVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBudW1iZXIpCitOdW1iZXJP
YmplY3QqIGNvbnN0cnVjdE51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgbnVtYmVyKQog
ewotICAgIE51bWJlck9iamVjdCogb2JqZWN0ID0gbmV3IChleGVjKSBOdW1iZXJPYmplY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm51bWJlck9iamVjdFN0cnVjdHVyZSgpKTsK
KyAgICBOdW1iZXJPYmplY3QqIG9iamVjdCA9IG5ldyAoZXhlYykgTnVtYmVyT2JqZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5udW1iZXJPYmplY3RT
dHJ1Y3R1cmUoKSk7CiAgICAgb2JqZWN0LT5zZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERh
dGEoKSwgbnVtYmVyKTsKICAgICByZXR1cm4gb2JqZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCA5MGQwYjI2ZTMwODI4NDYyODBlYjE0
ZmEwMGQ4YjM4NWM0YjBjOGQ3Li4xNTcxZmQ0MmNlNmIwYzMyZTgyZTgxYWQ2YjAzMTYwYTkxZTdl
ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaApA
QCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVl
IGdldEpTTnVtYmVyKCk7CiAgICAgfTsKIAotICAgIE51bWJlck9iamVjdCogY29uc3RydWN0TnVt
YmVyKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CisgICAgTnVtYmVyT2Jq
ZWN0KiBjb25zdHJ1Y3ROdW1iZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggYzY0MmE1YjU5ZjJkNTk4YmNhNGRlYTU1OGNmMjUyZTc2MjNl
OWM4My4uNTA4MGVmODYxYzNlMmRmMDVjMzgwYmVhODA3OTkzMmJkZDk5NGEwYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApA
QCAtOTUsMTggKzk1LDE4IEBAIGJvb2wgT2JqZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpCiB9CiAKIC8vIEVDTUEg
MTUuMi4yCi1zdGF0aWMgQUxXQVlTX0lOTElORSBKU09iamVjdCogY29uc3RydWN0T2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQXJnTGlz
dCYgYXJncykKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIEpTT2JqZWN0KiBjb25zdHJ1Y3RPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewogICAgIEpTVmFsdWUgYXJn
ID0gYXJncy5hdCgwKTsKICAgICBpZiAoYXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAg
IHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QpOwotICAgIHJl
dHVybiBhcmcudG9PYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGNv
bnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOworICAgIHJldHVybiBhcmcudG9PYmplY3QoZXhlYyk7
CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhP
YmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4
ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0T2JqZWN0KGV4ZWMsIGFz
SW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywgYXJncykp
OwogfQogCiBDb25zdHJ1Y3RUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCkBAIC0xMTgsNyArMTE4LDcgQEAgQ29uc3Ry
dWN0VHlwZSBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRh
JiBjb25zdHJ1Y3REYXRhKQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bE9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3Mo
ZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3QoZXhlYywg
YXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3Mp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdChleGVjLCBhcmdz
KSk7CiB9CiAKIENhbGxUeXBlIE9iamVjdENvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShDYWxsRGF0
YSYgY2FsbERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMTliNGIzNjFlNmM4ODRkOTQxZjBiNzNkZWU1NWZmOTU1
NmVkMjBiZC4uMzQ4ZjM4YWU0MjU1M2I0ZGE0MWNjNzBiZTczNjBmNDYyYzI3YjNmNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cApAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQgc2V0UmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1CiB9CiAKIC8vIEVD
TUEgMTUuMTAuNAotSlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCitKU09iamVj
dCogY29uc3RydWN0UmVnRXhwKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykK
IHsKICAgICBKU1ZhbHVlIGFyZzAgPSBhcmdzLmF0KDApOwogICAgIEpTVmFsdWUgYXJnMSA9IGFy
Z3MuYXQoMSk7CkBAIC0zMjAsMTMgKzMyMCwxMyBAQCBKU09iamVjdCogY29uc3RydWN0UmVnRXhw
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQQog
ICAgIFJlZlB0cjxSZWdFeHA+IHJlZ0V4cCA9IGV4ZWMtPmdsb2JhbERhdGEoKS5yZWdFeHBDYWNo
ZSgpLT5sb29rdXBPckNyZWF0ZShwYXR0ZXJuLCBmbGFncyk7CiAgICAgaWYgKCFyZWdFeHAtPmlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgcmVnRXhwLT5lcnJvck1lc3NhZ2UoKSkpOwotICAgIHJldHVybiBuZXcgKGV4ZWMp
IFJlZ0V4cE9iamVjdChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGdsb2JhbE9iamVjdC0+
cmVnRXhwU3RydWN0dXJlKCksIHJlZ0V4cC5yZWxlYXNlKCkpOworICAgIHJldHVybiBuZXcgKGV4
ZWMpIFJlZ0V4cE9iamVjdChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwU3RydWN0dXJlKCksIHJlZ0V4cC5yZWxlYXNlKCkpOwog
fQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoUmVn
RXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEFyZ0xpc3QgYXJncyhleGVj
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChleGVjLCBhc0lu
dGVybmFsRnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgYXJncykpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0UmVnRXhwKGV4ZWMsIGFyZ3MpKTsK
IH0KIAogQ29uc3RydWN0VHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShD
b25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQpAQCAtMzM5LDcgKzMzOSw3IEBAIENvbnN0cnVj
dFR5cGUgUmVnRXhwQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYg
Y29uc3RydWN0RGF0YSkKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxS
ZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGV4
ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0UmVnRXhwKGV4ZWMsIGFz
SW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpLCBhcmdzKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAoZXhlYywgYXJncykp
OwogfQogCiBDYWxsVHlwZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoQ2FsbERhdGEm
IGNhbGxEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmgKaW5kZXggNWUwYjJiODUwYjFiOGE2YzJjMDAwODg3NTYzNWMyZmZjOTkxNWMw
NC4uMDNjNmJlYTJiYTM4NjQ2NTMyZGQ3ZTUxZmFhYTNmNjFlMmY5ODUxNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC05Niw3
ICs5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgUmVnRXhwQ29uc3RydWN0b3IqIGFzUmVn
RXhwQ29uc3RydWN0b3IoSlNWYWx1ZSk7CiAKLSAgICBKU09iamVjdCogY29uc3RydWN0UmVnRXhw
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlzdCYpOworICAgIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RSZWdFeHAoRXhlY1N0YXRlKiwgY29uc3QgQXJnTGlzdCYpOwogCiAgICAg
aW5saW5lIFJlZ0V4cENvbnN0cnVjdG9yKiBhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWUgdmFs
dWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuY3BwCmluZGV4IGVkMDg4ZTRmNmQwNzM2ZDlhMGJkYjg0NzI1NDU1ZDBkOTNi
MjcwODUuLjUzOThmMzEyYjhjNDE5ZDVhNDFjNjZlMTlmNWNhM2VjZWM3ODAyYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAK
QEAgLTY3LDEwICs2Nyw5IEBAIFN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAvLyBFQ01BIDE1LjUu
Mgogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aFN0cmlu
Z0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2Jq
ZWN0KCk7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUobmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0
LT5zdHJpbmdPYmplY3RTdHJ1Y3R1cmUoKSkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
bmV3IChleGVjKSBTdHJpbmdPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LT5zdHJpbmdPYmplY3RT
dHJ1Y3R1cmUoKSwgZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShuZXcgKGV4ZWMpIFN0cmluZ09iamVjdChleGVjLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShuZXcgKGV4ZWMpIFN0cmluZ09iamVjdChleGVjLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpLCBleGVjLT5h
cmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpOwogfQogCiBDb25zdHJ1Y3RUeXBlIFN0cmluZ0Nv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGFl
MzM3NmQyMmFjZTUzYTgxOWEzMDdkNDkzYzUxNWE5Mjg3OWQwNjYuLjBlMmEyYjI0MTNjOThlMmNh
NzEwYzJjZGQ5YThiMDQwZDg3NGI2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ09iamVjdC5oCkBAIC0zMSw3ICszMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBTdHJpbmdPYmplY3QoRXhlY1N0YXRlKiwgTm9uTnVsbFBhc3NSZWZQdHI8U3RydWN0dXJl
Pik7CiAgICAgICAgIFN0cmluZ09iamVjdChFeGVjU3RhdGUqLCBOb25OdWxsUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+LCBjb25zdCBVU3RyaW5nJik7CiAKLSAgICAgICAgc3RhdGljIFN0cmluZ09iamVj
dCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKKyAgICAg
ICAgc3RhdGljIFN0cmluZ09iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKik7CiAK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCA2MDkzYzg0
ODQwNGU0NDI2OTdjODU4OTVkZjE3NmJjZTdhNjRmZjIzLi41NWJhMjg1NWI1ZTkwZjZjMjFmODk5
ODcyYjY0MzUyNzAyOWE4YzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMS0wMy0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjgyMTczLgorICAgICAgICBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC84MjE3MworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTczMzMKKworICAgICAgICBDYXVzZXMgYXNz
ZXJ0aW9uIGFuZCB0ZXN0IGZhaWx1cmVzIGluIHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cworICAg
ICAgICBvbiBXaW5kb3dzIChSZXF1ZXN0ZWQgYnkgYXJvYmVuIG9uICN3ZWJraXQpLgorCisgICAg
ICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjp0b1ByaW1p
dGl2ZSk6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjp0b0Jvb2xlYW4pOgorICAgICAgICAoVXNl
ck9iamVjdEltcDo6dG9OdW1iZXIpOgorICAgICAgICAoVXNlck9iamVjdEltcDo6dG9TdHJpbmcp
OgorCiAyMDExLTAzLTI1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9i
amVjdEltcC5jcHAKaW5kZXggYTA0ZjU4ZTQ2NDBkYTE0NDE4ZDY4NThmMTJiZGI0OTI1ZTkxYjlm
YS4uZjQ4YTIzMDRjY2IyNDhhMjRhZDI5YWFiMDE3MjljMGUwMGE5MTIwOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIEpTVXNlck9i
amVjdCogVXNlck9iamVjdEltcDo6R2V0SlNVc2VyT2JqZWN0KCkgY29uc3QKIEpTVmFsdWUgVXNl
ck9iamVjdEltcDo6dG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBQcmVmZXJyZWRQcmltaXRp
dmVUeXBlKSBjb25zdAogewogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNVbmRlZmluZWQoKTsKLSAg
ICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4
ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMpOworICAgIEpTVXNlck9iamVj
dCoganNPYmpQdHIgPSBLSlNWYWx1ZVRvSlNPYmplY3QodG9PYmplY3QoZXhlYyksIGV4ZWMpOwog
ICAgIENGVHlwZVJlZiBjZlZhbHVlID0ganNPYmpQdHIgPyBqc09ialB0ci0+Q29weUNGVmFsdWUo
KSA6IDA7CiAgICAgaWYgKGNmVmFsdWUpIHsKICAgICAgICAgQ0ZUeXBlSUQgY2ZUeXBlID0gQ0ZH
ZXRUeXBlSUQoY2ZWYWx1ZSk7ICAvLyB0b1ByaW1pdGl2ZQpAQCAtMjA0LDcgKzIwNCw3IEBAIEpT
VmFsdWUgVXNlck9iamVjdEltcDo6dG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBQcmVmZXJy
ZWRQcmltaXRpdmVUeXBlKSBjb25zCiBib29sIFVzZXJPYmplY3RJbXA6OnRvQm9vbGVhbihFeGVj
U3RhdGUgKmV4ZWMpIGNvbnN0CiB7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBKU1Vz
ZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMpOworICAgIEpTVXNlck9iamVjdCoganNP
YmpQdHIgPSBLSlNWYWx1ZVRvSlNPYmplY3QodG9PYmplY3QoZXhlYyksIGV4ZWMpOwogICAgIENG
VHlwZVJlZiBjZlZhbHVlID0ganNPYmpQdHIgPyBqc09ialB0ci0+Q29weUNGVmFsdWUoKSA6IDA7
CiAgICAgaWYgKGNmVmFsdWUpCiAgICAgewpAQCAtMjg0LDcgKzI4NCw3IEBAIGJvb2wgVXNlck9i
amVjdEltcDo6dG9Cb29sZWFuKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3QKIGRvdWJsZSBVc2VyT2Jq
ZWN0SW1wOjp0b051bWJlcihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0CiB7CiAgICAgZG91YmxlIHJl
c3VsdCA9IDA7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVlVG9KU09iamVj
dCh0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVjKTsKKyAg
ICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4
ZWMpLCBleGVjKTsKICAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpzT2JqUHRyID8ganNPYmpQdHIt
PkNvcHlDRlZhbHVlKCkgOiAwOwogICAgIGlmIChjZlZhbHVlKQogICAgIHsKQEAgLTMxOCw3ICsz
MTgsNyBAQCBkb3VibGUgVXNlck9iamVjdEltcDo6dG9OdW1iZXIoRXhlY1N0YXRlICpleGVjKSBj
b25zdAogVVN0cmluZyBVc2VyT2JqZWN0SW1wOjp0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNv
bnN0CiB7CiAgICAgVVN0cmluZyByZXN1bHQ7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9
IEtKU1ZhbHVlVG9KU09iamVjdCh0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCkpLCBleGVjKTsKKyAgICBKU1VzZXJPYmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pT
T2JqZWN0KHRvT2JqZWN0KGV4ZWMpLCBleGVjKTsKICAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpz
T2JqUHRyID8ganNPYmpQdHItPkNvcHlDRlZhbHVlKCkgOiAwOwogICAgIGlmIChjZlZhbHVlKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmYzQyZjZjNjgxZTcyNTU0M2E4ZGRjNTg0ZWIxMmRiNDBiNDEx
YjI1Li5kNGE5YWQ1MGU0ODI3OWQ3MDhjNjQyZTU0OWExZmRjMzVkOWQyNTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMtMjkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4MjE3
My4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvODIxNzMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MzMzCisKKyAgICAg
ICAgQ2F1c2VzIGFzc2VydGlvbiBhbmQgdGVzdCBmYWlsdXJlcyBpbiBydW4tamF2YXNjcmlwdGNv
cmUtdGVzdHMKKyAgICAgICAgb24gV2luZG93cyAoUmVxdWVzdGVkIGJ5IGFyb2JlbiBvbiAjd2Vi
a2l0KS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpqc0RhdGVPck51bGwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTGF6eUV2
ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMYXp5RXZlbnRMaXN0ZW5lcjo6
aW5pdGlhbGl6ZUpTRnVuY3Rpb24pOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorCiAy
MDExLTAzLTI5ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCA4NTAxZWI5MjU2NDQwOTkxZGE1ODljYWRk
YjIyNmRlMmVkYmNkN2E5Li40ZDE4YTRlMzU2NWEwOTQ5OTQwM2FiNmZhOTQ2ZGFjMmU3MjBhMDNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTQ4
Myw3ICs0ODMsNyBAQCBKU1ZhbHVlIGpzRGF0ZU9yTnVsbChFeGVjU3RhdGUqIGV4ZWMsIGRvdWJs
ZSB2YWx1ZSkKIHsKICAgICBpZiAoIWlzZmluaXRlKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOwotICAgIHJldHVybiBuZXcgKGV4ZWMpIERhdGVJbnN0YW5jZShleGVjLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1Y3R1cmUoKSwgdmFsdWUpOworICAgIHJldHVy
biBuZXcgKGV4ZWMpIERhdGVJbnN0YW5jZShleGVjLCB2YWx1ZSk7CiB9CiAKIGRvdWJsZSB2YWx1
ZVRvRGF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDViMTc3Mjc1
ZmM2M2M4NDE3NzkxNGZhYzI4NGYxY2VkNDdiZDg2NTguLjMxYmJiZWQxZmU3NTRhODI0ZTY0M2Q2
ZjQwZjNmNGY1ZTFhNDlmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIEpTT2JqZWN0KiBKU0xh
enlFdmVudExpc3RlbmVyOjppbml0aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBleGVjCiAgICAgYXJncy5hcHBlbmQoanNOb250cml2aWFsU3RyaW5nKGV4ZWMsIHN0cmlu
Z1RvVVN0cmluZyhtX2V2ZW50UGFyYW1ldGVyTmFtZSkpKTsKICAgICBhcmdzLmFwcGVuZChqc1N0
cmluZyhleGVjLCBtX2NvZGUpKTsKIAotICAgIEpTT2JqZWN0KiBqc0Z1bmN0aW9uID0gY29uc3Ry
dWN0RnVuY3Rpb24oZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBhcmdzLCBJZGVu
dGlmaWVyKGV4ZWMsIHN0cmluZ1RvVVN0cmluZyhtX2Z1bmN0aW9uTmFtZSkpLCBzdHJpbmdUb1VT
dHJpbmcobV9zb3VyY2VVUkwpLCBtX2xpbmVOdW1iZXIpOyAvLyBGSVhNRTogaXMgZ2xvYmFsRXhl
YyBvaz8KKyAgICBKU09iamVjdCoganNGdW5jdGlvbiA9IGNvbnN0cnVjdEZ1bmN0aW9uKGV4ZWMs
IGFyZ3MsIElkZW50aWZpZXIoZXhlYywgc3RyaW5nVG9VU3RyaW5nKG1fZnVuY3Rpb25OYW1lKSks
IHN0cmluZ1RvVVN0cmluZyhtX3NvdXJjZVVSTCksIG1fbGluZU51bWJlcik7IC8vIEZJWE1FOiBp
cyBnbG9iYWxFeGVjIG9rPwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAg
ICBleGVjLT5jbGVhckV4Y2VwdGlvbigpOwogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCA4N2VlNTIyNGJlYzFkNzFkOGI5M2NmNTYw
MDFjZWIzZjFkNzI5ZWMzLi5mZDMzYjg5N2RhMGY2ZDQ0ZTU3ZGIwMmNkMTFlM2E4MDE2ZTRlNGU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCkBAIC04ODMsNyArODgz
LDcgQEAgSlNWYWx1ZSBjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFz
c1JlZlB0cjxSb290T2JqZWN0PiByb290LCBjb24KICAgICAgICAgZHQuaXNEU1QgPSAtMTsKICAg
ICAgICAgZG91YmxlIG1zID0gZ3JlZ29yaWFuRGF0ZVRpbWVUb01TKGV4ZWMsIGR0LCB0aW1lLm1z
ZWMoKSwgLyppbnB1dElzVVRDKi8gZmFsc2UpOwogCi0gICAgICAgIHJldHVybiBuZXcgKGV4ZWMp
IERhdGVJbnN0YW5jZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmRhdGVTdHJ1
Y3R1cmUoKSwgdHJ1bmMobXMpKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykgRGF0ZUluc3Rh
bmNlKGV4ZWMsIHRydW5jKG1zKSk7CiAgICAgfQogCiAgICAgaWYgKHR5cGUgPT0gUU1ldGFUeXBl
OjpRQnl0ZUFycmF5KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87339</attachid>
            <date>2011-03-29 08:59:58 -0700</date>
            <delta_ts>2011-03-29 09:00:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57333-20110329085955.patch</filename>
            <type>text/plain</type>
            <size>3647</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyNTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKaW5kZXggYWU0MDgzMGE1ZDc0NTA3MDNhY2Y5MzNkZjYwMjQwNjc4NThiNzRm
NS4uYjcwMzBlNGJhNWZjOTVjODg3MWUyZWY3ZTkwMzViNzJiYjFmZmM1YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCBKU09i
amVjdFJlZiBKU09iamVjdE1ha2VEYXRlKEpTQ29udGV4dFJlZiBjdHgsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRD
b3VudDsgKytpKQogICAgICAgICBhcmdMaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGFyZ3VtZW50c1tp
XSkpOwogCi0gICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdERhdGUoZXhlYywgYXJnTGlz
dCk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdERhdGUoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLCBhcmdMaXN0KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgICpleGNlcHRpb24gPSB0
b1JlZihleGVjLCBleGVjLT5leGNlcHRpb24oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRl
eCBlYWJmMTQwMDRhZTA5MzYyODI4N2IxOGVmMTdlMTAzODQ5ODY0MDk5Li5hMjhiNzE3MDAxMmVi
YmQyNGI1Y2UyNzA3ZDgwNzVlZjM5NWU1MWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMS0wMy0yOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JF
U1NJT04ocjgyMTczKTogQ2F1c2VzIGFzc2VydGlvbiBhbmQgdGVzdCBmYWlsdXJlcyBpbiBydW4t
amF2YXNjcmlwdGNvcmUtdGVzdHMgb24gV2luZG93cyAoUmVxdWVzdGVkIGJ5IGFyb2JlbiBvbiAj
d2Via2l0KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU3MzMzCisKKyAgICAgICAgY29uc3RydWN0RGF0ZSBub3cgdGFrZXMgdGhlIGdsb2JhbCBvYmpl
Y3QgZXhwbGljaXRseSBhcyBpdCBtYXkgYmUgY2FsbGVkCisgICAgICAgIGJ5IGZ1bmN0aW9ucyBv
dGhlciB0aGFuIHRoZSBjb25zdHJ1Y3RvciBpdHNlbGYuCisKKyAgICAgICAgKiBBUEkvSlNPYmpl
Y3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RNYWtlRGF0ZSk6CisgICAgICAgICogcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3REYXRlKToKKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKwogMjAxMS0wMy0yOSAgQmVuIFRheWxvciAgPGJlbnRh
eWxvci5zb2x4ODZAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBv
dWxhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVj
dG9yLmNwcAppbmRleCBlMTkyNjdhOTE5MDg2M2FiZDZjOGEwNTM4MGNmZWY1NWY4OWI3M2EwLi4w
YTA2MTQ4MWZhZjdhZWMyZTQ5ZDdiYThlZDA0MGU0YjJkMjc0YjdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTcwLDcgKzcw
LDcgQEAgRGF0ZUNvbnN0cnVjdG9yOjpEYXRlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogfQogCiAvLyBFQ01BIDE1LjkuMwotSlNPYmpl
Y3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQor
SlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewogICAgIGludCBudW1BcmdzID0g
YXJncy5zaXplKCk7CiAKQEAgLTEyMSwxMyArMTIxLDEzIEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RE
YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICAgICAgfQogICAg
IH0KIAotICAgIHJldHVybiBuZXcgKGV4ZWMpIERhdGVJbnN0YW5jZShleGVjLCBhc0ludGVybmFs
RnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKS0+ZGF0ZVN0cnVjdHVyZSgp
LCB2YWx1ZSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgRGF0ZUluc3RhbmNlKGV4ZWMsIGdsb2Jh
bE9iamVjdC0+ZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZSk7CiB9CiAgICAgCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjb25zdHJ1Y3REYXRlKGV4ZWMsIGFyZ3MpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNvbnN0cnVjdERhdGUoZXhlYywgYXNJbnRlcm5hbEZ1bmN0aW9uKGV4ZWMtPmNh
bGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksIGFyZ3MpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBEYXRl
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgK
aW5kZXggMmFkY2QwOGE2MTU4YzYxOTMyNjYxZDZkNGViZWE0ZjkyYjdiMjEzNi4uYmQ1MjlmMTZm
MTg3ODgzNTBmMTEyYzJjYzg2NzI1NjNkOTg5NjgxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEm
KTsKICAgICB9OwogCi0gICAgSlNPYmplY3QqIGNvbnN0cnVjdERhdGUoRXhlY1N0YXRlKiwgY29u
c3QgQXJnTGlzdCYpOworICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlzdCYpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAo=
</data>
<flag name="review"
          id="79758"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>