<?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>125022</bug_id>
          
          <creation_ts>2013-11-29 16:01:53 -0800</creation_ts>
          <short_desc>[Cocoa] Make WKBrowsingContextController work with WKObject wrapping</short_desc>
          <delta_ts>2013-11-29 16:24:54 -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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>955030</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-29 16:01:53 -0800</bug_when>
    <thetext>[Cocoa] Make WKBrowsingContextController work with WKObject wrapping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955031</commentid>
    <comment_count>1</comment_count>
      <attachid>218081</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-29 16:10:40 -0800</bug_when>
    <thetext>Created attachment 218081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955033</commentid>
    <comment_count>2</comment_count>
      <attachid>218081</attachid>
    <who name="">mitz</who>
    <bug_when>2013-11-29 16:22:53 -0800</bug_when>
    <thetext>Comment on attachment 218081
Patch

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

&gt; Source/WebKit2/ChangeLog:25
&gt; +        Lazily setup the load and policy clients only once a delegate has been set to allow

s/setup/set up/

&gt; Source/WebKit2/ChangeLog:35
&gt; +        Add wrapper() helper and declare conformance to the WKObject protocol. Remove no longer used
&gt; +        _initWithPageRef: and _browsingContextControllerForPageRef: helpers.

Exciting!

&gt; Source/WebKit2/ChangeLog:47
&gt; +        Stop caching the WKBrowsingContextController, as it no long makes sense since it is the same object
&gt; +        as the WebPageProxy.

Everything is falling into place!

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm:614
&gt; +- (void)_finishInitialization

Not part of the protocol so maybe reorder it out of this section.

&gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:51
&gt; +#import &quot;WKBrowsingContextControllerInternal.h&quot;

This should go before the &lt; imports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955034</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-29 16:24:54 -0800</bug_when>
    <thetext>Committed r159877: &lt;http://trac.webkit.org/changeset/159877&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218081</attachid>
            <date>2013-11-29 16:10:40 -0800</date>
            <delta_ts>2013-11-29 16:22:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125022-20131129161039.patch</filename>
            <type>text/plain</type>
            <size>23635</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTg3NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTExLTI5ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NvY29hXSBNYWtlIFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciB3b3JrIHdpdGggV0tPYmplY3Qgd3JhcHBpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTAyMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9i
