<?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>212407</bug_id>
          
          <creation_ts>2020-05-27 06:58:49 -0700</creation_ts>
          <short_desc>[WebXR] Implement XRSession::requestReferenceSpace()</short_desc>
          <delta_ts>2020-05-29 09:37:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dino</cc>
    
    <cc>jfernandez</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1656355</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-27 06:58:49 -0700</bug_when>
    <thetext>[WebXR] Implement XRSession::requestReferenceSpace()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656358</commentid>
    <comment_count>1</comment_count>
      <attachid>400331</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-27 07:09:03 -0700</bug_when>
    <thetext>Created attachment 400331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656879</commentid>
    <comment_count>2</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-28 09:09:00 -0700</bug_when>
    <thetext>Gentle ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656906</commentid>
    <comment_count>3</comment_count>
      <attachid>400331</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-28 10:27:25 -0700</bug_when>
    <thetext>Comment on attachment 400331
Patch

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

&gt; Source/WebCore/Modules/webxr/WebXRBoundedReferenceSpace.h:42
&gt; +    static Ref&lt;WebXRBoundedReferenceSpace&gt; create(ScriptExecutionContext*, WebXRSession&amp;, XRReferenceSpaceType);

Can we use a Document&amp; and a Ref&lt;WebXRSession&gt;&amp;&amp;?

&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:88
&gt; +bool WebXRSession::referenceSpaceIsSupported(const XRReferenceSpaceType&amp; type) const

s/const XRReferenceSpaceType&amp; type/XRReferenceSpaceType type/

&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:128
&gt; +void WebXRSession::requestReferenceSpace(const XRReferenceSpaceType&amp; type, RequestReferenceSpacePromise&amp;&amp; promise)

s/const XRReferenceSpaceType&amp; type/XRReferenceSpaceType type/

