<?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>99582</bug_id>
          
          <creation_ts>2012-10-17 04:26:27 -0700</creation_ts>
          <short_desc>Bind isolatedWorldSecurityOrigin to world</short_desc>
          <delta_ts>2012-10-17 12:34:25 -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 JavaScript</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>97398</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dan Carney">dcarney</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>744133</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-17 04:26:27 -0700</bug_when>
    <thetext>Bind isolatedWorldSecurityOrigin to world</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744142</commentid>
    <comment_count>1</comment_count>
      <attachid>169153</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-17 04:36:34 -0700</bug_when>
    <thetext>Created attachment 169153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744289</commentid>
    <comment_count>2</comment_count>
      <attachid>169153</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-17 09:01:18 -0700</bug_when>
    <thetext>Comment on attachment 169153
Patch

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

This has the effect of making the security origin for isolated worlds global rather than per-frame.  That seems like what the embedder would want.

I presume the next step is to store this information in DOMWrapperWorld directly rather than using a hash map.

&gt; LayoutTests/http/tests/security/isolatedWorld/cross-origin-xhr.html:51
&gt; +        				testRunner.setIsolatedWorldSecurityOrigin(1, null);
&gt; +				        testRunner.setIsolatedWorldSecurityOrigin(2, null);

Looks like you&apos;ve got a bad indent here.  Please use spaces rather than tabs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744312</commentid>
    <comment_count>3</comment_count>
      <attachid>169153</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-17 09:36:11 -0700</bug_when>
    <thetext>Comment on attachment 169153
Patch

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

&gt;&gt; LayoutTests/http/tests/security/isolatedWorld/cross-origin-xhr.html:51
&gt;&gt; +				        testRunner.setIsolatedWorldSecurityOrigin(2, null);
&gt; 
&gt; Looks like you&apos;ve got a bad indent here.  Please use spaces rather than tabs.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744313</commentid>
    <comment_count>4</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-17 09:37:52 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 169153 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169153&amp;action=review
&gt; 
&gt; This has the effect of making the security origin for isolated worlds global rather than per-frame.  That seems like what the embedder would want.
&gt; 
&gt; I presume the next step is to store this information in DOMWrapperWorld directly rather than using a hash map.

Unfortunately, there is a mismatch between the lifetimes of the object, so this may have to stay as a hashmap for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744314</commentid>
    <comment_count>5</comment_count>
      <attachid>169197</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-17 09:38:19 -0700</bug_when>
    <thetext>Created attachment 169197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744503</commentid>
    <comment_count>6</comment_count>
      <attachid>169197</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 12:34:22 -0700</bug_when>
    <thetext>Comment on attachment 169197
Patch

Clearing flags on attachment: 169197

Committed r131629: &lt;http://trac.webkit.org/changeset/131629&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744504</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 12:34:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169153</attachid>
            <date>2012-10-17 04:36:34 -0700</date>
            <delta_ts>2012-10-17 09:38:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99582-20121017133521.patch</filename>
            <type>text/plain</type>
            <size>17637</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhMGFhNTBiNjE1YzA2