amVjdC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5tbToKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIFdLUHJvY2Vzc0dyb3VwLgorCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHRPYmpDT2JqZWN0R3JhcGhEZWNvZGVySW1wbDo6ZGVjb2RlKToKKyAgICAgICAgUmVwbGFjZSBj
YWxsIHRvIF9icm93c2luZ0NvbnRleHRDb250cm9sbGVyRm9yUGFnZVJlZjogd2l0aCB3cmFwcGVy
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIubW06CisgICAgICAgIENvbnZlcnQgZnJvbSB3cmFwcGluZyB0aGUgQy1TUEkgdHlwZSB0
byBzdG9yaW5nIHRoZSBiaXRzIG9mIHRoZSB3cmFwcGVkIG9iamVjdCBpbmxpbmUuCisKKyAgICAg
ICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGRlYWxsb2NdKToKKyAgICAgICAgQWRk
IGV4cGxpY2l0IGRlc3RydWN0b3IgY2FsbC4KKworICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgc2V0TG9hZERlbGVnYXRlOl0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIgc2V0UG9saWN5RGVsZWdhdGU6XSk6CisgICAgICAgIExhemlseSBzZXR1
cCB0aGUgbG9hZCBhbmQgcG9saWN5IGNsaWVudHMgb25seSBvbmNlIGEgZGVsZWdhdGUgaGFzIGJl
ZW4gc2V0IHRvIGFsbG93CisgICAgICAgIGNvbnRpbnVlZCB1c2Ugb2YgdGhlIEMtU1BJIGNsaWVu
dHMgZm9yIFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyIF9maW5pc2hJbml0aWFsaXphdGlvbl0pOgorICAgICAgICBNb3ZlIHJlbWFpbmlu
ZyB3b3JrIHRoYXQgd2FzIGRvbmUgaW4gdGhlIGluaXRpYWxpemUgKHNldHRpbmcgdXAgdGhlIG9i
c2VydmVyKSBoZXJlLAorICAgICAgICBhbmQgaGF2ZSB0aGUgV2ViUGFnZVByb3h5IGNhbGwgaXQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlckludGVybmFsLmg6CisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIpOgorICAgICAgICBBZGQg
d3JhcHBlcigpIGhlbHBlciBhbmQgZGVjbGFyZSBjb25mb3JtYW5jZSB0byB0aGUgV0tPYmplY3Qg
cHJvdG9jb2wuIFJlbW92ZSBubyBsb25nZXIgdXNlZAorICAgICAgICBfaW5pdFdpdGhQYWdlUmVm
OiBhbmQgX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQYWdlUmVmOiBoZWxwZXJzLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAgICAgICAg
KGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKToKKyAgICAgICAgKGRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdCk6CisgICAgICAgIChkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QpOgorICAgICAg
ICAoZGlkVXBkYXRlSGlzdG9yeVRpdGxlKToKKyAgICAgICAgU3dpdGNoIHRvIHVzaW5nIHdyYXBw
ZXIoKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLQ29udGVudFZpZXcubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICBTdG9wIGNhY2hp
bmcgdGhlIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciwgYXMgaXQgbm8gbG9uZyBtYWtlcyBz
ZW5zZSBzaW5jZSBpdCBpcyB0aGUgc2FtZSBvYmplY3QKKyAgICAgICAgYXMgdGhlIFdlYlBhZ2VQ
cm94eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
IEluZm9ybSB0aGUgd3JhcHBlciB0aGF0IGl0IGlzIHNhZmUgdG8gZmluaXNoIGluaXRpYWxpemF0
aW9uLgorCiAyMDEzLTExLTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBBZGQgYSB3YXkgdG8gcmVjb3ZlciBmcm9tIGxvYWQgZXJyb3JzCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0JKHJldmlzaW9uIDE1OTg3
NSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDE0ICszMCwxNSBAQAogCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJkTGlzdElu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS0JhY2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5oIgorI2lt
cG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
QnJvd3NpbmdDb250ZXh0R3JvdXBJbnRlcm5hbC5oIgotI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tOU0FycmF5LmgiCiAjaW1wb3J0ICJXS05TRGljdGlvbmFy
eS5oIgogI2ltcG9ydCAiV0tOU0Vycm9yLmgiCiAjaW1wb3J0ICJXS05TU3RyaW5nLmgiCiAjaW1w
b3J0ICJXS05TVVJMLmgiCiAjaW1wb3J0ICJXS05hdmlnYXRpb25EYXRhSW50ZXJuYWwuaCIKKyNp
bXBvcnQgIldLUHJvY2Vzc0dyb3VwSW50ZXJuYWwuaCIKIAogbmFtZXNwYWNlIEFQSSB7CiAKQEAg
LTg4LDYgKzg5LDEwIEBAIHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXAK
ICAgICAgICAgd3JhcHBlciA9IFtXS05hdmlnYXRpb25EYXRhIGFsbG9jXTsKICAgICAgICAgYnJl
YWs7CiAKKyAgICBjYXNlIFR5cGU6OlBhZ2U6CisgICAgICAgIHdyYXBwZXIgPSBbV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyIGFsbG9jXTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFR5
cGU6OlBhZ2VHcm91cDoKICAgICAgICAgd3JhcHBlciA9IFtXS0Jyb3dzaW5nQ29udGV4dEdyb3Vw
IGFsbG9jXTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L09iakNPYmplY3RHcmFwaENvZGVycy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL09iakNPYmplY3RHcmFwaENvZGVycy5tbQkocmV2aXNpb24gMTU5ODc1KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGhDb2RlcnMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKIC8vIEZvciBVSVByb2Nlc3Mgc2lkZSBlbmNvZGlu
Zy9kZWNvZGluZwogI2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgotI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgi
CiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgpA
QCAtMzQzLDcgKzM0Miw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGlmICghd2ViUGFnZSkKICAg
ICAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBbTlNOdWxsIG51bGxdOwogICAgICAgICAgICAg
ZWxzZSAKLSAgICAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBbV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyIF9icm93c2luZ0NvbnRleHRDb250cm9sbGVyRm9yUGFnZVJlZjp0b0FQSSh3ZWJQ
YWdlKV07CisgICAgICAgICAgICAgICAgY29kZXIubV9yb290ID0gd3JhcHBlcigqd2ViUGFnZSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdLVHlwZVJlZldy
YXBwZXJUeXBlOiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQkocmV2
aXNpb24gMTU5ODc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwMiwyNCArMTAy
LDIzIEBAIE5TU3RyaW5nICogY29uc3QgV0tBY3Rpb25PcmlnaW5hdGluZ0ZyYW0KIE5TU3RyaW5n
ICogY29uc3QgV0tBY3Rpb25DYW5TaG93TUlNRVR5cGVLZXkgPSBAIldLQWN0aW9uQ2FuU2hvd01J
TUVUeXBlS2V5IjsKIAogQGltcGxlbWVudGF0aW9uIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciB7Ci0gICAgLy8gVW5kZXJseWluZyBXS1BhZ2VSZWYuCi0gICAgV0tSZXRhaW5QdHI8V0tQYWdl
UmVmPiBfcGFnZVJlZjsKLQorICAgIHN0ZDo6YWxpZ25lZF9zdG9yYWdlPHNpemVvZihXZWJQYWdl
UHJveHkpLCBzdGQ6OmFsaWdubWVudF9vZjxXZWJQYWdlUHJveHk+Ojp2YWx1ZT46OnR5cGUgX3Bh
Z2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VMb2FkU3RhdGVPYnNlcnZlcj4gX3BhZ2VMb2Fk
U3RhdGVPYnNlcnZlcjsKIH0KIAorQHN5bnRoZXNpemUgbG9hZERlbGVnYXRlID0gX2xvYWREZWxl
Z2F0ZTsKK0BzeW50aGVzaXplIHBvbGljeURlbGVnYXRlID0gX3BvbGljeURlbGVnYXRlOworCiAt
ICh2b2lkKWRlYWxsb2MKIHsKLSAgICB0b0ltcGwoX3BhZ2VSZWYuZ2V0KCkpLT5wYWdlTG9hZFN0
YXRlKCkucmVtb3ZlT2JzZXJ2ZXIoKl9wYWdlTG9hZFN0YXRlT2JzZXJ2ZXIpOwotICAgIFdLUGFn
ZVNldFBhZ2VMb2FkZXJDbGllbnQoX3BhZ2VSZWYuZ2V0KCksIG51bGxwdHIpOwotICAgIFdLUGFn
ZVNldFBhZ2VQb2xpY3lDbGllbnQoX3BhZ2VSZWYuZ2V0KCksIG51bGxwdHIpOworICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKS0+fldlYlBhZ2VQcm94eSgpOwogCiAg
ICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCiAtIChXS1Byb2Nlc3NHcm91cCAqKXByb2Nlc3NHcm91
cAogewotICAgIFdlYkNvbnRleHQqIGNvbnRleHQgPSB0b0ltcGwoX3BhZ2VSZWYuZ2V0KCkpLT5w
cm9jZXNzKCktPmNvbnRleHQoKTsKKyAgICBXZWJDb250ZXh0KiBjb250ZXh0ID0gcmVpbnRlcnBy
ZXRfY2FzdDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpLT5wcm9jZXNzKCktPmNvbnRleHQoKTsKICAg
ICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJuIHdyYXBwZXIo
KmNvbnRleHQpOwpAQCAtMTI3LDcgKzEyNiw3IEBAIC0gKFdLUHJvY2Vzc0dyb3VwICopcHJvY2Vz
c0dyb3VwCiAKIC0gKFdLQnJvd3NpbmdDb250ZXh0R3JvdXAgKilicm93c2luZ0NvbnRleHRHcm91
cAogewotICAgIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwID0gdG9JbXBsKF9wYWdlUmVmLmdldCgp
KS0+cGFnZUdyb3VwKCk7CisgICAgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAgPSByZWludGVycHJl
dF9jYXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSktPnBhZ2VHcm91cCgpOwogICAgIGlmICghcGFn
ZUdyb3VwKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiB3cmFwcGVyKCpwYWdlR3Jv
dXApOwpAQCAtMTM1LDcgKzEzNCw3IEBAIC0gKFdLQnJvd3NpbmdDb250ZXh0R3JvdXAgKilicm93
c2luZ0NvbnQKIAogLSAoV0tQYWdlUmVmKV9wYWdlUmVmCiB7Ci0gICAgcmV0dXJuIF9wYWdlUmVm
LmdldCgpOworICAgIHJldHVybiB0b0FQSShyZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+
KCZfcGFnZSkpOwogfQogCiAjcHJhZ21hIG1hcmsgTG9hZGluZwpAQCAtMTczLDcgKzE3Miw3IEBA
IC0gKHZvaWQpbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXUKICAgICBpZiAodXNlckRh
dGEpCiAgICAgICAgIHdrVXNlckRhdGEgPSBPYmpDT2JqZWN0R3JhcGg6OmNyZWF0ZSh1c2VyRGF0
YSk7CiAKLSAgICBXS1BhZ2VMb2FkVVJMUmVxdWVzdFdpdGhVc2VyRGF0YShfcGFnZVJlZi5nZXQo
KSwgd2tSZXF1ZXN0LmdldCgpLCAoV0tUeXBlUmVmKXdrVXNlckRhdGEuZ2V0KCkpOworICAgIFdL
UGFnZUxvYWRVUkxSZXF1ZXN0V2l0aFVzZXJEYXRhKHRvQVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
UGFnZVByb3h5Kj4oJl9wYWdlKSksIHdrUmVxdWVzdC5nZXQoKSwgKFdLVHlwZVJlZil3a1VzZXJE
YXRhLmdldCgpKTsKIH0KIAogLSAodm9pZClsb2FkRmlsZVVSTDooTlNVUkwgKilVUkwgcmVzdHJp
Y3RUb0ZpbGVzV2l0aGluOihOU1VSTCAqKWFsbG93ZWREaXJlY3RvcnkKQEAgLTE5Myw3ICsxOTIs
NyBAQCAtICh2b2lkKWxvYWRGaWxlVVJMOihOU1VSTCAqKVVSTCByZXN0cmljCiAgICAgaWYgKHVz
ZXJEYXRhKQogICAgICAgICB3a1VzZXJEYXRhID0gT2JqQ09iamVjdEdyYXBoOjpjcmVhdGUodXNl
ckRhdGEpOwogCi0gICAgV0tQYWdlTG9hZEZpbGVXaXRoVXNlckRhdGEoX3BhZ2VSZWYuZ2V0KCks
IHdrVVJMLmdldCgpLCB3a0FsbG93ZWREaXJlY3RvcnkuZ2V0KCksIChXS1R5cGVSZWYpd2tVc2Vy
RGF0YS5nZXQoKSk7CisgICAgV0tQYWdlTG9hZEZpbGVXaXRoVXNlckRhdGEodG9BUEkocmVpbnRl
cnByZXRfY2FzdDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpKSwgd2tVUkwuZ2V0KCksIHdrQWxsb3dl
ZERpcmVjdG9yeS5nZXQoKSwgKFdLVHlwZVJlZil3a1VzZXJEYXRhLmdldCgpKTsKIH0KIAogLSAo
dm9pZClsb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilIVE1MU3RyaW5nIGJhc2VVUkw6KE5TVVJM
ICopYmFzZVVSTApAQCAtMjE1LDcgKzIxNCw3IEBAIC0gKHZvaWQpbG9hZEhUTUxTdHJpbmc6KE5T
U3RyaW5nICopSFRNTFMKICAgICBpZiAodXNlckRhdGEpCiAgICAgICAgIHdrVXNlckRhdGEgPSBP
YmpDT2JqZWN0R3JhcGg6OmNyZWF0ZSh1c2VyRGF0YSk7CiAKLSAgICBXS1BhZ2VMb2FkSFRNTFN0
cmluZ1dpdGhVc2VyRGF0YShfcGFnZVJlZi5nZXQoKSwgd2tIVE1MU3RyaW5nLmdldCgpLCB3a0Jh
c2VVUkwuZ2V0KCksIChXS1R5cGVSZWYpd2tVc2VyRGF0YS5nZXQoKSk7CisgICAgV0tQYWdlTG9h
ZEhUTUxTdHJpbmdXaXRoVXNlckRhdGEodG9BUEkocmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlUHJv
eHkqPigmX3BhZ2UpKSwgd2tIVE1MU3RyaW5nLmdldCgpLCB3a0Jhc2VVUkwuZ2V0KCksIChXS1R5
cGVSZWYpd2tVc2VyRGF0YS5nZXQoKSk7CiB9CiAKIC0gKHZvaWQpbG9hZEFsdGVybmF0ZUhUTUxT
dHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBmb3JVbnJl
YWNoYWJsZVVSTDooTlNVUkwgKil1bnJlYWNoYWJsZVVSTApAQCAtMjI2LDcgKzIyNSw3IEBAIC0g
KHZvaWQpbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmc6KE5TU3RyaW4KICAgICBDU3RyaW5nIHVucmVh
Y2hhYmxlVVJMU3RyaW5nOwogICAgIGdldFVSTEJ5dGVzKChDRlVSTFJlZil1bnJlYWNoYWJsZVVS
TCwgdW5yZWFjaGFibGVVUkxTdHJpbmcpOwogCi0gICAgdG9JbXBsKF9wYWdlUmVmLmdldCgpKS0+
bG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcoc3RyaW5nLCBTdHJpbmc6OmZyb21VVEY4KGJhc2VVUkxT
dHJpbmcpLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVVJMU3RyaW5nKSk7CisgICAgcmVp
bnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpLT5sb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZyhzdHJpbmcsIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSTFN0cmluZyksIFN0cmluZzo6ZnJv
bVVURjgodW5yZWFjaGFibGVVUkxTdHJpbmcpKTsKIH0KIAogLSAodm9pZClsb2FkRGF0YTooTlNE
YXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSB0ZXh0RW5jb2RpbmdOYW1l
OihOU1N0cmluZyAqKWVuY29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwKQEAgLTI2
Myw1NCArMjYyLDU0IEBAIC0gKHZvaWQpbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGUK
ICAgICBpZiAodXNlckRhdGEpCiAgICAgICAgIHdrVXNlckRhdGEgPSBPYmpDT2JqZWN0R3JhcGg6
OmNyZWF0ZSh1c2VyRGF0YSk7CiAKLSAgICBXS1BhZ2VMb2FkRGF0YVdpdGhVc2VyRGF0YShfcGFn
ZVJlZi5nZXQoKSwgdG9BUEkod2tEYXRhLmdldCgpKSwgd2tNSU1FVHlwZS5nZXQoKSwgd2tFbmNv
ZGluZ05hbWUuZ2V0KCksIHdrQmFzZVVSTC5nZXQoKSwgKFdLVHlwZVJlZil3a1VzZXJEYXRhLmdl
dCgpKTsKKyAgICBXS1BhZ2VMb2FkRGF0YVdpdGhVc2VyRGF0YSh0b0FQSShyZWludGVycHJldF9j
YXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSkpLCB0b0FQSSh3a0RhdGEuZ2V0KCkpLCB3a01JTUVU
eXBlLmdldCgpLCB3a0VuY29kaW5nTmFtZS5nZXQoKSwgd2tCYXNlVVJMLmdldCgpLCAoV0tUeXBl
UmVmKXdrVXNlckRhdGEuZ2V0KCkpOwogfQogCiAtICh2b2lkKXN0b3BMb2FkaW5nCiB7Ci0gICAg
V0tQYWdlU3RvcExvYWRpbmcoX3BhZ2VSZWYuZ2V0KCkpOworICAgIFdLUGFnZVN0b3BMb2FkaW5n
KHRvQVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSkpOwogfQogCiAt
ICh2b2lkKXJlbG9hZAogewotICAgIFdLUGFnZVJlbG9hZChfcGFnZVJlZi5nZXQoKSk7CisgICAg
V0tQYWdlUmVsb2FkKHRvQVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdl
KSkpOwogfQogCiAtICh2b2lkKXJlbG9hZEZyb21PcmlnaW4KIHsKLSAgICBXS1BhZ2VSZWxvYWRG
cm9tT3JpZ2luKF9wYWdlUmVmLmdldCgpKTsKKyAgICBXS1BhZ2VSZWxvYWRGcm9tT3JpZ2luKHRv
QVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSkpOwogfQogCiAjcHJh
Z21hIG1hcmsgQmFjay9Gb3J3YXJkCiAKIC0gKHZvaWQpZ29Gb3J3YXJkCiB7Ci0gICAgV0tQYWdl
R29Gb3J3YXJkKF9wYWdlUmVmLmdldCgpKTsKKyAgICBXS1BhZ2VHb0ZvcndhcmQodG9BUEkocmVp
bnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpKSk7CiB9CiAKIC0gKEJPT0wpY2Fu
R29Gb3J3YXJkCiB7Ci0gICAgcmV0dXJuIFdLUGFnZUNhbkdvRm9yd2FyZChfcGFnZVJlZi5nZXQo
KSk7CisgICAgcmV0dXJuIFdLUGFnZUNhbkdvRm9yd2FyZCh0b0FQSShyZWludGVycHJldF9jYXN0
PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSkpKTsKIH0KIAogLSAodm9pZClnb0JhY2sKIHsKLSAgICBX
S1BhZ2VHb0JhY2soX3BhZ2VSZWYuZ2V0KCkpOworICAgIFdLUGFnZUdvQmFjayh0b0FQSShyZWlu
dGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSkpKTsKIH0KIAogLSAoQk9PTCljYW5H
b0JhY2sKIHsKLSAgICByZXR1cm4gV0tQYWdlQ2FuR29CYWNrKF9wYWdlUmVmLmdldCgpKTsKKyAg
ICByZXR1cm4gV0tQYWdlQ2FuR29CYWNrKHRvQVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVBy
b3h5Kj4oJl9wYWdlKSkpOwogfQogCiAtICh2b2lkKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOihX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtCiB7Ci0gICAgdG9JbXBsKF9wYWdlUmVmLmdldCgp
KS0+Z29Ub0JhY2tGb3J3YXJkSXRlbSgmaXRlbS5faXRlbSk7CisgICAgcmVpbnRlcnByZXRfY2Fz
dDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpLT5nb1RvQmFja0ZvcndhcmRJdGVtKCZpdGVtLl9pdGVt
KTsKIH0KIAogLSAoV0tCYWNrRm9yd2FyZExpc3QgKiliYWNrRm9yd2FyZExpc3QKIHsKLSAgICBX
ZWJCYWNrRm9yd2FyZExpc3QqIGxpc3QgPSB0b0ltcGwoX3BhZ2VSZWYuZ2V0KCkpLT5iYWNrRm9y
d2FyZExpc3QoKTsKKyAgICBXZWJCYWNrRm9yd2FyZExpc3QqIGxpc3QgPSByZWludGVycHJldF9j
YXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSktPmJhY2tGb3J3YXJkTGlzdCgpOwogICAgIGlmICgh
bGlzdCkKICAgICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMzIxLDU2ICszMjAsNjIgQEAgLSAoV0tC
YWNrRm9yd2FyZExpc3QgKiliYWNrRm9yd2FyZExpc3QKIAogLSAoTlNVUkwgKilhY3RpdmVVUkwK
IHsKLSAgICByZXR1cm4gYXV0b3JlbGVhc2VkKFdLUGFnZUNvcHlBY3RpdmVVUkwoX3BhZ2VSZWYu
Z2V0KCkpKTsKKyAgICByZXR1cm4gYXV0b3JlbGVhc2VkKFdLUGFnZUNvcHlBY3RpdmVVUkwodG9B
UEkocmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpKSkpOwogfQogCiAtIChO
U1VSTCAqKXByb3Zpc2lvbmFsVVJMCiB7Ci0gICAgcmV0dXJuIGF1dG9yZWxlYXNlZChXS1BhZ2VD
b3B5UHJvdmlzaW9uYWxVUkwoX3BhZ2VSZWYuZ2V0KCkpKTsKKyAgICByZXR1cm4gYXV0b3JlbGVh
c2VkKFdLUGFnZUNvcHlQcm92aXNpb25hbFVSTCh0b0FQSShyZWludGVycHJldF9jYXN0PFdlYlBh
Z2VQcm94eSo+KCZfcGFnZSkpKSk7CiB9CiAKIC0gKE5TVVJMICopY29tbWl0dGVkVVJMCiB7Ci0g
ICAgcmV0dXJuIGF1dG9yZWxlYXNlZChXS1BhZ2VDb3B5Q29tbWl0dGVkVVJMKF9wYWdlUmVmLmdl
dCgpKSk7CisgICAgcmV0dXJuIGF1dG9yZWxlYXNlZChXS1BhZ2VDb3B5Q29tbWl0dGVkVVJMKHRv
QVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSkpKTsKIH0KIAogLSAo
TlNVUkwgKil1bnJlYWNoYWJsZVVSTAogewotICAgIHJldHVybiBbTlNVUkwgX3dlYl9VUkxXaXRo
V1RGU3RyaW5nOnRvSW1wbChfcGFnZVJlZi5nZXQoKSktPnBhZ2VMb2FkU3RhdGUoKS51bnJlYWNo
YWJsZVVSTCgpIHJlbGF0aXZlVG9VUkw6bmlsXTsKKyAgICByZXR1cm4gW05TVVJMIF93ZWJfVVJM
V2l0aFdURlN0cmluZzpyZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSktPnBh
Z2VMb2FkU3RhdGUoKS51bnJlYWNoYWJsZVVSTCgpIHJlbGF0aXZlVG9VUkw6bmlsXTsKIH0KIAog
LSAoZG91YmxlKWVzdGltYXRlZFByb2dyZXNzCiB7Ci0gICAgcmV0dXJuIHRvSW1wbChfcGFnZVJl
Zi5nZXQoKSktPmVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKS0+ZXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0KIAogI3By
YWdtYSBtYXJrIEFjdGl2ZSBEb2N1bWVudCBJbnRyb3NwZWN0aW9uCiAKIC0gKE5TU3RyaW5nICop
dGl0bGUKIHsKLSAgICByZXR1cm4gYXV0b3JlbGVhc2VkKFdLUGFnZUNvcHlUaXRsZShfcGFnZVJl
Zi5nZXQoKSkpOworICAgIHJldHVybiBhdXRvcmVsZWFzZWQoV0tQYWdlQ29weVRpdGxlKHRvQVBJ
KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSkpKTsKIH0KIAogI3ByYWdt
YSBtYXJrIFpvb20KIAogLSAoQ0dGbG9hdCl0ZXh0Wm9vbQogewotICAgIHJldHVybiBXS1BhZ2VH
ZXRUZXh0Wm9vbUZhY3RvcihfcGFnZVJlZi5nZXQoKSk7CisgICAgcmV0dXJuIFdLUGFnZUdldFRl
eHRab29tRmFjdG9yKHRvQVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdl
KSkpOwogfQogCiAtICh2b2lkKXNldFRleHRab29tOihDR0Zsb2F0KXRleHRab29tCiB7Ci0gICAg
cmV0dXJuIFdLUGFnZVNldFRleHRab29tRmFjdG9yKF9wYWdlUmVmLmdldCgpLCB0ZXh0Wm9vbSk7
CisgICAgcmV0dXJuIFdLUGFnZVNldFRleHRab29tRmFjdG9yKHRvQVBJKHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSksIHRleHRab29tKTsKIH0KIAogLSAoQ0dGbG9hdClw
YWdlWm9vbQogewotICAgIHJldHVybiBXS1BhZ2VHZXRQYWdlWm9vbUZhY3RvcihfcGFnZVJlZi5n
ZXQoKSk7CisgICAgcmV0dXJuIFdLUGFnZUdldFBhZ2Vab29tRmFjdG9yKHRvQVBJKHJlaW50ZXJw
cmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSkpOwogfQogCiAtICh2b2lkKXNldFBhZ2Va
b29tOihDR0Zsb2F0KXBhZ2Vab29tCiB7Ci0gICAgcmV0dXJuIFdLUGFnZVNldFBhZ2Vab29tRmFj
dG9yKF9wYWdlUmVmLmdldCgpLCBwYWdlWm9vbSk7CisgICAgcmV0dXJuIFdLUGFnZVNldFBhZ2Va
b29tRmFjdG9yKHRvQVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSks
IHBhZ2Vab29tKTsKK30KKworKyAoTlNNdXRhYmxlU2V0ICopY3VzdG9tU2NoZW1lcworeworICAg
IHN0YXRpYyBOU011dGFibGVTZXQgKmN1c3RvbVNjaGVtZXMgPSBbW05TTXV0YWJsZVNldCBhbGxv
Y10gaW5pdF07CisgICAgcmV0dXJuIGN1c3RvbVNjaGVtZXM7CiB9CiAKIHN0YXRpYyB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTU4
MSwzNiArNTg2LDM3IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNsaWVudChXS0Jyb3cK
ICAgICBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KHBhZ2VSZWYsICZwb2xpY3lDbGllbnQpOwog
fQogCi0vKiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGFzc29jaWF0ZSB2aWV3LiAq
LwotCi0tIChpZClfaW5pdFdpdGhQYWdlUmVmOihXS1BhZ2VSZWYpcGFnZVJlZgorLSAodm9pZClz
ZXRMb2FkRGVsZWdhdGU6KGlkPFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlPilsb2FkRGVs
ZWdhdGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAgIGlmICghc2VsZikKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLQotICAgIF9wYWdlUmVmID0gcGFnZVJlZjsKLQotICAgIF9wYWdlTG9h
ZFN0YXRlT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VMb2FkU3RhdGVPYnNlcnZlcj4o
c2VsZik7Ci0gICAgdG9JbXBsKF9wYWdlUmVmLmdldCgpKS0+cGFnZUxvYWRTdGF0ZSgpLmFkZE9i
c2VydmVyKCpfcGFnZUxvYWRTdGF0ZU9ic2VydmVyKTsKLQotICAgIHNldFVwUGFnZUxvYWRlckNs
aWVudChzZWxmLCBwYWdlUmVmKTsKLSAgICBzZXRVcFBhZ2VQb2xpY3lDbGllbnQoc2VsZiwgcGFn
ZVJlZik7CisgICAgX2xvYWREZWxlZ2F0ZSA9IGxvYWREZWxlZ2F0ZTsKKyAgICBpZiAoX2xvYWRE
ZWxlZ2F0ZSkKKyAgICAgICAgc2V0VXBQYWdlTG9hZGVyQ2xpZW50KHNlbGYsIHRvQVBJKHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSkpOworICAgIGVsc2UKKyAgICAgICAg
V0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCh0b0FQSShyZWludGVycHJldF9jYXN0PFdlYlBhZ2VQ
cm94eSo+KCZfcGFnZSkpLCBudWxscHRyKTs7Cit9CiAKLSAgICByZXR1cm4gc2VsZjsKKy0odm9p
ZClzZXRQb2xpY3lEZWxlZ2F0ZTooaWQ8V0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZT4p
cG9saWN5RGVsZWdhdGUKK3sKKyAgICBfcG9saWN5RGVsZWdhdGUgPSBwb2xpY3lEZWxlZ2F0ZTsK
KyAgICBpZiAoX3BvbGljeURlbGVnYXRlKQorICAgICAgICBzZXRVcFBhZ2VQb2xpY3lDbGllbnQo
c2VsZiwgdG9BUEkocmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpKSk7Cisg
ICAgZWxzZQorICAgICAgICBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KHRvQVBJKHJlaW50ZXJw
cmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKSksIG51bGxwdHIpOzsKIH0KIAotKyAoV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyICopX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQ
YWdlUmVmOihXS1BhZ2VSZWYpcGFnZVJlZgorI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29s
IGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0CiB7Ci0gICAgcmV0
dXJuIChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilXZWJLaXQ6OnRvSW1wbChwYWdlUmVm
KS0+bG9hZGVyQ2xpZW50KCkuY2xpZW50KCkuY2xpZW50SW5mbzsKKyAgICByZXR1cm4gKnJlaW50
ZXJwcmV0X2Nhc3Q8QVBJOjpPYmplY3QqPigmX3BhZ2UpOwogfQogCi0rIChOU011dGFibGVTZXQg
KiljdXN0b21TY2hlbWVzCistICh2b2lkKV9maW5pc2hJbml0aWFsaXphdGlvbgogewotICAgIHN0
YXRpYyBOU011dGFibGVTZXQgKmN1c3RvbVNjaGVtZXMgPSBbW05TTXV0YWJsZVNldCBhbGxvY10g
aW5pdF07Ci0gICAgcmV0dXJuIGN1c3RvbVNjaGVtZXM7CisgICAgX3BhZ2VMb2FkU3RhdGVPYnNl
cnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZUxvYWRTdGF0ZU9ic2VydmVyPihzZWxmKTsKKyAg
ICByZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSktPnBhZ2VMb2FkU3RhdGUo
KS5hZGRPYnNlcnZlcigqX3BhZ2VMb2FkU3RhdGVPYnNlcnZlcik7CiB9Ci0gCisKIEBlbmQKIAog
QGltcGxlbWVudGF0aW9uIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAoUHJpdmF0ZSkKQEAg
LTYzOCwxMiArNjQ0LDEyIEBAIC0gKHZvaWQpc2V0UGFnaW5hdGlvbk1vZGU6KFdLQnJvd3NpbmdD
b24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdLUGFnZVNldFBhZ2luYXRpb25Nb2Rl
KF9wYWdlUmVmLmdldCgpLCBtb2RlKTsKKyAgICBXS1BhZ2VTZXRQYWdpbmF0aW9uTW9kZSh0b0FQ
SShyZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSkpLCBtb2RlKTsKIH0KIAog
LSAoV0tCcm93c2luZ0NvbnRleHRQYWdpbmF0aW9uTW9kZSlwYWdpbmF0aW9uTW9kZQogewotICAg
IHN3aXRjaCAoV0tQYWdlR2V0UGFnaW5hdGlvbk1vZGUoX3BhZ2VSZWYuZ2V0KCkpKSB7CisgICAg
c3dpdGNoIChXS1BhZ2VHZXRQYWdpbmF0aW9uTW9kZSh0b0FQSShyZWludGVycHJldF9jYXN0PFdl
YlBhZ2VQcm94eSo+KCZfcGFnZSkpKSkgewogICAgIGNhc2Uga1dLUGFnaW5hdGlvbk1vZGVVbnBh
Z2luYXRlZDoKICAgICAgICAgcmV0dXJuIFdLUGFnaW5hdGlvbk1vZGVVbnBhZ2luYXRlZDsKICAg
ICBjYXNlIGtXS1BhZ2luYXRpb25Nb2RlTGVmdFRvUmlnaHQ6CkBAIC02NjIsNDIgKzY2OCw0MiBA
QCAtIChXS0Jyb3dzaW5nQ29udGV4dFBhZ2luYXRpb25Nb2RlKXBhZ2luCiAKIC0gKHZvaWQpc2V0
UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1uczooQk9PTCliZWhhdmVzTGlrZUNvbHVtbnMKIHsK
LSAgICBXS1BhZ2VTZXRQYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKF9wYWdlUmVmLmdldCgp
LCBiZWhhdmVzTGlrZUNvbHVtbnMpOworICAgIFdLUGFnZVNldFBhZ2luYXRpb25CZWhhdmVzTGlr
ZUNvbHVtbnModG9BUEkocmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkqPigmX3BhZ2UpKSwg
YmVoYXZlc0xpa2VDb2x1bW5zKTsKIH0KIAogLSAoQk9PTClwYWdpbmF0aW9uQmVoYXZlc0xpa2VD
b2x1bW5zCiB7Ci0gICAgcmV0dXJuIFdLUGFnZUdldFBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVt
bnMoX3BhZ2VSZWYuZ2V0KCkpOworICAgIHJldHVybiBXS1BhZ2VHZXRQYWdpbmF0aW9uQmVoYXZl
c0xpa2VDb2x1bW5zKHRvQVBJKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdl
KSkpOwogfQogCiAtICh2b2lkKXNldFBhZ2VMZW5ndGg6KENHRmxvYXQpcGFnZUxlbmd0aAogewot
ICAgIFdLUGFnZVNldFBhZ2VMZW5ndGgoX3BhZ2VSZWYuZ2V0KCksIHBhZ2VMZW5ndGgpOworICAg
IFdLUGFnZVNldFBhZ2VMZW5ndGgodG9BUEkocmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkq
PigmX3BhZ2UpKSwgcGFnZUxlbmd0aCk7CiB9CiAKIC0gKENHRmxvYXQpcGFnZUxlbmd0aAogewot
ICAgIHJldHVybiBXS1BhZ2VHZXRQYWdlTGVuZ3RoKF9wYWdlUmVmLmdldCgpKTsKKyAgICByZXR1
cm4gV0tQYWdlR2V0UGFnZUxlbmd0aCh0b0FQSShyZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94
eSo+KCZfcGFnZSkpKTsKIH0KIAogLSAodm9pZClzZXRHYXBCZXR3ZWVuUGFnZXM6KENHRmxvYXQp
Z2FwQmV0d2VlblBhZ2VzCiB7Ci0gICAgV0tQYWdlU2V0R2FwQmV0d2VlblBhZ2VzKF9wYWdlUmVm
LmdldCgpLCBnYXBCZXR3ZWVuUGFnZXMpOworICAgIFdLUGFnZVNldEdhcEJldHdlZW5QYWdlcyh0
b0FQSShyZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSkpLCBnYXBCZXR3ZWVu
UGFnZXMpOwogfQogCiAtIChDR0Zsb2F0KWdhcEJldHdlZW5QYWdlcwogewotICAgIHJldHVybiBX
S1BhZ2VHZXRHYXBCZXR3ZWVuUGFnZXMoX3BhZ2VSZWYuZ2V0KCkpOworICAgIHJldHVybiBXS1Bh
Z2VHZXRHYXBCZXR3ZWVuUGFnZXModG9BUEkocmVpbnRlcnByZXRfY2FzdDxXZWJQYWdlUHJveHkq
PigmX3BhZ2UpKSk7CiB9CiAKIC0gKE5TVUludGVnZXIpcGFnZUNvdW50CiB7Ci0gICAgcmV0dXJu
IFdLUGFnZUdldFBhZ2VDb3VudChfcGFnZVJlZi5nZXQoKSk7CisgICAgcmV0dXJuIFdLUGFnZUdl
dFBhZ2VDb3VudCh0b0FQSShyZWludGVycHJldF9jYXN0PFdlYlBhZ2VQcm94eSo+KCZfcGFnZSkp
KTsKIH0KIAogLSAoV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1
cm4gW1tbV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgYWxsb2NdIF9pbml0V2l0aFBhZ2VJRDp0b0lt
cGwoX3BhZ2VSZWYuZ2V0KCkpLT5wYWdlSUQoKV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBb
W1tXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBhbGxvY10gX2luaXRXaXRoUGFnZUlEOnJlaW50ZXJw
cmV0X2Nhc3Q8V2ViUGFnZVByb3h5Kj4oJl9wYWdlKS0+cGFnZUlEKCldIGF1dG9yZWxlYXNlXTsK
IH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50
ZXJuYWwuaAkocmV2aXNpb24gMTU5ODc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNywxNCArMjcsMjIgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLUBpbnRlcmZh
Y2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICgpCisjaW1wb3J0ICJXS09iamVjdC5oIgor
I2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKLS8qIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVk
IGZyb20gYXNzb2NpYXRlIHZpZXcuICovCi0tIChpZClfaW5pdFdpdGhQYWdlUmVmOihXS1BhZ2VS
ZWYpcGFnZVJlZjsKK25hbWVzcGFjZSBXZWJLaXQgewogCi0vKiBSZXR1cm5zIGEgV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgV0tQYWdlUmVmLiAqLwotKyAo
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJG
b3JQYWdlUmVmOihXS1BhZ2VSZWYpcGFnZVJlZjsKK2lubGluZSBXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgKndyYXBwZXIoV2ViUGFnZVByb3h5JiBwYWdlKQoreworICAgIEFTU0VSVChbcGFn
ZS53cmFwcGVyKCkgaXNLaW5kT2ZDbGFzczpbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGNs
YXNzXV0pOworICAgIHJldHVybiAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopcGFnZS53
cmFwcGVyKCk7Cit9CiAKK30KKworQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgKCkgPFdLT2JqZWN0PgorCistICh2b2lkKV9maW5pc2hJbml0aWFsaXphdGlvbjsKICsgKE5T
TXV0YWJsZVNldCAqKWN1c3RvbVNjaGVtZXM7CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbQkocmV2aXNp
b24gMTU5ODc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NHcm91cC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyB2b2lk
IGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXQKICAgICBpZiAoIXRvSW1wbChmcmFtZVJlZikt
PmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlciAqY29udHJvbGxlciA9IFtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgX2Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQYWdlUmVmOnBhZ2VSZWZdOworICAgIFdLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlciAqY29udHJvbGxlciA9IHdyYXBwZXIoKnRvSW1wbChwYWdlUmVm
KSk7CiAgICAgaWYgKFtjb250cm9sbGVyLmhpc3RvcnlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGE6KV0pCiAgICAgICAgIFtjb250cm9sbGVyLmhpc3RvcnlEZWxlZ2F0ZSBicm93
c2luZ0NvbnRleHRDb250cm9sbGVyOmNvbnRyb2xsZXIgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGE6d3JhcHBlcigqdG9JbXBsKG5hdmlnYXRpb25EYXRhUmVmKSldOwogfQpAQCAtMTE5LDcg
KzExOSw3IEBAIHN0YXRpYyB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChXS0MKICAgICBp
ZiAoIXRvSW1wbChmcmFtZVJlZiktPmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqY29udHJvbGxlciA9IFtXS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIgX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJGb3JQYWdlUmVmOnBh
Z2VSZWZdOworICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqY29udHJvbGxlciA9IHdy
YXBwZXIoKnRvSW1wbChwYWdlUmVmKSk7CiAgICAgaWYgKFtjb250cm9sbGVyLmhpc3RvcnlEZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXI6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0RnJvbVVSTDp0b1VSTDopXSkKICAgICAgICAgW2Nv
bnRyb2xsZXIuaGlzdG9yeURlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI6Y29udHJv
bGxlciBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGcm9tVVJMOndyYXBwZXIoKnRvSW1wbChzb3Vy
Y2VVUkxSZWYpKSB0b1VSTDp3cmFwcGVyKCp0b0ltcGwoZGVzdGluYXRpb25VUkxSZWYpKV07CiB9
CkBAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
KFdLQwogICAgIGlmICghdG9JbXBsKGZyYW1lUmVmKS0+aXNNYWluRnJhbWUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpjb250cm9sbGVyID0g
W1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBfYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckZv
clBhZ2VSZWY6cGFnZVJlZl07CisgICAgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICpjb250
cm9sbGVyID0gd3JhcHBlcigqdG9JbXBsKHBhZ2VSZWYpKTsKICAgICBpZiAoW2NvbnRyb2xsZXIu
aGlzdG9yeURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RGcm9tVVJMOnRvVVJMOildKQog
ICAgICAgICBbY29udHJvbGxlci5oaXN0b3J5RGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlcjpjb250cm9sbGVyIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdEZyb21VUkw6d3JhcHBlcigq
dG9JbXBsKHNvdXJjZVVSTFJlZikpIHRvVVJMOndyYXBwZXIoKnRvSW1wbChkZXN0aW5hdGlvblVS
TFJlZikpXTsKIH0KQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgdm9pZCBkaWRVcGRhdGVIaXN0
b3J5VGl0bGUoV0tDb250CiAgICAgaWYgKCF0b0ltcGwoZnJhbWVSZWYpLT5pc01haW5GcmFtZSgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmNv
bnRyb2xsZXIgPSBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIF9icm93c2luZ0NvbnRleHRD
b250cm9sbGVyRm9yUGFnZVJlZjpwYWdlUmVmXTsKKyAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIgKmNvbnRyb2xsZXIgPSB3cmFwcGVyKCp0b0ltcGwocGFnZVJlZikpOwogICAgIGlmIChb
Y29udHJvbGxlci5oaXN0b3J5RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihi
cm93c2luZ0NvbnRleHRDb250cm9sbGVyOmRpZFVwZGF0ZUhpc3RvcnlUaXRsZTpmb3JVUkw6KV0p
CiAgICAgICAgIFtjb250cm9sbGVyLmhpc3RvcnlEZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250
cm9sbGVyOmNvbnRyb2xsZXIgZGlkVXBkYXRlSGlzdG9yeVRpdGxlOndyYXBwZXIoKnRvSW1wbCh0
aXRsZVJlZikpIGZvclVSTDp3cmFwcGVyKCp0b0ltcGwodXJsUmVmKSldOwogfQpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tDb250ZW50Vmlldy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCShy
ZXZpc2lvbiAxNTk4NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Miw4ICs1Miw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNs
aWVudDsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBfcGFnZTsKIAotICAgIFJldGFpblB0cjxX
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2luZ0NvbnRleHRDb250cm9sbGVyOwot
CiAgICAgUmV0YWluUHRyPFVJVmlldz4gX3Jvb3RDb250ZW50VmlldzsKICAgICBSZXRhaW5QdHI8
V0tJbnRlcmFjdGlvblZpZXc+IF9pbnRlcmFjdGlvblZpZXc7CiB9CkBAIC0xMDQsOSArMTAyLDcg
QEAgLSAodm9pZClkaWRNb3ZlVG9XaW5kb3cKIAogLSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyICopYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcgogewotICAgIGlmICghX2Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIpCi0gICAgICAgIF9icm93c2luZ0NvbnRleHRDb250cm9sbGVyID0gYWRv
cHROUyhbW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBhbGxvY10gX2luaXRXaXRoUGFnZVJl
Zjp0b0FQSShfcGFnZS5nZXQoKSldKTsKLSAgICByZXR1cm4gX2Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIuZ2V0KCk7CisgICAgcmV0dXJuIHdyYXBwZXIoKl9wYWdlKTsKIH0KIAogLSAoV0tDb250
ZW50VHlwZSljb250ZW50VHlwZQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQkocmV2aXNpb24gMTU5ODc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsOSArMTUzLDYgQEAg
QGludGVyZmFjZSBXS1ZpZXdEYXRhIDogTlNPYmplY3QgewogQHB1YmxpYwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxQYWdlQ2xpZW50SW1wbD4gX3BhZ2VDbGllbnQ7CiAgICAgUmVmUHRyPFdlYlBhZ2VQ
cm94eT4gX3BhZ2U7Ci0gICAgCi0gICAgLy8gQ2FjaGUgb2YgdGhlIGFzc29jaWF0ZWQgV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLgotICAgIFJldGFpblB0cjxXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXI+IF9icm93c2luZ0NvbnRleHRDb250cm9sbGVyOwogCiAgICAgLy8gRm9yIFRvb2xU
aXBzLgogICAgIE5TVG9vbFRpcFRhZyBfbGFzdFRvb2xUaXBUYWc7CkBAIC0zMDAsOSArMjk3LDcg
QEAgLSAodm9pZClkZWFsbG9jCiAKIC0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWJy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIKIHsKLSAgICBpZiAoIV9kYXRhLT5fYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcikKLSAgICAgICAgX2RhdGEtPl9icm93c2luZ0NvbnRleHRDb250cm9sbGVy
ID0gYWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBhbGxvY10gX2luaXRXaXRo
UGFnZVJlZjpbc2VsZiBwYWdlUmVmXV0pOwotICAgIHJldHVybiBfZGF0YS0+X2Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIuZ2V0KCk7CisgICAgcmV0dXJuIHdyYXBwZXIoKl9kYXRhLT5fcGFnZSk7
CiB9CiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0JKHJldmlzaW9uIDE1OTg3NSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00OCw2ICs0OCw4IEBACiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRl
bmF0ZS5oPgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KIAorI2ltcG9ydCAiV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKKwogQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uIChE
ZXRhaWxzKQogLSAodm9pZClzcGVha1N0cmluZzooTlNTdHJpbmcgKilzdHJpbmc7CiBAZW5kCkBA
IC02Nyw2ICs2OSwxMCBAQCBzdGF0aWMgYm9vbCBzaG91bGRVc2VMZWdhY3lJbXBsaWNpdFJ1YmJl
CiB2b2lkIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICBtX3VzZUxl
Z2FjeUltcGxpY2l0UnViYmVyQmFuZENvbnRyb2wgPSBzaG91bGRVc2VMZWdhY3lJbXBsaWNpdFJ1
YmJlckJhbmRDb250cm9sKCk7CisKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIFtXZWJLaXQ6Ondy
YXBwZXIoKnRoaXMpIF9maW5pc2hJbml0aWFsaXphdGlvbl07CisjZW5kaWYKIH0KIAogI2lmIGRl
ZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pCg==
</data>
<flag name="review"
          id="241397"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>