<?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>125316</bug_id>
          
          <creation_ts>2013-12-05 13:23:01 -0800</creation_ts>
          <short_desc>WebKit2 API should use weak ownership for delegate properties rather than assign</short_desc>
          <delta_ts>2013-12-05 13:35:37 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>957029</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-05 13:23:01 -0800</bug_when>
    <thetext>WebKit2 API should use weak ownership for delegate properties rather than assign</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957030</commentid>
    <comment_count>1</comment_count>
      <attachid>218540</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-05 13:24:55 -0800</bug_when>
    <thetext>Created attachment 218540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957031</commentid>
    <comment_count>2</comment_count>
      <attachid>218540</attachid>
    <who name="">mitz</who>
    <bug_when>2013-12-05 13:29:05 -0800</bug_when>
    <thetext>Comment on attachment 218540
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=218540&amp;action=review

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:45
&gt; +@package

Nice use of @package!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957036</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-05 13:35:37 -0800</bug_when>
    <thetext>Committed r160191: &lt;http://trac.webkit.org/changeset/160191&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218540</attachid>
            <date>2013-12-05 13:24:55 -0800</date>
            <delta_ts>2013-12-05 13:29:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125316-20131205132454.patch</filename>
            <type>text/plain</type>
            <size>29537</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmFlYjliNWZkZjllNGVh
YzRkZjBmMWY0NTU2YTgwNGQzYWIyZTRiNy4uMDQ2OTk0ZmQ0OTA3ZmVkMTBlZDY0Mzc1ZDA5NTE2
ZWQwM2Y2YzIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUwIEBACiAyMDEzLTEyLTA1ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViS2l0MiBBUEkg
c2hvdWxkIHVzZSB3ZWFrIG93bmVyc2hpcCBmb3IgZGVsZWdhdGUgcHJvcGVydGllcyByYXRoZXIg
dGhhbiBhc3NpZ24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNTMxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTU1NjA2MTQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdlYWtPYmpDUHRyIGZv
ciB0aGUgZGVsZWdhdGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdp
dGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKGRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAg
ICAgIChkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmFpbExvYWRXaXRoRXJy
b3JGb3JGcmFtZSk6CisgICAgICAgIChkaWRTdGFydFByb2dyZXNzKToKKyAgICAgICAgKGRpZENo
YW5nZVByb2dyZXNzKToKKyAgICAgICAgKGRpZEZpbmlzaFByb2dyZXNzKToKKyAgICAgICAgKGRp
ZENoYW5nZUJhY2tGb3J3YXJkTGlzdCk6CisgICAgICAgIChzZXRVcFBhZ2VQb2xpY3lDbGllbnQp
OgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZERlbGVnYXRlXSk6
CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBzZXRMb2FkRGVsZWdhdGU6
XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBwb2xpY3lEZWxlZ2F0
ZV0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgc2V0UG9saWN5RGVs
ZWdhdGU6XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBoaXN0b3J5
RGVsZWdhdGVdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHNldEhp
c3RvcnlEZWxlZ2F0ZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Nvbm5lY3Rpb24ubW06CisgICAgICAgIChkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChkaWRDbG9zZSk6CisgICAgICAgICgtW1dLQ29ubmVjdGlvbiBkZWxlZ2F0ZV0pOgorICAg
ICAgICAoLVtXS0Nvbm5lY3Rpb24gc2V0RGVsZWdhdGU6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAgICAgICAgKGRpZENyZWF0ZUNvbm5lY3Rp
b24pOgorICAgICAgICAoZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhKToK
KyAgICAgICAgKGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKToKKyAgICAgICAgKGRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qp
OgorICAgICAgICAoZGlkVXBkYXRlSGlzdG9yeVRpdGxlKToKKyAgICAgICAgKC1bV0tQcm9jZXNz
R3JvdXAgZGVsZWdhdGVdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzR3JvdXAgc2V0RGVsZWdhdGU6
XSk6CisKKzIwMTMtMTItMDUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
KwogICAgICAgICBUd2VhayBXZWFrT2JqQ1B0cgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1MzExCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5oCmluZGV4IDViNmEyMDY0YmMwMmQyZTk0OTQwY2QwZTk1ZGJlZjk4MzIwNDFkZDIuLmM4YTE2
OWRiYTE5Y2Y1MDc3YmMwYjJkYmFjMzg0NGYxMWFmNTJhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIuaApAQCAtNDQsOSArNDQsOSBAQCBXS19BUElfQ0xBU1MKIAogI3ByYWdtYSBt
YXJrIERlbGVnYXRlcwogCi1AcHJvcGVydHkgKGFzc2lnbikgaWQgPFdLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlPiBsb2FkRGVsZWdhdGU7Ci1AcHJvcGVydHkgKGFzc2lnbikgaWQgPFdLQnJv
d3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGU+IHBvbGljeURlbGVnYXRlOwotQHByb3BlcnR5IChh
c3NpZ24pIGlkIDxXS0Jyb3dzaW5nQ29udGV4dEhpc3RvcnlEZWxlZ2F0ZT4gaGlzdG9yeURlbGVn
YXRlOworQHByb3BlcnR5ICh3ZWFrKSBpZCA8V0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGU+
IGxvYWREZWxlZ2F0ZTsKK0Bwcm9wZXJ0eSAod2VhaykgaWQgPFdLQnJvd3NpbmdDb250ZXh0UG9s
aWN5RGVsZWdhdGU+IHBvbGljeURlbGVnYXRlOworQHByb3BlcnR5ICh3ZWFrKSBpZCA8V0tCcm93
c2luZ0NvbnRleHRIaXN0b3J5RGVsZWdhdGU+IGhpc3RvcnlEZWxlZ2F0ZTsKIAogI3ByYWdtYSBt
YXJrIExvYWRpbmcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCBlOTcy
Y2M5MWNjMjljNjQyMzUxOWRmZmI0OWE4ZTRlZDVmNzY1YTg0Li5jZmE3ZDdkY2JiN2UzZTQyNzlj
YTg5Y2RmOGYzYjNiYWJkNDBmNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5t
bQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAorI2ltcG9ydCAiV2Vh
a09iakNQdHIuaCIKICNpbXBvcnQgIk9iakNPYmplY3RHcmFwaC5oIgogI2ltcG9ydCAiV0tCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50
ZXJuYWwuaCIKQEAgLTExMiwxMCArMTEzLDEwIEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGZy
YW1lRXJyb3JLZXkgPSBAIldLQnJvd3NpbmdDb250ZXh0RnJhbWVFcnJvcktleSI7CiBAaW1wbGVt
ZW50YXRpb24gV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHsKICAgICBBUEk6Ok9iamVjdFN0
b3JhZ2U8V2ViUGFnZVByb3h5PiBfcGFnZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUxvYWRT
dGF0ZU9ic2VydmVyPiBfcGFnZUxvYWRTdGF0ZU9ic2VydmVyOwotfQogCi1Ac3ludGhlc2l6ZSBs
b2FkRGVsZWdhdGUgPSBfbG9hZERlbGVnYXRlOwotQHN5bnRoZXNpemUgcG9saWN5RGVsZWdhdGUg
PSBfcG9saWN5RGVsZWdhdGU7CisgICAgV2Vha09iakNQdHI8aWQgPFdLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlPj4gX2xvYWREZWxlZ2F0ZTsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8V0tCcm93
c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZT4+IF9wb2xpY3lEZWxlZ2F0ZTsKK30KIAogLSAodm9p
ZClkZWFsbG9jCiB7CkBAIC0zNjgsOCArMzY5LDEwIEBAIHN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
CiAgICAgICAgIHJldHVybjsKIAogICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJv
d3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87
Ci0gICAgaWYgKFticm93c2luZ0NvbnRleHQubG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkOildKQotICAgICAgICBbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0ZSBicm93c2luZ0Nv
bnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm92aXNpb25hbExvYWQ6YnJvd3NpbmdDb250ZXh0XTsK
KyAgICBhdXRvIGxvYWREZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5n
ZXQoKTsKKworICAgIGlmIChbbG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkOildKQor
ICAgICAgICBbbG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZDpicm93c2luZ0NvbnRleHRdOwogfQogCiBzdGF0aWMgdm9pZCBkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQpAQCAtMzc4LDggKzM4MSwxMCBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgVwogICAg
ICAgICByZXR1cm47CiAKICAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5n
Q29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOwotICAg
IGlmIChbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWQ6KV0pCi0gICAgICAgIFticm93c2luZ0NvbnRleHQubG9hZERlbGVn
YXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKKyAgICBhdXRvIGxvYWREZWxlZ2F0ZSA9
IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKKworICAgIGlmIChbbG9hZERl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlckRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZDopXSkKKyAgICAg
ICAgW2xvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkOmJyb3dzaW5nQ29udGV4dF07CiB9CiAKIHN0YXRp
YyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMzg4LDkgKzM5MywxMSBAQCBzdGF0aWMg
dm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZgogICAgICAgICByZXR1cm47CiAKICAgICBXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgKiljbGllbnRJbmZvOwotICAgIGlmIChbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6ZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvcjopXSkgeworICAgIGF1dG8gbG9hZERlbGVnYXRl
ID0gYnJvd3NpbmdDb250ZXh0LT5fbG9hZERlbGVnYXRlLmdldCgpOworCisgICAgaWYgKFtsb2Fk
RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250
cm9sbGVyOmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3I6KV0pIHsKICAgICAgICAgUmV0
YWluUHRyPE5TRXJyb3I+IG5zRXJyb3IgPSBhZG9wdE5TKGNyZWF0ZUVycm9yV2l0aFJlY292ZXJ5
QXR0ZW1wdGVyKGVycm9yLCBmcmFtZSwgYnJvd3NpbmdDb250ZXh0KSk7Ci0gICAgICAgIFticm93
c2luZ0NvbnRleHQubG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3Np
bmdDb250ZXh0IGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3I6bnNFcnJvci5nZXQoKV07
CisgICAgICAgIFtsb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2lu
Z0NvbnRleHQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvcjpuc0Vycm9yLmdldCgpXTsK
ICAgICB9CiB9CiAKQEAgLTQwMCw4ICs0MDcsMTAgQEAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXMK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93
c2luZ0NvbnRleHQgPSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsK
LSAgICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkQ29tbWl0TG9hZDopXSkKLSAg
ICAgICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlckRpZENvbW1pdExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKKyAgICBhdXRvIGxvYWREZWxlZ2F0
ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKKworICAgIGlmIChbbG9h
ZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckRpZENvbW1pdExvYWQ6KV0pCisgICAgICAgIFtsb2FkRGVsZWdhdGUgYnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlckRpZENvbW1pdExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKIH0KIAogc3Rh
dGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC00
MTAsOCArNDE5LDEwIEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzCiAgICAgICAgIHJldHVybjsK
IAogICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87Ci0gICAgaWYgKFticm93c2lu
Z0NvbnRleHQubG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaExvYWQ6KV0pCi0gICAgICAgIFticm93c2luZ0Nv
bnRleHQubG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRGaW5pc2hMb2Fk
OmJyb3dzaW5nQ29udGV4dF07CisgICAgYXV0byBsb2FkRGVsZWdhdGUgPSBicm93c2luZ0NvbnRl
eHQtPl9sb2FkRGVsZWdhdGUuZ2V0KCk7CisKKyAgICBpZiAoW2xvYWREZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRGaW5pc2hM
b2FkOildKQorICAgICAgICBbbG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJE
aWRGaW5pc2hMb2FkOmJyb3dzaW5nQ29udGV4dF07CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEZhaWxM
b2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
RXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKQEAgLTQyMCw0MiArNDMxLDUyIEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyCiAgICAgICAg
IHJldHVybjsKIAogICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250
ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87Ci0gICAgaWYg
KFticm93c2luZ0NvbnRleHQubG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpkaWRGYWlsTG9hZFdpdGhFcnJvcjopXSkgewor
ICAgIGF1dG8gbG9hZERlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5fbG9hZERlbGVnYXRlLmdl
dCgpOworCisgICAgaWYgKFtsb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmRpZEZhaWxMb2FkV2l0aEVycm9yOildKSB7CiAg
ICAgICAgIFJldGFpblB0cjxOU0Vycm9yPiBuc0Vycm9yID0gYWRvcHROUyhjcmVhdGVFcnJvcldp
dGhSZWNvdmVyeUF0dGVtcHRlcihlcnJvciwgZnJhbWUsIGJyb3dzaW5nQ29udGV4dCkpOwotICAg
ICAgICBbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9s
bGVyOmJyb3dzaW5nQ29udGV4dCBkaWRGYWlsTG9hZFdpdGhFcnJvcjpuc0Vycm9yLmdldCgpXTsK
KyAgICAgICAgW2xvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5n
Q29udGV4dCBkaWRGYWlsTG9hZFdpdGhFcnJvcjpuc0Vycm9yLmdldCgpXTsKICAgICB9CiB9CiAK
IHN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCiB7CiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2lu
Z0NvbnRleHQgPSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKLSAg
ICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm9ncmVzczopXSkKLSAg
ICAgICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlckRpZFN0YXJ0UHJvZ3Jlc3M6YnJvd3NpbmdDb250ZXh0XTsKKyAgICBhdXRvIGxvYWREZWxl
Z2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsKKworICAgIGlmIChb
bG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlckRpZFN0YXJ0UHJvZ3Jlc3M6KV0pCisgICAgICAgIFtsb2FkRGVsZWdhdGUgYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvZ3Jlc3M6YnJvd3NpbmdDb250ZXh0XTsK
IH0KIAogc3RhdGljIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpi
cm93c2luZ0NvbnRleHQgPSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5m
bzsKLSAgICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmVzdGltYXRlZFByb2dyZXNz
Q2hhbmdlZFRvOildKQotICAgICAgICBbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0ZSBicm93
c2luZ0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5nQ29udGV4dCBlc3RpbWF0ZWRQcm9ncmVzc0No
YW5nZWRUbzp0b0ltcGwocGFnZSktPmVzdGltYXRlZFByb2dyZXNzKCldOworICAgIGF1dG8gbG9h
ZERlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5fbG9hZERlbGVnYXRlLmdldCgpOworCisgICAg
aWYgKFtsb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93c2luZ0Nv
bnRleHRDb250cm9sbGVyOmVzdGltYXRlZFByb2dyZXNzQ2hhbmdlZFRvOildKQorICAgICAgICBb
bG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6YnJvd3NpbmdDb250ZXh0IGVz
dGltYXRlZFByb2dyZXNzQ2hhbmdlZFRvOnRvSW1wbChwYWdlKS0+ZXN0aW1hdGVkUHJvZ3Jlc3Mo
KV07CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKFdLUGFnZVJlZiBwYWdlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVu
dEluZm87Ci0gICAgaWYgKFticm93c2luZ0NvbnRleHQubG9hZERlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaFByb2dy
ZXNzOildKQotICAgICAgICBbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0ZSBicm93c2luZ0Nv
bnRleHRDb250cm9sbGVyRGlkRmluaXNoUHJvZ3Jlc3M6YnJvd3NpbmdDb250ZXh0XTsKKyAgICBh
dXRvIGxvYWREZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0ZS5nZXQoKTsK
KworICAgIGlmIChbbG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaFByb2dyZXNzOildKQorICAgICAgICBbbG9h
ZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRGaW5pc2hQcm9ncmVzczpicm93
c2luZ0NvbnRleHRdOwogfQogCiBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Qo
V0tQYWdlUmVmIHBhZ2UsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0ZW0sIFdLQXJy
YXlSZWYgcmVtb3ZlZEl0ZW1zLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87Ci0gICAgaWYgKCFbYnJvd3NpbmdDb250ZXh0Lmxv
YWREZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXJEaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q6YWRkZWRJdGVtOnJlbW92ZWRJdGVtczop
XSkKKyAgICBhdXRvIGxvYWREZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X2xvYWREZWxlZ2F0
ZS5nZXQoKTsKKworICAgIGlmICghW2xvYWREZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q6
YWRkZWRJdGVtOnJlbW92ZWRJdGVtczopXSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV0tCYWNr
Rm9yd2FyZExpc3RJdGVtICphZGRlZCA9IGFkZGVkSXRlbSA/IHdyYXBwZXIoKnRvSW1wbChhZGRl
ZEl0ZW0pKSA6IG5pbDsKICAgICBOU0FycmF5ICpyZW1vdmVkID0gcmVtb3ZlZEl0ZW1zID8gd3Jh
cHBlcigqdG9JbXBsKHJlbW92ZWRJdGVtcykpIDogbmlsOwotICAgIFticm93c2luZ0NvbnRleHQu
bG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDaGFuZ2VCYWNrRm9yd2Fy
ZExpc3Q6YnJvd3NpbmdDb250ZXh0IGFkZGVkSXRlbTphZGRlZCByZW1vdmVkSXRlbXM6cmVtb3Zl
ZF07CisgICAgW2xvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkQ2hhbmdl
QmFja0ZvcndhcmRMaXN0OmJyb3dzaW5nQ29udGV4dCBhZGRlZEl0ZW06YWRkZWQgcmVtb3ZlZEl0
ZW1zOnJlbW92ZWRdOwogfQogCiBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VMb2FkZXJDbGllbnQoV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQsIFdlYlBhZ2VQcm94eSYg
cGFnZSkKQEAgLTUxNCw3ICs1MzUsOSBAQCBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VQb2xpY3lDbGll
bnQoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQsCiAgICAgcG9s
aWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBbXShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25U
eXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBXS0ZyYW1lUmVmIG9yaWdpbmF0aW5nRnJhbWUsIFdLVVJMUmVxdWVzdFJlZiByZXF1
ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICB7CiAgICAgICAgIFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlciAqKWNsaWVudEluZm87Ci0gICAgICAgIGlmIChbYnJvd3NpbmdDb250ZXh0LnBvbGljeURl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlcjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopXSkg
eworICAgICAgICBhdXRvIHBvbGljeURlbGVnYXRlID0gYnJvd3NpbmdDb250ZXh0LT5fcG9saWN5
RGVsZWdhdGUuZ2V0KCk7CisKKyAgICAgICAgaWYgKFtwb2xpY3lEZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKICAgICAgICAgICAgIE5T
RGljdGlvbmFyeSAqYWN0aW9uRGljdGlvbmFyeSA9IEB7CiAgICAgICAgICAgICAgICAgV0tBY3Rp
b25Jc01haW5GcmFtZUtleTogQChXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKSwKICAgICAgICAg
ICAgICAgICBXS0FjdGlvbk5hdmlnYXRpb25UeXBlS2V5OiBAKG5hdmlnYXRpb25UeXBlKSwKQEAg
LTUyOCw3ICs1NTEsNyBAQCBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQsCiAgICAgICAgICAgICAgICAg
WyhOU011dGFibGVEaWN0aW9uYXJ5ICopYWN0aW9uRGljdGlvbmFyeSBzZXRPYmplY3Q6W05TVVJM
IF93ZWJfVVJMV2l0aFdURlN0cmluZzp0b0ltcGwob3JpZ2luYXRpbmdGcmFtZSktPnVybCgpXSBm
b3JLZXk6V0tBY3Rpb25PcmlnaW5hdGluZ0ZyYW1lVVJMS2V5XTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIAotICAgICAgICAgICAgW2Jyb3dzaW5nQ29udGV4dC5wb2xpY3lEZWxlZ2F0ZSBi
cm93c2luZ0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5nQ29udGV4dCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOmFjdGlvbkRpY3Rpb25hcnkgZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xp
Y3lEZWNpc2lvbkJsb2NrKGxpc3RlbmVyKV07CisgICAgICAgICAgICBbcG9saWN5RGVsZWdhdGUg
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2luZ0NvbnRleHQgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbjphY3Rpb25EaWN0aW9uYXJ5IGRlY2lzaW9uSGFuZGxlcjptYWtlUG9s
aWN5RGVjaXNpb25CbG9jayhsaXN0ZW5lcildOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7CiAgICAgfTsKQEAgLTUzNiw3ICs1
NTksOSBAQCBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQsCiAgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbiA9IFtdKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVz
dFJlZiByZXF1ZXN0LCBXS1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
clJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQogICAgIHsKICAgICAgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0Nv
bnRleHQgPSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKLSAgICAg
ICAgaWYgKFticm93c2luZ0NvbnRleHQucG9saWN5RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAgICAgICAgYXV0byBwb2xpY3lEZWxl
Z2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X3BvbGljeURlbGVnYXRlLmdldCgpOworCisgICAgICAg
IGlmIChbcG9saWN5RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyOmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbjpkZWNpc2lv
bkhhbmRsZXI6KV0pIHsKICAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqYWN0aW9uRGljdGlvbmFy
eSA9IEB7CiAgICAgICAgICAgICAgICAgV0tBY3Rpb25Jc01haW5GcmFtZUtleTogQChXS0ZyYW1l
SXNNYWluRnJhbWUoZnJhbWUpKSwKICAgICAgICAgICAgICAgICBXS0FjdGlvbk5hdmlnYXRpb25U
eXBlS2V5OiBAKG5hdmlnYXRpb25UeXBlKSwKQEAgLTU0Niw3ICs1NzEsNyBAQCBzdGF0aWMgdm9p
ZCBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93
c2luZ0NvbnRleHQsCiAgICAgICAgICAgICAgICAgV0tBY3Rpb25GcmFtZU5hbWVLZXk6IHRvSW1w
bChmcmFtZU5hbWUpLT53cmFwcGVyKCkKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIFticm93c2luZ0NvbnRleHQucG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlcjpicm93c2luZ0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
OmFjdGlvbkRpY3Rpb25hcnkgZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNpc2lvbkJsb2Nr
KGxpc3RlbmVyKV07CisgICAgICAgICAgICBbcG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlcjpicm93c2luZ0NvbnRleHQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
OmFjdGlvbkRpY3Rpb25hcnkgZGVjaXNpb25IYW5kbGVyOm1ha2VQb2xpY3lEZWNpc2lvbkJsb2Nr
KGxpc3RlbmVyKV07CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxp
c3RlbmVyVXNlKGxpc3RlbmVyKTsKICAgICB9OwpAQCAtNTU0LDcgKzU3OSw5IEBAIHN0YXRpYyB2
b2lkIHNldFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJy
b3dzaW5nQ29udGV4dCwKICAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Ug
PSBbXShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiBy
ZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBX
S0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKICAgICB7CiAgICAgICAgIFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAq
KWNsaWVudEluZm87Ci0gICAgICAgIGlmIChbYnJvd3NpbmdDb250ZXh0LnBvbGljeURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZUFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAgICAg
ICAgYXV0byBwb2xpY3lEZWxlZ2F0ZSA9IGJyb3dzaW5nQ29udGV4dC0+X3BvbGljeURlbGVnYXRl
LmdldCgpOworCisgICAgICAgIGlmIChbcG9saWN5RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopXSkgewogICAgICAgICAgICAgTlNEaWN0aW9uYXJ5
ICphY3Rpb25EaWN0aW9uYXJ5ID0gQHsKICAgICAgICAgICAgICAgICBXS0FjdGlvbklzTWFpbkZy
YW1lS2V5OiBAKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpLAogICAgICAgICAgICAgICAgIFdL
QWN0aW9uVVJMUmVxdWVzdEtleTogYWRvcHROUyhXS1VSTFJlcXVlc3RDb3B5TlNVUkxSZXF1ZXN0
KHJlcXVlc3QpKS5nZXQoKSwKQEAgLTU2Miw3ICs1ODksNyBAQCBzdGF0aWMgdm9pZCBzZXRVcFBh
Z2VQb2xpY3lDbGllbnQoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRl
eHQsCiAgICAgICAgICAgICAgICAgV0tBY3Rpb25DYW5TaG93TUlNRVR5cGVLZXk6IEAoY2FuU2hv
d01JTUVUeXBlKSwKICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgIFticm93c2luZ0NvbnRl
eHQucG9saWN5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpicm93c2luZ0NvbnRl
eHQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VBY3Rpb246YWN0aW9uRGljdGlvbmFyeSBkZWNpc2lv
bkhhbmRsZXI6bWFrZVBvbGljeURlY2lzaW9uQmxvY2sobGlzdGVuZXIpXTsKKyAgICAgICAgICAg
IFtwb2xpY3lEZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmJyb3dzaW5nQ29udGV4
dCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUFjdGlvbjphY3Rpb25EaWN0aW9uYXJ5IGRlY2lzaW9u
SGFuZGxlcjptYWtlUG9saWN5RGVjaXNpb25CbG9jayhsaXN0ZW5lcildOwogICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7CiAgICAg
fTsKQEAgLTU3MiwxMyArNTk5LDE0IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNsaWVu
dChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCwKIAogLSAoaWQg
PFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlPilsb2FkRGVsZWdhdGUKIHsKLSAgICByZXR1
cm4gX2xvYWREZWxlZ2F0ZTsKKyAgICByZXR1cm4gX2xvYWREZWxlZ2F0ZS5nZXRBdXRvcmVsZWFz
ZWQoKTsKIH0KIAogLSAodm9pZClzZXRMb2FkRGVsZWdhdGU6KGlkIDxXS0Jyb3dzaW5nQ29udGV4
dExvYWREZWxlZ2F0ZT4pbG9hZERlbGVnYXRlCiB7CiAgICAgX2xvYWREZWxlZ2F0ZSA9IGxvYWRE
ZWxlZ2F0ZTsKLSAgICBpZiAoX2xvYWREZWxlZ2F0ZSkKKworICAgIGlmIChsb2FkRGVsZWdhdGUp
CiAgICAgICAgIHNldFVwUGFnZUxvYWRlckNsaWVudChzZWxmLCAqX3BhZ2UpOwogICAgIGVsc2UK
ICAgICAgICAgX3BhZ2UtPmluaXRpYWxpemVMb2FkZXJDbGllbnQobnVsbHB0cik7CkBAIC01ODYs
MTggKzYxNCwyOSBAQCBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyICpicm93c2luZ0NvbnRleHQsCiAKIC0gKGlkIDxXS0Jyb3dzaW5n
Q29udGV4dFBvbGljeURlbGVnYXRlPilwb2xpY3lEZWxlZ2F0ZQogewotICAgIHJldHVybiBfcG9s
aWN5RGVsZWdhdGU7CisgICAgcmV0dXJuIF9wb2xpY3lEZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQo
KTsKIH0KIAogLSAodm9pZClzZXRQb2xpY3lEZWxlZ2F0ZTooaWQgPFdLQnJvd3NpbmdDb250ZXh0
UG9saWN5RGVsZWdhdGU+KXBvbGljeURlbGVnYXRlCiB7CiAgICAgX3BvbGljeURlbGVnYXRlID0g
cG9saWN5RGVsZWdhdGU7Ci0gICAgaWYgKF9wb2xpY3lEZWxlZ2F0ZSkKKworICAgIGlmIChwb2xp
Y3lEZWxlZ2F0ZSkKICAgICAgICAgc2V0VXBQYWdlUG9saWN5Q2xpZW50KHNlbGYsICpfcGFnZSk7
CiAgICAgZWxzZQogICAgICAgICBfcGFnZS0+aW5pdGlhbGl6ZVBvbGljeUNsaWVudChudWxscHRy
KTsKIH0KIAorLSAoaWQgPFdLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlPiloaXN0b3J5
RGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX2hpc3RvcnlEZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQo
KTsKK30KKworLSAodm9pZClzZXRIaXN0b3J5RGVsZWdhdGU6KGlkIDxXS0Jyb3dzaW5nQ29udGV4
dEhpc3RvcnlEZWxlZ2F0ZT4paGlzdG9yeURlbGVnYXRlCit7CisgICAgX2hpc3RvcnlEZWxlZ2F0
ZSA9IGhpc3RvcnlEZWxlZ2F0ZTsKK30KKwogKyAoTlNNdXRhYmxlU2V0ICopY3VzdG9tU2NoZW1l
cwogewogICAgIHN0YXRpYyBOU011dGFibGVTZXQgKmN1c3RvbVNjaGVtZXMgPSBbW05TTXV0YWJs
ZVNldCBhbGxvY10gaW5pdF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcklu
dGVybmFsLmgKaW5kZXggNTA1NmM5NDk5YTE2OGU0YWI2ZDc0MmRhODgxNzNhOTk2NzY0OWZjMi4u
MWQ3YTBmNzgxYTI0NDg2NjZkNjdiODA5ZjI0YTNiNDA2YTYwZDFiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXJJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIldLT2JqZWN0LmgiCisjaW1wb3J0ICJXZWFrT2Jq
Q1B0ci5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNDAsNyArNDEsMTAgQEAgaW5saW5lIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqd3Jh
cHBlcihXZWJQYWdlUHJveHkmIHBhZ2UpCiAKIH0KIAotQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIgKCkgPFdLT2JqZWN0PgorQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgKCkgPFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIFdlYktpdDo6V2Vha09i
akNQdHI8aWQgPFdLQnJvd3NpbmdDb250ZXh0SGlzdG9yeURlbGVnYXRlPj4gX2hpc3RvcnlEZWxl
Z2F0ZTsKK30KIAogLSAodm9pZClfZmluaXNoSW5pdGlhbGl6YXRpb247CiArIChOU011dGFibGVT
ZXQgKiljdXN0b21TY2hlbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29ubmVjdGlvbi5tbQppbmRleCAyOTZkOGFmMGYzOTk2YTRjYTExODA2NGE4NWI5
NzczMmI5MmFjZWI1Li4zMTNmY2Q0ZTA4ZmM1NDkxZGExOTE4MGZlOWYzNTU0OTNmMTBlYzM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlv
bi5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKICNpbXBvcnQg
IldLU2hhcmVkQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tTdHJpbmdDRi5oIgorI2ltcG9ydCAiV2Vh
a09iakNQdHIuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC00MSw5ICs0Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiBAaW1wbGVtZW50YXRpb24gV0tDb25uZWN0aW9uIHsKICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8
V2ViQ29ubmVjdGlvbj4gX2Nvbm5lY3Rpb247CiAgICAgUmV0YWluUHRyPFdLUmVtb3RlT2JqZWN0
UmVnaXN0cnk+IF9yZW1vdGVPYmplY3RSZWdpc3RyeTsKLX0KIAotQHN5bnRoZXNpemUgZGVsZWdh
dGUgPSBfZGVsZWdhdGU7CisgICAgV2Vha09iakNQdHI8aWQgPFdLQ29ubmVjdGlvbkRlbGVnYXRl
Pj4gX2RlbGVnYXRlOworfQogCiAtICh2b2lkKWRlYWxsb2MKIHsKQEAgLTU4LDE4ICs1OSwyMSBA
QCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShXS0Nvbm5lY3Rpb25SZWYsIFdLU3RyaW5n
UmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZQogICAgIGlmIChbY29ubmVjdGlvbi0+X3JlbW90ZU9i
amVjdFJlZ2lzdHJ5IF9oYW5kbGVNZXNzYWdlV2l0aE5hbWU6bWVzc2FnZU5hbWUgYm9keTptZXNz
YWdlQm9keV0pCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChbY29ubmVjdGlvbi5kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbm5lY3Rpb246ZGlkUmVjZWl2ZU1lc3Nh
Z2VXaXRoTmFtZTpib2R5OildKSB7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGNvbm5lY3Rpb24tPl9k
ZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoY29ubmVjdGlvbjpkaWRSZWNlaXZlTWVzc2FnZVdpdGhOYW1lOmJvZHk6KV0pIHsKICAg
ICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBuc01lc3NhZ2VOYW1lID0gYWRvcHRDRihXS1N0
cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtZXNzYWdlTmFtZSkpOwogICAg
ICAgICBSZXRhaW5QdHI8aWQ+IG5zTWVzc2FnZUJvZHkgPSAoKE9iakNPYmplY3RHcmFwaCopbWVz
c2FnZUJvZHkpLT5yb290T2JqZWN0KCk7Ci0gICAgICAgIFtjb25uZWN0aW9uLmRlbGVnYXRlIGNv
bm5lY3Rpb246Y29ubmVjdGlvbiBkaWRSZWNlaXZlTWVzc2FnZVdpdGhOYW1lOihOU1N0cmluZyAq
KW5zTWVzc2FnZU5hbWUuZ2V0KCkgYm9keTpuc01lc3NhZ2VCb2R5LmdldCgpXTsKKyAgICAgICAg
W2RlbGVnYXRlIGNvbm5lY3Rpb246Y29ubmVjdGlvbiBkaWRSZWNlaXZlTWVzc2FnZVdpdGhOYW1l
OihOU1N0cmluZyAqKW5zTWVzc2FnZU5hbWUuZ2V0KCkgYm9keTpuc01lc3NhZ2VCb2R5LmdldCgp
XTsKICAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIGRpZENsb3NlKFdLQ29ubmVjdGlvblJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXS0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24gPSAo
V0tDb25uZWN0aW9uICopY2xpZW50SW5mbzsKLSAgICBpZiAoW2Nvbm5lY3Rpb24uZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihjb25uZWN0aW9uRGlkQ2xvc2U6KV0pCi0gICAg
ICAgIFtjb25uZWN0aW9uLmRlbGVnYXRlIGNvbm5lY3Rpb25EaWRDbG9zZTpjb25uZWN0aW9uXTsK
KyAgICBhdXRvIGRlbGVnYXRlID0gY29ubmVjdGlvbi0+X2RlbGVnYXRlLmdldCgpOworCisgICAg
aWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbm5lY3Rpb25EaWRD
bG9zZTopXSkKKyAgICAgICAgW2RlbGVnYXRlIGNvbm5lY3Rpb25EaWRDbG9zZTpjb25uZWN0aW9u
XTsKIH0KIAogc3RhdGljIHZvaWQgc2V0VXBDbGllbnQoV0tDb25uZWN0aW9uICp3cmFwcGVyLCBX
ZWJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQpAQCAtODcsMTMgKzkxLDEzIEBAIHN0YXRpYyB2b2lk
IHNldFVwQ2xpZW50KFdLQ29ubmVjdGlvbiAqd3JhcHBlciwgV2ViQ29ubmVjdGlvbiYgY29ubmVj
dGlvbikKIAogLSAoaWQgPFdLQ29ubmVjdGlvbkRlbGVnYXRlPilkZWxlZ2F0ZQogewotICAgIHJl
dHVybiBfZGVsZWdhdGU7CisgICAgcmV0dXJuIF9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFzZWQoKTsK
IH0KIAogLSAodm9pZClzZXREZWxlZ2F0ZTooaWQgPFdLQ29ubmVjdGlvbkRlbGVnYXRlPilkZWxl
Z2F0ZQogewogICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwotICAgIGlmIChfZGVsZWdhdGUpCisg
ICAgaWYgKGRlbGVnYXRlKQogICAgICAgICBzZXRVcENsaWVudChzZWxmLCAqX2Nvbm5lY3Rpb24p
OwogICAgIGVsc2UKICAgICAgICAgX2Nvbm5lY3Rpb24tPmluaXRpYWxpemVDb25uZWN0aW9uQ2xp
ZW50KG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzR3JvdXAubW0KaW5kZXggYTYwMTNmMzEwMmI5NTk2OTk2MzQxZTQ0ZWM1ZWQy
MzhmZjc5ZjY0MC4uOGY0YTU2NzM3MzY4MTczM2MzZDBhMmMyNmE5NGQyZmIyMWY4MDJmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91
cC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dy
b3VwLm1tCkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0ICJXS05hdmlnYXRpb25EYXRhSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLUmV0YWluUHRyLmgiCiAjaW1wb3J0ICJXS1N0cmluZ0NGLmgiCisj
aW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgogI2ltcG9ydCAiV2ViRnJhbWVQcm94eS5oIgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC01NCw2ICs1NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiBAaW1wbGVtZW50YXRpb24gV0tQcm9jZXNzR3JvdXAgewogICAgIEFQSTo6T2JqZWN0
U3RvcmFnZTxXZWJDb250ZXh0PiBfY29udGV4dDsKIAorICAgIFdlYWtPYmpDUHRyPGlkIDxXS1By
b2Nlc3NHcm91cERlbGVnYXRlPj4gX2RlbGVnYXRlOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAg
IFJldGFpblB0cjxXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1M+IF9nZW9sb2NhdGlvblByb3ZpZGVy
OwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKQEAgLTY5LDggKzcyLDEwIEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiBzdGF0aWMgdm9pZCBkaWRDcmVhdGVDb25uZWN0aW9uKFdLQ29udGV4dFJl
ZiwgV0tDb25uZWN0aW9uUmVmIGNvbm5lY3Rpb25SZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CiB7CiAgICAgV0tQcm9jZXNzR3JvdXAgKnByb2Nlc3NHcm91cCA9IChXS1Byb2Nlc3NHcm91cCAq
KWNsaWVudEluZm87Ci0gICAgaWYgKFtwcm9jZXNzR3JvdXAuZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihwcm9jZXNzR3JvdXA6ZGlkQ3JlYXRlQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc1BsdWdJbjopXSkKLSAgICAgICAgW3Byb2Nlc3NHcm91cC5kZWxlZ2F0ZSBwcm9jZXNzR3Jv
dXA6cHJvY2Vzc0dyb3VwIGRpZENyZWF0ZUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NQbHVnSW46d3Jh
cHBlcigqdG9JbXBsKGNvbm5lY3Rpb25SZWYpKV07CisgICAgYXV0byBkZWxlZ2F0ZSA9IHByb2Nl
c3NHcm91cC0+X2RlbGVnYXRlLmdldCgpOworCisgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHByb2Nlc3NHcm91cDpkaWRDcmVhdGVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzUGx1Z0luOildKQorICAgICAgICBbZGVsZWdhdGUgcHJvY2Vzc0dyb3VwOnByb2Nlc3NH
cm91cCBkaWRDcmVhdGVDb25uZWN0aW9uVG9XZWJQcm9jZXNzUGx1Z0luOndyYXBwZXIoKnRvSW1w
bChjb25uZWN0aW9uUmVmKSldOwogfQogCiBzdGF0aWMgdm9pZCBzZXRVcENvbm5lY3Rpb25DbGll
bnQoV0tQcm9jZXNzR3JvdXAgKnByb2Nlc3NHcm91cCwgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYp
CkBAIC04OCw4ICs5MywxMCBAQCBzdGF0aWMgdm9pZCBzZXRVcENvbm5lY3Rpb25DbGllbnQoV0tQ
cm9jZXNzR3JvdXAgKnByb2Nlc3NHcm91cCwgV0tDb250ZXh0UmVmIGNvbgogc3RhdGljIFdLVHlw
ZVJlZiBnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEoV0tDb250ZXh0UmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdLUHJvY2Vzc0dyb3VwICpwcm9jZXNz
R3JvdXAgPSAoV0tQcm9jZXNzR3JvdXAgKiljbGllbnRJbmZvOwotICAgIGlmIChbcHJvY2Vzc0dy
b3VwLmRlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJvY2Vzc0dyb3VwV2ls
bENyZWF0ZUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NQbHVnSW46KV0pIHsKLSAgICAgICAgUmV0YWlu
UHRyPGlkPiBpbml0aWFsaXphdGlvblVzZXJEYXRhID0gW3Byb2Nlc3NHcm91cC5kZWxlZ2F0ZSBw
cm9jZXNzR3JvdXBXaWxsQ3JlYXRlQ29ubmVjdGlvblRvV2ViUHJvY2Vzc1BsdWdJbjpwcm9jZXNz
R3JvdXBdOworICAgIGF1dG8gZGVsZWdhdGUgPSBwcm9jZXNzR3JvdXAtPl9kZWxlZ2F0ZS5nZXQo
KTsKKworICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihwcm9j
ZXNzR3JvdXBXaWxsQ3JlYXRlQ29ubmVjdGlvblRvV2ViUHJvY2Vzc1BsdWdJbjopXSkgeworICAg
ICAgICBSZXRhaW5QdHI8aWQ+IGluaXRpYWxpemF0aW9uVXNlckRhdGEgPSBbZGVsZWdhdGUgcHJv
Y2Vzc0dyb3VwV2lsbENyZWF0ZUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NQbHVnSW46cHJvY2Vzc0dy
b3VwXTsKICAgICAgICAgUmVmUHRyPFdlYktpdDo6T2JqQ09iamVjdEdyYXBoPiB3a01lc3NhZ2VC
b2R5ID0gV2ViS2l0OjpPYmpDT2JqZWN0R3JhcGg6OmNyZWF0ZShpbml0aWFsaXphdGlvblVzZXJE
YXRhLmdldCgpKTsKICAgICAgICAgcmV0dXJuIChXS1R5cGVSZWYpd2tNZXNzYWdlQm9keS5yZWxl
YXNlKCkubGVha1JlZigpOwogICAgIH0KQEAgLTExNSw4ICsxMjIsMTAgQEAgc3RhdGljIHZvaWQg
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoV0tDb250ZXh0UmVmLCBXS1BhZ2VSZWYgcGFn
ZVJlZiwgV0tOYXYKICAgICAgICAgcmV0dXJuOwogCiAgICAgV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyICpjb250cm9sbGVyID0gd3JhcHBlcigqdG9JbXBsKHBhZ2VSZWYpKTsKLSAgICBpZiAo
W2NvbnRyb2xsZXIuaGlzdG9yeURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YTop
XSkKLSAgICAgICAgW2NvbnRyb2xsZXIuaGlzdG9yeURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXI6Y29udHJvbGxlciBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YTp3cmFwcGVy
KCp0b0ltcGwobmF2aWdhdGlvbkRhdGFSZWYpKV07CisgICAgYXV0byBoaXN0b3J5RGVsZWdhdGUg
PSBjb250cm9sbGVyLT5faGlzdG9yeURlbGVnYXRlLmdldCgpOworCisgICAgaWYgKFtoaXN0b3J5
RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250
cm9sbGVyOmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhOildKQorICAgICAgICBbaGlzdG9y
eURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6Y29udHJvbGxlciBkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YTp3cmFwcGVyKCp0b0ltcGwobmF2aWdhdGlvbkRhdGFSZWYpKV07
CiB9CiAKIHN0YXRpYyB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChXS0NvbnRleHRSZWYs
IFdLUGFnZVJlZiBwYWdlUmVmLCBXS1VSTFJlZiBzb3VyY2VVUkxSZWYsIFdLVVJMUmVmIGRlc3Rp
bmF0aW9uVVJMUmVmLCBXS0ZyYW1lUmVmIGZyYW1lUmVmLCBjb25zdCB2b2lkKikKQEAgLTEyNSw4
ICsxMzQsMTAgQEAgc3RhdGljIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdLQ29udGV4
dFJlZiwgV0tQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVmIHMKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpjb250cm9sbGVyID0gd3JhcHBlcigqdG9J
bXBsKHBhZ2VSZWYpKTsKLSAgICBpZiAoW2NvbnRyb2xsZXIuaGlzdG9yeURlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpkaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3RGcm9tVVJMOnRvVVJMOildKQotICAgICAgICBbY29udHJvbGxlci5o
aXN0b3J5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpjb250cm9sbGVyIGRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZyb21VUkw6d3JhcHBlcigqdG9JbXBsKHNvdXJjZVVSTFJlZikp
IHRvVVJMOndyYXBwZXIoKnRvSW1wbChkZXN0aW5hdGlvblVSTFJlZikpXTsKKyAgICBhdXRvIGhp
c3RvcnlEZWxlZ2F0ZSA9IGNvbnRyb2xsZXItPl9oaXN0b3J5RGVsZWdhdGUuZ2V0KCk7CisKKyAg
ICBpZiAoW2hpc3RvcnlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXI6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0RnJvbVVSTDp0b1VS
TDopXSkKKyAgICAgICAgW2hpc3RvcnlEZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVy
OmNvbnRyb2xsZXIgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0RnJvbVVSTDp3cmFwcGVyKCp0b0lt
cGwoc291cmNlVVJMUmVmKSkgdG9VUkw6d3JhcHBlcigqdG9JbXBsKGRlc3RpbmF0aW9uVVJMUmVm
KSldOwogfQogCiBzdGF0aWMgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoV0tDb250ZXh0
UmVmLCBXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYgc291cmNlVVJMUmVmLCBXS1VSTFJlZiBk
ZXN0aW5hdGlvblVSTFJlZiwgV0tGcmFtZVJlZiBmcmFtZVJlZiwgY29uc3Qgdm9pZCopCkBAIC0x
MzUsOCArMTQ2LDEwIEBAIHN0YXRpYyB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChXS0Nv
bnRleHRSZWYsIFdLUGFnZVJlZiBwYWdlUmVmLCBXS1VSTFJlZiBzCiAgICAgICAgIHJldHVybjsK
IAogICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqY29udHJvbGxlciA9IHdyYXBwZXIo
KnRvSW1wbChwYWdlUmVmKSk7Ci0gICAgaWYgKFtjb250cm9sbGVyLmhpc3RvcnlEZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6ZGlk
UGVyZm9ybVNlcnZlclJlZGlyZWN0RnJvbVVSTDp0b1VSTDopXSkKLSAgICAgICAgW2NvbnRyb2xs
ZXIuaGlzdG9yeURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6Y29udHJvbGxlciBk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3RGcm9tVVJMOndyYXBwZXIoKnRvSW1wbChzb3VyY2VVUkxS
ZWYpKSB0b1VSTDp3cmFwcGVyKCp0b0ltcGwoZGVzdGluYXRpb25VUkxSZWYpKV07CisgICAgYXV0
byBoaXN0b3J5RGVsZWdhdGUgPSBjb250cm9sbGVyLT5faGlzdG9yeURlbGVnYXRlLmdldCgpOwor
CisgICAgaWYgKFtoaXN0b3J5RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihi
cm93c2luZ0NvbnRleHRDb250cm9sbGVyOmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdEZyb21VUkw6
dG9VUkw6KV0pCisgICAgICAgIFtoaXN0b3J5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlcjpjb250cm9sbGVyIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdEZyb21VUkw6d3JhcHBlcigq
dG9JbXBsKHNvdXJjZVVSTFJlZikpIHRvVVJMOndyYXBwZXIoKnRvSW1wbChkZXN0aW5hdGlvblVS
TFJlZikpXTsKIH0KIAogc3RhdGljIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxlKFdLQ29udGV4
dFJlZiwgV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRpdGxlUmVmLCBXS1VSTFJlZiB1
cmxSZWYsIFdLRnJhbWVSZWYgZnJhbWVSZWYsIGNvbnN0IHZvaWQqKQpAQCAtMTQ1LDggKzE1OCwx
MCBAQCBzdGF0aWMgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoV0tDb250ZXh0UmVmLCBXS1Bh
Z2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgdAogICAgICAgICByZXR1cm47CiAKICAgICBXS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSB3cmFwcGVyKCp0b0ltcGwocGFn
ZVJlZikpOwotICAgIGlmIChbY29udHJvbGxlci5oaXN0b3J5RGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyOmRpZFVwZGF0ZUhpc3Rv
cnlUaXRsZTpmb3JVUkw6KV0pCi0gICAgICAgIFtjb250cm9sbGVyLmhpc3RvcnlEZWxlZ2F0ZSBi
cm93c2luZ0NvbnRleHRDb250cm9sbGVyOmNvbnRyb2xsZXIgZGlkVXBkYXRlSGlzdG9yeVRpdGxl
OndyYXBwZXIoKnRvSW1wbCh0aXRsZVJlZikpIGZvclVSTDp3cmFwcGVyKCp0b0ltcGwodXJsUmVm
KSldOworICAgIGF1dG8gaGlzdG9yeURlbGVnYXRlID0gY29udHJvbGxlci0+X2hpc3RvcnlEZWxl
Z2F0ZS5nZXQoKTsKKworICAgIGlmIChbaGlzdG9yeURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjpkaWRVcGRhdGVIaXN0b3J5VGl0
bGU6Zm9yVVJMOildKQorICAgICAgICBbaGlzdG9yeURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXI6Y29udHJvbGxlciBkaWRVcGRhdGVIaXN0b3J5VGl0bGU6d3JhcHBlcigqdG9JbXBs
KHRpdGxlUmVmKSkgZm9yVVJMOndyYXBwZXIoKnRvSW1wbCh1cmxSZWYpKV07CiB9CiAKIHN0YXRp
YyB2b2lkIHNldFVwSGlzdG9yeUNsaWVudChXS1Byb2Nlc3NHcm91cCAqcHJvY2Vzc0dyb3VwLCBX
S0NvbnRleHRSZWYgY29udGV4dFJlZikKQEAgLTE4OSw2ICsyMDQsMTYgQEAgc3RhdGljIHZvaWQg
c2V0VXBIaXN0b3J5Q2xpZW50KFdLUHJvY2Vzc0dyb3VwICpwcm9jZXNzR3JvdXAsIFdLQ29udGV4
dFJlZiBjb250ZXgKICAgICByZXR1cm4gc2VsZjsKIH0KIAorLSAoaWQgPFdLUHJvY2Vzc0dyb3Vw
RGVsZWdhdGU+KWRlbGVnYXRlCit7CisgICAgcmV0dXJuIF9kZWxlZ2F0ZS5nZXRBdXRvcmVsZWFz
ZWQoKTsKK30KKworLSAodm9pZClzZXREZWxlZ2F0ZTooaWQgPFdLUHJvY2Vzc0dyb3VwRGVsZWdh
dGU+KWRlbGVnYXRlCit7CisgICAgX2RlbGVnYXRlID0gZGVsZWdhdGU7Cit9CisKICNwcmFnbWEg
bWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgogCiAtIChBUEk6Ok9iamVjdCYp
X2FwaU9iamVjdAo=
</data>
<flag name="review"
          id="241991"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>