<?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>224179</bug_id>
          
          <creation_ts>2021-04-05 02:42:04 -0700</creation_ts>
          <short_desc>BidiContext caching is not thread-safe</short_desc>
          <delta_ts>2021-04-06 03:00:19 -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>WebCore Misc.</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>183720</blocked>
    
    <blocked>186759</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1746918</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-04-05 02:42:04 -0700</bug_when>
    <thetext>I&apos;m not sure how this escaped, I thought I&apos;d dealt with it in my branch but here we are. Debug mode crashes when using text with OffscreenCanvas because of the ref/deref thread check in BidiContext. Workers need to use uncached contexts or it needs to be thread-safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746922</commentid>
    <comment_count>1</comment_count>
      <attachid>425144</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-04-05 03:50:41 -0700</bug_when>
    <thetext>Created attachment 425144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747170</commentid>
    <comment_count>2</comment_count>
      <attachid>425144</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-05 16:56:30 -0700</bug_when>
    <thetext>Comment on attachment 425144
Patch

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

&gt; Source/WebCore/platform/text/BidiContext.cpp:65
&gt; +            static BidiContext* ltrContext;
&gt; +            static std::once_flag ltrContextOnceFlag;
&gt; +            std::call_once(ltrContextOnceFlag, [&amp;]() {
&gt; +                ltrContext = &amp;createUncached(0, U_LEFT_TO_RIGHT, false, FromStyleOrDOM, 0).leakRef();
&gt; +            });
&gt; +            return *ltrContext;

I think the superior idiom is something more like this that does not use leakRef:

    static NeverDestroyed&lt;RefPtr&lt;BidiContext&gt;&gt; ltrContext;
    static std::once_flag ltrContextOnceFlag;
    std::call_once(ltrContextOnceFlag, [&amp;]() {
         ltrContext = createUncached(0, U_LEFT_TO_RIGHT, false, FromStyleOrDOM, 0);
    });
    return *ltrContext.get();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747333</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-04-06 02:12:10 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 425144 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425144&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/text/BidiContext.cpp:65
&gt; &gt; +            static BidiContext* ltrContext;
&gt; &gt; +            static std::once_flag ltrContextOnceFlag;
&gt; &gt; +            std::call_once(ltrContextOnceFlag, [&amp;]() {
&gt; &gt; +                ltrContext = &amp;createUncached(0, U_LEFT_TO_RIGHT, false, FromStyleOrDOM, 0).leakRef();
&gt; &gt; +            });
&gt; &gt; +            return *ltrContext;
&gt; 
&gt; I think the superior idiom is something more like this that does not use
&gt; leakRef:
&gt; 
&gt;     static NeverDestroyed&lt;RefPtr&lt;BidiContext&gt;&gt; ltrContext;
&gt;     static std::once_flag ltrContextOnceFlag;
&gt;     std::call_once(ltrContextOnceFlag, [&amp;]() {
&gt;          ltrContext = createUncached(0, U_LEFT_TO_RIGHT, false,
&gt; FromStyleOrDOM, 0);
&gt;     });
&gt;     return *ltrContext.get();

Funny, I played with this exact structure and not sure why I didn&apos;t settle with it... Anyway, I agree, will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747334</commentid>
    <comment_count>4</comment_count>
      <attachid>425255</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-04-06 02:12:42 -0700</bug_when>
    <thetext>Created attachment 425255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747341</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-06 02:59:41 -0700</bug_when>
    <thetext>Committed r275500: &lt;https://commits.webkit.org/r275500&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425255.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747342</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-06 03:00:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/76259907&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425144</attachid>
            <date>2021-04-05 03:50:41 -0700</date>
            <delta_ts>2021-04-06 02:12:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224179-20210405115040.patch</filename>
            <type>text/plain</type>
            <size>4530</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5ZmRjYzBkZWVkYmI0