&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:132
&gt; +    scriptExecutionContext()-&gt;postTask([this, promise = WTFMove(promise), type] (ScriptExecutionContext&amp;) mutable {

scriptExecutionContext() might be null.
s/ScriptExecutionContext&amp;/auto&amp;/

&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:149
&gt; +        promise.resolve(*referenceSpace);

referenceSpace.releaseNonNull()

&gt; Source/WebCore/Modules/webxr/WebXRSpace.h:32
&gt; +#include &lt;wtf/IsoMalloc.h&gt;

Why do we need this one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657292</commentid>
    <comment_count>4</comment_count>
      <attachid>400331</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-29 09:33:41 -0700</bug_when>
    <thetext>Comment on attachment 400331
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/Modules/webxr/WebXRBoundedReferenceSpace.h:42
&gt;&gt; +    static Ref&lt;WebXRBoundedReferenceSpace&gt; create(ScriptExecutionContext*, WebXRSession&amp;, XRReferenceSpaceType);
&gt; 
&gt; Can we use a Document&amp; and a Ref&lt;WebXRSession&gt;&amp;&amp;?

We could indeed pass a Document&amp;, I just used the ScriptExecutionContext* because that&apos;s what ContextDestructionObserver expects in the end but I can change it.

Regarding a ref to the session yeah we could do that as well as the session does not keep any reference to the reference spaces so there is no risk of ref cycles.

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:88
&gt;&gt; +bool WebXRSession::referenceSpaceIsSupported(const XRReferenceSpaceType&amp; type) const
&gt; 
&gt; s/const XRReferenceSpaceType&amp; type/XRReferenceSpaceType type/

right.

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:128
&gt;&gt; +void WebXRSession::requestReferenceSpace(const XRReferenceSpaceType&amp; type, RequestReferenceSpacePromise&amp;&amp; promise)
&gt; 
&gt; s/const XRReferenceSpaceType&amp; type/XRReferenceSpaceType type/

ok

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:132
&gt;&gt; +    scriptExecutionContext()-&gt;postTask([this, promise = WTFMove(promise), type] (ScriptExecutionContext&amp;) mutable {
&gt; 
&gt; scriptExecutionContext() might be null.
&gt; s/ScriptExecutionContext&amp;/auto&amp;/

OK

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSession.cpp:149
&gt;&gt; +        promise.resolve(*referenceSpace);
&gt; 
&gt; referenceSpace.releaseNonNull()

right

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSpace.h:32
&gt;&gt; +#include &lt;wtf/IsoMalloc.h&gt;
&gt; 
&gt; Why do we need this one?

I don&apos;t see any reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657295</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-29 09:36:59 -0700</bug_when>
    <thetext>Committed r262299: &lt;https://trac.webkit.org/changeset/262299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657296</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-29 09:37:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/63762051&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400331</attachid>
            <date>2020-05-27 07:09:03 -0700</date>
            <delta_ts>2020-05-28 10:27:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212407-20200527160900.patch</filename>
            <type>text/plain</type>
            <size>18514</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2E4NjJhNDM5MWYzMjc4
OTcwOTU5YzlmN2ViODM0OGU3MWU0ZDgyZi4uZDVkOGE4MjNjOWRhMjdmZGE3ZmQ5OWExZTMzMjdh
YWU0YzYwZDY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA1LTI3ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFhSU2Vzc2lvbjo6cmVxdWVzdFJlZmVyZW5jZVNwYWNlKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjQwNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50
cyB0aGUgcmVxdWVzdFJlZmVyZW5jZVNwYWNlKCkgbWV0aG9kIG9mIHRoZSBYUlNlc3Npb24gd2hp
Y2ggaXMgdXNlZCB0bworICAgICAgICBjcmVhdGUgcmVmZXJlbmNlIHNwYWNlcy4gQSByZWZlcmVu
Y2Ugc3BhY2UgZXN0YWJsaXNoZXMgYSBzcGFjZSB3aGVyZSBwb3NlIGRhdGEgd2lsbCBiZSBkZWZp
bmVkCisgICAgICAgIGFuZCB0aHVzIGlzIG1hbmRhdG9yeSB0byByZXRyaWV2ZSB0aGF0IHBvc2Ug
aW5mb3JtYXRpb24uCisKKyAgICAgICAgVGhlcmUgYXJlIHN0aWxsIHNvbWUgYml0cyB0aGF0IGhh
dmUgdG8gaW1wbGVtZW50YXRlZCBpbiBmb2xsb3cgdXAgcGF0Y2hlcyB1c2luZyBwbGF0Zm9ybSBj
b2RlLgorCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Y3Jl
YXRlKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZTo6V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVm
ZXJlbmNlU3BhY2U6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJSZWZl
cmVuY2VTcGFjZTo6V2ViWFJSZWZlcmVuY2VTcGFjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UpOiBVc2UgdGhl
IGNyZWF0ZSgpIG1ldGhvZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNl
U3BhY2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OnJlZmVyZW5jZVNwYWNlSXNTdXBwb3J0ZWQgY29u
c3QpOiBOZXcgbWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgYSByZWZlcmVuY2UuCisgICAgICAgIHNw
YWNlIGlzIHN1cHBvcnRlZCBieSBzZXNzaW9uIGFuZCBkZXZpY2UuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlNlc3Npb246OnJlcXVlc3RSZWZlcmVuY2VTcGFjZSk6IE5ldyBtZXRob2QgdGhhdCBj
cmVhdGVzIHJlZmVyZW5jZSBzcGFjZXMgZm9yIHBvc2UgZGF0YS4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSU2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNwYWNlOjpXZWJYUlNwYWNlKTogU3RvcmUg
YSByZWZlcmVuY2UgdG8gdGhlIHNlc3Npb24gY3JlYXRpbmcgdGhlIHNwYWNlLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5oOgorCiAyMDIwLTA1LTE5ICBTZXJnaW8gVmlsbGFy
IFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50
IFhSU2Vzc2lvbjo6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAK
aW5kZXggOGJkZWRhMzUyMzBlYjczMGQ3ZTU2YmRlNWJkNTJhYTJiMzI2MWYzZC4uZDM3MTcyM2Mw
YWRhZTgwNTY4YzdiOWVkMzBhM2IzYWM3MDE4MDg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAK
QEAgLTI4LDggKzI4LDI1IEBACiAKICNpZiBFTkFCTEUoV0VCWFIpCiAKKyNpbmNsdWRlICJET01Q
b2ludFJlYWRPbmx5LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UpOworCitSZWY8V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U+IFdl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgV2ViWFJTZXNzaW9uJiBzZXNzaW9uLCBYUlJlZmVyZW5jZVNwYWNlVHlwZSB0eXBl
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNl
KGNvbnRleHQsIHNlc3Npb24sIHR5cGUpKTsKK30KKworV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2U6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbiwgWFJSZWZlcmVuY2VTcGFjZVR5cGUgdHlwZSkK
KyAgICA6IFdlYlhSUmVmZXJlbmNlU3BhY2UoY29udGV4dCwgc2Vzc2lvbiwgdHlwZSkKK3sKK30K
KworV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6On5XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSgpID0gZGVmYXVsdDsKKwogY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIFdl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fYm91bmRzR2VvbWV0cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgKaW5kZXggOWIzYjc0ZjNl
MmFkNDM3ODVjZWUwMzZkYjhlMzJhZTYyZDlkNDhkNi4uOTE0YzQ3M2I0ZjkwMzYxZGJkYmJlZjhm
YzBhNjhjOGVmMjM3ZmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApAQCAtMjYsNiArMjYsNyBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJYUlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKQEAgLTM2LDEyICszNywxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBET01Qb2ludFJlYWRPbmx5OwogCiBjbGFzcyBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSA6
IHB1YmxpYyBXZWJYUlJlZmVyZW5jZVNwYWNlIHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKTsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFdlYlhSU2Vzc2lvbiYsIFhSUmVmZXJlbmNlU3BhY2VUeXBlKTsKKwogICAgIHZpcnR1YWwgfldl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKCk7CiAKICAgICBjb25zdCBWZWN0b3I8UmVmPERPTVBv
aW50UmVhZE9ubHk+PiYgYm91bmRzR2VvbWV0cnkoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICBX
ZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViWFJT
ZXNzaW9uJiwgWFJSZWZlcmVuY2VTcGFjZVR5cGUpOworCiAgICAgVmVjdG9yPFJlZjxET01Qb2lu
dFJlYWRPbmx5Pj4gbV9ib3VuZHNHZW9tZXRyeTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwCmluZGV4IGIzM2JmNzA4
Y2M0MjdjODE5MDZiMDNlNThlY2Q5MjhhMzBmZjBjZDkuLmY5ZDhjODU4NmQyOWJhYzdmYjMyYmQx
ZjhhMWNkNzhkOTFiNzNkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMjgsMTAgKzI4LDIxIEBACiAKICNpZiBF
TkFCTEUoV0VCWFIpCiAKKyNpbmNsdWRlICJXZWJYUlNlc3Npb24uaCIKKyNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdlYlhSUmVmZXJl
bmNlU3BhY2U6OldlYlhSUmVmZXJlbmNlU3BhY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCkKLSAgICA6IFdlYlhSU3BhY2UoY29udGV4dCkKK1dURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChXZWJYUlJlZmVyZW5jZVNwYWNlKTsKKworUmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+IFdl
YlhSUmVmZXJlbmNlU3BhY2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBXZWJYUlNlc3Npb24mIHNlc3Npb24sIFhSUmVmZXJlbmNlU3BhY2VUeXBlIHR5cGUpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJSZWZlcmVuY2VTcGFjZShjb250ZXh0LCBzZXNz
aW9uLCB0eXBlKSk7Cit9CisKK1dlYlhSUmVmZXJlbmNlU3BhY2U6OldlYlhSUmVmZXJlbmNlU3Bh
Y2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV2ViWFJTZXNzaW9uJiBzZXNzaW9u
LCBYUlJlZmVyZW5jZVNwYWNlVHlwZSB0eXBlKQorICAgIDogV2ViWFJTcGFjZShjb250ZXh0LCBz
ZXNzaW9uKQorICAgICwgbV90eXBlKHR5cGUpCiB7CiB9CiAKQEAgLTM5LDcgKzUwLDcgQEAgV2Vi
WFJSZWZlcmVuY2VTcGFjZTo6fldlYlhSUmVmZXJlbmNlU3BhY2UoKSA9IGRlZmF1bHQ7CiAKIFJl
ZjxXZWJYUlJlZmVyZW5jZVNwYWNlPiBXZWJYUlJlZmVyZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZl
cmVuY2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJikKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJYUlJlZmVyZW5jZVNwYWNlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
KTsKKyAgICByZXR1cm4gY3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9zZXNzaW9u
LmNvcHlSZWYoKSwgbV90eXBlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaAppbmRl
eCAyNmJiNDhjYmY2OTAzOGZlYTJiZDMxNDgyNjM5NmI5M2QyMTM1M2NkLi40Zjg2YzJkZjdjYWUx
MDZkNWJkNzIzOWFmNmY1ZDczNDYxMDdhODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaApAQCAtMjgsMjEgKzI4LDI4IEBACiAj
aWYgRU5BQkxFKFdFQlhSKQogCiAjaW5jbHVkZSAiV2ViWFJTcGFjZS5oIgotCisjaW5jbHVkZSAi
WFJSZWZlcmVuY2VTcGFjZVR5cGUuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYlhSUmln
aWRUcmFuc2Zvcm07CitjbGFzcyBXZWJYUlNlc3Npb247CiAKIGNsYXNzIFdlYlhSUmVmZXJlbmNl
U3BhY2UgOiBwdWJsaWMgV2ViWFJTcGFjZSB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChX
ZWJYUlJlZmVyZW5jZVNwYWNlKTsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlhSUmVmZXJl
bmNlU3BhY2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViWFJTZXNzaW9uJiwg
WFJSZWZlcmVuY2VTcGFjZVR5cGUpOworCiAgICAgdmlydHVhbCB+V2ViWFJSZWZlcmVuY2VTcGFj
ZSgpOwogCiAgICAgUmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+IGdldE9mZnNldFJlZmVyZW5jZVNw
YWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKTsKIAotcHJpdmF0ZToKLSAgICBXZWJYUlJl
ZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKK3Byb3RlY3RlZDoKKyAgICBX
ZWJYUlJlZmVyZW5jZVNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBXZWJYUlNlc3Npb24m
LCBYUlJlZmVyZW5jZVNwYWNlVHlwZSk7CisKKyAgICBYUlJlZmVyZW5jZVNwYWNlVHlwZSBtX3R5
cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKaW5kZXggNDMyNDYxOTUxMWFiNzBhMmY0MzdhMzA2
ZDM2NzY5M2EwZDc4ZTQxYS4uNmNiN2ZkMGIxODAyNzhiN2MxNjg2OGE4ODU0YmVmNTE5ZTM2N2Jj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcApA
QCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKFdFQlhSKQogCisjaW5jbHVkZSAiSlNXZWJY
UlJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSAiV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2Uu
aCIKICNpbmNsdWRlICJXZWJYUkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViWFJTeXN0ZW0uaCIKICNp
bmNsdWRlICJYUkZyYW1lUmVxdWVzdENhbGxiYWNrLmgiCkBAIC04Miw4ICs4NCw3MCBAQCB2b2lk
IFdlYlhSU2Vzc2lvbjo6dXBkYXRlUmVuZGVyU3RhdGUoY29uc3QgWFJSZW5kZXJTdGF0ZUluaXQm
KQogewogfQogCi12b2lkIFdlYlhSU2Vzc2lvbjo6cmVxdWVzdFJlZmVyZW5jZVNwYWNlKGNvbnN0
IFhSUmVmZXJlbmNlU3BhY2VUeXBlJiwgUmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSYmKQor
Ly8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jcmVmZXJlbmNlLXNwYWNl
LWlzLXN1cHBvcnRlZAorYm9vbCBXZWJYUlNlc3Npb246OnJlZmVyZW5jZVNwYWNlSXNTdXBwb3J0
ZWQoY29uc3QgWFJSZWZlcmVuY2VTcGFjZVR5cGUmIHR5cGUpIGNvbnN0CiB7CisgICAgLy8gMS4g
SWYgdHlwZSBpcyBub3QgY29udGFpbmVkIGluIHNlc3Npb27igJlzIFhSIGRldmljZSdzIGxpc3Qg
b2YgZW5hYmxlZCBmZWF0dXJlcyBmb3IgbW9kZSByZXR1cm4gZmFsc2UuCisgICAgaWYgKCFtX2Rl
dmljZS0+ZW5hYmxlZEZlYXR1cmVzKG1fbW9kZSkuY29udGFpbnModHlwZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIC8vIDIuIElmIHR5cGUgaXMgdmlld2VyLCByZXR1cm4gdHJ1ZS4K
KyAgICBpZiAodHlwZSA9PSBYUlJlZmVyZW5jZVNwYWNlVHlwZTo6Vmlld2VyKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIGJvb2wgaXNJbW1lcnNpdmVTZXNzaW9uID0gbV9tb2RlID09IFhS
U2Vzc2lvbk1vZGU6OkltbWVyc2l2ZUFyIHx8IG1fbW9kZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1l
cnNpdmVWcjsKKyAgICBpZiAodHlwZSA9PSBYUlJlZmVyZW5jZVNwYWNlVHlwZTo6TG9jYWwgfHwg
dHlwZSA9PSBYUlJlZmVyZW5jZVNwYWNlVHlwZTo6TG9jYWxGbG9vcikgeworICAgICAgICAvLyAz
LiBJZiB0eXBlIGlzIGxvY2FsIG9yIGxvY2FsLWZsb29yLCBhbmQgc2Vzc2lvbiBpcyBhbiBpbW1l
cnNpdmUgc2Vzc2lvbiwgcmV0dXJuIHRydWUuCisgICAgICAgIGlmIChpc0ltbWVyc2l2ZVNlc3Np
b24pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAvLyA0LiBJZiB0eXBlIGlz
IGxvY2FsIG9yIGxvY2FsLWZsb29yLCBhbmQgdGhlIFhSIGRldmljZSBzdXBwb3J0cyByZXBvcnRp
bmcgb3JpZW50YXRpb24gZGF0YSwgcmV0dXJuIHRydWUuCisgICAgICAgIC8vIFRPRE86IGFkZCBB
UEkgdG8gUGxhdGZvcm1YUjo6RGV2aWNlCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
CisgICAgLy8gNS4gSWYgdHlwZSBpcyBib3VuZGVkLWZsb29yIGFuZCBzZXNzaW9uIGlzIGFuIGlt
bWVyc2l2ZSBzZXNzaW9uLCByZXR1cm4gdGhlIHJlc3VsdCBvZiB3aGV0aGVyIGJvdW5kZWQKKyAg
ICAvLyAgICByZWZlcmVuY2Ugc3BhY2VzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIFhSIGRldmljZS4K
KyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNib3VuZGVkLXJl
ZmVyZW5jZS1zcGFjZXMtYXJlLXN1cHBvcnRlZAorICAgIC8vIFRPRE86IGFkZCBBUEkgdG8gUGxh
dGZvcm1YUjo6RGV2aWNlCisgICAgaWYgKHR5cGUgPT0gWFJSZWZlcmVuY2VTcGFjZVR5cGU6OkJv
dW5kZWRGbG9vciAmJiBpc0ltbWVyc2l2ZVNlc3Npb24pCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgLy8gNi4gSWYgdHlwZSBpcyB1bmJvdW5kZWQsIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZl
IHNlc3Npb24sIGFuZCB0aGUgWFIgZGV2aWNlIHN1cHBvcnRzIHN0YWJsZSB0cmFja2luZworICAg
IC8vICAgIG5lYXIgdGhlIHVzZXIgb3ZlciBhbiB1bmxpbWl0ZWQgZGlzdGFuY2UsIHJldHVybiB0
cnVlLgorICAgIC8vIFRPRE86IGFkZCBBUEkgdG8gUGxhdGZvcm1YUjo6RGV2aWNlIHRvIGNoZWNr
IHN0YWJsZSB0cmFja2luZyBvdmVyIHVubGltaXRlZCBkaXN0YW5jZS4KKyAgICBpZiAodHlwZSA9
PSBYUlJlZmVyZW5jZVNwYWNlVHlwZTo6VW5ib3VuZGVkICYmIGlzSW1tZXJzaXZlU2Vzc2lvbikK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyA3LiBSZXR1cm4gZmFsc2UuCisgICAgcmV0
dXJuIGZhbHNlOworfQorCisvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhy
LyNkb20teHJzZXNzaW9uLXJlcXVlc3RyZWZlcmVuY2VzcGFjZQordm9pZCBXZWJYUlNlc3Npb246
OnJlcXVlc3RSZWZlcmVuY2VTcGFjZShjb25zdCBYUlJlZmVyZW5jZVNwYWNlVHlwZSYgdHlwZSwg
UmVxdWVzdFJlZmVyZW5jZVNwYWNlUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgLy8gMS4gTGV0
IHByb21pc2UgYmUgYSBuZXcgUHJvbWlzZS4KKyAgICAvLyAyLiBSdW4gdGhlIGZvbGxvd2luZyBz
dGVwcyBpbiBwYXJhbGxlbDoKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNr
KFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgdHlwZV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgLy8gIDIuMS4gQ3JlYXRlIGEgcmVmZXJlbmNl
IHNwYWNlLCByZWZlcmVuY2VTcGFjZSwgd2l0aCB0aGUgWFJSZWZlcmVuY2VTcGFjZVR5cGUgdHlw
ZS4KKyAgICAgICAgLy8gIDIuMi4gSWYgcmVmZXJlbmNlU3BhY2UgaXMgbnVsbCwgcmVqZWN0IHBy
b21pc2Ugd2l0aCBhIE5vdFN1cHBvcnRlZEVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAg
ICAgICAgaWYgKCFyZWZlcmVuY2VTcGFjZUlzU3VwcG9ydGVkKHR5cGUpKSB7CisgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGh0dHBzOi8vaW1tZXJzaXZl
LXdlYi5naXRodWIuaW8vd2VieHIvI2NyZWF0ZS1hLXJlZmVyZW5jZS1zcGFjZQorICAgICAgICBS
ZWZQdHI8V2ViWFJSZWZlcmVuY2VTcGFjZT4gcmVmZXJlbmNlU3BhY2U7CisgICAgICAgIGlmICh0
eXBlID09IFhSUmVmZXJlbmNlU3BhY2VUeXBlOjpCb3VuZGVkRmxvb3IpCisgICAgICAgICAgICBy
ZWZlcmVuY2VTcGFjZSA9IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpjcmVhdGUoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBtYWtlUmVmKCp0aGlzKSwgdHlwZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHJlZmVyZW5jZVNwYWNlID0gV2ViWFJSZWZlcmVuY2VTcGFjZTo6Y3JlYXRl
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbWFrZVJlZigqdGhpcyksIHR5cGUpOworCisgICAg
ICAgIC8vICAyLjMuIFJlc29sdmUgcHJvbWlzZSB3aXRoIHJlZmVyZW5jZVNwYWNlLgorICAgICAg
ICAvLyAzLiBSZXR1cm4gcHJvbWlzZS4KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCpyZWZlcmVu
Y2VTcGFjZSk7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViWFJTZXNzaW9uOjphbmltYXRpb25UaW1l
ckZpcmVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
ZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5oCmlu
ZGV4IDlhZDY2ZjU4MTY2NjU5NmJlMTM3ZmMwZmE2NTI0OTBiZTYyMDZjNTYuLmM2NzA1ZDk4MzM4
NTlmOGFhYmNiYTExZDdjZDliNDJmZjg5YjgzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlNlc3Npb24uaApAQCAtOTYsNiArOTYsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKTsK
IAorICAgIGJvb2wgcmVmZXJlbmNlU3BhY2VJc1N1cHBvcnRlZChjb25zdCBYUlJlZmVyZW5jZVNw
YWNlVHlwZSYpIGNvbnN0OworCiAgICAgWFJFbnZpcm9ubWVudEJsZW5kTW9kZSBtX2Vudmlyb25t
ZW50QmxlbmRNb2RlOwogICAgIFhSVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJpbGl0eVN0YXRlOwog
ICAgIFJlZlB0cjxXZWJYUklucHV0U291cmNlQXJyYXk+IG1faW5wdXRTb3VyY2VzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5jcHAKaW5kZXggYTU1NWRmZWIwNTU5
NTcwY2NjMmM5ZDc2Zjc2MzRiOTc3NzQ4OGRlYy4uZTdhYTc4YWUyNWViZWU1OGNkNDhiMjU3MWI5
Zjk2Mjc5ZmQwMGU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUlNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3Bh
Y2UuY3BwCkBAIC0yOCwxNSArMjgsMTggQEAKIAogI2lmIEVOQUJMRShXRUJYUikKIAorI2luY2x1
ZGUgIldlYlhSU2Vzc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhS
U3BhY2UpOwogCi1XZWJYUlNwYWNlOjpXZWJYUlNwYWNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKK1dl
YlhSU3BhY2U6OldlYlhSU3BhY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgV2Vi
WFJTZXNzaW9uJiBzZXNzaW9uKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoY29u
dGV4dCkKKyAgICAsIG1fc2Vzc2lvbihtYWtlUmVmKHNlc3Npb24pKQogeworICAgIEFTU0VSVChj
b250ZXh0KTsKIH0KIAogV2ViWFJTcGFjZTo6fldlYlhSU3BhY2UoKSA9IGRlZmF1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5oCmluZGV4IDJiNGE4YTQwZDNkMzZm
MGI4ZTdkNjAyMTAwOGM2ZjUxYTg4YWIxMjEuLjVjNTI5MDViNGYxMTA2ZTZhYTNjNTNiYTQ2YTMx
MjhjNmQxMTA4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5o
CkBAIC0yOSwxMSArMjksMTMgQEAKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgV2ViWFJTZXNzaW9uOwogCiBj
bGFzcyBXZWJYUlNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT4sIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJTcGFjZSk7CkBAIC00NCwxMSAr
NDYsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTcGFjZT46OmRlcmVm
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViWFJTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7
CisgICAgV2ViWFJTcGFjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViWFJTZXNzaW9uJik7
CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKKyAgICBSZWY8V2Vi
WFJTZXNzaW9uPiBtX3Nlc3Npb247CisKIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQKICAg
ICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFdlYlhSU3BhY2VFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA2YzFlZWMxNDIwZjczM2Q1OWJhNDVkNmIxMTlmMGJkY2MyYTQzNTVhLi4wMTJjYmZlM2UxNDZl
NGU0YzAxMDBiZTgwNmNlNTVkMDc2YTJhOGQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAt
MDUtMjcgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW1dlYlhSXSBJbXBsZW1lbnQgWFJTZXNzaW9uOjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2UoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNDA3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS93cGUvVGVzdEV4cGVjdGF0aW9uczogVW5za2lwcGVkIDMgbW9yZSB0ZXN0cyB0aGF0IGFyZSB3
b3JraW5nIG5vdy4KKwogMjAyMC0wNS0xOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbV2ViWFJdIEltcGxlbWVudCBYUlNlc3Npb246OnJlcXVl
c3RBbmltYXRpb25GcmFtZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmNTU4
NTg5OWVlYWQwY2YzOWRiMTFhYzBmMGQxZDg2ODJmZWE3NDE5Li5jMzNjYjI1YjZlODY3MWM4NjJj
ZWU1YzFkMDEyNWI4ZTAxODk3YWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMC0wNS0yNyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIEltcGxlbWVudCBYUlNlc3Npb246OnJlcXVl
c3RSZWZlcmVuY2VTcGFjZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTI0MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VieHIvd2ViR0xDYW52YXNDb250ZXh0X2NyZWF0ZV94cmNvbXBhdGlibGUuaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIv
d2ViR0xDYW52YXNDb250ZXh0X21ha2Vjb21wYXRpYmxlX2NvbnRleHRsb3N0Lmh0dHBzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vz
c2lvbl9yZXF1ZXN0UmVmZXJlbmNlU3BhY2UuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwog
MjAyMC0wNS0xOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV2ViWFJdIEltcGxlbWVudCBYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFt
ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnhyL3dlYkdMQ2FudmFzQ29udGV4dF9jcmVhdGVfeHJjb21wYXRpYmxlLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VieHIvd2ViR0xDYW52YXNDb250ZXh0X2NyZWF0ZV94cmNvbXBhdGlibGUuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZjN2NlMGM2MjQzYWRkMmZkNTdiMWIzNTYyMjNhYzhlMDZkNTc2
ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnhyL3dlYkdMQ2FudmFzQ29udGV4dF9jcmVhdGVfeHJjb21wYXRpYmxlLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBBbiBYUi1jb21wYXRpYmxl
IHdlYmdsQ2FudmFzQ29udGV4dCBjYW4gYmUgY3JlYXRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci93ZWJHTENhbnZhc0Nv
bnRleHRfbWFrZWNvbXBhdGlibGVfY29udGV4dGxvc3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci93ZWJHTENhbnZh
c0NvbnRleHRfbWFrZWNvbXBhdGlibGVfY29udGV4dGxvc3QuaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2MjJjNWJjMTQxOTA4MDBlNTc3NWE3NDY1OGQ2OTEzZjJlMDA2NzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnhyL3dlYkdMQ2FudmFzQ29udGV4dF9tYWtlY29tcGF0aWJsZV9jb250ZXh0bG9zdC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQSBsb3N0IHdlYmdsQ2FudmFz
Q29udGV4dCBzaG91bGQgbm90IGJlIGFibGUgdG8gc2V0IHhyIGNvbXBhdGliaWxpdHkgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
eHIveHJTZXNzaW9uX3JlcXVlc3RSZWZlcmVuY2VTcGFjZS5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lv
bl9yZXF1ZXN0UmVmZXJlbmNlU3BhY2UuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3
MTA0M2FjNTNiMjEyMDljNWUxOTc5NGYzNDVkNWVjMTU5ZTA0ZjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vz
c2lvbl9yZXF1ZXN0UmVmZXJlbmNlU3BhY2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorCitQQVNTIEltbWVyc2l2ZSBYUlNlc3Npb24gcmVxdWVzdFJlZmVyZW5jZVNwYWNlIHJl
dHVybnMgZXhwZWN0ZWQgb2JqZWN0cyAKK1BBU1MgTm9uLWltbWVyc2l2ZSBYUlNlc3Npb24gcmVx
dWVzdFJlZmVyZW5jZVNwYWNlIHJldHVybnMgZXhwZWN0ZWQgb2JqZWN0cyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1ZGNhNmJjM2ExZTdkMzA5N2I3
Yjg4M2ZjZjk4M2NkMjUyNzlmMDlkLi40NDM0MGMzMGZlNmNlM2ZhMGQwOWViNDg0MWZmZWVmNzNj
NDUyOWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
OTY3LDYgKzk2Nyw4IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10
ZXh0L3doaXRlLXNwYWNlL3ByZS13cmFwLTAxMy5odG1sIFsgUGFzCiAKICMgV2ViWFIKIHdlYmtp
dC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxo
YXJuZXNzLmh0dHBzLndpbmRvdy5odG1sIFsgUGFzcyBdCit3ZWJraXQub3JnL2IvMjA5ODU5IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvd2ViR0xDYW52YXNDb250ZXh0X2Ny
ZWF0ZV94cmNvbXBhdGlibGUuaHR0cHMuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzIwOTg1
OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3dlYkdMQ2FudmFzQ29udGV4
dF9tYWtlY29tcGF0aWJsZV9jb250ZXh0bG9zdC5odHRwcy5odG1sIFsgUGFzcyBdCiB3ZWJraXQu
b3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJEZXZp
Y2VfaXNTZXNzaW9uU3VwcG9ydGVkX2lubGluZS5odHRwcy5odG1sIFsgUGFzcyBdCiB3ZWJraXQu
b3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJEZXZp
Y2VfaXNTZXNzaW9uU3VwcG9ydGVkX2ltbWVyc2l2ZS5odHRwcy5odG1sIFsgUGFzcyBdCiB3ZWJr
aXQub3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJE
ZXZpY2VfaXNTZXNzaW9uU3VwcG9ydGVkX2ltbWVyc2l2ZV91bnN1cHBvcnRlZC5odHRwcy5odG1s
IFsgUGFzcyBdCkBAIC05ODEsNiArOTgzLDcgQEAgd2Via2l0Lm9yZy9iLzIwOTg1OSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9jYW5jZWxBbmltYXQKIHdl
YmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94
clNlc3Npb25fY2FuY2VsQW5pbWF0aW9uRnJhbWVfaW52YWxpZGhhbmRsZS5odHRwcy5odG1sIFsg
UGFzcyBdCiB3ZWJraXQub3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VieHIveHJTZXNzaW9uX2ZlYXR1cmVzX2RldmljZVN1cHBvcnQuaHR0cHMuaHRtbCBbIFBh
c3MgXQogd2Via2l0Lm9yZy9iLzIwOTg1OSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnhyL3hyU2Vzc2lvbl9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVfY2FsbGJhY2tfY2FsbHMuaHR0
cHMuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzIwOTg1OSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnhyL3hyU2Vzc2lvbl9yZXF1ZXN0UmVmZXJlbmNlU3BhY2UuaHR0cHMu
aHRtbCBbIFBhc3MgXQogCiAjIFBhc3Npbmcgc2luY2UgcjI1OTUzMi4KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS9vdXRsaW5lLTAxOS5odG1sCg==
</data>
<flag name="review"
          id="415739"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>