<?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>124859</bug_id>
          
          <creation_ts>2013-11-25 13:56:44 -0800</creation_ts>
          <short_desc>REGRESSION(r159740): Crashing xmlhttprequest/access-control-repeated-failed-preflight-crash.html on Mavericks and Mountain Lion - ASSERT(m_pageGroup) WebPage.cpp:352 (Requested by dino_ on #webkit).</short_desc>
          <delta_ts>2013-11-25 14:00:00 -0800</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>124556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>dino</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954091</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-25 13:56:44 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159740 broke the build:
Crashing xmlhttprequest/access-control-repeated-failed-preflight-crash.html on Mavericks and Mountain Lion - ASSERT(m_pageGroup) WebPage.cpp:352 (Requested by dino_ on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954093</commentid>
    <comment_count>1</comment_count>
      <attachid>217830</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-25 13:57:06 -0800</bug_when>
    <thetext>Created attachment 217830
ROLLOUT of r159740

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>954094</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-11-25 13:58:23 -0800</bug_when>
    <thetext>http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r159758%20(14413)/http/tests/xmlhttprequest/access-control-repeated-failed-preflight-crash-crash-log.txt

That&apos;s a Debug crash log. m_pageGroup is null so boom on release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954095</commentid>
    <comment_count>3</comment_count>
      <attachid>217830</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-25 13:59:58 -0800</bug_when>
    <thetext>Comment on attachment 217830
ROLLOUT of r159740

Clearing flags on attachment: 217830

Committed r159765: &lt;http://trac.webkit.org/changeset/159765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954096</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-25 14:00:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217830</attachid>
            <date>2013-11-25 13:57:06 -0800</date>
            <delta_ts>2013-11-25 13:59:58 -0800</delta_ts>
            <desc>ROLLOUT of r159740</desc>
            <filename>bug-124859-20131125135705.patch</filename>
            <type>text/plain</type>
            <size>41854</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzhmNmE2MjRhYzI0Mzg1
ZWVmNWQ4NWI0OWM5ZTkwYjk3N2I1ODVmOC4uNDFlOTVhMzVlNGE5MGFlYmM0NTE4N2MzMjliYTU1
ZTA3ZTcxZWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTExLTI1ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU5NzQwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTk3NDAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNDg1OQorCisgICAgICAgIENyYXNoaW5nIHhtbGh0dHByZXF1ZXN0L2FjY2Vzcy1j
b250cm9sLXJlcGVhdGVkLWZhaWxlZC0KKyAgICAgICAgcHJlZmxpZ2h0LWNyYXNoLmh0bWwgb24g
TWF2ZXJpY2tzIGFuZCBNb3VudGFpbiBMaW9uIC0KKyAgICAgICAgQVNTRVJUKG1fcGFnZUdyb3Vw
KSBXZWJQYWdlLmNwcDozNTIgKFJlcXVlc3RlZCBieSBkaW5vXyBvbgorICAgICAgICAjd2Via2l0
KS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKHN0
cnVjdF9vcl9jbGFzcyk6CisgICAgICAgICogU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlRW5jb2Rlcjo6YmFzZUVuY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL21hYy9PYmpDT2JqZWN0
R3JhcGhDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVy
cy5tbToKKyAgICAgICAgKFdlYktpdDo6T2JqQ09iamVjdEdyYXBoRW5jb2Rlcjo6YmFzZUVuY29k
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNvZGVySW1w
bDo6V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXJJbXBsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXJJbXBsOjplbmNvZGUpOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU9iakNPYmplY3RHcmFwaEVuY29kZXJJbXBsOjplbmNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2Rlcjo6
V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuY29kZU1lc3NhZ2VCb2R5KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNyZWF0
ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjcmVhdGVXZWJQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cG9zdE1lc3NhZ2VUb0luamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXI6OldlYkNvbnRl
eHRVc2VyTWVzc2FnZUVuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0VXNlck1l
c3NhZ2VFbmNvZGVyOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZUdyb3VwOjpzZW5kVG9BbGxQcm9jZXNzZXNJbkdyb3VwKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRVUkwpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojpsb2FkRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZERhdGEp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRIVE1MU3RyaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFBsYWluVGV4dFN0cmluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpwb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmluaXRpYWxpemVDcmVhdGlvblBhcmFtZXRlcnMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpk
aXNjb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQ
YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJz
Lmg6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2Rl
cjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYlBhZ2VHcm91
cCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDEzLTExLTI1ICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBQdXQgbW9zdCBvZiB0aGUgQ29j
b2EgQVBJIGJlaGluZCBXS19BUElfRU5BQkxFRCBndWFyZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCBkYzY1OGJlZDg2MjlmZTBjZjA3OGJkNzM4NmI4
MDk3ODM3ZjdmMzE5Li5kZTJiYjY2ZTA2OTAyNDg3NzM4NzBlODJjMzRkMzQxNjg5NDhmMGJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKKysr
IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC0yMTYsNyAr
MjE2LDYgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3BhY2UsIHR5cGUpOgogICAgICAgICAn
V2ViS2l0OjpUZXh0Q2hlY2tlclN0YXRlJywKICAgICAgICAgJ1dlYktpdDo6V2ViTmF2aWdhdGlv
bkRhdGFTdG9yZScsCiAgICAgICAgICdXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMn
LAotICAgICAgICAnV2ViS2l0OjpXZWJQYWdlR3JvdXBEYXRhJywKICAgICAgICAgJ1dlYktpdDo6
V2ViUHJlZmVyZW5jZXNTdG9yZScsCiAgICAgICAgICdXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMnLAogICAgICAgICAnV2ViS2l0OjpXaW5kb3dHZW9tZXRyeScsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCmluZGV4IGJhZjk3NWIyODgzMjU5NTRl
Y2U1MjVhZWNkY2RhZjEwYWMxZjM5NDYuLjViZDM3ZjUyYzhmODNlYzliNThkYTA5ZWI3YzNhMGU2
ZmRhM2I4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCkBA
IC03MSw3ICs3MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdGVtcGxhdGU8dHlwZW5hbWUgT3du
ZXI+CiBjbGFzcyBVc2VyTWVzc2FnZUVuY29kZXIgewogcHVibGljOgotICAgIGJvb2wgYmFzZUVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE93bmVyJiBjb2Rl
ciwgQVBJOjpPYmplY3Q6OlR5cGUmIHR5cGUpIGNvbnN0CisgICAgYm9vbCBiYXNlRW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJOjpPYmplY3Q6OlR5cGUmIHR5cGUp
IGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIW1fcm9vdCkgewogICAgICAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oQVBJOjpPYmplY3Q6OlR5cGU6Ok51bGwpOwpAQCAt
ODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBBUEk6OkFycmF5KiBhcnJheSA9IHN0
YXRpY19jYXN0PEFQSTo6QXJyYXkqPihtX3Jvb3QpOwogICAgICAgICAgICAgZW5jb2RlciA8PCBz
dGF0aWNfY2FzdDx1aW50NjRfdD4oYXJyYXktPnNpemUoKSk7CiAgICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGFycmF5LT5zaXplKCk7ICsraSkKLSAgICAgICAgICAgICAgICBlbmNv
ZGVyIDw8IE93bmVyKGNvZGVyLCBhcnJheS0+YXQoaSkpOworICAgICAgICAgICAgICAgIGVuY29k
ZXIgPDwgT3duZXIoYXJyYXktPmF0KGkpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkRpY3Rpb25hcnk6IHsKQEAg
LTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAgICAgICAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6
TWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOwogICAgICAgICAgICAgZm9y
ICg7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgaXQtPmtl
eTsKLSAgICAgICAgICAgICAgICBlbmNvZGVyIDw8IE93bmVyKGNvZGVyLCBpdC0+dmFsdWUuZ2V0
KCkpOworICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoaXQtPnZhbHVlLmdldCgpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0x
NDksMTUgKzE0OSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUEk6Ok9i
amVjdDo6VHlwZTo6UmVuZGVyTGF5ZXI6IHsKICAgICAgICAgICAgIFdlYlJlbmRlckxheWVyKiBy
ZW5kZXJMYXllciA9IHN0YXRpY19jYXN0PFdlYlJlbmRlckxheWVyKj4obV9yb290KTsKLSAgICAg
ICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29kZXIsIHJlbmRlckxheWVyLT5yZW5kZXJlcigpKTsK
KyAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIocmVuZGVyTGF5ZXItPnJlbmRlcmVyKCkpOwog
ICAgICAgICAgICAgZW5jb2RlciA8PCByZW5kZXJMYXllci0+aXNSZWZsZWN0aW9uKCk7CiAgICAg
ICAgICAgICBlbmNvZGVyIDw8IHJlbmRlckxheWVyLT5pc0NsaXBwaW5nKCk7CiAgICAgICAgICAg
ICBlbmNvZGVyIDw8IHJlbmRlckxheWVyLT5pc0NsaXBwZWQoKTsKICAgICAgICAgICAgIGVuY29k
ZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJlbmRlckxheWVyLT5jb21wb3NpdGluZ0xheWVy
VHlwZSgpKTsKICAgICAgICAgICAgIGVuY29kZXIgPDwgcmVuZGVyTGF5ZXItPmFic29sdXRlQm91
bmRpbmdCb3goKTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29kZXIsIHJlbmRlckxh
eWVyLT5uZWdhdGl2ZVpPcmRlckxpc3QoKSk7Ci0gICAgICAgICAgICBlbmNvZGVyIDw8IE93bmVy
KGNvZGVyLCByZW5kZXJMYXllci0+bm9ybWFsRmxvd0xpc3QoKSk7Ci0gICAgICAgICAgICBlbmNv
ZGVyIDw8IE93bmVyKGNvZGVyLCByZW5kZXJMYXllci0+cG9zaXRpdmVaT3JkZXJMaXN0KCkpOwor
ICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihyZW5kZXJMYXllci0+bmVnYXRpdmVaT3JkZXJM
aXN0KCkpOworICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihyZW5kZXJMYXllci0+bm9ybWFs
Rmxvd0xpc3QoKSk7CisgICAgICAgICAgICBlbmNvZGVyIDw8IE93bmVyKHJlbmRlckxheWVyLT5w
b3NpdGl2ZVpPcmRlckxpc3QoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpSZW5kZXJPYmplY3Q6IHsKQEAgLTE2
NSwxMCArMTY1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGVuY29kZXIgPDwgcmVuZGVyT2Jq
ZWN0LT5uYW1lKCk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHJlbmRlck9iamVjdC0+ZWxlbWVu
dFRhZ05hbWUoKTsKICAgICAgICAgICAgIGVuY29kZXIgPDwgcmVuZGVyT2JqZWN0LT5lbGVtZW50
SUQoKTsKLSAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29kZXIsIHJlbmRlck9iamVjdC0+
ZWxlbWVudENsYXNzTmFtZXMoKSk7CisgICAgICAgICAgICBlbmNvZGVyIDw8IE93bmVyKHJlbmRl
ck9iamVjdC0+ZWxlbWVudENsYXNzTmFtZXMoKSk7CiAgICAgICAgICAgICBlbmNvZGVyIDw8IHJl
bmRlck9iamVjdC0+YWJzb2x1dGVQb3NpdGlvbigpOwogICAgICAgICAgICAgZW5jb2RlciA8PCBy
ZW5kZXJPYmplY3QtPmZyYW1lUmVjdCgpOwotICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihj
b2RlciwgcmVuZGVyT2JqZWN0LT5jaGlsZHJlbigpKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwg
T3duZXIocmVuZGVyT2JqZWN0LT5jaGlsZHJlbigpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlVSTDogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDIyYzViNjI4OWQ4ZTY3ZTVlMGJjMmMxNmNjYzM5Y2RkYTdjNzllMTIuLjFkYmY5NWI5
ODEzN2JmMmQxOWEwNTg5OTRjODQwOTgxMjY2NGI4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBzdG9yZTsKICAgICBl
bmNvZGVyLmVuY29kZUVudW0oZHJhd2luZ0FyZWFUeXBlKTsKLSAgICBlbmNvZGVyIDw8IHBhZ2VH
cm91cElEOworICAgIGVuY29kZXIgPDwgcGFnZUdyb3VwRGF0YTsKICAgICBlbmNvZGVyIDw8IGRy
YXdzQmFja2dyb3VuZDsKICAgICBlbmNvZGVyIDw8IGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
OwogICAgIGVuY29kZXIgPDwgdW5kZXJsYXlDb2xvcjsKQEAgLTc2LDcgKzc2LDcgQEAgYm9vbCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBXZWJQYWcKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVFbnVtKHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5wYWdlR3JvdXBJRCkp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRy
YXdzQmFja2dyb3VuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGE3MzBjODdlZTY5
OWQ3MTgyNTlmOGQxOWMzZTQzYzFkMDFjYjlmY2UuLmNmYjBmMzllZDY3Yzk0OTQ3ZTk2YmNhYjU3
MzRiNDlmZmI4ZjhkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNjAsNyArNjAsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyB7CiAgICAgCiAgICAgV2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZTsKICAg
ICBEcmF3aW5nQXJlYVR5cGUgZHJhd2luZ0FyZWFUeXBlOwotICAgIHVpbnQ2NF90IHBhZ2VHcm91
cElEOworICAgIFdlYlBhZ2VHcm91cERhdGEgcGFnZUdyb3VwRGF0YTsKIAogICAgIGJvb2wgZHJh
d3NCYWNrZ3JvdW5kOwogICAgIGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMuaAppbmRl
eCBiNmRiMmU3NDczOTNkZWU0NTAxZTFkYjA1OWVhMzA1YTU0OWYwNDA0Li40MTkxZTU3Yjg1OWU1
OGMxMTY4MjVjYWZiNjE1MWYyYTBiMjliZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoQ29kZXJzLmgKQEAgLTM4LDEyICszOCwxMSBAQCBjbGFz
cyBXZWJQcm9jZXNzUHJveHk7CiAKIGNsYXNzIFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNv
ZGVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5j
b2RlcihPYmpDT2JqZWN0R3JhcGgqLCBXZWJQcm9jZXNzUHJveHkqKTsKKyAgICBleHBsaWNpdCBX
ZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlcihPYmpDT2JqZWN0R3JhcGgqKTsKICAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKIAogcHJpdmF0ZToK
ICAgICBPYmpDT2JqZWN0R3JhcGgqIG1fb2JqZWN0R3JhcGg7Ci0gICAgV2ViUHJvY2Vzc1Byb3h5
KiBtX3Byb2Nlc3M7CiB9OwogCiBjbGFzcyBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRGVjb2Rl
ciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFw
aENvZGVycy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoQ29k
ZXJzLm1tCmluZGV4IDgxNThhZDA0YzdiZmIzZTg4OTM0MGZlY2Y2OTMzMDBlNGI2NTAzOTIuLjVh
OTFjY2E1MDQ2MGY1ODIwZjU4ZTY5MTQyOTYxMGRhMWYxYjJkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoQ29kZXJzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoQ29kZXJzLm1tCkBAIC05Miw3ICs5
Miw3IEBAIHN0YXRpYyBXZWJLaXROU1R5cGUgdHlwZUZyb21PYmplY3QoaWQgb2JqZWN0KQogdGVt
cGxhdGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBPYmpDT2JqZWN0R3JhcGhFbmNvZGVyIHsKIHB1
YmxpYzoKLSAgICBib29sIGJhc2VFbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBPd25lciYgY29kZXIsIFdlYktpdE5TVHlwZSYgdHlwZSkgY29uc3QKKyAgICBi
b29sIGJhc2VFbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBXZWJLaXRO
U1R5cGUmIHR5cGUpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoIW1fcm9vdCkgewogICAgICAg
ICAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTnVsbFR5cGUpOwpAQCAtMTE4
LDcgKzExOCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KHNpemUpOwogCiAgICAgICAgICAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkg
PCBzaXplOyArK2kpCi0gICAgICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihjb2RlciwgW2Fy
cmF5IG9iamVjdEF0SW5kZXg6aV0pOworICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIo
W2FycmF5IG9iamVjdEF0SW5kZXg6aV0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBOU0RpY3Rpb25hcnlUeXBlOiB7CkBAIC0xMzAsOCArMTMwLDgg
QEAgcHVibGljOgogICAgICAgICAgICAgTlNBcnJheSAqa2V5cyA9IFtkaWN0aW9uYXJ5IGFsbEtl
eXNdOwogICAgICAgICAgICAgTlNBcnJheSAqdmFsdWVzID0gW2RpY3Rpb25hcnkgYWxsVmFsdWVz
XTsKICAgICAgICAgICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IHNpemU7ICsraSkgewot
ICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29kZXIsIFtrZXlzIG9iamVjdEF0SW5k
ZXg6aV0pOwotICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgT3duZXIoY29kZXIsIFt2YWx1ZXMg
b2JqZWN0QXRJbmRleDppXSk7CisgICAgICAgICAgICAgICAgZW5jb2RlciA8PCBPd25lcihba2V5
cyBvYmplY3RBdEluZGV4OmldKTsKKyAgICAgICAgICAgICAgICBlbmNvZGVyIDw8IE93bmVyKFt2
YWx1ZXMgb2JqZWN0QXRJbmRleDppXSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtMjY5LDIyICsyNjksMTUgQEAgY2xhc3MgV2ViQ29udGV4dE9iakNPYmpl
Y3RHcmFwaEVuY29kZXJJbXBsIDogcHVibGljIE9iakNPYmplY3RHcmFwaEVuY29kZXI8V2ViQ28K
IHB1YmxpYzoKICAgICB0eXBlZGVmIE9iakNPYmplY3RHcmFwaEVuY29kZXI8V2ViQ29udGV4dE9i
akNPYmplY3RHcmFwaEVuY29kZXJJbXBsPiBCYXNlOwogCi0gICAgZXhwbGljaXQgV2ViQ29udGV4
dE9iakNPYmplY3RHcmFwaEVuY29kZXJJbXBsKGlkIHJvb3QsIFdlYlByb2Nlc3NQcm94eSogcHJv
Y2VzcykKKyAgICBleHBsaWNpdCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwo
aWQgcm9vdCkKICAgICAgICAgOiBCYXNlKHJvb3QpCi0gICAgICAgICwgbV9wcm9jZXNzKHByb2Nl
c3MpCi0gICAgewotICAgIH0KLQotICAgIFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNvZGVy
SW1wbChjb25zdCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2RlckltcGwmIHVzZXJNZXNz
YWdlRW5jb2RlciwgaWQgcm9vdCkKLSAgICAgICAgOiBCYXNlKHJvb3QpCi0gICAgICAgICwgbV9w
cm9jZXNzKHVzZXJNZXNzYWdlRW5jb2Rlci5tX3Byb2Nlc3MpCiAgICAgewogICAgIH0KIAogICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICB7CiAgICAgICAgIFdlYktpdE5TVHlwZSB0eXBlID0gTnVsbFR5cGU7Ci0gICAgICAgIGlmIChi
YXNlRW5jb2RlKGVuY29kZXIsICp0aGlzLCB0eXBlKSkKKyAgICAgICAgaWYgKGJhc2VFbmNvZGUo
ZW5jb2RlciwgdHlwZSkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgc3dpdGNoICh0
eXBlKSB7CkBAIC0yOTcsNyArMjkwLDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIGNh
c2UgV0tUeXBlUmVmV3JhcHBlclR5cGU6IHsKICAgICAgICAgICAgIFdLVHlwZVJlZldyYXBwZXIg
KndyYXBwZXIgPSBzdGF0aWNfY2FzdDxXS1R5cGVSZWZXcmFwcGVyICo+KG1fcm9vdCk7Ci0gICAg
ICAgICAgICBlbmNvZGVyIDw8IFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodG9JbXBsKHdy
YXBwZXIub2JqZWN0KSwgbV9wcm9jZXNzKTsKKyAgICAgICAgICAgIGVuY29kZXIgPDwgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih0b0ltcGwod3JhcHBlci5vYmplY3QpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTMwNiw5ICsyOTksNiBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KLQotcHJpdmF0ZToKLSAgICBX
ZWJQcm9jZXNzUHJveHkqIG1fcHJvY2VzczsKIH07CiAKIApAQCAtMzg4LDE1ICszNzgsMTAgQEAg
cHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBJbmplY3RlZEJ1bmRsZU9iakNP
YmplY3RHcmFwaEVuY29kZXJJbXBsKGNvbnN0IEluamVjdGVkQnVuZGxlT2JqQ09iamVjdEdyYXBo
RW5jb2RlckltcGwmLCBpZCByb290KQotICAgICAgICA6IEJhc2Uocm9vdCkKLSAgICB7Ci0gICAg
fQotCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIHsKICAgICAgICAgV2ViS2l0TlNUeXBlIHR5cGUgPSBOdWxsVHlwZTsKLSAgICAg
ICAgaWYgKGJhc2VFbmNvZGUoZW5jb2RlciwgKnRoaXMsIHR5cGUpKQorICAgICAgICBpZiAoYmFz
ZUVuY29kZShlbmNvZGVyLCB0eXBlKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBz
d2l0Y2ggKHR5cGUpIHsKQEAgLTQ4NiwxNSArNDcxLDE0IEBAIHByaXZhdGU6CiAKIC8vIEFkYXB0
b3JzCiAKLVdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNvZGVyOjpXZWJDb250ZXh0T2JqQ09i
amVjdEdyYXBoRW5jb2RlcihPYmpDT2JqZWN0R3JhcGgqIG9iamVjdEdyYXBoLCBXZWJQcm9jZXNz
UHJveHkqIHByb2Nlc3MpCitXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2Rlcjo6V2ViQ29u
dGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXIoT2JqQ09iamVjdEdyYXBoKiBvYmplY3RHcmFwaCkK
ICAgICA6IG1fb2JqZWN0R3JhcGgob2JqZWN0R3JhcGgpCi0gICAgLCBtX3Byb2Nlc3MocHJvY2Vz
cykKIHsKIH0KIAogdm9pZCBXZWJDb250ZXh0T2JqQ09iamVjdEdyYXBoRW5jb2Rlcjo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
IDw8IFdlYkNvbnRleHRPYmpDT2JqZWN0R3JhcGhFbmNvZGVySW1wbChtX29iamVjdEdyYXBoLT5y
b290T2JqZWN0KCksIG1fcHJvY2Vzcyk7CisgICAgZW5jb2RlciA8PCBXZWJDb250ZXh0T2JqQ09i
amVjdEdyYXBoRW5jb2RlckltcGwobV9vYmplY3RHcmFwaC0+cm9vdE9iamVjdCgpKTsKIH0KIAog
V2ViQ29udGV4dE9iakNPYmplY3RHcmFwaERlY29kZXI6OldlYkNvbnRleHRPYmpDT2JqZWN0R3Jh
cGhEZWNvZGVyKFJlZlB0cjxPYmpDT2JqZWN0R3JhcGg+JiBvYmplY3RHcmFwaCwgV2ViUHJvY2Vz
c1Byb3h5KiBwcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDEyZTUyMGU3NzZmNDY2NzVkY2RhZGFk
NWM5ZjcxODU3MGFmOTcxMGEuLjg4NjU3M2YwMWViMjFhZjlkYTVlOWE0MmY3MmRkMTg1ZDA2MTUz
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBXZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjppbnZhbGlkYXRlKCkKIAogdm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjplbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIEFQ
STo6T2JqZWN0KiBtZXNzYWdlQm9keSkKIHsKLSAgICBlbmNvZGVyIDw8IFdlYkNvbnRleHRVc2Vy
TWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHksIG1fcHJvY2Vzcyk7CisgICAgZW5jb2RlciA8PCBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KTsKIH0KIAogYm9vbCBXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIG1lc3NhZ2VCb2R5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDcyZjZjZDEwMDFmYmQyMmI3
ZDk3ZTdmNTg0ZThlMmVjMDcyYmE0OTAuLjRjZDkwYzU0YTI3OGJmY2QzMzZiOTQxZjdiYTFiMjlm
ZTg3NGM2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTU5
NCw3ICs1OTQsNyBAQCBXZWJQcm9jZXNzUHJveHkqIFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlBy
b2Nlc3MoKQogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gaW5qZWN0ZWRCdW5kbGVJbml0aWFsaXph
dGlvblVzZXJEYXRhID0gbV9pbmplY3RlZEJ1bmRsZUNsaWVudC5nZXRJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGEodGhpcyk7CiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGEpCiAgICAgICAgIGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25V
c2VyRGF0YSA9IG1faW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhOwotICAgIHBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkluaXRpYWxpemVXZWJQcm9jZXNzKHBh
cmFtZXRlcnMsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIoaW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhLmdldCgpLCBwcm9jZXNzLmdldCgpKSksIDApOworICAgIHByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFt
ZXRlcnMsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIoaW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhLmdldCgpKSksIDApOwogCiAgICAgaWYgKFdlYlByZWZlcmVuY2VzOjph
bnlQYWdlR3JvdXBzQXJlVXNpbmdQcml2YXRlQnJvd3NpbmcoKSkKICAgICAgICAgcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
LCAwKTsKQEAgLTYwOCw3ICs2MDgsNyBAQCBXZWJQcm9jZXNzUHJveHkqIFdlYkNvbnRleHQ6OmNy
ZWF0ZU5ld1dlYlByb2Nlc3MoKQogICAgICAgICAgICAgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
IG1lc3NhZ2VEYXRhOwogCiAgICAgICAgICAgICBtZXNzYWdlRGF0YS5lbmNvZGUobWVzc2FnZS5m
aXJzdCk7Ci0gICAgICAgICAgICBtZXNzYWdlRGF0YS5lbmNvZGUoV2ViQ29udGV4dFVzZXJNZXNz
YWdlRW5jb2RlcihtZXNzYWdlLnNlY29uZC5nZXQoKSwgcHJvY2Vzcy5nZXQoKSkpOworICAgICAg
ICAgICAgbWVzc2FnZURhdGEuZW5jb2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIobWVz
c2FnZS5zZWNvbmQuZ2V0KCkpKTsKICAgICAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OlBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZShtZXNzYWdlRGF0YS5idWZmZXIoKSwgbWVzc2FnZURhdGEuYnVmZmVyU2l6ZSgpKSksIDAp
OwogICAgICAgICB9CiAgICAgICAgIG1fbWVzc2FnZXNUb0luamVjdGVkQnVuZGxlUG9zdGVkVG9F
bXB0eUNvbnRleHQuY2xlYXIoKTsKQEAgLTc1OSw3ICs3NTksNyBAQCBQYXNzUmVmUHRyPFdlYlBh
Z2VQcm94eT4gV2ViQ29udGV4dDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50
LCBXZWJQYQogICAgIGlmICghcGFnZUdyb3VwKQogICAgICAgICBwYWdlR3JvdXAgPSBtX2RlZmF1
bHRQYWdlR3JvdXAuZ2V0KCk7CiAKLSAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2ViUGFnZShw
YWdlQ2xpZW50LCAqcGFnZUdyb3VwKTsKKyAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2ViUGFn
ZShwYWdlQ2xpZW50LCB0aGlzLCBwYWdlR3JvdXApOwogfQogCiBEb3dubG9hZFByb3h5KiBXZWJD
b250ZXh0Ojpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCkBAIC03ODksMTMgKzc4OSwxMiBAQCB2b2lkIFdlYkNvbnRl
eHQ6OnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1l
LCBBUEk6Ok9iagogCiAgICAgLy8gRklYTUU6IFJldHVybiBlYXJseSBpZiB0aGUgbWVzc2FnZSBi
b2R5IGNvbnRhaW5zIGFueSByZWZlcmVuY2VzIHRvIFdLUGFnZVJlZnMvV0tGcmFtZVJlZnMgZXRj
LiBzaW5jZSB0aGV5J3JlIGxvY2FsIHRvIGEgcHJvY2Vzcy4KIAotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyIG1lc3NhZ2VEYXRhOwotICAgICAgICBtZXNzYWdlRGF0YS5lbmNvZGUobWVz
c2FnZU5hbWUpOwotICAgICAgICBtZXNzYWdlRGF0YS5lbmNvZGUoV2ViQ29udGV4dFVzZXJNZXNz
YWdlRW5jb2RlcihtZXNzYWdlQm9keSwgbV9wcm9jZXNzZXNbaV0uZ2V0KCkpKTsKKyAgICBDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIgbWVzc2FnZURhdGE7CisgICAgbWVzc2FnZURhdGEuZW5jb2Rl
KG1lc3NhZ2VOYW1lKTsKKyAgICBtZXNzYWdlRGF0YS5lbmNvZGUoV2ViQ29udGV4dFVzZXJNZXNz
YWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOwogCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X3Byb2Nlc3Nlcy5zaXplKCk7ICsraSkKICAgICAgICAgbV9wcm9jZXNzZXNbaV0tPnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZShtZXNzYWdlRGF0YS5idWZmZXIoKSwgbWVzc2FnZURhdGEuYnVmZmVyU2l6ZSgp
KSksIDApOwotICAgIH0KIH0KIAogLy8gSW5qZWN0ZWRCdW5kbGUgY2xpZW50CkBAIC05OTMsNyAr
OTkyLDcgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzoKIAogICAgICAgICBSZWZQdHI8QVBJOjpP
YmplY3Q+IHJldHVybkRhdGE7CiAgICAgICAgIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpLCByZXR1cm5E
YXRhKTsKLSAgICAgICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUoV2ViQ29udGV4dFVzZXJNZXNzYWdl
RW5jb2RlcihyZXR1cm5EYXRhLmdldCgpLCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25uZWN0aW9u
KGNvbm5lY3Rpb24pKSk7CisgICAgICAgIHJlcGx5RW5jb2Rlci0+ZW5jb2RlKFdlYkNvbnRleHRV
c2VyTWVzc2FnZUVuY29kZXIocmV0dXJuRGF0YS5nZXQoKSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVz
ZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVz
ZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggYWVhNzNhNzRjNGNlZWM1Y2ZhMWEyYTMwODQzMjlkMDNh
NjMzZThlOC4uNzliZWYwZjZmYzY1MWM2YTI4MjRjY2E1ZTViMGU0OWI1MDY5YzQ3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VD
b2RlcnMuaApAQCAtNDUsMjIgKzQ1LDE1IEBAIGNsYXNzIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVu
Y29kZXIgOiBwdWJsaWMgVXNlck1lc3NhZ2VFbmNvZGVyPFdlYkNvbnRleHRVc2VyTWVzCiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBVc2VyTWVzc2FnZUVuY29kZXI8V2ViQ29udGV4dFVzZXJNZXNzYWdl
RW5jb2Rlcj4gQmFzZTsKIAotICAgIGV4cGxpY2l0IFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29k
ZXIoQVBJOjpPYmplY3QqIHJvb3QsIFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcykKKyAgICBleHBs
aWNpdCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKEFQSTo6T2JqZWN0KiByb290KSAKICAg
ICAgICAgOiBCYXNlKHJvb3QpCi0gICAgICAgICwgbV9wcm9jZXNzKHByb2Nlc3MpCi0gICAgewot
ICAgIH0KLQotICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIoY29uc3QgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRW5jb2RlciYgdXNlck1lc3NhZ2VFbmNvZGVyLCBBUEk6Ok9iamVjdCogcm9v
dCkKLSAgICAgICAgOiBCYXNlKHJvb3QpCi0gICAgICAgICwgbV9wcm9jZXNzKHVzZXJNZXNzYWdl
RW5jb2Rlci5tX3Byb2Nlc3MpCiAgICAgewogICAgIH0KIAogICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFQSTo6
T2JqZWN0OjpUeXBlIHR5cGUgPSBBUEk6Ok9iamVjdDo6VHlwZTo6TnVsbDsKLSAgICAgICAgaWYg
KGJhc2VFbmNvZGUoZW5jb2RlciwgKnRoaXMsIHR5cGUpKQorICAgICAgICBpZiAoYmFzZUVuY29k
ZShlbmNvZGVyLCB0eXBlKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBzd2l0Y2gg
KHR5cGUpIHsKQEAgLTc2LDIxICs2OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6UGFnZUdyb3VwOiB7CiAgICAgICAgICAgICBXZWJQYWdl
R3JvdXAqIHBhZ2VHcm91cCA9IHN0YXRpY19jYXN0PFdlYlBhZ2VHcm91cCo+KG1fcm9vdCk7Ci0g
ICAgICAgICAgICBpZiAocGFnZUdyb3VwLT5hZGRQcm9jZXNzKCptX3Byb2Nlc3MpKSB7Ci0gICAg
ICAgICAgICAgICAgbV9wcm9jZXNzLT5hZGRXZWJQYWdlR3JvdXAoKnBhZ2VHcm91cCk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICBlbmNvZGVyIDw8IHRydWU7Ci0gICAgICAgICAgICAg
ICAgZW5jb2RlciA8PCBwYWdlR3JvdXAtPmRhdGEoKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKLSAgICAgICAgICAgICAgICBlbmNvZGVy
IDw8IHBhZ2VHcm91cC0+cGFnZUdyb3VwSUQoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGVuY29kZXIgPDwgcGFnZUdyb3VwLT5kYXRhKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6
T2JqQ09iamVjdEdyYXBoOiB7CiAgICAgICAgICAgICBPYmpDT2JqZWN0R3JhcGgqIG9iamVjdEdy
YXBoID0gc3RhdGljX2Nhc3Q8T2JqQ09iamVjdEdyYXBoKj4obV9yb290KTsKLSAgICAgICAgICAg
IGVuY29kZXIgPDwgV2ViQ29udGV4dE9iakNPYmplY3RHcmFwaEVuY29kZXIob2JqZWN0R3JhcGgs
IG1fcHJvY2Vzcyk7CisgICAgICAgICAgICBlbmNvZGVyIDw8IFdlYkNvbnRleHRPYmpDT2JqZWN0
R3JhcGhFbmNvZGVyKG9iamVjdEdyYXBoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAjZW5kaWYKQEAgLTk5LDkgKzg0LDYgQEAgcHVibGljOgogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViUHJvY2Vzc1Byb3h5KiBtX3Byb2Nl
c3M7CiB9OwogCiAvLyBBZGRzCkBAIC0xNTMsNyArMTM1LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgdWludDY0X3QgcGFnZUdyb3VwSUQ7CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhZ2VHcm91cElEKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAg
ICBjb2Rlci5tX3Jvb3QgPSBjb2Rlci5tX3Byb2Nlc3MtPndlYlBhZ2VHcm91cChwYWdlR3JvdXBJ
RCk7CisgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJQYWdlR3JvdXA6OmdldChwYWdlR3Jv
dXBJRCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogI2lmIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKaW5kZXggYmNiYzBlYmYz
Y2ExNjNmNDVhZGM4ZDBhYjM1YTg3ZTA4ZmIyODEyZS4uZTY0MDczZGI2ZTRlMGI1MjExNzA5ODA4
NGZhMmJiMzMxNGFhMjYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91
cC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5j
ZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKQEAgLTE5
MiwxNCArMTkxLDQgQEAgdm9pZCBXZWJQYWdlR3JvdXA6OnJlbW92ZUFsbFVzZXJDb250ZW50KCkK
ICAgICBzZW5kVG9BbGxQcm9jZXNzZXNJbkdyb3VwKE1lc3NhZ2VzOjpXZWJQYWdlR3JvdXBQcm94
eTo6UmVtb3ZlQWxsVXNlckNvbnRlbnQoKSwgbV9kYXRhLnBhZ2VHcm91cElEKTsKIH0KIAotYm9v
bCBXZWJQYWdlR3JvdXA6OmFkZFByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQotewot
ICAgIHJldHVybiBtX3Byb2Nlc3Nlcy5hZGQoJnByb2Nlc3MpLmlzTmV3RW50cnk7Ci19Ci0KLXZv
aWQgV2ViUGFnZUdyb3VwOjpkaXNjb25uZWN0UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmIHByb2Nl
c3MpCi17Ci0gICAgbV9wcm9jZXNzZXMucmVtb3ZlKCZwcm9jZXNzKTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZUdyb3VwLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmgKaW5kZXgg
N2IxZDczYjBiOTMxM2U0MGQ0MzE0Njk5MDhhZjNlOGUxY2VmZGUzYi4uMjRjY2QwOTc2MDQ3Y2I0
YTdjNGQ2NjU2ZjNmOGZkYWNiOWMwZjkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlR3JvdXAuaApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7CitjbGFzcyBXZWJQYWdlUHJv
eHk7CiAKIGNsYXNzIFdlYlBhZ2VHcm91cCA6IHB1YmxpYyBBUEk6OlR5cGVkT2JqZWN0PEFQSTo6
T2JqZWN0OjpUeXBlOjpQYWdlR3JvdXA+IHsKIHB1YmxpYzoKQEAgLTU2LDE2ICs1NiwxMyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRQcmVmZXJlbmNlcyhXZWJQcmVmZXJlbmNlcyopOwogICAgIFdl
YlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpIGNvbnN0OwogICAgIHZvaWQgcHJlZmVyZW5jZXNE
aWRDaGFuZ2UoKTsKLQorICAgIAogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpBcnJheSogd2hpdGVsaXN0
LCBBUEk6OkFycmF5KiBibGFja2xpc3QsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXMsIFdlYkNvcmU6OlVzZXJTdHlsZUxldmVsKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoY29u
c3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpBcnJheSogd2hp
dGVsaXN0LCBBUEk6OkFycmF5KiBibGFja2xpc3QsIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0
ZWRGcmFtZXMsIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKTsKICAgICB2b2lkIHJl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0cygpOwogICAgIHZvaWQgcmVtb3ZlQWxsVXNlclNjcmlwdHMo
KTsKICAgICB2b2lkIHJlbW92ZUFsbFVzZXJDb250ZW50KCk7CiAKLSAgICBib29sIGFkZFByb2Nl
c3MoV2ViUHJvY2Vzc1Byb3h5Jik7Ci0gICAgdm9pZCBkaXNjb25uZWN0UHJvY2VzcyhXZWJQcm9j
ZXNzUHJveHkmKTsKLQogcHJpdmF0ZToKICAgICBXZWJQYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBib29sIHZpc2libGVUb0luamVjdGVkQnVuZGxlLCBib29sIHZpc2libGVUb0hp
c3RvcnlDbGllbnQpOwogCkBAIC03NCwxMyArNzEsMjAgQEAgcHJpdmF0ZToKICAgICBXZWJQYWdl
R3JvdXBEYXRhIG1fZGF0YTsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJQcmVmZXJlbmNlcz4gbV9w
cmVmZXJlbmNlczsKICAgICBIYXNoU2V0PFdlYlBhZ2VQcm94eSo+IG1fcGFnZXM7Ci0gICAgSGFz
aFNldDxXZWJQcm9jZXNzUHJveHkqPiBtX3Byb2Nlc3NlczsKIH07CiAgICAgCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgogdm9pZCBXZWJQYWdlR3JvdXA6OnNlbmRUb0FsbFByb2Nlc3Nlc0luR3JvdXAo
Y29uc3QgVCYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKLSAgICBmb3IgKGF1
dG8gd2ViUHJvY2Vzc1Byb3h5IDogbV9wcm9jZXNzZXMpIHsKKyAgICBIYXNoU2V0PFdlYlByb2Nl
c3NQcm94eSo+IHByb2Nlc3Nlc1NlZW47CisKKyAgICBmb3IgKFdlYlBhZ2VQcm94eSogd2ViUGFn
ZVByb3h5IDogbV9wYWdlcykgeworICAgICAgICBXZWJQcm9jZXNzUHJveHkqIHdlYlByb2Nlc3NQ
cm94eSA9IHdlYlBhZ2VQcm94eS0+cHJvY2VzcygpOworICAgICAgICBBU1NFUlQod2ViUHJvY2Vz
c1Byb3h5KTsKKworICAgICAgICBpZiAoIXByb2Nlc3Nlc1NlZW4uYWRkKHdlYlByb2Nlc3NQcm94
eSkuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgIGlmICh3ZWJQ
cm9jZXNzUHJveHktPmNhblNlbmRNZXNzYWdlKCkpCiAgICAgICAgICAgICB3ZWJQcm9jZXNzUHJv
eHktPnNlbmQoVChtZXNzYWdlKSwgZGVzdGluYXRpb25JRCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1NmFlNTQ5NTYxMjBhYTIyZDI2MDhl
YWE0ZDViNGUwYTcyNTRkYTM4Li5iNDE0NWE3NjYyZTcyMTRmYzQ2ZWJmOGIwNTk2ZGU0MjcyYzk3
MjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjIy
LDE1ICsyMjIsMTUgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHdlYktleWJvYXJkRXZlbnRUeXBlU3Ry
aW5nKFdlYkV2ZW50OjpUeXBlIHR5cGUpCiB9CiAjZW5kaWYgLy8gIUxPR19ESVNBQkxFRAogCi1Q
YXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUGFnZVByb3h5OjpjcmVhdGUoUGFnZUNsaWVudCog
cGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3MsIFdlYlBhZ2VH
cm91cCYgcGFnZUdyb3VwLCB1aW50NjRfdCBwYWdlSUQpCitQYXNzUmVmUHRyPFdlYlBhZ2VQcm94
eT4gV2ViUGFnZVByb3h5OjpjcmVhdGUoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0
cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3MsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCB1aW50
NjRfdCBwYWdlSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQYWdlUHJveHkocGFn
ZUNsaWVudCwgcHJvY2VzcywgcGFnZUdyb3VwLCBwYWdlSUQpKTsKIH0KIAotV2ViUGFnZVByb3h5
OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9j
ZXNzUHJveHk+IHByb2Nlc3MsIFdlYlBhZ2VHcm91cCYgcGFnZUdyb3VwLCB1aW50NjRfdCBwYWdl
SUQpCitXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LCBQ
YXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcHJvY2VzcywgV2ViUGFnZUdyb3VwKiBwYWdlR3Jv
dXAsIHVpbnQ2NF90IHBhZ2VJRCkKICAgICA6IG1fcGFnZUNsaWVudChwYWdlQ2xpZW50KQogICAg
ICwgbV9wcm9jZXNzKHByb2Nlc3MpCi0gICAgLCBtX3BhZ2VHcm91cCgmcGFnZUdyb3VwKQorICAg
ICwgbV9wYWdlR3JvdXAocGFnZUdyb3VwKQogICAgICwgbV9tYWluRnJhbWUoMCkKICAgICAsIG1f
dXNlckFnZW50KHN0YW5kYXJkVXNlckFnZW50KCkpCiAgICAgLCBtX2dlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCkBAIC01MjQsMTEgKzUyNCw2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojppbml0aWFsaXplV2ViUGFnZSgpCiAgICAgICAgIGluc3BlY3RvcigpLT5lbmFibGVS
ZW1vdGVJbnNwZWN0aW9uKCk7CiAjZW5kaWYKIAotICAgIGlmIChtX3BhZ2VHcm91cC0+YWRkUHJv
Y2VzcygqbV9wcm9jZXNzKSkgewotICAgICAgICBtX3Byb2Nlc3MtPmFkZFdlYlBhZ2VHcm91cCgq
bV9wYWdlR3JvdXApOwotICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OkNyZWF0ZVdlYlBhZ2VHcm91cChtX3BhZ2VHcm91cC0+cGFnZUdyb3VwSUQoKSwgbV9wYWdl
R3JvdXAtPmRhdGEoKSksIDApOwotICAgIH0KLQogICAgIGluaXRpYWxpemVDcmVhdGlvblBhcmFt
ZXRlcnMoKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkNyZWF0
ZVdlYlBhZ2UobV9wYWdlSUQsIG1fY3JlYXRpb25QYXJhbWV0ZXJzKSwgMCk7CiAKQEAgLTYxNyw3
ICs2MTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFVSTChjb25zdCBTdHJpbmcmIHVybCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQogICAgIGJvb2wgY3JlYXRlZEV4dGVuc2lvbiA9IG1heWJl
SW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoVVJMKFVSTCgpLCB1cmwpLCBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKICAgICAgICAgbV9w
cm9jZXNzLT53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOwot
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFVSTCh1cmwsIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEs
IG1fcHJvY2Vzcy5nZXQoKSkpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpMb2FkVVJMKHVybCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YSkpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAKQEAgLTYzMiw3ICs2Mjcs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFVSTFJlcXVlc3QoV2ViVVJMUmVxdWVzdCogdXJs
UmVxdWVzdCwgQVBJOjpPYmplY3QqIHVzZXJEYQogICAgIGJvb2wgY3JlYXRlZEV4dGVuc2lvbiA9
IG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUodXJsUmVxdWVzdC0+cmVzb3Vy
Y2VSZXF1ZXN0KCkudXJsKCksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAgIGlmIChjcmVh
dGVkRXh0ZW5zaW9uKQogICAgICAgICBtX3Byb2Nlc3MtPndpbGxBY3F1aXJlVW5pdmVyc2FsRmls
ZVJlYWRTYW5kYm94RXh0ZW5zaW9uKCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpMb2FkVVJMUmVxdWVzdCh1cmxSZXF1ZXN0LT5yZXNvdXJjZVJlcXVlc3QoKSwgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkxvYWRVUkxSZXF1ZXN0KHVybFJlcXVlc3QtPnJlc291cmNlUmVxdWVz
dCgpLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVy
KHVzZXJEYXRhKSksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGlt
ZXIoKS0+c3RhcnQoKTsKIH0KIApAQCAtNjU5LDcgKzY1NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpsb2FkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VECiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5k
bGU7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHJlc291cmNlRGlyZWN0b3J5
UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6UmVhZE9ubHksIHNhbmRib3hFeHRlbnNpb25IYW5kbGUp
OwogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTChyZXNvdXJjZURpcmVj
dG9yeVVSTCk7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJM
KGZpbGVVUkwsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSkpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJMKGZpbGVVUkwsIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEpKSwgbV9w
YWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwog
fQogCkBAIC02NjksNyArNjY0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWREYXRhKFdlYkRh
dGEqIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYKICAgICAgICAg
cmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKIAogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vz
c1RvQmFzZVVSTChiYXNlVVJMKTsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkxvYWREYXRhKGRhdGEtPmRhdGFSZWZlcmVuY2UoKSwgTUlNRVR5cGUsIGVuY29kaW5nLCBi
YXNlVVJMLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3Mu
Z2V0KCkpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6TG9hZERhdGEoZGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBNSU1FVHlwZSwgZW5jb2RpbmcsIGJh
c2VVUkwsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEpKSwgbV9wYWdlSUQp
OwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogfQogCkBA
IC02NzksNyArNjc0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRIVE1MU3RyaW5nKGNvbnN0
IFN0cmluZyYgaHRtbFN0cmluZywgY29uc3QgU3RyaW5nJiBiYXNlVVIKICAgICAgICAgcmVhdHRh
Y2hUb1dlYlByb2Nlc3MoKTsKIAogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFz
ZVVSTChiYXNlVVJMKTsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Okxv
YWRIVE1MU3RyaW5nKGh0bWxTdHJpbmcsIGJhc2VVUkwsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVu
Y29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSkpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkSFRNTFN0cmluZyhodG1sU3RyaW5nLCBi
YXNlVVJMLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhKSksIG1fcGFnZUlE
KTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsKIH0KIApA
QCAtNjk0LDcgKzY4OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZyhjb25zdCBTdHJpbmcmIGh0bWxTdHJpbmcsIGNvbnN0IFN0cmluCiAgICAgICAgIG1fbWFp
bkZyYW1lLT5zZXRVbnJlYWNoYWJsZVVSTCh1bnJlYWNoYWJsZVVSTCk7CiAKICAgICBtX3Byb2Nl
c3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoYmFzZVVSTCk7Ci0gICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhodG1sU3RyaW5n
LCBiYXNlVVJMLCB1bnJlYWNoYWJsZVVSTCwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rlcih1
c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGh0bWxTdHJpbmcs
IGJhc2VVUkwsIHVucmVhY2hhYmxlVVJMLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHVz
ZXJEYXRhKSksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIo
KS0+c3RhcnQoKTsKIH0KIApAQCAtNzAzLDcgKzY5OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkUGxhaW5UZXh0U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBBUEk6Ok9iamVjdCogdXNl
ckRhCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7
CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRQbGFpblRleHRT
dHJpbmcoc3RyaW5nLCBXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLCBtX3By
b2Nlc3MuZ2V0KCkpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6TG9hZFBsYWluVGV4dFN0cmluZyhzdHJpbmcsIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZUVuY29kZXIodXNlckRhdGEpKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2
ZW5lc3NUaW1lcigpLT5zdGFydCgpOwogfQogCkBAIC03MTIsNyArNzA3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmxvYWRXZWJBcmNoaXZlRGF0YShjb25zdCBXZWJEYXRhKiB3ZWJBcmNoaXZlRGF0
YSwgQVBJOjpPYmplY3QKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmVhdHRhY2hUb1dl
YlByb2Nlc3MoKTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9h
ZFdlYkFyY2hpdmVEYXRhKHdlYkFyY2hpdmVEYXRhLT5kYXRhUmVmZXJlbmNlKCksIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSkpLCBtX3BhZ2VJ
RCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkV2ViQXJjaGl2
ZURhdGEod2ViQXJjaGl2ZURhdGEtPmRhdGFSZWZlcmVuY2UoKSwgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRW5jb2Rlcih1c2VyRGF0YSkpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25z
aXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiB9CiAKQEAgLTMwNTgsNyArMzA1Myw3IEBAIE5hdGl2
ZVdlYk1vdXNlRXZlbnQqIFdlYlBhZ2VQcm94eTo6Y3VycmVudGx5UHJvY2Vzc2VkTW91c2VEb3du
RXZlbnQoKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6T2JqZWN0KiBtZXNzYWdlQm9keSkKIHsK
LSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBvc3RJbmplY3RlZEJ1bmRs
ZU1lc3NhZ2UobWVzc2FnZU5hbWUsIFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIobWVzc2Fn
ZUJvZHksIHByb2Nlc3MoKSkpLCBtX3BhZ2VJRCk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKG1lc3NhZ2VOYW1lLCBXZWJD
b250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSksIG1fcGFnZUlEKTsKIH0KIAog
I2lmIFBMQVRGT1JNKEdUSykKQEAgLTM4MjAsNyArMzgxNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojppbml0aWFsaXplQ3JlYXRpb25QYXJhbWV0ZXJzKCkKICAgICBtX2NyZWF0aW9uUGFyYW1ldGVy
cy52aWV3U3RhdGUgPSBtX3ZpZXdTdGF0ZTsKICAgICBtX2NyZWF0aW9uUGFyYW1ldGVycy5kcmF3
aW5nQXJlYVR5cGUgPSBtX2RyYXdpbmdBcmVhLT50eXBlKCk7CiAgICAgbV9jcmVhdGlvblBhcmFt
ZXRlcnMuc3RvcmUgPSBtX3BhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS0+c3RvcmUoKTsKLSAgICBt
X2NyZWF0aW9uUGFyYW1ldGVycy5wYWdlR3JvdXBJRCA9IG1fcGFnZUdyb3VwLT5wYWdlR3JvdXBJ
RCgpOworICAgIG1fY3JlYXRpb25QYXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91
cC0+ZGF0YSgpOwogICAgIG1fY3JlYXRpb25QYXJhbWV0ZXJzLmRyYXdzQmFja2dyb3VuZCA9IG1f
ZHJhd3NCYWNrZ3JvdW5kOwogICAgIG1fY3JlYXRpb25QYXJhbWV0ZXJzLmRyYXdzVHJhbnNwYXJl
bnRCYWNrZ3JvdW5kID0gbV9kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDsKICAgICBtX2NyZWF0
aW9uUGFyYW1ldGVycy51bmRlcmxheUNvbG9yID0gbV91bmRlcmxheUNvbG9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJmM2EwNjRlYTcyODk0MDZmYzJhNGU1
MGFjNTFkZGU4MDEyNWMxOTIuLmMxMTRiMjdhMDBhNjcxNTUwZDI5MTI5NGM4ZWY1ZjNhN2I5OGJj
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMyMiw3ICsz
MjIsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHkKICAgICAsIHB1YmxpYyBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgewogcHVibGljOgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUGFnZVByb3h5
PiBjcmVhdGUoUGFnZUNsaWVudCosIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgV2ViUGFn
ZUdyb3VwJiwgdWludDY0X3QgcGFnZUlEKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQYWdl
UHJveHk+IGNyZWF0ZShQYWdlQ2xpZW50KiwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+LCBX
ZWJQYWdlR3JvdXAqLCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZpcnR1YWwgfldlYlBhZ2VQcm94
eSgpOwogCiAgICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0K
QEAgLTg0Nyw3ICs4NDcsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0Jl
aGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhhdmlvcigpIHsgcmV0dXJuIG1fc2Nyb2xsUGlubmluZ0Jl
aGF2aW9yOyB9CiAgICAgICAgIAogcHJpdmF0ZToKLSAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVu
dCosIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgV2ViUGFnZUdyb3VwJiwgdWludDY0X3Qg
cGFnZUlEKTsKKyAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCosIFBhc3NSZWZQdHI8V2ViUHJv
Y2Vzc1Byb3h5PiwgV2ViUGFnZUdyb3VwKiwgdWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHBs
YXRmb3JtSW5pdGlhbGl6ZSgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNyZWF0aW9uUGFyYW1ldGVy
cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IGI4MDhhNjZkY2VhZmJmNzQzZjlmYjVhNWI2YmUwMDRkM2Y5MjFmMDUuLmJlMWJkNzRkOThl
ZjNkMTYxZmRhMDc3NTliZTNiN2JmMTJhMmVjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiV2Vi
Q29udGV4dC5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRl
ICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQYWdlR3JvdXAu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTE0NSwxOSAr
MTQ0LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaXNjb25uZWN0KCkKIAogICAgIFZlY3Rv
cjxSZWZQdHI8V2ViRnJhbWVQcm94eT4+IGZyYW1lczsKICAgICBjb3B5VmFsdWVzVG9WZWN0b3Io
bV9mcmFtZU1hcCwgZnJhbWVzKTsKLSAgICBmb3IgKGF1dG8gZnJhbWUgOiBmcmFtZXMpCi0gICAg
ICAgIGZyYW1lLT5kaXNjb25uZWN0KCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9
IGZyYW1lcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCisgICAgICAgIGZyYW1lc1tpXS0+ZGlzY29u
bmVjdCgpOwogICAgIG1fZnJhbWVNYXAuY2xlYXIoKTsKIAogICAgIGlmIChtX2Rvd25sb2FkUHJv
eHlNYXApCiAgICAgICAgIG1fZG93bmxvYWRQcm94eU1hcC0+cHJvY2Vzc0RpZENsb3NlKCk7CiAK
LSAgICBWZWN0b3I8V2ViUGFnZUdyb3VwKj4gcGFnZUdyb3VwczsKLSAgICBjb3B5VmFsdWVzVG9W
ZWN0b3IobV9wYWdlR3JvdXBzLCBwYWdlR3JvdXBzKTsKLSAgICBmb3IgKGF1dG8gcGFnZUdyb3Vw
IDogcGFnZUdyb3VwcykKLSAgICAgICAgcGFnZUdyb3VwLT5kaXNjb25uZWN0UHJvY2VzcygqdGhp
cyk7Ci0gICAgbV9wYWdlR3JvdXBzLmNsZWFyKCk7Ci0KICAgICBtX2NvbnRleHQtPmRpc2Nvbm5l
Y3RQcm9jZXNzKHRoaXMpOwogfQogCkBAIC0xNjYsNyArMTYwLDcgQEAgV2ViUGFnZVByb3h5KiBX
ZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UodWludDY0X3QgcGFnZUlEKQogICAgIHJldHVybiBnbG9i
YWxQYWdlTWFwKCkuZ2V0KHBhZ2VJRCk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBX
ZWJQcm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgV2Vi
UGFnZUdyb3VwJiBwYWdlR3JvdXApCitQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vz
c1Byb3h5OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFdlYkNvbnRleHQq
LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCkKIHsKICAgICB1aW50NjRfdCBwYWdlSUQgPSBnZW5l
cmF0ZVBhZ2VJRCgpOwogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHdlYlBhZ2UgPSBXZWJQYWdl
UHJveHk6OmNyZWF0ZShwYWdlQ2xpZW50LCB0aGlzLCBwYWdlR3JvdXAsIHBhZ2VJRCk7CkBAIC0y
MTUsMTkgKzIwOSw2IEBAIFZlY3RvcjxXZWJQYWdlUHJveHkqPiBXZWJQcm9jZXNzUHJveHk6OnBh
Z2VzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJQYWdlR3JvdXAqIFdlYlBy
b2Nlc3NQcm94eTo6d2ViUGFnZUdyb3VwKHVpbnQ2NF90IHBhZ2VHcm91cElEKQotewotICAgIGlm
ICghSGFzaE1hcDx1aW50NjRfdCwgV2ViUGFnZUdyb3VwKj46OmlzVmFsaWRLZXkocGFnZUdyb3Vw
SUQpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBtX3BhZ2VHcm91cHMu
Z2V0KHBhZ2VHcm91cElEKTsKLX0KLQotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZFdlYlBhZ2VH
cm91cChXZWJQYWdlR3JvdXAmIHBhZ2VHcm91cCkKLXsKLSAgICBtX3BhZ2VHcm91cHMuYWRkKHBh
Z2VHcm91cC5wYWdlR3JvdXBJRCgpLCAmcGFnZUdyb3VwKTsKLX0KLQogV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRl
bUlEKSBjb25zdAogewogICAgIHJldHVybiBtX2JhY2tGb3J3YXJkTGlzdEl0ZW1NYXAuZ2V0KGl0
ZW1JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
MDk2OWFjOTFkODZlNWE4YmNjMWJkMjc2ODdhZjkzNWMzMmFlOGIyOS4uODNkZDM5NWY2MjVkYmI3
NTlkNzhjNTIxZTU1NmFkYjcwZDI4NGM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaApAQCAtNzcsMTQgKzc3LDExIEBAIHB1YmxpYzoKICAgICBXZWJDb250
ZXh0KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKICAgICBz
dGF0aWMgV2ViUGFnZVByb3h5KiB3ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCk7Ci0gICAgUGFzc1Jl
ZlB0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCosIFdlYlBhZ2VHcm91
cCYpOworICAgIFBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGll
bnQqLCBXZWJDb250ZXh0KiwgV2ViUGFnZUdyb3VwKik7CiAgICAgdm9pZCBhZGRFeGlzdGluZ1dl
YlBhZ2UoV2ViUGFnZVByb3h5KiwgdWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHJlbW92ZVdl
YlBhZ2UodWludDY0X3QgcGFnZUlEKTsKICAgICBWZWN0b3I8V2ViUGFnZVByb3h5Kj4gcGFnZXMo
KSBjb25zdDsKIAotICAgIFdlYlBhZ2VHcm91cCogd2ViUGFnZUdyb3VwKHVpbnQ2NF90IHBhZ2VH
cm91cElEKTsKLSAgICB2b2lkIGFkZFdlYlBhZ2VHcm91cChXZWJQYWdlR3JvdXAmKTsKLQogICAg
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHdlYkJhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVt
SUQpIGNvbnN0OwogCiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciogcmVzcG9uc2l2ZW5lc3NUaW1l
cigpIHsgcmV0dXJuICZtX3Jlc3BvbnNpdmVuZXNzVGltZXI7IH0KQEAgLTE5Nyw3ICsxOTQsNiBA
QCBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eU1hcCBtX3BhZ2VNYXA7CiAgICAgV2ViRnJhbWVQ
cm94eU1hcCBtX2ZyYW1lTWFwOwogICAgIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW1NYXAgbV9iYWNr
Rm9yd2FyZExpc3RJdGVtTWFwOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYlBhZ2VHcm91cCo+
IG1fcGFnZUdyb3VwczsKIAogICAgIE93blB0cjxEb3dubG9hZFByb3h5TWFwPiBtX2Rvd25sb2Fk
UHJveHlNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29k
ZXJzLmgKaW5kZXggYmU2ZTM1N2ViNGJiODJlOTM5MzRmODI3M2IxZDA5YTZhZTliN2I0My4uNzJl
YmZiYzRjMDQzNjYxNmVkZTJjMGMwYWQwNDRiZTE1YTk3MWIxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlQ29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTUzLDE1ICs1MywxMCBAQCBw
dWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyKGNvbnN0IEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyJiwgQVBJOjpPYmplY3Qq
IHJvb3QpCi0gICAgICAgIDogQmFzZShyb290KQotICAgIHsKLSAgICB9Ci0KICAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAg
ICAgICBBUEk6Ok9iamVjdDo6VHlwZSB0eXBlID0gQVBJOjpPYmplY3Q6OlR5cGU6Ok51bGw7Ci0g
ICAgICAgIGlmIChiYXNlRW5jb2RlKGVuY29kZXIsICp0aGlzLCB0eXBlKSkKKyAgICAgICAgaWYg
KGJhc2VFbmNvZGUoZW5jb2RlciwgdHlwZSkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgc3dpdGNoICh0eXBlKSB7CkBAIC0xMzgsMjEgKzEzMywxMCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpQ
YWdlR3JvdXA6IHsKLSAgICAgICAgICAgIGJvb2wgaXNOZXdQYWdlR3JvdXA7Ci0gICAgICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzTmV3UGFnZUdyb3VwKSkKKyAgICAgICAgICAgIFdlYlBh
Z2VHcm91cERhdGEgcGFnZUdyb3VwRGF0YTsKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFnZUdyb3VwRGF0YSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAoaXNOZXdQYWdlR3JvdXApIHsKLSAgICAgICAgICAgICAg
ICBXZWJQYWdlR3JvdXBEYXRhIHBhZ2VHcm91cERhdGE7Ci0gICAgICAgICAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYWdlR3JvdXBEYXRhKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNyZWF0ZVdlYlBhZ2VHcm91cChwYWdlR3JvdXBEYXRhLnBhZ2VHcm91cElELCBwYWdlR3Jv
dXBEYXRhKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdWludDY0X3Qg
cGFnZUdyb3VwSUQ7Ci0gICAgICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYWdlR3Jv
dXBJRCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAg
ICBjb2Rlci5tX3Jvb3QgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJQYWdlR3JvdXAocGFnZUdy
b3VwSUQpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViUHJv
Y2Vzczo6c2hhcmVkKCkud2ViUGFnZUdyb3VwKHBhZ2VHcm91cERhdGEpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMjg0MDllODdiY2MxYWMzMDQ2Mzcy
YTcxNGZjNDRmMjFiOWE3YWIzMy4uYjc1NWE1ZDdjYmNjYzYyMmYxNWE0NzgxNGUwZDA5OGU4NTMy
NmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMzQ4LDkgKzM0OCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBj
b25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIG1fcGFnZS0+
c2V0Q2FuU3RhcnRNZWRpYShmYWxzZSk7CiAgICAgbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93
ID0gcGFyYW1ldGVycy5tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogCi0gICAgbV9wYWdlR3Jv
dXAgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJQYWdlR3JvdXAocGFyYW1ldGVycy5wYWdlR3Jv
dXBJRCk7Ci0gICAgQVNTRVJUKG1fcGFnZUdyb3VwKTsKLQorICAgIG1fcGFnZUdyb3VwID0gV2Vi
UHJvY2Vzczo6c2hhcmVkKCkud2ViUGFnZUdyb3VwKHBhcmFtZXRlcnMucGFnZUdyb3VwRGF0YSk7
CiAgICAgbV9wYWdlLT5zZXRHcm91cE5hbWUobV9wYWdlR3JvdXAtPmlkZW50aWZpZXIoKSk7CiAg
ICAgbV9wYWdlLT5zZXREZXZpY2VTY2FsZUZhY3RvcihwYXJhbWV0ZXJzLmRldmljZVNjYWxlRmFj
dG9yKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOGIw
ZjJiMWQwMWRhYjhkNmVjYzVjMzgyNDc0NTk3MjIyYWE1ZmI2YS4uNDZjMzE0NTYxM2JlNmUzZjhj
YjA1NmE2Y2YwM2U0MzcwZjVlNTY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC03MDQsMTIgKzcwNCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVtb3ZlV2Vi
RnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZERlc3Ryb3lGcmFtZShmcmFtZUlEKSwg
MCk7CiB9CiAKLVdlYlBhZ2VHcm91cFByb3h5KiBXZWJQcm9jZXNzOjpjcmVhdGVXZWJQYWdlR3Jv
dXAodWludDY0X3QgcGFnZUdyb3VwSUQsIGNvbnN0IFdlYlBhZ2VHcm91cERhdGEmIHBhZ2VHcm91
cERhdGEpCi17Ci0gICAgQVNTRVJUKCFtX3BhZ2VHcm91cE1hcC5jb250YWlucyhwYWdlR3JvdXBJ
RCkpOwotICAgIHJldHVybiBtX3BhZ2VHcm91cE1hcC5hZGQocGFnZUdyb3VwSUQsIFdlYlBhZ2VH
cm91cFByb3h5OjpjcmVhdGUocGFnZUdyb3VwRGF0YSkpLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsK
LX0KLQogV2ViUGFnZUdyb3VwUHJveHkqIFdlYlByb2Nlc3M6OndlYlBhZ2VHcm91cChQYWdlR3Jv
dXAqIHBhZ2VHcm91cCkKIHsKICAgICBmb3IgKEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQ
YWdlR3JvdXBQcm94eT4+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZUdyb3VwTWFwLmJlZ2lu
KCksIGVuZCA9IG1fcGFnZUdyb3VwTWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKQEAgLTcy
NSw2ICs3MTksMTcgQEAgV2ViUGFnZUdyb3VwUHJveHkqIFdlYlByb2Nlc3M6OndlYlBhZ2VHcm91
cCh1aW50NjRfdCBwYWdlR3JvdXBJRCkKICAgICByZXR1cm4gbV9wYWdlR3JvdXBNYXAuZ2V0KHBh
Z2VHcm91cElEKTsKIH0KIAorV2ViUGFnZUdyb3VwUHJveHkqIFdlYlByb2Nlc3M6OndlYlBhZ2VH
cm91cChjb25zdCBXZWJQYWdlR3JvdXBEYXRhJiBwYWdlR3JvdXBEYXRhKQoreworICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlR3JvdXBQcm94eT4+OjpBZGRSZXN1bHQgcmVzdWx0
ID0gbV9wYWdlR3JvdXBNYXAuYWRkKHBhZ2VHcm91cERhdGEucGFnZUdyb3VwSUQsIG51bGxwdHIp
OworICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBBU1NFUlQoIXJlc3VsdC5p
dGVyYXRvci0+dmFsdWUpOworICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV2ViUGFn
ZUdyb3VwUHJveHk6OmNyZWF0ZShwYWdlR3JvdXBEYXRhKTsKKyAgICB9CisKKyAgICByZXR1cm4g
cmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzOjpjbGVh
clJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVhciByZXNvdXJjZUNhY2hlc1RvQ2xl
YXIpCiB7CiAgICAgcGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKHJlc291cmNlQ2FjaGVzVG9D
bGVhcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGNhNmYzNWFi
YWUzMmY4NTk1OTQ3NTgxZDU1YjM5ZGY3YThiMjQzOWIuLmNiNWQ4ZDRlNTNjZWI5MDgwNjE5ZmRl
YWQ2NTU4MmU0N2FjYzg1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CkBAIC0xMjcsOSArMTI3LDkgQEAgcHVibGljOgogICAgIHZvaWQgYWRkV2ViRnJhbWUodWludDY0
X3QsIFdlYkZyYW1lKik7CiAgICAgdm9pZCByZW1vdmVXZWJGcmFtZSh1aW50NjRfdCk7CiAKLSAg
ICBXZWJQYWdlR3JvdXBQcm94eSogY3JlYXRlV2ViUGFnZUdyb3VwKHVpbnQ2NF90IHBhZ2VHcm91
cElELCBjb25zdCBXZWJQYWdlR3JvdXBEYXRhJik7CiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdl
YlBhZ2VHcm91cChXZWJDb3JlOjpQYWdlR3JvdXAqKTsKICAgICBXZWJQYWdlR3JvdXBQcm94eSog
d2ViUGFnZUdyb3VwKHVpbnQ2NF90IHBhZ2VHcm91cElEKTsKKyAgICBXZWJQYWdlR3JvdXBQcm94
eSogd2ViUGFnZUdyb3VwKGNvbnN0IFdlYlBhZ2VHcm91cERhdGEmKTsKIAogI2lmIFBMQVRGT1JN
KE1BQykKICAgICBwaWRfdCBwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkMmM0YWMwNWIzODkyNzFhOWQyZTYz
NTU0ZmZlYWI3Mjg1NmU5ZmUxLi5hMDlmZjU2MGM0ZGQxMDNlNjMxMDE0ZTgwNjE2ZDQxOTRiNmQ4
MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC0yNyw5ICsyNyw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgICMgQ3JlYXRlIGEgbmV3IHBhZ2UuCiAgICAgQ3JlYXRlV2ViUGFnZSh1aW50
NjRfdCBuZXdQYWdlSUQsIFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBwYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzKQogCi0gICAgIyBDcmVhdGUgYSBuZXcgcGFnZSBncm91cC4KLSAgICBD
cmVhdGVXZWJQYWdlR3JvdXAodWludDY0X3QgbmV3UGFnZUdyb3VwSUQsIFdlYktpdDo6V2ViUGFn
ZUdyb3VwRGF0YSBwYWdlR3JvdXBEYXRhKQotCiAgICAgIyBWaXNpdGVkIGxpbmsgdHJhY2tpbmcu
CiAgICAgU2V0VmlzaXRlZExpbmtUYWJsZShXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhh
bmRsZSkKICAgICBWaXNpdGVkTGlua1N0YXRlQ2hhbmdlZChWZWN0b3I8V2ViQ29yZTo6TGlua0hh
c2g+IGxpbmtIYXNoZXMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>