NDFlOGI3MWEyZTliYjQ5OTliY2IwZjQ2Ni4uMjljZDRkMjdhOTdhZGFlYzFkMjAwOTEzNmExODNi
YTcxMWI5YzMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA0LTA1ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBCaWRpQ29udGV4dCBjYWNoaW5n
IGlzIG5vdCB0aHJlYWQtc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTWFrZSBCaWRpQ29udGV4dCBUaHJlYWRTYWZlUmVmQ291bnRlZCBhbmQgbWFr
ZSBzaGFyZWQgY29udGV4dCBjcmVhdGlvbgorICAgICAgICB0aHJlYWQtc2FmZS4gVGhpcyBpcyBu
ZWVkZWQgYnkgT2Zmc2NyZWVuQ2FudmFzIHRvIHVzZSB0ZXh0IGluIFdvcmtlcnMuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaWRpQ29u
dGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0Lmg6CisK
IDIwMjEtMDQtMDIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UGVuZGluZ0ltYWdlQml0bWFwIGdldHMgY3JlYXRlZCBvbiBhIHN0b3BwZWQgc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9C
aWRpQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0
LmNwcAppbmRleCBjOWYwZjgxM2JjYjYzNjYxNTRiYzA0YmVhNTAzYzYyNGZhZWEwMWI1Li4wODA2
NWM2ZjU1NjExN2UwZDlhY2ZmZTUwMjRjY2ZjMzUwZmZlYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcApAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBTYW1lU2l6ZUFzQmlkaUNvbnRleHQgOiBwdWJsaWMg
UmVmQ291bnRlZDxTYW1lU2l6ZUFzQmlkaUNvbnRleHQ+IHsKK3N0cnVjdCBTYW1lU2l6ZUFzQmlk
aUNvbnRleHQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2FtZVNpemVBc0JpZGlDb250
ZXh0PiB7CiAgICAgdWludDMyX3QgYml0ZmllbGRzIDogMTY7CiAgICAgdm9pZCogcGFyZW50Owog
fTsKQEAgLTU3LDIxICs1NywzNyBAQCBSZWY8QmlkaUNvbnRleHQ+IEJpZGlDb250ZXh0OjpjcmVh
dGUodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24gZGlyZWN0aQogICAgIEFTU0VS
VChsZXZlbCA8PSAxKTsKICAgICBpZiAoIWxldmVsKSB7CiAgICAgICAgIGlmICghb3ZlcnJpZGUp
IHsKLSAgICAgICAgICAgIHN0YXRpYyBCaWRpQ29udGV4dCYgbHRyQ29udGV4dCA9IGNyZWF0ZVVu
Y2FjaGVkKDAsIFVfTEVGVF9UT19SSUdIVCwgZmFsc2UsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFr
UmVmKCk7Ci0gICAgICAgICAgICByZXR1cm4gbHRyQ29udGV4dDsKKyAgICAgICAgICAgIHN0YXRp
YyBCaWRpQ29udGV4dCogbHRyQ29udGV4dDsKKyAgICAgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBsdHJDb250ZXh0T25jZUZsYWc7CisgICAgICAgICAgICBzdGQ6OmNhbGxfb25jZShsdHJD
b250ZXh0T25jZUZsYWcsIFsmXSgpIHsKKyAgICAgICAgICAgICAgICBsdHJDb250ZXh0ID0gJmNy
ZWF0ZVVuY2FjaGVkKDAsIFVfTEVGVF9UT19SSUdIVCwgZmFsc2UsIEZyb21TdHlsZU9yRE9NLCAw
KS5sZWFrUmVmKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiAqbHRyQ29u
dGV4dDsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBCaWRpQ29udGV4dCYgbHRyT3ZlcnJp
ZGVDb250ZXh0ID0gY3JlYXRlVW5jYWNoZWQoMCwgVV9MRUZUX1RPX1JJR0hULCB0cnVlLCBGcm9t
U3R5bGVPckRPTSwgMCkubGVha1JlZigpOwotICAgICAgICByZXR1cm4gbHRyT3ZlcnJpZGVDb250
ZXh0OworICAgICAgICBzdGF0aWMgQmlkaUNvbnRleHQqIGx0ck92ZXJyaWRlQ29udGV4dDsKKyAg
ICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGx0ck92ZXJyaWRlQ29udGV4dE9uY2VGbGFnOwor
ICAgICAgICBzdGQ6OmNhbGxfb25jZShsdHJPdmVycmlkZUNvbnRleHRPbmNlRmxhZywgWyZdKCkg
eworICAgICAgICAgICAgbHRyT3ZlcnJpZGVDb250ZXh0ID0gJmNyZWF0ZVVuY2FjaGVkKDAsIFVf
TEVGVF9UT19SSUdIVCwgdHJ1ZSwgRnJvbVN0eWxlT3JET00sIDApLmxlYWtSZWYoKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHJldHVybiAqbHRyT3ZlcnJpZGVDb250ZXh0OwogICAgIH0KIAogICAg
IGlmICghb3ZlcnJpZGUpIHsKLSAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0JiBydGxDb250ZXh0
ID0gY3JlYXRlVW5jYWNoZWQoMSwgVV9SSUdIVF9UT19MRUZULCBmYWxzZSwgRnJvbVN0eWxlT3JE
T00sIDApLmxlYWtSZWYoKTsKLSAgICAgICAgcmV0dXJuIHJ0bENvbnRleHQ7CisgICAgICAgIHN0
YXRpYyBCaWRpQ29udGV4dCogcnRsQ29udGV4dDsKKyAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIHJ0bENvbnRleHRPbmNlRmxhZzsKKyAgICAgICAgc3RkOjpjYWxsX29uY2UocnRsQ29udGV4
dE9uY2VGbGFnLCBbJl0oKSB7CisgICAgICAgICAgICBydGxDb250ZXh0ID0gJmNyZWF0ZVVuY2Fj
aGVkKDEsIFVfUklHSFRfVE9fTEVGVCwgZmFsc2UsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVm
KCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gKnJ0bENvbnRleHQ7CiAgICAgfQogCi0g
ICAgc3RhdGljIEJpZGlDb250ZXh0JiBydGxPdmVycmlkZUNvbnRleHQgPSBjcmVhdGVVbmNhY2hl
ZCgxLCBVX1JJR0hUX1RPX0xFRlQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVmKCk7
Ci0gICAgcmV0dXJuIHJ0bE92ZXJyaWRlQ29udGV4dDsKKyAgICBzdGF0aWMgQmlkaUNvbnRleHQq
IHJ0bE92ZXJyaWRlQ29udGV4dDsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgcnRsT3ZlcnJp
ZGVDb250ZXh0T25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UocnRsT3ZlcnJpZGVDb250ZXh0
T25jZUZsYWcsIFsmXSgpIHsKKyAgICAgICAgcnRsT3ZlcnJpZGVDb250ZXh0ID0gJmNyZWF0ZVVu
Y2FjaGVkKDEsIFVfUklHSFRfVE9fTEVGVCwgdHJ1ZSwgRnJvbVN0eWxlT3JET00sIDApLmxlYWtS
ZWYoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gKnJ0bE92ZXJyaWRlQ29udGV4dDsKIH0KIAogc3Rh
dGljIGlubGluZSBSZWY8QmlkaUNvbnRleHQ+IGNvcHlDb250ZXh0QW5kUmViYXNlbGluZUxldmVs
KEJpZGlDb250ZXh0JiBjb250ZXh0LCBCaWRpQ29udGV4dCogcGFyZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oCmluZGV4IGQ0YzRlNTcwOGEwZDQyY2I5Y2I0
NzFhMmMwNjk2NzBkMzliZDM0ZDEuLjVhOGQ5MDllZWE5MWI2MTllNTM5NDY5ZmRhY2ZjNGYzYTI2
MDNkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmgKQEAg
LTIyLDE1ICsyMiwxNSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx1bmljb2RlL3VjaGFy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogZW51bSBCaWRpRW1iZWRkaW5nU291cmNlIHsgRnJvbVN0eWxlT3JET00sIEZyb21V
bmljb2RlIH07CiAKIC8vIFVzZWQgdG8ga2VlcCB0cmFjayBvZiBleHBsaWNpdCBlbWJlZGRpbmdz
LgotY2xhc3MgQmlkaUNvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxCaWRpQ29udGV4dD4gewor
Y2xhc3MgQmlkaUNvbnRleHQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QmlkaUNvbnRl
eHQ+IHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEJpZGlDb250ZXh0
PiBjcmVhdGUodW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24sIGJvb2wgb3ZlcnJp
ZGUgPSBmYWxzZSwgQmlkaUVtYmVkZGluZ1NvdXJjZSA9IEZyb21TdHlsZU9yRE9NLCBCaWRpQ29u
dGV4dCogcGFyZW50ID0gbnVsbHB0cik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425255</attachid>
            <date>2021-04-06 02:12:42 -0700</date>
            <delta_ts>2021-04-06 02:59:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224179-20210406101241.patch</filename>
            <type>text/plain</type>
            <size>4623</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5ZmRjYzBkZWVkYmI0