NzRmMGI2MzhhOTE5ZjYyNDE4ZmQzMDdiYi4uNTM1NzBlZGY2ZmI0OWRkNTk1ZWZjY2UwZDE0MzQ1
YjZjODRkYjM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEwLTE3ICBEYW4g
Q2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIEJpbmQgaXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luIHRvIHdvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05OTU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFNlY3VyaXR5IG9yaWdpbiBvZiBpc29sYXRlZCB3b3JsZHMgd2FzIG5v
dCBwcmV2aW91c2x5IHNldCBhdCB0aGUgd29ybGQKKyAgICAgICAgbGV2ZWwsIGFsdGhvdWdoIGl0
IGNvdWxkIGhhdmUgYmVlbi4gCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4g
ZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ6OmRlYWxsb2NhdGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppc29sYXRlZFdvcmxkU2VjdXJpdHlP
cmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZDo6aXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZDo6c2V0
SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBw
ZXJXb3JsZDo6Y2xlYXJJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oOgorICAgICAgICAoRE9NV3JhcHBlcldvcmxkKToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZDo6aXNJc29sYXRlZFdvcmxkSWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjppc0lzb2xhdGVkV29ybGQpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0Q29udHJvbGxlcjo6cmVzZXRJc29sYXRlZFdvcmxkcyk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluSXNvbGF0ZWRXb3JsZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjb2xsZWN0SXNvbGF0ZWRDb250ZXh0cyk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoU2NyaXB0
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpzZXRJc29s
YXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2lu
ZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dTaGVsbDo6aW5pdGlh
bGl6ZUlmTmVlZGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmg6
CisgICAgICAgIChWOERPTVdpbmRvd1NoZWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0
b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4
WE1MSHR0cFJlcXVlc3Q6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorCiAyMDEyLTEwLTE3ICBHYWJv
ciBSYXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KIAogICAgICAgICBORU9OIGludHJpbnNp
Y3MgR2F1c3MgZmlsdGVyIGRvZXMgbm90IHdvcmsgcHJvcGVybHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuY3BwCmluZGV4IGEwYTYwZGJmMThiOWFjYzNi
N2FkYzEzMjU4YmE3YzgwM2FkYmY3MmEuLjZkZjBiNzJkNWFiMjRiNjFhM2QxZmMwYjA3MWY1MmM5
YWZhOGU0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBw
ZXJXb3JsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlcldv
cmxkLmNwcApAQCAtMTEyLDQgKzExMiwzNSBAQCBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4g
RE9NV3JhcHBlcldvcmxkOjplbnN1cmVJc29sYXRlZFdvcmxkKGludCB3b3JsZElkLCBpbgogICAg
IHJldHVybiB3b3JsZC5yZWxlYXNlKCk7CiB9CiAKK3R5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4gPiBJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5NYXA7CitzdGF0
aWMgSXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luTWFwJiBpc29sYXRlZFdvcmxkU2VjdXJpdHlP
cmlnaW5zKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoSXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luTWFwLCBtYXAsICgpKTsKKyAgICBy
ZXR1cm4gbWFwOworfQorCitTZWN1cml0eU9yaWdpbiogRE9NV3JhcHBlcldvcmxkOjppc29sYXRl
ZFdvcmxkU2VjdXJpdHlPcmlnaW4oKQoreworICAgIEFTU0VSVCh0aGlzLT5pc0lzb2xhdGVkV29y
bGQoKSk7CisgICAgSXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luTWFwJiBvcmlnaW5zID0gaXNv
bGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2lucygpOworICAgIElzb2xhdGVkV29ybGRTZWN1cml0eU9y
aWdpbk1hcDo6aXRlcmF0b3IgaXQgPSBvcmlnaW5zLmZpbmQod29ybGRJZCgpKTsKKyAgICByZXR1
cm4gaXQgPT0gb3JpZ2lucy5lbmQoKSA/IDAgOiBpdC0+dmFsdWUuZ2V0KCk7Cit9CisKK3ZvaWQg
RE9NV3JhcHBlcldvcmxkOjpzZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4oaW50IHdvcmxk
SUQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQoreworICAgIEFT
U0VSVChET01XcmFwcGVyV29ybGQ6OmlzSXNvbGF0ZWRXb3JsZElkKHdvcmxkSUQpKTsKKyAgICBp
ZiAoc2VjdXJpdHlPcmlnaW4pCisgICAgICAgIGlzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbnMo
KS5zZXQod29ybGRJRCwgc2VjdXJpdHlPcmlnaW4pOworICAgIGVsc2UKKyAgICAgICAgaXNvbGF0
ZWRXb3JsZFNlY3VyaXR5T3JpZ2lucygpLnJlbW92ZSh3b3JsZElEKTsKK30KKwordm9pZCBET01X
cmFwcGVyV29ybGQ6OmNsZWFySXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKGludCB3b3JsZElE
KQoreworICAgIEFTU0VSVChET01XcmFwcGVyV29ybGQ6OmlzSXNvbGF0ZWRXb3JsZElkKHdvcmxk
SUQpKTsKKyAgICBpc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5zKCkucmVtb3ZlKHdvcmxkSUQp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0RPTVdyYXBwZXJXb3JsZC5oCmluZGV4IDljY2NkNWZjNmIyZTQ4MTNmOTk5MmNkYjBjZTc5
OTExYTQwOTA0M2IuLmFkZjEyNGVjMjc1Yjg4OTk5OGIyN2U0YTc3MGJlNWJkODg5NTZhZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oCkBAIC0zMiw2
ICszMiw3IEBACiAjZGVmaW5lIERPTVdyYXBwZXJXb3JsZF9oCiAKICNpbmNsdWRlICJET01EYXRh
U3RvcmUuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CkBAIC00NSwxNCArNDYsMjIgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBpbnQg
bWFpbldvcmxkRXh0ZW5zaW9uR3JvdXAgPSAwOwogICAgIHN0YXRpYyBjb25zdCBpbnQgdW5pbml0
aWFsaXplZFdvcmxkSWQgPSAtMTsKICAgICBzdGF0aWMgY29uc3QgaW50IHVuaW5pdGlhbGl6ZWRF
eHRlbnNpb25Hcm91cCA9IC0xOwotICAgIC8vIElmIDAgaXMgcGFzc2VkIGFzIHdvcmxkSWQsIHRo
ZSB3b3JsZCB3aWxsIGJlIGFzc2lnbmVkIGEgdGVtcG9yYXJ5IGlkIGluc3RlYWQuCisgICAgLy8g
SWYgdW5pbml0aWFsaXplZFdvcmxkSWQgaXMgcGFzc2VkIGFzIHdvcmxkSWQsIHRoZSB3b3JsZCB3
aWxsIGJlIGFzc2lnbmVkIGEgdGVtcG9yYXJ5IGlkIGluc3RlYWQuCiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBlbnN1cmVJc29sYXRlZFdvcmxkKGludCB3b3JsZElkLCBp
bnQgZXh0ZW5zaW9uR3JvdXApOwogICAgIHN0YXRpYyBib29sIGlzb2xhdGVkV29ybGRzRXhpc3Qo
KSB7IHJldHVybiBpc29sYXRlZFdvcmxkQ291bnQ7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0lzb2xh
dGVkV29ybGRJZChpbnQgd29ybGRJZCkgeyByZXR1cm4gd29ybGRJZCAhPSBtYWluV29ybGRJZCAm
JiB3b3JsZElkICE9IHVuaW5pdGlhbGl6ZWRXb3JsZElkOyB9CisgICAgLy8gQXNzb2NpYXRlcyBh
biBpc29sYXRlZCB3b3JsZCAoc2VlIGFib3ZlIGZvciBkZXNjcmlwdGlvbikgd2l0aCBhIHNlY3Vy
aXR5CisgICAgLy8gb3JpZ2luLiBYTUxIdHRwUmVxdWVzdCBpbnN0YW5jZXMgdXNlZCBpbiB0aGF0
IHdvcmxkIHdpbGwgYmUgY29uc2lkZXJlZAorICAgIC8vIHRvIGNvbWUgZnJvbSB0aGF0IG9yaWdp
biwgbm90IHRoZSBmcmFtZSdzLgorICAgIHN0YXRpYyB2b2lkIHNldElzb2xhdGVkV29ybGRTZWN1
cml0eU9yaWdpbihpbnQgd29ybGRJRCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOworICAg
IHN0YXRpYyB2b2lkIGNsZWFySXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKGludCB3b3JsZElE
KTsKKyAgICBTZWN1cml0eU9yaWdpbiogaXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKCk7CiAg
ICAgLy8gRklYTUU6IHRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhIHByb2JsZW0gaW4gV2ViVmll
d0ltcGwuCiAgICAgLy8gRG8gbm90IHVzZSB0aGlzIGFueXdoZXJlIGVsc2UhIQogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gY3JlYXRlVW5pbml0aWFsaXplZFdvcmxkKCk7
CiAKICAgICBib29sIGlzTWFpbldvcmxkKCkgeyByZXR1cm4gbV93b3JsZElkID09IG1haW5Xb3Js
ZElkOyB9CisgICAgYm9vbCBpc0lzb2xhdGVkV29ybGQoKSB7IHJldHVybiBpc0lzb2xhdGVkV29y
bGRJZChtX3dvcmxkSWQpOyB9CiAgICAgaW50IHdvcmxkSWQoKSBjb25zdCB7IHJldHVybiBtX3dv
cmxkSWQ7IH0KICAgICBpbnQgZXh0ZW5zaW9uR3JvdXAoKSBjb25zdCB7IHJldHVybiBtX2V4dGVu
c2lvbkdyb3VwOyB9CiAgICAgRE9NRGF0YVN0b3JlKiBkb21EYXRhU3RvcmUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5
Yjk2N2Q5NmZjNDExMDgwNjliNTEyZjY2ZDUzMzU3OGZiZjc5YjcyLi5hMGJlNWRjZjhhY2I3NjI5
MmE0ZjlkYTJjNzQzZDgxYTQ2ODExYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTQ5LDcgKzE0OSw2IEBAIHZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6cmVzZXRJc29sYXRlZFdvcmxkcygpCiAgICAgICAgIGl0ZXItPnZhbHVlLT5k
ZXN0cm95SXNvbGF0ZWRTaGVsbCgpOwogICAgIH0KICAgICBtX2lzb2xhdGVkV29ybGRzLmNsZWFy
KCk7Ci0gICAgbV9pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5zLmNsZWFyKCk7CiB9CiAKIHZv
aWQgU2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJGb3JDbG9zZSgpCkBAIC0zNjksMTIgKzM2OCw2IEBA
IHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbklzb2xhdGVkV29ybGQoaW50IHdvcmxk
SUQsIGNvbnN0IFZlY3RvcjxTY3JpcHRTCiAgICAgICAgIHY4OjpIYW5kbGVTY29wZSBldmFsdWF0
ZUhhbmRsZVNjb3BlOwogICAgICAgICBWOERPTVdpbmRvd1NoZWxsKiBpc29sYXRlZFdvcmxkU2hl
bGwgPSBlbnN1cmVJc29sYXRlZFdvcmxkQ29udGV4dCh3b3JsZElELCBleHRlbnNpb25Hcm91cCk7
CiAKLSAgICAgICAgaWYgKHdvcmxkSUQgIT0gRE9NV3JhcHBlcldvcmxkOjp1bmluaXRpYWxpemVk
V29ybGRJZCkgewotICAgICAgICAgICAgSXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luTWFwOjpp
dGVyYXRvciBzZWN1cml0eU9yaWdpbkl0ZXIgPSBtX2lzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdp
bnMuZmluZCh3b3JsZElEKTsKLSAgICAgICAgICAgIGlmIChzZWN1cml0eU9yaWdpbkl0ZXIgIT0g
bV9pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5zLmVuZCgpKQotICAgICAgICAgICAgICAgIGlz
b2xhdGVkV29ybGRTaGVsbC0+c2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5
T3JpZ2luSXRlci0+dmFsdWUpOwotICAgICAgICB9Ci0KICAgICAgICAgaXNvbGF0ZWRXb3JsZFNo
ZWxsLT5pbml0aWFsaXplSWZOZWVkZWQoKTsKICAgICAgICAgaWYgKGlzb2xhdGVkV29ybGRTaGVs
bC0+Y29udGV4dCgpLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTQwNiwxNSAr
Mzk5LDYgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluSXNvbGF0ZWRXb3JsZChp
bnQgd29ybGRJRCwgY29uc3QgVmVjdG9yPFNjcmlwdFMKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6c2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKGludCB3b3JsZElELCBQ
YXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKLXsKLSAgICBBU1NFUlQo
d29ybGRJRCk7Ci0gICAgbV9pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5zLnNldCh3b3JsZElE
LCBzZWN1cml0eU9yaWdpbik7Ci0gICAgSXNvbGF0ZWRXb3JsZE1hcDo6aXRlcmF0b3IgaXRlciA9
IG1faXNvbGF0ZWRXb3JsZHMuZmluZCh3b3JsZElEKTsKLSAgICBpZiAoaXRlciAhPSBtX2lzb2xh
dGVkV29ybGRzLmVuZCgpKQotICAgICAgICBpdGVyLT52YWx1ZS0+c2V0SXNvbGF0ZWRXb3JsZFNl
Y3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKLX0KLQogVGV4dFBvc2l0aW9uIFNjcmlwdENv
bnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBTY3JpcHRhYmxl
RG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdGFibGVE
b2N1bWVudFBhcnNlcigpOwpAQCAtNjY2LDEzICs2NTAsMTQgQEAgdm9pZCBTY3JpcHRDb250cm9s
bGVyOjpjb2xsZWN0SXNvbGF0ZWRDb250ZXh0cyhWZWN0b3I8c3RkOjpwYWlyPFNjcmlwdFN0YXRl
KiwgU2UKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgZm9yIChJc29sYXRl
ZFdvcmxkTWFwOjppdGVyYXRvciBpdCA9IG1faXNvbGF0ZWRXb3JsZHMuYmVnaW4oKTsgaXQgIT0g
bV9pc29sYXRlZFdvcmxkcy5lbmQoKTsgKytpdCkgewogICAgICAgICBWOERPTVdpbmRvd1NoZWxs
KiBpc29sYXRlZFdvcmxkU2hlbGwgPSBpdC0+dmFsdWU7Ci0gICAgICAgIGlmICghaXNvbGF0ZWRX
b3JsZFNoZWxsLT5pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4oKSkKKyAgICAgICAgU2VjdXJp
dHlPcmlnaW4qIG9yaWdpbiA9IGlzb2xhdGVkV29ybGRTaGVsbC0+d29ybGQoKS0+aXNvbGF0ZWRX
b3JsZFNlY3VyaXR5T3JpZ2luKCk7CisgICAgICAgIGlmICghb3JpZ2luKQogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IGlz
b2xhdGVkV29ybGRTaGVsbC0+Y29udGV4dCgpOwogICAgICAgICBpZiAodjhDb250ZXh0LklzRW1w
dHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0
U3RhdGUgPSBTY3JpcHRTdGF0ZTo6Zm9yQ29udGV4dCh2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpO
ZXcodjhDb250ZXh0KSk7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoc3RkOjpwYWlyPFNjcmlwdFN0
YXRlKiwgU2VjdXJpdHlPcmlnaW4qPihzY3JpcHRTdGF0ZSwgaXNvbGF0ZWRXb3JsZFNoZWxsLT5p
c29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4oKSkpOworICAgICAgICByZXN1bHQuYXBwZW5kKHN0
ZDo6cGFpcjxTY3JpcHRTdGF0ZSosIFNlY3VyaXR5T3JpZ2luKj4oc2NyaXB0U3RhdGUsIG9yaWdp
bikpOwogICAgIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0Q29udHJvbGxlci5oCmluZGV4IGRmZmVlMzUwM2FkYTA0ZjdmMDJjMDQ3ZTVkMTM0ZmNmY2E5
ZDhjYTEuLjVhMWZmNDU3ODVhYzEyNTU2ZjIyYmM2ZTQxZTE4YjdlOWEyYmVjMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTEwNywxMCAr
MTA3LDExIEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogR2V0IHJpZCBvZiBleHRlbnNpb25Hcm91
cCBoZXJlLgogICAgIHZvaWQgZXZhbHVhdGVJbklzb2xhdGVkV29ybGQoaW50IHdvcmxkSUQsIGNv
bnN0IFZlY3RvcjxTY3JpcHRTb3VyY2VDb2RlPiYgc291cmNlcywgaW50IGV4dGVuc2lvbkdyb3Vw
LCBWZWN0b3I8U2NyaXB0VmFsdWU+KiByZXN1bHRzKTsKIAotICAgIC8vIEFzc29jaWF0ZXMgYW4g
aXNvbGF0ZWQgd29ybGQgKHNlZSBhYm92ZSBmb3IgZGVzY3JpcHRpb24pIHdpdGggYSBzZWN1cml0
eQotICAgIC8vIG9yaWdpbi4gWE1MSHR0cFJlcXVlc3QgaW5zdGFuY2VzIHVzZWQgaW4gdGhhdCB3
b3JsZCB3aWxsIGJlIGNvbnNpZGVyZWQKLSAgICAvLyB0byBjb21lIGZyb20gdGhhdCBvcmlnaW4s
IG5vdCB0aGUgZnJhbWUncy4KLSAgICB2b2lkIHNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdp
bihpbnQgd29ybGRJRCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOworICAgIC8vIEZJWE1F
OiBSZW1vdmUgcmVmZXJlbmNlcyB0byB0aGlzIGNhbGwgaW4gY2hyb21pdW0gYW5kIGRlbGV0ZSBp
dC4KKyAgICBpbmxpbmUgc3RhdGljIHZvaWQgc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2lu
KGludCB3b3JsZElELCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4pCisgICAgewor
ICAgICAgICBET01XcmFwcGVyV29ybGQ6OnNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbih3
b3JsZElELCBvcmlnaW4pOworICAgIH0KIAogICAgIC8vIENyZWF0ZXMgYSBwcm9wZXJ0eSBvZiB0
aGUgZ2xvYmFsIG9iamVjdCBvZiBhIGZyYW1lLgogICAgIHZvaWQgYmluZFRvV2luZG93T2JqZWN0
KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBrZXksIE5QT2JqZWN0Kik7CkBAIC0xOTAsNyArMTkxLDYg
QEAgcHJpdmF0ZToKICAgICAvLyByZWZlcmVuY2UgdG8gdGhlIHY4IGNvbnRleHQgaXQgY29udGFp
bnMsIHdoaWNoIGlzIG5vdCBtYWRlIHdlYWsgdW50aWwgd2UKICAgICAvLyBjYWxsIHdvcmxkLT5k
ZXN0cm95SXNvbGF0ZWRTaGVsbCgpLgogICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFY4RE9NV2lu
ZG93U2hlbGwqPiBJc29sYXRlZFdvcmxkTWFwOwotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gPiBJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5NYXA7CiAK
ICAgICB2b2lkIHJlc2V0SXNvbGF0ZWRXb3JsZHMoKTsKIApAQCAtMjA0LDcgKzIwNCw2IEBAIHBy
aXZhdGU6CiAgICAgLy8gaGVyZSBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgYWdhaW4gYnkgZnV0
dXJlIGNhbGxzIHRvCiAgICAgLy8gZXZhbHVhdGVJbklzb2xhdGVkV29ybGQoKS4KICAgICBJc29s
YXRlZFdvcmxkTWFwIG1faXNvbGF0ZWRXb3JsZHM7Ci0gICAgSXNvbGF0ZWRXb3JsZFNlY3VyaXR5
T3JpZ2luTWFwIG1faXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luczsKIAogICAgIGJvb2wgbV9w
YXVzZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2lu
ZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVs
bC5jcHAKaW5kZXggZTNlY2I0NjM1MTI1ZTNjMjdhYTY4N2YxMWE2YzQ5MWJjYTM1NWJhZS4uZGQ2
ZjIwYmZlMGIxNTYxZGFjN2ZlN2Q0ZTc2MjE4ZTMzZDNhNGIzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKQEAgLTM3OCw2ICszNzgsMTIg
QEAgYm9vbCBWOERPTVdpbmRvd1NoZWxsOjppbml0aWFsaXplSWZOZWVkZWQoKQogICAgICAgICAv
LyAgICAgICAgZG9jdW1lbnQgZG9tYWluCiAgICAgICAgIC8vICAgICAgICBjaGFuZ2VzLgogICAg
ICAgICBtX2NvbnRleHQtPlVzZURlZmF1bHRTZWN1cml0eVRva2VuKCk7CisKKyAgICAgICAgU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiA9IG1fd29ybGQtPmlzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdp
bigpOworICAgICAgICBpZiAob3JpZ2luICYmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFz
RnJvbnRlbmRzKCkpIHsKKyAgICAgICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9IFNj
cmlwdFN0YXRlOjpmb3JDb250ZXh0KHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyhtX2NvbnRl
eHQuZ2V0KCkpKTsKKyAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3Jl
YXRlSXNvbGF0ZWRDb250ZXh0KG1fZnJhbWUsIHNjcmlwdFN0YXRlLCBvcmlnaW4pOworICAgICAg
ICB9CiAgICAgfQogICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkQ3JlYXRlU2Ny
aXB0Q29udGV4dChtX2NvbnRleHQuZ2V0KCksIG1fd29ybGQtPmV4dGVuc2lvbkdyb3VwKCksIG1f
d29ybGQtPndvcmxkSWQoKSk7CiAKQEAgLTYwOCwxNiArNjE0LDQgQEAgdm9pZCBWOERPTVdpbmRv
d1NoZWxsOjp1cGRhdGVTZWN1cml0eU9yaWdpbigpCiAgICAgc2V0U2VjdXJpdHlUb2tlbigpOwog
fQogCi12b2lkIFY4RE9NV2luZG93U2hlbGw6OnNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdp
bihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKLXsKLSAgICBBU1NF
UlQoIW1fd29ybGQtPmlzTWFpbldvcmxkKCkpOwotICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBi
ZSBoZXJlPwotICAgIGlmICghbV9pc29sYXRlZFdvcmxkU2hlbGxTZWN1cml0eU9yaWdpbiAmJiAh
Y29udGV4dCgpLklzRW1wdHkoKSAmJiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJ1bnRpbWVB
Z2VudEVuYWJsZWQobV9mcmFtZSkpIHsKLSAgICAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNj
b3BlOwotICAgICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBTY3JpcHRTdGF0ZTo6Zm9y
Q29udGV4dCh2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY29udGV4dCgpKSk7Ci0gICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KG1fZnJh
bWUsIHNjcmlwdFN0YXRlLCBzZWN1cml0eU9yaWdpbi5nZXQoKSk7Ci0gICAgfQotICAgIG1faXNv
bGF0ZWRXb3JsZFNoZWxsU2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsKLX0KLQogfSAv
LyBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxs
LmgKaW5kZXggMDFkMjk4MTdmYzhkMzIxY2IxNGExOGUwODYzOGU0MzIyYWQ2OWRkOC4uN2QyMDZk
NGNkNjllZTYzZjY4NDI4NzE4ZjdlYjhmMmVhNTQzYzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuaApAQCAtODMsMTMgKzgzLDYgQEAgcHVibGlj
OgogCiAgICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7
IH0KIAotICAgIHZvaWQgc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+KTsKLSAgICBTZWN1cml0eU9yaWdpbiogaXNvbGF0ZWRXb3JsZFNlY3Vy
aXR5T3JpZ2luKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV93b3JsZC0+aXNNYWlu
V29ybGQoKSk7Ci0gICAgICAgIHJldHVybiBtX2lzb2xhdGVkV29ybGRTaGVsbFNlY3VyaXR5T3Jp
Z2luLmdldCgpOwotICAgIH07Ci0KICAgICAvLyBSZXR1cm5zIHRoZSBpc29sYXRlZCB3b3JsZCBh
c3NvY2lhdGVkIHdpdGgKICAgICAvLyB2ODo6Q29udGV4dDo6R2V0RW50ZXJlZCgpLiBCZWNhdXNl
IHdvcmxkcyBhcmUgaXNvbGF0ZWQsIHRoZSBlbnRpcmUKICAgICAvLyBKYXZhU2NyaXB0IGNhbGwg
c3RhY2sgc2hvdWxkIGJlIGZyb20gdGhlIHNhbWUgaXNvbGF0ZWQgd29ybGQuCkBAIC0xMzYsOSAr
MTI5LDYgQEAgcHJpdmF0ZToKICAgICBTY29wZWRQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiBtX2Nv
bnRleHQ7CiAgICAgU2NvcGVkUGVyc2lzdGVudDx2ODo6T2JqZWN0PiBtX2dsb2JhbDsKICAgICBT
Y29wZWRQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1fZG9jdW1lbnQ7Ci0KLSAgICAvLyBGSVhNRTog
RWl0aGVyIHJlbW92ZSB0aGlzIG9yIHRoZSBtYXAgaW4gU2NyaXB0Q29udHJvbGxlci4KLSAgICBS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1faXNvbGF0ZWRXb3JsZFNoZWxsU2VjdXJpdHlPcmlnaW47
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0
b3IuY3BwCmluZGV4IDA1MGI3ZmI0ZDM4NmE3MWY5N2NiZWE0YTk1OWUxMmJhZjdhNzc5M2IuLjZm
M2Q2ZWU0MTk1NDBjZGQ1MDg5MzEyZGIyZDU5OTdhZjI1OGNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1
ZXN0Q29uc3RydWN0b3IuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOFhNTEh0dHBSZXF1ZXN0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmCiAKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luOwogICAgIGlm
IChWOERPTVdpbmRvd1NoZWxsKiBpc29sYXRlZFdvcmxkU2hlbGwgPSBWOERPTVdpbmRvd1NoZWxs
OjpnZXRFbnRlcmVkKCkpCi0gICAgICAgIHNlY3VyaXR5T3JpZ2luID0gaXNvbGF0ZWRXb3JsZFNo
ZWxsLT5pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgc2VjdXJpdHlPcmln
aW4gPSBpc29sYXRlZFdvcmxkU2hlbGwtPndvcmxkKCktPmlzb2xhdGVkV29ybGRTZWN1cml0eU9y
aWdpbigpOwogCiAgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiB4bWxIdHRwUmVxdWVzdCA9IFhN
TEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgc2VjdXJpdHlPcmlnaW4pOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTExNWQ5Yjk1YjMy
ZjY5ZGI0MzMxNjc1ZjE2ZDAwNjNiM2M1ZGRmZC4uYmNkNGJmZjY0NDhhOGI4ZDc2NjViNjFmMWVi
N2U1ODY4YzY2OWJlYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTE3ICBEYW4gQ2FybmV5ICA8ZGNhcm5l
eUBnb29nbGUuY29tPgorCisgICAgICAgIEJpbmQgaXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2lu
IHRvIHdvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05OTU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGFiaWxpdHkgdG8gdW5zZXQgaXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChEUlRUZXN0UnVubmVyOjpzZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4pOgorCiAy
MDEyLTEwLTE3ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdGVzdFJ1bm5lci5xdWV1ZUxv
YWQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5u
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAK
aW5kZXggOGFlZTdjNWIyYzc0MDEwNGM4MDIyMzg5NDU4YTBiZmRmYzI5ZDRmOC4uMDgyNTk3YTEx
N2I5MmQ1OTcyODA3ZTlmMGUzYTM3MjM0ZWQ5YzJhMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKQEAgLTEzOTIsMTIgKzEzOTIsMTMgQEAg
dm9pZCBEUlRUZXN0UnVubmVyOjpzZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4oY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWUKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIAotICAg
IGlmIChhcmd1bWVudHMuc2l6ZSgpICE9IDIgfHwgIWFyZ3VtZW50c1swXS5pc051bWJlcigpIHx8
ICFhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSAy
IHx8ICFhcmd1bWVudHNbMF0uaXNOdW1iZXIoKSB8fCAhKGFyZ3VtZW50c1sxXS5pc1N0cmluZygp
IHx8IGFyZ3VtZW50c1sxXS5pc051bGwoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc2hl
bGwtPndlYlZpZXcoKS0+Zm9jdXNlZEZyYW1lKCktPnNldElzb2xhdGVkV29ybGRTZWN1cml0eU9y
aWdpbigKLSAgICAgICAgYXJndW1lbnRzWzBdLnRvSW50MzIoKSwKLSAgICAgICAgV2ViU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50
c1sxXSkpKTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiBvcmlnaW47CisgICAgaWYgKGFyZ3VtZW50
c1sxXS5pc1N0cmluZygpKQorICAgICAgICBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzFdKSk7CisgICAg
bV9zaGVsbC0+d2ViVmlldygpLT5mb2N1c2VkRnJhbWUoKS0+c2V0SXNvbGF0ZWRXb3JsZFNlY3Vy
aXR5T3JpZ2luKGFyZ3VtZW50c1swXS50b0ludDMyKCksIG9yaWdpbik7CiB9CiAKIHZvaWQgRFJU
VGVzdFJ1bm5lcjo6c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNWY5
MDQxN2IyNjczMGM2ZDc2YTMyN2Q2ZjFiYmZkZmU2NWEzMTFmLi4zYTc5Njk5NDllMjBhNWNmYjg0
OGY4N2U3NzA4MDE3NjFjMGYyNDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTcg
IERhbiBDYXJuZXkgIDxkY2FybmV5QGdvb2dsZS5jb20+CisKKyAgICAgICAgQmluZCBpc29sYXRl
ZFdvcmxkU2VjdXJpdHlPcmlnaW4gdG8gd29ybGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgb2YgaXNvbGF0ZWQgd29ybGRzIGFkZGVkIGFm
dGVyIHRlc3QgY29tcGxldGlvbi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWw6CisKIDIwMTItMTAtMTcgIE1pa2hhaWwg
UG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgV2Vi
S2l0VGVzdFJ1bm5lciBuZWVkcyB0ZXN0UnVubmVyLnF1ZXVlTG9hZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14
aHIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9j
cm9zcy1vcmlnaW4teGhyLmh0bWwKaW5kZXggNGFjNjViYzJjYTlhN2QyMjM3NDM3MzM0M2U1ZTQz
ZDczYjU3YTAxZi4uMWE2ZDI3ZDc2OGUwMTdhNTlhMTBiNjgxYmI4YjljMzU0YmQxMzk0OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Ny
b3NzLW9yaWdpbi14aHIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCkBAIC00Niw4ICs0NiwxMSBAQCBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIHN3aXRjaCAobWVzc2FnZS50eXBl
KSB7CiAgICAgICAgICAgICAgICAgY2FzZSAndGVzdC1kb25lJzoKICAgICAgICAgICAgICAgICAg
ICAgY3VycmVudFRlc3QrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXN0ID09
IHRlc3RzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXN0ID09IHRl
c3RzLmxlbmd0aCkgeworICAgICAgICAJCQkJdGVzdFJ1bm5lci5zZXRJc29sYXRlZFdvcmxkU2Vj
dXJpdHlPcmlnaW4oMSwgbnVsbCk7CisJCQkJICAgICAgICB0ZXN0UnVubmVyLnNldElzb2xhdGVk
V29ybGRTZWN1cml0eU9yaWdpbigyLCBudWxsKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzW2N1cnJlbnRUZXN0XSgpOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169197</attachid>
            <date>2012-10-17 09:38:19 -0700</date>
            <delta_ts>2012-10-17 12:34:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99582-20121017183705.patch</filename>
            <type>text/plain</type>
            <size>17686</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZDZiZWVlYWE3ODAw
