<?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>97921</bug_id>
          
          <creation_ts>2012-09-28 09:41:51 -0700</creation_ts>
          <short_desc>REGRESSION(r129751): Causes crashes on mac and win (Requested by vsevik on #webkit).</short_desc>
          <delta_ts>2012-09-28 09:51:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>96730</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>pfeldman</cc>
    
    <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>730745</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 09:41:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/129751 broke the build:
Causes crashes on mac and win (Requested by vsevik 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>730747</commentid>
    <comment_count>1</comment_count>
      <attachid>166266</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 09:42:32 -0700</bug_when>
    <thetext>Created attachment 166266
ROLLOUT of r129751

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>730755</commentid>
    <comment_count>2</comment_count>
      <attachid>166266</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 09:51:08 -0700</bug_when>
    <thetext>Comment on attachment 166266
ROLLOUT of r129751

Clearing flags on attachment: 166266

Committed r129913: &lt;http://trac.webkit.org/changeset/129913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730756</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-28 09:51:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166266</attachid>
            <date>2012-09-28 09:42:32 -0700</date>
            <delta_ts>2012-09-28 09:51:08 -0700</delta_ts>
            <desc>ROLLOUT of r129751</desc>
            <filename>bug-97921-20120928164901.patch</filename>
            <type>text/plain</type>
            <size>45742</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE4OGJhNjhiZDE1N2Fl
YjVjYzMyYWIxM2JkNzc5YmM0ODJlOGI2NS4uZmI2MzY5MDY0YjRiYTc3YTlmMzliODgxMDFkMzk3
YjBiNmI1NGQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEyLTA5LTI4ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTI5NzUxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMjk3NTEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3OTIxCisKKyAgICAgICAgQ2F1c2VzIGNyYXNoZXMgb24gbWFjIGFuZCB3aW4g
KFJlcXVlc3RlZCBieSB2c2V2aWsgb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjppbnN0cnVtZW50RnVuY3Rpb25DYWxsKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVkQWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9ySW5zcGVj
dG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbFdpdGgpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVDYWxsV2l0aCk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVu
dHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0
cmlidXRlQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJTZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q2FsbFN0YWNr
RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJ
bnNwZWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3Rvcnku
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y2FsbEZ1bmN0
aW9uV2l0aEluc3RydW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5k
b3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjpzZXRJc29s
YXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V29ya2Vy
Q29udGV4dEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXb3JrZXJDb250
ZXh0RXZlbnRMaXN0ZW5lcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
aW5kb3dTZXRUaW1lb3V0SW1wbCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRN
TENhbnZhc0VsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIVE1MQ2FudmFz
RWxlbWVudDo6Z2V0Q29udGV4dENhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldFRpbWVv
dXRPckludGVydmFsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpjbGVhck1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y2xlYXJGcm9udGVuZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JD
b25zb2xlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJv
bnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246Omhhc0Zyb250ZW5kRm9yU2NyaXB0Q29udGV4dCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
aGFzRnJvbnRlbmRGb3JTY3JpcHRDb250ZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVB
Z2VudDo6SW5zcGVjdG9yUnVudGltZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JSdW50aW1lQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFBhZ2VSdW50
aW1lQWdlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFnZW50OjpjbGVh
ckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnJlc3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6c2V0UmVwb3J0RXhlY3V0aW9u
Q29udGV4dENyZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OmRp
ZENsZWFyV2luZG93T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
OmRpZENyZWF0ZUlzb2xhdGVkQ29udGV4dCk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuaDoKKyAgICAgICAgKFBhZ2VSdW50aW1lQWdlbnQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUnVu
dGltZUFnZW50OjpzZXRSZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24pOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oOgorICAg
ICAgICAoV29ya2VyUnVudGltZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1J1bnRpbWVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwucHJv
dG90eXBlLl9kaWRMb2FkQ2FjaGVkUmVzb3VyY2VzKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKwogMjAx
Mi0wOS0yOCAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIElu
ZGV4ZWREQjogUnVuIG11bHRpcGxlIHRhc2tzIHBlciB0cmFuc2FjdGlvbiB0aWNrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0
b20uY3BwCmluZGV4IGU1OWM2YjNlNmY5ODhkZWJmNTIzNjY0N2VjNWM5NGE3NWZjNzdhMzMuLjcy
YmYzODZhMDY0ZjM2NDY1YzQ1YTIwNTEwMDkxOGJjZDExZGMwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3Bw
CkBAIC03OCw3ICs3OCw3IEBAIEpTVmFsdWUgSlNIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4
dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4ganNO
dWxsKCk7CiAgICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwg
V1RGOjpnZXRQdHIoY29udGV4dCkpOwotICAgIGlmIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmNhbnZhc0FnZW50RW5hYmxlZChjYW52YXMtPmRvY3VtZW50KCkpKSB7CisgICAgaWYgKEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpIHsKICAgICAgICAgU2NyaXB0T2Jq
ZWN0IGNvbnRleHRPYmplY3QoZXhlYywganNWYWx1ZS5nZXRPYmplY3QoKSk7CiAgICAgICAgIFNj
cmlwdE9iamVjdCB3cmFwcGVkOwogICAgICAgICBpZiAoY29udGV4dC0+aXMyZCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAppbmRl
eCAyOTdjOTUzZDg5MzQwYjg2NzkwNTNkNWJkYjM5MDkxZWU4NzJkYmVhLi4xMDljZThiOTI3ODQw
ODZmYjRmOWU1ZWEzNmYzMjBjOWNkYTQ2M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01haW5UaHJlYWRFeGVjU3RhdGUuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBp
bnN0cnVtZW50RnVuY3Rpb25DYWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEpT
Qzo6Q2FsbFR5cGUgY2FsbFR5cGUsIGNvbnN0IEpTQzo6Q2FsbERhdGEmIGNhbGxEYXRhKQogICAg
IHsKLSAgICAgICAgaWYgKCFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnRpbWVsaW5lQWdlbnRF
bmFibGVkKGNvbnRleHQpKQorICAgICAgICBpZiAoIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
aGFzRnJvbnRlbmRzKCkpCiAgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llKCk7CiAgICAgICAgIFN0cmluZyByZXNvdXJjZU5hbWU7CiAgICAgICAgIGludCBs
aW5lTnVtYmVyID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
aGVkdWxlZEFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRB
Y3Rpb24uY3BwCmluZGV4IDI2YWE5ZmJiZTI3MjNjZTNlZDZlNWI1YTNjYjFkNTYzMzNjMzBiNjUu
Ljc2ODIwNTEwZDEyMjZjNmQyM2QxMjE4NjkxMmRlNDZkYmI5YTU1ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcApAQCAtNTUsNyArNTUsNyBA
QCBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gU2NoZWR1bGVkQWN0aW9uOjpjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBET01XcmFwcGVyVwogICAgIEpTVmFsdWUgdiA9IGV4ZWMtPmFyZ3VtZW50
KDApOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIGlmIChnZXRDYWxsRGF0YSh2LCBjYWxs
RGF0YSkgPT0gQ2FsbFR5cGVOb25lKSB7Ci0gICAgICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMpKTsKKyAgICAg
ICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFj
a0Zvckluc3BlY3RvcihleGVjKSk7CiAgICAgICAgIGlmIChwb2xpY3kgJiYgIXBvbGljeS0+YWxs
b3dFdmFsKGNhbGxTdGFjay5yZWxlYXNlKCkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgIFN0cmluZyBzdHJpbmcgPSB2LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFj
dG9yeS5jcHAKaW5kZXggMTkzZjY0ZmQ1OGRiY2IxMTBlMjMzYmI1NjI1NWRkZDc2MTIyNmRlNy4u
NGZhZWVlZDg5NTJhZjk3NWZlMTE4Zjg2MmEzNDhmYWVmZjBlOGM5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKQEAg
LTEwNCwxMiArMTA0LDEyIEBAIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3Jp
cHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBtCiAgICAgcmV0dXJuIFNj
cmlwdENhbGxTdGFjazo6Y3JlYXRlKGZyYW1lcyk7CiB9CiAKLVBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKEpTQzo6RXhlY1N0YXRlKiBl
eGVjKQorUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zv
ckluc3BlY3RvcihKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBzaXplX3QgbWF4U3RhY2tT
aXplID0gMTsKICAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMo
KSkgewogICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgICAgICBpZiAoSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpjb25zb2xlQWdlbnRFbmFibGVkKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
KQorICAgICAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZEZvclNj
cmlwdENvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpCiAgICAgICAgICAgICBtYXhTdGFj
a1NpemUgPSBTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmU7CiAgICAg
fQogICAgIHJldHVybiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soZXhlYywgbWF4U3RhY2tTaXplKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuaAppbmRleCA2ZTk0YjAzZTFlYTI4Yzk4ZjU2ZmIxYjYyZjFiNWVkOGMxZGQ5MTViLi42ODlk
MTY1MzlhYjQ4YTE0ZGFiNzQ0NzAxYmMzMzJiZmVhNTlhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oCkBAIC00NCw3ICs0
NCw3IEBAIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIAogUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhzaXplX3QgbWF4U3RhY2tTaXplLCBib29sIGVtcHR5
U3RhY2tJc0FsbG93ZWQpOwogUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlw
dENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSosIHNpemVfdCBtYXhTdGFja1NpemUpOwotUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoSlND
OjpFeGVjU3RhdGUqKTsKK1Bhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRD
YWxsU3RhY2tGb3JJbnNwZWN0b3IoSlNDOjpFeGVjU3RhdGUqKTsKIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiBjcmVhdGVTY3JpcHRBcmd1bWVudHMoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25l
ZCBza2lwQXJndW1lbnRDb3VudCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
ZTJlMjY5N2E0NzgxZTY1MTllYjM2Njc1ZTUzNDUxMGJiYjkyYmIyNS4uNTM5ZDllZjNmOTIxMzA5
YjY5YmFhMGNmNTQyNjYyYzI3ZmQ1ZGY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI1OTUsNyArMjU5NSw3IEBAIHN1
YiBHZW5lcmF0ZUNhbGxXaXRoCiAgICAgICAgIHB1c2goQGNhbGxXaXRoQXJncywgInNjcmlwdEFy
Z3VtZW50cyIpOwogICAgIH0KICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmli
dXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiQ2FsbFN0YWNrIikpIHsKLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVT
Y3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMpKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNj
cmlwdENhbGxTdGFja0Zvckluc3BlY3RvcihleGVjKSk7XG4iKTsKICAgICAgICAgJGltcGxJbmNs
dWRlc3siU2NyaXB0Q2FsbFN0YWNrLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlNj
cmlwdENhbGxTdGFja0ZhY3RvcnkuaCJ9ID0gMTsKICAgICAgICAgcHVzaChAY2FsbFdpdGhBcmdz
LCAiY2FsbFN0YWNrIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDg4MDM0NDQzMzM1MWZiNzcxMTA4ODE0M2NhMTNjNmYy
NzdjMDlhMWYuLjJkMzVkM2Q2ZjIyOWVjNTg4ZmNhYmJlY2VhZjM2NzdjYjI5YzdmOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBzdWIgR2VuZXJhdGVDYWxsV2l0aAogICAgICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiU2NyaXB0QXJndW1lbnRzLmgiKTsKICAgICB9CiAgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIkNhbGxTdGFj
ayIpKSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZSgp
KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3Rv
cigpKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKCFj
YWxsU3RhY2spXG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAg
ICByZXR1cm4gdjhVbmRlZmluZWQoKTtcbiIpOwogICAgICAgICBwdXNoKEBjYWxsV2l0aEFyZ3Ms
ICJjYWxsU3RhY2siKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYWRjYTEyOTNjNTdjY2YwNWMyNWNkMTJjMjZi
NmY1NmJiNWE2ODY1My4uZjM3MDU0ZjRlMDNjNDNlYTE5MDE1YTljZGI1M2RjYWQ3MWIzNWRkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAKQEAgLTc3Myw3ICs3NzMsNyBAQCBKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4ZQog
SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90
QmFzZSkpOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3Jp
cHRDYWxsU3RhY2tGb3JDb25zb2xlKGV4ZWMpKTsKKyAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9ySW5zcGVjdG9yKGV4ZWMpKTsKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpLCBXVEY6OmdldFB0cihpbXBsLT53aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlKGNhbGxTdGFjaykpKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTI4OCw3ICsx
Mjg4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmpl
Y3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRl
U2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShleGVjKSk7CisgICAgUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3RvcihleGVjKSk7
CiAgICAgaW1wbC0+c2V0V2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShj
YWxsU3RhY2ssIHRvVGVzdE9iaih2YWx1ZSkpOwogfQogCkBAIC0xODUwLDcgKzE4NTAsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0
aFNjcmlwdEFyZ3VtZW50c0FuZENhbAogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGlj
X2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4gc2NyaXB0QXJndW1lbnRzKGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhleGVjLCAwKSk7
Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxT
dGFja0ZvckNvbnNvbGUoZXhlYykpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxT
dGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoZXhlYykpOwogICAgIGltcGwt
PndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soc2NyaXB0QXJndW1lbnRzLCBjYWxsU3Rh
Y2spOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCmluZGV4IDY3MzNiMjYyNTg1OGNmZGNhZmE0ZWExYTlmNWEwNjljNGMxYmMxYzIuLjJhYmRi
NDM0MThkNzU4YWZjZDEwZTU0MzcyMDYwZTRiNWUxZTVmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC02OTYs
NyArNjk2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0QXJndW1l
bnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0ckdldHRlcigKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUuX2dldCIp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxT
dGFja0ZvckNvbnNvbGUoKSk7CisgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3RvcigpKTsKICAgICBpZiAoIWNhbGxTdGFj
aykKICAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgcmV0dXJuIHRvVjgoaW1wLT53
aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKGNhbGxTdGFjayksIGluZm8u
SG9sZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKQEAgLTcwNyw3ICs3MDcsNyBAQCBzdGF0aWMg
dm9pZCB3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0clNldHRlcih2
ODo6TG9jYWw8djg6OlN0cgogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZS5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhU
ZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoKSk7CisgICAg
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zv
ckluc3BlY3RvcigpKTsKICAgICBpZiAoIWNhbGxTdGFjaykKICAgICAgICAgcmV0dXJuIHY4VW5k
ZWZpbmVkKCk7CiAgICAgaW1wLT5zZXRXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0
cmlidXRlKGNhbGxTdGFjaywgV1RGOjpnZXRQdHIodikpOwpAQCAtMTMzNyw3ICsxMzM3LDcgQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0
YWNrQ2FsbGJhY2soY29uc3Qgdjg6OkEKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhT
Y3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2siKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+
IHNjcmlwdEFyZ3VtZW50cyhjcmVhdGVTY3JpcHRBcmd1bWVudHMoYXJncywgMCkpOwotICAgIFJl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JD
b25zb2xlKCkpOworICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayhjcmVhdGVT
Y3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0b3IoKSk7CiAgICAgaWYgKCFjYWxsU3RhY2spCiAgICAg
ICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogICAgIGltcC0+d2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFjayhzY3JpcHRBcmd1bWVudHMsIGNhbGxTdGFjayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCmluZGV4IGY1
NmVkMzNmN2JjZGE1ODk3MjA3MjA4MTQxMzA0NzE0YzE4ZmU3NDkuLjVmMzJiYTIwZTE1ZmM1NzEw
Yjg5MDZlMzMxY2EwN2YwMGI4YWExN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC0xMDUsMTIgKzEwNSwxMiBA
QCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVf
dCBtYXhTdGFja1NpemUsIGJvb2wgZW1wdAogICAgIHJldHVybiBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2soc3RhY2tUcmFjZSwgbWF4U3RhY2tTaXplLCBlbXB0eVN0YWNrSXNBbGxvd2VkKTsKIH0KIAot
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNv
bGUoKQorUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zv
ckluc3BlY3RvcigpCiB7CiAgICAgc2l6ZV90IG1heFN0YWNrU2l6ZSA9IDE7CiAgICAgaWYgKElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpIHsKICAgICAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGdldFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsKLSAgICAgICAgaWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29u
c29sZUFnZW50RW5hYmxlZChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkKKyAgICAgICAgaWYgKElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRGb3JTY3JpcHRDb250ZXh0KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpKQogICAgICAgICAgICAgbWF4U3RhY2tTaXplID0gU2NyaXB0Q2Fs
bFN0YWNrOjptYXhDYWxsU3RhY2tTaXplVG9DYXB0dXJlOwogICAgIH0KICAgICByZXR1cm4gY3Jl
YXRlU2NyaXB0Q2FsbFN0YWNrKG1heFN0YWNrU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgKaW5kZXggZTU1OGUxYjg4YTdm
NTQ4ZGIxYmZkMzUzOTQ2Y2U1YjBmY2IxMzUyOC4uMTM4ZmMzN2MzNDc3NjUwYjhlZGNlMmZmNWZl
YjYyOTQwMGVlMDc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENhbGxTdGFja0ZhY3RvcnkuaApAQCAtNDgsNyArNDgsNyBAQCBjb25zdCB2ODo6U3RhY2tU
cmFjZTo6U3RhY2tUcmFjZU9wdGlvbnMgc3RhY2tUcmFjZU9wdGlvbnMgPSBzdGF0aWNfY2FzdDx2
ODo6U3RhYwogCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0
YWNrKHY4OjpIYW5kbGU8djg6OlN0YWNrVHJhY2U+LCBzaXplX3QgbWF4U3RhY2tTaXplKTsKIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90IG1h
eFN0YWNrU2l6ZSwgYm9vbCBlbXB0eVN0YWNrSXNBbGxvd2VkID0gZmFsc2UpOwotUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoKTsKK1Bh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JJbnNwZWN0
b3IoKTsKIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGVTY3JpcHRBcmd1bWVudHMo
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgdjhhcmd1bWVudHMsIHVuc2lnbmVkIHNraXBBcmd1bWVudENv
dW50KTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyZmNhY2E2MmM4YWQ0MmE2ZjFiNDEy
YTkyNmQwMjhkYmY3Y2I5ZDcyLi40ODAwYWRlOTE0ZTIwMjE4Y2U5YmYzODdhYjFlZDdhZjUyOTk1
ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVy
LmNwcApAQCAtMjIxLDcgKzIyMSw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFNjcmlwdENvbnRy
b2xsZXI6OmNhbGxGdW5jdGlvbldpdGhJbnN0cnVtZW50YXRpb24oU2NyaXB0RXhlCiAgICAgICAg
IHJldHVybiBoYW5kbGVNYXhSZWN1cnNpb25EZXB0aEV4Y2VlZGVkKCk7CiAKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llOwotICAgIGlmIChJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnRpbWVsaW5lQWdlbnRFbmFibGVkKGNvbnRleHQpKSB7CisgICAgaWYgKEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkgJiYgY29udGV4dCkgewogICAgICAg
ICBTdHJpbmcgcmVzb3VyY2VOYW1lOwogICAgICAgICBpbnQgbGluZU51bWJlcjsKICAgICAgICAg
cmVzb3VyY2VJbmZvKGZ1bmN0aW9uLCByZXNvdXJjZU5hbWUsIGxpbmVOdW1iZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAppbmRleCAxOTM2
YWU4ZDBhNGI4M2RhMTA0YmNkMWU1Yzk0NTJjYTNjNzM5NDg4Li44MWVhMjFhM2I4ZWQ1NGYzYTdh
ZTYyNzUwNjdjZjIyYWQyYzY4YjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTVdpbmRvd1NoZWxsLmNwcApAQCAtNjExLDcgKzYxMSw3IEBAIHZvaWQgVjhET01XaW5k
b3dTaGVsbDo6c2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+CiB7CiAgICAgQVNTRVJUKCFtX3dvcmxkLT5pc01haW5Xb3JsZCgpKTsKICAgICAv
LyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgaGVyZT8KLSAgICBpZiAoIW1faXNvbGF0ZWRXb3JsZFNo
ZWxsU2VjdXJpdHlPcmlnaW4gJiYgIWNvbnRleHQoKS5Jc0VtcHR5KCkgJiYgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpydW50aW1lQWdlbnRFbmFibGVkKG1fZnJhbWUpKSB7CisgICAgaWYgKCFt
X2lzb2xhdGVkV29ybGRTaGVsbFNlY3VyaXR5T3JpZ2luICYmICFjb250ZXh0KCkuSXNFbXB0eSgp
ICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpIHsKICAgICAgICAg
djg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogICAgICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0
U3RhdGUgPSBTY3JpcHRTdGF0ZTo6Zm9yQ29udGV4dCh2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpO
ZXcoY29udGV4dCgpKSk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3Jl
YXRlSXNvbGF0ZWRDb250ZXh0KG1fZnJhbWUsIHNjcmlwdFN0YXRlLCBzZWN1cml0eU9yaWdpbi5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdvcmtlckNv
bnRleHRFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29y
a2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGQ5YmI5NTU0NTQ0NDdkOGZiNzA1ODk1
NTlhM2EwNTkwMTcxY2NjMmUuLjYyMTQxZDY3NjQzM2QzYjE3Yjg4NDBiYjAwYjMzNWZmM2RjZWE0
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4
dEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29y
a2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuY3BwCkBAIC05NSw3ICs5NSw3IEBAIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IFY4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXI6OmNhbGxMaXN0ZW5lckZ1bmN0
aW9uKFNjcmlwdEV4CiAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigpOwogCiAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZTsKLSAgICBpZiAoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp0aW1lbGluZUFnZW50RW5hYmxlZChjb250ZXh0KSkgeworICAg
IGlmIChJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKSB7CiAgICAgICAg
IFN0cmluZyByZXNvdXJjZU5hbWUoInVuZGVmaW5lZCIpOwogICAgICAgICBpbnQgbGluZU51bWJl
ciA9IDE7CiAgICAgICAgIHY4OjpTY3JpcHRPcmlnaW4gb3JpZ2luID0gaGFuZGxlckZ1bmN0aW9u
LT5HZXRTY3JpcHRPcmlnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDFhOTE3MDU4MTI4N2MwZDFi
MWM0MDMxOWMwZWJmNzM3ZTRjYWU5MjAuLjBiNDY4ZDRiZWY3ZTJlM2JjZDRlYjM0OWRhODgyY2Ew
OWI4NjZkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBXaW5kb3dTZXRUaW1lb3V0SW1wbChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
LCBib29sIHNpbmdsCiAKICAgICAgICAgaWQgPSBET01UaW1lcjo6aW5zdGFsbChzY3JpcHRDb250
ZXh0LCBhY3Rpb24ucmVsZWFzZSgpLCB0aW1lb3V0LCBzaW5nbGVTaG90KTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0
Q2FsbFN0YWNrRm9yQ29uc29sZSgpKTsKKyAgICAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zvckluc3BlY3RvcigpKTsKICAgICAgICAg
aWYgKGltcC0+ZG9jdW1lbnQoKSAmJiAhaW1wLT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKS0+YWxsb3dFdmFsKGNhbGxTdGFjay5yZWxlYXNlKCkpKQogICAgICAgICAgICAgcmV0
dXJuIHY4SW50ZWdlcigwLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgICAgIEFTU0VSVChpbXAt
PmZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwCmluZGV4IDE0YWQ0YWJhY2Ix
MDg0ZDliMDI3YmRhYmIwMWZlMjkxZTIzMWEyYjguLmE2ZmIyMmE0NDFiOTRmMDhmNWNiYTU1NWU5
OThlN2UwNjJiYjUzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEhUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAKQEAgLTg3LDcg
Kzg3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTENhbnZhc0VsZW1lbnQ6OmdldENv
bnRleHRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICAgICAgcmV0dXJuIHY4OjpOdWxs
KGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBlbHNlIGlmIChyZXN1bHQtPmlzMmQoKSkgewogICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhSZXN1bHQgPSB0b1Y4KHN0YXRpY19jYXN0PENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KHJlc3VsdCksIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKLSAgICAgICAgaWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y2FudmFz
QWdlbnRFbmFibGVkKGltcC0+ZG9jdW1lbnQoKSkpIHsKKyAgICAgICAgaWYgKEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpIHsKICAgICAgICAgICAgIFNjcmlwdFN0YXRl
KiBzY3JpcHRTdGF0ZSA9IFNjcmlwdFN0YXRlOjpmb3JDb250ZXh0KHY4OjpDb250ZXh0OjpHZXRD
dXJyZW50KCkpOwogICAgICAgICAgICAgU2NyaXB0T2JqZWN0IGNvbnRleHQoc2NyaXB0U3RhdGUs
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodjhSZXN1bHQpKTsKICAgICAgICAgICAgIFNj
cmlwdE9iamVjdCB3cmFwcGVkID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3cmFwQ2FudmFz
MkRSZW5kZXJpbmdDb250ZXh0Rm9ySW5zdHJ1bWVudGF0aW9uKGltcC0+ZG9jdW1lbnQoKSwgY29u
dGV4dCk7CkBAIC0xMDUsNyArMTA1LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SFRNTENh
bnZhc0VsZW1lbnQ6OmdldENvbnRleHRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICAg
ICAgcGVySXNvbGF0ZURhdGEtPnNldFNob3VsZENvbGxlY3RHYXJiYWdlU29vbigpOwogCiAgICAg
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OFJlc3VsdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Kj4ocmVzdWx0KSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29s
YXRlKCkpOwotICAgICAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjYW52YXNBZ2Vu
dEVuYWJsZWQoaW1wLT5kb2N1bWVudCgpKSkgeworICAgICAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkgewogICAgICAgICAgICAgU2NyaXB0U3RhdGUqIHNj
cmlwdFN0YXRlID0gU2NyaXB0U3RhdGU6OmZvckNvbnRleHQodjg6OkNvbnRleHQ6OkdldEN1cnJl
bnQoKSk7CiAgICAgICAgICAgICBTY3JpcHRPYmplY3QgZ2xDb250ZXh0KHNjcmlwdFN0YXRlLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHY4UmVzdWx0KSk7CiAgICAgICAgICAgICBTY3Jp
cHRPYmplY3Qgd3JhcHBlZCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d3JhcFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlvbihpbXAtPmRvY3VtZW50KCksIGdsQ29udGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXb3Jr
ZXJDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdvcmtlckNvbnRleHRDdXN0b20uY3BwCmluZGV4IGNhOTM1MzM3OTdkNGNjNThiOTE1NGM2ZGE1
N2U5MmQzZmY5MmY1ZmQuLjg5ZWNkYzk4Njc5ZTgzNWI2YzJmZjc2YzVjNTMwZTA2MmFlNjNiOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdvcmtlckNv
bnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFdvcmtlckNvbnRleHRDdXN0b20uY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBTZXRUaW1lb3V0T3JJbnRlcnZhbChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBi
b29sIHNpbmdsCiAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gcHJveHkt
PmNvbnRleHQoKTsKICAgICBpZiAoZnVuY3Rpb24tPklzU3RyaW5nKCkpIHsKICAgICAgICAgaWYg
KENvbnRlbnRTZWN1cml0eVBvbGljeSogcG9saWN5ID0gd29ya2VyQ29udGV4dC0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoKTsKKyAgICAgICAgICAg
IFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFj
a0Zvckluc3BlY3RvcigpOwogICAgICAgICAgICAgaWYgKCFwb2xpY3ktPmFsbG93RXZhbChjYWxs
U3RhY2sucmVsZWFzZSgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdjhJbnRlZ2VyKDAsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uCmluZGV4IDM5ZWQ4N2Q4NmJiNDk3NzMzOGMzYzczZjU2ZTcyMzU0YzNiMjdlYWYu
LmQ5MTk1Y2U4ZjAxZmI1Y2FlOTI1ZjE4YmI2ZGNlMWVlMjllZjA5N2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTU4OSwxNSArNTg5LDE0IEBACiAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlbGxzIGluc3BlY3RlZCBpbnN0YW5jZSh3b3JrZXIg
b3IgcGFnZSkgdGhhdCBpdCBjYW4gcnVuIGluIGNhc2UgaXQgd2FzIHN0YXJ0ZWQgcGF1c2VkLiIK
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAi
ZW5hYmxlIiwKLSAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKLSAgICAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyByZXBvcnRpbmcgb2YgZXhlY3V0aW9uIGNvbnRleHRz
IGNyZWF0aW9uIGJ5IG1lYW5zIG9mIDxjb2RlPmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkPC9jb2Rl
PiBldmVudC4gV2hlbiB0aGUgcmVwb3J0aW5nIGdldHMgZW5hYmxlZCB0aGUgZXZlbnQgd2lsbCBi
ZSBzZW50IGltbWVkaWF0ZWx5IGZvciBlYWNoIGV4aXN0aW5nIGV4ZWN1dGlvbiBjb250ZXh0LiIK
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAi
ZGlzYWJsZSIsCisgICAgICAgICAgICAgICAgIm5hbWUiOiAic2V0UmVwb3J0RXhlY3V0aW9uQ29u
dGV4dENyZWF0aW9uIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJlbmFibGVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNj
cmlwdGlvbiI6ICJSZXBvcnRpbmcgZW5hYmxlZCBzdGF0ZS4iIH0KKyAgICAgICAgICAgICAgICBd
LAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAotICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJEaXNhYmxlcyByZXBvcnRpbmcgb2YgZXhlY3V0aW9uIGNvbnRleHRzIGNyZWF0
aW9uLiIKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyByZXBvcnRpbmcg
YWJvdXQgY3JlYXRpb24gb2YgZXhlY3V0aW9uIGNvbnRleHRzIGJ5IG1lYW5zIG9mIDxjb2RlPmV4
ZWN1dGlvbkNvbnRleHRDcmVhdGVkPC9jb2RlPiBldmVudC4gV2hlbiB0aGUgcmVwb3J0aW5nIGdl
dHMgZW5hYmxlZCB0aGUgZXZlbnQgd2lsbCBiZSBzZW50IGltbWVkaWF0ZWx5IGZvciBlYWNoIGV4
aXN0aW5nIGV4ZWN1dGlvbiBjb250ZXh0LiIKICAgICAgICAgICAgIH0KKwogICAgICAgICBdLAog
ICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCBmNTQ0YjE1ODlmOTZl
ZDJmYjVjY2NhNjZkM2I1OWNlYTJlMjM1MjdkLi5hY2ViMmRhNGFmNmY4NTM1MWY4OGQ5OGM4M2Y2
OTU4MDU1ODE2MmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcApAQCAtNDIsNyArNDIsNiBAQAogI2luY2x1ZGUgIlNjcmlwdEFy
Z3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgotI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
Y3JpcHRPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRQcm9maWxlci5oIgogI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgpAQCAtNjEsMTUgKzYwLDEyIEBAIHN0YXRpYyBjb25zdCBjaGFyIG1v
bml0b3JpbmdYSFJbXSA9ICJtb25pdG9yaW5nWEhSIjsKIHN0YXRpYyBjb25zdCBjaGFyIGNvbnNv
bGVNZXNzYWdlc0VuYWJsZWRbXSA9ICJjb25zb2xlTWVzc2FnZXNFbmFibGVkIjsKIH0KIAotaW50
IEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c19lbmFibGVkQWdlbnRDb3VudCA9IDA7Ci0KIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9yQ29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9yQ29uc29sZUFnZW50PigiQ29uc29sZSIsIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9wcmV2aW91c01lc3NhZ2UoMCkK
ICAgICAsIG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQoMCkKLSAgICAsIG1fZW5hYmxlZChm
YWxzZSkKIHsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckNvbnNvbGVB
Z2VudCh0aGlzKTsKIH0KQEAgLTg0LDEzICs4MCw2IEBAIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6
fkluc3BlY3RvckNvbnNvbGVBZ2VudCgpCiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpl
bmFibGUoRXJyb3JTdHJpbmcqKQogewotICAgIGlmIChtX2VuYWJsZWQpCi0gICAgICAgIHJldHVy
bjsKLSAgICBtX2VuYWJsZWQgPSB0cnVlOwotICAgIGlmICghc19lbmFibGVkQWdlbnRDb3VudCkK
LSAgICAgICAgU2NyaXB0Q29udHJvbGxlcjo6c2V0Q2FwdHVyZUNhbGxTdGFja0ZvclVuY2F1Z2h0
RXhjZXB0aW9ucyh0cnVlKTsKLSAgICArK3NfZW5hYmxlZEFnZW50Q291bnQ7Ci0KICAgICBtX3N0
YXRlLT5zZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpjb25zb2xlTWVzc2FnZXNFbmFibGVk
LCB0cnVlKTsKIAogICAgIGlmIChtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSB7CkBAIC0x
MDUsMTEgKzk0LDYgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmVuYWJsZShFcnJvclN0
cmluZyopCiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5n
KikKIHsKLSAgICBpZiAoIW1fZW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fZW5hYmxl
ZCA9IGZhbHNlOwotICAgIGlmICghKC0tc19lbmFibGVkQWdlbnRDb3VudCkpCi0gICAgICAgIFNj
cmlwdENvbnRyb2xsZXI6OnNldENhcHR1cmVDYWxsU3RhY2tGb3JVbmNhdWdodEV4Y2VwdGlvbnMo
ZmFsc2UpOwogICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6OmNvbnNv
bGVNZXNzYWdlc0VuYWJsZWQsIGZhbHNlKTsKIH0KIApAQCAtMTE5LDcgKzEwMyw3IEBAIHZvaWQg
SW5zcGVjdG9yQ29uc29sZUFnZW50OjpjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nKikKICAgICBt
X2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50ID0gMDsKICAgICBtX3ByZXZpb3VzTWVzc2FnZSA9
IDA7CiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPnJlbGVhc2VPYmplY3RHcm91cCgiY29u
c29sZSIpOwotICAgIGlmIChtX2Zyb250ZW5kICYmIG1fZW5hYmxlZCkKKyAgICBpZiAobV9mcm9u
dGVuZCAmJiBtX3N0YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjpjb25zb2xlTWVz
c2FnZXNFbmFibGVkKSkKICAgICAgICAgbV9mcm9udGVuZC0+bWVzc2FnZXNDbGVhcmVkKCk7CiB9
CiAKQEAgLTE0OCw4ICsxMzIsNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c2V0RnJv
bnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogdm9pZCBJbnNwZWN0b3JDb25zb2xl
QWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQogewogICAgIG1fZnJvbnRlbmQgPSAwOwotICAgIFN0cmlu
ZyBlcnJvclN0cmluZzsKLSAgICBkaXNhYmxlKCZlcnJvclN0cmluZyk7CisgICAgbV9zdGF0ZS0+
c2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6Y29uc29sZU1lc3NhZ2VzRW5hYmxlZCwgZmFs
c2UpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29s
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBh
cmd1bWVudHMsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCkBAIC0yOTYs
MTIgKzI3OSwxMiBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRkQ29uc29sZU1lc3Nh
Z2UoUGFzc093blB0cjxDb25zb2xlTWVzc2FnZT4gY29uc29sZQogCiAgICAgaWYgKG1fcHJldmlv
dXNNZXNzYWdlICYmICFpc0dyb3VwTWVzc2FnZShtX3ByZXZpb3VzTWVzc2FnZS0+dHlwZSgpKSAm
JiBtX3ByZXZpb3VzTWVzc2FnZS0+aXNFcXVhbChjb25zb2xlTWVzc2FnZS5nZXQoKSkpIHsKICAg
ICAgICAgbV9wcmV2aW91c01lc3NhZ2UtPmluY3JlbWVudENvdW50KCk7Ci0gICAgICAgIGlmICht
X2Zyb250ZW5kICYmIG1fZW5hYmxlZCkKKyAgICAgICAgaWYgKG1fZnJvbnRlbmQgJiYgbV9zdGF0
ZS0+Z2V0Qm9vbGVhbihDb25zb2xlQWdlbnRTdGF0ZTo6Y29uc29sZU1lc3NhZ2VzRW5hYmxlZCkp
CiAgICAgICAgICAgICBtX3ByZXZpb3VzTWVzc2FnZS0+dXBkYXRlUmVwZWF0Q291bnRJbkNvbnNv
bGUobV9mcm9udGVuZCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9wcmV2aW91c01lc3NhZ2Ug
PSBjb25zb2xlTWVzc2FnZS5nZXQoKTsKICAgICAgICAgbV9jb25zb2xlTWVzc2FnZXMuYXBwZW5k
KGNvbnNvbGVNZXNzYWdlKTsKLSAgICAgICAgaWYgKG1fZnJvbnRlbmQgJiYgbV9lbmFibGVkKQor
ICAgICAgICBpZiAobV9mcm9udGVuZCAmJiBtX3N0YXRlLT5nZXRCb29sZWFuKENvbnNvbGVBZ2Vu
dFN0YXRlOjpjb25zb2xlTWVzc2FnZXNFbmFibGVkKSkKICAgICAgICAgICAgIG1fcHJldmlvdXNN
ZXNzYWdlLT5hZGRUb0Zyb250ZW5kKG1fZnJvbnRlbmQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LCB0cnVlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaAppbmRleCA3ZjQzMzkzMTNjMzgxZTE3Mzc3NTE4ODQyZTZiNDI4MjIx
ZjYwNGU1Li41MmJlMTE4MTgyNTAyZmNjMjAwNjVkNjQ4OWNlNjZiNjJkMzY0MGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCkBAIC02
MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Kik7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0cmluZyopOwotICAgIGJvb2wgZW5hYmxlZCgpIHsg
cmV0dXJuIG1fZW5hYmxlZDsgfQogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwpAQCAtMTAxLDkgKzEwMCw2IEBAIHBy
b3RlY3RlZDoKICAgICBpbnQgbV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudDsKICAgICBIYXNo
TWFwPFN0cmluZywgdW5zaWduZWQ+IG1fY291bnRzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBkb3Vi
bGU+IG1fdGltZXM7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7Ci1wcml2YXRlOgotICAgIHN0YXRpYyBp
bnQgc19lbmFibGVkQWdlbnRDb3VudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRl
eCA1MTk3OGZmOTMzNTNlZTVhMjU4NGZhMzdkYWIwYmZjZTU3MGYxMGMwLi41ZjIzNTdhMDdmY2Rj
MTY5NTliNDBiNTUyMWExNjk4ZTk5ZTdjM2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0yMjMsNiArMjIzLDggQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiBmcm9udGVuZENoYW4KICAgICBmb3IgKEFnZW50czo6aXRlcmF0b3IgaXQgPSBtX2FnZW50
cy5iZWdpbigpOyBpdCAhPSBtX2FnZW50cy5lbmQoKTsgKytpdCkKICAgICAgICAgKCppdCktPnNl
dEZyb250ZW5kKGZyb250ZW5kKTsKIAorICAgIGlmICghSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpoYXNGcm9udGVuZHMoKSkKKyAgICAgICAgU2NyaXB0Q29udHJvbGxlcjo6c2V0Q2FwdHVyZUNh
bGxTdGFja0ZvclVuY2F1Z2h0RXhjZXB0aW9ucyh0cnVlKTsKICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmZyb250ZW5kQ3JlYXRlZCgpOwogCiAgICAgQVNTRVJUKG1faW5zcGVjdG9yQ2xp
ZW50KTsKQEAgLTI1MCw2ICsyNTIsOCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nv
bm5lY3RGcm9udGVuZCgpCiAgICAgbV9pbnNwZWN0b3JGcm9udGVuZC5jbGVhcigpOwogCiAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcm9udGVuZERlbGV0ZWQoKTsKKyAgICBpZiAoIUlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpCisgICAgICAgIFNjcmlwdENv
bnRyb2xsZXI6OnNldENhcHR1cmVDYWxsU3RhY2tGb3JVbmNhdWdodEV4Y2VwdGlvbnMoZmFsc2Up
OwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNob3coKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0
Y2I1ZTU2OGQ0ZjU1Yjc4ZmE2MTJiZmY4ZTNmOGM1YWQ1NmY3N2UyLi5lYjA2MDcxZTQ0ZjllMTEz
OWIyZmY5NjNmMTAyM2M3NzgyYjA5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNDYsNyArNDYsNiBAQAog
I2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDU1NBZ2VudC5o
IgotI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhc0FnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q29uc29sZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTExMzUsMzQgKzExMzQsMjMgQEAg
Ym9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbGxlY3RpbmdIVE1MUGFyc2VFcnJvcnMo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW4KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjYW52YXNBZ2VudEVuYWJsZWQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK2Jvb2wgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpoYXNGcm9udGVuZEZvclNjcmlwdENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIHsKLSAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgfHwgIWhhc0Zyb250ZW5kcygpKQorICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yQ29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KS0+aW5zcGVjdG9yQ2FudmFzQWdlbnQo
KTsKLX0KIAotYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVBZ2VudEVuYWJs
ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKLXsKLSAg
ICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgfHwgIWhhc0Zyb250ZW5kcygpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KS0+
aW5zcGVjdG9yQ29uc29sZUFnZW50KCk7Ci0gICAgcmV0dXJuIGNvbnNvbGVBZ2VudCAmJiBjb25z
b2xlQWdlbnQtPmVuYWJsZWQoKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnJ1bnRpbWVBZ2VudEVuYWJsZWQoRnJhbWUqIGZyYW1lKQotewotICAgIGlmICghZnJhbWUgfHwg
IWhhc0Zyb250ZW5kcygpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgSW5zcGVjdG9yUnVu
dGltZUFnZW50KiBydW50aW1lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJh
bWUpLT5pbnNwZWN0b3JSdW50aW1lQWdlbnQoKTsKLSAgICByZXR1cm4gcnVudGltZUFnZW50ICYm
IHJ1bnRpbWVBZ2VudC0+ZW5hYmxlZCgpOwotfQorI2lmIEVOQUJMRShXT1JLRVJTKQorICAgIGlm
IChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSkgeworICAgICAgICBX
b3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgICAgICBXb3JrZXJJbnNwZWN0b3JDb250cm9s
bGVyKiB3b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyID0gd29ya2VyQ29udGV4dC0+d29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcigpOworICAgICAgICByZXR1cm4gd29ya2VySW5zcGVjdG9yQ29udHJv
bGxlciAmJiB3b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLT5oYXNGcm9udGVuZCgpOworICAgIH0K
KyNlbmRpZgogCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGltZWxpbmVBZ2VudEVu
YWJsZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKLXsK
LSAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgfHwgIWhhc0Zyb250ZW5kcygpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250
ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCk7Cisg
ICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSk7CisgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICByZXR1cm4g
cGFnZSAmJiBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmhhc0Zyb250ZW5kKCk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwYXVzZU9uTmF0aXZlRXZlbnRJZk5lZWRl
ZChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBib29sIGlzRE9NRXZl
bnQsIGNvbnN0IFN0cmluZyYgZXZlbnROYW1lLCBib29sIHN5bmNocm9ub3VzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4
IDk5YTk3ZjI2NDIwNzk4OGE3N2QyMDQyOTI4YWYwOTNlNjg4YzQ4NzIuLjU0ZTlhZDVmNjU5YzAx
YjkxOWIyYzg0ZDEyMTJiNjRjZTI1NTJhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTI1MiwxNyArMjUyLDExIEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZENyZWF0ZWQoKSB7IHNfZnJvbnRlbmRD
b3VudGVyICs9IDE7IH0KICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZERlbGV0ZWQoKSB7IHNfZnJv
bnRlbmRDb3VudGVyIC09IDE7IH0KICAgICBzdGF0aWMgYm9vbCBoYXNGcm9udGVuZHMoKSB7IHJl
dHVybiBzX2Zyb250ZW5kQ291bnRlcjsgfQotICAgIHN0YXRpYyBib29sIGNhbnZhc0FnZW50RW5h
YmxlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgc3RhdGljIGJvb2wgY29uc29sZUFn
ZW50RW5hYmxlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0gICAgc3RhdGljIGJvb2wgcnVu
dGltZUFnZW50RW5hYmxlZChGcmFtZSopOwotICAgIHN0YXRpYyBib29sIHRpbWVsaW5lQWdlbnRF
bmFibGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBzdGF0aWMgYm9vbCBoYXNGcm9u
dGVuZEZvclNjcmlwdENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHN0YXRp
YyBib29sIGNvbGxlY3RpbmdIVE1MUGFyc2VFcnJvcnMoUGFnZSopOwogI2Vsc2UKICAgICBzdGF0
aWMgYm9vbCBoYXNGcm9udGVuZHMoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHN0YXRpYyBib29s
IGNhbnZhc0FnZW50RW5hYmxlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICBzdGF0aWMgYm9vbCBjb25zb2xlQWdlbnRFbmFibGVkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHN0YXRpYyBib29sIHJ1bnRpbWVBZ2Vu
dEVuYWJsZWQoRnJhbWUqKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHN0YXRpYyBib29sIHRpbWVs
aW5lQWdlbnRFbmFibGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHN0YXRpYyBib29sIGhhc0Zyb250ZW5kRm9yU2NyaXB0Q29udGV4dChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICBzdGF0aWMgYm9vbCBjb2xsZWN0
aW5nSFRNTFBhcnNlRXJyb3JzKFBhZ2UqKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAK
aW5kZXggYTNkZmRkZWM5MGE1OWY1MTU2ZWYyZGRkNDEzNWM4NWY4OTQ4N2MxZi4uN2U0ZmQ0YjYy
MzZlM2JlNDkwMWI3M2YzMThkMGRmNzA4MDE3N2Q0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTU4LDcgKzU4LDYgQEAg
c3RhdGljIGJvb2wgYXNCb29sKGNvbnN0IGJvb2wqIGNvbnN0IGIpCiAKIEluc3BlY3RvclJ1bnRp
bWVBZ2VudDo6SW5zcGVjdG9yUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5z
cGVjdG9yUnVudGltZUFnZW50PigiUnVudGltZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRl
KQotICAgICwgbV9lbmFibGVkKGZhbHNlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIo
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQog
ICAgICwgbV9zY3JpcHREZWJ1Z1NlcnZlcigwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IDY2ZGJhZmQ2NWMyYjhmYjE0ODYzMGNl
MDVjYTczMjdkOWRiNTMyMDEuLmY4ZTM0NWUyYjdjMTU3ZjY2ZWQwMWU1MzQxOGE2NjlhNmI4NzVl
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1l
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFn
ZW50LmgKQEAgLTU3LDEwICs1Nyw3IEBAIGNsYXNzIEluc3BlY3RvclJ1bnRpbWVBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUnVudGltZUFnZW50PiwKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JSdW50aW1lQWdlbnQoKTsKIAotICAgIGJvb2wgZW5hYmxl
ZCgpIHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAgIC8vIFBhcnQgb2YgdGhlIHByb3RvY29sLgot
ICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSB7IG1fZW5hYmxlZCA9IHRydWU7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIHsgbV9lbmFibGVkID0g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcqLAogICAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwKQEAgLTk4LDcgKzk1LDYgQEAgcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgPSAwOwogCiAgICAgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIoKSB7IHJldHVybiBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlcjsgfQotICAgIGJvb2wgbV9lbmFibGVkOwogCiBwcml2YXRlOgogICAgIEluamVj
dGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggNzRjM2I3ZmY5ZGI2MWI5
YjU0MmM5YjJhNjAzNDk3ZWYzNjZkYjRkNi4uMjU0OTU3YTdmMWZlNTQ4ODk5YTVhM2IyMWRmMTVm
ZGJjNWFhNzk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6UnVu
dGltZTo6RXhlY3V0aW9uQ29udGV4dERlc2NyaXB0aW9uOwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBuYW1lc3BhY2UgUGFnZVJ1bnRpbWVBZ2VudFN0YXRlIHsKLXN0YXRpYyBjb25zdCBjaGFyIHJ1
bnRpbWVFbmFibGVkW10gPSAicnVudGltZUVuYWJsZWQiOworc3RhdGljIGNvbnN0IGNoYXIgcmVw
b3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uW10gPSAicmVwb3J0RXhlY3V0aW9uQ29udGV4dENy
ZWF0aW9uIjsKIH07CiAKIFBhZ2VSdW50aW1lQWdlbnQ6OlBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRl
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgUGFnZSogcGFn
ZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCkKQEAgLTc2LDQ0ICs3Niw0NyBAQCB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmNsZWFy
RnJvbnRlbmQoKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGFnZVJ1bnRpbWVB
Z2VudCgwKTsKICAgICBtX2Zyb250ZW5kID0gMDsKLSAgICBTdHJpbmcgZXJyb3JTdHJpbmc7Ci0g
ICAgZGlzYWJsZSgmZXJyb3JTdHJpbmcpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUGFnZVJ1
bnRpbWVBZ2VudFN0YXRlOjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24sIGZhbHNlKTsK
IH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXN0b3JlKCkKIHsKLSAgICBpZiAobV9zdGF0
ZS0+Z2V0Qm9vbGVhbihQYWdlUnVudGltZUFnZW50U3RhdGU6OnJ1bnRpbWVFbmFibGVkKSkgewot
ICAgICAgICBTdHJpbmcgZXJyb3I7Ci0gICAgICAgIGVuYWJsZSgmZXJyb3IpOwotICAgIH0KLX0K
LQotdm9pZCBQYWdlUnVudGltZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
KQotewotICAgIGlmIChtX2VuYWJsZWQpCisgICAgaWYgKCFtX3N0YXRlLT5nZXRCb29sZWFuKFBh
Z2VSdW50aW1lQWdlbnRTdGF0ZTo6cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKSkKICAg
ICAgICAgcmV0dXJuOwotCi0gICAgSW5zcGVjdG9yUnVudGltZUFnZW50OjplbmFibGUoZXJyb3JT
dHJpbmcpOwotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUGFnZVJ1bnRpbWVBZ2VudFN0YXRlOjpy
dW50aW1lRW5hYmxlZCwgdHJ1ZSk7CiAgICAgLy8gT25seSByZXBvcnQgZXhpc3RpbmcgY29udGV4
dHMgaWYgdGhlIHBhZ2UgZGlkIGNvbW1pdCBsb2FkLCBvdGhlcndpc2Ugd2UgbWF5CiAgICAgLy8g
dW5pbnRlbnRpb25hbGx5IGluaXRpYWxpemUgY29udGV4dHMgaW4gdGhlIGZyYW1lcyB3aGljaCBt
YXkgdHJpZ2dlciBzb21lIGxpc3RlbmVycwogICAgIC8vIHRoYXQgYXJlIGV4cGVjdGVkIHRvIGJl
IHRyaWdnZXJlZCBvbmx5IGFmdGVyIHRoZSBsb2FkIGlzIGNvbW1pdHRlZCwgc2VlIGh0dHA6Ly9j
cmJ1Zy5jb20vMTMxNjIzCi0gICAgaWYgKG1faW5zcGVjdG9yQWdlbnQtPmRpZENvbW1pdExvYWRG
aXJlZCgpKQotICAgICAgICByZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKTsKKyAgICBp
ZiAobV9pbnNwZWN0b3JBZ2VudC0+ZGlkQ29tbWl0TG9hZEZpcmVkKCkpIHsKKyAgICAgICAgU3Ry
aW5nIGVycm9yOworICAgICAgICBzZXRSZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oJmVy
cm9yLCB0cnVlKTsKKyAgICB9CiB9CiAKLXZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlzYWJsZShF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcpCit2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnNldFJlcG9y
dEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbihFcnJvclN0cmluZyosIGJvb2wgZW5hYmxlKQogewot
ICAgIGlmICghbV9lbmFibGVkKQorICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUGFnZVJ1bnRpbWVB
Z2VudFN0YXRlOjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24sIGVuYWJsZSk7CisgICAg
aWYgKCFlbmFibGUpCiAgICAgICAgIHJldHVybjsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFNjcmlw
dFN0YXRlKiwgU2VjdXJpdHlPcmlnaW4qPiA+IGlzb2xhdGVkQ29udGV4dHM7CisgICAgZm9yIChG
cmFtZSogZnJhbWUgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBpZiAoIWZyYW1lLT5z
Y3JpcHQoKS0+Y2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVTY3JpcHQpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIFN0cmluZyBmcmFtZUlkID0gbV9wYWdlQWdlbnQt
PmZyYW1lSWQoZnJhbWUpOwogCi0gICAgSW5zcGVjdG9yUnVudGltZUFnZW50OjpkaXNhYmxlKGVy
cm9yU3RyaW5nKTsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFBhZ2VSdW50aW1lQWdlbnRTdGF0
ZTo6cnVudGltZUVuYWJsZWQsIGZhbHNlKTsKKyAgICAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0
YXRlID0gbWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpOworICAgICAgICBub3RpZnlDb250ZXh0
Q3JlYXRlZChmcmFtZUlkLCBzY3JpcHRTdGF0ZSwgMCwgdHJ1ZSk7CisgICAgICAgIGZyYW1lLT5z
Y3JpcHQoKS0+Y29sbGVjdElzb2xhdGVkQ29udGV4dHMoaXNvbGF0ZWRDb250ZXh0cyk7CisgICAg
ICAgIGlmIChpc29sYXRlZENvbnRleHRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaTwgaXNvbGF0ZWRDb250ZXh0cy5zaXplKCk7
IGkrKykKKyAgICAgICAgICAgIG5vdGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIGlzb2xhdGVk
Q29udGV4dHNbaV0uZmlyc3QsIGlzb2xhdGVkQ29udGV4dHNbaV0uc2Vjb25kLCBmYWxzZSk7Cisg
ICAgICAgIGlzb2xhdGVkQ29udGV4dHMuY2xlYXIoKTsKKyAgICB9CiB9CiAKIHZvaWQgUGFnZVJ1
bnRpbWVBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3QoRnJhbWUqIGZyYW1lKQogewotICAgIGlm
ICghbV9lbmFibGVkKQorICAgIGlmICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlUnVudGltZUFn
ZW50U3RhdGU6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbikpCiAgICAgICAgIHJldHVy
bjsKICAgICBBU1NFUlQobV9mcm9udGVuZCk7CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBtX3BhZ2VB
Z2VudC0+ZnJhbWVJZChmcmFtZSk7CkBAIC0xMjMsNyArMTI2LDcgQEAgdm9pZCBQYWdlUnVudGlt
ZUFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdChGcmFtZSogZnJhbWUpCiAKIHZvaWQgUGFnZVJ1
bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KEZyYW1lKiBmcmFtZSwgU2NyaXB0
U3RhdGUqIHNjcmlwdFN0YXRlLCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewotICAgIGlmICgh
bV9lbmFibGVkKQorICAgIGlmICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlUnVudGltZUFnZW50
U3RhdGU6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbikpCiAgICAgICAgIHJldHVybjsK
ICAgICBBU1NFUlQobV9mcm9udGVuZCk7CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBtX3BhZ2VBZ2Vu
dC0+ZnJhbWVJZChmcmFtZSk7CkBAIC0xNTIsMjUgKzE1NSw2IEBAIHZvaWQgUGFnZVJ1bnRpbWVB
Z2VudDo6dW5tdXRlQ29uc29sZSgpCiAgICAgQ29uc29sZTo6dW5tdXRlKCk7CiB9CiAKLXZvaWQg
UGFnZVJ1bnRpbWVBZ2VudDo6cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCkKLXsKLSAg
ICBWZWN0b3I8c3RkOjpwYWlyPFNjcmlwdFN0YXRlKiwgU2VjdXJpdHlPcmlnaW4qPiA+IGlzb2xh
dGVkQ29udGV4dHM7Ci0gICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX2luc3BlY3RlZFBhZ2UtPm1h
aW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkg
ewotICAgICAgICBpZiAoIWZyYW1lLT5zY3JpcHQoKS0+Y2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJv
dXRUb0V4ZWN1dGVTY3JpcHQpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIFN0cmlu
ZyBmcmFtZUlkID0gbV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJhbWUpOwotCi0gICAgICAgIFNjcmlw
dFN0YXRlKiBzY3JpcHRTdGF0ZSA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKGZyYW1lKTsKLSAgICAg
ICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJhbWVJZCwgc2NyaXB0U3RhdGUsIDAsIHRydWUpOwot
ICAgICAgICBmcmFtZS0+c2NyaXB0KCktPmNvbGxlY3RJc29sYXRlZENvbnRleHRzKGlzb2xhdGVk
Q29udGV4dHMpOwotICAgICAgICBpZiAoaXNvbGF0ZWRDb250ZXh0cy5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGk8IGlzb2xhdGVk
Q29udGV4dHMuc2l6ZSgpOyBpKyspCi0gICAgICAgICAgICBub3RpZnlDb250ZXh0Q3JlYXRlZChm
cmFtZUlkLCBpc29sYXRlZENvbnRleHRzW2ldLmZpcnN0LCBpc29sYXRlZENvbnRleHRzW2ldLnNl
Y29uZCwgZmFsc2UpOwotICAgICAgICBpc29sYXRlZENvbnRleHRzLmNsZWFyKCk7Ci0gICAgfQot
fQotCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6Om5vdGlmeUNvbnRleHRDcmVhdGVkKGNvbnN0IFN0
cmluZyYgZnJhbWVJZCwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNQYWdlQ29udGV4dCkKIHsKICAgICBBU1NFUlQoc2VjdXJp
dHlPcmlnaW4gfHwgaXNQYWdlQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuaAppbmRleCA1Mjc4YWE3MzczOGQ0ZTJhN2FhOTE0ZGQ3MWE5YWY3ZWYy
NGYwMjQwLi45YzkyZDgwN2EwNTI2ZjRjMjI0OGM1NWQ1NTFmMGFkNGM0MzNlYTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKQEAgLTU1LDggKzU1LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVu
ZCopOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAgICAgdmlydHVhbCB2b2lk
IHJlc3RvcmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7Ci0gICAg
dmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKEVycm9yU3RyaW5nKiwgYm9vbCk7CiAKICAg
ICB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0KEZyYW1lKik7CiAgICAgdm9pZCBkaWRDcmVhdGVJ
c29sYXRlZENvbnRleHQoRnJhbWUqLCBTY3JpcHRTdGF0ZSosIFNlY3VyaXR5T3JpZ2luKik7CkBA
IC02Nyw3ICs2Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRl
eHRJZCk7CiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CiAgICAgdmlydHVhbCB2b2lk
IHVubXV0ZUNvbnNvbGUoKTsKLSAgICB2b2lkIHJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlv
bigpOwogICAgIHZvaWQgbm90aWZ5Q29udGV4dENyZWF0ZWQoY29uc3QgU3RyaW5nJiBmcmFtZUlk
LCBTY3JpcHRTdGF0ZSosIFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc1BhZ2VDb250ZXh0KTsKIAog
ICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggZDc0ZTJhY2ZiOTZmNmQ2NGVmOTA5ZTJjMDZh
MjBlZmJjZjZkYmQ2OC4uMzBjMDc3MDAxYWY5MjY2ZWRiOGUwY2FhZDQyYzkzZDczNzMxMjY3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAK
QEAgLTQ5LDYgKzQ5LDExIEBAIFdvcmtlclJ1bnRpbWVBZ2VudDo6fldvcmtlclJ1bnRpbWVBZ2Vu
dCgpCiB7CiB9CiAKK3ZvaWQgV29ya2VyUnVudGltZUFnZW50OjpzZXRSZXBvcnRFeGVjdXRpb25D
b250ZXh0Q3JlYXRpb24oRXJyb3JTdHJpbmcqIGVycm9yLCBib29sKQoreworICAgICplcnJvciA9
ICJJc29sYXRlZCBjb250ZXh0cyBhcmUgbm90IHN1cHBvcnRlZCBmb3Igd29ya2Vycy4iOworfQor
CiBJbmplY3RlZFNjcmlwdCBXb3JrZXJSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZh
bChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewog
ICAgIGlmIChleGVjdXRpb25Db250ZXh0SWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuaAppbmRleCA5ZjE5OTdiNzQwZjMyOGZmNGMwYzc0YWNkYTIy
MTg2NTMxM2FmMGYxLi42MzExMDkzYmY2M2QxNjM2YTNmYTM2OGM2NmQwZGUzNmViZGQ4MmU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCkBAIC00
Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJS
dW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFu
YWdlciwgY29udGV4dCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdlbnQo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKEVy
cm9yU3RyaW5nKiwgYm9vbCk7CiAKIHByaXZhdGU6CiAgICAgV29ya2VyUnVudGltZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciosIFdvcmtlckNvbnRleHQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUnVudGltZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SdW50aW1lTW9kZWwuanMKaW5kZXggYjM5ZDgwNTlkMDBlOTI0ZjdmMmI5MjcwMjJm
ZmE2Y2MwY2Y0ZDVhNC4uZjU2MzM1NjIyZjI4NDlmOGRkNDFlYTc2ZWM5NGFlNDIxOWMxMjUxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SdW50aW1lTW9k
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SdW50aW1lTW9k
ZWwuanMKQEAgLTk1LDcgKzk1LDcgQEAgV2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgX2RpZExvYWRDYWNoZWRSZXNvdXJjZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJSdW50aW1lRGlzcGF0Y2hlcihuZXcgV2Vi
SW5zcGVjdG9yLlJ1bnRpbWVEaXNwYXRjaGVyKHRoaXMpKTsKLSAgICAgICAgUnVudGltZUFnZW50
LmVuYWJsZSgpOworICAgICAgICBSdW50aW1lQWdlbnQuc2V0UmVwb3J0RXhlY3V0aW9uQ29udGV4
dENyZWF0aW9uKHRydWUpOwogICAgIH0sCiAKICAgICBfZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQ6
IGZ1bmN0aW9uKGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNmU5NmU5
N2I5NjRiNTFiMzg4M2IxNmQyZTUzMjI2ZWM5OGQzNDVmZC4uYzQ2NTFkNzQ0NGNmNDRhZWFkNzlj
MGQyZDBiZjgxZmVlYTc1YTI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtODM0
LDcgKzgzNCw3IEBAIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZShQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgTWVzCiAKICAgICAvLyBDYXB0dXJlIHN0
YWNrIHRyYWNlIG9ubHkgd2hlbiBpbnNwZWN0b3IgZnJvbnQtZW5kIGlzIGxvYWRlZCBhcyBpdCBt
YXkgYmUgdGltZSBjb25zdW1pbmcuCiAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tU
cmFjZTsKLSAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQWdlbnRFbmFi
bGVkKHNvdXJjZURvY3VtZW50KSkKKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpo
YXNGcm9udGVuZHMoKSkKICAgICAgICAgc3RhY2tUcmFjZSA9IGNyZWF0ZVNjcmlwdENhbGxTdGFj
ayhTY3JpcHRDYWxsU3RhY2s6Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUsIHRydWUpOwogCiAg
ICAgLy8gU2NoZWR1bGUgdGhlIG1lc3NhZ2UuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>