<?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>251451</bug_id>
          
          <creation_ts>2023-01-31 13:01:10 -0800</creation_ts>
          <short_desc>AX: Retain AXTextMarkerRefs and AXTextMarkerRangeRefs passed from the AX thread to the main thread.</short_desc>
          <delta_ts>2023-02-06 14:56:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1929837</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-01-31 13:01:10 -0800</bug_when>
    <thetext>The AXTextMarker*Refs can be released on the AX thread and hence be invalid on the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929838</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-01-31 13:01:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/104881175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929839</commentid>
    <comment_count>2</comment_count>
      <attachid>464783</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-01-31 13:03:25 -0800</bug_when>
    <thetext>Created attachment 464783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931511</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-02-06 14:56:29 -0800</bug_when>
    <thetext>Committed 259918@main (e0e146fe111c): &lt;https://commits.webkit.org/259918@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 464783.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464783</attachid>
            <date>2023-01-31 13:03:25 -0800</date>
            <delta_ts>2023-02-06 14:56:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-251451-20230131160323.patch</filename>
            <type>text/plain</type>
            <size>17446</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">RnJvbSBlZTg0NGNhNmE4Zjk3NGU2YzgyNmQ3MzhjZDRjYTE3MmQ0MmM5Yjk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXMgR29uemFsZXogPGFuZHJlc2dfMjJAYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDMxIEphbiAyMDIzIDEzOjU3OjI1IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0g
