<?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>103377</bug_id>
          
          <creation_ts>2012-11-27 01:21:09 -0800</creation_ts>
          <short_desc>[GTK] Add WebKit2 API for isolated worlds</short_desc>
          <delta_ts>2013-08-26 08:08:26 -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>WebKitGTK</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>
          <dependson>119743</dependson>
    
    <dependson>120252</dependson>
    
    <dependson>120268</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>svillar</cc>
    
    <cc>whateley</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>776467</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-11-27 01:21:09 -0800</bug_when>
    <thetext>As requested on webkit-gtk mailing list.
http://lists.webkit.org/pipermail/webkit-gtk/2012-November/001293.html

There was at one time a desire to add this API to WebKit1, covered by bug #31508.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919826</commentid>
    <comment_count>1</comment_count>
      <attachid>209352</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-22 06:09:13 -0700</bug_when>
    <thetext>Created attachment 209352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919880</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-22 08:02:01 -0700</bug_when>
    <thetext>Patch doesn&apos;t apply because it depends on patch applied to bug #119743</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920199</commentid>
    <comment_count>3</comment_count>
      <attachid>209352</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-08-23 05:37:18 -0700</bug_when>
    <thetext>Comment on attachment 209352
Patch

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.cpp:41
&gt; +    DEFINE_STATIC_LOCAL(ScriptWorldMap, map, ());

This can be NeverDestroyed&lt;ScriptWorldMap&gt; map if you include wtf/NeverDestroyed.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920201</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-23 05:46:13 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 209352 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=209352&amp;action=review

Thanks for the review. 

&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.cpp:41
&gt; &gt; +    DEFINE_STATIC_LOCAL(ScriptWorldMap, map, ());
&gt; 
&gt; This can be NeverDestroyed&lt;ScriptWorldMap&gt; map if you include wtf/NeverDestroyed.h

Sure, I didn&apos;t know NeverDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920205</commentid>
    <comment_count>5</comment_count>
      <attachid>209352</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-08-23 06:00:35 -0700</bug_when>
    <thetext>Comment on attachment 209352
Patch

The API looks sensible to me, +1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920217</commentid>
    <comment_count>6</comment_count>
      <attachid>209352</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-08-23 07:40:20 -0700</bug_when>
    <thetext>Comment on attachment 209352
Patch

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

Looks good to me as well.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/WebExtensionTest.cpp:154
&gt; +        const char *script;

Nit: asterisk location

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.cpp:88
&gt; +    return scriptWorlds().get(scriptWorld);

This returns null if the world isn&apos;t in the map?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920574</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-24 04:08:26 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 209352 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=209352&amp;action=review
&gt; 
&gt; Looks good to me as well.

Thanks!

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/tests/WebExtensionTest.cpp:154
&gt; &gt; +        const char *script;
&gt; 
&gt; Nit: asterisk location

Ooops

&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.cpp:88
&gt; &gt; +    return scriptWorlds().get(scriptWorld);
&gt; 
&gt; This returns null if the world isn&apos;t in the map?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920580</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-24 05:01:06 -0700</bug_when>
    <thetext>Committed r154545: &lt;http://trac.webkit.org/changeset/154545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>920632</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-24 12:58:31 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 120252</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921025</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-08-26 08:08:26 -0700</bug_when>
    <thetext>Committed r154603: &lt;http://trac.webkit.org/changeset/154603&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209352</attachid>
            <date>2013-08-22 06:09:13 -0700</date>
            <delta_ts>2013-08-23 07:40:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-gtk-isolated-worlds.diff</filename>
            <type>text/plain</type>
            <size>30317</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiYzc0ZjQ2Li44Zjg1M2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTMtMDgtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBXZWJLaXQyIEFQSSBmb3IgaXNvbGF0ZWQgd29ybGRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMzNzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBzeW1i
