<?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>101519</bug_id>
          
          <creation_ts>2012-11-07 16:11:14 -0800</creation_ts>
          <short_desc>[V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API</short_desc>
          <delta_ts>2012-11-13 10:19:53 -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>New Bugs</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>
          <dependson>101645</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>761141</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 16:11:14 -0800</bug_when>
    <thetext>[V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761146</commentid>
    <comment_count>1</comment_count>
      <attachid>172887</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 16:12:24 -0800</bug_when>
    <thetext>Created attachment 172887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761227</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 17:48:30 -0800</bug_when>
    <thetext>@ojan: Would you be willing to rs=you this patch so that the gardener can land it whenever the V8 patch lands?  (I haven&apos;t marked it for review because it won&apos;t compile without this API being present in V8.)

See http://code.google.com/p/chromium/issues/detail?id=159674 for more context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761232</commentid>
    <comment_count>3</comment_count>
      <attachid>172887</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-07 17:49:44 -0800</bug_when>
    <thetext>Comment on attachment 172887
Patch

Yes. RS=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761236</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-07 17:52:54 -0800</bug_when>
    <thetext>Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762150</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-08 13:54:13 -0800</bug_when>
    <thetext>Committed r133945: &lt;http://trac.webkit.org/changeset/133945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762183</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 14:31:45 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 101645</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764910</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-12 15:55:27 -0800</bug_when>
    <thetext>Committed r134323: &lt;http://trac.webkit.org/changeset/134323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765758</commentid>
    <comment_count>8</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-13 10:19:53 -0800</bug_when>
    <thetext>Looks like this was a large perf improvement across a large swath of DOM creation and traversal benchmarks. Well worth all the effort it took.

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dom_perf/report.html?rev=167377&amp;graph=DOMWalk&amp;history=150

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoretraverse/report.html?rev=167377&amp;graph=dom_traverse_lastChild&amp;history=150

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoretraverse/report.html?graph=dom_traverse&amp;history=150&amp;rev=167377

http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/dom_perf/report.html?graph=Get%20Elements&amp;history=150&amp;rev=167377

http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/dom_perf/report.html?graph=Get%20Elements&amp;history=150&amp;rev=167377

http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/dom_perf/report.html?graph=Total&amp;history=150&amp;rev=167377

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dromaeo_domcoremodify/report.html?graph=dom_modify_createElement&amp;history=150&amp;rev=167377

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dom_perf/report.html?graph=CreateNodes&amp;history=150&amp;rev=167377

http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dom_perf/report.html?graph=DOMDivWalk&amp;history=150&amp;rev=167377</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172887</attachid>
            <date>2012-11-07 16:12:24 -0800</date>
            <delta_ts>2012-11-07 17:49:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101519-20121107161035.patch</filename>
            <type>text/plain</type>
            <size>22391</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI1OGIzN2RkMzc1MGIw
MmUxZGY3NzdkYTYwMzJmMWQ4OGE4M2MyNi4uYmFjNGI0YWI0MGZkZDUyMmUzMjQ4M2FmZDJhMmE0
MjY4NmY1MTY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTExLTA3ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBVcGRhdGUgY2FsbGVy
cyB0byB1c2UgdGhlIGFsaWduZWQgcG9pbnRlciBBUEkgcmF0aGVyIHRoYW4gdGhlIGRlcHJlY2F0
ZWQgdW5hbGlnbmVkIHBvaW50ZXIgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDE1MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yLiAg
VGhlIG5ldyBBUEkgaXMgc2xpZ2h0bHkgZmFzdGVyCisgICAgICAgIHRoYW4gdGhlIG9sZCBBUEkg
KGFuZCBhcHBhcmVudGx5IHdvcmtzIGNvcnJlY3RseSBpbnRlcm5hbGx5IGluIFY4KS4KKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0
NjRBcnJheS5oOgorICAgICAgICAoV2ViQ29yZTo6VjhGbG9hdDY0QXJyYXk6OnRvTmF0aXZlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RBY3RpdmVET01PYmplY3Q6OnRvTmF0aXZlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp0b05hdGl2
ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OnRvTmF0
aXZlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJn
ZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEV2ZW50VGFyZ2V0Ojp0b05hdGl2ZSk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6VjhUZXN0RXhjZXB0aW9uOjp0b05hdGl2ZSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6VjhUZXN0SW50ZXJmYWNlOjp0b05hdGl2ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnRvTmF0aXZlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oOgorICAgICAg
ICAoV2ViQ29yZTo6VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9OYXRpdmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpWOFRlc3ROb2RlOjp0b05hdGl2ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T2JqOjp0b05hdGl2ZSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlOjp0b05hdGl2ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvTlBW
OE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2OE9iamVjdFRvTlBPYmplY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6bnBDcmVhdGVWOFNjcmlwdE9iamVjdCk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvVjhDb2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjp0b05hdGl2ZUNvbGxlY3Rp
b24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SXNvbGF0ZWRXb3JsZEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlY4
RE9NV2luZG93U2hlbGw6OmVudGVyZWRJc29sYXRlZFdvcmxkQ29udGV4dCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3Jh
cHBlcjo6aXNXcmFwcGVyT2ZUeXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBw
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OmNsZWFyRE9NV3JhcHBlcik6CisgICAgICAg
ICogYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjp0b05h
dGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjp0b1dyYXBwZXJUeXBlSW5mbyk6CisKIDIwMTItMTEt
MDcgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBTa2lwIFNWRyBy
ZXBhaW50IHRyYWNraW5nIHdoZW4gcGFyZW50IGNvbnRhaW5lciB0cmFuc2Zvcm1zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4
IDJkOWY5MTJlMmI3ODMwOWEzZDE4NDk5OGU4MGE1ZjJmYTRjMDY3MmIuLjc5MzA2MDkwMmZlYTAw
MmI2MWIxNTRmYjlhOTZjM2ZjYzIwNTZiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0zNzksNyArMzc5LDcgQEAgRU5E
CiAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBHZXRUZW1w
bGF0ZSgpOwogICAgIHN0YXRpYyAke25hdGl2ZVR5cGV9KiB0b05hdGl2ZSh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IG9iamVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PCR7bmF0aXZlVHlwZX0qPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERP
TVdyYXBwZXJPYmplY3RJbmRleCkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDwk
e25hdGl2ZVR5cGV9Kj4ob2JqZWN0LT5HZXRBbGlnbmVkUG9pbnRlckZyb21JbnRlcm5hbEZpZWxk
KHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKCR7bmF0aXZlVHlwZX0qLCB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGNyZWF0aW9uQ29udGV4dCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKSwgdjg6Oklz
b2xhdGUqID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFy
cmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0
QXJyYXkuaAppbmRleCBiZTAxYjFjMDZkZWYzNDFhZThkODhmNjJlYTk3MmJkOWY4YmQ4NDBlLi4y
MTM0NjZmMDAwMjI1ODRiMGQ3MTVlNGVmZWRkMjBlNjNhMzg4MzUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXku
aApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBHZXRUZW1wbGF0ZSgpOwogICAgIHN0YXRpYyBGbG9hdDY0QXJy
YXkqIHRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RmxvYXQ2NEFycmF5Kj4ob2JqZWN0LT5HZXRQb2lu
dGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKKyAgICAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RmxvYXQ2NEFycmF5Kj4ob2JqZWN0LT5HZXRBbGlnbmVk
UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAg
fQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKEZsb2F0NjRB
cnJheSosIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0ID0gdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PigpLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBzdGF0aWMgdm9pZCBkZXJl
Zk9iamVjdCh2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggMTkyMzgx
MGFiMDQ5ZTJhMzQxNmIzNDM2ZDhjOTRiNjJmZmViMGE2OC4uMjhhZjk0NTI4ODE2MDkxMGMwZTVi
M2EyYjk5NGIzOTI1MDAwOGQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaApAQCAt
MzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPiBHZXRUZW1wbGF0ZSgpOwogICAgIHN0YXRpYyBUZXN0QWN0aXZlRE9NT2Jq
ZWN0KiB0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3RBY3RpdmVET01PYmplY3QqPihvYmplY3Qt
PkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJPYmplY3RJbmRleCkpOwor
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0QWN0aXZlRE9NT2JqZWN0Kj4ob2Jq
ZWN0LT5HZXRBbGlnbmVkUG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVj
dEluZGV4KSk7CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwKFRlc3RBY3RpdmVET01PYmplY3QqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0
aW9uQ29udGV4dCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUqID0gMCk7
CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuaAppbmRleCA4Yzg5YzBhMjlkZGE1NDdmNjFiNzIyNTEyODUxYTVhZGJlZGU3
NWQ3Li4wZDdhZmYxOWZiZDY5MGRjNjRlODM4NWM1ZmQ3N2RhNjg0YzI3NjVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBHZXRUZW1wbGF0ZSgp
OwogICAgIHN0YXRpYyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gb2JqZWN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8VGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFs
RmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8VGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4ob2JqZWN0LT5HZXRBbGlnbmVkUG9pbnRl
ckZyb21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAgfQogICAg
IGlubGluZSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RDdXN0b21OYW1l
ZEdldHRlciosIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0ID0gdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PigpLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBzdGF0aWMgdm9pZCBk
ZXJlZk9iamVjdCh2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaAppbmRleCA2
MjlhNWI1NWU5Yjc2NmM4ZGZjYzMxY2NiMmQ1MTM3OTUyMDczYjkxLi4wNDg4YTQ4YzRhNjk1ZTc0
MTEzMjg4NmNiOWY1ZTFjNjA0Y2ZhY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9y
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2
ODo6RnVuY3Rpb25UZW1wbGF0ZT4gR2V0VGVtcGxhdGUoKTsKICAgICBzdGF0aWMgVGVzdEV2ZW50
Q29uc3RydWN0b3IqIHRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdEV2ZW50Q29uc3RydWN0b3Iq
PihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJPYmplY3RJ
bmRleCkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0RXZlbnRDb25zdHJ1
Y3Rvcio+KG9iamVjdC0+R2V0QWxpZ25lZFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdy
YXBwZXJPYmplY3RJbmRleCkpOwogICAgIH0KICAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gd3JhcChUZXN0RXZlbnRDb25zdHJ1Y3RvciosIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gY3JlYXRpb25Db250ZXh0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpLCB2ODo6SXNv
bGF0ZSogPSAwKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRU
YXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudFRhcmdldC5oCmluZGV4IDliNjhlMzRlMWZmMWFmYjFmYmNjN2Y1YmY0ZjQ5NjEwZmUzMmEy
NTYuLmE1MmU4YTRlMDI5MTIzODZhZmE1YjMwZTQ4NmZjZGVhNDE1YmI2MGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdl
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudFRhcmdldC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IEdldFRlbXBsYXRlKCk7CiAgICAgc3RhdGlj
IFRlc3RFdmVudFRhcmdldCogdG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3Qp
CiAgICAgewotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0RXZlbnRUYXJnZXQq
PihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJPYmplY3RJ
bmRleCkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0RXZlbnRUYXJnZXQq
PihvYmplY3QtPkdldEFsaWduZWRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVy
T2JqZWN0SW5kZXgpKTsKICAgICB9CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IHdyYXAoVGVzdEV2ZW50VGFyZ2V0Kiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVh
dGlvbkNvbnRleHQgPSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KCksIHY4OjpJc29sYXRlKiA9IDAp
OwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2JqZWN0KHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uaApp
bmRleCA3MWI5NDc4ZDNmZTk1ZTA3ODUzZjUyMTEwMGI3Nzg3ZDQxODQyNDZjLi5lZmJhYWM5MWY3
ZjQwZjE3ZmNjNDNlYzY5MzliYWFlYjAwY2Q2MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5oCkBAIC0z
OSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IEdldFRlbXBsYXRlKCk7CiAgICAgc3RhdGljIFRlc3RFeGNlcHRpb24qIHRv
TmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdEV4Y2VwdGlvbio+KG9iamVjdC0+R2V0UG9pbnRlckZy
b21JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CisgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFRlc3RFeGNlcHRpb24qPihvYmplY3QtPkdldEFsaWduZWRQb2lu
dGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAgICB9CiAg
ICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdEV4Y2VwdGlv
biosIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0ID0gdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PigpLCB2ODo6SXNvbGF0ZSogPSAwKTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9i
amVjdCh2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKaW5kZXggNzVmZDExZmYyNmMzMTU3OTBkNmQz
Y2FkMDVkMDM2Yzg0MWQ3YzA4OS4uMDgwODJjM2E5NjdkZDQ0N2RhNzViZTI3NTM1ZGI5NWU2ZGJm
NjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBHZXRUZW1wbGF0ZSgp
OwogICAgIHN0YXRpYyBUZXN0SW50ZXJmYWNlKiB0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IG9iamVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3RJ
bnRlcmZhY2UqPihvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBw
ZXJPYmplY3RJbmRleCkpOworICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0SW50
ZXJmYWNlKj4ob2JqZWN0LT5HZXRBbGlnbmVkUG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9N
V3JhcHBlck9iamVjdEluZGV4KSk7CiAgICAgfQogICAgIGlubGluZSBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwKFRlc3RJbnRlcmZhY2UqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IGNyZWF0aW9uQ29udGV4dCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUq
ID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggN2JhNGE1NjQxNmNlYjNmNjg3MzVl
NGFhZGM5ODJlMDU3OWE1NTJiMC4uOGFmZGE3MmNjMjBlYzY2MDJmZjNjZWI4YTIxOWQxMDBkYzFk
NmJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC0z
OSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IEdldFRlbXBsYXRlKCk7CiAgICAgc3RhdGljIFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyKiB0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCkKICAgICB7
Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2Jq
ZWN0SW5kZXgpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIqPihvYmplY3QtPkdldEFsaWduZWRQb2ludGVyRnJvbUludGVybmFsRmll
bGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAgICB9CiAgICAgaW5saW5lIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqLCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCA9IHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4oKSwgdjg6Oklzb2xhdGUqID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qo
dm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggYjBmMzQ3MWM4OTcz
ZDBhOTFkMWUxNjQ2Yjg2ZGU1NGRjNDNiM2E0Yi4uNWQzM2ZlYTE2ZmI2MjYwMDE1ZTQ2OTdhYmJk
ODgwNmRjMTA0ZWUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC00NSw3
ICs0NSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+IEdldFRlbXBsYXRlKCk7CiAgICAgc3RhdGljIFRlc3ROYW1lZENvbnN0cnVjdG9y
KiB0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCkKICAgICB7Ci0gICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3ROYW1lZENvbnN0cnVjdG9yKj4ob2JqZWN0LT5H
ZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKKyAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdE5hbWVkQ29uc3RydWN0b3IqPihvYmpl
Y3QtPkdldEFsaWduZWRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0
SW5kZXgpKTsKICAgICB9CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHdyYXAoVGVzdE5hbWVkQ29uc3RydWN0b3IqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0
aW9uQ29udGV4dCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUqID0gMCk7
CiAgICAgc3RhdGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmgKaW5kZXggZmQzMzM4
ODM5OTA0ZDEzMGY5NzhlODc4MTE2Y2JhM2RiMDcxMWFiNy4uNWU4ZWMyOGY1Njk5ZDY1NWI3OTY2
ZDkyOWE1YmViM2ZkOTVhNjg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IEdldFRlbXBs
YXRlKCk7CiAgICAgc3RhdGljIFRlc3ROb2RlKiB0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IG9iamVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRlc3RO
b2RlKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2Jq
ZWN0SW5kZXgpKTsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdE5vZGUqPihv
YmplY3QtPkdldEFsaWduZWRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2Jq
ZWN0SW5kZXgpKTsKICAgICB9CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IHdyYXAoVGVzdE5vZGUqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4
dCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUqID0gMCk7CiAgICAgc3Rh
dGljIHZvaWQgZGVyZWZPYmplY3Qodm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCmluZGV4IDk0Mzg5NTJjODgyMmU5M2U4
NzNmNmY4OTA3MDgyMzA0MTgyZDNiZmMuLmIxODU1YjQ5MmJlZjQzOWEzZmM4OTYzNmI2NDg2NjBi
YjU2OGM0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gR2V0VGVtcGxhdGUoKTsKICAgICBz
dGF0aWMgVGVzdE9iaiogdG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QpCiAg
ICAgewotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXN0T2JqKj4ob2JqZWN0LT5H
ZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKKyAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdE9iaio+KG9iamVjdC0+R2V0QWxpZ25l
ZFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdyYXBwZXJPYmplY3RJbmRleCkpOwogICAg
IH0KICAgICBpbmxpbmUgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcChUZXN0T2Jq
Kiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQgPSB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+KCksIHY4OjpJc29sYXRlKiA9IDApOwogICAgIHN0YXRpYyB2b2lkIGRlcmVmT2Jq
ZWN0KHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuaAppbmRleCAzOTcwMTY4NTBkYjVlYmU4ZjM1ZGY0OWY3MjRkODZkYjJjOTU2
NDA1Li45NGQ5ZDA2Y2RlYjY2NWViZDFmNWY5OTNiMGZlNmMxZjFhZjYxNGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC00
MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IEdldFRlbXBsYXRlKCk7CiAgICAgc3RhdGljIFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UqIHRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxk
KHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihvYmplY3QtPkdldEFsaWdu
ZWRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKICAg
ICB9CiAgICAgaW5saW5lIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXAoVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSosIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3Jl
YXRpb25Db250ZXh0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpLCB2ODo6SXNvbGF0ZSogPSAw
KTsKICAgICBzdGF0aWMgdm9pZCBkZXJlZk9iamVjdCh2b2lkKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9OUFY4T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCmluZGV4IDljZjllNWZhZGNhZmI4OWZiMTViZThmMmM1
MTE0NmQzZGIxMmQzOTAuLjJmMjczZTEyYzUyMjZkYjc2ZjQzYmM2MzNlMDdmNDE0NTYxMDUxOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L05QVjhPYmplY3QuY3BwCkBAIC0xMjAsNyAr
MTIwLDcgQEAgc3RhdGljIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBucElkZW50aWZpZXJUb1Y4SWRl
bnRpZmllcihOUElkZW50aWZpZXIgbmFtZSkKIAogTlBPYmplY3QqIHY4T2JqZWN0VG9OUE9iamVj
dCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCkKIHsKLSAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxOUE9iamVjdCo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4
RE9NV3JhcHBlck9iamVjdEluZGV4KSk7IAorICAgIHJldHVybiByZWludGVycHJldF9jYXN0PE5Q
T2JqZWN0Kj4ob2JqZWN0LT5HZXRBbGlnbmVkUG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9N
V3JhcHBlck9iamVjdEluZGV4KSk7IAogfQogCiBzdGF0aWMgTlBDbGFzcyBWOE5QT2JqZWN0Q2xh
c3MgPSB7IE5QX0NMQVNTX1NUUlVDVF9WRVJTSU9OLApAQCAtMTM1LDcgKzEzNSw3IEBAIE5QT2Jq
ZWN0KiBucENyZWF0ZVY4U2NyaXB0T2JqZWN0KE5QUCBucHAsIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gb2JqZWN0LCBET01XaW5kCiB7CiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoaXMgb2JqZWN0
IGlzIGFscmVhZHkgd3JhcHBlZC4KICAgICBpZiAob2JqZWN0LT5JbnRlcm5hbEZpZWxkQ291bnQo
KSA9PSBucE9iamVjdEludGVybmFsRmllbGRDb3VudCkgewotICAgICAgICBXcmFwcGVyVHlwZUlu
Zm8qIHR5cGVJbmZvID0gc3RhdGljX2Nhc3Q8V3JhcHBlclR5cGVJbmZvKj4ob2JqZWN0LT5HZXRQ
b2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyVHlwZUluZGV4KSk7CisgICAgICAg
IFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBzdGF0aWNfY2FzdDxXcmFwcGVyVHlwZUluZm8q
PihvYmplY3QtPkdldEFsaWduZWRQb2ludGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVy
VHlwZUluZGV4KSk7CiAgICAgICAgIGlmICh0eXBlSW5mbyA9PSBucE9iamVjdFR5cGVJbmZvKCkp
IHsKIAogICAgICAgICAgICAgTlBPYmplY3QqIHJldHVyblZhbHVlID0gdjhPYmplY3RUb05QT2Jq
ZWN0KG9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOENv
bGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Q29sbGVjdGlvbi5oCmlu
ZGV4IGZjODBhNWE3ZTE0YTVmMmI3ZDQxYTcwY2Q3NmRiYTZlYTExZWEwODUuLmY3MzlmNTBiYzYy
YWZhYjg2NmQ3YmYyZmY1MWUxM2M0ZmUzZDIwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4Q29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4Q29sbGVjdGlvbi5oCkBAIC01MCw3ICs1MCw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0VjhPYmplY3QoVCogaW1wbGVtZW50YXRpb24s
IHY4CiAKIHRlbXBsYXRlPGNsYXNzIENvbGxlY3Rpb24+IHN0YXRpYyBDb2xsZWN0aW9uKiB0b05h
dGl2ZUNvbGxlY3Rpb24odjg6OkxvY2FsPHY4OjpPYmplY3Q+IG9iamVjdCkKIHsKLSAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxDb2xsZWN0aW9uKj4ob2JqZWN0LT5HZXRQb2ludGVyRnJvbUlu
dGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpKTsKKyAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxDb2xsZWN0aW9uKj4ob2JqZWN0LT5HZXRBbGlnbmVkUG9pbnRlckZyb21JbnRl
cm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4KSk7CiB9CiAKIHRlbXBsYXRlPGNsYXNz
IFQ+IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0VjhPYmplY3QoUGFzc1JlZlB0cjxU
PiBpbXBsZW1lbnRhdGlvbiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQs
IHY4OjpJc29sYXRlKiBpc29sYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdpbmRvd1NoZWxsLmNwcAppbmRleCAwMmIzNDdkYzI3YjdlNmFiOTAzMzJiYTJjZDdkYWU5
NjYzNjQ1OWZlLi45NGVlZThlNTRiODUwZmY5ZjM3YzZiNjlhMWRiYmZjYmFjNzIxZjQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcApAQCAt
MTcxLDEyICsxNzEsMTIgQEAgc3RhdGljIHZvaWQgY2hlY2tEb2N1bWVudFdyYXBwZXIodjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyLCBEb2N1bWVudCogZG9jdW0KIAogc3RhdGljIHZvaWQg
c2V0SXNvbGF0ZWRXb3JsZEZpZWxkKFY4RE9NV2luZG93U2hlbGwqIHNoZWxsLCB2ODo6TG9jYWw8
djg6OkNvbnRleHQ+IGNvbnRleHQpCiB7Ci0gICAgdG9Jbm5lckdsb2JhbE9iamVjdChjb250ZXh0
KS0+U2V0UG9pbnRlckluSW50ZXJuYWxGaWVsZChWOERPTVdpbmRvdzo6ZW50ZXJlZElzb2xhdGVk
V29ybGRJbmRleCwgc2hlbGwpOworICAgIHRvSW5uZXJHbG9iYWxPYmplY3QoY29udGV4dCktPlNl
dEFsaWduZWRQb2ludGVySW5JbnRlcm5hbEZpZWxkKFY4RE9NV2luZG93OjplbnRlcmVkSXNvbGF0
ZWRXb3JsZEluZGV4LCBzaGVsbCk7CiB9CiAKIFY4RE9NV2luZG93U2hlbGwqIFY4RE9NV2luZG93
U2hlbGw6OmVudGVyZWRJc29sYXRlZFdvcmxkQ29udGV4dCgpCiB7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFY4RE9NV2luZG93U2hlbGwqPih0b0lubmVyR2xvYmFsT2JqZWN0KHY4OjpDb250ZXh0
OjpHZXRFbnRlcmVkKCkpLT5HZXRQb2ludGVyRnJvbUludGVybmFsRmllbGQoVjhET01XaW5kb3c6
OmVudGVyZWRJc29sYXRlZFdvcmxkSW5kZXgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VjhE
T01XaW5kb3dTaGVsbCo+KHRvSW5uZXJHbG9iYWxPYmplY3Qodjg6OkNvbnRleHQ6OkdldEVudGVy
ZWQoKSktPkdldEFsaWduZWRQb2ludGVyRnJvbUludGVybmFsRmllbGQoVjhET01XaW5kb3c6OmVu
dGVyZWRJc29sYXRlZFdvcmxkSW5kZXgpKTsKIH0KIAogc3RhdGljIHZvaWQgc2V0SW5qZWN0ZWRT
Y3JpcHRDb250ZXh0RGVidWdJZCh2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB0YXJnZXRDb250ZXh0
LCBpbnQgZGVidWdJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
Y3BwCmluZGV4IGFhYzk1ZGJlZTJhM2MyMDViZTFjMDMxNTI0MDkyZDljMWYzNWJiNDYuLmUxMDk5
NzcwNzY1MjM3ODIxODk0ZWE3MWE2ZmY4M2E1N2ZkNGUzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wgVjhE
T01XcmFwcGVyOjppc1dyYXBwZXJPZlR5cGUodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlLCBX
cmFwcGVyVHlwZUluZm8qCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSBvYmpl
Y3QtPkdldEludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpOwogICAgIEFTU0VS
VF9VTlVTRUQod3JhcHBlciwgd3JhcHBlci0+SXNOdW1iZXIoKSB8fCB3cmFwcGVyLT5Jc0V4dGVy
bmFsKCkpOwogCi0gICAgV3JhcHBlclR5cGVJbmZvKiB0eXBlSW5mbyA9IHN0YXRpY19jYXN0PFdy
YXBwZXJUeXBlSW5mbyo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRlcm5hbEZpZWxkKHY4RE9N
V3JhcHBlclR5cGVJbmRleCkpOworICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBzdGF0
aWNfY2FzdDxXcmFwcGVyVHlwZUluZm8qPihvYmplY3QtPkdldEFsaWduZWRQb2ludGVyRnJvbUlu
dGVybmFsRmllbGQodjhET01XcmFwcGVyVHlwZUluZGV4KSk7CiAgICAgcmV0dXJuIHR5cGVJbmZv
ID09IHR5cGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgK
aW5kZXggYWI2YzJjZDQ4NWI3Njg5ZGUyYzk5M2MxNzc4YTY2MTUyOWNkZjJlNC4uODI0YzIzOWVm
Zjc1YWM1ZGQ4MWRjMDNiYTJkNjVhMTU3MGM1ZjVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmgKQEAgLTY5LDE2ICs2OSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldERPTVdyYXBwZXIodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYmplY3QsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdm9pZCogY3B0cikKICAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKG9iamVjdC0+SW50ZXJuYWxGaWVsZENvdW50KCkgPj0gMik7
Ci0gICAgICAgICAgICBvYmplY3QtPlNldFBvaW50ZXJJbkludGVybmFsRmllbGQodjhET01XcmFw
cGVyT2JqZWN0SW5kZXgsIGNwdHIpOwotICAgICAgICAgICAgb2JqZWN0LT5TZXRQb2ludGVySW5J
bnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlclR5cGVJbmRleCwgdHlwZSk7CisgICAgICAgICAgICBv
YmplY3QtPlNldEFsaWduZWRQb2ludGVySW5JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVj
dEluZGV4LCBjcHRyKTsKKyAgICAgICAgICAgIG9iamVjdC0+U2V0QWxpZ25lZFBvaW50ZXJJbklu
dGVybmFsRmllbGQodjhET01XcmFwcGVyVHlwZUluZGV4LCB0eXBlKTsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyB2b2lkIGNsZWFyRE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IG9iamVjdCwgV3JhcHBlclR5cGVJbmZvKiB0eXBlKQogICAgICAgICB7CiAgICAgICAgICAgICBB
U1NFUlQob2JqZWN0LT5JbnRlcm5hbEZpZWxkQ291bnQoKSA+PSAyKTsKICAgICAgICAgICAgIEFT
U0VSVCh0eXBlKTsKLSAgICAgICAgICAgIG9iamVjdC0+U2V0UG9pbnRlckluSW50ZXJuYWxGaWVs
ZCh2OERPTVdyYXBwZXJUeXBlSW5kZXgsIHR5cGUpOwotICAgICAgICAgICAgb2JqZWN0LT5TZXRQ
b2ludGVySW5JbnRlcm5hbEZpZWxkKHY4RE9NV3JhcHBlck9iamVjdEluZGV4LCAwKTsKKyAgICAg
ICAgICAgIG9iamVjdC0+U2V0QWxpZ25lZFBvaW50ZXJJbkludGVybmFsRmllbGQodjhET01XcmFw
cGVyVHlwZUluZGV4LCB0eXBlKTsKKyAgICAgICAgICAgIG9iamVjdC0+U2V0QWxpZ25lZFBvaW50
ZXJJbkludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgsIDApOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gbG9va3VwRE9NV3JhcHBl
cih2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBmdW5jdGlvblRlbXBsYXRlLCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
V3JhcHBlclR5cGVJbmZvLmgKaW5kZXggMGNiNGI5NTliOGI5NmM1NWJhNzVkN2ZmOGU3NjdhNjMy
NDkxMjcwOS4uZWJlYzJkZTAyODMwYmE5N2M3N2MxZmQwYmUxNzFiNzkwMDgxYjBjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmgKQEAgLTEyMiwxMyAr
MTIyLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBpbmxpbmUgdm9pZCogdG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QpCiAgICAgewogICAgICAgICBBU1NFUlQob2Jq
ZWN0LT5JbnRlcm5hbEZpZWxkQ291bnQoKSA+PSB2OERPTVdyYXBwZXJPYmplY3RJbmRleCk7Ci0g
ICAgICAgIHJldHVybiBvYmplY3QtPkdldFBvaW50ZXJGcm9tSW50ZXJuYWxGaWVsZCh2OERPTVdy
YXBwZXJPYmplY3RJbmRleCk7CisgICAgICAgIHJldHVybiBvYmplY3QtPkdldEFsaWduZWRQb2lu
dGVyRnJvbUludGVybmFsRmllbGQodjhET01XcmFwcGVyT2JqZWN0SW5kZXgpOwogICAgIH0KIAog
ICAgIGlubGluZSBXcmFwcGVyVHlwZUluZm8qIHRvV3JhcHBlclR5cGVJbmZvKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gb2JqZWN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKG9iamVjdC0+SW50ZXJu
YWxGaWVsZENvdW50KCkgPj0gdjhET01XcmFwcGVyVHlwZUluZGV4KTsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFdyYXBwZXJUeXBlSW5mbyo+KG9iamVjdC0+R2V0UG9pbnRlckZyb21JbnRl
cm5hbEZpZWxkKHY4RE9NV3JhcHBlclR5cGVJbmRleCkpOworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8V3JhcHBlclR5cGVJbmZvKj4ob2JqZWN0LT5HZXRBbGlnbmVkUG9pbnRlckZyb21JbnRl
cm5hbEZpZWxkKHY4RE9NV3JhcHBlclR5cGVJbmRleCkpOwogICAgIH0KIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>