<?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>145373</bug_id>
          
          <creation_ts>2015-05-25 22:51:55 -0700</creation_ts>
          <short_desc>[WK2] Handle WebCore::SecurityOrigin objects through Ref&lt;&gt; where possible</short_desc>
          <delta_ts>2015-05-28 01:19:33 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1097276</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-05-25 22:51:55 -0700</bug_when>
    <thetext>[WK2] Handle WebCore::SecurityOrigin objects through Ref&lt;&gt; where possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097281</commentid>
    <comment_count>1</comment_count>
      <attachid>253696</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-05-26 00:53:44 -0700</bug_when>
    <thetext>Created attachment 253696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097282</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-26 00:55:24 -0700</bug_when>
    <thetext>Attachment 253696 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.cpp:5131:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097314</commentid>
    <comment_count>3</comment_count>
      <attachid>253696</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-26 08:51:32 -0700</bug_when>
    <thetext>Comment on attachment 253696
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097867</commentid>
    <comment_count>4</comment_count>
      <attachid>253696</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-05-28 01:19:16 -0700</bug_when>
    <thetext>Comment on attachment 253696
Patch

Clearing flags on attachment: 253696

Committed r184950: &lt;http://trac.webkit.org/changeset/184950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097868</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-05-28 01:19:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253696</attachid>
            <date>2015-05-26 00:53:44 -0700</date>
            <delta_ts>2015-05-28 01:19:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145373-20150526095333.patch</filename>
            <type>text/plain</type>
            <size>27283</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2Y1OTEwMzgzZTgwMTBl