QVg6IFJldGFpbiBBWFRleHRNYXJrZXJSZWZzIGFuZCBBWFRleHRNYXJrZXJSYW5nZVJlZnMgcGFz
c2VkCiBmcm9tIHRoZSBBWCB0aHJlYWQgdG8gdGhlIG1haW4gdGhyZWFkLgogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MTQ1MSA8cmRhcjovL3Byb2JsZW0vMTA0ODgx
MTc1PgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgooLVtXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBkb0FYQXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZTpzcGVsbENoZWNrOl0pOgooLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBf
YWNjZXNzaWJpbGl0eVNldFZhbHVlOmZvckF0dHJpYnV0ZTpdKToKKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgX2luZGV4Rm9yVGV4dE1hcmtlcjpdKToKKC1bV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIgdGV4dE1hcmtlclJhbmdlQXRUZXh0TWFya2VyOmZvclVuaXQ6XSk6Cigt
W1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGxpbmVUZXh0TWFya2VyUmFuZ2VGb3JUZXh0
TWFya2VyOmZvclVuaXQ6XSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHRleHRN
YXJrZXJGb3JUZXh0TWFya2VyOmF0VW5pdDpdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmZvclBhcmFtZXRlcjpdKToKLS0tCiAu
Li4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCA2OCArKysrKysr
KystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCA5M2Mw
ZjY1OGY3ZGEuLmEwNDRjOGM3MTk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0KQEAgLTEwMzYsMTIgKzEwMzYsMTIgQEAgc3RhdGljIE5TU3RyaW5nKiBuc1N0cmlu
Z0ZvclJlcGxhY2VkTm9kZShOb2RlKiByZXBsYWNlZE5vZGUpCiAKIC0gKE5TQXR0cmlidXRlZFN0
cmluZyAqKWRvQVhBdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlOihBWFRleHRNYXJr
ZXJSYW5nZVJlZil0ZXh0TWFya2VyUmFuZ2Ugc3BlbGxDaGVjazooQk9PTClzcGVsbENoZWNrCiB7
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9t
TWFpblRocmVhZDxOU0F0dHJpYnV0ZWRTdHJpbmcgKj4oWyZ0ZXh0TWFya2VyUmFuZ2UsICZzcGVs
bENoZWNrLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoKSAtPiBSZXRhaW5QdHI8
TlNBdHRyaWJ1dGVkU3RyaW5nPiB7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZl
QXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVhZDxOU0F0dHJpYnV0ZWRTdHJpbmcgKj4oW3Rl
eHRNYXJrZXJSYW5nZSA9IHJldGFpblB0cih0ZXh0TWFya2VyUmFuZ2UpLCAmc3BlbGxDaGVjaywg
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gUmV0YWluUHRyPE5TQXR0cmli
dXRlZFN0cmluZz4gewogICAgICAgICBhdXRvKiBiYWNraW5nT2JqZWN0ID0gcHJvdGVjdGVkU2Vs
Zi5nZXQoKS5heEJhY2tpbmdPYmplY3Q7CiAgICAgICAgIGlmICghYmFja2luZ09iamVjdCkKICAg
ICAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICAgICAgYXV0byByYW5nZSA9IHJhbmdlRm9yVGV4
dE1hcmtlclJhbmdlKGJhY2tpbmdPYmplY3QtPmF4T2JqZWN0Q2FjaGUoKSwgdGV4dE1hcmtlclJh
bmdlKTsKKyAgICAgICAgYXV0byByYW5nZSA9IHJhbmdlRm9yVGV4dE1hcmtlclJhbmdlKGJhY2tp
bmdPYmplY3QtPmF4T2JqZWN0Q2FjaGUoKSwgdGV4dE1hcmtlclJhbmdlLmdldCgpKTsKICAgICAg
ICAgaWYgKCFyYW5nZSkKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgICAgIGF1dG8gYXR0
clN0cmluZyA9IGFkb3B0TlMoW1tOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nIGFsbG9jXSBpbml0
XSk7CkBAIC0zMDg1LDExICszMDg1LDExIEBAIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlTZXRWYWx1
ZTooaWQpdmFsdWUgZm9yQXR0cmlidXRlOihOU1N0cmluZyAqKWF0dHJpYnV0ZU5hbWUKICAgICAg
ICAgYXJyYXkgPSB2YWx1ZTsKIAogICAgIC8vIGhhbmRsZSB0aGUgY29tbWFuZAotICAgIGlmIChb
YXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6IEAiQVhTZWxlY3RlZFRleHRNYXJrZXJSYW5n
ZSJdKSB7CisgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpAIkFYU2VsZWN0
ZWRUZXh0TWFya2VyUmFuZ2UiXSkgewogICAgICAgICBBU1NFUlQodGV4dE1hcmtlclJhbmdlKTsK
LSAgICAgICAgQWNjZXNzaWJpbGl0eTo6cGVyZm9ybUZ1bmN0aW9uT25NYWluVGhyZWFkKFsmdGV4
dE1hcmtlclJhbmdlLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSB7CisgICAgICAg
IEFjY2Vzc2liaWxpdHk6OnBlcmZvcm1GdW5jdGlvbk9uTWFpblRocmVhZChbdGV4dE1hcmtlclJh
bmdlID0gcmV0YWluUHRyKHRleHRNYXJrZXJSYW5nZSksIHByb3RlY3RlZFNlbGYgPSByZXRhaW5Q
dHIoc2VsZildIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBiYWNraW5nT2JqZWN0ID0gcHJvdGVj
dGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3QpCi0gICAgICAgICAgICAgICAgYmFja2luZ09i
amVjdC0+c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSh2aXNpYmxlUG9zaXRpb25SYW5n
ZUZvclRleHRNYXJrZXJSYW5nZShiYWNraW5nT2JqZWN0LT5heE9iamVjdENhY2hlKCksIHRleHRN
YXJrZXJSYW5nZSkpOworICAgICAgICAgICAgICAgIGJhY2tpbmdPYmplY3QtPnNldFNlbGVjdGVk
VmlzaWJsZVBvc2l0aW9uUmFuZ2UodmlzaWJsZVBvc2l0aW9uUmFuZ2VGb3JUZXh0TWFya2VyUmFu
Z2UoYmFja2luZ09iamVjdC0+YXhPYmplY3RDYWNoZSgpLCB0ZXh0TWFya2VyUmFuZ2UuZ2V0KCkp
KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9T
dHJpbmc6IE5TQWNjZXNzaWJpbGl0eUZvY3VzZWRBdHRyaWJ1dGVdKSB7CiAgICAgICAgIGJhY2tp
bmdPYmplY3QtPnNldEZvY3VzZWQoW251bWJlciBib29sVmFsdWVdKTsKQEAgLTMxODgsMTMgKzMx
ODgsMTMgQEAgLSAoTlNJbnRlZ2VyKV9pbmRleEZvclRleHRNYXJrZXI6KEFYVGV4dE1hcmtlclJl
ZiltYXJrZXIKICAgICBpZiAoIW1hcmtlcikKICAgICAgICAgcmV0dXJuIE5TTm90Rm91bmQ7CiAK
LSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPE5T
SW50ZWdlcj4oWyZtYXJrZXIsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+
IE5TSW50ZWdlciB7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9t
TWFpblRocmVhZDxOU0ludGVnZXI+KFttYXJrZXIgPSByZXRhaW5QdHIobWFya2VyKSwgcHJvdGVj
dGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gTlNJbnRlZ2VyIHsKICAgICAgICAgYXV0
byogYmFja2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2JqZWN0Owog
ICAgICAgICBpZiAoIWJhY2tpbmdPYmplY3QpCiAgICAgICAgICAgICByZXR1cm4gTlNOb3RGb3Vu
ZDsKIAogICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBiYWNraW5nT2JqZWN0LT5heE9iamVjdENh
Y2hlKCkpIHsKLSAgICAgICAgICAgIENoYXJhY3Rlck9mZnNldCBjaGFyYWN0ZXJPZmZzZXQgPSBj
aGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyKGNhY2hlLCBtYXJrZXIpOworICAgICAgICAgICAg
YXV0byBjaGFyYWN0ZXJPZmZzZXQgPSBjaGFyYWN0ZXJPZmZzZXRGb3JUZXh0TWFya2VyKGNhY2hl
LCBtYXJrZXIuZ2V0KCkpOwogICAgICAgICAgICAgYXV0byByYW5nZSA9IGNhY2hlLT5yYW5nZUZv
clVub3JkZXJlZENoYXJhY3Rlck9mZnNldHMoY2hhcmFjdGVyT2Zmc2V0LCBjaGFyYWN0ZXJPZmZz
ZXQpOwogICAgICAgICAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgICAgICAgICByZXR1cm4gTlNO
b3RGb3VuZDsKQEAgLTMzMDcsNyArMzMwNyw3IEBAIGVudW0gY2xhc3MgVGV4dFVuaXQgewogCiAt
IChBWFRleHRNYXJrZXJSYW5nZVJlZil0ZXh0TWFya2VyUmFuZ2VBdFRleHRNYXJrZXI6KEFYVGV4
dE1hcmtlclJlZil0ZXh0TWFya2VyIGZvclVuaXQ6KFRleHRVbml0KXRleHRVbml0CiB7Ci0gICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRo
cmVhZDxBWFRleHRNYXJrZXJSYW5nZVJlZj4oWyZ0ZXh0TWFya2VyLCAmdGV4dFVuaXQsIHByb3Rl
Y3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+IFJldGFpblB0cjxBWFRleHRNYXJrZXJS
YW5nZVJlZj4geworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZUF1dG9yZWxlYXNl
ZFZhbHVlRnJvbU1haW5UaHJlYWQ8QVhUZXh0TWFya2VyUmFuZ2VSZWY+KFt0ZXh0TWFya2VyID0g
cmV0YWluUHRyKHRleHRNYXJrZXIpLCAmdGV4dFVuaXQsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5Q
dHIoc2VsZildICgpIC0+IFJldGFpblB0cjxBWFRleHRNYXJrZXJSYW5nZVJlZj4gewogICAgICAg
ICBhdXRvKiBiYWNraW5nT2JqZWN0ID0gcHJvdGVjdGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmpl
Y3Q7CiAgICAgICAgIGlmICghYmFja2luZ09iamVjdCkKICAgICAgICAgICAgIHJldHVybiBuaWw7
CkBAIC0zMzE2LDcgKzMzMTYsNyBAQCAtIChBWFRleHRNYXJrZXJSYW5nZVJlZil0ZXh0TWFya2Vy
UmFuZ2VBdFRleHRNYXJrZXI6KEFYVGV4dE1hcmtlclJlZil0ZXh0TWFya2VyCiAgICAgICAgIGlm
ICghY2FjaGUpCiAgICAgICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgICAgIGF1dG8gY2hhcmFj
dGVyT2Zmc2V0ID0gY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlcihjYWNoZSwgdGV4dE1hcmtl
cik7CisgICAgICAgIGF1dG8gY2hhcmFjdGVyT2Zmc2V0ID0gY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4
dE1hcmtlcihjYWNoZSwgdGV4dE1hcmtlci5nZXQoKSk7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
U2ltcGxlUmFuZ2U+IHJhbmdlOwogICAgICAgICBzd2l0Y2ggKHRleHRVbml0KSB7CiAgICAgICAg
IGNhc2UgVGV4dFVuaXQ6OkxlZnRXb3JkOgpAQCAtMzM0Miw3ICszMzQyLDcgQEAgLSAoQVhUZXh0
TWFya2VyUmFuZ2VSZWYpdGV4dE1hcmtlclJhbmdlQXRUZXh0TWFya2VyOihBWFRleHRNYXJrZXJS
ZWYpdGV4dE1hcmtlcgogCiAtIChBWFRleHRNYXJrZXJSYW5nZVJlZilsaW5lVGV4dE1hcmtlclJh
bmdlRm9yVGV4dE1hcmtlcjooQVhUZXh0TWFya2VyUmVmKXRleHRNYXJrZXIgZm9yVW5pdDooVGV4
dFVuaXQpdGV4dFVuaXQKIHsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRv
cmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPEFYVGV4dE1hcmtlclJhbmdlUmVmPihbJnRleHRN
YXJrZXIsICZ0ZXh0VW5pdCwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4g
UmV0YWluUHRyPEFYVGV4dE1hcmtlclJhbmdlUmVmPiB7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHk6OnJldHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVhZDxBWFRleHRNYXJrZXJS
YW5nZVJlZj4oW3RleHRNYXJrZXIgPSByZXRhaW5QdHIodGV4dE1hcmtlciksICZ0ZXh0VW5pdCwg
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gUmV0YWluUHRyPEFYVGV4dE1h
cmtlclJhbmdlUmVmPiB7CiAgICAgICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRT
ZWxmLmdldCgpLmF4QmFja2luZ09iamVjdDsKICAgICAgICAgaWYgKCFiYWNraW5nT2JqZWN0KQog
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTMzNTEsNyArMzM1MSw3IEBAIC0gKEFYVGV4dE1h
cmtlclJhbmdlUmVmKWxpbmVUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyOihBWFRleHRNYXJr
ZXJSZWYpdGV4dE1hCiAgICAgICAgIGlmICghY2FjaGUpCiAgICAgICAgICAgICByZXR1cm4gbmls
OwogCi0gICAgICAgIEFYVGV4dE1hcmtlciBtYXJrZXIodGV4dE1hcmtlcik7CisgICAgICAgIEFY
VGV4dE1hcmtlciBtYXJrZXIodGV4dE1hcmtlci5nZXQoKSk7CiAgICAgICAgIFZpc2libGVQb3Np
dGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlOwogICAgICAgICBzd2l0Y2ggKHRleHRVbml0
KSB7CiAgICAgICAgIGNhc2UgVGV4dFVuaXQ6OkxpbmU6CkBAIC0zMzc0LDcgKzMzNzQsNyBAQCAt
IChBWFRleHRNYXJrZXJSYW5nZVJlZilsaW5lVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlcjoo
QVhUZXh0TWFya2VyUmVmKXRleHRNYQogCiAtIChBWFRleHRNYXJrZXJSZWYpdGV4dE1hcmtlckZv
clRleHRNYXJrZXI6KEFYVGV4dE1hcmtlclJlZil0ZXh0TWFya2VyIGF0VW5pdDooVGV4dFVuaXQp
dGV4dFVuaXQKIHsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFz
ZWRWYWx1ZUZyb21NYWluVGhyZWFkPEFYVGV4dE1hcmtlclJlZj4oWyZ0ZXh0TWFya2VyLCAmdGV4
dFVuaXQsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+IFJldGFpblB0cjxB
WFRleHRNYXJrZXJSZWY+IHsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRv
cmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPEFYVGV4dE1hcmtlclJlZj4oW3RleHRNYXJrZXIg
PSByZXRhaW5QdHIodGV4dE1hcmtlciksICZ0ZXh0VW5pdCwgcHJvdGVjdGVkU2VsZiA9IHJldGFp
blB0cihzZWxmKV0gKCkgLT4gUmV0YWluUHRyPEFYVGV4dE1hcmtlclJlZj4gewogICAgICAgICBh
dXRvKiBiYWNraW5nT2JqZWN0ID0gcHJvdGVjdGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3Q7
CiAgICAgICAgIGlmICghYmFja2luZ09iamVjdCkKICAgICAgICAgICAgIHJldHVybiBuaWw7CkBA
IC0zMzgzLDcgKzMzODMsNyBAQCAtIChBWFRleHRNYXJrZXJSZWYpdGV4dE1hcmtlckZvclRleHRN
YXJrZXI6KEFYVGV4dE1hcmtlclJlZil0ZXh0TWFya2VyIGF0VW5pdDooVAogICAgICAgICBpZiAo
IWNhY2hlKQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgICAgICBDaGFyYWN0ZXJPZmZz
ZXQgb2xkT2Zmc2V0ID0gY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1hcmtlcihjYWNoZSwgdGV4dE1h
cmtlcik7CisgICAgICAgIGF1dG8gb2xkT2Zmc2V0ID0gY2hhcmFjdGVyT2Zmc2V0Rm9yVGV4dE1h
cmtlcihjYWNoZSwgdGV4dE1hcmtlci5nZXQoKSk7CiAgICAgICAgIENoYXJhY3Rlck9mZnNldCBu
ZXdPZmZzZXQ7CiAgICAgICAgIHN3aXRjaCAodGV4dFVuaXQpIHsKICAgICAgICAgY2FzZSBUZXh0
VW5pdDo6TmV4dFdvcmRFbmQ6CkBAIC0zNDA1LDExICszNDA1LDExIEBAIC0gKEFYVGV4dE1hcmtl
clJlZil0ZXh0TWFya2VyRm9yVGV4dE1hcmtlcjooQVhUZXh0TWFya2VyUmVmKXRleHRNYXJrZXIg
YXRVbml0OihUCiAgICAgICAgICAgICBuZXdPZmZzZXQgPSBjYWNoZS0+cHJldmlvdXNQYXJhZ3Jh
cGhTdGFydENoYXJhY3Rlck9mZnNldChvbGRPZmZzZXQpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgVGV4dFVuaXQ6Ok5leHRMaW5lRW5kOiB7Ci0gICAgICAgICAgICBhdXRvIHZp
c2libGVQb3NpdGlvbiA9IHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXIoY2FjaGUsIHRleHRN
YXJrZXIpOworICAgICAgICAgICAgYXV0byB2aXNpYmxlUG9zaXRpb24gPSB2aXNpYmxlUG9zaXRp
b25Gb3JUZXh0TWFya2VyKGNhY2hlLCB0ZXh0TWFya2VyLmdldCgpKTsKICAgICAgICAgICAgIHJl
dHVybiB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBiYWNraW5nT2JqZWN0LT5u
ZXh0TGluZUVuZFBvc2l0aW9uKHZpc2libGVQb3NpdGlvbikpOwogICAgICAgICB9CiAgICAgICAg
IGNhc2UgVGV4dFVuaXQ6OlByZXZpb3VzTGluZVN0YXJ0OiB7Ci0gICAgICAgICAgICBhdXRvIHZp
c2libGVQb3NpdGlvbiA9IHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXIoY2FjaGUsIHRleHRN
YXJrZXIpOworICAgICAgICAgICAgYXV0byB2aXNpYmxlUG9zaXRpb24gPSB2aXNpYmxlUG9zaXRp
b25Gb3JUZXh0TWFya2VyKGNhY2hlLCB0ZXh0TWFya2VyLmdldCgpKTsKICAgICAgICAgICAgIHJl
dHVybiB0ZXh0TWFya2VyRm9yVmlzaWJsZVBvc2l0aW9uKGNhY2hlLCBiYWNraW5nT2JqZWN0LT5w
cmV2aW91c0xpbmVTdGFydFBvc2l0aW9uKHZpc2libGVQb3NpdGlvbikpOwogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CkBAIC0zNjQ0LDEyICszNjQ0LDEyIEBAIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORAogICAgIH0KIAogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxU
b1N0cmluZzpOU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VySXNWYWxpZFBhcmFtZXRlcml6ZWRBdHRy
aWJ1dGVdKSB7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVW
YWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFsmdGV4dE1hcmtlciwgcHJvdGVjdGVkU2VsZiA9IHJl
dGFpblB0cihzZWxmKV0gKCkgLT4gYm9vbCB7CisgICAgICAgIGJvb2wgcmVzdWx0ID0gQWNjZXNz
aWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPGJvb2w+KFt0ZXh0TWFya2VyID0g
cmV0YWluUHRyKHRleHRNYXJrZXIpLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAo
KSAtPiBib29sIHsKICAgICAgICAgICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRT
ZWxmLmdldCgpLmF4QmFja2luZ09iamVjdDsKICAgICAgICAgICAgIGlmICghYmFja2luZ09iamVj
dCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIHJldHVybiAh
dmlzaWJsZVBvc2l0aW9uRm9yVGV4dE1hcmtlcihiYWNraW5nT2JqZWN0LT5heE9iamVjdENhY2hl
KCksIHRleHRNYXJrZXIpLmlzTnVsbCgpOworICAgICAgICAgICAgcmV0dXJuICF2aXNpYmxlUG9z
aXRpb25Gb3JUZXh0TWFya2VyKGJhY2tpbmdPYmplY3QtPmF4T2JqZWN0Q2FjaGUoKSwgdGV4dE1h
cmtlci5nZXQoKSkuaXNOdWxsKCk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIHJldHVybiBbTlNO
dW1iZXIgbnVtYmVyV2l0aEJvb2w6cmVzdWx0XTsKQEAgLTM2ODMsMTIgKzM2ODMsMTIgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKFthdHRy
aWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhMaW5lRm9yVGV4dE1hcmtlciJdKSB7Ci0gICAgICAg
IGludCByZXN1bHQgPSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8
aW50PihbJnRleHRNYXJrZXIsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+
IGludCB7CisgICAgICAgIGludCByZXN1bHQgPSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVl
RnJvbU1haW5UaHJlYWQ8aW50PihbdGV4dE1hcmtlciA9IHJldGFpblB0cih0ZXh0TWFya2VyKSwg
cHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4gaW50IHsKICAgICAgICAgICAg
IGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09iamVj
dDsKICAgICAgICAgICAgIGlmICghYmFja2luZ09iamVjdCkKICAgICAgICAgICAgICAgICByZXR1
cm4gLTE7CiAKLSAgICAgICAgICAgIGF1dG8gdmlzaWJsZVBvcyA9IHZpc2libGVQb3NpdGlvbkZv
clRleHRNYXJrZXIoYmFja2luZ09iamVjdC0+YXhPYmplY3RDYWNoZSgpLCB0ZXh0TWFya2VyKTsK
KyAgICAgICAgICAgIGF1dG8gdmlzaWJsZVBvcyA9IHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJr
ZXIoYmFja2luZ09iamVjdC0+YXhPYmplY3RDYWNoZSgpLCB0ZXh0TWFya2VyLmdldCgpKTsKICAg
ICAgICAgICAgIHJldHVybiBiYWNraW5nT2JqZWN0LT5saW5lRm9yUG9zaXRpb24odmlzaWJsZVBv
cyk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gQChyZXN1bHQpOwpAQCAtMzcwOSwxMiAr
MzcwOSwxMiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICB9CiAK
ICAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6QCJBWFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZSJdKSB7Ci0gICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVl
RnJvbU1haW5UaHJlYWQ8U3RyaW5nPihbJnRleHRNYXJrZXJSYW5nZSwgcHJvdGVjdGVkU2VsZiA9
IHJldGFpblB0cihzZWxmKV0gKCkgLT4gU3RyaW5nIHsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxTdHJpbmc+KFt0ZXh0TWFya2VyUmFu
Z2UgPSByZXRhaW5QdHIodGV4dE1hcmtlclJhbmdlKSwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0
cihzZWxmKV0gKCkgLT4gU3RyaW5nIHsKICAgICAgICAgICAgIGF1dG8qIGJhY2tpbmdPYmplY3Qg
PSBwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09iamVjdDsKICAgICAgICAgICAgIGlmICgh
YmFja2luZ09iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICAg
ICAgICAgIGF1dG8gcmFuZ2UgPSByYW5nZUZvclRleHRNYXJrZXJSYW5nZShiYWNraW5nT2JqZWN0
LT5heE9iamVjdENhY2hlKCksIHRleHRNYXJrZXJSYW5nZSk7CisgICAgICAgICAgICBhdXRvIHJh
bmdlID0gcmFuZ2VGb3JUZXh0TWFya2VyUmFuZ2UoYmFja2luZ09iamVjdC0+YXhPYmplY3RDYWNo
ZSgpLCB0ZXh0TWFya2VyUmFuZ2UuZ2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuIHJhbmdlID8g
YmFja2luZ09iamVjdC0+c3RyaW5nRm9yUmFuZ2UoKnJhbmdlKSA6IFN0cmluZygpOwogICAgICAg
ICB9KTsKICAgICB9CkBAIC0zNzM0LDEyICszNzM0LDEyIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1Q
TEVNRU5UQVRJT05TX0VORAogICAgIH0KIAogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpAIkFYQm91bmRzRm9yVGV4dE1hcmtlclJhbmdlIl0pIHsKLSAgICAgICAgTlNSZWN0IHJl
Y3QgPSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8TlNSZWN0Pihb
JnRleHRNYXJrZXJSYW5nZSwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4g
TlNSZWN0IHsKKyAgICAgICAgTlNSZWN0IHJlY3QgPSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZh
bHVlRnJvbU1haW5UaHJlYWQ8TlNSZWN0PihbdGV4dE1hcmtlclJhbmdlID0gcmV0YWluUHRyKHRl
eHRNYXJrZXJSYW5nZSksIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+IE5T
UmVjdCB7CiAgICAgICAgICAgICBhdXRvKiBiYWNraW5nT2JqZWN0ID0gcHJvdGVjdGVkU2VsZi5n
ZXQoKS5heEJhY2tpbmdPYmplY3Q7CiAgICAgICAgICAgICBpZiAoIWJhY2tpbmdPYmplY3QpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIENHUmVjdFplcm87CiAKLSAgICAgICAgICAgIGF1dG8gcmFu
Z2UgPSByYW5nZUZvclRleHRNYXJrZXJSYW5nZShiYWNraW5nT2JqZWN0LT5heE9iamVjdENhY2hl
KCksIHRleHRNYXJrZXJSYW5nZSk7CisgICAgICAgICAgICBhdXRvIHJhbmdlID0gcmFuZ2VGb3JU
ZXh0TWFya2VyUmFuZ2UoYmFja2luZ09iamVjdC0+YXhPYmplY3RDYWNoZSgpLCB0ZXh0TWFya2Vy
UmFuZ2UuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gQ0dSZWN0WmVybzsKIApAQCAtMzgzMSw3ICszODMxLDcgQEAgQUxMT1dfREVQUkVDQVRF
RF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIEFYVGV4dE1hcmtlclJlZiB0ZXh0TWFya2Vy
MSA9IChBWFRleHRNYXJrZXJSZWYpW2FycmF5IG9iamVjdEF0SW5kZXg6MF07CiAgICAgICAgIEFY
VGV4dE1hcmtlclJlZiB0ZXh0TWFya2VyMiA9IChBWFRleHRNYXJrZXJSZWYpW2FycmF5IG9iamVj
dEF0SW5kZXg6MV07CiAKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlQXV0
b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVhZDxpZD4oWyZ0ZXh0TWFya2VyMSwgJnRleHRNYXJr
ZXIyLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoKSAtPiBSZXRhaW5QdHI8aWQ+
IHsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlQXV0b3JlbGVhc2VkVmFs
dWVGcm9tTWFpblRocmVhZDxpZD4oW3RleHRNYXJrZXIxID0gcmV0YWluUHRyKHRleHRNYXJrZXIx
KSwgdGV4dE1hcmtlcjIgPSByZXRhaW5QdHIodGV4dE1hcmtlcjIpLCBwcm90ZWN0ZWRTZWxmID0g
cmV0YWluUHRyKHNlbGYpXSAoKSAtPiBSZXRhaW5QdHI8aWQ+IHsKICAgICAgICAgICAgIGF1dG8q
IGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09iamVjdDsKICAg
ICAgICAgICAgIGlmICghYmFja2luZ09iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gbmls
OwpAQCAtMzg0MCw4ICszODQwLDggQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNf
RU5ECiAgICAgICAgICAgICBpZiAoIWNhY2hlKQogICAgICAgICAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICAgICAgICAgIGF1dG8gY2hhcmFjdGVyT2Zmc2V0MSA9IGNoYXJhY3Rlck9mZnNldEZv
clRleHRNYXJrZXIoY2FjaGUsIHRleHRNYXJrZXIxKTsKLSAgICAgICAgICAgIGF1dG8gY2hhcmFj
dGVyT2Zmc2V0MiA9IGNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXIoY2FjaGUsIHRleHRNYXJr
ZXIyKTsKKyAgICAgICAgICAgIGF1dG8gY2hhcmFjdGVyT2Zmc2V0MSA9IGNoYXJhY3Rlck9mZnNl
dEZvclRleHRNYXJrZXIoY2FjaGUsIHRleHRNYXJrZXIxLmdldCgpKTsKKyAgICAgICAgICAgIGF1
dG8gY2hhcmFjdGVyT2Zmc2V0MiA9IGNoYXJhY3Rlck9mZnNldEZvclRleHRNYXJrZXIoY2FjaGUs
IHRleHRNYXJrZXIyLmdldCgpKTsKICAgICAgICAgICAgIGF1dG8gcmFuZ2UgPSBjYWNoZS0+cmFu
Z2VGb3JVbm9yZGVyZWRDaGFyYWN0ZXJPZmZzZXRzKGNoYXJhY3Rlck9mZnNldDEsIGNoYXJhY3Rl
ck9mZnNldDIpOwogCiAgICAgICAgICAgICByZXR1cm4gKGlkKXRleHRNYXJrZXJSYW5nZUZyb21S
YW5nZShjYWNoZSwgcmFuZ2UpOwpAQCAtMzg0OSw3ICszODQ5LDcgQEAgQUxMT1dfREVQUkVDQVRF
RF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVh
bFRvU3RyaW5nOkAiQVhOZXh0VGV4dE1hcmtlckZvclRleHRNYXJrZXIiXSkgewotICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhy
ZWFkPGlkPihbJnRleHRNYXJrZXIsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgp
IC0+IFJldGFpblB0cjxpZD4geworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmll
dmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPGlkPihbdGV4dE1hcmtlciA9IHJldGFp
blB0cih0ZXh0TWFya2VyKSwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4g
UmV0YWluUHRyPGlkPiB7CiAgICAgICAgICAgICBhdXRvKiBiYWNraW5nT2JqZWN0ID0gcHJvdGVj
dGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3Q7CiAgICAgICAgICAgICBpZiAoIWJhY2tpbmdP
YmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTM4NTgsMTMgKzM4NTgsMTMg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgICAgICBpZiAo
IWNhY2hlKQogICAgICAgICAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICAgICAgICAgIEFYVGV4
dE1hcmtlciBtYXJrZXIodGV4dE1hcmtlcik7CisgICAgICAgICAgICBBWFRleHRNYXJrZXIgbWFy
a2VyKHRleHRNYXJrZXIuZ2V0KCkpOwogICAgICAgICAgICAgcmV0dXJuIG5leHRUZXh0TWFya2Vy
KGNhY2hlLCBtYXJrZXIpLmJyaWRnaW5nQXV0b3JlbGVhc2UoKTsKICAgICAgICAgfSk7CiAgICAg
fQogCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhQcmV2aW91c1RleHRN
YXJrZXJGb3JUZXh0TWFya2VyIl0pIHsKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJl
dHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVhZDxpZD4oWyZ0ZXh0TWFya2VyLCBw
cm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoKSAtPiBSZXRhaW5QdHI8aWQ+IHsKKyAg
ICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9t
TWFpblRocmVhZDxpZD4oW3RleHRNYXJrZXIgPSByZXRhaW5QdHIodGV4dE1hcmtlciksIHByb3Rl
Y3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+IFJldGFpblB0cjxpZD4gewogICAgICAg
ICAgICAgYXV0byogYmFja2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5n
T2JqZWN0OwogICAgICAgICAgICAgaWYgKCFiYWNraW5nT2JqZWN0KQogICAgICAgICAgICAgICAg
IHJldHVybiBuaWw7CkBAIC0zODczLDcgKzM4NzMsNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExF
TUVOVEFUSU9OU19FTkQKICAgICAgICAgICAgIGlmICghY2FjaGUpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIG5pbDsKIAotICAgICAgICAgICAgQVhUZXh0TWFya2VyIG1hcmtlcih0ZXh0TWFya2Vy
KTsKKyAgICAgICAgICAgIEFYVGV4dE1hcmtlciBtYXJrZXIodGV4dE1hcmtlci5nZXQoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gcHJldmlvdXNUZXh0TWFya2VyKGNhY2hlLCBtYXJrZXIpLmJyaWRn
aW5nQXV0b3JlbGVhc2UoKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtMzkyMSw3ICszOTIxLDcg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiAo
aWQpW3NlbGYgdGV4dE1hcmtlckZvclRleHRNYXJrZXI6dGV4dE1hcmtlciBhdFVuaXQ6VGV4dFVu
aXQ6OlByZXZpb3VzUGFyYWdyYXBoU3RhcnRdOwogCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVh
bFRvU3RyaW5nOkAiQVhTdHlsZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIiXSkgewotICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21N
YWluVGhyZWFkPGlkPihbJnRleHRNYXJrZXIsIHByb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2Vs
ZildICgpIC0+IFJldGFpblB0cjxpZD4geworICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6
cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWluVGhyZWFkPGlkPihbdGV4dE1hcmtlciA9
IHJldGFpblB0cih0ZXh0TWFya2VyKSwgcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0g
KCkgLT4gUmV0YWluUHRyPGlkPiB7CiAgICAgICAgICAgICBhdXRvKiBiYWNraW5nT2JqZWN0ID0g
cHJvdGVjdGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3Q7CiAgICAgICAgICAgICBpZiAoIWJh
Y2tpbmdPYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTM5MzAsNyArMzkz
MCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICAgICAg
aWYgKCFjYWNoZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgICAgICAgICBW
aXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvcyA9IHZpc2libGVQb3NpdGlvbkZvclRleHRNYXJrZXIo
Y2FjaGUsIHRleHRNYXJrZXIpOworICAgICAgICAgICAgYXV0byB2aXNpYmxlUG9zID0gdmlzaWJs
ZVBvc2l0aW9uRm9yVGV4dE1hcmtlcihjYWNoZSwgdGV4dE1hcmtlci5nZXQoKSk7CiAgICAgICAg
ICAgICBWaXNpYmxlUG9zaXRpb25SYW5nZSB2cFJhbmdlID0gYmFja2luZ09iamVjdC0+c3R5bGVS
YW5nZUZvclBvc2l0aW9uKHZpc2libGVQb3MpOwogCiAgICAgICAgICAgICByZXR1cm4gKGlkKXRl
eHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zKGNhY2hlLCB2cFJhbmdlLnN0YXJ0LCB2
cFJhbmdlLmVuZCk7CkBAIC0zOTM4LDEyICszOTM4LDEyIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1Q
TEVNRU5UQVRJT05TX0VORAogICAgIH0KIAogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0
cmluZzpAIkFYTGVuZ3RoRm9yVGV4dE1hcmtlclJhbmdlIl0pIHsKLSAgICAgICAgaW50IGxlbmd0
aCA9IEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxpbnQ+KFsmdGV4
dE1hcmtlclJhbmdlLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoKSAtPiBpbnQg
eworICAgICAgICBpbnQgbGVuZ3RoID0gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21N
YWluVGhyZWFkPGludD4oW3RleHRNYXJrZXJSYW5nZSA9IHJldGFpblB0cih0ZXh0TWFya2VyUmFu
Z2UpLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoKSAtPiBpbnQgewogICAgICAg
ICAgICAgYXV0byogYmFja2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5n
T2JqZWN0OwogICAgICAgICAgICAgaWYgKCFiYWNraW5nT2JqZWN0KQogICAgICAgICAgICAgICAg
IHJldHVybiAwOwogCi0gICAgICAgICAgICBhdXRvIHJhbmdlID0gcmFuZ2VGb3JUZXh0TWFya2Vy
UmFuZ2UoYmFja2luZ09iamVjdC0+YXhPYmplY3RDYWNoZSgpLCB0ZXh0TWFya2VyUmFuZ2UpOwor
ICAgICAgICAgICAgYXV0byByYW5nZSA9IHJhbmdlRm9yVGV4dE1hcmtlclJhbmdlKGJhY2tpbmdP
YmplY3QtPmF4T2JqZWN0Q2FjaGUoKSwgdGV4dE1hcmtlclJhbmdlLmdldCgpKTsKICAgICAgICAg
ICAgIGlmICghcmFuZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBy
ZXR1cm4gQVhPYmplY3RDYWNoZTo6bGVuZ3RoRm9yUmFuZ2UoU2ltcGxlUmFuZ2UgeyAqcmFuZ2Ug
fSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>