OGNhYjNmNDQwN2IwOGZiY2MxMGUyYzJjMy4uZjQwMDY4NTQxYTI2ZDQyMjVhNGExYmFhYzIwMTEz
NjFhYjE0YjY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEwLTE3ICBEYW4g
Q2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIEJpbmQgaXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luIHRvIHdvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05OTU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgU2VjdXJpdHkgb3JpZ2luIG9mIGlzb2xhdGVkIHdvcmxkcyB3YXMgbm90IHBy
ZXZpb3VzbHkgc2V0IGF0IHRoZSB3b3JsZAorICAgICAgICBsZXZlbCwgYWx0aG91Z2ggaXQgY291
bGQgaGF2ZSBiZWVuLiAKKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBmdW5j
dGlvbmFsaXR5LgorCisgICAgICAgICogYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZDo6ZGVhbGxvY2F0ZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Omlzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdp
bnMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjppc29sYXRlZFdvcmxkU2Vj
dXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjpzZXRJc29s
YXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldv
cmxkOjpjbGVhcklzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbik6CisgICAgICAgICogYmluZGlu
Z3MvdjgvRE9NV3JhcHBlcldvcmxkLmg6CisgICAgICAgIChET01XcmFwcGVyV29ybGQpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjppc0lzb2xhdGVkV29ybGRJZCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ6OmlzSXNvbGF0ZWRXb3JsZCk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDb250cm9sbGVyOjpyZXNldElzb2xhdGVkV29ybGRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Jc29sYXRlZFdvcmxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNvbGxlY3RJc29sYXRlZENvbnRleHRzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChTY3JpcHRDb250
cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OnNldElzb2xhdGVk
V29ybGRTZWN1cml0eU9yaWdpbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dT
aGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjppbml0aWFsaXpl
SWZOZWVkZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuaDoKKyAg
ICAgICAgKFY4RE9NV2luZG93U2hlbGwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYTUxI
dHRwUmVxdWVzdDo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisKIDIwMTItMTAtMTcgIFZzZXZvbG9k
IFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
W1JlZ3Jlc3Npb25dIFVuZG9pbmcgc2NyaXB0IGNoYW5nZXMgZG9lcyBub3QgcmVzdG9yZSBicmVh
a3BvaW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBw
ZXJXb3JsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQu
Y3BwCmluZGV4IGEwYTYwZGJmMThiOWFjYzNiN2FkYzEzMjU4YmE3YzgwM2FkYmY3MmEuLjZkZjBi
NzJkNWFiMjRiNjFhM2QxZmMwYjA3MWY1MmM5YWZhOGU0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlcldvcmxkLmNwcApAQCAtMTEyLDQgKzExMiwzNSBAQCBQ
YXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gRE9NV3JhcHBlcldvcmxkOjplbnN1cmVJc29sYXRl
ZFdvcmxkKGludCB3b3JsZElkLCBpbgogICAgIHJldHVybiB3b3JsZC5yZWxlYXNlKCk7CiB9CiAK
K3R5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gPiBJc29sYXRlZFdv
cmxkU2VjdXJpdHlPcmlnaW5NYXA7CitzdGF0aWMgSXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2lu
TWFwJiBpc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5zKCkKK3sKKyAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSXNvbGF0ZWRXb3JsZFNlY3VyaXR5
T3JpZ2luTWFwLCBtYXAsICgpKTsKKyAgICByZXR1cm4gbWFwOworfQorCitTZWN1cml0eU9yaWdp
biogRE9NV3JhcHBlcldvcmxkOjppc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4oKQoreworICAg
IEFTU0VSVCh0aGlzLT5pc0lzb2xhdGVkV29ybGQoKSk7CisgICAgSXNvbGF0ZWRXb3JsZFNlY3Vy
aXR5T3JpZ2luTWFwJiBvcmlnaW5zID0gaXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2lucygpOwor
ICAgIElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbk1hcDo6aXRlcmF0b3IgaXQgPSBvcmlnaW5z
LmZpbmQod29ybGRJZCgpKTsKKyAgICByZXR1cm4gaXQgPT0gb3JpZ2lucy5lbmQoKSA/IDAgOiBp
dC0+dmFsdWUuZ2V0KCk7Cit9CisKK3ZvaWQgRE9NV3JhcHBlcldvcmxkOjpzZXRJc29sYXRlZFdv
cmxkU2VjdXJpdHlPcmlnaW4oaW50IHdvcmxkSUQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHNlY3VyaXR5T3JpZ2luKQoreworICAgIEFTU0VSVChET01XcmFwcGVyV29ybGQ6OmlzSXNvbGF0
ZWRXb3JsZElkKHdvcmxkSUQpKTsKKyAgICBpZiAoc2VjdXJpdHlPcmlnaW4pCisgICAgICAgIGlz
b2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbnMoKS5zZXQod29ybGRJRCwgc2VjdXJpdHlPcmlnaW4p
OworICAgIGVsc2UKKyAgICAgICAgaXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2lucygpLnJlbW92
ZSh3b3JsZElEKTsKK30KKwordm9pZCBET01XcmFwcGVyV29ybGQ6OmNsZWFySXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luKGludCB3b3JsZElEKQoreworICAgIEFTU0VSVChET01XcmFwcGVyV29y
bGQ6OmlzSXNvbGF0ZWRXb3JsZElkKHdvcmxkSUQpKTsKKyAgICBpc29sYXRlZFdvcmxkU2VjdXJp
dHlPcmlnaW5zKCkucmVtb3ZlKHdvcmxkSUQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oCmluZGV4IDlj
Y2NkNWZjNmIyZTQ4MTNmOTk5MmNkYjBjZTc5OTExYTQwOTA0M2IuLmFkZjEyNGVjMjc1Yjg4OTk5
OGIyN2U0YTc3MGJlNWJkODg5NTZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0RPTVdyYXBwZXJXb3JsZC5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIERPTVdyYXBwZXJX
b3JsZF9oCiAKICNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC00NSwxNCArNDYsMjIgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCBpbnQgbWFpbldvcmxkRXh0ZW5zaW9uR3JvdXAgPSAwOwog
ICAgIHN0YXRpYyBjb25zdCBpbnQgdW5pbml0aWFsaXplZFdvcmxkSWQgPSAtMTsKICAgICBzdGF0
aWMgY29uc3QgaW50IHVuaW5pdGlhbGl6ZWRFeHRlbnNpb25Hcm91cCA9IC0xOwotICAgIC8vIElm
IDAgaXMgcGFzc2VkIGFzIHdvcmxkSWQsIHRoZSB3b3JsZCB3aWxsIGJlIGFzc2lnbmVkIGEgdGVt
cG9yYXJ5IGlkIGluc3RlYWQuCisgICAgLy8gSWYgdW5pbml0aWFsaXplZFdvcmxkSWQgaXMgcGFz
c2VkIGFzIHdvcmxkSWQsIHRoZSB3b3JsZCB3aWxsIGJlIGFzc2lnbmVkIGEgdGVtcG9yYXJ5IGlk
IGluc3RlYWQuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBlbnN1cmVJ
c29sYXRlZFdvcmxkKGludCB3b3JsZElkLCBpbnQgZXh0ZW5zaW9uR3JvdXApOwogICAgIHN0YXRp
YyBib29sIGlzb2xhdGVkV29ybGRzRXhpc3QoKSB7IHJldHVybiBpc29sYXRlZFdvcmxkQ291bnQ7
IH0KKyAgICBzdGF0aWMgYm9vbCBpc0lzb2xhdGVkV29ybGRJZChpbnQgd29ybGRJZCkgeyByZXR1
cm4gd29ybGRJZCAhPSBtYWluV29ybGRJZCAmJiB3b3JsZElkICE9IHVuaW5pdGlhbGl6ZWRXb3Js
ZElkOyB9CisgICAgLy8gQXNzb2NpYXRlcyBhbiBpc29sYXRlZCB3b3JsZCAoc2VlIGFib3ZlIGZv
ciBkZXNjcmlwdGlvbikgd2l0aCBhIHNlY3VyaXR5CisgICAgLy8gb3JpZ2luLiBYTUxIdHRwUmVx
dWVzdCBpbnN0YW5jZXMgdXNlZCBpbiB0aGF0IHdvcmxkIHdpbGwgYmUgY29uc2lkZXJlZAorICAg
IC8vIHRvIGNvbWUgZnJvbSB0aGF0IG9yaWdpbiwgbm90IHRoZSBmcmFtZSdzLgorICAgIHN0YXRp
YyB2b2lkIHNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbihpbnQgd29ybGRJRCwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4pOworICAgIHN0YXRpYyB2b2lkIGNsZWFySXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luKGludCB3b3JsZElEKTsKKyAgICBTZWN1cml0eU9yaWdpbiogaXNvbGF0
ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKCk7CiAgICAgLy8gRklYTUU6IHRoaXMgaXMgYSB3b3JrYXJv
dW5kIGZvciBhIHByb2JsZW0gaW4gV2ViVmlld0ltcGwuCiAgICAgLy8gRG8gbm90IHVzZSB0aGlz
IGFueXdoZXJlIGVsc2UhIQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4g
Y3JlYXRlVW5pbml0aWFsaXplZFdvcmxkKCk7CiAKICAgICBib29sIGlzTWFpbldvcmxkKCkgeyBy
ZXR1cm4gbV93b3JsZElkID09IG1haW5Xb3JsZElkOyB9CisgICAgYm9vbCBpc0lzb2xhdGVkV29y
bGQoKSB7IHJldHVybiBpc0lzb2xhdGVkV29ybGRJZChtX3dvcmxkSWQpOyB9CiAgICAgaW50IHdv
cmxkSWQoKSBjb25zdCB7IHJldHVybiBtX3dvcmxkSWQ7IH0KICAgICBpbnQgZXh0ZW5zaW9uR3Jv
dXAoKSBjb25zdCB7IHJldHVybiBtX2V4dGVuc2lvbkdyb3VwOyB9CiAgICAgRE9NRGF0YVN0b3Jl
KiBkb21EYXRhU3RvcmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBkZDU3YmM0MzkwZjZjMGJkODZjYWVhYzNlZjM0Zjk2
MDk2MjljODk0Li5iMmE5Yjk2YTlkODdkYWNjZmIxMjI4N2QyZjI5ZDkzNjkyYjlmZTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAt
MTQ5LDcgKzE0OSw2IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6cmVzZXRJc29sYXRlZFdvcmxk
cygpCiAgICAgICAgIGl0ZXItPnZhbHVlLT5kZXN0cm95SXNvbGF0ZWRTaGVsbCgpOwogICAgIH0K
ICAgICBtX2lzb2xhdGVkV29ybGRzLmNsZWFyKCk7Ci0gICAgbV9pc29sYXRlZFdvcmxkU2VjdXJp
dHlPcmlnaW5zLmNsZWFyKCk7CiB9CiAKIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJGb3JD
bG9zZSgpCkBAIC0zNjksMTIgKzM2OCw2IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVh
dGVJbklzb2xhdGVkV29ybGQoaW50IHdvcmxkSUQsIGNvbnN0IFZlY3RvcjxTY3JpcHRTCiAgICAg
ICAgIHY4OjpIYW5kbGVTY29wZSBldmFsdWF0ZUhhbmRsZVNjb3BlOwogICAgICAgICBWOERPTVdp
bmRvd1NoZWxsKiBpc29sYXRlZFdvcmxkU2hlbGwgPSBlbnN1cmVJc29sYXRlZFdvcmxkQ29udGV4
dCh3b3JsZElELCBleHRlbnNpb25Hcm91cCk7CiAKLSAgICAgICAgaWYgKHdvcmxkSUQgIT0gRE9N
V3JhcHBlcldvcmxkOjp1bmluaXRpYWxpemVkV29ybGRJZCkgewotICAgICAgICAgICAgSXNvbGF0
ZWRXb3JsZFNlY3VyaXR5T3JpZ2luTWFwOjppdGVyYXRvciBzZWN1cml0eU9yaWdpbkl0ZXIgPSBt
X2lzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbnMuZmluZCh3b3JsZElEKTsKLSAgICAgICAgICAg
IGlmIChzZWN1cml0eU9yaWdpbkl0ZXIgIT0gbV9pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW5z
LmVuZCgpKQotICAgICAgICAgICAgICAgIGlzb2xhdGVkV29ybGRTaGVsbC0+c2V0SXNvbGF0ZWRX
b3JsZFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luSXRlci0+dmFsdWUpOwotICAgICAgICB9
Ci0KICAgICAgICAgaXNvbGF0ZWRXb3JsZFNoZWxsLT5pbml0aWFsaXplSWZOZWVkZWQoKTsKICAg
ICAgICAgaWYgKGlzb2xhdGVkV29ybGRTaGVsbC0+Y29udGV4dCgpLklzRW1wdHkoKSkKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTQwNiwxNSArMzk5LDYgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVy
OjpldmFsdWF0ZUluSXNvbGF0ZWRXb3JsZChpbnQgd29ybGRJRCwgY29uc3QgVmVjdG9yPFNjcmlw
dFMKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6c2V0SXNvbGF0ZWRXb3JsZFNl
Y3VyaXR5T3JpZ2luKGludCB3b3JsZElELCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1
cml0eU9yaWdpbikKLXsKLSAgICBBU1NFUlQod29ybGRJRCk7Ci0gICAgbV9pc29sYXRlZFdvcmxk
U2VjdXJpdHlPcmlnaW5zLnNldCh3b3JsZElELCBzZWN1cml0eU9yaWdpbik7Ci0gICAgSXNvbGF0
ZWRXb3JsZE1hcDo6aXRlcmF0b3IgaXRlciA9IG1faXNvbGF0ZWRXb3JsZHMuZmluZCh3b3JsZElE
KTsKLSAgICBpZiAoaXRlciAhPSBtX2lzb2xhdGVkV29ybGRzLmVuZCgpKQotICAgICAgICBpdGVy
LT52YWx1ZS0+c2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsK
LX0KLQogVGV4dFBvc2l0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9u
KCkgY29uc3QKIHsKICAgICBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IG1fZnJh
bWUtPmRvY3VtZW50KCktPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpOwpAQCAtNjY3LDEzICs2
NTEsMTQgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjb2xsZWN0SXNvbGF0ZWRDb250ZXh0cyhW
ZWN0b3I8c3RkOjpwYWlyPFNjcmlwdFN0YXRlKiwgU2UKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFu
ZGxlU2NvcGU7CiAgICAgZm9yIChJc29sYXRlZFdvcmxkTWFwOjppdGVyYXRvciBpdCA9IG1faXNv
bGF0ZWRXb3JsZHMuYmVnaW4oKTsgaXQgIT0gbV9pc29sYXRlZFdvcmxkcy5lbmQoKTsgKytpdCkg
ewogICAgICAgICBWOERPTVdpbmRvd1NoZWxsKiBpc29sYXRlZFdvcmxkU2hlbGwgPSBpdC0+dmFs
dWU7Ci0gICAgICAgIGlmICghaXNvbGF0ZWRXb3JsZFNoZWxsLT5pc29sYXRlZFdvcmxkU2VjdXJp
dHlPcmlnaW4oKSkKKyAgICAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGlzb2xhdGVkV29y
bGRTaGVsbC0+d29ybGQoKS0+aXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKCk7CisgICAgICAg
IGlmICghb3JpZ2luKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IGlzb2xhdGVkV29ybGRTaGVsbC0+Y29udGV4dCgpOwog
ICAgICAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBTY3JpcHRTdGF0ZTo6Zm9yQ29udGV4
dCh2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcodjhDb250ZXh0KSk7Ci0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoc3RkOjpwYWlyPFNjcmlwdFN0YXRlKiwgU2VjdXJpdHlPcmlnaW4qPihzY3JpcHRT
dGF0ZSwgaXNvbGF0ZWRXb3JsZFNoZWxsLT5pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmlnaW4oKSkp
OworICAgICAgICByZXN1bHQuYXBwZW5kKHN0ZDo6cGFpcjxTY3JpcHRTdGF0ZSosIFNlY3VyaXR5
T3JpZ2luKj4oc2NyaXB0U3RhdGUsIG9yaWdpbikpOwogICAgIH0KIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGRmZmVlMzUw
M2FkYTA0ZjdmMDJjMDQ3ZTVkMTM0ZmNmY2E5ZDhjYTEuLjVhMWZmNDU3ODVhYzEyNTU2ZjIyYmM2
ZTQxZTE4YjdlOWEyYmVjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmgKQEAgLTEwNywxMCArMTA3LDExIEBAIHB1YmxpYzoKICAgICAvLyBGSVhN
RTogR2V0IHJpZCBvZiBleHRlbnNpb25Hcm91cCBoZXJlLgogICAgIHZvaWQgZXZhbHVhdGVJbklz
b2xhdGVkV29ybGQoaW50IHdvcmxkSUQsIGNvbnN0IFZlY3RvcjxTY3JpcHRTb3VyY2VDb2RlPiYg
c291cmNlcywgaW50IGV4dGVuc2lvbkdyb3VwLCBWZWN0b3I8U2NyaXB0VmFsdWU+KiByZXN1bHRz
KTsKIAotICAgIC8vIEFzc29jaWF0ZXMgYW4gaXNvbGF0ZWQgd29ybGQgKHNlZSBhYm92ZSBmb3Ig
ZGVzY3JpcHRpb24pIHdpdGggYSBzZWN1cml0eQotICAgIC8vIG9yaWdpbi4gWE1MSHR0cFJlcXVl
c3QgaW5zdGFuY2VzIHVzZWQgaW4gdGhhdCB3b3JsZCB3aWxsIGJlIGNvbnNpZGVyZWQKLSAgICAv
LyB0byBjb21lIGZyb20gdGhhdCBvcmlnaW4sIG5vdCB0aGUgZnJhbWUncy4KLSAgICB2b2lkIHNl
dElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbihpbnQgd29ybGRJRCwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4pOworICAgIC8vIEZJWE1FOiBSZW1vdmUgcmVmZXJlbmNlcyB0byB0aGlzIGNh
bGwgaW4gY2hyb21pdW0gYW5kIGRlbGV0ZSBpdC4KKyAgICBpbmxpbmUgc3RhdGljIHZvaWQgc2V0
SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKGludCB3b3JsZElELCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBvcmlnaW4pCisgICAgeworICAgICAgICBET01XcmFwcGVyV29ybGQ6OnNldElz
b2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbih3b3JsZElELCBvcmlnaW4pOworICAgIH0KIAogICAg
IC8vIENyZWF0ZXMgYSBwcm9wZXJ0eSBvZiB0aGUgZ2xvYmFsIG9iamVjdCBvZiBhIGZyYW1lLgog
ICAgIHZvaWQgYmluZFRvV2luZG93T2JqZWN0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBrZXksIE5Q
T2JqZWN0Kik7CkBAIC0xOTAsNyArMTkxLDYgQEAgcHJpdmF0ZToKICAgICAvLyByZWZlcmVuY2Ug
dG8gdGhlIHY4IGNvbnRleHQgaXQgY29udGFpbnMsIHdoaWNoIGlzIG5vdCBtYWRlIHdlYWsgdW50
aWwgd2UKICAgICAvLyBjYWxsIHdvcmxkLT5kZXN0cm95SXNvbGF0ZWRTaGVsbCgpLgogICAgIHR5
cGVkZWYgSGFzaE1hcDxpbnQsIFY4RE9NV2luZG93U2hlbGwqPiBJc29sYXRlZFdvcmxkTWFwOwot
ICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gPiBJc29sYXRl
ZFdvcmxkU2VjdXJpdHlPcmlnaW5NYXA7CiAKICAgICB2b2lkIHJlc2V0SXNvbGF0ZWRXb3JsZHMo
KTsKIApAQCAtMjA0LDcgKzIwNCw2IEBAIHByaXZhdGU6CiAgICAgLy8gaGVyZSBzbyB0aGF0IHRo
ZXkgY2FuIGJlIHVzZWQgYWdhaW4gYnkgZnV0dXJlIGNhbGxzIHRvCiAgICAgLy8gZXZhbHVhdGVJ
bklzb2xhdGVkV29ybGQoKS4KICAgICBJc29sYXRlZFdvcmxkTWFwIG1faXNvbGF0ZWRXb3JsZHM7
Ci0gICAgSXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luTWFwIG1faXNvbGF0ZWRXb3JsZFNlY3Vy
aXR5T3JpZ2luczsKIAogICAgIGJvb2wgbV9wYXVzZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggOGQxYmMyNjQ5NDQxMmU5Njlj
OGZhYTJjM2ZkM2M4ZGEyYTk5YWU5ZC4uOGE0MWI1NmE3OThhYzljNDEwM2RjNzcxMWY5M2ZmODY4
MjFkMjA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5k
b3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dT
aGVsbC5jcHAKQEAgLTM4MSw2ICszODEsMTIgQEAgYm9vbCBWOERPTVdpbmRvd1NoZWxsOjppbml0
aWFsaXplSWZOZWVkZWQoKQogICAgICAgICAvLyAgICAgICAgZG9jdW1lbnQgZG9tYWluCiAgICAg
ICAgIC8vICAgICAgICBjaGFuZ2VzLgogICAgICAgICBtX2NvbnRleHQtPlVzZURlZmF1bHRTZWN1
cml0eVRva2VuKCk7CisKKyAgICAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IG1fd29ybGQt
Pmlzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbigpOworICAgICAgICBpZiAob3JpZ2luICYmIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpIHsKKyAgICAgICAgICAgIFNj
cmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9IFNjcmlwdFN0YXRlOjpmb3JDb250ZXh0KHY4OjpMb2Nh
bDx2ODo6Q29udGV4dD46Ok5ldyhtX2NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KG1fZnJhbWUsIHNj
cmlwdFN0YXRlLCBvcmlnaW4pOworICAgICAgICB9CiAgICAgfQogICAgIG1fZnJhbWUtPmxvYWRl
cigpLT5jbGllbnQoKS0+ZGlkQ3JlYXRlU2NyaXB0Q29udGV4dChtX2NvbnRleHQuZ2V0KCksIG1f
d29ybGQtPmV4dGVuc2lvbkdyb3VwKCksIG1fd29ybGQtPndvcmxkSWQoKSk7CiAKQEAgLTYxMSwx
NiArNjE3LDQgQEAgdm9pZCBWOERPTVdpbmRvd1NoZWxsOjp1cGRhdGVTZWN1cml0eU9yaWdpbigp
CiAgICAgc2V0U2VjdXJpdHlUb2tlbigpOwogfQogCi12b2lkIFY4RE9NV2luZG93U2hlbGw6OnNl
dElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBz
ZWN1cml0eU9yaWdpbikKLXsKLSAgICBBU1NFUlQoIW1fd29ybGQtPmlzTWFpbldvcmxkKCkpOwot
ICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBoZXJlPwotICAgIGlmICghbV9pc29sYXRlZFdv
cmxkU2hlbGxTZWN1cml0eU9yaWdpbiAmJiAhY29udGV4dCgpLklzRW1wdHkoKSAmJiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnJ1bnRpbWVBZ2VudEVuYWJsZWQobV9mcmFtZSkpIHsKLSAgICAg
ICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwotICAgICAgICBTY3JpcHRTdGF0ZSogc2Ny
aXB0U3RhdGUgPSBTY3JpcHRTdGF0ZTo6Zm9yQ29udGV4dCh2ODo6TG9jYWw8djg6OkNvbnRleHQ+
OjpOZXcoY29udGV4dCgpKSk7Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlSXNvbGF0ZWRDb250ZXh0KG1fZnJhbWUsIHNjcmlwdFN0YXRlLCBzZWN1cml0eU9yaWdp
bi5nZXQoKSk7Ci0gICAgfQotICAgIG1faXNvbGF0ZWRXb3JsZFNoZWxsU2VjdXJpdHlPcmlnaW4g
PSBzZWN1cml0eU9yaWdpbjsKLX0KLQogfSAvLyBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmgKaW5kZXggMDFkMjk4MTdmYzhkMzIxY2IxNGEx
OGUwODYzOGU0MzIyYWQ2OWRkOC4uN2QyMDZkNGNkNjllZTYzZjY4NDI4NzE4ZjdlYjhmMmVhNTQz
YzY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dT
aGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwu
aApAQCAtODMsMTMgKzgzLDYgQEAgcHVibGljOgogCiAgICAgRE9NV3JhcHBlcldvcmxkKiB3b3Js
ZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KIAotICAgIHZvaWQgc2V0SXNvbGF0ZWRXb3Js
ZFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KTsKLSAgICBTZWN1cml0
eU9yaWdpbiogaXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVCghbV93b3JsZC0+aXNNYWluV29ybGQoKSk7Ci0gICAgICAgIHJldHVybiBtX2lz
b2xhdGVkV29ybGRTaGVsbFNlY3VyaXR5T3JpZ2luLmdldCgpOwotICAgIH07Ci0KICAgICAvLyBS
ZXR1cm5zIHRoZSBpc29sYXRlZCB3b3JsZCBhc3NvY2lhdGVkIHdpdGgKICAgICAvLyB2ODo6Q29u
dGV4dDo6R2V0RW50ZXJlZCgpLiBCZWNhdXNlIHdvcmxkcyBhcmUgaXNvbGF0ZWQsIHRoZSBlbnRp
cmUKICAgICAvLyBKYXZhU2NyaXB0IGNhbGwgc3RhY2sgc2hvdWxkIGJlIGZyb20gdGhlIHNhbWUg
aXNvbGF0ZWQgd29ybGQuCkBAIC0xMzYsOSArMTI5LDYgQEAgcHJpdmF0ZToKICAgICBTY29wZWRQ
ZXJzaXN0ZW50PHY4OjpDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgU2NvcGVkUGVyc2lzdGVudDx2
ODo6T2JqZWN0PiBtX2dsb2JhbDsKICAgICBTY29wZWRQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IG1f
ZG9jdW1lbnQ7Ci0KLSAgICAvLyBGSVhNRTogRWl0aGVyIHJlbW92ZSB0aGlzIG9yIHRoZSBtYXAg
aW4gU2NyaXB0Q29udHJvbGxlci4KLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1faXNvbGF0
ZWRXb3JsZFNoZWxsU2VjdXJpdHlPcmlnaW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDA1MGI3ZmI0ZDM4NmE3MWY5
N2NiZWE0YTk1OWUxMmJhZjdhNzc5M2IuLjZmM2Q2ZWU0MTk1NDBjZGQ1MDg5MzEyZGIyZDU5OTdh
ZjI1OGNiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCkBAIC01Niw3ICs1
Niw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0Ojpjb25zdHJ1Y3Rv
ckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmCiAKICAgICBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHNlY3VyaXR5T3JpZ2luOwogICAgIGlmIChWOERPTVdpbmRvd1NoZWxsKiBpc29sYXRlZFdv
cmxkU2hlbGwgPSBWOERPTVdpbmRvd1NoZWxsOjpnZXRFbnRlcmVkKCkpCi0gICAgICAgIHNlY3Vy
aXR5T3JpZ2luID0gaXNvbGF0ZWRXb3JsZFNoZWxsLT5pc29sYXRlZFdvcmxkU2VjdXJpdHlPcmln
aW4oKTsKKyAgICAgICAgc2VjdXJpdHlPcmlnaW4gPSBpc29sYXRlZFdvcmxkU2hlbGwtPndvcmxk
KCktPmlzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbigpOwogCiAgICAgUmVmUHRyPFhNTEh0dHBS
ZXF1ZXN0PiB4bWxIdHRwUmVxdWVzdCA9IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwg
c2VjdXJpdHlPcmlnaW4pOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNDFlODgxZWEwNDAxNDkzNDZiOTEyYjhjOWJjMmY0MjE5MTMyOTI4MC4u
ODI0Yzk1Y2M2MWIzNmY3ZTRmMDhkNjYzNThlNjdiOTY0YzJlNzZmMSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTEwLTE3ICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIEJpbmQg
aXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luIHRvIHdvcmxkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTU4MgorCisgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCisKKyAgICAgICAgQWRkZWQgYWJpbGl0eSB0byB1bnNldCBpc29sYXRlZFdv
cmxkU2VjdXJpdHlPcmlnaW4uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
UlRUZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKERSVFRlc3RSdW5uZXI6OnNldElzb2xhdGVkV29y
bGRTZWN1cml0eU9yaWdpbik6CisKIDIwMTItMTAtMTcgIEhhcmFsZCBBbHZlc3RyYW5kICA8aHRh
QGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIG15c2VsZiB0byB0aGUgTWVkaWFTdHJlYW0gd2F0
Y2hsaXN0CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
Y3BwCmluZGV4IDhhZWU3YzViMmM3NDAxMDRjODAyMjM4OTQ1OGEwYmZkZmMyOWQ0ZjguLjA4MjU5
N2ExMTdiOTJkNTk3MjgwN2U5ZjBlM2EzNzIzNGVkOWMyYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCkBAIC0xMzkyLDEyICsxMzkyLDEz
IEBAIHZvaWQgRFJUVGVzdFJ1bm5lcjo6c2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiAK
LSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSAyIHx8ICFhcmd1bWVudHNbMF0uaXNOdW1iZXIo
KSB8fCAhYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkpCisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
IT0gMiB8fCAhYXJndW1lbnRzWzBdLmlzTnVtYmVyKCkgfHwgIShhcmd1bWVudHNbMV0uaXNTdHJp
bmcoKSB8fCBhcmd1bWVudHNbMV0uaXNOdWxsKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3NoZWxsLT53ZWJWaWV3KCktPmZvY3VzZWRGcmFtZSgpLT5zZXRJc29sYXRlZFdvcmxkU2VjdXJp
dHlPcmlnaW4oCi0gICAgICAgIGFyZ3VtZW50c1swXS50b0ludDMyKCksCi0gICAgICAgIFdlYlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1
bWVudHNbMV0pKSk7CisgICAgV2ViU2VjdXJpdHlPcmlnaW4gb3JpZ2luOworICAgIGlmIChhcmd1
bWVudHNbMV0uaXNTdHJpbmcoKSkKKyAgICAgICAgb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUZyb21TdHJpbmcoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1sxXSkpOwor
ICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+Zm9jdXNlZEZyYW1lKCktPnNldElzb2xhdGVkV29ybGRT
ZWN1cml0eU9yaWdpbihhcmd1bWVudHNbMF0udG9JbnQzMigpLCBvcmlnaW4pOwogfQogCiB2b2lk
IERSVFRlc3RSdW5uZXI6OnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTZhNjY5Yzk1N2ZmZTBmMTdlM2ViNDAzMjE2NzI1NGE5ZDYwYTM2YS4uYmRkZmZjZGEyYTEwMmEz
ODliOGQwNjViZWVlZDg1ZjkxZmRhYWU4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEw
LTE3ICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIEJpbmQgaXNv
bGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luIHRvIHdvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCisKKyAgICAgICAgQ2xlYW4gdXAgb2YgaXNvbGF0ZWQgd29ybGRzIGFkZGVkIGFm
dGVyIHRlc3QgY29tcGxldGlvbi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWw6CisKIDIwMTItMTAtMTcgIFZzZXZvbG9k
IFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
W1JlZ3Jlc3Npb25dIFVuZG9pbmcgc2NyaXB0IGNoYW5nZXMgZG9lcyBub3QgcmVzdG9yZSBicmVh
a3BvaW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCmluZGV4IDRhYzY1
YmMyY2E5YTdkMjIzNzQzNzMzNDNlNWU0M2Q3M2I1N2EwMWYuLjYxYTFhMmU3NmQwNmU5OTViMzhk
MDVhZWQ4YmZiMDU1NWUxZjAyM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIu
aHRtbApAQCAtNDYsOCArNDYsMTEgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAg
ICAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkgewogICAgICAgICAgICAgICAgIGNhc2UgJ3Rlc3Qt
ZG9uZSc6CiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUZXN0Kys7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChjdXJyZW50VGVzdCA9PSB0ZXN0cy5sZW5ndGgpCisgICAgICAgICAgICAgICAg
ICAgIGlmIChjdXJyZW50VGVzdCA9PSB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKDEsIG51bGwp
OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRJc29sYXRlZFdvcmxkU2Vj
dXJpdHlPcmlnaW4oMiwgbnVsbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0c1tjdXJyZW50VGVzdF0oKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>