NDFlOGI3MWEyZTliYjQ5OTliY2IwZjQ2Ni4uN2I0M2UwZDc4NmE4ZDliNmFiZTcxYmZkNWNlNjI4
NDg5ODUwM2U2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA0LTA1ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBCaWRpQ29udGV4dCBjYWNoaW5n
IGlzIG5vdCB0aHJlYWQtc2FmZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgTWFrZSBCaWRpQ29udGV4dCBUaHJlYWRTYWZlUmVmQ291bnRlZCBhbmQgbWFrZSBz
aGFyZWQgY29udGV4dCBjcmVhdGlvbgorICAgICAgICB0aHJlYWQtc2FmZS4gVGhpcyBpcyBuZWVk
ZWQgYnkgT2Zmc2NyZWVuQ2FudmFzIHRvIHVzZSB0ZXh0IGluIFdvcmtlcnMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaWRpQ29udGV4
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0Lmg6CisKIDIw
MjEtMDQtMDIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGVu
ZGluZ0ltYWdlQml0bWFwIGdldHMgY3JlYXRlZCBvbiBhIHN0b3BwZWQgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRp
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNw
cAppbmRleCBjOWYwZjgxM2JjYjYzNjYxNTRiYzA0YmVhNTAzYzYyNGZhZWEwMWI1Li45N2E2MzU2
YWY3MTQzZjQxOWQ5ZTZlMzgyNGQxNzdhYzE3MWY0YTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcApAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBTYW1lU2l6ZUFzQmlkaUNvbnRleHQgOiBwdWJsaWMgUmVm
Q291bnRlZDxTYW1lU2l6ZUFzQmlkaUNvbnRleHQ+IHsKK3N0cnVjdCBTYW1lU2l6ZUFzQmlkaUNv
bnRleHQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2FtZVNpemVBc0JpZGlDb250ZXh0
PiB7CiAgICAgdWludDMyX3QgYml0ZmllbGRzIDogMTY7CiAgICAgdm9pZCogcGFyZW50OwogfTsK
QEAgLTU3LDIxICs1NywzNyBAQCBSZWY8QmlkaUNvbnRleHQ+IEJpZGlDb250ZXh0OjpjcmVhdGUo
dW5zaWduZWQgY2hhciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24gZGlyZWN0aQogICAgIEFTU0VSVChs
ZXZlbCA8PSAxKTsKICAgICBpZiAoIWxldmVsKSB7CiAgICAgICAgIGlmICghb3ZlcnJpZGUpIHsK
LSAgICAgICAgICAgIHN0YXRpYyBCaWRpQ29udGV4dCYgbHRyQ29udGV4dCA9IGNyZWF0ZVVuY2Fj
aGVkKDAsIFVfTEVGVF9UT19SSUdIVCwgZmFsc2UsIEZyb21TdHlsZU9yRE9NLCAwKS5sZWFrUmVm
KCk7Ci0gICAgICAgICAgICByZXR1cm4gbHRyQ29udGV4dDsKKyAgICAgICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZWZQdHI8QmlkaUNvbnRleHQ+PiBsdHJDb250ZXh0OworICAgICAgICAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGx0ckNvbnRleHRPbmNlRmxhZzsKKyAgICAgICAgICAg
IHN0ZDo6Y2FsbF9vbmNlKGx0ckNvbnRleHRPbmNlRmxhZywgWyZdKCkgeworICAgICAgICAgICAg
ICAgIGx0ckNvbnRleHQuZ2V0KCkgPSBjcmVhdGVVbmNhY2hlZCgwLCBVX0xFRlRfVE9fUklHSFQs
IGZhbHNlLCBGcm9tU3R5bGVPckRPTSwgMCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IHJldHVybiAqbHRyQ29udGV4dC5nZXQoKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBC
aWRpQ29udGV4dCYgbHRyT3ZlcnJpZGVDb250ZXh0ID0gY3JlYXRlVW5jYWNoZWQoMCwgVV9MRUZU
X1RPX1JJR0hULCB0cnVlLCBGcm9tU3R5bGVPckRPTSwgMCkubGVha1JlZigpOwotICAgICAgICBy
ZXR1cm4gbHRyT3ZlcnJpZGVDb250ZXh0OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UmVmUHRyPEJpZGlDb250ZXh0Pj4gbHRyT3ZlcnJpZGVDb250ZXh0OworICAgICAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgbHRyT3ZlcnJpZGVDb250ZXh0T25jZUZsYWc7CisgICAgICAgIHN0ZDo6
Y2FsbF9vbmNlKGx0ck92ZXJyaWRlQ29udGV4dE9uY2VGbGFnLCBbJl0oKSB7CisgICAgICAgICAg
ICBsdHJPdmVycmlkZUNvbnRleHQuZ2V0KCkgPSBjcmVhdGVVbmNhY2hlZCgwLCBVX0xFRlRfVE9f
UklHSFQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybiAqbHRyT3ZlcnJpZGVDb250ZXh0LmdldCgpOwogICAgIH0KIAogICAgIGlmICghb3ZlcnJp
ZGUpIHsKLSAgICAgICAgc3RhdGljIEJpZGlDb250ZXh0JiBydGxDb250ZXh0ID0gY3JlYXRlVW5j
YWNoZWQoMSwgVV9SSUdIVF9UT19MRUZULCBmYWxzZSwgRnJvbVN0eWxlT3JET00sIDApLmxlYWtS
ZWYoKTsKLSAgICAgICAgcmV0dXJuIHJ0bENvbnRleHQ7CisgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxSZWZQdHI8QmlkaUNvbnRleHQ+PiBydGxDb250ZXh0OworICAgICAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgcnRsQ29udGV4dE9uY2VGbGFnOworICAgICAgICBzdGQ6OmNhbGxfb25j
ZShydGxDb250ZXh0T25jZUZsYWcsIFsmXSgpIHsKKyAgICAgICAgICAgIHJ0bENvbnRleHQuZ2V0
KCkgPSBjcmVhdGVVbmNhY2hlZCgxLCBVX1JJR0hUX1RPX0xFRlQsIGZhbHNlLCBGcm9tU3R5bGVP
ckRPTSwgMCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gKnJ0bENvbnRleHQuZ2V0KCk7
CiAgICAgfQogCi0gICAgc3RhdGljIEJpZGlDb250ZXh0JiBydGxPdmVycmlkZUNvbnRleHQgPSBj
cmVhdGVVbmNhY2hlZCgxLCBVX1JJR0hUX1RPX0xFRlQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAw
KS5sZWFrUmVmKCk7Ci0gICAgcmV0dXJuIHJ0bE92ZXJyaWRlQ29udGV4dDsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPEJpZGlDb250ZXh0Pj4gcnRsT3ZlcnJpZGVDb250ZXh0Owor
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBydGxPdmVycmlkZUNvbnRleHRPbmNlRmxhZzsKKyAg
ICBzdGQ6OmNhbGxfb25jZShydGxPdmVycmlkZUNvbnRleHRPbmNlRmxhZywgWyZdKCkgeworICAg
ICAgICBydGxPdmVycmlkZUNvbnRleHQuZ2V0KCkgPSBjcmVhdGVVbmNhY2hlZCgxLCBVX1JJR0hU
X1RPX0xFRlQsIHRydWUsIEZyb21TdHlsZU9yRE9NLCAwKTsKKyAgICB9KTsKKyAgICByZXR1cm4g
KnJ0bE92ZXJyaWRlQ29udGV4dC5nZXQoKTsKIH0KIAogc3RhdGljIGlubGluZSBSZWY8QmlkaUNv
bnRleHQ+IGNvcHlDb250ZXh0QW5kUmViYXNlbGluZUxldmVsKEJpZGlDb250ZXh0JiBjb250ZXh0
LCBCaWRpQ29udGV4dCogcGFyZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9CaWRpQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRp
Q29udGV4dC5oCmluZGV4IGQ0YzRlNTcwOGEwZDQyY2I5Y2I0NzFhMmMwNjk2NzBkMzliZDM0ZDEu
LjVhOGQ5MDllZWE5MWI2MTllNTM5NDY5ZmRhY2ZjNGYzYTI2MDNkNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmgKQEAgLTIyLDE1ICsyMiwxNSBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlIDx1bmljb2RlL3VjaGFyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBCaWRpRW1i
ZWRkaW5nU291cmNlIHsgRnJvbVN0eWxlT3JET00sIEZyb21Vbmljb2RlIH07CiAKIC8vIFVzZWQg
dG8ga2VlcCB0cmFjayBvZiBleHBsaWNpdCBlbWJlZGRpbmdzLgotY2xhc3MgQmlkaUNvbnRleHQg
OiBwdWJsaWMgUmVmQ291bnRlZDxCaWRpQ29udGV4dD4geworY2xhc3MgQmlkaUNvbnRleHQgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QmlkaUNvbnRleHQ+IHsKIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEJpZGlDb250ZXh0PiBjcmVhdGUodW5zaWduZWQgY2hh
ciBsZXZlbCwgVUNoYXJEaXJlY3Rpb24sIGJvb2wgb3ZlcnJpZGUgPSBmYWxzZSwgQmlkaUVtYmVk
ZGluZ1NvdXJjZSA9IEZyb21TdHlsZU9yRE9NLCBCaWRpQ29udGV4dCogcGFyZW50ID0gbnVsbHB0
cik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>