b2xzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJFeHRlbnNpb25z
LmNwcDoKKyAgICAgICAgKHRlc3RXZWJFeHRlbnNpb25XaW5kb3dPYmplY3RDbGVhcmVkKToKKyAg
ICAgICAgKHNjcmlwdERpYWxvZ0NhbGxiYWNrKToKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRJbklz
b2xhdGVkV29ybGRGaW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKHRlc3RXZWJFeHRlbnNpb25J
c29sYXRlZFdvcmxkKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvdGVzdHMvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6CisgICAgICAgIChlY2hvQ2FsbGJh
Y2spOgorICAgICAgICAod2luZG93T2JqZWN0Q2xlYXJlZCk6CisgICAgICAgIChnZXRXZWJQYWdl
KToKKyAgICAgICAgKG1ldGhvZENhbGxDYWxsYmFjayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF9m
cmFtZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQpOiBOZXcgcHVibGlj
CisgICAgICAgIG1ldGhvZCB0byB0Z2V0IHRoZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0
IGZvciBhIGdpdmVuIHNjcmlwdAorICAgICAgICB3b3JsZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKHNjcmlwdFdvcmxkcyk6IEdsb2JhbCBXZWJLaXRTY3JpcHRXb3JsZCBtYXAuCisg
ICAgICAgIChfV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlOjp+X1dlYktpdFNjcmlwdFdvcmxkUHJp
dmF0ZSk6CisgICAgICAgICh3ZWJraXRTY3JpcHRXb3JsZEdldCk6IEdldCB0aGUgV2ViS2l0U2Ny
aXB0V29ybGQgd3JhcHBpbmcgdGhlCisgICAgICAgIGdpdmVuIGluamVjdGVkIGJ1bmRsZSBzY3Jp
cHQgd29ybGQuCisgICAgICAgICh3ZWJraXRTY3JpcHRXb3JsZEdldEluamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQpOiBHZXQgdGhlIGluamVjdGVkCisgICAgICAgIGJ1bmRsZSBzY3JpcHQgd29ybGQg
d3JhcHBlZCBieSB0aGUgZ2l2ZW4gV2ViS2l0U2NyaXB0V29ybGQuCisgICAgICAgICh3ZWJraXRT
Y3JpcHRXb3JsZFdpbmRvd09iamVjdENsZWFyZWQpOiBFbWl0CisgICAgICAgIFdlYktpdFNjcmlw
dFdvcmxkOjp3aW5kb3ctb2JqZWN0LWNsZWFyZWQgc2lnbmFsLgorICAgICAgICAod2Via2l0U2Ny
aXB0V29ybGRDcmVhdGUpOiBDcmVhdGUgYSBuZXcgV2ViS2l0U2NyaXB0V29ybGQgd3JhcHBpbmcK
KyAgICAgICAgdGhlIGdpdmVuIGluamVjdGVkIGJ1bmRsZSBzY3JpcHQgd29ybGQuCisgICAgICAg
IChjcmVhdGVEZWZhdWx0U2NyaXB0V29ybGQpOiBDcmVhdGUgdGhlIGRlZmF1bHQgV2ViS2l0U2Ny
aXB0V29ybGQKKyAgICAgICAgd3JhcHBpbmcgdGhlIG5vcm1hbCB3b3JsZC4KKyAgICAgICAgKHdl
YmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQpOiBSZXR1cm4gdGhlIGRlZmF1bHQgV2ViS2l0
U2NyaXB0V29ybGQuCisgICAgICAgICh3ZWJraXRfc2NyaXB0X3dvcmxkX25ldyk6IENyZWF0ZSBh
IG5ldyBpc29sYXRlZCBXZWJLaXRTY3JpcHRXb3JsZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGQuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkUHJp
dmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0V2ViUGFnZS5jcHA6CisgICAgICAgIChkaWRDbGVhcldpbmRvd09iamVjdEZvckZy
YW1lKTogQ2FsbCB3ZWJraXRTY3JpcHRXb3JsZFdpbmRvd09iamVjdENsZWFyZWQoKS4KKyAgICAg
ICAgKHdlYmtpdFdlYlBhZ2VDcmVhdGUpOiBBZGQgaW1wbGVtZW50YXRpb24gZm9yIGNhbGxiYWNr
CisgICAgICAgIGRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUgaW4gaW5qZWN0ZWQgYnVuZGxl
IGxvYWRlciBjbGllbnQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg6CisgICAgICAgIEluY2x1ZGUgV2ViS2l0U2NyaXB0
V29ybGQuaC4KKwogMjAxMy0wOC0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRXhwb3NlIFdlYktpdEZyYW1lIGluIFdlYktpdDJH
VEsrIHdlYiBleHRlbnNpb25zIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
NzhjMzRhZC4uZWQ5Nzc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNDAs
NiArMTQwLDcgQEAgd2Via2l0Ml93ZWJfZXh0ZW5zaW9uX2hfYXBpICs9IFwKIAkkKFdlYktpdDIp
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uaCBc
CiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJh
bWUuaCBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViUGFnZS5oIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRTY3JpcHRXb3JsZC5oIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCiAKIHdlYmtpdDJfYnVpbHRf
c291cmNlcyArPSBcCkBAIC0xMDYzLDYgKzEwNjQsOSBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRG
cmFtZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRGcmFtZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWVQcml2YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRTY3JpcHRXb3JsZC5jcHAgXAor
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRT
Y3JpcHRXb3JsZC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlLmggXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViRXh0ZW5zaW9uLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0
aW9ucy50eHQKaW5kZXggMjkwNzhkZC4uZThiZTYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CkBAIC0xMDYyLDYgKzEwNjIsNyBAQCBXZWJLaXRGcmFtZQogd2Via2l0X2ZyYW1lX2lzX21h
aW5fZnJhbWUKIHdlYmtpdF9mcmFtZV9nZXRfdXJpCiB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3Jp
cHRfZ2xvYmFsX2NvbnRleHQKK3dlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zv
cl9zY3JpcHRfd29ybGQKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRGcmFtZUNsYXNz
CkBAIC0xMDc2LDMgKzEwNzcsMjMgQEAgV0VCS0lUX0ZSQU1FX0dFVF9DTEFTUwogV2ViS2l0RnJh
bWVQcml2YXRlCiB3ZWJraXRfZnJhbWVfZ2V0X3R5cGUKIDwvU0VDVElPTj4KKworPFNFQ1RJT04+
Cis8RklMRT5XZWJLaXRTY3JpcHRXb3JsZDwvRklMRT4KK1dlYktpdFNjcmlwdFdvcmxkCit3ZWJr
aXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0Cit3ZWJraXRfc2NyaXB0X3dvcmxkX25ldworCis8
U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdFNjcmlwdFdvcmxkQ2xhc3MKK1dFQktJVF9UWVBF
X1NDUklQVF9XT1JMRAorV0VCS0lUX1NDUklQVF9XT1JMRAorV0VCS0lUX0lTX1NDUklQVF9XT1JM
RAorV0VCS0lUX1NDUklQVF9XT1JMRF9DTEFTUworV0VCS0lUX0lTX1NDUklQVF9XT1JMRF9DTEFT
UworV0VCS0lUX1NDUklQVF9XT1JMRF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4K
K1dlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZQord2Via2l0X3NjcmlwdF93b3JsZF9nZXRfdHlwZQor
PC9TRUNUSU9OPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvVGVzdFdlYkV4dGVuc2lvbnMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvdGVzdHMvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCmluZGV4IDUyN2NjOTMuLjkxY2I3YWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RX
ZWJFeHRlbnNpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90
ZXN0cy9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKQEAgLTEwMCw2ICsxMDAsODEgQEAgc3RhdGljIHZv
aWQgdGVzdFdlYktpdFdlYlZpZXdQcm9jZXNzQ3Jhc2hlZChXZWJWaWV3VGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKICAgICBnX21haW5fbG9vcF9ydW4odGVzdC0+bV9tYWluTG9vcCk7CiB9CiAK
K3N0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25XaW5kb3dPYmplY3RDbGVhcmVkKFdlYlZpZXdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48
aGVhZGVyPjwvaGVhZGVyPjxib2R5PjwvYm9keT48L2h0bWw+IiwgMCk7CisgICAgdGVzdC0+d2Fp
dFVudGlsTG9hZEZpbmlzaGVkKCk7CisKKyAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CisgICAg
V2ViS2l0SmF2YXNjcmlwdFJlc3VsdCogamF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFT
Y3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgid2luZG93LmVjaG8oJ0ZvbycpOyIsICZlcnJvci5v
dXRQdHIoKSk7CisgICAgZ19hc3NlcnQoamF2YXNjcmlwdFJlc3VsdCk7CisgICAgZ19hc3NlcnQo
IWVycm9yLmdldCgpKTsKKyAgICBHT3duUHRyPGNoYXI+IHZhbHVlU3RyaW5nKFdlYlZpZXdUZXN0
OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1bHQpKTsKKyAgICBnX2Fz
c2VydF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAiRm9vIik7Cit9CisKK3N0YXRpYyBn
Ym9vbGVhbiBzY3JpcHREaWFsb2dDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiwgV2ViS2l0U2NyaXB0
RGlhbG9nKiBkaWFsb2csIGNoYXIqKiByZXN1bHQpCit7CisgICAgZ19hc3NlcnRfY21wdWludCh3
ZWJraXRfc2NyaXB0X2RpYWxvZ19nZXRfZGlhbG9nX3R5cGUoZGlhbG9nKSwgPT0sIFdFQktJVF9T
Q1JJUFRfRElBTE9HX0FMRVJUKTsKKyAgICBnX2Fzc2VydCghKnJlc3VsdCk7CisgICAgKnJlc3Vs
dCA9IGdfc3RyZHVwKHdlYmtpdF9zY3JpcHRfZGlhbG9nX2dldF9tZXNzYWdlKGRpYWxvZykpOwor
ICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0SW5Jc29sYXRl
ZFdvcmxkRmluaXNoZWRDYWxsYmFjayhHREJ1c1Byb3h5KiBwcm94eSwgR0FzeW5jUmVzdWx0KiBy
ZXN1bHQsIFdlYlZpZXdUZXN0KiB0ZXN0KQoreworICAgIGdfZGJ1c19wcm94eV9jYWxsX2Zpbmlz
aChwcm94eSwgcmVzdWx0LCAwKTsKKyAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFpbkxv
b3ApOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5zaW9uSXNvbGF0ZWRXb3JsZChXZWJW
aWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0
bWw+PGhlYWRlcj48L2hlYWRlcj48Ym9keT48ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj48L2JvZHk+
PC9odG1sPiIsIDApOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAg
R093blB0cjxjaGFyPiByZXN1bHQ7CisgICAgZ3Vsb25nIHNjcmlwdERpYWxvZ0lEID0gZ19zaWdu
YWxfY29ubmVjdCh0ZXN0LT5tX3dlYlZpZXcsICJzY3JpcHQtZGlhbG9nIiwgR19DQUxMQkFDSyhz
Y3JpcHREaWFsb2dDYWxsYmFjayksICZyZXN1bHQub3V0UHRyKCkpOworCisgICAgc3RhdGljIGNv
bnN0IGNoYXIgKm1haW5Xb3JsZFNjcmlwdCA9CisgICAgICAgICJ0b3AuZm9vID0gJ0Zvbyc7XG4i
CisgICAgICAgICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9
IHRvcC5mb287XG4iCisgICAgICAgICJ3aW5kb3cub3BlbiA9IGZ1bmN0aW9uICgpIHsgYWxlcnQo
J01haW4gV29ybGQnKTsgfVxuIgorICAgICAgICAiZG9jdW1lbnQub3BlbigxLCAyLCAzKTsiOwor
ICAgIHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZChtYWluV29ybGRTY3Jp
cHQsIDApOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHQuZ2V0KCksID09LCAiTWFpbiBXb3Js
ZCIpOworICAgIHJlc3VsdC5jbGVhcigpOworCisgICAgV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCog
amF2YXNjcmlwdFJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hl
ZCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwiLCAwKTsKKyAg
ICBnX2Fzc2VydChqYXZhc2NyaXB0UmVzdWx0KTsKKyAgICBHT3duUHRyPGNoYXI+IHZhbHVlU3Ry
aW5nKFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKGphdmFzY3JpcHRSZXN1
bHQpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAiRm9vIik7
CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqaXNvbGF0ZWRXb3JsZFNjcmlwdCA9CisgICAgICAg
ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IHRvcC5mb287
XG4iCisgICAgICAgICJ3aW5kb3cub3BlbiA9IGZ1bmN0aW9uICgpIHsgYWxlcnQoJ0lzb2xhdGVk
IFdvcmxkJyk7IH1cbiIKKyAgICAgICAgImRvY3VtZW50Lm9wZW4oMSwgMiwgMyk7IjsKKyAgICBH
UmVmUHRyPEdEQnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVmKGJ1cy0+Y3JlYXRlUHJveHkoIm9y
Zy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLAorICAgICAgICAiL29yZy93ZWJraXQvZ3Rr
L1dlYkV4dGVuc2lvblRlc3QiICwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCB0
ZXN0LT5tX21haW5Mb29wKSk7CisgICAgZ19kYnVzX3Byb3h5X2NhbGwocHJveHkuZ2V0KCksCisg
ICAgICAgICJSdW5KYXZhU2NyaXB0SW5Jc29sYXRlZFdvcmxkIiwKKyAgICAgICAgZ192YXJpYW50
X25ldygiKHQmcykiLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQodGVzdC0+bV93ZWJWaWV3
KSwgaXNvbGF0ZWRXb3JsZFNjcmlwdCksCisgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUs
CisgICAgICAgIC0xLCAwLAorICAgICAgICByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2Fs
bGJhY2s+KHJ1bkphdmFTY3JpcHRJbklzb2xhdGVkV29ybGRGaW5pc2hlZENhbGxiYWNrKSwKKyAg
ICAgICAgdGVzdCk7CisgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1fbWFpbkxvb3ApOworICAg
IGdfYXNzZXJ0X2NtcHN0cihyZXN1bHQuZ2V0KCksID09LCAiSXNvbGF0ZWQgV29ybGQiKTsKKyAg
ICByZXN1bHQuY2xlYXIoKTsKKworICAgIC8vIENoZWNrIHRoYXQgJ3RvcC5mb28nIGRlZmluZWQg
aW4gbWFpbiB3b3JsZCBpcyBub3QgdmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4KKyAgICBqYXZh
c2NyaXB0UmVzdWx0ID0gdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCIsIDApOworICAgIGdf
YXNzZXJ0KGphdmFzY3JpcHRSZXN1bHQpOworICAgIHZhbHVlU3RyaW5nLnNldChXZWJWaWV3VGVz
dDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhqYXZhc2NyaXB0UmVzdWx0KSk7CisgICAgZ19h
c3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgInVuZGVmaW5lZCIpOworCisgICAg
Z19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KHRlc3QtPm1fd2ViVmlldywgc2NyaXB0RGlhbG9n
SUQpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7CiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3Nl
dF93ZWJfZXh0ZW5zaW9uc19kaXJlY3Rvcnkod2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0
KCksIFdFQktJVF9URVNUX1dFQl9FWFRFTlNJT05TX0RJUik7CkBAIC0xMTAsNiArMTg1LDggQEAg
dm9pZCBiZWZvcmVBbGwoKQogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lv
biIsICJkb20tZG9jdW1lbnQtdGl0bGUiLCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUpOwogICAg
IFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJkb2N1bWVudC1sb2FkZWQt
c2lnbmFsIiwgdGVzdERvY3VtZW50TG9hZGVkU2lnbmFsKTsKICAgICBXZWJWaWV3VGVzdDo6YWRk
KCJXZWJLaXRXZWJWaWV3IiwgIndlYi1wcm9jZXNzLWNyYXNoZWQiLCB0ZXN0V2ViS2l0V2ViVmll
d1Byb2Nlc3NDcmFzaGVkKTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNp
b24iLCAid2luZG93LW9iamVjdC1jbGVhcmVkIiwgdGVzdFdlYkV4dGVuc2lvbldpbmRvd09iamVj
dENsZWFyZWQpOworICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJp
c29sYXRlZC13b3JsZCIsIHRlc3RXZWJFeHRlbnNpb25Jc29sYXRlZFdvcmxkKTsKIH0KIAogdm9p
ZCBhZnRlckFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9XZWJFeHRlbnNpb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1dlYkV4dGVuc2lvblRlc3QuY3BwCmluZGV4IDY5MjY2M2UuLjk4NjMwOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYkV4
dGVuc2lvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rl
c3RzL1dlYkV4dGVuc2lvblRlc3QuY3BwCkBAIC0xOSwxMiArMTksMTQgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0UmVmLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxnaW8vZ2lv
Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0KICNpbmNsdWRl
IDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KIAogc3RhdGljIGNv
bnN0IGNoYXIgaW50cm9zcGVjdGlvblhNTFtdID0KICAgICAiPG5vZGU+IgpAQCAtMzUsNiArMzcs
MTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgaW50cm9zcGVjdGlvblhNTFtdID0KICAgICAiICA8L21l
dGhvZD4iCiAgICAgIiAgPG1ldGhvZCBuYW1lPSdBYm9ydFByb2Nlc3MnPiIKICAgICAiICA8L21l
dGhvZD4iCisgICAgIiAgPG1ldGhvZCBuYW1lPSdSdW5KYXZhU2NyaXB0SW5Jc29sYXRlZFdvcmxk
Jz4iCisgICAgIiAgIDxhcmcgdHlwZT0ndCcgbmFtZT0ncGFnZUlEJyBkaXJlY3Rpb249J2luJy8+
IgorICAgICIgICA8YXJnIHR5cGU9J3MnIG5hbWU9J3NjcmlwdCcgZGlyZWN0aW9uPSdpbicvPiIK
KyAgICAiICA8L21ldGhvZD4iCiAgICAgIiAgPHNpZ25hbCBuYW1lPSdEb2N1bWVudExvYWRlZCcv
PiIKICAgICAiICA8c2lnbmFsIG5hbWU9J1VSSUNoYW5nZWQnPiIKICAgICAiICAgPGFyZyB0eXBl
PSdzJyBuYW1lPSd1cmknIGRpcmVjdGlvbj0nb3V0Jy8+IgpAQCAtOTMsNiArOTksNDEgQEAgc3Rh
dGljIHZvaWQgcGFnZUNyZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24qLCBXZWJLaXRX
ZWJQYWdlKiB3ZWJQYWdlLCBncG8KICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJzZW5k
LXJlcXVlc3QiLCBHX0NBTExCQUNLKHNlbmRSZXF1ZXN0Q2FsbGJhY2spLCAwKTsKIH0KIAorc3Rh
dGljIEpTVmFsdWVSZWYgZWNob0NhbGxiYWNrKEpTQ29udGV4dFJlZiBqc0NvbnRleHQsIEpTT2Jq
ZWN0UmVmLCBKU09iamVjdFJlZiwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVS
ZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqKQoreworICAgIGlmIChhcmd1bWVudENvdW50IDw9
IDApCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChqc0NvbnRleHQpOworCisg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHN0cmluZyhBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShqc0NvbnRleHQsIGFyZ3VtZW50c1swXSwgMCkpOworICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVN0cmluZyhqc0NvbnRleHQsIHN0cmluZy5nZXQoKSk7Cit9CisKK3N0YXRpYyB2b2lkIHdpbmRv
d09iamVjdENsZWFyZWQoV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkLCBXZWJLaXRXZWJQYWdlKiBw
YWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIGdwb2ludGVyKQoreworICAgIEpTR2xvYmFsQ29udGV4
dFJlZiBqc0NvbnRleHQgPSB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9mb3Jf
c2NyaXB0X3dvcmxkKGZyYW1lLCB3b3JsZCk7CisgICAgZ19hc3NlcnQoanNDb250ZXh0KTsKKyAg
ICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoanND
b250ZXh0KTsKKyAgICBnX2Fzc2VydChnbG9iYWxPYmplY3QpOworCisgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IGZ1bmN0aW9uTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoImVjaG8iKSk7CisgICAgSlNPYmplY3RSZWYgZnVuY3Rpb24gPSBKU09iamVjdE1ha2VG
dW5jdGlvbldpdGhDYWxsYmFjayhqc0NvbnRleHQsIGZ1bmN0aW9uTmFtZS5nZXQoKSwgZWNob0Nh
bGxiYWNrKTsKKyAgICBKU09iamVjdFNldFByb3BlcnR5KGpzQ29udGV4dCwgZ2xvYmFsT2JqZWN0
LCBmdW5jdGlvbk5hbWUuZ2V0KCksIGZ1bmN0aW9uLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5LCAwKTsKK30KKworc3RhdGljIFdl
YktpdFdlYlBhZ2UqIGdldFdlYlBhZ2UoV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIHVp
bnQ2NF90IHBhZ2VJRCwgR0RCdXNNZXRob2RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uKQoreworICAg
IFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSB3ZWJraXRfd2ViX2V4dGVuc2lvbl9nZXRfcGFnZShleHRl
bnNpb24sIHBhZ2VJRCk7CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAgIGdfZGJ1c19tZXRob2Rf
aW52b2NhdGlvbl9yZXR1cm5fZXJyb3IoCisgICAgICAgICAgICBpbnZvY2F0aW9uLCBHX0RCVVNf
RVJST1IsIEdfREJVU19FUlJPUl9JTlZBTElEX0FSR1MsCisgICAgICAgICAgICAiSW52YWxpZCBw
YWdlIElEOiAlIiBHX0dVSU5UNjRfRk9STUFULCBwYWdlSUQpOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CisKKyAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfcGFnZV9nZXRfaWQocGFn
ZSksID09LCBwYWdlSUQpOworICAgIHJldHVybiBwYWdlOworfQorCiBzdGF0aWMgdm9pZCBtZXRo
b2RDYWxsQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBz
ZW5kZXIsIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUs
IGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIEdWYXJpYW50KiBwYXJhbWV0ZXJzLCBHREJ1c01ldGhv
ZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2ludGVyIHVzZXJEYXRhKQogewogICAgIGlmIChn
X3N0cmNtcDAoaW50ZXJmYWNlTmFtZSwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3Qi
KSkKQEAgLTEwMSwyMCArMTQyLDI4IEBAIHN0YXRpYyB2b2lkIG1ldGhvZENhbGxDYWxsYmFjayhH
REJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIHNlbmRlciwKICAgICBpZiAo
IWdfc3RyY21wMChtZXRob2ROYW1lLCAiR2V0VGl0bGUiKSkgewogICAgICAgICB1aW50NjRfdCBw
YWdlSUQ7CiAgICAgICAgIGdfdmFyaWFudF9nZXQocGFyYW1ldGVycywgIih0KSIsICZwYWdlSUQp
OwotCi0gICAgICAgIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uID0gV0VCS0lUX1dFQl9F
WFRFTlNJT04odXNlckRhdGEpOwotICAgICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlID0gd2Via2l0
X3dlYl9leHRlbnNpb25fZ2V0X3BhZ2UoZXh0ZW5zaW9uLCBwYWdlSUQpOwotICAgICAgICBpZiAo
IXBhZ2UpIHsKLSAgICAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fZXJy
b3IoCi0gICAgICAgICAgICAgICAgaW52b2NhdGlvbiwgR19EQlVTX0VSUk9SLCBHX0RCVVNfRVJS
T1JfSU5WQUxJRF9BUkdTLAotICAgICAgICAgICAgICAgICJJbnZhbGlkIHBhZ2UgSUQ6ICUiIEdf
R1VJTlQ2NF9GT1JNQVQsIHBhZ2VJRCk7CisgICAgICAgIFdlYktpdFdlYlBhZ2UqIHBhZ2UgPSBn
ZXRXZWJQYWdlKFdFQktJVF9XRUJfRVhURU5TSU9OKHVzZXJEYXRhKSwgcGFnZUlELCBpbnZvY2F0
aW9uKTsKKyAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0gICAgICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9wYWdlX2dldF9pZChwYWdlKSwg
PT0sIHBhZ2VJRCk7CiAKICAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Vi
a2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7CiAgICAgICAgIEdPd25QdHI8Y2hh
cj4gdGl0bGUod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdGl0bGUoZG9jdW1lbnQpKTsKICAgICAg
ICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBnX3Zh
cmlhbnRfbmV3KCIocykiLCB0aXRsZS5nZXQoKSkpOworICAgIH0gZWxzZSBpZiAoIWdfc3RyY21w
MChtZXRob2ROYW1lLCAiUnVuSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIpKSB7CisgICAgICAg
IHVpbnQ2NF90IHBhZ2VJRDsKKyAgICAgICAgY29uc3QgY2hhciAqc2NyaXB0OworICAgICAgICBn
X3ZhcmlhbnRfZ2V0KHBhcmFtZXRlcnMsICIodCZzKSIsICZwYWdlSUQsICZzY3JpcHQpOworICAg
ICAgICBXZWJLaXRXZWJQYWdlKiBwYWdlID0gZ2V0V2ViUGFnZShXRUJLSVRfV0VCX0VYVEVOU0lP
Tih1c2VyRGF0YSksIHBhZ2VJRCwgaW52b2NhdGlvbik7CisgICAgICAgIGlmICghcGFnZSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBHUmVmUHRyPFdlYktpdFNjcmlwdFdvcmxkPiB3
b3JsZCA9IGFkb3B0R1JlZih3ZWJraXRfc2NyaXB0X3dvcmxkX25ldygpKTsKKyAgICAgICAgZ19h
c3NlcnQod2Via2l0X3NjcmlwdF93b3JsZF9nZXRfZGVmYXVsdCgpICE9IHdvcmxkLmdldCgpKTsK
KyAgICAgICAgV2ViS2l0RnJhbWUqIGZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2Zy
YW1lKHBhZ2UpOworICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYganNDb250ZXh0ID0gd2Via2l0
X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZChmcmFtZSwgd29y
bGQuZ2V0KCkpOworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4ganNTY3JpcHQoQWRv
cHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHNjcmlwdCkpOworICAgICAgICBKU0V2
YWx1YXRlU2NyaXB0KGpzQ29udGV4dCwganNTY3JpcHQuZ2V0KCksIDAsIDAsIDAsIDApOworICAg
ICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIDAp
OwogICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAiQWJvcnRQcm9jZXNzIikp
IHsKICAgICAgICAgYWJvcnQoKTsKICAgICB9CkBAIC0xNDMsNiArMTkyLDcgQEAgc3RhdGljIHZv
aWQgYnVzQWNxdWlyZWRDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0
IGNoYXIqIG5hbWUsIGcKICAgICAgICAgZ193YXJuaW5nKCJGYWlsZWQgdG8gcmVnaXN0ZXIgb2Jq
ZWN0OiAlc1xuIiwgZXJyb3ItPm1lc3NhZ2UpOwogCiAgICAgZ19zaWduYWxfY29ubmVjdChXRUJL
SVRfV0VCX0VYVEVOU0lPTih1c2VyRGF0YSksICJwYWdlLWNyZWF0ZWQiLCBHX0NBTExCQUNLKHBh
Z2VDcmVhdGVkQ2FsbGJhY2spLCBjb25uZWN0aW9uKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHdl
YmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQoKSwgIndpbmRvdy1vYmplY3QtY2xlYXJlZCIs
IEdfQ0FMTEJBQ0sod2luZG93T2JqZWN0Q2xlYXJlZCksIDApOwogfQogCiBleHRlcm4gIkMiIHZv
aWQgd2Via2l0X3dlYl9leHRlbnNpb25faW5pdGlhbGl6ZShXZWJLaXRXZWJFeHRlbnNpb24qIGV4
dGVuc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuY3BwCmluZGV4IGE4YjIxZjcuLjE2
OTE1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmNwcApAQCAtMjIsNiArMjIsNyBA
QAogCiAjaW5jbHVkZSAiV2ViS2l0RnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTEwMSwz
ICsxMDIsMjIgQEAgSlNHbG9iYWxDb250ZXh0UmVmIHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlw
dF9nbG9iYWxfY29udGV4dChXZWJLaXRGcmFtZSogZnJhbWUKIAogICAgIHJldHVybiBmcmFtZS0+
cHJpdi0+d2ViRnJhbWUtPmpzQ29udGV4dCgpOwogfQorCisvKioKKyAqIHdlYmtpdF9mcmFtZV9n
ZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQ6CisgKiBAZnJhbWU6IGEgI1dl
YktpdEZyYW1lCisgKiBAd29ybGQ6IGEgI1dlYktpdFNjcmlwdFdvcmxkCisgKgorICogR2V0cyB0
aGUgSmF2YVNjcmlwdCBleGVjdXRpb24gY29udGV4dCBvZiBAZnJhbWUgZm9yIHRoZSBnaXZlbiAj
V2ViS2l0U2NyaXB0V29ybGQuCisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiB0aGUg
SmF2YVNjcmlwdCBjb250ZXh0IG9mIEBmcmFtZSBmb3IgQHdvcmxkCisgKgorICogU2luY2U6IDIu
MgorICovCitKU0dsb2JhbENvbnRleHRSZWYgd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2Nv
bnRleHRfZm9yX3NjcmlwdF93b3JsZChXZWJLaXRGcmFtZSogZnJhbWUsIFdlYktpdFNjcmlwdFdv
cmxkKiB3b3JsZCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRlJBTUUo
ZnJhbWUpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0NSSVBUX1dP
UkxEKHdvcmxkKSwgMCk7CisKKyAgICByZXR1cm4gZnJhbWUtPnByaXYtPndlYkZyYW1lLT5qc0Nv
bnRleHRGb3JXb3JsZCh3ZWJraXRTY3JpcHRXb3JsZEdldEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQod29ybGQpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKaW5kZXggZTM0NWM1Yy4u
NTA1OTMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0U2NyaXB0V29ybGQuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC01MiwxNiArNTMs
MjAgQEAgc3RydWN0IF9XZWJLaXRGcmFtZUNsYXNzIHsKIH07CiAKIFdFQktJVF9BUEkgR1R5cGUK
LXdlYmtpdF9mcmFtZV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7Cit3ZWJr
aXRfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsK
IAogV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAg
ICAgICAgICAgIChXZWJLaXRGcmFtZSAqZnJhbWUpOword2Via2l0X2ZyYW1lX2lzX21haW5fZnJh
bWUgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsK
IAogV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfZnJhbWVfZ2V0X3VyaSAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X3Vy
aSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJh
bWUpOwogCiBXRUJLSVRfQVBJIEpTR2xvYmFsQ29udGV4dFJlZgotd2Via2l0X2ZyYW1lX2dldF9q
YXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0IChXZWJLaXRGcmFtZSAqZnJhbWUpOword2Via2l0X2Zy
YW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0ICAgICAgICAgICAoV2ViS2l0RnJhbWUg
ICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKK3dlYmtpdF9m
cmFtZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQgKFdlYktpdEZyYW1l
ICAgICAgICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7CiAKIEdfRU5EX0RFQ0xTCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRTY3JpcHRXb3JsZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViODk5MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29y
bGQuY3BwCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0U2NyaXB0V29ybGQu
aCIKKworI2luY2x1ZGUgIldlYktpdE1hcnNoYWwuaCIKKyNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitlbnVtIHsKKyAgICBXSU5ET1dfT0JKRUNUX0NMRUFSRUQsCisKKyAgICBMQVNU
X1NJR05BTAorfTsKKwordHlwZWRlZiBIYXNoTWFwPEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQq
LCBXZWJLaXRTY3JpcHRXb3JsZCo+IFNjcmlwdFdvcmxkTWFwOworCitzdGF0aWMgU2NyaXB0V29y
bGRNYXAmIHNjcmlwdFdvcmxkcygpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTY3JpcHRX
b3JsZE1hcCwgbWFwLCAoKSk7CisgICAgcmV0dXJuIG1hcDsKK30KKworc3RydWN0IF9XZWJLaXRT
Y3JpcHRXb3JsZFByaXZhdGUgeworICAgIH5fV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlKCkKKyAg
ICB7CisgICAgICAgIEFTU0VSVChzY3JpcHRXb3JsZHMoKS5jb250YWlucyhzY3JpcHRXb3JsZC5n
ZXQoKSkpOworICAgICAgICBzY3JpcHRXb3JsZHMoKS5yZW1vdmUoc2NyaXB0V29ybGQuZ2V0KCkp
OworICAgIH0KKworICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiBzY3JpcHRX
b3JsZDsKK307CisKK3N0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsK
KworV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFNjcmlwdFdvcmxkLCB3ZWJraXRfc2NyaXB0X3dv
cmxkLCBHX1RZUEVfT0JKRUNUKQorCitzdGF0aWMgdm9pZCB3ZWJraXRfc2NyaXB0X3dvcmxkX2Ns
YXNzX2luaXQoV2ViS2l0U2NyaXB0V29ybGRDbGFzcyoga2xhc3MpCit7CisgICAgLyoqCisgICAg
ICogV2ViS2l0U2NyaXB0V29ybGQ6OndpbmRvdy1vYmplY3QtY2xlYXJlZDoKKyAgICAgKiBAd29y
bGQ6IHRoZSAjV2ViS2l0U2NyaXB0V29ybGQgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVk
CisgICAgICogQHBhZ2U6IGEgI1dlYktpdFdlYlBhZ2UKKyAgICAgKiBAZnJhbWU6IHRoZSAjV2Vi
S2l0RnJhbWUgIHRvIHdoaWNoIEB3b3JsZCBiZWxvbmdzCisgICAgICoKKyAgICAgKiBFbWl0dGVk
IHdoZW4gdGhlIEphdmFTY3JpcHQgd2luZG93IG9iamVjdCBpbiBhICNXZWJLaXRTY3JpcHRXb3Js
ZCBoYXMgYmVlbgorICAgICAqIGNsZWFyZWQuIFRoaXMgaXMgdGhlIHByZWZlcnJlZCBwbGFjZSB0
byBzZXQgY3VzdG9tIHByb3BlcnRpZXMgb24gdGhlIHdpbmRvdworICAgICAqIG9iamVjdCB1c2lu
ZyB0aGUgSmF2YVNjcmlwdENvcmUgQVBJLiBZb3UgY2FuIGdldCB0aGUgd2luZG93IG9iamVjdCBv
ZiBAZnJhbWUKKyAgICAgKiBmcm9tIHRoZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0IG9m
IEB3b3JsZCB0aGF0IGlzIHJldHVybmVkIGJ5CisgICAgICogd2Via2l0X2ZyYW1lX2dldF9qYXZh
c2NyaXB0X2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCgpLgorICAgICAqCisgICAgICogU2luY2U6
IDIuMgorICAgICAqLworICAgIHNpZ25hbHNbV0lORE9XX09CSkVDVF9DTEVBUkVEXSA9IGdfc2ln
bmFsX25ldygKKyAgICAgICAgIndpbmRvdy1vYmplY3QtY2xlYXJlZCIsCisgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTKGtsYXNzKSwKKyAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisgICAgICAg
IDAsIDAsIDAsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1QsCisg
ICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUEFHRSwKKyAg
ICAgICAgV0VCS0lUX1RZUEVfRlJBTUUpOworfQorCitXZWJLaXRTY3JpcHRXb3JsZCogd2Via2l0
U2NyaXB0V29ybGRHZXQoSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogc2NyaXB0V29ybGQpCit7
CisgICAgcmV0dXJuIHNjcmlwdFdvcmxkcygpLmdldChzY3JpcHRXb3JsZCk7Cit9CisKK0luamVj
dGVkQnVuZGxlU2NyaXB0V29ybGQqIHdlYmtpdFNjcmlwdFdvcmxkR2V0SW5qZWN0ZWRCdW5kbGVT
Y3JpcHRXb3JsZChXZWJLaXRTY3JpcHRXb3JsZCogd29ybGQpCit7CisgICAgcmV0dXJuIHdvcmxk
LT5wcml2LT5zY3JpcHRXb3JsZC5nZXQoKTsKK30KKwordm9pZCB3ZWJraXRTY3JpcHRXb3JsZFdp
bmRvd09iamVjdENsZWFyZWQoV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkLCBXZWJLaXRXZWJQYWdl
KiBwYWdlLCBXZWJLaXRGcmFtZSogZnJhbWUpCit7CisgICAgZ19zaWduYWxfZW1pdCh3b3JsZCwg
c2lnbmFsc1tXSU5ET1dfT0JKRUNUX0NMRUFSRURdLCAwLCBwYWdlLCBmcmFtZSk7Cit9CisKK3N0
YXRpYyBXZWJLaXRTY3JpcHRXb3JsZCogd2Via2l0U2NyaXB0V29ybGRDcmVhdGUoUGFzc1JlZlB0
cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiBzY3JpcHRXb3JsZCkKK3sKKyAgICBXZWJLaXRT
Y3JpcHRXb3JsZCogd29ybGQgPSBXRUJLSVRfU0NSSVBUX1dPUkxEKGdfb2JqZWN0X25ldyhXRUJL
SVRfVFlQRV9TQ1JJUFRfV09STEQsIE5VTEwpKTsKKyAgICB3b3JsZC0+cHJpdi0+c2NyaXB0V29y
bGQgPSBzY3JpcHRXb3JsZDsKKworICAgIEFTU0VSVCghc2NyaXB0V29ybGRzKCkuY29udGFpbnMo
d29ybGQtPnByaXYtPnNjcmlwdFdvcmxkLmdldCgpKSk7CisgICAgc2NyaXB0V29ybGRzKCkuYWRk
KHdvcmxkLT5wcml2LT5zY3JpcHRXb3JsZC5nZXQoKSwgd29ybGQpOworCisgICAgcmV0dXJuIHdv
cmxkOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGVmYXVsdFNjcmlwdFdvcmxkKGdwb2lu
dGVyKQoreworICAgIHJldHVybiB3ZWJraXRTY3JpcHRXb3JsZENyZWF0ZShJbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkOjpub3JtYWxXb3JsZCgpKTsKK30KKworLyoqCisgKiB3ZWJraXRfc2NyaXB0
X3dvcmxkX2dldF9kZWZhdWx0OgorICoKKyAqIEdldCB0aGUgZGVmYXVsdCAjV2ViS2l0U2NyaXB0
V29ybGQuIFRoaXMgaXMgdGhlIG5vcm1hbCBzY3JpcHQgd29ybGQKKyAqIHdoZXJlIGFsbCBzY3Jp
cHRzIGFyZSBleGVjdXRlZCBieSBkZWZhdWx0LgorICogWW91IGNhbiBnZXQgdGhlIEphdmFTY3Jp
cHQgZXhlY3V0aW9uIGNvbnRleHQgb2YgYSAjV2ViS2l0U2NyaXB0V29ybGQKKyAqIGZvciBhIGdp
dmVuICNXZWJLaXRGcmFtZSB3aXRoIHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0
X2Zvcl9zY3JpcHRfd29ybGQoKS4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IHRo
ZSBkZWZhdWx0ICNXZWJLaXRTY3JpcHRXb3JsZAorICoKKyAqIFNpbmNlOiAyLjIKKyAqLworV2Vi
S2l0U2NyaXB0V29ybGQqIHdlYmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQodm9pZCkKK3sK
KyAgICBzdGF0aWMgR09uY2Ugb25jZUluaXQgPSBHX09OQ0VfSU5JVDsKKyAgICByZXR1cm4gV0VC
S0lUX1NDUklQVF9XT1JMRChnX29uY2UoJm9uY2VJbml0LCBjcmVhdGVEZWZhdWx0U2NyaXB0V29y
bGQsIDApKTsKK30KKworLyoqCisgKiB3ZWJraXRfc2NyaXB0X3dvcmxkX25ldzoKKyAqCisgKiBD
cmVhdGVzIGEgbmV3IGlzb2xhdGVkICNXZWJLaXRTY3JpcHRXb3JsZC4gU2NyaXB0cyBleGVjdXRl
ZCBpbgorICogaXNvbGF0ZWQgd29ybGRzIGhhdmUgYWNjZXNzIHRvIHRoZSBET00gYnV0IG5vdCB0
byBvdGhlciB2YXJpYWJsZQorICogb3IgZnVuY3Rpb25zIGNyZWF0ZWQgYnkgdGhlIHBhZ2UuCisg
KiBZb3UgY2FuIGdldCB0aGUgSmF2YVNjcmlwdCBleGVjdXRpb24gY29udGV4dCBvZiBhICNXZWJL
aXRTY3JpcHRXb3JsZAorICogZm9yIGEgZ2l2ZW4gI1dlYktpdEZyYW1lIHdpdGggd2Via2l0X2Zy
YW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCgpLgorICoKKyAqIFJl
dHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSBuZXcgaXNvbGF0ZWQgI1dlYktpdFNjcmlwdFdvcmxk
CisgKgorICogU2luY2U6IDIuMgorICovCitXZWJLaXRTY3JpcHRXb3JsZCogd2Via2l0X3Njcmlw
dF93b3JsZF9uZXcodm9pZCkKK3sKKyAgICByZXR1cm4gd2Via2l0U2NyaXB0V29ybGRDcmVhdGUo
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Y3JlYXRlKCkpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlw
dFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0U2NyaXB0V29ybGQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43ZGQzZGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkLmgKQEAgLTAsMCArMSw2NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyLDEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9f
V0VCS0lUX1dFQl9FWFRFTlNJT05fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0U2NyaXB0
V29ybGRfaAorI2RlZmluZSBXZWJLaXRTY3JpcHRXb3JsZF9oCisKKyNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RF
Q0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfU0NSSVBUX1dPUkxEICAgICAgICAgICAgKHdlYmtp
dF9zY3JpcHRfd29ybGRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1NDUklQVF9XT1JMRChv
YmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRf
VFlQRV9TQ1JJUFRfV09STEQsIFdlYktpdFNjcmlwdFdvcmxkKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X1NDUklQVF9XT1JMRChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChv
YmopLCBXRUJLSVRfVFlQRV9TQ1JJUFRfV09STEQpKQorI2RlZmluZSBXRUJLSVRfU0NSSVBUX1dP
UkxEX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdF
QktJVF9UWVBFX1NDUklQVF9XT1JMRCwgV2ViS2l0U2NyaXB0V29ybGRDbGFzcykpCisjZGVmaW5l
IFdFQktJVF9JU19TQ1JJUFRfV09STERfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfU0NSSVBUX1dPUkxEKSkKKyNkZWZpbmUgV0VCS0lU
X1NDUklQVF9XT1JMRF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1Mo
KG9iaiksICBXRUJLSVRfVFlQRV9TQ1JJUFRfV09STEQsIFdlYktpdFNjcmlwdFdvcmxkQ2xhc3Mp
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0U2NyaXB0V29ybGQgICAgICAgIFdlYktpdFNjcmlw
dFdvcmxkOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFNjcmlwdFdvcmxkQ2xhc3MgICBXZWJLaXRT
Y3JpcHRXb3JsZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFNjcmlwdFdvcmxkUHJpdmF0
ZSBXZWJLaXRTY3JpcHRXb3JsZFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0U2NyaXB0V29ybGQg
eworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlICpw
cml2OworfTsKKworc3RydWN0IF9XZWJLaXRTY3JpcHRXb3JsZENsYXNzIHsKKyAgICBHT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X3Njcmlw
dF93b3JsZF9nZXRfdHlwZSAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0U2NyaXB0V29y
bGQgKgord2Via2l0X3NjcmlwdF93b3JsZF9nZXRfZGVmYXVsdCAodm9pZCk7CisKK1dFQktJVF9B
UEkgV2ViS2l0U2NyaXB0V29ybGQgKgord2Via2l0X3NjcmlwdF93b3JsZF9uZXcgICAgICAgICAo
dm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFNjcmlwdFdvcmxkUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L1dlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNmM2MzZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0U2NyaXB0V29ybGRQcml2YXRlLmgKQEAg
LTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIFdlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZV9oCisjZGVmaW5lIFdlYktpdFNjcmlwdFdvcmxk
UHJpdmF0ZV9oCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCisjaW5j
bHVkZSAiV2ViS2l0RnJhbWUuaCIKKyNpbmNsdWRlICJXZWJLaXRTY3JpcHRXb3JsZC5oIgorI2lu
Y2x1ZGUgIldlYktpdFdlYlBhZ2UuaCIKKworV2ViS2l0U2NyaXB0V29ybGQqIHdlYmtpdFNjcmlw
dFdvcmxkR2V0KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwordm9pZCB3ZWJr
aXRTY3JpcHRXb3JsZFdpbmRvd09iamVjdENsZWFyZWQoV2ViS2l0U2NyaXB0V29ybGQqLCBXZWJL
aXRXZWJQYWdlKiwgV2ViS2l0RnJhbWUqKTsKK1dlYktpdDo6SW5qZWN0ZWRCdW5kbGVTY3JpcHRX
b3JsZCogd2Via2l0U2NyaXB0V29ybGRHZXRJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKFdlYktp
dFNjcmlwdFdvcmxkKik7CisKKyNlbmRpZiAvLyBXZWJLaXRTY3JpcHRXb3JsZFByaXZhdGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IGQ5YTk2MGYuLjM0YTQxYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJXZWJLaXRGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFs
LmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFNjcmlwdFdv
cmxkUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViUGFn
ZVByaXZhdGUuaCIKQEAgLTE0Miw2ICsxNDMsMTIgQEAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lG
cmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQK
ICAgICB3ZWJGcmFtZU1hcCgpLnJlbW92ZSh0b0ltcGwoZnJhbWUpKTsKIH0KIAorc3RhdGljIHZv
aWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd2tXb3JsZCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkID0gd2Vi
a2l0U2NyaXB0V29ybGRHZXQodG9JbXBsKHdrV29ybGQpKSkKKyAgICAgICAgd2Via2l0U2NyaXB0
V29ybGRXaW5kb3dPYmplY3RDbGVhcmVkKHdvcmxkLCBXRUJLSVRfV0VCX1BBR0UoY2xpZW50SW5m
byksIHdlYmtpdEZyYW1lR2V0T3JDcmVhdGUodG9JbXBsKGZyYW1lKSkpOworfQorCiBzdGF0aWMg
dm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVm
IHJlcXVlc3QsIGJvb2wgcGFnZUxvYWRJc1Byb3Zpc2lvbmFsLCBjb25zdCB2b2lkKikKIHsKICAg
ICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CkBAIC0zMTgsNyArMzI1LDcg
QEAgV2ViS2l0V2ViUGFnZSogd2Via2l0V2ViUGFnZUNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQog
ICAgICAgICAwLCAvLyBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkKICAgICAgICAgMCwgLy8g
ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZFJ1bklu
c2VjdXJlQ29udGVudEZvckZyYW1lCi0gICAgICAgIDAsIC8vIGRpZENsZWFyV2luZG93T2JqZWN0
Rm9yRnJhbWUKKyAgICAgICAgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZSwKICAgICAgICAg
MCwgLy8gZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZQogICAgICAgICAwLCAvLyB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUKICAgICAgICAgMCwgLy8gZGlkSGFuZGxlT25s
b2FkRXZlbnRzRm9yRnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lvbi5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5z
aW9uLmgKaW5kZXggMWRlOTc1YS4uY2YyMmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dl
YmtpdC13ZWItZXh0ZW5zaW9uLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgX19XRUJLSVRf
V0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fCiAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZyYW1l
Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTY3JpcHRXb3JsZC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0VVJJUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0VVJJUmVz
cG9uc2UuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkV4dGVuc2lvbi5oPgo=
</data>
<flag name="review"
          id="231356"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>