<?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>147035</bug_id>
          
          <creation_ts>2015-07-17 00:59:18 -0700</creation_ts>
          <short_desc>[GTK] Cleanup PasteboardHelper</short_desc>
          <delta_ts>2015-07-17 02:24:51 -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>Platform</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1110098</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 00:59:18 -0700</bug_when>
    <thetext>It&apos;s actually a singleton, but the API suggests you can create your own or use the default one, but the default one should be the only one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110100</commentid>
    <comment_count>1</comment_count>
      <attachid>256960</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 01:06:22 -0700</bug_when>
    <thetext>Created attachment 256960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110101</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-17 01:08:35 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110105</commentid>
    <comment_count>3</comment_count>
      <attachid>256960</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-07-17 01:51:14 -0700</bug_when>
    <thetext>Comment on attachment 256960
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        PasteboardHelper::singleton() and make it non-copiable, fast

Nit: non-copyable.

&gt; Source/WebCore/platform/gtk/PasteboardHelper.cpp:70
&gt; +    gMarkupPrefix = String::fromUTF8(&quot;&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=utf-8\&quot;&gt;&quot;);

Not terribly important since it&apos;s only called once, but this string seems ASCII-only, so you could initialize gMarkipPrefix from an ASCIILiteral.

Also, can this be initialized where it&apos;s declared?

&gt; Source/WebCore/platform/gtk/PasteboardHelper.h:38
&gt; +    WTF_MAKE_NONCOPYABLE(PasteboardHelper); WTF_MAKE_FAST_ALLOCATED;

No need for WTF_MAKE_FAST_ALLOCATED. There&apos;s only one object alive during the program&apos;s lifetime, and that one is constructed in memory that&apos;s reserved by the static NeverDestroyed&lt;PasteboardHelper&gt; object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110106</commentid>
    <comment_count>4</comment_count>
      <attachid>256962</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 02:07:08 -0700</bug_when>
    <thetext>Created attachment 256962
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110108</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-07-17 02:24:51 -0700</bug_when>
    <thetext>Committed r186954: &lt;http://trac.webkit.org/changeset/186954&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256960</attachid>
            <date>2015-07-17 01:06:22 -0700</date>
            <delta_ts>2015-07-17 02:07:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-pasteboard-helper-cleanup.diff</filename>
            <type>text/plain</type>
            <size>18008</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZjFhYjc0Li5lN2RmZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTUtMDctMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIENsZWFudXAgUGFzdGVib2FyZEhlbHBlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBhY3R1YWxseSBhIHNpbmds