ZmNjOWQwOGFjZjMzMGEzNWI2NzJkNWY1Yi4uMjUwMjFmZTcwMzVlZjA1YmU1NjM1YWJmNGZiYTE2
MWRkNmMwYWU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE1LTA1LTI1ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBIYW5kbGUg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4gb2JqZWN0cyB0aHJvdWdoIFJlZjw+IHdoZXJlIHBvc3Np
YmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUz
NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiBjcmVhdGlvbiBmdW5jdGlvbnMgaW4gbW9zdCBjYXNlcyByZXR1
cm4gYQorICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG9iamVjdC4gSW4gdGhl
IFdlYktpdDIgbGF5ZXIsIHRob3NlIG9iamVjdHMKKyAgICAgICAgd2VyZSBzdGlsbCBsYXJnZWx5
IGNvbnZlcnRlZCB0byBSZWZQdHI8PnMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzd2l0Y2hlcyB0
byB1c2luZyBSZWY8PiB3aGVyZSBwb3NzaWJsZS4gVGhlIHJlbWFpbmluZyB1c2VzIG9mCisgICAg
ICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gYXJlIHByZXNlbnQgZHVlIHRvIEhh
c2hUYWJsZXMsIHRvLWJlLWNvcGllZAorICAgICAgICBWZWN0b3JzLCBXZWJDb3JlOjpEYXRhYmFz
ZU1hbmFnZXI6Om9yaWdpbnMoKSBBUEkgYW5kIGNvZGUgd2hlcmUgbm9uLW51bGwKKyAgICAgICAg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4gY2FuJ3QgYmUgZ3VhcmFudGVlZC4KKworICAgICAgICAq
IERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpE
YXRhYmFzZVByb2Nlc3M6OmRlbGV0ZUluZGV4ZWREYXRhYmFzZUVudHJpZXNGb3JPcmlnaW4pOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Y2ZVUkxDYWNoZU9yaWdpbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL0xv
Y2FsU3RvcmFnZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0
YWJhc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlOjpM
b2NhbFN0b3JhZ2VEYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFi
YXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFz
ZTo6Y2xvc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFi
YXNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2Vy
OjpvcmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYTo6c2Vj
dXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6VHJhbnNpZW50
TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OlRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6
b3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpUcmFuc2llbnRMb2Nh
bFN0b3JhZ2VOYW1lc3BhY2U6OmNsZWFyU3RvcmFnZUFyZWFzTWF0Y2hpbmdPcmlnaW4pOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE6Om9wZW5EYXRhYmFz
ZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdl
cjo6TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKToKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OkxvY2FsU3RvcmFnZU5hbWVzcGFjZTo6ZGlkRGVz
dHJveVN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OlNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlOjpvcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1h
bmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpjbGVhclN0b3JhZ2VBcmVhc01hdGNoaW5n
T3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
bnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0QXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnJlc2V0QXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlcjo6cmV0dXJuQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmNsZWFyQ2FjaGVGb3JPcmlnaW4pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyOjpkZWxldGVEYXRhYmFzZVdpdGhOYW1l
Rm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyOjpkZWxldGVE
YXRhYmFzZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRhYmFzZU1hbmFnZXI6
OnNldFF1b3RhRm9yT3JpZ2luKToKKwogMjAxNS0wNS0yNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIGNvbnN0cnVjdCBwcm9w
ZXJ0eSB0byBXZWJLaXRXZWJDb250ZXh0IHRvIHNldCB0aGUgSW5kZXhlZERCIGRhdGFiYXNlIGRp
cmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQ
cm9jZXNzLmNwcAppbmRleCBjOGFjM2E1OTg4NTkwYWUzYjUwNWZmMmYxMTI5MGYwMTBlMDAyODgw
Li4xMzE1NDNkYTA2OWQ2YmM2ZjI1YTY3NzRlOWRjZTUwODRkZjAwZjYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcApAQCAtMzY4
LDcgKzM2OCw3IEBAIHZvaWQgRGF0YWJhc2VQcm9jZXNzOjpkZWxldGVJbmRleGVkRGF0YWJhc2VF
bnRyaWVzRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luCiAgICAgaWYgKG1faW5kZXhlZERh
dGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCk7Cisg
ICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBvcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2lu
KCk7CiAgICAgU3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllciA9IG9yaWdpbi0+ZGF0YWJhc2VJZGVu
dGlmaWVyKCk7CiAgICAgU3RyaW5nIG9yaWdpblBhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQobV9pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnksIGRhdGFiYXNlSWRlbnRpZmllcik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRl
eCBmODMwOTNlMGY2MGVjY2U1M2E3OTYzZjY3OTc2ZjVhMmQwNzc2NzljLi44ZjliYzc2ZGM1NDE3
ZmZkOTRlYmQwZDE4ZWJiNGVmNzhiMWFjNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNjgsOSArMjY4LDkgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEIHNl
c3Npb25JRCkKIH0KIAogI2lmIFVTRShDRlVSTENBQ0hFKQotc3RhdGljIFZlY3RvcjxSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+PiBjZlVSTENhY2hlT3JpZ2lucygpCitzdGF0aWMgVmVjdG9yPFJlZjxT
ZWN1cml0eU9yaWdpbj4+IGNmVVJMQ2FjaGVPcmlnaW5zKCkKIHsKLSAgICBWZWN0b3I8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPj4gcmVzdWx0OworICAgIFZlY3RvcjxSZWY8U2VjdXJpdHlPcmlnaW4+
PiByZXN1bHQ7CiAKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Y2ZVUkxDYWNoZUhvc3RO
YW1lc1dpdGhDYWxsYmFjayhbJnJlc3VsdF0oUmV0YWluUHRyPENGQXJyYXlSZWY+IGNmVVJMSG9z
dHMpIHsKICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBzaXplID0gQ0ZBcnJheUdldENvdW50
KGNmVVJMSG9zdHMuZ2V0KCkpOyBpIDwgc2l6ZTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKaW5k
ZXggZGI4ZmRlZDdhZjFmYmYwOTRiYjhlYzdlM2E2YjU2NTU1M2ZmMTZiMC4uYTk5NjcwN2MxNDkw
YmNkZDg3YWJkZjc2YzNlY2YyNWMxNTI0ZDZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcApAQCAtNDYs
MTYgKzQ2LDE2IEBAIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11bUl0ZW1zVG9VcGRhdGUgPSAxMDA7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPExvY2FsU3RvcmFnZURhdGFiYXNl
PiBMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6Y3JlYXRlKFBhc3NSZWZQdHI8V29ya1F1ZXVlPiBxdWV1
ZSwgUGFzc1JlZlB0cjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI+IHRyYWNrZXIsIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQorUGFzc1JlZlB0cjxMb2NhbFN0
b3JhZ2VEYXRhYmFzZT4gTG9jYWxTdG9yYWdlRGF0YWJhc2U6OmNyZWF0ZShQYXNzUmVmUHRyPFdv
cmtRdWV1ZT4gcXVldWUsIFBhc3NSZWZQdHI8TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyPiB0
cmFja2VyLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4pCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBMb2NhbFN0b3JhZ2VEYXRhYmFzZShxdWV1ZSwgdHJhY2tlciwgc2Vj
dXJpdHlPcmlnaW4pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IExvY2FsU3RvcmFnZURhdGFi
YXNlKHF1ZXVlLCB0cmFja2VyLCBXVEY6Om1vdmUoc2VjdXJpdHlPcmlnaW4pKSk7CiB9CiAKLUxv
Y2FsU3RvcmFnZURhdGFiYXNlOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZShQYXNzUmVmUHRyPFdvcmtR
dWV1ZT4gcXVldWUsIFBhc3NSZWZQdHI8TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyPiB0cmFj
a2VyLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKK0xvY2FsU3Rv
cmFnZURhdGFiYXNlOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZShQYXNzUmVmUHRyPFdvcmtRdWV1ZT4g
cXVldWUsIFBhc3NSZWZQdHI8TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyPiB0cmFja2VyLCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4pCiAgICAgOiBtX3F1ZXVlKHF1ZXVl
KQogICAgICwgbV90cmFja2VyKHRyYWNrZXIpCi0gICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3Vy
aXR5T3JpZ2luKQotICAgICwgbV9kYXRhYmFzZVBhdGgobV90cmFja2VyLT5kYXRhYmFzZVBhdGgo
bV9zZWN1cml0eU9yaWdpbi5nZXQoKSkpCisgICAgLCBtX3NlY3VyaXR5T3JpZ2luKFdURjo6bW92
ZShzZWN1cml0eU9yaWdpbikpCisgICAgLCBtX2RhdGFiYXNlUGF0aChtX3RyYWNrZXItPmRhdGFi
YXNlUGF0aChtX3NlY3VyaXR5T3JpZ2luLnB0cigpKSkKICAgICAsIG1fZmFpbGVkVG9PcGVuRGF0
YWJhc2UoZmFsc2UpCiAgICAgLCBtX2RpZEltcG9ydEl0ZW1zKGZhbHNlKQogICAgICwgbV9pc0Ns
b3NlZChmYWxzZSkKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6
b3BlbkRhdGFiYXNlKERhdGFiYXNlT3BlbmluZ1N0cmF0ZWd5IG9wZW5pbmdTdHJhdGVneSkKICAg
ICB9CiAKICAgICBpZiAobV9kYXRhYmFzZS5pc09wZW4oKSkKLSAgICAgICAgbV90cmFja2VyLT5k
aWRPcGVuRGF0YWJhc2VXaXRoT3JpZ2luKG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOworICAgICAg
ICBtX3RyYWNrZXItPmRpZE9wZW5EYXRhYmFzZVdpdGhPcmlnaW4obV9zZWN1cml0eU9yaWdpbi5w
dHIoKSk7CiB9CiAKIGJvb2wgTG9jYWxTdG9yYWdlRGF0YWJhc2U6OnRyeVRvT3BlbkRhdGFiYXNl
KERhdGFiYXNlT3BlbmluZ1N0cmF0ZWd5IG9wZW5pbmdTdHJhdGVneSkKQEAgLTIyNyw3ICsyMjcs
NyBAQCB2b2lkIExvY2FsU3RvcmFnZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgICAgIG1fZGF0YWJh
c2UuY2xvc2UoKTsKIAogICAgIGlmIChpc0VtcHR5KQotICAgICAgICBtX3RyYWNrZXItPmRlbGV0
ZURhdGFiYXNlV2l0aE9yaWdpbihtX3NlY3VyaXR5T3JpZ2luLmdldCgpKTsKKyAgICAgICAgbV90
cmFja2VyLT5kZWxldGVEYXRhYmFzZVdpdGhPcmlnaW4obV9zZWN1cml0eU9yaWdpbi5wdHIoKSk7
CiB9CiAKIHZvaWQgTG9jYWxTdG9yYWdlRGF0YWJhc2U6Oml0ZW1EaWRDaGFuZ2UoY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaAppbmRleCA1MDFhNTM4
ZjhjMTE1Y2I4MTJmNTU3ZDUwOGMzMTYwY2ZmNmUwOTQ1Li4zMzQwZWY3MTRmMDE3NWRlNTNkM2Uy
MTlmYjg5YjE3YjI0ZDc0YWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9TdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xh
c3MgTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOwogCiBjbGFzcyBMb2NhbFN0b3JhZ2VEYXRh
YmFzZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxMb2NhbFN0b3JhZ2VEYXRhYmFzZT4g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPExvY2FsU3RvcmFnZURhdGFiYXNlPiBj
cmVhdGUoUGFzc1JlZlB0cjxXb3JrUXVldWU+LCBQYXNzUmVmUHRyPExvY2FsU3RvcmFnZURhdGFi
YXNlVHJhY2tlcj4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+KTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxMb2NhbFN0b3JhZ2VEYXRhYmFzZT4gY3JlYXRlKFBhc3NSZWZQdHI8
V29ya1F1ZXVlPiwgUGFzc1JlZlB0cjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI+LCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYpOwogICAgIH5Mb2NhbFN0b3JhZ2VEYXRhYmFzZSgp
OwogCiAgICAgLy8gV2lsbCBibG9jayB1bnRpbCB0aGUgaW1wb3J0IGlzIGNvbXBsZXRlLgpAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbG9zZSgpOwogCiBwcml2YXRlOgotICAg
IExvY2FsU3RvcmFnZURhdGFiYXNlKFBhc3NSZWZQdHI8V29ya1F1ZXVlPiwgUGFzc1JlZlB0cjxM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPik7CisgICAgTG9jYWxTdG9yYWdlRGF0YWJhc2UoUGFzc1JlZlB0cjxXb3JrUXVldWU+
LCBQYXNzUmVmUHRyPExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcj4sIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJik7CiAKICAgICBlbnVtIERhdGFiYXNlT3BlbmluZ1N0cmF0ZWd5IHsK
ICAgICAgICAgQ3JlYXRlSWZOb25FeGlzdGVudCwKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcXVldWU7CiAgICAgUmVmUHRyPExvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlcj4gbV90cmFja2VyOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKKyAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+IG1fc2VjdXJpdHlPcmlnaW47CiAKICAgICBTdHJpbmcgbV9kYXRhYmFzZVBhdGg7CiAgICAg
V2ViQ29yZTo6U1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIuY3BwCmluZGV4IGVlNWJjOGVkZWMyMTQ3ODczMDMzNjk4MDVhZTFkYWVhZGU0NmFhOTgu
LmNkN2Y0MGE3NDY4ODUzMjA4NmNiNDFmODk1OWUyOTAyY2MyYmQzMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyLmNwcApAQCAtMTY3LDkgKzE2Nyw5IEBAIFZlY3RvcjxSZWY8U2VjdXJp
dHlPcmlnaW4+PiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmRlbGV0ZURhdGFiYXNlc01v
ZGlmaWVkCiAgICAgcmV0dXJuIGRlbGV0ZWREYXRhYmFzZU9yaWdpbnM7CiB9CiAKLVZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXI6Om9yaWdpbnMoKSBjb25zdAorVmVjdG9yPFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+
IExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6b3JpZ2lucygpIGNvbnN0CiB7Ci0gICAgVmVj
dG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CisgICAgVmVjdG9yPFJlZjxTZWN1
cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAgICAgb3JpZ2lucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KG1fb3JpZ2lucy5zaXplKCkpOwogCiAgICAgZm9yIChjb25zdCBTdHJpbmcmIG9yaWdpbiA6IG1f
b3JpZ2lucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL0xv
Y2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmgKaW5kZXggMWE2ZTdjMTY3ZmNlYTM5
ZTEyNjhkZTJiNjE2ZWMwMWFmNjAyNDY2Ny4uMjFjOTZmZWUzN2U2MGY5OTdmYTI0OGVlZDBhNGI0
NmFlYWM4ODdmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2Uv
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1N0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmgKQEAgLTU3LDcgKzU3LDcg
QEAgcHVibGljOgogICAgIC8vIFJldHVybnMgYSB2ZWN0b3Igb2YgdGhlIG9yaWdpbnMgd2hvc2Ug
ZGF0YWJhc2VzIGhhdmUgYmVlbiBkZWxldGVkLgogICAgIFZlY3RvcjxSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+PiBkZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4+IG9yaWdpbnMoKSBjb25zdDsKKyAgICBWZWN0b3I8UmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPj4gb3JpZ2lucygpIGNvbnN0OwogICAgIFZlY3RvcjxMb2NhbFN0b3Jh
Z2VEZXRhaWxzPiBkZXRhaWxzKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggNzgwODViYTNjYjgw
ZGI5MGY2YTM5ZmNjYjllNzZmZTc1N2I1ZTI5Ny4uYjRlOTliZjcyMmY1N2YxMTVhYjFhN2VmZjY5
Zjk2NzQ1Mjc5OWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNDYsMTAgKzQ2LDEwIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWEgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8U3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTdG9yYWdlQXJlYT4gY3JlYXRlKExvY2FsU3RvcmFnZU5hbWVzcGFjZSos
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKKyAgICBz
dGF0aWMgUmVmPFN0b3JhZ2VBcmVhPiBjcmVhdGUoTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpOwogICAgIH5TdG9yYWdl
QXJlYSgpOwogCi0gICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWN1cml0eU9yaWdpbi5nZXQoKTsgfQorICAgIFNlY3VyaXR5T3JpZ2luJiBzZWN1
cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KIAogICAgIHZv
aWQgYWRkTGlzdGVuZXIoSVBDOjpDb25uZWN0aW9uJiwgdWludDY0X3Qgc3RvcmFnZU1hcElEKTsK
ICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHN0b3Jh
Z2VNYXBJRCk7CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKCk7CiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFtZXNwYWNl
KiwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmLCB1bnNpZ25lZCBxdW90YUluQnl0ZXMpOworICAg
IGV4cGxpY2l0IFN0b3JhZ2VBcmVhKExvY2FsU3RvcmFnZU5hbWVzcGFjZSosIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKIAogICAgIHZvaWQgb3BlbkRhdGFi
YXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpOwogCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPExvY2FsU3RvcmFnZURhdGFiYXNlPiBtX2xvY2FsU3RvcmFnZURhdGFiYXNl
OwogICAgIGJvb2wgbV9kaWRJbXBvcnRJdGVtc0Zyb21EYXRhYmFzZTsKIAotICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+
IG1fc2VjdXJpdHlPcmlnaW47CiAgICAgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7CiAKICAgICBS
ZWZQdHI8U3RvcmFnZU1hcD4gbV9zdG9yYWdlTWFwOwpAQCAtODksNyArODksNyBAQCBwdWJsaWM6
CiAKICAgICBTdG9yYWdlTWFuYWdlciogc3RvcmFnZU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBt
X3N0b3JhZ2VNYW5hZ2VyOyB9CiAKLSAgICBSZWY8U3RvcmFnZUFyZWE+IGdldE9yQ3JlYXRlU3Rv
cmFnZUFyZWEoUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmKTsKKyAgICBSZWY8U3RvcmFnZUFyZWE+
IGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoUmVmPFNlY3VyaXR5T3JpZ2luPiYmKTsKICAgICB2b2lk
IGRpZERlc3Ryb3lTdG9yYWdlQXJlYShTdG9yYWdlQXJlYSopOwogCiAgICAgdm9pZCBjbGVhclN0
b3JhZ2VBcmVhc01hdGNoaW5nT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJik7CkBAIC0xMTcs
OSArMTE3LDkgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBSZWY8U3RvcmFnZUFyZWE+
IGdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNlY3VyaXR5
T3JpZ2luKQorICAgIFJlZjxTdG9yYWdlQXJlYT4gZ2V0T3JDcmVhdGVTdG9yYWdlQXJlYShSZWY8
U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4pCiAgICAgewotICAgICAgICBhdXRvJiBz
bG90ID0gbV9zdG9yYWdlQXJlYU1hcC5hZGQoc2VjdXJpdHlPcmlnaW4sIG51bGxwdHIpLml0ZXJh
dG9yLT52YWx1ZTsKKyAgICAgICAgYXV0byYgc2xvdCA9IG1fc3RvcmFnZUFyZWFNYXAuYWRkKHNl
Y3VyaXR5T3JpZ2luLnB0cigpLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgICAgIGlm
IChzbG90KQogICAgICAgICAgICAgcmV0dXJuICpzbG90OwogCkBAIC0xMjksOSArMTI5LDkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gc3RvcmFnZUFyZWE7CiAgICAgfQogCi0gICAgVmVjdG9y
PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnMoKSBjb25zdAorICAgIFZlY3RvcjxSZWY8
U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zKCkgY29uc3QKICAgICB7Ci0gICAgICAgIFZlY3RvcjxS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOworICAgICAgICBWZWN0b3I8UmVmPFNlY3Vy
aXR5T3JpZ2luPj4gb3JpZ2luczsKIAogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN0b3JhZ2VB
cmVhIDogbV9zdG9yYWdlQXJlYU1hcC52YWx1ZXMoKSkgewogICAgICAgICAgICAgaWYgKCFzdG9y
YWdlQXJlYS0+aXRlbXMoKS5pc0VtcHR5KCkpCkBAIC0xNDQsNyArMTQ0LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXJTdG9yYWdlQXJlYXNNYXRjaGluZ09yaWdpbihjb25zdCBTZWN1cml0eU9y
aWdpbiYgc2VjdXJpdHlPcmlnaW4pCiAgICAgewogICAgICAgICBmb3IgKGF1dG8mIHN0b3JhZ2VB
cmVhIDogbV9zdG9yYWdlQXJlYU1hcC52YWx1ZXMoKSkgewotICAgICAgICAgICAgaWYgKHN0b3Jh
Z2VBcmVhLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbCgmc2VjdXJpdHlPcmlnaW4pKQorICAgICAg
ICAgICAgaWYgKHN0b3JhZ2VBcmVhLT5zZWN1cml0eU9yaWdpbigpLmVxdWFsKCZzZWN1cml0eU9y
aWdpbikpCiAgICAgICAgICAgICAgICAgc3RvcmFnZUFyZWEtPmNsZWFyKCk7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xNjUsMTIgKzE2NSwxMiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiwgUmVmUHRyPFN0b3JhZ2VBcmVhPj4gbV9zdG9yYWdlQXJlYU1hcDsK
IH07CiAKLVJlZjxTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE+IFN0b3JhZ2VNYW5hZ2VyOjpT
dG9yYWdlQXJlYTo6Y3JlYXRlKExvY2FsU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlTmFt
ZXNwYWNlLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4sIHVuc2lnbmVk
IHF1b3RhSW5CeXRlcykKK1JlZjxTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE+IFN0b3JhZ2VN
YW5hZ2VyOjpTdG9yYWdlQXJlYTo6Y3JlYXRlKExvY2FsU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxT
dG9yYWdlTmFtZXNwYWNlLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4sIHVu
c2lnbmVkIHF1b3RhSW5CeXRlcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdl
QXJlYShsb2NhbFN0b3JhZ2VOYW1lc3BhY2UsIFdURjo6bW92ZShzZWN1cml0eU9yaWdpbiksIHF1
b3RhSW5CeXRlcykpOwogfQogCi1TdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUFyZWE6OlN0b3JhZ2VB
cmVhKExvY2FsU3RvcmFnZU5hbWVzcGFjZSogbG9jYWxTdG9yYWdlTmFtZXNwYWNlLCBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4sIHVuc2lnbmVkIHF1b3RhSW5CeXRlcykK
K1N0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYTo6U3RvcmFnZUFyZWEoTG9jYWxTdG9yYWdlTmFt
ZXNwYWNlKiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2UsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBzZWN1
cml0eU9yaWdpbiwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKQogICAgIDogbV9sb2NhbFN0b3JhZ2VO
YW1lc3BhY2UobG9jYWxTdG9yYWdlTmFtZXNwYWNlKQogICAgICwgbV9kaWRJbXBvcnRJdGVtc0Zy
b21EYXRhYmFzZShmYWxzZSkKICAgICAsIG1fc2VjdXJpdHlPcmlnaW4oV1RGOjptb3ZlKHNlY3Vy
aXR5T3JpZ2luKSkKQEAgLTI5MSw3ICsyOTEsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpTdG9y
YWdlQXJlYTo6b3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpCiAKICAgICAvLyBX
ZSBvcGVuIHRoZSBkYXRhYmFzZSBoZXJlIGV2ZW4gaWYgd2UndmUgYWxyZWFkeSBpbXBvcnRlZCBv
dXIgaXRlbXMgdG8gZW5zdXJlIHRoYXQgdGhlIGRhdGFiYXNlIGlzIG9wZW4gaWYgd2UgbmVlZCB0
byB3cml0ZSB0byBpdC4KICAgICBpZiAoIW1fbG9jYWxTdG9yYWdlRGF0YWJhc2UpCi0gICAgICAg
IG1fbG9jYWxTdG9yYWdlRGF0YWJhc2UgPSBMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6Y3JlYXRlKG1f
bG9jYWxTdG9yYWdlTmFtZXNwYWNlLT5zdG9yYWdlTWFuYWdlcigpLT5tX3F1ZXVlLCBtX2xvY2Fs
U3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU1hbmFnZXIoKS0+bV9sb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXIsIG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCkpOworICAgICAgICBtX2xvY2FsU3RvcmFn
ZURhdGFiYXNlID0gTG9jYWxTdG9yYWdlRGF0YWJhc2U6OmNyZWF0ZShtX2xvY2FsU3RvcmFnZU5h
bWVzcGFjZS0+c3RvcmFnZU1hbmFnZXIoKS0+bV9xdWV1ZSwgbV9sb2NhbFN0b3JhZ2VOYW1lc3Bh
Y2UtPnN0b3JhZ2VNYW5hZ2VyKCktPm1fbG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLCBtX3Nl
Y3VyaXR5T3JpZ2luLmNvcHlSZWYoKSk7CiAKICAgICBpZiAobV9kaWRJbXBvcnRJdGVtc0Zyb21E
YXRhYmFzZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzI4LDkgKzMyOCw5IEBAIFN0b3JhZ2VNYW5h
Z2VyOjpMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6On5Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UoKQogICAg
IEFTU0VSVChtX3N0b3JhZ2VBcmVhTWFwLmlzRW1wdHkoKSk7CiB9CiAKLVJlZjxTdG9yYWdlTWFu
YWdlcjo6U3RvcmFnZUFyZWE+IFN0b3JhZ2VNYW5hZ2VyOjpMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6
OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNlY3VyaXR5
T3JpZ2luKQorUmVmPFN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlQXJlYT4gU3RvcmFnZU1hbmFnZXI6
OkxvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShSZWY8U2VjdXJp
dHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4pCiB7Ci0gICAgYXV0byYgc2xvdCA9IG1fc3RvcmFn
ZUFyZWFNYXAuYWRkKHNlY3VyaXR5T3JpZ2luLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7Cisg
ICAgYXV0byYgc2xvdCA9IG1fc3RvcmFnZUFyZWFNYXAuYWRkKHNlY3VyaXR5T3JpZ2luLnB0cigp
LCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKHNsb3QpCiAgICAgICAgIHJldHVy
biAqc2xvdDsKIApAQCAtMzQyLDkgKzM0Miw5IEBAIFJlZjxTdG9yYWdlTWFuYWdlcjo6U3RvcmFn
ZUFyZWE+IFN0b3JhZ2VNYW5hZ2VyOjpMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlCiAK
IHZvaWQgU3RvcmFnZU1hbmFnZXI6OkxvY2FsU3RvcmFnZU5hbWVzcGFjZTo6ZGlkRGVzdHJveVN0
b3JhZ2VBcmVhKFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSkKIHsKLSAgICBBU1NFUlQobV9zdG9y
YWdlQXJlYU1hcC5jb250YWlucyhzdG9yYWdlQXJlYS0+c2VjdXJpdHlPcmlnaW4oKSkpOworICAg
IEFTU0VSVChtX3N0b3JhZ2VBcmVhTWFwLmNvbnRhaW5zKCZzdG9yYWdlQXJlYS0+c2VjdXJpdHlP
cmlnaW4oKSkpOwogCi0gICAgbV9zdG9yYWdlQXJlYU1hcC5yZW1vdmUoc3RvcmFnZUFyZWEtPnNl
Y3VyaXR5T3JpZ2luKCkpOworICAgIG1fc3RvcmFnZUFyZWFNYXAucmVtb3ZlKCZzdG9yYWdlQXJl
YS0+c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgaWYgKCFtX3N0b3JhZ2VBcmVhTWFwLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zNzYsMTMgKzM3NiwxMyBAQCBwdWJsaWM6CiAgICAg
SVBDOjpDb25uZWN0aW9uKiBhbGxvd2VkQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxs
b3dlZENvbm5lY3Rpb24uZ2V0KCk7IH0KICAgICB2b2lkIHNldEFsbG93ZWRDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiopOwogCi0gICAgUmVmPFN0b3JhZ2VBcmVhPiBnZXRPckNyZWF0ZVN0b3Jh
Z2VBcmVhKFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJik7CisgICAgUmVmPFN0b3JhZ2VBcmVhPiBn
ZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFJlZjxTZWN1cml0eU9yaWdpbj4mJik7CiAKICAgICB2b2lk
IGNsb25lVG8oU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UmIG5ld1Nlc3Npb25TdG9yYWdlTmFtZXNw
YWNlKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zKCkgY29u
c3QKKyAgICBWZWN0b3I8UmVmPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2lucygpIGNvbnN0CiAgICAg
ewotICAgICAgICBWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKKyAgICAg
ICAgVmVjdG9yPFJlZjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAKICAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBzdG9yYWdlQXJlYSA6IG1fc3RvcmFnZUFyZWFNYXAudmFsdWVzKCkpIHsKICAg
ICAgICAgICAgIGlmICghc3RvcmFnZUFyZWEtPml0ZW1zKCkuaXNFbXB0eSgpKQpAQCAtMzk1LDcg
KzM5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyU3RvcmFnZUFyZWFzTWF0Y2hpbmdPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKQogICAgIHsKICAgICAgICAg
Zm9yIChhdXRvJiBzdG9yYWdlQXJlYSA6IG1fc3RvcmFnZUFyZWFNYXAudmFsdWVzKCkpIHsKLSAg
ICAgICAgICAgIGlmIChzdG9yYWdlQXJlYS0+c2VjdXJpdHlPcmlnaW4oKS0+ZXF1YWwoJnNlY3Vy
aXR5T3JpZ2luKSkKKyAgICAgICAgICAgIGlmIChzdG9yYWdlQXJlYS0+c2VjdXJpdHlPcmlnaW4o
KS5lcXVhbCgmc2VjdXJpdHlPcmlnaW4pKQogICAgICAgICAgICAgICAgIHN0b3JhZ2VBcmVhLT5j
bGVhcigpOwogICAgICAgICB9CiAgICAgfQpAQCAtNDM2LDkgKzQzNiw5IEBAIHZvaWQgU3RvcmFn
ZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpzZXRBbGxvd2VkQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3RpCiAgICAgbV9hbGxvd2VkQ29ubmVjdGlvbiA9IGFsbG93ZWRDb25uZWN0aW9u
OwogfQogCi1SZWY8U3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VBcmVhPiBTdG9yYWdlTWFuYWdlcjo6
U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRlU3RvcmFnZUFyZWEoUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiYmIHNlY3VyaXR5T3JpZ2luKQorUmVmPFN0b3JhZ2VNYW5hZ2VyOjpTdG9y
YWdlQXJlYT4gU3RvcmFnZU1hbmFnZXI6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpnZXRPckNy
ZWF0ZVN0b3JhZ2VBcmVhKFJlZjxTZWN1cml0eU9yaWdpbj4mJiBzZWN1cml0eU9yaWdpbikKIHsK
LSAgICBhdXRvJiBzbG90ID0gbV9zdG9yYWdlQXJlYU1hcC5hZGQoc2VjdXJpdHlPcmlnaW4sIG51
bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRvJiBzbG90ID0gbV9zdG9yYWdlQXJlYU1h
cC5hZGQoc2VjdXJpdHlPcmlnaW4ucHRyKCksIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKICAg
ICBpZiAoIXNsb3QpCiAgICAgICAgIHNsb3QgPSBTdG9yYWdlQXJlYTo6Y3JlYXRlKDAsIFdURjo6
bW92ZShzZWN1cml0eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5ODM3MmE0YTQ5NjY3ZWVjMmM3YjM3ZWRk
Njg4YzdkNjJiYmZjMTA0Li42ZWE5ZDE2ZThkYjE5ZjAzNDY5MzI1MWJjNjgxY2U3MmJiZjk2ZDRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTEyNywx
MCArNTEyNyw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JCiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2lu
SWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVl
ZGVkLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGE6OkRlbGF5ZWRSZXBseT4gcmVwbHkpCiB7Ci0gICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
RGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpOwotICAgIE1FU1NBR0VfQ0hFQ0so
c2VjdXJpdHlPcmlnaW4pOwotCi0gICAgbV91aUNsaWVudC0+cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSh0aGlzLCAqc2VjdXJpdHlPcmlnaW4uZ2V0KCksIGN1cnJlbnRRdW90YSwg
dG90YWxCeXRlc05lZWRlZCwgW3JlcGx5XSh1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGEpIHsg
cmVwbHktPnNlbmQobmV3UXVvdGEpOyB9KTsKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIo
b3JpZ2luSWRlbnRpZmllcik7CisgICAgbV91aUNsaWVudC0+cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSh0aGlzLCBzZWN1cml0eU9yaWdpbi5nZXQoKSwgY3VycmVudFF1b3RhLCB0
b3RhbEJ5dGVzTmVlZGVkLCBbcmVwbHldKHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YSkgeyBy
ZXBseS0+c2VuZChuZXdRdW90YSk7IH0pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKaW5kZXggOWNjOGU3MTU1ZjRkMWUyOWU5
ZGMyMDU0NTIyNTVjNTI3MGFhNWFmZS4uNzk0MWVmYzAyYzk2Y2E0ZDYyN2UwZWU5MTc5NzlmYjg2
MjFlYjU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlv
bkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIu
Y3BwCkBAIC02MCwxMSArNjAsNyBAQCB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpn
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50aWZpZXJzOwogICAgIGlkZW50aWZpZXJzLnJlc2Vy
dmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7CiAKLSAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4+OjppdGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOwotICAgIEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj46Oml0ZXJhdG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7Ci0gICAg
Zm9yICg7IGkgIT0gZW5kOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBv
cmlnaW4gPSAqaTsKLSAgICAgICAgCisgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBvcmlnaW5zKSB7
CiAgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhOwogICAgICAgICBvcmlnaW5E
YXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOwogICAgICAgICBvcmlnaW5EYXRhLmhv
c3QgPSBvcmlnaW4tPmhvc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMmZmMDI4M2Qx
MzRhYzBjODAwZTFiNGIyMTY0OTI4ZGNmMTBkNzEzNS4uNjI4NzZkNDQzODRhZTY0YTYxYTViMGE4
ZDc0YjQzMjczMWU2MDNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTM3MiwxNSArMzcy
LDE1IEBAIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlOjphcHBDYWNoZVVzYWdlRm9yT3JpZ2luKGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2
NF90IGJ5dGVzKQogewotICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luU3RyaW5nKTsKLSAgICBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCkuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4ob3Jp
Z2luLmdldCgpLCBieXRlcyk7CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5TdHJpbmcpOworICAgIEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlOjpzaW5nbGV0b24oKS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihv
cmlnaW4ucHRyKCksIGJ5dGVzKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVzZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7Ci0g
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhvcmlnaW5TdHJpbmcpOworICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gb3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luU3RyaW5nKTsKICAgICBh
dXRvJiBjYWNoZVN0b3JhZ2UgPSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2luZ2xldG9uKCk7
Ci0gICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKG9yaWdpbi5nZXQo
KSwgY2FjaGVTdG9yYWdlLmRlZmF1bHRPcmlnaW5RdW90YSgpKTsKKyAgICBjYWNoZVN0b3JhZ2Uu
c3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4ob3JpZ2luLnB0cigpLCBjYWNoZVN0b3JhZ2UuZGVm
YXVsdE9yaWdpblF1b3RhKCkpOwogfQogCiBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IEluamVjdGVk
QnVuZGxlOjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5jcHAKaW5kZXggODNlMmUyNmMzZjc2MDJjMmMwYjViMWE1MTgwMzY5ZmU2
MzFhYzcxYi4uODhhN2FkYzlmYTJhMzUwODJlMzFjMjJmNzBlMDg4ZDI0MTRkOWEzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCkBAIC03NywxMCArNzcsNyBAQCB2b2lk
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpyZXR1cm5DYWNoZU9yaWdpbnModWludDY0X3QgY2Fs
bGJhY2tJRCwgY29uc3QgTWVtbwogICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50
aWZpZXJzOwogICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7
CiAKLSAgICBNZW1vcnlDYWNoZTo6U2VjdXJpdHlPcmlnaW5TZXQ6Oml0ZXJhdG9yIGVuZCA9IG9y
aWdpbnMuZW5kKCk7Ci0gICAgZm9yIChNZW1vcnlDYWNoZTo6U2VjdXJpdHlPcmlnaW5TZXQ6Oml0
ZXJhdG9yIGl0ID0gb3JpZ2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaXQ7Ci0gICAgICAgIAorICAgIGZvciAo
YXV0byYgb3JpZ2luIDogb3JpZ2lucykgewogICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3Jp
Z2luRGF0YTsKICAgICAgICAgb3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2wo
KTsKICAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7CkBAIC0xMDAsMTEg
Kzk3LDggQEAgdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Y2xlYXJDYWNoZUZvck9yaWdp
bihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWcKICAgICBVTlVTRURfUEFSQU0oY2FjaGVz
VG9DbGVhcik7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhv
c3QsIG9yaWdpbkRhdGEucG9ydCk7Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVybjsK
LQotICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lu
KCpvcmlnaW4pOworICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRh
dGEucG9ydCk7CisgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZVJlc291cmNlc1dp
dGhPcmlnaW4ob3JpZ2luLmdldCgpKTsKIAogI2lmIFVTRShDRlVSTENBQ0hFKQogICAgIGlmIChy
ZXNvdXJjZUNhY2hlc1RvQ2xlYXIgIT0gSW5NZW1vcnlSZXNvdXJjZUNhY2hlc09ubHkpIHsgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFiYXNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXggNzBmODYxODc3ODBiMzQ0MDViZDUyOTkx
NDk1NDU3Y2E1ZDQ0ODdlOS4uZWMxMmYzMTg4OTExNDhmNGZlYjYxNGVkYmJmOTQwYjY3OTliZWJm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEYXRhYmFzZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcApAQCAtMTE2LDIwICsxMTYsMTIgQEAg
dm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmdldERhdGFiYXNlT3JpZ2lucyh1aW50NjRfdCBjYWxs
YmFja0lEKSBjb25zdAogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGVsZXRlRGF0YWJhc2VX
aXRoTmFtZUZvck9yaWdpbihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSBjb25zdAogewotICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZp
ZXIob3JpZ2luSWRlbnRpZmllcik7Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVybjsK
LQotICAgIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZGVsZXRlRGF0YWJhc2Uob3JpZ2lu
LmdldCgpLCBkYXRhYmFzZUlkZW50aWZpZXIpOworICAgIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xl
dG9uKCkuZGVsZXRlRGF0YWJhc2UoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlk
ZW50aWZpZXIob3JpZ2luSWRlbnRpZmllcikucHRyKCksIGRhdGFiYXNlSWRlbnRpZmllcik7CiB9
CiAKIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkZWxldGVEYXRhYmFzZXNGb3JPcmlnaW4oY29u
c3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKSBjb25zdAogewotICAgIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50
aWZpZXIob3JpZ2luSWRlbnRpZmllcik7Ci0gICAgaWYgKCFvcmlnaW4pCi0gICAgICAgIHJldHVy
bjsKLQotICAgIERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZGVsZXRlT3JpZ2luKG9yaWdp
bi5nZXQoKSk7CisgICAgRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5kZWxldGVPcmlnaW4o
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIob3JpZ2luSWRlbnRp
ZmllcikucHRyKCkpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGVsZXRlQWxsRGF0
YWJhc2VzKCkgY29uc3QKQEAgLTE0NywxMiArMTM5LDcgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFn
ZXI6OnNldFF1b3RhRm9yT3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdW5z
aWcKICAgICAvLyBJZiB0aGUgcXVvdGEgaXMgc2V0IHRvIGEgdmFsdWUgbG93ZXIgdGhhbiB0aGUg
Y3VycmVudCB1c2FnZSwgdGhhdCBxdW90YSB3aWxsCiAgICAgLy8gInN0aWNrIiBidXQgbm8gZGF0
YSB3aWxsIGJlIHB1cmdlZCB0byBtZWV0IHRoZSBuZXcgcXVvdGEuIFRoaXMgd2lsbCBzaW1wbHkK
ICAgICAvLyBwcmV2ZW50IG5ldyBkYXRhIGZyb20gYmVpbmcgYWRkZWQgdG8gZGF0YWJhc2VzIGlu
IHRoYXQgb3JpZ2luLgotCi0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5JZGVudGlmaWVy
KTsKLSAgICBpZiAoIW9yaWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGF0YWJhc2VNYW5h
Z2VyOjpzaW5nbGV0b24oKS5zZXRRdW90YShvcmlnaW4uZ2V0KCksIHF1b3RhKTsKKyAgICBEYXRh
YmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVG
cm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklkZW50aWZpZXIpLnB0cigpLCBxdW90YSk7CiB9
CiAKIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkaXNwYXRjaERpZE1vZGlmeU9yaWdpbihTZWN1
cml0eU9yaWdpbiogb3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCAwZGU0ZDE5OTYwYTA0MGMzZWE3NTQ2MzU1M2Uw
ZmNmNjQ2ZWEwODg1Li43NmUyNzQ1ZjI3MDM1NTc5MDgyYjMzYWUwZWY2N2ZmMmQzNjIxZTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQpAQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBOU1VSTCAqb3JpZ2luKFdlYlBhZ2UmIHBh
Z2UpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBVUkwgbWFpbkZyYW1lVVJMKFVSTCgpLCBt
YWluRnJhbWUtPnVybCgpKTsKLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1haW5GcmFtZU9y
aWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobWFpbkZyYW1lVVJMKTsKKyAgICBSZWY8U2Vj
dXJpdHlPcmlnaW4+IG1haW5GcmFtZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobWFp
bkZyYW1lVVJMKTsKICAgICBTdHJpbmcgbWFpbkZyYW1lT3JpZ2luU3RyaW5nOwogICAgIGlmICgh
bWFpbkZyYW1lT3JpZ2luLT5pc1VuaXF1ZSgpKQogICAgICAgICBtYWluRnJhbWVPcmlnaW5TdHJp
bmcgPSBtYWluRnJhbWVPcmlnaW4tPnRvUmF3U3RyaW5nKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>