<?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>112673</bug_id>
          
          <creation_ts>2013-03-19 01:55:53 -0700</creation_ts>
          <short_desc>REGRESSION(r146183): Caused a few dozens of editing tests to fail on Mac WK2 (Requested by rniwa on #webkit).</short_desc>
          <delta_ts>2013-03-19 02:00:31 -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>112505</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>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>858058</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 01:55:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/146183 broke the build:
Caused a few dozens of editing tests to fail on Mac WK2 (Requested by rniwa 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>858061</commentid>
    <comment_count>1</comment_count>
      <attachid>193763</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 01:56:23 -0700</bug_when>
    <thetext>Created attachment 193763
ROLLOUT of r146183

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>858064</commentid>
    <comment_count>2</comment_count>
      <attachid>193763</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-19 02:00:29 -0700</bug_when>
    <thetext>Comment on attachment 193763
ROLLOUT of r146183

Clearing flags on attachment: 193763

Committed r146190: &lt;http://trac.webkit.org/changeset/146190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858065</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-19 02:00:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193763</attachid>
            <date>2013-03-19 01:56:23 -0700</date>
            <delta_ts>2013-03-19 02:00:29 -0700</delta_ts>
            <desc>ROLLOUT of r146183</desc>
            <filename>bug-112673-20130319085214.patch</filename>
            <type>text/plain</type>
            <size>43754</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDQ4NTliN2MzOTQ5Y2U3
YWYyMWZlYjUwNDAyNjljZWZjNmM0Yzk4ZC4uNjgwMDMzNTk5ODc2MGIwNWVkMGI5MTYzZDgwNTMx
MmU3NjQzMTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEzLTAzLTE5ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQ2MTgzLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNDYxODMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjY3MworCisgICAgICAgIENhdXNlZCBhIGZldyBkb3plbnMgb2YgZWRpdGlu
ZyB0ZXN0cyB0byBmYWlsIG9uIE1hYyBXSzIKKyAgICAgICAgKFJlcXVlc3RlZCBieSBybml3YSBv
biAjd2Via2l0KS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkSW5zdGFsbFBhZ2VPdmVybGF5KToKKyAgICAgICAg
KFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkaWRVbmluc3RhbGxQYWdlT3Zlcmxh
eSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZU92
ZXJsYXlOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OnNldFBhZ2VPdmVybGF5T3BhY2l0eSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Lmg6Cisg
ICAgICAgIChDb29yZGluYXRlZExheWVyVHJlZUhvc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6RHJhd2luZ0FyZWE6OmRpZEluc3RhbGxQYWdlT3ZlcmxheSk6CisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhOjpkaWRVbmluc3RhbGxQYWdlT3ZlcmxheSk6CisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhOjpzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJL
aXQ6OkRyYXdpbmdBcmVhOjpzZXRQYWdlT3ZlcmxheU9wYWNpdHkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3
aW5nQXJlYUltcGw6OmRpZEluc3RhbGxQYWdlT3ZlcmxheSk6CisgICAgICAgIChXZWJLaXQ6OkRy
YXdpbmdBcmVhSW1wbDo6ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkpOgorICAgICAgICAoV2ViS2l0
OjpEcmF3aW5nQXJlYUltcGw6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KToKKyAgICAgICAg
KFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjpzZXRQYWdlT3ZlcmxheU9wYWNpdHkpOgorICAgICAg
ICAoV2ViS2l0OjpEcmF3aW5nQXJlYUltcGw6OmRpc3BsYXkpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaDoKKyAgICAgICAgKERyYXdpbmdBcmVhSW1wbCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAg
KExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0OjpzZXRQYWdl
T3ZlcmxheU9wYWNpdHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3Zlcmxh
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VPdmVybGF5OjpzZXROZWVkc0Rpc3BsYXkpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlT3ZlcmxheTo6ZmFkZUFuaW1hdGlvblRpbWVyRmlyZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZHJhd1BhZ2VPdmVybGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zdGFsbFBhZ2VPdmVybGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dW5pbnN0YWxs
UGFnZU92ZXJsYXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptb3VzZUV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bW91c2VFdmVudFN5bmNGb3JUZXN0aW5nKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYXNQYWdlT3Zlcmxh
eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0TWFjLmg6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoTGF5ZXJUcmVlSG9zdE1hYyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpMYXllclRyZWVIb3N0TWFjOjpzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlz
cGxheSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RNYWM6OnNldE5vbkNvbXBvc2l0
ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
SG9zdE1hYzo6c2l6ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RN
YWM6OmRpZEluc3RhbGxQYWdlT3ZlcmxheSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhv
c3RNYWM6OmRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlSG9zdE1hYzo6c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViS2l0
OjpMYXllclRyZWVIb3N0TWFjOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlSG9zdE1hYzo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhv
c3RNYWM6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUhvc3RNYWM6OmNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpM
YXllclRyZWVIb3N0TWFjOjpkZXN0cm95UGFnZU92ZXJsYXlMYXllcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAg
ICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAg
IChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaWRJbnN0YWxsUGFnZU92
ZXJsYXkpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkpOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlUHJlZmVyZW5jZXMp
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRD
b250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjpmbHVzaExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpzZXRFeHBvc2VkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjptYWluRnJhbWVTY3JvbGxhYmlsaXR5Q2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeSk6
CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRSb290
Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6VGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRlc3Ryb3lQYWdlT3ZlcmxheUxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRpZENvbW1pdENo
YW5nZXNGb3JMYXllcik6CisKIDIwMTMtMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW3drMl0gU2hvdWxkIHN1cHBvcnQgbXVsdGlwbGUgcGFn
ZSBvdmVybGF5cywgbGlrZSB0aGUgQVBJIHN1Z2dlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCAzZTQ3MGEx
M2NiMDg3MDM3NjNhZjc5MTZjMGFiZTU4NGM5YTIzY2U4Li5jZmUyZTc5Y2I2OWQ4YmE2M2Y0MWQx
Yzc4YWU2MjI3Yjk5MzNmNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTI1MiwzMSArMjUyLDI2IEBAIHZv
aWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIG5ld1NpemUpCiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CiAKLXZvaWQg
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkaWRJbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJs
YXkqIHBhZ2VPdmVybGF5KQordm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZEluc3Rh
bGxQYWdlT3ZlcmxheSgpCiB7Ci0gICAgQVNTRVJUKCFtX3BhZ2VPdmVybGF5KTsKLSAgICBtX3Bh
Z2VPdmVybGF5ID0gcGFnZU92ZXJsYXk7Ci0KICAgICBjcmVhdGVQYWdlT3ZlcmxheUxheWVyKCk7
CiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0OjpkaWRVbmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkp
Cit2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXko
KQogewotICAgIG1fcGFnZU92ZXJsYXkgPSAwOwotCiAgICAgZGVzdHJveVBhZ2VPdmVybGF5TGF5
ZXIoKTsKICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5KiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK3ZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0
KQogewogICAgIEFTU0VSVChtX3BhZ2VPdmVybGF5TGF5ZXIpOwogICAgIG1fcGFnZU92ZXJsYXlM
YXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwogICAgIHNjaGVkdWxlTGF5ZXJGbHVz
aCgpOwogfQogCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZU92ZXJsYXlP
cGFjaXR5KFBhZ2VPdmVybGF5KiwgZmxvYXQgdmFsdWUpCit2b2lkIENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6c2V0UGFnZU92ZXJsYXlPcGFjaXR5KGZsb2F0IHZhbHVlKQogewogICAgIEFTU0VS
VChtX3BhZ2VPdmVybGF5TGF5ZXIpOwogICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0T3BhY2l0
eSh2YWx1ZSk7CkBAIC02MjIsNyArNjE3LDcgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogZ3JhcGgKICAg
ICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX3BhZ2VPdmVybGF5TGF5ZXIpIHsKICAgICAgICAgLy8g
T3ZlcmxheXMgY29udGFpbiB0cmFuc3BhcmVudCBjb250ZW50cyBhbmQgd29uJ3QgY2xlYXIgdGhl
IGNvbnRleHQgYXMgcGFydCBvZiB0aGVpciByZW5kZXJpbmcsIHNvIHdlIGRvIGl0IGhlcmUuCiAg
ICAgICAgIGdyYXBoaWNzQ29udGV4dC5jbGVhclJlY3QoY2xpcFJlY3QpOwotICAgICAgICBtX3dl
YlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShtX3BhZ2VPdmVybGF5LmdldCgpLCBncmFwaGljc0NvbnRl
eHQsIGNsaXBSZWN0KTsKKyAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoZ3JhcGhp
Y3NDb250ZXh0LCBjbGlwUmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCmlu
ZGV4IGIwN2VkYzE0MGFkYzkyOGEzNDlkZTVhNWM5Y2VmYjE2ZTA4ZGViMTEuLmEyMTc0ZTI5NzMy
NmRhZGEwNzA0MGNhNzZmZTc3NTI1MmQ4MTVkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC03MiwxMCArNzIsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBj
YWxsYmFja0lEKTsKICAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBuZXdTaXplKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRJbnN0YWxsUGFnZU92
ZXJsYXkoUGFnZU92ZXJsYXkqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkVW5pbnN0YWxsUGFnZU92
ZXJsYXkoUGFnZU92ZXJsYXkqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlOZWVk
c0Rpc3BsYXkoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSosIGZsb2F0KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbFBhZ2VPdmVybGF5KCk7CisgICAgdmlydHVhbCB2b2lk
IGRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KCk7CisgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VPdmVy
bGF5TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFnZU92ZXJsYXlPcGFjaXR5KGZsb2F0KTsKICAgICB2aXJ0dWFsIGJvb2wgcGFnZU92
ZXJsYXlTaG91bGRBcHBseUZhZGVXaGVuUGFpbnRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCiAgICAgdmlydHVhbCB2b2lkIHBhdXNlUmVuZGVyaW5nKCkgeyBtX2lzU3VzcGVuZGVkID0g
dHJ1ZTsgfQpAQCAtMTcxLDcgKzE3MSw2IEBAIHByaXZhdGU6CiAKICAgICAvLyBUaGUgcGFnZSBv
dmVybGF5IGxheWVyLiBXaWxsIGJlIG51bGwgaWYgdGhlcmUncyBubyBwYWdlIG92ZXJsYXkuCiAg
ICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcGFnZU92ZXJsYXlMYXllcjsKLSAg
ICBSZWZQdHI8UGFnZU92ZXJsYXk+IG1fcGFnZU92ZXJsYXk7CiAKICAgICBXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzU3RhdGUgbV9zdGF0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCAzMDBhNGYxMzVhZjE4MzFjYTk5YzIz
OTg4NTI4Y2ZjODdjM2NlMzc3Li45Yzc2YzgyN2U5ZDNlOGY4M2Y4MDI3MGEwMjY0YzdiMzI2ODQz
MjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuaApAQCAtNDcsNyArNDcsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IENvbG9y
U3BhY2VEYXRhOwogY2xhc3MgTGF5ZXJUcmVlSG9zdDsKLWNsYXNzIFBhZ2VPdmVybGF5OwogY2xh
c3MgV2ViUGFnZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdl
YlByZWZlcmVuY2VzU3RvcmU7CkBAIC03MywxMCArNzIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25zdCB7IHJldHVy
biAwOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVy
bGF5KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VP
dmVybGF5KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5
KFBhZ2VPdmVybGF5KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkqLCBmbG9hdCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZEluc3RhbGxQYWdlT3ZlcmxheSgpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRVbmluc3RhbGxQYWdlT3ZlcmxheSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdl
T3ZlcmxheU5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgeyB9CisgICAgdmly
dHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShmbG9hdCkgeyB9CiAgICAgLy8gSWYgdGhp
cyBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLCBQYWdlT3ZlcmxheSBzaG91bGQgYXBwbHkgb3BhY2l0
eSB3aGVuIHBhaW50aW5nLgogICAgIHZpcnR1YWwgYm9vbCBwYWdlT3ZlcmxheVNob3VsZEFwcGx5
RmFkZVdoZW5QYWludGluZygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcGFnZUN1c3RvbVJlcHJlc2VudGF0aW9uQ2hhbmdlZCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAppbmRleCAz
ZjYyOWE3MTQ3ZGE0MzRmN2I2NGIzYTBlOTE5MWI1NDJiNGUxZTJkLi5lOWI2ZGVhNmIzNjdjOWRm
MDA0Y2I2ZWM1N2ZlNGU0ODBmNmVhOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcApAQCAtMjI0LDM0ICsyMjQsMzQg
QEAgYm9vbCBEcmF3aW5nQXJlYUltcGw6OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiAgICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdCAmJiBtX2xheWVyVHJlZUhvc3QtPmZv
cmNlUmVwYWludEFzeW5jKGNhbGxiYWNrSUQpOwogfQogCi12b2lkIERyYXdpbmdBcmVhSW1wbDo6
ZGlkSW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKK3ZvaWQgRHJh
d2luZ0FyZWFJbXBsOjpkaWRJbnN0YWxsUGFnZU92ZXJsYXkoKQogewogICAgIGlmIChtX2xheWVy
VHJlZUhvc3QpCi0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlkSW5zdGFsbFBhZ2VPdmVybGF5
KHBhZ2VPdmVybGF5KTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5kaWRJbnN0YWxsUGFnZU92
ZXJsYXkoKTsKIH0KIAotdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpZFVuaW5zdGFsbFBhZ2VPdmVy
bGF5KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKK3ZvaWQgRHJhd2luZ0FyZWFJbXBsOjpkaWRV
bmluc3RhbGxQYWdlT3ZlcmxheSgpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKLSAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5kaWRVbmluc3RhbGxQYWdlT3ZlcmxheShwYWdlT3ZlcmxheSk7
CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoKTsKIAog
ICAgIHNldE5lZWRzRGlzcGxheSgpOwogfQogCi12b2lkIERyYXdpbmdBcmVhSW1wbDo6c2V0UGFn
ZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBjb25zdCBJbnRS
ZWN0JiByZWN0KQordm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNw
bGF5KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkgewot
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KHBhZ2VP
dmVybGF5LCByZWN0KTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRQYWdlT3ZlcmxheU5l
ZWRzRGlzcGxheShyZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHNldE5lZWRz
RGlzcGxheUluUmVjdChyZWN0KTsKIH0KIAotdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldFBhZ2VP
dmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXksIGZsb2F0IHZhbHVlKQordm9p
ZCBEcmF3aW5nQXJlYUltcGw6OnNldFBhZ2VPdmVybGF5T3BhY2l0eShmbG9hdCB2YWx1ZSkKIHsK
ICAgICBpZiAobV9sYXllclRyZWVIb3N0KQotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFBh
Z2VPdmVybGF5T3BhY2l0eShwYWdlT3ZlcmxheSwgdmFsdWUpOworICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnNldFBhZ2VPdmVybGF5T3BhY2l0eSh2YWx1ZSk7CiB9CiAKIGJvb2wgRHJhd2luZ0Fy
ZWFJbXBsOjpwYWdlT3ZlcmxheVNob3VsZEFwcGx5RmFkZVdoZW5QYWludGluZygpIGNvbnN0CkBA
IC03MjUsMTQgKzcyNSw4IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpkaXNwbGF5KFVwZGF0ZUlu
Zm8mIHVwZGF0ZUluZm8pCiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3RzLnNpemUo
KTsgKytpKSB7CiAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1JlY3QoKmdyYXBoaWNzQ29udGV4dCwg
cmVjdHNbaV0pOwotCi0gICAgICAgIGlmIChtX3dlYlBhZ2UtPmhhc1BhZ2VPdmVybGF5KCkpIHsK
LSAgICAgICAgICAgIFBhZ2VPdmVybGF5TGlzdCYgcGFnZU92ZXJsYXlzID0gbV93ZWJQYWdlLT5w
YWdlT3ZlcmxheXMoKTsKLSAgICAgICAgICAgIFBhZ2VPdmVybGF5TGlzdDo6aXRlcmF0b3IgZW5k
ID0gcGFnZU92ZXJsYXlzLmVuZCgpOwotICAgICAgICAgICAgZm9yIChQYWdlT3ZlcmxheUxpc3Q6
Oml0ZXJhdG9yIGl0ID0gcGFnZU92ZXJsYXlzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAg
ICAgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShpdC0+Z2V0KCksICpncmFw
aGljc0NvbnRleHQsIHJlY3RzW2ldKTsKLSAgICAgICAgfQotCisgICAgICAgIGlmIChtX3dlYlBh
Z2UtPmhhc1BhZ2VPdmVybGF5KCkpCisgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3Zl
cmxheSgqZ3JhcGhpY3NDb250ZXh0LCByZWN0c1tpXSk7CiAgICAgICAgIHVwZGF0ZUluZm8udXBk
YXRlUmVjdHMuYXBwZW5kKHJlY3RzW2ldKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRleCBmYWQzZmQ3YjNl
OTdiM2E4MjA3MjA3MDU4MTMzOGVkZDIwN2MxNTJkLi5kODk3YTE5NjJmYjE3NTMyZTdiNTFjMmM3
ZTRhOWNiNmE4MGVlMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC02MCwxMCArNjAsMTAgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCk7CiAgICAgdmlydHVhbCBib29sIGZvcmNlUmVw
YWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZElu
c3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVbmlu
c3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSopOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdl
T3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlPcGFjaXR5KFBhZ2VPdmVybGF5Kiwg
ZmxvYXQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRJbnN0YWxsUGFnZU92ZXJsYXkoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoZmxvYXQpOwogICAgIHZpcnR1YWwg
Ym9vbCBwYWdlT3ZlcmxheVNob3VsZEFwcGx5RmFkZVdoZW5QYWludGluZygpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldFBhaW50aW5nRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGQ4ZjYwNTRl
ZDU3YjlhNDc3MWJjMWE3ZDFkZjVmMGEzNmFmYmVlNDMuLjM5ZmVmODI0ZmEyOTRhNWI1ZmU2YTEz
YTE1Njc1OTM1ZmU3MzVhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtNDcsNyArNDcsNiBAQCBjbGFzcyBHcmFwaGljc0xh
eWVyRmFjdG9yeTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFBhZ2VPdmVybGF5Owog
Y2xhc3MgVXBkYXRlSW5mbzsKIGNsYXNzIFdlYlBhZ2U7CiAKQEAgLTczLDEwICs3MiwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgbmV3U2l6ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbFBhZ2VPdmVy
bGF5KFBhZ2VPdmVybGF5KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVbmluc3RhbGxQYWdl
T3ZlcmxheShQYWdlT3ZlcmxheSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJs
YXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkqLCBm
bG9hdCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEluc3RhbGxQYWdlT3ZlcmxheSgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShmbG9hdCkg
eyB9CiAgICAgdmlydHVhbCBib29sIHBhZ2VPdmVybGF5U2hvdWxkQXBwbHlGYWRlV2hlblBhaW50
aW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhdXNlUmVu
ZGVyaW5nKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvUGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Bh
Z2VPdmVybGF5LmNwcAppbmRleCBhOTcwZWY2OTZkYTY3NzEwOGQwMzA1ZDU4ZDYxNzc2MmUxMWRm
NGY3Li5kNmE0OGY1Nzk2ZjFkOTFiNzBlOGQxN2EzODQ3NDM3YTgyYmJkNDYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5jcHAKQEAgLTk0
LDggKzk0LDggQEAgdm9pZCBQYWdlT3ZlcmxheTo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEludFJl
Y3QmIGRpcnR5UmVjdCkKIHsKICAgICBpZiAobV93ZWJQYWdlKSB7CiAgICAgICAgIGlmICghbV9w
YWdlT3ZlcmxheVNob3VsZEFwcGx5RmFkZVdoZW5QYWludGluZykKLSAgICAgICAgICAgIG1fd2Vi
UGFnZS0+ZHJhd2luZ0FyZWEoKS0+c2V0UGFnZU92ZXJsYXlPcGFjaXR5KHRoaXMsIG1fZnJhY3Rp
b25GYWRlZEluKTsKLSAgICAgICAgbV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpLT5zZXRQYWdlT3Zl
cmxheU5lZWRzRGlzcGxheSh0aGlzLCBkaXJ0eVJlY3QpOworICAgICAgICAgICAgbV93ZWJQYWdl
LT5kcmF3aW5nQXJlYSgpLT5zZXRQYWdlT3ZlcmxheU9wYWNpdHkobV9mcmFjdGlvbkZhZGVkSW4p
OworICAgICAgICBtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCktPnNldFBhZ2VPdmVybGF5TmVlZHNE
aXNwbGF5KGRpcnR5UmVjdCk7CiAgICAgfQogfQogCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBQ
YWdlT3ZlcmxheTo6ZmFkZUFuaW1hdGlvblRpbWVyRmlyZWQoKQogICAgIGlmIChtX3BhZ2VPdmVy
bGF5U2hvdWxkQXBwbHlGYWRlV2hlblBhaW50aW5nKQogICAgICAgICBzZXROZWVkc0Rpc3BsYXko
KTsKICAgICBlbHNlCi0gICAgICAgIG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKS0+c2V0UGFnZU92
ZXJsYXlPcGFjaXR5KHRoaXMsIG1fZnJhY3Rpb25GYWRlZEluKTsKKyAgICAgICAgbV93ZWJQYWdl
LT5kcmF3aW5nQXJlYSgpLT5zZXRQYWdlT3ZlcmxheU9wYWNpdHkobV9mcmFjdGlvbkZhZGVkSW4p
OwogCiAgICAgaWYgKGFuaW1hdGlvblByb2dyZXNzID09IDEuMCkgewogICAgICAgICBtX2ZhZGVB
bmltYXRpb25UaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggMDJhM2Q0YzRjNzgwY2U0MWQ1NjQzNjMzOWRlMzk0M2ExMThj
YjU4Ni4uMGI3MDlkYWNiZDhhMzUxZjgzZjA5YTBmZDdkNWFkODRiMGQ3MGZjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTEwNywxMyAr
MTEwNywxMyBAQCB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhp
Y3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJh
bWUoKS0+dmlldygpLT5wYWludCgmZ3JhcGhpY3NDb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpkcmF3UGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5LCBHcmFwaGlj
c0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgV2Vi
UGFnZTo6ZHJhd1BhZ2VPdmVybGF5KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIEFTU0VSVChwYWdlT3ZlcmxheSk7CisgICAgQVNT
RVJUKG1fcGFnZU92ZXJsYXkpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0
ZVNhdmVyKGdyYXBoaWNzQ29udGV4dCk7CiAgICAgZ3JhcGhpY3NDb250ZXh0LmNsaXAocmVjdCk7
Ci0gICAgcGFnZU92ZXJsYXktPmRyYXdSZWN0KGdyYXBoaWNzQ29udGV4dCwgcmVjdCk7CisgICAg
bV9wYWdlT3ZlcmxheS0+ZHJhd1JlY3QoZ3JhcGhpY3NDb250ZXh0LCByZWN0KTsKIH0KIAogZG91
YmxlIFdlYlBhZ2U6OnRleHRab29tRmFjdG9yKCkgY29uc3QKQEAgLTEzNTUsMzYgKzEzNTUsNDAg
QEAgdm9pZCBXZWJQYWdlOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZU5hbWUsIENvcmVJUEM6Ok1lc3MKIAogdm9pZCBXZWJQYWdlOjppbnN0YWxsUGFnZU92
ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFnZU92ZXJsYXksIGJvb2wgc2hvdWxkRmFk
ZUluKQogewotICAgIFJlZlB0cjxQYWdlT3ZlcmxheT4gb3ZlcmxheSA9IHBhZ2VPdmVybGF5Owot
ICAgIAotICAgIGlmIChtX3BhZ2VPdmVybGF5cy5jb250YWlucyhvdmVybGF5LmdldCgpKSkKLSAg
ICAgICAgcmV0dXJuOworICAgIGlmIChtX3BhZ2VPdmVybGF5KSB7CisgICAgICAgIG1fcGFnZU92
ZXJsYXktPnNldFBhZ2UoMCk7CisKKyAgICAgICAgaWYgKHBhZ2VPdmVybGF5KSB7CisgICAgICAg
ICAgICAvLyBXZSdyZSBpbnN0YWxsaW5nIGEgcGFnZSBvdmVybGF5IHdoZW4gYSBwYWdlIG92ZXJs
YXkgaXMgYWxyZWFkeSBhY3RpdmUuCisgICAgICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZG9u
J3Qgd2FudCB0byBmYWRlIGluIHRoZSBuZXcgb3ZlcmxheS4KKyAgICAgICAgICAgIHNob3VsZEZh
ZGVJbiA9IGZhbHNlOworICAgICAgICB9CisgICAgfQogCi0gICAgbV9wYWdlT3ZlcmxheXMuYXBw
ZW5kKG92ZXJsYXkpOwotICAgIG92ZXJsYXktPnNldFBhZ2UodGhpcyk7CisgICAgbV9wYWdlT3Zl
cmxheSA9IHBhZ2VPdmVybGF5OworICAgIG1fcGFnZU92ZXJsYXktPnNldFBhZ2UodGhpcyk7CiAK
ICAgICBpZiAoc2hvdWxkRmFkZUluKQotICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVJbkFuaW1h
dGlvbigpOworICAgICAgICBtX3BhZ2VPdmVybGF5LT5zdGFydEZhZGVJbkFuaW1hdGlvbigpOwog
Ci0gICAgbV9kcmF3aW5nQXJlYS0+ZGlkSW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXkuZ2V0KCkp
OwotICAgIG92ZXJsYXktPnNldE5lZWRzRGlzcGxheSgpOworICAgIG1fZHJhd2luZ0FyZWEtPmRp
ZEluc3RhbGxQYWdlT3ZlcmxheSgpOworICAgIG1fcGFnZU92ZXJsYXktPnNldE5lZWRzRGlzcGxh
eSgpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5
KiBwYWdlT3ZlcmxheSwgYm9vbCBzaG91bGRGYWRlT3V0KQogewotICAgIHNpemVfdCBleGlzdGlu
Z092ZXJsYXlJbmRleCA9IG1fcGFnZU92ZXJsYXlzLmZpbmQocGFnZU92ZXJsYXkpOwotICAgIGlm
IChleGlzdGluZ092ZXJsYXlJbmRleCA9PSBub3RGb3VuZCkKKyAgICBpZiAocGFnZU92ZXJsYXkg
IT0gbV9wYWdlT3ZlcmxheSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHNob3VsZEZhZGVP
dXQpIHsKLSAgICAgICAgcGFnZU92ZXJsYXktPnN0YXJ0RmFkZU91dEFuaW1hdGlvbigpOworICAg
ICAgICBtX3BhZ2VPdmVybGF5LT5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHBhZ2VPdmVybGF5LT5zZXRQYWdlKDApOwotICAgIG1fcGFnZU92
ZXJsYXlzLnJlbW92ZShleGlzdGluZ092ZXJsYXlJbmRleCk7CisgICAgbV9wYWdlT3ZlcmxheS0+
c2V0UGFnZSgwKTsKKyAgICBtX3BhZ2VPdmVybGF5ID0gbnVsbHB0cjsKIAotICAgIG1fZHJhd2lu
Z0FyZWEtPmRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KHBhZ2VPdmVybGF5KTsKKyAgICBtX2RyYXdp
bmdBcmVhLT5kaWRVbmluc3RhbGxQYWdlT3ZlcmxheSgpOwogfQogCiBQYXNzUmVmUHRyPFdlYklt
YWdlPiBXZWJQYWdlOjpzY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25zKGNvbnN0IEludFJlY3QmIHJl
Y3QsIGRvdWJsZSBzY2FsZUZhY3RvciwgU25hcHNob3RPcHRpb25zIG9wdGlvbnMpCkBAIC0xNTU2
LDEyICsxNTYwLDkgQEAgdm9pZCBXZWJQYWdlOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZl
bnQmIG1vdXNlRXZlbnQpCiAgICAgfQogI2VuZGlmCiAgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7
Ci0gICAgaWYgKG1fcGFnZU92ZXJsYXlzLnNpemUoKSkgeworICAgIGlmIChtX3BhZ2VPdmVybGF5
KSB7CiAgICAgICAgIC8vIExldCB0aGUgcGFnZSBvdmVybGF5IGhhbmRsZSB0aGUgZXZlbnQuCi0g
ICAgICAgIFBhZ2VPdmVybGF5TGlzdDo6cmV2ZXJzZV9pdGVyYXRvciBlbmQgPSBtX3BhZ2VPdmVy
bGF5cy5yZW5kKCk7Ci0gICAgICAgIGZvciAoUGFnZU92ZXJsYXlMaXN0OjpyZXZlcnNlX2l0ZXJh
dG9yIGl0ID0gbV9wYWdlT3ZlcmxheXMucmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAg
ICAgICAgIGlmICgoaGFuZGxlZCA9ICgqaXQpLT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpKSkKLSAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaGFuZGxlZCA9IG1fcGFnZU92ZXJsYXktPm1v
dXNlRXZlbnQobW91c2VFdmVudCk7CiAgICAgfQogCiAgICAgaWYgKCFoYW5kbGVkICYmIGNhbkhh
bmRsZVVzZXJFdmVudHMoKSkgewpAQCAtMTU4MSwxMiArMTU4Miw3IEBAIHZvaWQgV2ViUGFnZTo6
bW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogCiB2b2lkIFdlYlBh
Z2U6Om1vdXNlRXZlbnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2
ZW50LCBib29sJiBoYW5kbGVkKQogewotICAgIGlmIChtX3BhZ2VPdmVybGF5cy5zaXplKCkpIHsK
LSAgICAgICAgUGFnZU92ZXJsYXlMaXN0OjpyZXZlcnNlX2l0ZXJhdG9yIGVuZCA9IG1fcGFnZU92
ZXJsYXlzLnJlbmQoKTsKLSAgICAgICAgZm9yIChQYWdlT3ZlcmxheUxpc3Q6OnJldmVyc2VfaXRl
cmF0b3IgaXQgPSBtX3BhZ2VPdmVybGF5cy5yYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAg
ICAgICAgICAgaWYgKChoYW5kbGVkID0gKCppdCktPm1vdXNlRXZlbnQobW91c2VFdmVudCkpKQot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBoYW5kbGVkID0gbV9wYWdlT3Zlcmxh
eSAmJiBtX3BhZ2VPdmVybGF5LT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOwogCiAgICAgaWYgKCFo
YW5kbGVkKSB7CiAgICAgICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQobW91c2VFdmVudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5YzFk
YzFkNWQxZTBjNzFmMjY2ZWQ2OWY2ZjVlODcxZTUyY2RlNDM3Li5hODY5MmU4MjVjMjI5OWZiNzRl
MDJjMGQ2YWRhZjdkZGYyNGIxNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTE2Myw4ICsxNjMsNiBAQCBjbGFzcyBXZWJHZXN0dXJlRXZlbnQ7
CiBjbGFzcyBXZWJUb3VjaEV2ZW50OwogI2VuZGlmCiAKLXR5cGVkZWYgVmVjdG9yPFJlZlB0cjxQ
YWdlT3ZlcmxheT4gPiBQYWdlT3ZlcmxheUxpc3Q7Ci0KIGNsYXNzIFdlYlBhZ2UgOiBwdWJsaWMg
QVBJT2JqZWN0LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ29yZUlQ
Qzo6TWVzc2FnZVNlbmRlcjxXZWJQYWdlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5
cGUgQVBJVHlwZSA9IFR5cGVCdW5kbGVQYWdlOwpAQCAtMjA5LDcgKzIwNyw3IEBAIHB1YmxpYzoK
ICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgogICAgIC8vIEZJWE1FOiBXZSBj
b3VsZCBnZW5lcmljaXplIHRoZXNlIGludG8gYSBEcmF3aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNl
LiBXb3VsZCB0aGF0IGJlIGJlbmVmaWNpYWw/CiAgICAgdm9pZCBkcmF3UmVjdChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdm9pZCBkcmF3
UGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdm9pZCBkcmF3UGFnZU92ZXJsYXkoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgbGF5
b3V0SWZOZWVkZWQoKTsKIAogICAgIC8vIC0tIENhbGxlZCBmcm9tIFdlYkNvcmUgY2xpZW50cy4K
QEAgLTM3Nyw5ICszNzUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB3aW5kb3dBbmRXZWJQYWdlQXJl
Rm9jdXNlZCgpIGNvbnN0OwogICAgIHZvaWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8
UGFnZU92ZXJsYXk+LCBib29sIHNob3VsZEZhZGVJbiA9IGZhbHNlKTsKICAgICB2b2lkIHVuaW5z
dGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiwgYm9vbCBzaG91bGRGYWRlT3V0ID0gZmFsc2Up
OwotICAgIGJvb2wgaGFzUGFnZU92ZXJsYXkoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VPdmVybGF5
cy5zaXplKCk7IH0KLSAgICBQYWdlT3ZlcmxheUxpc3QmIHBhZ2VPdmVybGF5cygpIHsgcmV0dXJu
IG1fcGFnZU92ZXJsYXlzOyB9Ci0gICAgCisgICAgYm9vbCBoYXNQYWdlT3ZlcmxheSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZU92ZXJsYXk7IH0KICAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5U
b1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIFdlYkNvcmU6OkludFJlY3Qg
d2luZG93VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogCkBAIC05MjMsNyArOTE5
LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiBQTEFURk9STShRVCkK
ICAgICBUYXBIaWdobGlnaHRDb250cm9sbGVyIG1fdGFwSGlnaGxpZ2h0Q29udHJvbGxlcjsKICNl
bmRpZgotICAgIFBhZ2VPdmVybGF5TGlzdCBtX3BhZ2VPdmVybGF5czsKKyAgICBSZWZQdHI8UGFn
ZU92ZXJsYXk+IG1fcGFnZU92ZXJsYXk7CiAKICAgICBSZWZQdHI8V2ViUGFnZT4gbV91bmRlcmxh
eVBhZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvTGF5ZXJUcmVlSG9zdE1hYy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9MYXllclRyZWVIb3N0TWFjLmgKaW5kZXggZDEzYTNlMzQ3ZDY3YzgyNmViNmRkYWM4M2Fi
ZGQxODJkMzhkYTMzNS4uMTMxYTM2ZTE0NGRiMjA1YTY5M2Y4NGQ2YTk4NjkwZGJlNDg4MDVjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRy
ZWVIb3N0TWFjLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9M
YXllclRyZWVIb3N0TWFjLmgKQEAgLTMwLDEyICszMCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFNjaGVk
dWxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oPgot
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBM
YXllckhvc3RpbmdDb250ZXh0OwotY2xhc3MgUGFnZU92ZXJsYXk7CiAKIGNsYXNzIExheWVyVHJl
ZUhvc3RNYWMgOiBwdWJsaWMgTGF5ZXJUcmVlSG9zdCwgcHJpdmF0ZSBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ2xpZW50LCBwcml2YXRlIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQg
ewogcHVibGljOgpAQCAtNTksOSArNTcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBz
aXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRJbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFn
ZU92ZXJsYXkqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlOZWVk
c0Rpc3BsYXkoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZEluc3RhbGxQYWdlT3ZlcmxheSgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaWRVbmluc3RhbGxQYWdlT3ZlcmxheSgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGF1c2VSZW5kZXJpbmcoKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lUmVuZGVyaW5nKCkgT1ZFUlJJREU7CkBAIC04
Miw4ICs4MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVz
aCgpOwogICAgIGJvb2wgZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCk7CiAKLSAgICB2b2lkIGNy
ZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqKTsKLSAgICB2b2lkIGRlc3Ryb3lQYWdl
T3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5Kik7CisgICAgdm9pZCBjcmVhdGVQYWdlT3ZlcmxheUxh
eWVyKCk7CisgICAgdm9pZCBkZXN0cm95UGFnZU92ZXJsYXlMYXllcigpOwogCiAgICAgYm9vbCBt
X2lzVmFsaWQ7CiAgICAgYm9vbCBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaDsKQEAg
LTkyLDggKzkwLDcgQEAgcHJpdmF0ZToKIAogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xh
eWVyPiBtX3Jvb3RMYXllcjsKICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9u
b25Db21wb3NpdGVkQ29udGVudExheWVyOwotICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdlT3Zlcmxh
eSosIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiA+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7
Ci0gICAgUGFnZU92ZXJsYXlMYXllck1hcCBtX3BhZ2VPdmVybGF5TGF5ZXJzOworICAgIE93blB0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3BhZ2VPdmVybGF5TGF5ZXI7CiAKICAgICBPd25Q
dHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OwogICAgIFdlYkNv
cmU6OkxheWVyRmx1c2hTY2hlZHVsZXIgbV9sYXllckZsdXNoU2NoZWR1bGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0TWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllclRyZWVIb3N0
TWFjLm1tCmluZGV4IGY1ZGViMWMyZDI0MGQ1OWI0MmU2ZjYyNjQ3OGJlYjE3MmE3N2NmNDcuLmIx
Y2MxZjM5NzBiNzI0YTk2ZmNlNjQyMDkwMzJkMTg2MzRkN2RmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJUcmVlSG9zdE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyVHJlZUhvc3RNYWMu
bW0KQEAgLTExNSwxMCArMTE1LDggQEAgdm9pZCBMYXllclRyZWVIb3N0TWFjOjppbnZhbGlkYXRl
KCkKIHZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERp
c3BsYXkoKQogewogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmVlZHNEaXNw
bGF5KCk7Ci0KLSAgICBQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRvciBlbmQgPSBtX3BhZ2VP
dmVybGF5TGF5ZXJzLmVuZCgpOwotICAgIGZvciAoUGFnZU92ZXJsYXlMYXllck1hcDo6aXRlcmF0
b3IgaXQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAg
ICAgICAgaXQtPnZhbHVlLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICBpZiAobV9wYWdlT3Zlcmxh
eUxheWVyKQorICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwog
CiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CkBAIC0xMjYsMTAgKzEyNCw4IEBAIHZvaWQg
TGF5ZXJUcmVlSG9zdE1hYzo6c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKQog
dm9pZCBMYXllclRyZWVIb3N0TWFjOjpzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxh
eUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwotCi0gICAgUGFnZU92ZXJsYXlM
YXllck1hcDo6aXRlcmF0b3IgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsKLSAgICBm
b3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVy
cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGl0LT52YWx1ZS0+c2V0TmVlZHNE
aXNwbGF5SW5SZWN0KHJlY3QpOworICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIpCisgICAgICAg
IG1fcGFnZU92ZXJsYXlMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwogCiAgICAg
c2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CkBAIC0xNjUsOSArMTYxLDggQEAgdm9pZCBMYXllclRy
ZWVIb3N0TWFjOjpzaXplRGlkQ2hhbmdlKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgaWYg
KG5ld1NpemUuaGVpZ2h0KCkgPiBvbGRTaXplLmhlaWdodCgpKQogICAgICAgICBtX25vbkNvbXBv
c2l0ZWRDb250ZW50TGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChGbG9hdFJlY3QoMCwgb2xk
U2l6ZS5oZWlnaHQoKSwgbmV3U2l6ZS53aWR0aCgpLCBuZXdTaXplLmhlaWdodCgpIC0gb2xkU2l6
ZS5oZWlnaHQoKSkpOwogCi0gICAgUGFnZU92ZXJsYXlMYXllck1hcDo6aXRlcmF0b3IgZW5kID0g
bV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsKLSAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpCi0gICAgICAgIGl0LT52YWx1ZS0+c2V0U2l6ZShuZXdTaXplKTsKKyAgICBpZiAobV9wYWdl
T3ZlcmxheUxheWVyKQorICAgICAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldFNpemUobmV3U2l6
ZSk7CiAKICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKICAgICBmbHVzaFBlbmRpbmdMYXllckNo
YW5nZXMoKTsKQEAgLTE4MiwyNiArMTc3LDIyIEBAIHZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6ZGV2
aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50
TGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogCi12b2lkIExheWVy
VHJlZUhvc3RNYWM6OmRpZEluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJs
YXkpCit2b2lkIExheWVyVHJlZUhvc3RNYWM6OmRpZEluc3RhbGxQYWdlT3ZlcmxheSgpCiB7Ci0g
ICAgY3JlYXRlUGFnZU92ZXJsYXlMYXllcihwYWdlT3ZlcmxheSk7CisgICAgY3JlYXRlUGFnZU92
ZXJsYXlMYXllcigpOwogICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCi12b2lkIExheWVy
VHJlZUhvc3RNYWM6OmRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiBwYWdlT3Zl
cmxheSkKK3ZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoKQog
ewotICAgIGRlc3Ryb3lQYWdlT3ZlcmxheUxheWVyKHBhZ2VPdmVybGF5KTsKKyAgICBkZXN0cm95
UGFnZU92ZXJsYXlMYXllcigpOwogICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCi12b2lk
IExheWVyVHJlZUhvc3RNYWM6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5
KiBwYWdlT3ZlcmxheSwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgTGF5ZXJUcmVlSG9zdE1h
Yzo6c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAg
ICBHcmFwaGljc0xheWVyKiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXllcnMuZ2V0KHBhZ2VPdmVy
bGF5KTsKLQotICAgIGlmICghbGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGxheWVyLT5z
ZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7CisgICAgQVNTRVJUKG1fcGFnZU92ZXJsYXlMYXll
cik7CisgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7
CiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CiAKQEAgLTI2MywxMiArMjU0LDkgQEAgdm9p
ZCBMYXllclRyZWVIb3N0TWFjOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdy
YXBoaWNzTGF5ZXIsIEdyYXBoaWMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFBhZ2VP
dmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuZW5kKCk7
Ci0gICAgZm9yIChQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcGFnZU92ZXJs
YXlMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+dmFs
dWUgPT0gZ3JhcGhpY3NMYXllcikgewotICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92
ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQorICAgIGlmIChncmFwaGljc0xheWVyID09IG1fcGFnZU92ZXJsYXlM
YXllcikgeworICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShncmFwaGljc0NvbnRl
eHQsIGNsaXBSZWN0KTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KIApAQCAtMzA3LDEyICsy
OTUsOCBAQCB2b2lkIExheWVyVHJlZUhvc3RNYWM6OmluaXRpYWxpemUoKQogCiAgICAgbV9yb290
TGF5ZXItPmFkZENoaWxkKG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQoKSk7CiAKLSAg
ICBpZiAobV93ZWJQYWdlLT5oYXNQYWdlT3ZlcmxheSgpKSB7Ci0gICAgICAgIFBhZ2VPdmVybGF5
TGlzdCYgcGFnZU92ZXJsYXlzID0gbV93ZWJQYWdlLT5wYWdlT3ZlcmxheXMoKTsKLSAgICAgICAg
UGFnZU92ZXJsYXlMaXN0OjppdGVyYXRvciBlbmQgPSBwYWdlT3ZlcmxheXMuZW5kKCk7Ci0gICAg
ICAgIGZvciAoUGFnZU92ZXJsYXlMaXN0OjppdGVyYXRvciBpdCA9IHBhZ2VPdmVybGF5cy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICAgICBjcmVhdGVQYWdlT3ZlcmxheUxheWVy
KGl0LT5nZXQoKSk7Ci0gICAgfQorICAgIGlmIChtX3dlYlBhZ2UtPmhhc1BhZ2VPdmVybGF5KCkp
CisgICAgICAgIGNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoKTsKIAogICAgIHN3aXRjaCAobV93ZWJQ
YWdlLT5sYXllckhvc3RpbmdNb2RlKCkpIHsKICAgICAgICAgY2FzZSBMYXllckhvc3RpbmdNb2Rl
RGVmYXVsdDoKQEAgLTM1OSwzOCArMzQzLDMyIEBAIGJvb2wgTGF5ZXJUcmVlSG9zdE1hYzo6Zmx1
c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKIAogICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExh
eWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7Ci0KLSAgICBQYWdl
T3ZlcmxheUxheWVyTWFwOjppdGVyYXRvciBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgp
OwotICAgIGZvciAoUGFnZU92ZXJsYXlMYXllck1hcDo6aXRlcmF0b3IgaXQgPSBtX3BhZ2VPdmVy
bGF5TGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisgICAgaWYgKG1fcGFnZU92
ZXJsYXlMYXllcikKKyAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5mbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICByZXR1cm4gbV93ZWJQYWdlLT5jb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdT
dWJmcmFtZXMoKTsKIH0KIAotdm9pZCBMYXllclRyZWVIb3N0TWFjOjpjcmVhdGVQYWdlT3Zlcmxh
eUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKK3ZvaWQgTGF5ZXJUcmVlSG9zdE1hYzo6
Y3JlYXRlUGFnZU92ZXJsYXlMYXllcigpCiB7Ci0gICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IGxh
eWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIHRoaXMp
OworICAgIEFTU0VSVCghbV9wYWdlT3ZlcmxheUxheWVyKTsKKworICAgIG1fcGFnZU92ZXJsYXlM
YXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlz
KTsKICNpZm5kZWYgTkRFQlVHCi0gICAgbGF5ZXItPnNldE5hbWUoIkxheWVyVHJlZUhvc3QgcGFn
ZSBvdmVybGF5IGNvbnRlbnQiKTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldE5hbWUoIkxh
eWVyVHJlZUhvc3QgcGFnZSBvdmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgogCi0gICAgbGF5ZXIt
PnNldEFjY2VsZXJhdGVzRHJhd2luZyhtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkt
PmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSk7Ci0gICAgbGF5ZXItPnNldERyYXdzQ29udGVu
dCh0cnVlKTsKLSAgICBsYXllci0+c2V0U2l6ZShtX3dlYlBhZ2UtPnNpemUoKSk7Ci0gICAgbGF5
ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkt
PnNob3dEZWJ1Z0JvcmRlcnMoKSk7Ci0gICAgbGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlciht
X3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dSZXBhaW50Q291bnRlcigpKTsK
LQotICAgIG1fcm9vdExheWVyLT5hZGRDaGlsZChsYXllci5nZXQoKSk7CisgICAgbV9wYWdlT3Zl
cmxheUxheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgbV9wYWdlT3ZlcmxheUxheWVy
LT5zZXRTaXplKG1fd2ViUGFnZS0+c2l6ZSgpKTsKIAotICAgIG1fcGFnZU92ZXJsYXlMYXllcnMu
YWRkKHBhZ2VPdmVybGF5LCBsYXllci5yZWxlYXNlKCkpOworICAgIG1fcm9vdExheWVyLT5hZGRD
aGlsZChtX3BhZ2VPdmVybGF5TGF5ZXIuZ2V0KCkpOwogfQogCi12b2lkIExheWVyVHJlZUhvc3RN
YWM6OmRlc3Ryb3lQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKK3Zv
aWQgTGF5ZXJUcmVlSG9zdE1hYzo6ZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIoKQogewotICAgIE93
blB0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IG1fcGFnZU92ZXJsYXlMYXllcnMudGFrZShwYWdl
T3ZlcmxheSk7Ci0gICAgQVNTRVJUKGxheWVyKTsKLQotICAgIGxheWVyLT5yZW1vdmVGcm9tUGFy
ZW50KCk7CisgICAgQVNTRVJUKG1fcGFnZU92ZXJsYXlMYXllcik7CisgICAgbV9wYWdlT3Zlcmxh
eUxheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgbV9wYWdlT3ZlcmxheUxheWVyID0gbnVs
bHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggYjcyZWIyNDY3YzM4MTllYjY2N2MyNmNlNTA5YjFhN2Ez
YTM5NjExOS4uNWI2ZDM2NmZjZjg3NTU4MWJhMzU1YzExZTYzYTA5ODI2OWM1MjAwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtMzQsNyArMzQsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTGF5ZXJGbHVzaFNjaGVkdWxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CkBAIC02OCw5ICs2Nyw5IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2goKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRJbnN0
YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEluc3RhbGxQ
YWdlT3ZlcmxheSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRVbmluc3RhbGxQYWdl
T3ZlcmxheSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRz
RGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBPVkVSUklERTsKIApAQCAtMTAxLDggKzEwMCw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKENBTGF5ZXIgKik7CiAKLSAgICB2
b2lkIGNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqKTsKLSAgICB2b2lkIGRlc3Ry
b3lQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5Kik7CisgICAgdm9pZCBjcmVhdGVQYWdlT3Zl
cmxheUxheWVyKCk7CisgICAgdm9pZCBkZXN0cm95UGFnZU92ZXJsYXlMYXllcigpOwogICAgIFdl
YkNvcmU6OlRpbGVkQmFja2luZyogbWFpbkZyYW1lVGlsZWRCYWNraW5nKCkgY29uc3Q7CiAgICAg
dm9pZCB1cGRhdGVEZWJ1Z0luZm9MYXllcihib29sIHNob3dMYXllcik7CiAKQEAgLTExNiw5ICsx
MTUsOCBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fZGVidWdJbmZvTGF5
ZXI7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8UGFnZU92ZXJsYXkqLCBPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcj4gPiBQYWdlT3ZlcmxheUxheWVyTWFwOwotICAgIFBhZ2VPdmVybGF5TGF5
ZXJNYXAgbV9wYWdlT3ZlcmxheUxheWVyczsKLSAgICBtdXRhYmxlIEhhc2hNYXA8Y29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIFJldGFpblB0cjxDQUxheWVyPiA+IG1fcGFnZU92ZXJsYXlQ
bGF0Zm9ybUxheWVyczsKKyAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9wYWdl
T3ZlcmxheUxheWVyOworICAgIG11dGFibGUgUmV0YWluUHRyPENBTGF5ZXI+IG1fcGFnZU92ZXJs
YXlQbGF0Zm9ybUxheWVyOwogCiAgICAgYm9vbCBtX2lzUGFpbnRpbmdTdXNwZW5kZWQ7CiAgICAg
Ym9vbCBtX2hhc1Jvb3RDb21wb3NpdGluZ0xheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggNmUyZjY4ZDViOTdlMTI4MmVkODc2NmI1OTFlYTM4NTIx
MDI3MjAxZS4uMGU0NWY3YmE2OTI3MGNhOTIxNzU2MjUwZTJlMWI2N2VhYWYwODE4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC0xNzYsMzQgKzE3Niwy
NyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaCgpCiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNjaGVkdWxlKCk7CiB9
CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRpZEluc3RhbGxQYWdlT3Zl
cmxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpkaWRJbnN0YWxsUGFnZU92ZXJsYXkoKQogewogICAgIG1fd2ViUGFnZS0+Y29y
ZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKS0+c2V0Rm9yY2VNYWluVGhyZWFkU2Nyb2xs
TGF5ZXJQb3NpdGlvblVwZGF0ZXModHJ1ZSk7CiAKLSAgICBjcmVhdGVQYWdlT3ZlcmxheUxheWVy
KHBhZ2VPdmVybGF5KTsKKyAgICBjcmVhdGVQYWdlT3ZlcmxheUxheWVyKCk7CiAgICAgc2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqIHBhZ2VPdmVy
bGF5KQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGlkVW5pbnN0YWxsUGFn
ZU92ZXJsYXkoKQogewotICAgIGRlc3Ryb3lQYWdlT3ZlcmxheUxheWVyKHBhZ2VPdmVybGF5KTsK
LSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwotCi0gICAgaWYgKG1fcGFnZU92
ZXJsYXlMYXllcnMuc2l6ZSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoUGFnZSogcGFn
ZSA9IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgcGFnZS0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKS0+c2V0Rm9yY2VNYWluVGhyZWFkU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoZmFs
c2UpOworCisgICAgZGVzdHJveVBhZ2VPdmVybGF5TGF5ZXIoKTsKKyAgICBzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXks
IGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjpzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAg
IEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbV9wYWdlT3ZlcmxheUxheWVycy5nZXQocGFnZU92ZXJs
YXkpOwotCi0gICAgaWYgKCFsYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbGF5ZXItPnNl
dE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKKyAgICBBU1NFUlQobV9wYWdlT3ZlcmxheUxheWVy
KTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsK
ICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogfQogCkBAIC0yMTUsMTIgKzIw
OCwxMSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJgogCiAgICAgaWYgKFRpbGVkQmFja2luZyog
dGlsZWRCYWNraW5nID0gbWFpbkZyYW1lVGlsZWRCYWNraW5nKCkpCiAgICAgICAgIHRpbGVkQmFj
a2luZy0+c2V0QWdncmVzc2l2ZWx5UmV0YWluc1RpbGVzKHNldHRpbmdzLT5hZ2dyZXNzaXZlVGls
ZVJldGVudGlvbkVuYWJsZWQoKSk7Ci0KLSAgICBQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRv
ciBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgpOwotICAgIGZvciAoUGFnZU92ZXJsYXlM
YXllck1hcDo6aXRlcmF0b3IgaXQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkgewotICAgICAgICBpdC0+dmFsdWUtPnNldEFjY2VsZXJhdGVzRHJhd2luZyhz
ZXR0aW5ncy0+YWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpKTsKLSAgICAgICAgaXQtPnZhbHVl
LT5zZXRTaG93RGVidWdCb3JkZXIoc2V0dGluZ3MtPnNob3dEZWJ1Z0JvcmRlcnMoKSk7Ci0gICAg
ICAgIGl0LT52YWx1ZS0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNldHRpbmdzLT5zaG93UmVwYWlu
dENvdW50ZXIoKSk7CisgICAgCisgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikgeworICAgICAg
ICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhzZXR0aW5ncy0+YWNj
ZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpKTsKKyAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5z
ZXRTaG93RGVidWdCb3JkZXIoc2V0dGluZ3MtPnNob3dEZWJ1Z0JvcmRlcnMoKSk7CisgICAgICAg
IG1fcGFnZU92ZXJsYXlMYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNldHRpbmdzLT5zaG93
UmVwYWludENvdW50ZXIoKSk7CiAgICAgfQogCiAgICAgLy8gU29vbiB3ZSB3YW50IHBhZ2VzIHdp
dGggZml4ZWQgcG9zaXRpb25lZCBlbGVtZW50cyB0byBiZSBhYmxlIHRvIGJlIHNjcm9sbGVkIGJ5
IHRoZSBTY3JvbGxpbmdDb29yZGluYXRvci4KQEAgLTI5MCwxMyArMjgyLDkgQEAgdm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRD
b250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRl
eHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0KQogewotICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGVu
ZCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuZW5kKCk7Ci0gICAgZm9yIChQYWdlT3ZlcmxheUxheWVy
TWFwOjppdGVyYXRvciBpdCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+dmFsdWUgPT0gZ3JhcGhpY3NMYXllcikgewotICAg
ICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250
ZXh0LCBjbGlwUmVjdCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KKyAg
ICBBU1NFUlRfVU5VU0VEKGdyYXBoaWNzTGF5ZXIsIGdyYXBoaWNzTGF5ZXIgPT0gbV9wYWdlT3Zl
cmxheUxheWVyKTsKKworICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KGdyYXBoaWNzQ29u
dGV4dCwgY2xpcFJlY3QpOwogfQogCiBmbG9hdCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdApAQCAtMzE4LDEzICszMDYsMTEgQEAgYm9vbCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogICAgICAgICBtX3Bl
bmRpbmdSb290Q29tcG9zaXRpbmdMYXllciA9IG51bGxwdHI7CiAgICAgfQogCi0gICAgUGFnZU92
ZXJsYXlMYXllck1hcDo6aXRlcmF0b3IgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsK
LSAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9wYWdlT3Zlcmxh
eUxheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgR3JhcGhpY3NMYXll
ciogbGF5ZXIgPSBpdC0+dmFsdWUuZ2V0KCk7Ci0gICAgICAgIGxheWVyLT5zZXROZWVkc0Rpc3Bs
YXkoKTsKLSAgICAgICAgaWYgKFRpbGVkQmFja2luZyogb3ZlcmxheVRpbGVkQmFja2luZyA9IGxh
eWVyLT50aWxlZEJhY2tpbmcoKSkKKyAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKSB7CisgICAg
ICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgICAgIGlmIChU
aWxlZEJhY2tpbmcqIG92ZXJsYXlUaWxlZEJhY2tpbmcgPSBtX3BhZ2VPdmVybGF5TGF5ZXItPnRp
bGVkQmFja2luZygpKQogICAgICAgICAgICAgb3ZlcmxheVRpbGVkQmFja2luZy0+c2V0VmlzaWJs
ZVJlY3QoZW5jbG9zaW5nSW50UmVjdChtX3Jvb3RMYXllci5nZXQoKS5mcmFtZSkpOwotICAgICAg
ICBsYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworICAgICAg
ICBtX3BhZ2VPdmVybGF5TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9u
bHkoKTsKICAgICB9CiAKICAgICBib29sIHJldHVyblZhbHVlID0gbV93ZWJQYWdlLT5jb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdT
dWJmcmFtZXMoKTsKQEAgLTM2NywyMCArMzUzLDIwIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNldEV4cG9zZWRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZXhwb3NlZFJlY3Qp
CiAKICAgICBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKS0+c2V0RXhwb3NlZFJlY3QoZXhwb3NlZFJl
Y3QpOwogCi0gICAgUGFnZU92ZXJsYXlMYXllck1hcDo6aXRlcmF0b3IgZW5kID0gbV9wYWdlT3Zl
cmxheUxheWVycy5lbmQoKTsKLSAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAg
ICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IGl0LT52YWx1ZS0+dGlsZWRCYWNr
aW5nKCkpCisgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikgeworICAgICAgICBpZiAoVGlsZWRC
YWNraW5nKiB0aWxlZEJhY2tpbmcgPSBtX3BhZ2VPdmVybGF5TGF5ZXItPnRpbGVkQmFja2luZygp
KQogICAgICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRFeHBvc2VkUmVjdChleHBvc2VkUmVjdCk7
CisgICAgfQogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjptYWluRnJh
bWVTY3JvbGxhYmlsaXR5Q2hhbmdlZChib29sIGlzU2Nyb2xsYWJsZSkKIHsKICAgICBtYWluRnJh
bWVUaWxlZEJhY2tpbmcoKS0+c2V0Q2xpcHNUb0V4cG9zZWRSZWN0KCFpc1Njcm9sbGFibGUpOwog
Ci0gICAgUGFnZU92ZXJsYXlMYXllck1hcDo6aXRlcmF0b3IgZW5kID0gbV9wYWdlT3ZlcmxheUxh
eWVycy5lbmQoKTsKLSAgICBmb3IgKFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0g
bV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGlm
IChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IGl0LT52YWx1ZS0+dGlsZWRCYWNraW5nKCkp
CisgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikgeworICAgICAgICBpZiAoVGlsZWRCYWNraW5n
KiB0aWxlZEJhY2tpbmcgPSBtX3BhZ2VPdmVybGF5TGF5ZXItPnRpbGVkQmFja2luZygpKQogICAg
ICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRDbGlwc1RvRXhwb3NlZFJlY3QoIWlzU2Nyb2xsYWJs
ZSk7CisgICAgfQogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRh
dGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKQEAgLTQwMCw5ICszODYsOCBAQCB2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJ
bnRTaXplJiB2aWV3U2l6ZSkKICAgICAgICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0KIAot
ICAgIFBhZ2VPdmVybGF5TGF5ZXJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fcGFnZU92ZXJsYXlMYXll
cnMuZW5kKCk7Ci0gICAgZm9yIChQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRvciBpdCA9IG1f
cGFnZU92ZXJsYXlMYXllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICBpdC0+
dmFsdWUtPnNldFNpemUodmlld1NpemUpOworICAgIGlmIChtX3BhZ2VPdmVybGF5TGF5ZXIpCisg
ICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0U2l6ZSh2aWV3U2l6ZSk7CiAKICAgICBpZiAo
IW1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikKICAgICAgICAgZmx1c2hMYXllcnMoKTsKQEAgLTQ5
NCw5ICs0NzksOCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRSb290
Q29tcG9zaXRpbmdMYXllcihDQUxheWVyICpsYXllcikKICAgICBpZiAoaGFkUm9vdENvbXBvc2l0
aW5nTGF5ZXIgIT0gbV9oYXNSb290Q29tcG9zaXRpbmdMYXllcikKICAgICAgICAgbV9sYXllckhv
c3RpbmdDb250ZXh0LT5zZXRSb290TGF5ZXIobV9oYXNSb290Q29tcG9zaXRpbmdMYXllciA/IG1f
cm9vdExheWVyLmdldCgpIDogMCk7CiAKLSAgICBQYWdlT3ZlcmxheUxheWVyTWFwOjppdGVyYXRv
ciBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgpOwotICAgIGZvciAoUGFnZU92ZXJsYXlM
YXllck1hcDo6aXRlcmF0b3IgaXQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkKLSAgICAgICAgW21fcm9vdExheWVyLmdldCgpIGFkZFN1YmxheWVyOml0LT52
YWx1ZS0+cGxhdGZvcm1MYXllcigpXTsKKyAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQorICAg
ICAgICBbbV9yb290TGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6bV9wYWdlT3ZlcmxheUxheWVyLT5w
bGF0Zm9ybUxheWVyKCldOwogCiAgICAgaWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0g
bWFpbkZyYW1lVGlsZWRCYWNraW5nKCkpIHsKICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRBZ2dy
ZXNzaXZlbHlSZXRhaW5zVGlsZXMobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5h
Z2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQoKSk7CkBAIC01MDksMjIgKzQ5MywyNCBAQCB2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXll
cihDQUxheWVyICpsYXllcikKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi12b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBh
Z2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoKQogewotICAgIE93blB0cjxHcmFwaGljc0xheWVy
PiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0
aGlzKTsKKyAgICBBU1NFUlQoIW1fcGFnZU92ZXJsYXlMYXllcik7CisKKyAgICBtX3BhZ2VPdmVy
bGF5TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
dGhpcyk7CiAjaWZuZGVmIE5ERUJVRwotICAgIGxheWVyLT5zZXROYW1lKCJwYWdlIG92ZXJsYXkg
Y29udGVudCIpOworICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0TmFtZSgicGFnZSBvdmVybGF5
IGNvbnRlbnQiKTsKICNlbmRpZgogCi0gICAgbGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyht
X3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQoKSk7Ci0gICAgbGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKLSAgICBsYXllci0+c2V0
U2l6ZShleHBhbmRlZEludFNpemUoRmxvYXRTaXplKG1fcm9vdExheWVyLmdldCgpLmZyYW1lLnNp
emUpKSk7Ci0gICAgbGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihtX3dlYlBhZ2UtPmNvcmVQYWdl
KCktPnNldHRpbmdzKCktPnNob3dEZWJ1Z0JvcmRlcnMoKSk7Ci0gICAgbGF5ZXItPnNldFNob3dS
ZXBhaW50Q291bnRlcihtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNob3dSZXBh
aW50Q291bnRlcigpKTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldEFjY2VsZXJhdGVzRHJh
d2luZyhtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQoKSk7CisgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1
ZSk7CisgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaXplKGV4cGFuZGVkSW50U2l6ZShGbG9h
dFNpemUobV9yb290TGF5ZXIuZ2V0KCkuZnJhbWUuc2l6ZSkpKTsKKyAgICBtX3BhZ2VPdmVybGF5
TGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdz
KCktPnNob3dEZWJ1Z0JvcmRlcnMoKSk7CisgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaG93
UmVwYWludENvdW50ZXIobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zaG93UmVw
YWludENvdW50ZXIoKSk7CiAKLSAgICBtX3BhZ2VPdmVybGF5UGxhdGZvcm1MYXllcnMuc2V0KGxh
eWVyLmdldCgpLCBsYXllci0+cGxhdGZvcm1MYXllcigpKTsKKyAgICBtX3BhZ2VPdmVybGF5UGxh
dGZvcm1MYXllciA9IG1fcGFnZU92ZXJsYXlMYXllci0+cGxhdGZvcm1MYXllcigpOwogCi0gICAg
aWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0gbGF5ZXItPnRpbGVkQmFja2luZygpKSB7
CisgICAgaWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0gbV9wYWdlT3ZlcmxheUxheWVy
LT50aWxlZEJhY2tpbmcoKSkgewogICAgICAgICB0aWxlZEJhY2tpbmctPnNldEV4cG9zZWRSZWN0
KG1fZXhwb3NlZFJlY3QpOwogICAgICAgICB0aWxlZEJhY2tpbmctPnNldENsaXBzVG9FeHBvc2Vk
UmVjdCghbV93ZWJQYWdlLT5tYWluRnJhbWVJc1Njcm9sbGFibGUoKSk7CiAgICAgfQpAQCAtNTMy
LDUyICs1MTgsNDkgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Y3JlYXRl
UGFnZU92ZXJsYXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXIKICAgICBbQ0FUcmFuc2FjdGlv
biBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKIAot
ICAgIFttX3Jvb3RMYXllci5nZXQoKSBhZGRTdWJsYXllcjpsYXllci0+cGxhdGZvcm1MYXllcigp
XTsKKyAgICBbbV9yb290TGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6bV9wYWdlT3ZlcmxheUxheWVy
LT5wbGF0Zm9ybUxheWVyKCldOwogCiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKLQotICAg
IG1fcGFnZU92ZXJsYXlMYXllcnMuYWRkKHBhZ2VPdmVybGF5LCBsYXllci5yZWxlYXNlKCkpOwog
fQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkZXN0cm95UGFnZU92ZXJs
YXlMYXllcihQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpkZXN0cm95UGFnZU92ZXJsYXlMYXllcigpCiB7Ci0gICAgT3duUHRyPEdy
YXBoaWNzTGF5ZXI+IGxheWVyID0gbV9wYWdlT3ZlcmxheUxheWVycy50YWtlKHBhZ2VPdmVybGF5
KTsKLSAgICBBU1NFUlQobGF5ZXIpOworICAgIEFTU0VSVChtX3BhZ2VPdmVybGF5TGF5ZXIpOwog
CiAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwogICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2Fi
bGVBY3Rpb25zOllFU107CiAKLSAgICBbbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSByZW1vdmVGcm9t
U3VwZXJsYXllcl07CisgICAgW21fcGFnZU92ZXJsYXlMYXllci0+cGxhdGZvcm1MYXllcigpIHJl
bW92ZUZyb21TdXBlcmxheWVyXTsKIAogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAKLSAg
ICBtX3BhZ2VPdmVybGF5UGxhdGZvcm1MYXllcnMucmVtb3ZlKGxheWVyLmdldCgpKTsKKyAgICBt
X3BhZ2VPdmVybGF5TGF5ZXIgPSBudWxscHRyOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXll
ciogbGF5ZXIpIGNvbnN0CiB7Ci0gICAgUmV0YWluUHRyPENBTGF5ZXI+IG9sZFBsYXRmb3JtTGF5
ZXIgPSBtX3BhZ2VPdmVybGF5UGxhdGZvcm1MYXllcnMuZ2V0KGxheWVyKTsKLQotICAgIGlmICgh
b2xkUGxhdGZvcm1MYXllcikKKyAgICBpZiAobGF5ZXIgIT0gbV9wYWdlT3ZlcmxheUxheWVyLmdl
dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAob2xkUGxhdGZvcm1MYXllci5nZXQoKSA9
PSBsYXllci0+cGxhdGZvcm1MYXllcigpKQorICAgIGlmIChtX3BhZ2VPdmVybGF5UGxhdGZvcm1M
YXllci5nZXQoKSA9PSBsYXllci0+cGxhdGZvcm1MYXllcigpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJs
ZUFjdGlvbnM6WUVTXTsKKyAgICAKKyAgICBpZiAobV9wYWdlT3ZlcmxheVBsYXRmb3JtTGF5ZXIp
CisgICAgICAgIFttX3BhZ2VPdmVybGF5UGxhdGZvcm1MYXllci5nZXQoKSByZW1vdmVGcm9tU3Vw
ZXJsYXllcl07CiAKLSAgICBbbV9yb290TGF5ZXIuZ2V0KCkgaW5zZXJ0U3VibGF5ZXI6bGF5ZXIt
PnBsYXRmb3JtTGF5ZXIoKSBhYm92ZTpvbGRQbGF0Zm9ybUxheWVyLmdldCgpXTsKLSAgICBbb2xk
UGxhdGZvcm1MYXllci5nZXQoKSByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0KKyAgICBbbV9yb290
TGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6bV9wYWdlT3ZlcmxheUxheWVyLT5wbGF0Zm9ybUxheWVy
KCldOworICAgIAogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAKLSAgICBpZiAoVGlsZWRC
YWNraW5nKiB0aWxlZEJhY2tpbmcgPSBsYXllci0+dGlsZWRCYWNraW5nKCkpIHsKKyAgICBpZiAo
VGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSBtX3BhZ2VPdmVybGF5TGF5ZXItPnRpbGVkQmFj
a2luZygpKSB7CiAgICAgICAgIHRpbGVkQmFja2luZy0+c2V0RXhwb3NlZFJlY3QobV9leHBvc2Vk
UmVjdCk7CiAgICAgICAgIHRpbGVkQmFja2luZy0+c2V0Q2xpcHNUb0V4cG9zZWRSZWN0KCFtX3dl
YlBhZ2UtPm1haW5GcmFtZUlzU2Nyb2xsYWJsZSgpKTsKICAgICB9CiAKLSAgICBtX3BhZ2VPdmVy
bGF5UGxhdGZvcm1MYXllcnMuc2V0KGxheWVyLCBsYXllci0+cGxhdGZvcm1MYXllcigpKTsKKyAg
ICBtX3BhZ2VPdmVybGF5UGxhdGZvcm1MYXllciA9IG1fcGFnZU92ZXJsYXlMYXllci0+cGxhdGZv
cm1MYXllcigpOwogfQogCiBUaWxlZEJhY2tpbmcqIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjptYWluRnJhbWVUaWxlZEJhY2tpbmcoKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>