ZXRvbiwgYnV0IHRoZSBBUEkgc3VnZ2VzdHMgeW91IGNhbiBjcmVhdGUKKyAgICAgICAgeW91ciBv
d24gb3IgdXNlIHRoZSBkZWZhdWx0IG9uZSwgYnV0IHRoZSBkZWZhdWx0IG9uZSBzaG91bGQgYmUg
dGhlCisgICAgICAgIG9ubHkgb25lLiBSZW5hbWUgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBh
c3RlYm9hcmRIZWxwZXIoKSBhcworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24o
KSBhbmQgbWFrZSBpdCBub24tY29waWFibGUsIGZhc3QKKyAgICAgICAgYWxsb2NhdGVkIGFuZCBu
ZXZlciBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6IFVzZSBQ
YXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6OndyaXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBh
c3RlYm9hcmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNsZWFyKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6Omhhc0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlBhc3RlYm9hcmQ6OnR5cGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjpyZWFkU3RyaW5nKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkRmlsZW5hbWVzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRI
ZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9u
KTogUmVuYW1lZCBhcyBzaW5nbGV0b24sIGFsc28KKyAgICAgICAgdXNlIE5ldmVyRGVzdHJveWVk
IGFuZCByZXR1cm4gYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgIChX
ZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkSGVscGVyKTogRG8gYWxsCisgICAg
ICAgIGluaXRpYWxpemF0aW9ucyBoZXJlIGFuZCByZW1vdmUgdGhlIGluaXRpYWxpemF0aW9uIHN0
YXRpYyBmbGFnLAorICAgICAgICBzaW5jZSB0aGlzIGlzIGEgcmVhbCBzaW5nbGV0b24gbm93LiBB
bHNvIHVzZQorICAgICAgICBnZGtfYXRvbV9pbnRlcm5fc3RhdGljX3N0cmluZygpIHRvIGluaXRp
YWxpemUgdGhlIGF0b21zIGluc3RlYWQgb2YKKyAgICAgICAgZ2RrX2F0b21faW50ZXJuKCkuCisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjp0YXJnZXRMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmRIZWxwZXI6OnRhcmdldExpc3RGb3JEYXRhT2JqZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmdldENsaXBib2FyZENvbnRlbnRzQ2FsbGJhY2spOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmg6CisKIDIwMTUtMDctMTYgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiB1
cGRhdGUgJCQoKSB0byByZXR1cm4gYW4gQXJyYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCBhNDMwNzYwLi4wYzhjY2VmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC0xNDcsNyArMTQ3
LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQs
IFNtYXJ0UmVwbGFjZU9wdGlvbiBzbWFydFJlcGwKICAgICBtX2RhdGFPYmplY3QtPnNldFRleHQo
dGV4dCk7CiAKICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBhc3RlYm9hcmRIZWxw
ZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9n
dGtDbGlwYm9hcmQsIChzbWFydFJlcGxhY2VPcHRpb24gPT0gQ2FuU21hcnRSZXBsYWNlKSA/IFBh
c3RlYm9hcmRIZWxwZXI6OkluY2x1ZGVTbWFydFBhc3RlIDogUGFzdGVib2FyZEhlbHBlcjo6RG9O
b3RJbmNsdWRlU21hcnRQYXN0ZSk7CisgICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRv
bigpLndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9ndGtDbGlwYm9hcmQsIChzbWFydFJlcGxhY2VP
cHRpb24gPT0gQ2FuU21hcnRSZXBsYWNlKSA/IFBhc3RlYm9hcmRIZWxwZXI6OkluY2x1ZGVTbWFy
dFBhc3RlIDogUGFzdGVib2FyZEhlbHBlcjo6RG9Ob3RJbmNsdWRlU21hcnRQYXN0ZSk7CiB9CiAK
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFVSTCYgcGFzdGVib2FyZFVS
TCkKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3Rl
Ym9hcmRVUkwmIHBhc3RlYm9hcmRVUkwpCiAgICAgbV9kYXRhT2JqZWN0LT5zZXRVUkwocGFzdGVi
b2FyZFVSTC51cmwsIHBhc3RlYm9hcmRVUkwudGl0bGUpOwogCiAgICAgaWYgKG1fZ3RrQ2xpcGJv
YXJkKQotICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigp
LT53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKKyAgICAgICAgUGFzdGVi
b2FyZEhlbHBlcjo6c2luZ2xldG9uKCkud3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBi
b2FyZCk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdl
JiBwYXN0ZWJvYXJkSW1hZ2UpCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZShjb25zdCBQYXN0ZWJvYXJkSW1hZ2UmIHBhc3RlYm9hcmRJbWFnZSkKICAgICAgICAgbV9k
YXRhT2JqZWN0LT5zZXRJbWFnZShwaXhidWYuZ2V0KCkpOwogCiAgICAgaWYgKG1fZ3RrQ2xpcGJv
YXJkKQotICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigp
LT53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKKyAgICAgICAgUGFzdGVi
b2FyZEhlbHBlcjo6c2luZ2xldG9uKCkud3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBi
b2FyZCk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNv
bnRlbnQmIHBhc3RlYm9hcmRDb250ZW50KQpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIHBhc3RlYm9hcmRDb250ZW50
KQogICAgIG1fZGF0YU9iamVjdC0+c2V0TWFya3VwKHBhc3RlYm9hcmRDb250ZW50Lm1hcmt1cCk7
CiAKICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRl
ZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9ndGtDbGlw
Ym9hcmQsIHBhc3RlYm9hcmRDb250ZW50LmNhblNtYXJ0Q29weU9yRGVsZXRlID8gUGFzdGVib2Fy
ZEhlbHBlcjo6SW5jbHVkZVNtYXJ0UGFzdGUgOiBQYXN0ZWJvYXJkSGVscGVyOjpEb05vdEluY2x1
ZGVTbWFydFBhc3RlLCBwYXN0ZWJvYXJkQ29udGVudC5jYWxsYmFjay5nZXQoKSk7CisgICAgICAg
IFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigpLndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9n
dGtDbGlwYm9hcmQsIHBhc3RlYm9hcmRDb250ZW50LmNhblNtYXJ0Q29weU9yRGVsZXRlID8gUGFz
dGVib2FyZEhlbHBlcjo6SW5jbHVkZVNtYXJ0UGFzdGUgOiBQYXN0ZWJvYXJkSGVscGVyOjpEb05v
dEluY2x1ZGVTbWFydFBhc3RlLCBwYXN0ZWJvYXJkQ29udGVudC5jYWxsYmFjay5nZXQoKSk7CiB9
CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmIHNv
dXJjZVBhc3RlYm9hcmQpCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0
ZVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYgc291cmNlUGFzdGVib2FyZCkKICAgICB9CiAK
ICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9ndGtDbGlwYm9h
cmQpOworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS53cml0ZUNsaXBib2Fy
ZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKIH0KIAogdm9pZCBQYXN0ZWJvYXJkOjpjbGVhcigp
CkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpjbGVhcigpCiAgICAgbV9kYXRh
T2JqZWN0LT5jbGVhckFsbEV4Y2VwdEZpbGVuYW1lcygpOwogCiAgICAgaWYgKG1fZ3RrQ2xpcGJv
YXJkKQotICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigp
LT53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKKyAgICAgICAgUGFzdGVi
b2FyZEhlbHBlcjo6c2luZ2xldG9uKCkud3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBi
b2FyZCk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJiB0eXBlKQpA
QCAtMjQ3LDEyICsyNDcsMTIgQEAgdm9pZCBQYXN0ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcm
IHR5cGUpCiAgICAgfQogCiAgICAgaWYgKG1fZ3RrQ2xpcGJvYXJkKQotICAgICAgICBQYXN0ZWJv
YXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT53cml0ZUNsaXBib2FyZENvbnRl
bnRzKG1fZ3RrQ2xpcGJvYXJkKTsKKyAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9u
KCkud3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCk7CiB9CiAKIGJvb2wgUGFz
dGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkKIHsKLSAgICByZXR1cm4gbV9ndGtDbGlwYm9hcmQg
JiYgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+Y2xpcGJvYXJk
Q29udGVudFN1cHBvcnRzU21hcnRSZXBsYWNlKG1fZ3RrQ2xpcGJvYXJkKTsKKyAgICByZXR1cm4g
bV9ndGtDbGlwYm9hcmQgJiYgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkuY2xpcGJvYXJk
Q29udGVudFN1cHBvcnRzU21hcnRSZXBsYWNlKG1fZ3RrQ2xpcGJvYXJkKTsKIH0KIAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCkBAIC0yNjQsMTQgKzI2NCwxNCBAQCB2b2lkIFBhc3RlYm9hcmQ6
OnNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JikKIHZvaWQgUGFzdGVi
b2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0KQogewogICAgIGlmIChtX2d0a0Ns
aXBib2FyZCkKLSAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxw
ZXIoKS0+Z2V0Q2xpcGJvYXJkQ29udGVudHMobV9ndGtDbGlwYm9hcmQpOworICAgICAgICBQYXN0
ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS5nZXRDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBi
b2FyZCk7CiAgICAgdGV4dC50ZXh0ID0gbV9kYXRhT2JqZWN0LT50ZXh0KCk7CiB9CiAKIGJvb2wg
UGFzdGVib2FyZDo6aGFzRGF0YSgpCiB7CiAgICAgaWYgKG1fZ3RrQ2xpcGJvYXJkKQotICAgICAg
ICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5nZXRDbGlwYm9h
cmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCk7CisgICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OnNp
bmdsZXRvbigpLmdldENsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKIAogICAgIHJl
dHVybiBtX2RhdGFPYmplY3QtPmhhc1RleHQoKSB8fCBtX2RhdGFPYmplY3QtPmhhc01hcmt1cCgp
IHx8IG1fZGF0YU9iamVjdC0+aGFzVVJJTGlzdCgpIHx8IG1fZGF0YU9iamVjdC0+aGFzSW1hZ2Uo
KSB8fCBtX2RhdGFPYmplY3QtPmhhc1Vua25vd25UeXBlRGF0YSgpOwogfQpAQCAtMjc5LDcgKzI3
OSw3IEBAIGJvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCiBWZWN0b3I8U3RyaW5nPiBQYXN0ZWJv
YXJkOjp0eXBlcygpCiB7CiAgICAgaWYgKG1fZ3RrQ2xpcGJvYXJkKQotICAgICAgICBQYXN0ZWJv
YXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5nZXRDbGlwYm9hcmRDb250ZW50
cyhtX2d0a0NsaXBib2FyZCk7CisgICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigp
LmdldENsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKIAogICAgIFZlY3RvcjxTdHJp
bmc+IHR5cGVzOwogICAgIGlmIChtX2RhdGFPYmplY3QtPmhhc1RleHQoKSkgewpAQCAtMzEwLDcg
KzMxMCw3IEBAIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKIFN0cmluZyBQYXN0
ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBpZiAobV9ndGtD
bGlwYm9hcmQpCi0gICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVs
cGVyKCktPmdldENsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKKyAgICAgICAgUGFz
dGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkuZ2V0Q2xpcGJvYXJkQ29udGVudHMobV9ndGtDbGlw
Ym9hcmQpOwogCiAgICAgc3dpdGNoIChkYXRhT2JqZWN0VHlwZUZyb21IVE1MQ2xpcGJvYXJkVHlw
ZSh0eXBlKSkgewogICAgIGNhc2UgQ2xpcGJvYXJkRGF0YVR5cGVVUklMaXN0OgpAQCAtMzMzLDcg
KzMzMyw3IEBAIFN0cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlw
ZSkKIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQogewogICAgIGlm
IChtX2d0a0NsaXBib2FyZCkKLSAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3Rl
Ym9hcmRIZWxwZXIoKS0+Z2V0Q2xpcGJvYXJkQ29udGVudHMobV9ndGtDbGlwYm9hcmQpOworICAg
ICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS5nZXRDbGlwYm9hcmRDb250ZW50cyht
X2d0a0NsaXBib2FyZCk7CiAKICAgICByZXR1cm4gbV9kYXRhT2JqZWN0LT5maWxlbmFtZXMoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVs
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNw
cAppbmRleCA0OGRhZWIzLi42NzU1YmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcApAQCAtNTEsNTEgKzUxLDM1IEBAIHN0YXRpYyB2
b2lkIHJlbW92ZU1hcmt1cFByZWZpeChTdHJpbmcmIG1hcmt1cCkKICAgICAgICAgbWFya3VwLnJl
bW92ZSgwLCBnTWFya3VwUHJlZml4Lmxlbmd0aCgpKTsKIH0KIAotc3RhdGljIHZvaWQgaW5pdEdk
a0F0b21zKCkKK1Bhc3RlYm9hcmRIZWxwZXImIFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigp
CiB7Ci0gICAgc3RhdGljIGdib29sZWFuIGluaXRpYWxpemVkID0gRkFMU0U7Ci0KLSAgICBpZiAo
aW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGluaXRpYWxpemVkID0gVFJVRTsK
LQotICAgIHRleHRQbGFpbkF0b20gPSBnZGtfYXRvbV9pbnRlcm4oInRleHQvcGxhaW47Y2hhcnNl
dD11dGYtOCIsIEZBTFNFKTsKLSAgICBtYXJrdXBBdG9tID0gZ2RrX2F0b21faW50ZXJuKCJ0ZXh0
L2h0bWwiLCBGQUxTRSk7Ci0gICAgbmV0c2NhcGVVUkxBdG9tID0gZ2RrX2F0b21faW50ZXJuKCJf
TkVUU0NBUEVfVVJMIiwgRkFMU0UpOwotICAgIHVyaUxpc3RBdG9tID0gZ2RrX2F0b21faW50ZXJu
KCJ0ZXh0L3VyaS1saXN0IiwgRkFMU0UpOwotICAgIHNtYXJ0UGFzdGVBdG9tID0gZ2RrX2F0b21f
aW50ZXJuKCJhcHBsaWNhdGlvbi92bmQud2Via2l0Z3RrLnNtYXJ0cGFzdGUiLCBGQUxTRSk7Ci0g
ICAgdW5rbm93bkF0b20gPSBnZGtfYXRvbV9pbnRlcm4oImFwcGxpY2F0aW9uL3ZuZC53ZWJraXRn
dGsudW5rbm93biIsIEZBTFNFKTsKLSAgICBnTWFya3VwUHJlZml4ID0gIjxtZXRhIGh0dHAtZXF1
aXY9XCJjb250ZW50LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+
IjsKLX0KLQotUGFzdGVib2FyZEhlbHBlciogUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3Rl
Ym9hcmRIZWxwZXIoKQotewotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChQYXN0
ZWJvYXJkSGVscGVyLCBkZWZhdWx0SGVscGVyLCAoKSk7Ci0gICAgcmV0dXJuICZkZWZhdWx0SGVs
cGVyOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxQYXN0ZWJvYXJkSGVscGVyPiBoZWxwZXI7
CisgICAgcmV0dXJuIGhlbHBlcjsKIH0KIAogUGFzdGVib2FyZEhlbHBlcjo6UGFzdGVib2FyZEhl
bHBlcigpCi0gICAgOiBtX3RhcmdldExpc3QoZ3RrX3RhcmdldF9saXN0X25ldygwLCAwKSkKLXsK
LSAgICBpbml0R2RrQXRvbXMoKTsKLQotICAgIGd0a190YXJnZXRfbGlzdF9hZGRfdGV4dF90YXJn
ZXRzKG1fdGFyZ2V0TGlzdCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQpOwotICAg
IGd0a190YXJnZXRfbGlzdF9hZGQobV90YXJnZXRMaXN0LCBtYXJrdXBBdG9tLCAwLCBQYXN0ZWJv
YXJkSGVscGVyOjpUYXJnZXRUeXBlTWFya3VwKTsKLSAgICBndGtfdGFyZ2V0X2xpc3RfYWRkX3Vy
aV90YXJnZXRzKG1fdGFyZ2V0TGlzdCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxp
c3QpOwotICAgIGd0a190YXJnZXRfbGlzdF9hZGQobV90YXJnZXRMaXN0LCBuZXRzY2FwZVVSTEF0
b20sIDAsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVOZXRzY2FwZVVSTCk7Ci0gICAgZ3Rr
X3RhcmdldF9saXN0X2FkZF9pbWFnZV90YXJnZXRzKG1fdGFyZ2V0TGlzdCwgUGFzdGVib2FyZEhl
bHBlcjo6VGFyZ2V0VHlwZUltYWdlLCBUUlVFKTsKLSAgICBndGtfdGFyZ2V0X2xpc3RfYWRkKG1f
dGFyZ2V0TGlzdCwgdW5rbm93bkF0b20sIDAsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVV
bmtub3duKTsKLX0KLQotUGFzdGVib2FyZEhlbHBlcjo6flBhc3RlYm9hcmRIZWxwZXIoKQorICAg
IDogbV90YXJnZXRMaXN0KGFkb3B0R1JlZihndGtfdGFyZ2V0X2xpc3RfbmV3KG51bGxwdHIsIDAp
KSkKIHsKLSAgICBndGtfdGFyZ2V0X2xpc3RfdW5yZWYobV90YXJnZXRMaXN0KTsKKyAgICB0ZXh0
UGxhaW5BdG9tID0gZ2RrX2F0b21faW50ZXJuX3N0YXRpY19zdHJpbmcoInRleHQvcGxhaW47Y2hh
cnNldD11dGYtOCIpOworICAgIG1hcmt1cEF0b20gPSBnZGtfYXRvbV9pbnRlcm5fc3RhdGljX3N0
cmluZygidGV4dC9odG1sIik7CisgICAgbmV0c2NhcGVVUkxBdG9tID0gZ2RrX2F0b21faW50ZXJu
X3N0YXRpY19zdHJpbmcoIl9ORVRTQ0FQRV9VUkwiKTsKKyAgICB1cmlMaXN0QXRvbSA9IGdka19h
dG9tX2ludGVybl9zdGF0aWNfc3RyaW5nKCJ0ZXh0L3VyaS1saXN0Iik7CisgICAgc21hcnRQYXN0
ZUF0b20gPSBnZGtfYXRvbV9pbnRlcm5fc3RhdGljX3N0cmluZygiYXBwbGljYXRpb24vdm5kLndl
YmtpdGd0ay5zbWFydHBhc3RlIik7CisgICAgdW5rbm93bkF0b20gPSBnZGtfYXRvbV9pbnRlcm5f
c3RhdGljX3N0cmluZygiYXBwbGljYXRpb24vdm5kLndlYmtpdGd0ay51bmtub3duIik7CisKKyAg
ICBnTWFya3VwUHJlZml4ID0gU3RyaW5nOjpmcm9tVVRGOCgiPG1ldGEgaHR0cC1lcXVpdj1cImNv
bnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIj4iKTsKKwor
ICAgIGd0a190YXJnZXRfbGlzdF9hZGRfdGV4dF90YXJnZXRzKG1fdGFyZ2V0TGlzdC5nZXQoKSwg
UGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQpOworICAgIGd0a190YXJnZXRfbGlzdF9h
ZGQobV90YXJnZXRMaXN0LmdldCgpLCBtYXJrdXBBdG9tLCAwLCBQYXN0ZWJvYXJkSGVscGVyOjpU
YXJnZXRUeXBlTWFya3VwKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkX3VyaV90YXJnZXRzKG1f
dGFyZ2V0TGlzdC5nZXQoKSwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3QpOwor
ICAgIGd0a190YXJnZXRfbGlzdF9hZGQobV90YXJnZXRMaXN0LmdldCgpLCBuZXRzY2FwZVVSTEF0
b20sIDAsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVOZXRzY2FwZVVSTCk7CisgICAgZ3Rr
X3RhcmdldF9saXN0X2FkZF9pbWFnZV90YXJnZXRzKG1fdGFyZ2V0TGlzdC5nZXQoKSwgUGFzdGVi
b2FyZEhlbHBlcjo6VGFyZ2V0VHlwZUltYWdlLCBUUlVFKTsKKyAgICBndGtfdGFyZ2V0X2xpc3Rf
YWRkKG1fdGFyZ2V0TGlzdC5nZXQoKSwgdW5rbm93bkF0b20sIDAsIFBhc3RlYm9hcmRIZWxwZXI6
OlRhcmdldFR5cGVVbmtub3duKTsKIH0KIAogR3RrVGFyZ2V0TGlzdCogUGFzdGVib2FyZEhlbHBl
cjo6dGFyZ2V0TGlzdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdGFyZ2V0TGlzdDsKKyAgICBy
ZXR1cm4gbV90YXJnZXRMaXN0LmdldCgpOwogfQogCiBzdGF0aWMgU3RyaW5nIHNlbGVjdGlvbkRh
dGFUb1VURjhTdHJpbmcoR3RrU2VsZWN0aW9uRGF0YSogZGF0YSkKQEAgLTE4OSw3ICsxNzMsNyBA
QCB2b2lkIFBhc3RlYm9hcmRIZWxwZXI6OmZpbGxTZWxlY3Rpb25EYXRhKEd0a1NlbGVjdGlvbkRh
dGEqIHNlbGVjdGlvbkRhdGEsIGd1aW50CiAKIEd0a1RhcmdldExpc3QqIFBhc3RlYm9hcmRIZWxw
ZXI6OnRhcmdldExpc3RGb3JEYXRhT2JqZWN0KERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QsIFNt
YXJ0UGFzdGVJbmNsdXNpb24gc2hvdWxkSW5sdWRlU21hcnRQYXN0ZSkKIHsKLSAgICBHdGtUYXJn
ZXRMaXN0KiBsaXN0ID0gZ3RrX3RhcmdldF9saXN0X25ldygwLCAwKTsKKyAgICBHdGtUYXJnZXRM
aXN0KiBsaXN0ID0gZ3RrX3RhcmdldF9saXN0X25ldyhudWxscHRyLCAwKTsKIAogICAgIGlmIChk
YXRhT2JqZWN0LT5oYXNUZXh0KCkpCiAgICAgICAgIGd0a190YXJnZXRfbGlzdF9hZGRfdGV4dF90
YXJnZXRzKGxpc3QsIFRhcmdldFR5cGVUZXh0KTsKQEAgLTI3OCw3ICsyNjIsNyBAQCBzdGF0aWMg
dm9pZCBnZXRDbGlwYm9hcmRDb250ZW50c0NhbGxiYWNrKEd0a0NsaXBib2FyZCogY2xpcGJvYXJk
LCBHdGtTZWxlY3Rpb25EYQogewogICAgIERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QgPSBEYXRh
T2JqZWN0R3RrOjpmb3JDbGlwYm9hcmQoY2xpcGJvYXJkKTsKICAgICBBU1NFUlQoZGF0YU9iamVj
dCk7Ci0gICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+Zmls
bFNlbGVjdGlvbkRhdGEoc2VsZWN0aW9uRGF0YSwgaW5mbywgZGF0YU9iamVjdCk7CisgICAgUGFz
dGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkuZmlsbFNlbGVjdGlvbkRhdGEoc2VsZWN0aW9uRGF0
YSwgaW5mbywgZGF0YU9iamVjdCk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFyQ2xpcGJvYXJkQ29u
dGVudHNDYWxsYmFjayhHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oCmluZGV4IDBk
MDNkMTAuLmJjYjBkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
YXN0ZWJvYXJkSGVscGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRIZWxwZXIuaApAQCAtMjUsMTggKzI1LDE5IEBACiAjaWZuZGVmIFBhc3RlYm9hcmRIZWxw
ZXJfaAogI2RlZmluZSBQYXN0ZWJvYXJkSGVscGVyX2gKIAotI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dS
ZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRhT2JqZWN0R3RrOwog
CiBjbGFzcyBQYXN0ZWJvYXJkSGVscGVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYXN0
ZWJvYXJkSGVscGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUGFz
dGVib2FyZEhlbHBlcigpOwotICAgIHZpcnR1YWwgflBhc3RlYm9hcmRIZWxwZXIoKTsKLSAgICBz
dGF0aWMgUGFzdGVib2FyZEhlbHBlciogZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKTsKKyAgICBz
dGF0aWMgUGFzdGVib2FyZEhlbHBlciYgc2luZ2xldG9uKCk7CiAKICAgICBlbnVtIFNtYXJ0UGFz
dGVJbmNsdXNpb24geyBJbmNsdWRlU21hcnRQYXN0ZSwgRG9Ob3RJbmNsdWRlU21hcnRQYXN0ZSB9
OwogCkBAIC01Miw3ICs1MywxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjbGlwYm9hcmRDb250ZW50
U3VwcG9ydHNTbWFydFJlcGxhY2UoR3RrQ2xpcGJvYXJkKik7CiAKIHByaXZhdGU6Ci0gICAgR3Rr
VGFyZ2V0TGlzdCogbV90YXJnZXRMaXN0OworICAgIFBhc3RlYm9hcmRIZWxwZXIoKTsKKyAgICB+
UGFzdGVib2FyZEhlbHBlcigpID0gZGVsZXRlOworCisgICAgR1JlZlB0cjxHdGtUYXJnZXRMaXN0
PiBtX3RhcmdldExpc3Q7CisKKyAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxQ
YXN0ZWJvYXJkSGVscGVyPjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxNDhkOTljLi4wZWY3NmI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDctMTcgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIENsZWFudXAgUGFz
dGVib2FyZEhlbHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigpIGluc3RlYWQgb2YKKyAgICAg
ICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdl
YmtpdFdlYlZpZXdCYXNlQ29uc3RydWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvRHJh
Z0FuZERyb3BIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0FuZERyb3BIYW5kbGVy
OjpzdGFydERyYWcpOgorICAgICAgICAoV2ViS2l0OjpEcmFnQW5kRHJvcEhhbmRsZXI6OmZpbGxE
cmFnRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OkRyYWdBbmREcm9wSGFuZGxlcjo6ZGF0YU9iamVj
dEZvckRyb3BEYXRhKToKKyAgICAgICAgKFdlYktpdDo6RHJhZ0FuZERyb3BIYW5kbGVyOjpyZXF1
ZXN0RHJhZ0RhdGEpOgorCiAyMDE1LTA3LTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxODU0MTUpOiBbR1RLXSBCcm93
c2VycyBjcmFzaCB3aGVuIGFuIGlucHV0IG1ldGhvZCBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5k
ZXggZjJmZTBlZS4uMmVmN2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtNDYzLDcgKzQ2Myw3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ29uc3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQog
ICAgIGd0a193aWRnZXRfc2V0X2Nhbl9mb2N1cyh2aWV3V2lkZ2V0LCBUUlVFKTsKICAgICBndGtf
ZHJhZ19kZXN0X3NldCh2aWV3V2lkZ2V0LCBzdGF0aWNfY2FzdDxHdGtEZXN0RGVmYXVsdHM+KDAp
LCBudWxscHRyLCAwLAogICAgICAgICBzdGF0aWNfY2FzdDxHZGtEcmFnQWN0aW9uPihHREtfQUNU
SU9OX0NPUFkgfCBHREtfQUNUSU9OX01PVkUgfCBHREtfQUNUSU9OX0xJTksgfCBHREtfQUNUSU9O
X1BSSVZBVEUpKTsKLSAgICBndGtfZHJhZ19kZXN0X3NldF90YXJnZXRfbGlzdCh2aWV3V2lkZ2V0
LCBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0
KCkpOworICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3RhcmdldF9saXN0KHZpZXdXaWRnZXQsIFBhc3Rl
Ym9hcmRIZWxwZXI6OnNpbmdsZXRvbigpLnRhcmdldExpc3QoKSk7CiAKICAgICBXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfV0VCX1ZJRVdfQkFTRShvYmplY3QpLT5wcml2
OwogICAgIHByaXYtPnBhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBs
Pih2aWV3V2lkZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
RHJhZ0FuZERyb3BIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvRHJh
Z0FuZERyb3BIYW5kbGVyLmNwcAppbmRleCBjY2Y2ZjMwLi4zMDRiNmJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwCkBAIC0x
MTEsNyArMTExLDcgQEAgc3RhdGljIGlubGluZSBEcmFnT3BlcmF0aW9uIGdka0RyYWdBY3Rpb25U
b0RyYWdPcGVyYXRpb24oR2RrRHJhZ0FjdGlvbiBnZGtBY3Rpb24KIHZvaWQgRHJhZ0FuZERyb3BI
YW5kbGVyOjpzdGFydERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBQYXNzUmVmUHRyPFNo
YXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlKQogewogICAgIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiBk
YXRhT2JqZWN0ID0gYWRvcHRSZWYoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwotICAgIEdSZWZQ
dHI8R3RrVGFyZ2V0TGlzdD4gdGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihQYXN0ZWJvYXJkSGVscGVy
OjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0Rm9yRGF0YU9iamVjdChkYXRh
T2JqZWN0LmdldCgpKSk7CisgICAgR1JlZlB0cjxHdGtUYXJnZXRMaXN0PiB0YXJnZXRMaXN0ID0g
YWRvcHRHUmVmKFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigpLnRhcmdldExpc3RGb3JEYXRh
T2JqZWN0KGRhdGFPYmplY3QuZ2V0KCkpKTsKICAgICBHVW5pcXVlUHRyPEdka0V2ZW50PiBjdXJy
ZW50RXZlbnQoZ3RrX2dldF9jdXJyZW50X2V2ZW50KCkpOwogCiAgICAgR2RrRHJhZ0NvbnRleHQq
IGNvbnRleHQgPSBndGtfZHJhZ19iZWdpbihtX3BhZ2Uudmlld1dpZGdldCgpLCB0YXJnZXRMaXN0
LmdldCgpLCBkcmFnT3BlcmF0aW9uVG9HZGtEcmFnQWN0aW9ucyhkcmFnRGF0YS5kcmFnZ2luZ1Nv
dXJjZU9wZXJhdGlvbk1hc2soKSksCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBEcmFnQW5kRHJv
cEhhbmRsZXI6OnN0YXJ0RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEsIFBhc3NSZWZQdHI8
U2hhcmVhYmwKIHZvaWQgRHJhZ0FuZERyb3BIYW5kbGVyOjpmaWxsRHJhZ0RhdGEoR2RrRHJhZ0Nv
bnRleHQqIGNvbnRleHQsIEd0a1NlbGVjdGlvbkRhdGEqIHNlbGVjdGlvbkRhdGEsIHVuc2lnbmVk
IGluZm8pCiB7CiAgICAgaWYgKERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QgPSBtX2RyYWdnaW5n
RGF0YU9iamVjdHMuZ2V0KGNvbnRleHQpKQotICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZh
dWx0UGFzdGVib2FyZEhlbHBlcigpLT5maWxsU2VsZWN0aW9uRGF0YShzZWxlY3Rpb25EYXRhLCBp
bmZvLCBkYXRhT2JqZWN0KTsKKyAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCku
ZmlsbFNlbGVjdGlvbkRhdGEoc2VsZWN0aW9uRGF0YSwgaW5mbywgZGF0YU9iamVjdCk7CiB9CiAK
IHZvaWQgRHJhZ0FuZERyb3BIYW5kbGVyOjpmaW5pc2hEcmFnKEdka0RyYWdDb250ZXh0KiBjb250
ZXh0KQpAQCAtMTUzLDcgKzE1Myw3IEBAIERhdGFPYmplY3RHdGsqIERyYWdBbmREcm9wSGFuZGxl
cjo6ZGF0YU9iamVjdEZvckRyb3BEYXRhKEdka0RyYWdDb250ZXh0KiBjb250ZXh0CiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgZHJvcHBpbmdDb250ZXh0LT5wZW5kaW5nRGF0YVJlcXVl
c3RzLS07Ci0gICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+
ZmlsbERhdGFPYmplY3RGcm9tRHJvcERhdGEoc2VsZWN0aW9uRGF0YSwgaW5mbywgZHJvcHBpbmdD
b250ZXh0LT5kYXRhT2JqZWN0LmdldCgpKTsKKyAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0
b24oKS5maWxsRGF0YU9iamVjdEZyb21Ecm9wRGF0YShzZWxlY3Rpb25EYXRhLCBpbmZvLCBkcm9w
cGluZ0NvbnRleHQtPmRhdGFPYmplY3QuZ2V0KCkpOwogICAgIGlmIChkcm9wcGluZ0NvbnRleHQt
PnBlbmRpbmdEYXRhUmVxdWVzdHMpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0xODUs
NyArMTg1LDcgQEAgRGF0YU9iamVjdEd0ayogRHJhZ0FuZERyb3BIYW5kbGVyOjpyZXF1ZXN0RHJh
Z0RhdGEoR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQsIGNvbnMKICAgICBpZiAoIWRyb3BwaW5nQ29u
dGV4dCkgewogICAgICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IG1fcGFnZS52aWV3V2lkZ2V0KCk7
CiAgICAgICAgIGRyb3BwaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8RHJvcHBpbmdDb250
ZXh0Pihjb250ZXh0LCBwb3NpdGlvbik7Ci0gICAgICAgIFZlY3RvcjxHZGtBdG9tPiBhY2NlcHRh
YmxlVGFyZ2V0cyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5k
cm9wQXRvbXNGb3JDb250ZXh0KHdpZGdldCwgZHJvcHBpbmdDb250ZXh0LT5nZGtDb250ZXh0KSk7
CisgICAgICAgIFZlY3RvcjxHZGtBdG9tPiBhY2NlcHRhYmxlVGFyZ2V0cyhQYXN0ZWJvYXJkSGVs
cGVyOjpzaW5nbGV0b24oKS5kcm9wQXRvbXNGb3JDb250ZXh0KHdpZGdldCwgZHJvcHBpbmdDb250
ZXh0LT5nZGtDb250ZXh0KSk7CiAgICAgICAgIGRyb3BwaW5nQ29udGV4dC0+cGVuZGluZ0RhdGFS
ZXF1ZXN0cyA9IGFjY2VwdGFibGVUYXJnZXRzLnNpemUoKTsKICAgICAgICAgZm9yIChhdXRvJiB0
YXJnZXQgOiBhY2NlcHRhYmxlVGFyZ2V0cykKICAgICAgICAgICAgIGd0a19kcmFnX2dldF9kYXRh
KHdpZGdldCwgZHJvcHBpbmdDb250ZXh0LT5nZGtDb250ZXh0LCB0YXJnZXQsIHRpbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256962</attachid>
            <date>2015-07-17 02:07:08 -0700</date>
            <delta_ts>2015-07-17 02:22:03 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-pasteboard-helper-cleanup.diff</filename>
            <type>text/plain</type>
            <size>18168</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZjFhYjc0Li5jMWE1MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTUtMDctMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIENsZWFudXAgUGFzdGVib2FyZEhlbHBlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQncyBhY3R1YWxseSBhIHNpbmds
ZXRvbiwgYnV0IHRoZSBBUEkgc3VnZ2VzdHMgeW91IGNhbiBjcmVhdGUKKyAgICAgICAgeW91ciBv
d24gb3IgdXNlIHRoZSBkZWZhdWx0IG9uZSwgYnV0IHRoZSBkZWZhdWx0IG9uZSBzaG91bGQgYmUg
dGhlCisgICAgICAgIG9ubHkgb25lLiBSZW5hbWUgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBh
c3RlYm9hcmRIZWxwZXIoKSBhcworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24o
KSBhbmQgbWFrZSBpdCBub24tY29weWFibGUgYW5kIG5ldmVyCisgICAgICAgIGRlc3Ryb3llZC4K
KworICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KTogVXNlIFBhc3RlYm9hcmRIZWxwZXI6
OnNpbmdsZXRvbigpLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGFzdGVib2FyZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y2xlYXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6aGFzRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
dHlwZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMpOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24pOiBSZW5hbWVkIGFzIHNp
bmdsZXRvbiwgYWxzbworICAgICAgICB1c2UgTmV2ZXJEZXN0cm95ZWQgYW5kIHJldHVybiBhIHJl
ZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmRIZWxwZXI6OlBhc3RlYm9hcmRIZWxwZXIpOiBEbyBhbGwKKyAgICAgICAgaW5pdGlhbGl6YXRp
b25zIGhlcmUgYW5kIHJlbW92ZSB0aGUgaW5pdGlhbGl6YXRpb24gc3RhdGljIGZsYWcsCisgICAg
ICAgIHNpbmNlIHRoaXMgaXMgYSByZWFsIHNpbmdsZXRvbiBub3cuIEFsc28gdXNlCisgICAgICAg
IGdka19hdG9tX2ludGVybl9zdGF0aWNfc3RyaW5nKCkgdG8gaW5pdGlhbGl6ZSB0aGUgYXRvbXMg
aW5zdGVhZCBvZgorICAgICAgICBnZGtfYXRvbV9pbnRlcm4oKS4KKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmRIZWxwZXI6OnRhcmdldExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZEhlbHBlcjo6dGFyZ2V0TGlzdEZvckRhdGFPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0Q2xpcGJvYXJkQ29udGVudHNDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bh
c3RlYm9hcmRIZWxwZXIuaDoKKwogMjAxNS0wNy0xNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVwZGF0ZSAkJCgpIHRvIHJl
dHVybiBhbiBBcnJheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bh
c3RlYm9hcmRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRH
dGsuY3BwCmluZGV4IGE0MzA3NjAuLjBjOGNjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgU21hcnRSZXBsYWNlT3B0
aW9uIHNtYXJ0UmVwbAogICAgIG1fZGF0YU9iamVjdC0+c2V0VGV4dCh0ZXh0KTsKIAogICAgIGlm
IChtX2d0a0NsaXBib2FyZCkKLSAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3Rl
Ym9hcmRIZWxwZXIoKS0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCwgKHNt
YXJ0UmVwbGFjZU9wdGlvbiA9PSBDYW5TbWFydFJlcGxhY2UpID8gUGFzdGVib2FyZEhlbHBlcjo6
SW5jbHVkZVNtYXJ0UGFzdGUgOiBQYXN0ZWJvYXJkSGVscGVyOjpEb05vdEluY2x1ZGVTbWFydFBh
c3RlKTsKKyAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkud3JpdGVDbGlwYm9h
cmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCwgKHNtYXJ0UmVwbGFjZU9wdGlvbiA9PSBDYW5TbWFy
dFJlcGxhY2UpID8gUGFzdGVib2FyZEhlbHBlcjo6SW5jbHVkZVNtYXJ0UGFzdGUgOiBQYXN0ZWJv
YXJkSGVscGVyOjpEb05vdEluY2x1ZGVTbWFydFBhc3RlKTsKIH0KIAogdm9pZCBQYXN0ZWJvYXJk
Ojp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiBwYXN0ZWJvYXJkVVJMKQpAQCAtMTU4LDcgKzE1
OCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFVSTCYgcGFzdGVi
b2FyZFVSTCkKICAgICBtX2RhdGFPYmplY3QtPnNldFVSTChwYXN0ZWJvYXJkVVJMLnVybCwgcGFz
dGVib2FyZFVSTC50aXRsZSk7CiAKICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBh
c3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJk
Q29udGVudHMobV9ndGtDbGlwYm9hcmQpOworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5n
bGV0b24oKS53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKIH0KIAogdm9p
ZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkSW1hZ2UmIHBhc3RlYm9hcmRJbWFn
ZSkKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3Rl
Ym9hcmRJbWFnZSYgcGFzdGVib2FyZEltYWdlKQogICAgICAgICBtX2RhdGFPYmplY3QtPnNldElt
YWdlKHBpeGJ1Zi5nZXQoKSk7CiAKICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBh
c3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJk
Q29udGVudHMobV9ndGtDbGlwYm9hcmQpOworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5n
bGV0b24oKS53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKIH0KIAogdm9p
ZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgcGFzdGVib2Fy
ZENvbnRlbnQpCkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25z
dCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgcGFzdGVib2FyZENvbnRlbnQpCiAgICAgbV9kYXRhT2Jq
ZWN0LT5zZXRNYXJrdXAocGFzdGVib2FyZENvbnRlbnQubWFya3VwKTsKIAogICAgIGlmIChtX2d0
a0NsaXBib2FyZCkKLSAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRI
ZWxwZXIoKS0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCwgcGFzdGVib2Fy
ZENvbnRlbnQuY2FuU21hcnRDb3B5T3JEZWxldGUgPyBQYXN0ZWJvYXJkSGVscGVyOjpJbmNsdWRl
U21hcnRQYXN0ZSA6IFBhc3RlYm9hcmRIZWxwZXI6OkRvTm90SW5jbHVkZVNtYXJ0UGFzdGUsIHBh
c3RlYm9hcmRDb250ZW50LmNhbGxiYWNrLmdldCgpKTsKKyAgICAgICAgUGFzdGVib2FyZEhlbHBl
cjo6c2luZ2xldG9uKCkud3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCwgcGFz
dGVib2FyZENvbnRlbnQuY2FuU21hcnRDb3B5T3JEZWxldGUgPyBQYXN0ZWJvYXJkSGVscGVyOjpJ
bmNsdWRlU21hcnRQYXN0ZSA6IFBhc3RlYm9hcmRIZWxwZXI6OkRvTm90SW5jbHVkZVNtYXJ0UGFz
dGUsIHBhc3RlYm9hcmRDb250ZW50LmNhbGxiYWNrLmdldCgpKTsKIH0KIAogdm9pZCBQYXN0ZWJv
YXJkOjp3cml0ZVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYgc291cmNlUGFzdGVib2FyZCkK
QEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25z
dCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJkKQogICAgIH0KIAogICAgIGlmIChtX2d0a0Ns
aXBib2FyZCkKLSAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxw
ZXIoKS0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCk7CisgICAgICAgIFBh
c3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigpLndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9ndGtD
bGlwYm9hcmQpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKQEAgLTIyMiw3ICsyMjIs
NyBAQCB2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKICAgICBtX2RhdGFPYmplY3QtPmNsZWFyQWxs
RXhjZXB0RmlsZW5hbWVzKCk7CiAKICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBh
c3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJk
Q29udGVudHMobV9ndGtDbGlwYm9hcmQpOworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5n
bGV0b24oKS53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKIH0KIAogdm9p
ZCBQYXN0ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmIHR5cGUpCkBAIC0yNDcsMTIgKzI0Nywx
MiBAQCB2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICB9CiAK
ICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9ndGtDbGlwYm9h
cmQpOworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS53cml0ZUNsaXBib2Fy
ZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKIH0KIAogYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFy
dFJlcGxhY2UoKQogewotICAgIHJldHVybiBtX2d0a0NsaXBib2FyZCAmJiBQYXN0ZWJvYXJkSGVs
cGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5jbGlwYm9hcmRDb250ZW50U3VwcG9ydHNT
bWFydFJlcGxhY2UobV9ndGtDbGlwYm9hcmQpOworICAgIHJldHVybiBtX2d0a0NsaXBib2FyZCAm
JiBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS5jbGlwYm9hcmRDb250ZW50U3VwcG9ydHNT
bWFydFJlcGxhY2UobV9ndGtDbGlwYm9hcmQpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKQEAgLTI2NCwxNCArMjY0LDE0IEBAIHZvaWQgUGFzdGVib2FyZDo6c2V0RHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmKQogdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3Rl
Ym9hcmRQbGFpblRleHQmIHRleHQpCiB7CiAgICAgaWYgKG1fZ3RrQ2xpcGJvYXJkKQotICAgICAg
ICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5nZXRDbGlwYm9h
cmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCk7CisgICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OnNp
bmdsZXRvbigpLmdldENsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsKICAgICB0ZXh0
LnRleHQgPSBtX2RhdGFPYmplY3QtPnRleHQoKTsKIH0KIAogYm9vbCBQYXN0ZWJvYXJkOjpoYXNE
YXRhKCkKIHsKICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBhc3RlYm9hcmRIZWxw
ZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPmdldENsaXBib2FyZENvbnRlbnRzKG1fZ3Rr
Q2xpcGJvYXJkKTsKKyAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkuZ2V0Q2xp
cGJvYXJkQ29udGVudHMobV9ndGtDbGlwYm9hcmQpOwogCiAgICAgcmV0dXJuIG1fZGF0YU9iamVj
dC0+aGFzVGV4dCgpIHx8IG1fZGF0YU9iamVjdC0+aGFzTWFya3VwKCkgfHwgbV9kYXRhT2JqZWN0
LT5oYXNVUklMaXN0KCkgfHwgbV9kYXRhT2JqZWN0LT5oYXNJbWFnZSgpIHx8IG1fZGF0YU9iamVj
dC0+aGFzVW5rbm93blR5cGVEYXRhKCk7CiB9CkBAIC0yNzksNyArMjc5LDcgQEAgYm9vbCBQYXN0
ZWJvYXJkOjpoYXNEYXRhKCkKIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5cGVzKCkKIHsK
ICAgICBpZiAobV9ndGtDbGlwYm9hcmQpCi0gICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPmdldENsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJk
KTsKKyAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkuZ2V0Q2xpcGJvYXJkQ29u
dGVudHMobV9ndGtDbGlwYm9hcmQpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAg
aWYgKG1fZGF0YU9iamVjdC0+aGFzVGV4dCgpKSB7CkBAIC0zMTAsNyArMzEwLDcgQEAgVmVjdG9y
PFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQogU3RyaW5nIFBhc3RlYm9hcmQ6OnJlYWRTdHJp
bmcoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIGlmIChtX2d0a0NsaXBib2FyZCkKLSAgICAg
ICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+Z2V0Q2xpcGJv
YXJkQ29udGVudHMobV9ndGtDbGlwYm9hcmQpOworICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpz
aW5nbGV0b24oKS5nZXRDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCk7CiAKICAgICBz
d2l0Y2ggKGRhdGFPYmplY3RUeXBlRnJvbUhUTUxDbGlwYm9hcmRUeXBlKHR5cGUpKSB7CiAgICAg
Y2FzZSBDbGlwYm9hcmREYXRhVHlwZVVSSUxpc3Q6CkBAIC0zMzMsNyArMzMzLDcgQEAgU3RyaW5n
IFBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQogVmVjdG9yPFN0cmlu
Zz4gUGFzdGVib2FyZDo6cmVhZEZpbGVuYW1lcygpCiB7CiAgICAgaWYgKG1fZ3RrQ2xpcGJvYXJk
KQotICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5n
ZXRDbGlwYm9hcmRDb250ZW50cyhtX2d0a0NsaXBib2FyZCk7CisgICAgICAgIFBhc3RlYm9hcmRI
ZWxwZXI6OnNpbmdsZXRvbigpLmdldENsaXBib2FyZENvbnRlbnRzKG1fZ3RrQ2xpcGJvYXJkKTsK
IAogICAgIHJldHVybiBtX2RhdGFPYmplY3QtPmZpbGVuYW1lcygpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwCmluZGV4IDQ4ZGFlYjMu
Ljg3YWI4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2Fy
ZEhlbHBlci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIEdka0F0b20gdXJpTGlzdEF0b207
CiBzdGF0aWMgR2RrQXRvbSBzbWFydFBhc3RlQXRvbTsKIHN0YXRpYyBHZGtBdG9tIHVua25vd25B
dG9tOwogCi1zdGF0aWMgU3RyaW5nIGdNYXJrdXBQcmVmaXg7CitzdGF0aWMgY29uc3QgU3RyaW5n
IGdNYXJrdXBQcmVmaXggPSBBU0NJSUxpdGVyYWwoIjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50
LXR5cGVcIiBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+Iik7CiAKIHN0YXRp
YyB2b2lkIHJlbW92ZU1hcmt1cFByZWZpeChTdHJpbmcmIG1hcmt1cCkKIHsKQEAgLTUxLDUxICs1
MSwzMyBAQCBzdGF0aWMgdm9pZCByZW1vdmVNYXJrdXBQcmVmaXgoU3RyaW5nJiBtYXJrdXApCiAg
ICAgICAgIG1hcmt1cC5yZW1vdmUoMCwgZ01hcmt1cFByZWZpeC5sZW5ndGgoKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIGluaXRHZGtBdG9tcygpCitQYXN0ZWJvYXJkSGVscGVyJiBQYXN0ZWJvYXJkSGVs
cGVyOjpzaW5nbGV0b24oKQogewotICAgIHN0YXRpYyBnYm9vbGVhbiBpbml0aWFsaXplZCA9IEZB
TFNFOwotCi0gICAgaWYgKGluaXRpYWxpemVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpbml0
aWFsaXplZCA9IFRSVUU7Ci0KLSAgICB0ZXh0UGxhaW5BdG9tID0gZ2RrX2F0b21faW50ZXJuKCJ0
ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiLCBGQUxTRSk7Ci0gICAgbWFya3VwQXRvbSA9IGdka19h
dG9tX2ludGVybigidGV4dC9odG1sIiwgRkFMU0UpOwotICAgIG5ldHNjYXBlVVJMQXRvbSA9IGdk
a19hdG9tX2ludGVybigiX05FVFNDQVBFX1VSTCIsIEZBTFNFKTsKLSAgICB1cmlMaXN0QXRvbSA9
IGdka19hdG9tX2ludGVybigidGV4dC91cmktbGlzdCIsIEZBTFNFKTsKLSAgICBzbWFydFBhc3Rl
QXRvbSA9IGdka19hdG9tX2ludGVybigiYXBwbGljYXRpb24vdm5kLndlYmtpdGd0ay5zbWFydHBh
c3RlIiwgRkFMU0UpOwotICAgIHVua25vd25BdG9tID0gZ2RrX2F0b21faW50ZXJuKCJhcHBsaWNh
dGlvbi92bmQud2Via2l0Z3RrLnVua25vd24iLCBGQUxTRSk7Ci0gICAgZ01hcmt1cFByZWZpeCA9
ICI8bWV0YSBodHRwLWVxdWl2PVwiY29udGVudC10eXBlXCIgY29udGVudD1cInRleHQvaHRtbDsg
Y2hhcnNldD11dGYtOFwiPiI7Ci19Ci0KLVBhc3RlYm9hcmRIZWxwZXIqIFBhc3RlYm9hcmRIZWxw
ZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCkKLXsKLSAgICBERVBSRUNBVEVEX0RFRklORV9T
VEFUSUNfTE9DQUwoUGFzdGVib2FyZEhlbHBlciwgZGVmYXVsdEhlbHBlciwgKCkpOwotICAgIHJl
dHVybiAmZGVmYXVsdEhlbHBlcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGFzdGVib2Fy
ZEhlbHBlcj4gaGVscGVyOworICAgIHJldHVybiBoZWxwZXI7CiB9CiAKIFBhc3RlYm9hcmRIZWxw
ZXI6OlBhc3RlYm9hcmRIZWxwZXIoKQotICAgIDogbV90YXJnZXRMaXN0KGd0a190YXJnZXRfbGlz
dF9uZXcoMCwgMCkpCi17Ci0gICAgaW5pdEdka0F0b21zKCk7Ci0KLSAgICBndGtfdGFyZ2V0X2xp
c3RfYWRkX3RleHRfdGFyZ2V0cyhtX3RhcmdldExpc3QsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdl
dFR5cGVUZXh0KTsKLSAgICBndGtfdGFyZ2V0X2xpc3RfYWRkKG1fdGFyZ2V0TGlzdCwgbWFya3Vw
QXRvbSwgMCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU1hcmt1cCk7Ci0gICAgZ3RrX3Rh
cmdldF9saXN0X2FkZF91cmlfdGFyZ2V0cyhtX3RhcmdldExpc3QsIFBhc3RlYm9hcmRIZWxwZXI6
OlRhcmdldFR5cGVVUklMaXN0KTsKLSAgICBndGtfdGFyZ2V0X2xpc3RfYWRkKG1fdGFyZ2V0TGlz
dCwgbmV0c2NhcGVVUkxBdG9tLCAwLCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2Nh
cGVVUkwpOwotICAgIGd0a190YXJnZXRfbGlzdF9hZGRfaW1hZ2VfdGFyZ2V0cyhtX3RhcmdldExp
c3QsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZSwgVFJVRSk7Ci0gICAgZ3RrX3Rh
cmdldF9saXN0X2FkZChtX3RhcmdldExpc3QsIHVua25vd25BdG9tLCAwLCBQYXN0ZWJvYXJkSGVs
cGVyOjpUYXJnZXRUeXBlVW5rbm93bik7Ci19Ci0KLVBhc3RlYm9hcmRIZWxwZXI6On5QYXN0ZWJv
YXJkSGVscGVyKCkKKyAgICA6IG1fdGFyZ2V0TGlzdChhZG9wdEdSZWYoZ3RrX3RhcmdldF9saXN0
X25ldyhudWxscHRyLCAwKSkpCiB7Ci0gICAgZ3RrX3RhcmdldF9saXN0X3VucmVmKG1fdGFyZ2V0
TGlzdCk7CisgICAgdGV4dFBsYWluQXRvbSA9IGdka19hdG9tX2ludGVybl9zdGF0aWNfc3RyaW5n
KCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKTsKKyAgICBtYXJrdXBBdG9tID0gZ2RrX2F0b21f
aW50ZXJuX3N0YXRpY19zdHJpbmcoInRleHQvaHRtbCIpOworICAgIG5ldHNjYXBlVVJMQXRvbSA9
IGdka19hdG9tX2ludGVybl9zdGF0aWNfc3RyaW5nKCJfTkVUU0NBUEVfVVJMIik7CisgICAgdXJp
TGlzdEF0b20gPSBnZGtfYXRvbV9pbnRlcm5fc3RhdGljX3N0cmluZygidGV4dC91cmktbGlzdCIp
OworICAgIHNtYXJ0UGFzdGVBdG9tID0gZ2RrX2F0b21faW50ZXJuX3N0YXRpY19zdHJpbmcoImFw
cGxpY2F0aW9uL3ZuZC53ZWJraXRndGsuc21hcnRwYXN0ZSIpOworICAgIHVua25vd25BdG9tID0g
Z2RrX2F0b21faW50ZXJuX3N0YXRpY19zdHJpbmcoImFwcGxpY2F0aW9uL3ZuZC53ZWJraXRndGsu
dW5rbm93biIpOworCisgICAgZ3RrX3RhcmdldF9saXN0X2FkZF90ZXh0X3RhcmdldHMobV90YXJn
ZXRMaXN0LmdldCgpLCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlVGV4dCk7CisgICAgZ3Rr
X3RhcmdldF9saXN0X2FkZChtX3RhcmdldExpc3QuZ2V0KCksIG1hcmt1cEF0b20sIDAsIFBhc3Rl
Ym9hcmRIZWxwZXI6OlRhcmdldFR5cGVNYXJrdXApOworICAgIGd0a190YXJnZXRfbGlzdF9hZGRf
dXJpX3RhcmdldHMobV90YXJnZXRMaXN0LmdldCgpLCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRU
eXBlVVJJTGlzdCk7CisgICAgZ3RrX3RhcmdldF9saXN0X2FkZChtX3RhcmdldExpc3QuZ2V0KCks
IG5ldHNjYXBlVVJMQXRvbSwgMCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5ldHNjYXBl
VVJMKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfYWRkX2ltYWdlX3RhcmdldHMobV90YXJnZXRMaXN0
LmdldCgpLCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlSW1hZ2UsIFRSVUUpOworICAgIGd0
a190YXJnZXRfbGlzdF9hZGQobV90YXJnZXRMaXN0LmdldCgpLCB1bmtub3duQXRvbSwgMCwgUGFz
dGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVua25vd24pOwogfQogCiBHdGtUYXJnZXRMaXN0KiBQ
YXN0ZWJvYXJkSGVscGVyOjp0YXJnZXRMaXN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV90YXJn
ZXRMaXN0OworICAgIHJldHVybiBtX3RhcmdldExpc3QuZ2V0KCk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgc2VsZWN0aW9uRGF0YVRvVVRGOFN0cmluZyhHdGtTZWxlY3Rpb25EYXRhKiBkYXRhKQpAQCAt
MTg5LDcgKzE3MSw3IEBAIHZvaWQgUGFzdGVib2FyZEhlbHBlcjo6ZmlsbFNlbGVjdGlvbkRhdGEo
R3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uRGF0YSwgZ3VpbnQKIAogR3RrVGFyZ2V0TGlzdCog
UGFzdGVib2FyZEhlbHBlcjo6dGFyZ2V0TGlzdEZvckRhdGFPYmplY3QoRGF0YU9iamVjdEd0ayog
ZGF0YU9iamVjdCwgU21hcnRQYXN0ZUluY2x1c2lvbiBzaG91bGRJbmx1ZGVTbWFydFBhc3RlKQog
ewotICAgIEd0a1RhcmdldExpc3QqIGxpc3QgPSBndGtfdGFyZ2V0X2xpc3RfbmV3KDAsIDApOwor
ICAgIEd0a1RhcmdldExpc3QqIGxpc3QgPSBndGtfdGFyZ2V0X2xpc3RfbmV3KG51bGxwdHIsIDAp
OwogCiAgICAgaWYgKGRhdGFPYmplY3QtPmhhc1RleHQoKSkKICAgICAgICAgZ3RrX3RhcmdldF9s
aXN0X2FkZF90ZXh0X3RhcmdldHMobGlzdCwgVGFyZ2V0VHlwZVRleHQpOwpAQCAtMjc4LDcgKzI2
MCw3IEBAIHN0YXRpYyB2b2lkIGdldENsaXBib2FyZENvbnRlbnRzQ2FsbGJhY2soR3RrQ2xpcGJv
YXJkKiBjbGlwYm9hcmQsIEd0a1NlbGVjdGlvbkRhCiB7CiAgICAgRGF0YU9iamVjdEd0ayogZGF0
YU9iamVjdCA9IERhdGFPYmplY3RHdGs6OmZvckNsaXBib2FyZChjbGlwYm9hcmQpOwogICAgIEFT
U0VSVChkYXRhT2JqZWN0KTsKLSAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2Fy
ZEhlbHBlcigpLT5maWxsU2VsZWN0aW9uRGF0YShzZWxlY3Rpb25EYXRhLCBpbmZvLCBkYXRhT2Jq
ZWN0KTsKKyAgICBQYXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS5maWxsU2VsZWN0aW9uRGF0
YShzZWxlY3Rpb25EYXRhLCBpbmZvLCBkYXRhT2JqZWN0KTsKIH0KIAogc3RhdGljIHZvaWQgY2xl
YXJDbGlwYm9hcmRDb250ZW50c0NhbGxiYWNrKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBncG9p
bnRlciBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRIZWxwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVs
cGVyLmgKaW5kZXggMGQwM2QxMC4uMWEyYWZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oCkBAIC0yNSwxOCArMjUsMTkgQEAKICNpZm5kZWYg
UGFzdGVib2FyZEhlbHBlcl9oCiAjZGVmaW5lIFBhc3RlYm9hcmRIZWxwZXJfaAogCi0jaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERh
dGFPYmplY3RHdGs7CiAKIGNsYXNzIFBhc3RlYm9hcmRIZWxwZXIgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFBhc3RlYm9hcmRIZWxwZXIpOwogcHVibGljOgotICAgIFBhc3RlYm9hcmRIZWxw
ZXIoKTsKLSAgICB2aXJ0dWFsIH5QYXN0ZWJvYXJkSGVscGVyKCk7Ci0gICAgc3RhdGljIFBhc3Rl
Ym9hcmRIZWxwZXIqIGRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCk7CisgICAgc3RhdGljIFBhc3Rl
Ym9hcmRIZWxwZXImIHNpbmdsZXRvbigpOwogCiAgICAgZW51bSBTbWFydFBhc3RlSW5jbHVzaW9u
IHsgSW5jbHVkZVNtYXJ0UGFzdGUsIERvTm90SW5jbHVkZVNtYXJ0UGFzdGUgfTsKIApAQCAtNTIs
NyArNTMsMTIgQEAgcHVibGljOgogICAgIGJvb2wgY2xpcGJvYXJkQ29udGVudFN1cHBvcnRzU21h
cnRSZXBsYWNlKEd0a0NsaXBib2FyZCopOwogCiBwcml2YXRlOgotICAgIEd0a1RhcmdldExpc3Qq
IG1fdGFyZ2V0TGlzdDsKKyAgICBQYXN0ZWJvYXJkSGVscGVyKCk7CisgICAgflBhc3RlYm9hcmRI
ZWxwZXIoKSA9IGRlbGV0ZTsKKworICAgIEdSZWZQdHI8R3RrVGFyZ2V0TGlzdD4gbV90YXJnZXRM
aXN0OworCisgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8UGFzdGVib2FyZEhl
bHBlcj47CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTQ4ZDk5Yy4uMGVmNzZiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBDbGVhbnVwIFBhc3RlYm9hcmRIZWxw
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzAz
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBQ
YXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKSBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3RlYm9h
cmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3
QmFzZUNvbnN0cnVjdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYWdBbmREcm9wSGFuZGxlcjo6c3RhcnREcmFn
KToKKyAgICAgICAgKFdlYktpdDo6RHJhZ0FuZERyb3BIYW5kbGVyOjpmaWxsRHJhZ0RhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpEcmFnQW5kRHJvcEhhbmRsZXI6OmRhdGFPYmplY3RGb3JEcm9wRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6OkRyYWdBbmREcm9wSGFuZGxlcjo6cmVxdWVzdERyYWdEYXRh
KToKKwogMjAxNS0wNy0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTg1NDE1KTogW0dUS10gQnJvd3NlcnMgY3Jhc2gg
d2hlbiBhbiBpbnB1dCBtZXRob2QgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IGYyZmUwZWUu
LjJlZjdlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTQ2Myw3ICs0NjMsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZUNvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICBndGtfd2lk
Z2V0X3NldF9jYW5fZm9jdXModmlld1dpZGdldCwgVFJVRSk7CiAgICAgZ3RrX2RyYWdfZGVzdF9z
ZXQodmlld1dpZGdldCwgc3RhdGljX2Nhc3Q8R3RrRGVzdERlZmF1bHRzPigwKSwgbnVsbHB0ciwg
MCwKICAgICAgICAgc3RhdGljX2Nhc3Q8R2RrRHJhZ0FjdGlvbj4oR0RLX0FDVElPTl9DT1BZIHwg
R0RLX0FDVElPTl9NT1ZFIHwgR0RLX0FDVElPTl9MSU5LIHwgR0RLX0FDVElPTl9QUklWQVRFKSk7
Ci0gICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3Qodmlld1dpZGdldCwgUGFzdGVib2Fy
ZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpKTsKKyAgICBn
dGtfZHJhZ19kZXN0X3NldF90YXJnZXRfbGlzdCh2aWV3V2lkZ2V0LCBQYXN0ZWJvYXJkSGVscGVy
OjpzaW5nbGV0b24oKS50YXJnZXRMaXN0KCkpOwogCiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlKiBwcml2ID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uob2JqZWN0KS0+cHJpdjsKICAgICBwcml2
LT5wYWdlQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4odmlld1dpZGdl
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9w
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0RyYWdBbmREcm9wSGFu
ZGxlci5jcHAKaW5kZXggY2NmNmYzMC4uMzA0YjZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9EcmFnQW5kRHJvcEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvRHJhZ0FuZERyb3BIYW5kbGVyLmNwcApAQCAtMTExLDcgKzExMSw3
IEBAIHN0YXRpYyBpbmxpbmUgRHJhZ09wZXJhdGlvbiBnZGtEcmFnQWN0aW9uVG9EcmFnT3BlcmF0
aW9uKEdka0RyYWdBY3Rpb24gZ2RrQWN0aW9uCiB2b2lkIERyYWdBbmREcm9wSGFuZGxlcjo6c3Rh
cnREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IGRyYWdJbWFnZSkKIHsKICAgICBSZWZQdHI8RGF0YU9iamVjdEd0az4gZGF0YU9iamVjdCA9
IGFkb3B0UmVmKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKLSAgICBHUmVmUHRyPEd0a1Rhcmdl
dExpc3Q+IHRhcmdldExpc3QgPSBhZG9wdEdSZWYoUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBh
c3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdEZvckRhdGFPYmplY3QoZGF0YU9iamVjdC5nZXQo
KSkpOworICAgIEdSZWZQdHI8R3RrVGFyZ2V0TGlzdD4gdGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihQ
YXN0ZWJvYXJkSGVscGVyOjpzaW5nbGV0b24oKS50YXJnZXRMaXN0Rm9yRGF0YU9iamVjdChkYXRh
T2JqZWN0LmdldCgpKSk7CiAgICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gY3VycmVudEV2ZW50KGd0
a19nZXRfY3VycmVudF9ldmVudCgpKTsKIAogICAgIEdka0RyYWdDb250ZXh0KiBjb250ZXh0ID0g
Z3RrX2RyYWdfYmVnaW4obV9wYWdlLnZpZXdXaWRnZXQoKSwgdGFyZ2V0TGlzdC5nZXQoKSwgZHJh
Z09wZXJhdGlvblRvR2RrRHJhZ0FjdGlvbnMoZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRp
b25NYXNrKCkpLApAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgRHJhZ0FuZERyb3BIYW5kbGVyOjpz
dGFydERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBQYXNzUmVmUHRyPFNoYXJlYWJsCiB2
b2lkIERyYWdBbmREcm9wSGFuZGxlcjo6ZmlsbERyYWdEYXRhKEdka0RyYWdDb250ZXh0KiBjb250
ZXh0LCBHdGtTZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25EYXRhLCB1bnNpZ25lZCBpbmZvKQogewog
ICAgIGlmIChEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0ID0gbV9kcmFnZ2luZ0RhdGFPYmplY3Rz
LmdldChjb250ZXh0KSkKLSAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9h
cmRIZWxwZXIoKS0+ZmlsbFNlbGVjdGlvbkRhdGEoc2VsZWN0aW9uRGF0YSwgaW5mbywgZGF0YU9i
amVjdCk7CisgICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OnNpbmdsZXRvbigpLmZpbGxTZWxlY3Rp
b25EYXRhKHNlbGVjdGlvbkRhdGEsIGluZm8sIGRhdGFPYmplY3QpOwogfQogCiB2b2lkIERyYWdB
bmREcm9wSGFuZGxlcjo6ZmluaXNoRHJhZyhHZGtEcmFnQ29udGV4dCogY29udGV4dCkKQEAgLTE1
Myw3ICsxNTMsNyBAQCBEYXRhT2JqZWN0R3RrKiBEcmFnQW5kRHJvcEhhbmRsZXI6OmRhdGFPYmpl
Y3RGb3JEcm9wRGF0YShHZGtEcmFnQ29udGV4dCogY29udGV4dAogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIGRyb3BwaW5nQ29udGV4dC0+cGVuZGluZ0RhdGFSZXF1ZXN0cy0tOwotICAg
IFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPmZpbGxEYXRhT2Jq
ZWN0RnJvbURyb3BEYXRhKHNlbGVjdGlvbkRhdGEsIGluZm8sIGRyb3BwaW5nQ29udGV4dC0+ZGF0
YU9iamVjdC5nZXQoKSk7CisgICAgUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xldG9uKCkuZmlsbERh
dGFPYmplY3RGcm9tRHJvcERhdGEoc2VsZWN0aW9uRGF0YSwgaW5mbywgZHJvcHBpbmdDb250ZXh0
LT5kYXRhT2JqZWN0LmdldCgpKTsKICAgICBpZiAoZHJvcHBpbmdDb250ZXh0LT5wZW5kaW5nRGF0
YVJlcXVlc3RzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMTg1LDcgKzE4NSw3IEBA
IERhdGFPYmplY3RHdGsqIERyYWdBbmREcm9wSGFuZGxlcjo6cmVxdWVzdERyYWdEYXRhKEdka0Ry
YWdDb250ZXh0KiBjb250ZXh0LCBjb25zCiAgICAgaWYgKCFkcm9wcGluZ0NvbnRleHQpIHsKICAg
ICAgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBtX3BhZ2Uudmlld1dpZGdldCgpOwogICAgICAgICBk
cm9wcGluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPERyb3BwaW5nQ29udGV4dD4oY29udGV4
dCwgcG9zaXRpb24pOwotICAgICAgICBWZWN0b3I8R2RrQXRvbT4gYWNjZXB0YWJsZVRhcmdldHMo
UGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+ZHJvcEF0b21zRm9y
Q29udGV4dCh3aWRnZXQsIGRyb3BwaW5nQ29udGV4dC0+Z2RrQ29udGV4dCkpOworICAgICAgICBW
ZWN0b3I8R2RrQXRvbT4gYWNjZXB0YWJsZVRhcmdldHMoUGFzdGVib2FyZEhlbHBlcjo6c2luZ2xl
dG9uKCkuZHJvcEF0b21zRm9yQ29udGV4dCh3aWRnZXQsIGRyb3BwaW5nQ29udGV4dC0+Z2RrQ29u
dGV4dCkpOwogICAgICAgICBkcm9wcGluZ0NvbnRleHQtPnBlbmRpbmdEYXRhUmVxdWVzdHMgPSBh
Y2NlcHRhYmxlVGFyZ2V0cy5zaXplKCk7CiAgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDogYWNj
ZXB0YWJsZVRhcmdldHMpCiAgICAgICAgICAgICBndGtfZHJhZ19nZXRfZGF0YSh3aWRnZXQsIGRy
b3BwaW5nQ29udGV4dC0+Z2RrQ29udGV4dCwgdGFyZ2V0LCB0aW1lKTsK
</data>
<flag name="review"
          id="282072"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>