<?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>59170</bug_id>
          
          <creation_ts>2011-04-21 20:18:40 -0700</creation_ts>
          <short_desc>Remove remaining uses of deprecated version of toJS</short_desc>
          <delta_ts>2011-04-22 11:24:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390570</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-04-21 20:18:40 -0700</bug_when>
    <thetext>Remove remaining uses of deprecated version of toJS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390574</commentid>
    <comment_count>1</comment_count>
      <attachid>90661</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-04-21 20:25:11 -0700</bug_when>
    <thetext>Created attachment 90661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390583</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-04-21 20:38:34 -0700</bug_when>
    <thetext>Attachment 90661 did not build on qt:
Build output: http://queues.webkit.org/results/8496228</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390674</commentid>
    <comment_count>3</comment_count>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-04-22 01:43:04 -0700</bug_when>
    <thetext>Attachment 90661 did not build on gtk:
Build output: http://queues.webkit.org/results/8494369</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390875</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-04-22 10:37:28 -0700</bug_when>
    <thetext>Committed r84641: &lt;http://trac.webkit.org/changeset/84641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390881</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-22 10:45:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/84641 might have broken Qt Linux Release minimal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390917</commentid>
    <comment_count>6</comment_count>
      <attachid>90661</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-22 11:21:38 -0700</bug_when>
    <thetext>Comment on attachment 90661
Patch

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

&gt; LayoutTests/ChangeLog:10
&gt; +        failures are pure JS objects (Array, Boolean, String, Number, Function).

I think these aren&apos;t failures, and the test shoudl be updated.  Ask abarth.  But I think I was wrong when I wrote this test.  I think pure JS types always use the dynamic global object per the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390921</commentid>
    <comment_count>7</comment_count>
      <attachid>90661</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-04-22 11:24:10 -0700</bug_when>
    <thetext>Comment on attachment 90661
Patch

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

&gt;&gt; LayoutTests/ChangeLog:10
&gt;&gt; +        * fast/dom/prototype-inheritance-2-expected.txt:
&gt;&gt; +        Add new passing results since we now use the correct global object. The remaining
&gt;&gt; +        failures are pure JS objects (Array, Boolean, String, Number, Function).
&gt; 
&gt; I think these aren&apos;t failures, and the test shoudl be updated.  Ask abarth.  But I think I was wrong when I wrote this test.  I think pure JS types always use the dynamic global object per the spec.

They always use the lexical global object, but, yeah, the test isn&apos;t correct for these primitive types.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90661</attachid>
            <date>2011-04-21 20:25:11 -0700</date>
            <delta_ts>2011-04-22 11:24:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59170-20110421202510.patch</filename>
            <type>text/plain</type>
            <size>26291</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NTkzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDQtMjEgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgcmVtYWluaW5nIHVzZXMgb2YgZGVwcmVjYXRlZCB2ZXJzaW9u
IG9mIHRvSlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU5MTcwCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VTdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbFN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVQYXR0ZXJuKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0NvbnNvbGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNDb25zb2xlOjpwcm9maWxlcyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21TUUxT
dGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU1FMU3RhdGVt
ZW50RXJyb3JDYWxsYmFjazo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTU1pbWVUeXBlQXJyYXk6Om5hbWVHZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUGx1Z2luQXJyYXlDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01QbHVnaW5BcnJheTo6bmFtZUdldHRlcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01QbHVnaW5DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01QbHVnaW46Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVkSXRlbUdldHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwOgorICAgICAgICBQcm9w
YWdhdGUgc3RvcmVkIGdsb2JhbCBvYmplY3QgZG93biBhY2Nlc3MgY2hhaW4uCisKKyAgICAgICAg
KFdlYkNvcmU6OkluamVjdGVkU2NyaXB0SG9zdDo6bm9kZUFzU2NyaXB0VmFsdWUpOgorICAgICAg
ICBSZXBsYWNlIHVzZSBvZiBkZXByZWNhdGVkIHRvSlMgb3ZlcmxvYWQgd2l0aCBleHBsaWNpdCBj
YWxsIHRvIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUuCisKKyAgICAgICAgKFdl
YkNvcmU6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0OjpjdXJyZW50Q2FsbEZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0ZWROb2RlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU05hbWVkTm9kZU1hcDo6bmFtZUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNO
b2RlTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxsTm9kZUxpc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNOb2RlTGlzdDo6bmFtZUdldHRlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNTY3JpcHRQcm9maWxlTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1NjcmlwdFByb2ZpbGVOb2RlOjpjaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
dHlsZVNoZWV0TGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N0eWxlU2hlZXRM
aXN0OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1U
b0ZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkpTWFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3Jt
VG9Eb2N1bWVudCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIFByb3BhZ2F0ZSBzdG9yZWQgZ2xvYmFsIG9iamVjdCBkb3duIGFjY2VzcyBj
aGFpbi4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnF1ZXJ5Q2hhbmdlZCk6CisgICAg
ICAgIFJlcGxhY2UgdXNlIG9mIGRlcHJlY2F0ZWQgdG9KUyBvdmVybG9hZCB3aXRoIGV4cGxpY2l0
IGNhbGwgdG8gZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZSwKKyAgICAgICAgd2Ug
d2lsbCB3YW50IHJlZmFjdG9yIHRoaXMgdG8gbWF0Y2ggb3RoZXIgY2FsbGJhY2tzIHNvIHdlIGNh
biByZW1vdmUgdGhpcy4KKwogMjAxMS0wNC0yMSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFraW4uCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCShyZXZpc2lvbiA4NDU5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDIsMTIgKzQyLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMs
IENhbnZhc1N0eWxlKiBzdHlsZSkKK3N0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYW52YXNTdHlsZSogc3R5bGUpCiB7
CiAgICAgaWYgKHN0eWxlLT5jYW52YXNHcmFkaWVudCgpKQotICAgICAgICByZXR1cm4gdG9KUyhl
eGVjLCBzdHlsZS0+Y2FudmFzR3JhZGllbnQoKSk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3R5bGUtPmNhbnZhc0dyYWRpZW50KCkpOwogICAgIGlmIChzdHlsZS0+
Y2FudmFzUGF0dGVybigpKQotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBzdHlsZS0+Y2FudmFz
UGF0dGVybigpKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHls
ZS0+Y2FudmFzUGF0dGVybigpKTsKICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgc3R5bGUtPmNv
bG9yKCkpOwogfQogCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENhbnZhc1N0
eWxlPiB0b0hUTUxDYW4KIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9r
ZVN0eWxlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKICAgICBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihp
bXBsKCkpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbnRleHQtPnN0cm9rZVN0eWxlKCkpOyAg
ICAgICAgCisgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGNvbnRleHQtPnN0
cm9rZVN0eWxlKCkpOyAgICAgICAgCiB9CiAKIHZvaWQgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnNldFN0cm9rZVN0eWxlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKQEAgLTgy
LDcgKzgyLDcgQEAgdm9pZCBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3RybwogSlNW
YWx1ZSBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbFN0eWxlKEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKIHsKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNvbnRleHQgPSBzdGF0
aWNfY2FzdDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihpbXBsKCkpOwotICAgIHJldHVybiB0
b0pTKGV4ZWMsIGNvbnRleHQtPmZpbGxTdHlsZSgpKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QoKSwgY29udGV4dC0+ZmlsbFN0eWxlKCkpOwogfQogCiB2b2lkIEpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQpAQCAtMzU1LDcgKzM1NSw3IEBAIEpTVmFsdWUgSlNDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmNyZWEKIAogICAgIGlmIChvLT5pbmhlcml0cygmSlNIVE1MSW1hZ2VFbGVtZW50Ojpz
X2luZm8pKSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgIEpTVmFsdWUgcGF0
dGVybiA9IHRvSlMoZXhlYywKKyAgICAgICAgSlNWYWx1ZSBwYXR0ZXJuID0gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QoKSwgCiAgICAgICAgICAgICBjb250ZXh0LT5jcmVhdGVQYXR0ZXJuKHN0YXRp
Y19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihzdGF0aWNfY2FzdDxKU0hUTUxFbGVtZW50Kj4obykt
PmltcGwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdHJp
bmdXaXRoTnVsbENoZWNrKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpLmdldCgpKTsKICAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBKU1Zh
bHVlIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhCiAgICAgfQogICAgIGlmIChvLT5p
bmhlcml0cygmSlNIVE1MQ2FudmFzRWxlbWVudDo6c19pbmZvKSkgewogICAgICAgICBFeGNlcHRp
b25Db2RlIGVjOwotICAgICAgICBKU1ZhbHVlIHBhdHRlcm4gPSB0b0pTKGV4ZWMsCisgICAgICAg
IEpTVmFsdWUgcGF0dGVybiA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIAogICAgICAgICAg
ICAgY29udGV4dC0+Y3JlYXRlUGF0dGVybihzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+
KHN0YXRpY19jYXN0PEpTSFRNTEVsZW1lbnQqPihvKS0+aW1wbCgpKSwKICAgICAgICAgICAgICAg
ICB2YWx1ZVRvU3RyaW5nV2l0aE51bGxDaGVjayhleGVjLCBleGVjLT5hcmd1bWVudCgxKSksIGVj
KS5nZXQoKSk7CiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbnNvbGVDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29uc29sZUN1c3RvbS5jcHAJKHJldmlzaW9u
IDg0NTkwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb25zb2xlQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBKU1ZhbHVlIEpTQ29uc29sZTo6cHJv
ZmlsZXMoRXhlY1N0YXRlKiBlCiAKICAgICBQcm9maWxlc0FycmF5Ojpjb25zdF9pdGVyYXRvciBl
bmQgPSBwcm9maWxlcy5lbmQoKTsKICAgICBmb3IgKFByb2ZpbGVzQXJyYXk6OmNvbnN0X2l0ZXJh
dG9yIGl0ZXIgPSBwcm9maWxlcy5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQotICAgICAg
ICBsaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGl0ZXItPmdldCgpKSk7CisgICAgICAgIGxpc3QuYXBw
ZW5kKHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGl0ZXItPmdldCgpKSk7CiAKICAgICByZXR1
cm4gY29uc3RydWN0QXJyYXkoZXhlYywgbGlzdCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tU1FMU3RhdGVtZW50RXJy
b3JDYWxsYmFjay5jcHAJKHJldmlzaW9uIDg0NTkwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTEsOCArNTEsOCBAQCBib29sIEpTU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjazo6aGFu
ZGxlCiAKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLT5nbG9i
YWxFeGVjKCk7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVu
ZCh0b0pTKGV4ZWMsIHRyYW5zYWN0aW9uKSk7Ci0gICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBl
cnJvcikpOworICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgbV9kYXRhLT5nbG9iYWxPYmplY3Qo
KSwgdHJhbnNhY3Rpb24pKTsKKyAgICBhcmdzLmFwcGVuZCh0b0pTKGV4ZWMsIG1fZGF0YS0+Z2xv
YmFsT2JqZWN0KCksIGVycm9yKSk7CiAKICAgICBib29sIHJhaXNlZEV4Y2VwdGlvbiA9IGZhbHNl
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0gbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCAmcmFp
c2VkRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oCShyZXZpc2lvbiA4NDU5MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsMjMgKzI1MSw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAvLyBOYU4gaWYgdGhlIHZhbHVlIGNhbid0IGJlIGNvbnZlcnRlZCB0
byBhIGRhdGUuCiAgICAgZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlKTsKIAotICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgYSBzdG9wLWdhcCB1bnRpbCBhbGwg
dG9KUyBjYWxscyBjYW4gYmUgY29udmVydGVkIHRvIHBhc3MgYSBnbG9iYWxPYmplY3QKLSAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIFQqIHB0cikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIHB0cik7Ci0gICAgfQot
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxUPiBwdHIpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMp
LCBwdHIuZ2V0KCkpOwotICAgIH0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLSAgICBpbmxp
bmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFQq
IHB0cikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0b0pTTmV3bHlDcmVhdGVkKGV4ZWMsIGRlcHJl
Y2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlYyksIHB0cik7Ci0gICAgfQotCiAgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVm
UHRyPFQ+IHB0cikKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TU1pbWVUeXBlQXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9uIDg0NTkwKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01NaW1lVHlwZUFycmF5Q3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBib29sIEpTRE9NTWltZVR5cGVBcnJh
eTo6Y2FuR2V0SXRlbXNGb3JOCiBKU1ZhbHVlIEpTRE9NTWltZVR5cGVBcnJheTo6bmFtZUdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSkKIHsKICAgICBKU0RPTU1pbWVUeXBlQXJyYXkqIHRoaXNPYmogPSBzdGF0aWNf
Y2FzdDxKU0RPTU1pbWVUeXBlQXJyYXkqPihhc09iamVjdChzbG90QmFzZSkpOwotICAgIHJldHVy
biB0b0pTKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+bmFtZWRJdGVtKGlkZW50aWZpZXJUb0F0b21p
Y1N0cmluZyhwcm9wZXJ0eU5hbWUpKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+
Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmotPmltcGwoKS0+bmFtZWRJdGVtKGlkZW50aWZpZXJUb0F0
b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUGx1Z2luQXJyYXlDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUGx1Z2lu
QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA4NDU5MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NUGx1Z2luQXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3
ICszNiw3IEBAIGJvb2wgSlNET01QbHVnaW5BcnJheTo6Y2FuR2V0SXRlbXNGb3JOYW0KIEpTVmFs
dWUgSlNET01QbHVnaW5BcnJheTo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
c2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU0RPTVBs
dWdpbkFycmF5KiB0aGlzT2JqID0gc3RhdGljX2Nhc3Q8SlNET01QbHVnaW5BcnJheSo+KGFzT2Jq
ZWN0KHNsb3RCYXNlKSk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iai0+aW1wbCgpLT5u
YW1lZEl0ZW0oaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKTsKKyAgICBy
ZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhpc09iai0+aW1wbCgp
LT5uYW1lZEl0ZW0oaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01QbHVnaW5DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NUGx1Z2luQ3VzdG9tLmNwcAkocmV2aXNpb24gODQ1OTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDcgQEAgYm9vbCBKU0RPTVBsdWdpbjo6Y2FuR2V0SXRlbXNGb3JOYW1l
KEV4ZQogSlNWYWx1ZSBKU0RPTVBsdWdpbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBK
U0RPTVBsdWdpbiogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTRE9NUGx1Z2luKj4oYXNPYmplY3Qo
c2xvdEJhc2UpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5pbXBsKCktPm5hbWVk
SXRlbShpZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpOworICAgIHJldHVy
biB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCktPm5h
bWVkSXRlbShpZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiA4NDU5MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI5LDggKzEyOSw4IEBAIHN0YXRpYyBKU1ZhbHVlIG5hbWVkSXRlbUdldHRlcihFeGVjU3Rh
dGUKIAogICAgIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4gY29sbGVjdGlvbiA9IGRvY3VtZW50LT53
aW5kb3dOYW1lZEl0ZW1zKGlkZW50aWZpZXJUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICBp
ZiAoY29sbGVjdGlvbi0+bGVuZ3RoKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Y29sbGVjdGlvbi0+Zmlyc3RJdGVtKCkpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIGNvbGxlY3Rp
b24uZ2V0KCkpOworICAgICAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLCBjb2xsZWN0aW9u
LT5maXJzdEl0ZW0oKSk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgdGhpc09iaiwgY29sbGVjdGlv
bi5nZXQoKSk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQpAQCAtNDkwLDcgKzQ5MCw3IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OmV2ZW50KEV4
ZWNTdGF0ZSogZXgKICAgICBFdmVudCogZXZlbnQgPSBjdXJyZW50RXZlbnQoKTsKICAgICBpZiAo
IWV2ZW50KQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICByZXR1cm4gdG9KUyhl
eGVjLCBldmVudCk7CisgICAgcmV0dXJuIHRvSlMoZXhlYywgY29uc3RfY2FzdDxKU0RPTVdpbmRv
dyo+KHRoaXMpLCBldmVudCk7CiB9CiAKICNpZiBFTkFCTEUoRVZFTlRTT1VSQ0UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24g
ODQ1OTApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTgxLDcgKzE4MSw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmEKIAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKICAgICBpZiAoV2Vi
U29ja2V0KiB3ZWJTb2NrZXQgPSB0YXJnZXQtPnRvV2ViU29ja2V0KCkpCi0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIHdlYlNvY2tldCk7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgd2ViU29ja2V0KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEJMT0IpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlw
dEhvc3RDdXN0b20uY3BwCShyZXZpc2lvbiA4NDU5MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzEsNyArNzEsNyBAQCBOb2RlKiBJbmplY3RlZFNjcmlwdEhvc3Q6OnNjcmlwdFZhbHVlQXNOCiBT
Y3JpcHRWYWx1ZSBJbmplY3RlZFNjcmlwdEhvc3Q6Om5vZGVBc1NjcmlwdFZhbHVlKFNjcmlwdFN0
YXRlKiBzdGF0ZSwgTm9kZSogbm9kZSkKIHsKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwotICAgIHJldHVybiBTY3JpcHRWYWx1ZShzdGF0ZS0+Z2xvYmFsRGF0YSgpLCB0
b0pTKHN0YXRlLCBub2RlKSk7CisgICAgcmV0dXJuIFNjcmlwdFZhbHVlKHN0YXRlLT5nbG9iYWxE
YXRhKCksIHRvSlMoc3RhdGUsIGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoc3Rh
dGUpLCBub2RlKSk7CiB9CiAKIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmN1cnJlbnRD
YWxsRnJhbWUoRXhlY1N0YXRlKiBleGVjKQpAQCAtODIsNyArODIsNyBAQCBKU1ZhbHVlIEpTSW5q
ZWN0ZWRTY3JpcHRIb3N0OjpjdXJyZW50Q2FsCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKLSAgICByZXR1cm4g
dG9KUyhleGVjLCBjYWxsRnJhbWUpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCgpLCBjYWxsRnJhbWUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC05OSw3ICs5OSw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNj
cmlwdEhvc3Q6Omluc3BlY3RlZE4KICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAg
ICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIHJldHVybiB0b0pTKGV4
ZWMsIG5vZGUpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBub2RlKTsK
IH0KIAogSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6aW50ZXJuYWxDb25zdHJ1Y3Rvck5h
bWUoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
YW1lZE5vZGVNYXBDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAkocmV2aXNpb24gODQ1OTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc3LDcgKzc3LDcgQEAgYm9vbCBKU05hbWVkTm9kZU1hcDo6Y2FuR2V0SXRlbXNG
b3JOYW1lKAogSlNWYWx1ZSBKU05hbWVkTm9kZU1hcDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsK
ICAgICBKU05hbWVkTm9kZU1hcCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTmFtZWROb2RlTWFw
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5p
bXBsKCktPmdldE5hbWVkSXRlbShpZGVudGlmaWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSkpOwor
ICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5p
bXBsKCktPmdldE5hbWVkSXRlbShpZGVudGlmaWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSkpOwog
fQogCiB2b2lkIEpTTmFtZWROb2RlTWFwOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1
c3RvbS5jcHAJKHJldmlzaW9uIDg0NTkwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlTGlzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDggQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbAogICAgIHVuc2lnbmVkIGluZGV4
ID0gSWRlbnRpZmllcjo6dG9VSW50MzIoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyks
IG9rKTsKICAgICBpZiAoIW9rKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBzdGF0aWNf
Y2FzdDxKU05vZGVMaXN0Kj4oZXhlYy0+Y2FsbGVlKCkpLT5pbXBsKCktPml0ZW0oaW5kZXgpKSk7
CisgICAgSlNOb2RlTGlzdCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTTm9kZUxpc3QqPihleGVj
LT5jYWxsZWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIHRoaXNP
YmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCktPml0ZW0oaW5kZXgpKSk7CiB9CiAK
IENhbGxUeXBlIEpTTm9kZUxpc3Q6OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKQEAg
LTk4LDcgKzk5LDcgQEAgYm9vbCBKU05vZGVMaXN0OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlYwog
SlNWYWx1ZSBKU05vZGVMaXN0OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBz
bG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIEpTTm9kZUxp
c3QqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU05vZGVMaXN0Kj4oYXNPYmplY3Qoc2xvdEJhc2Up
KTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5pbXBsKCktPml0ZW1XaXRoTmFtZShp
ZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpOworICAgIHJldHVybiB0b0pT
KGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqLT5pbXBsKCktPml0ZW1XaXRo
TmFtZShpZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Nj
cmlwdFByb2ZpbGVOb2RlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1NjcmlwdFByb2ZpbGVOb2RlQ3VzdG9tLmNwcAkocmV2aXNpb24gODQ1OTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NjcmlwdFByb2ZpbGVOb2RlQ3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBKU1ZhbHVlIEpTU2NyaXB0UHJv
ZmlsZU5vZGU6OmNoaWxkcmVuKEV4CiAKICAgICBQcm9maWxlTm9kZXNMaXN0Ojpjb25zdF9pdGVy
YXRvciBlbmQgPSBjaGlsZHJlbi5lbmQoKTsKICAgICBmb3IgKFByb2ZpbGVOb2Rlc0xpc3Q6OmNv
bnN0X2l0ZXJhdG9yIGl0ZXIgPSBjaGlsZHJlbi5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVy
KQotICAgICAgICBsaXN0LmFwcGVuZCh0b0pTKGV4ZWMsIGl0ZXItPmdldCgpKSk7CisgICAgICAg
IGxpc3QuYXBwZW5kKHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGl0ZXItPmdldCgpKSk7CiAK
ICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywgbGlzdCk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNw
cAkocmV2aXNpb24gODQ1OTApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxl
U2hlZXRMaXN0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBKU1Zh
bHVlIEpTU3R5bGVTaGVldExpc3Q6Om5hbWVHZXR0ZXIoRXhlCiAgICAgSlNTdHlsZVNoZWV0TGlz
dCogdGhpc09iaiA9IHN0YXRpY19jYXN0PEpTU3R5bGVTaGVldExpc3QqPihhc09iamVjdChzbG90
QmFzZSkpOwogICAgIEhUTUxTdHlsZUVsZW1lbnQqIGVsZW1lbnQgPSB0aGlzT2JqLT5pbXBsKCkt
PmdldE5hbWVkSXRlbShpZGVudGlmaWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgQVNT
RVJUKGVsZW1lbnQpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIGVsZW1lbnQtPnNoZWV0KCkpOwor
ICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBlbGVtZW50LT5z
aGVldCgpKTsKIH0KIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0eWxlU2hlZXRMaXN0KiBpbXBsKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JD
dXN0b20uY3BwCShyZXZpc2lvbiA4NDU5MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcg
QEAgSlNWYWx1ZSBKU1hTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRnJhZwogICAgIGlmIChub2Rl
VmFsLmluaGVyaXRzKCZKU05vZGU6OnNfaW5mbykgJiYgZG9jVmFsLmluaGVyaXRzKCZKU0RvY3Vt
ZW50OjpzX2luZm8pKSB7CiAgICAgICAgIFdlYkNvcmU6Ok5vZGUqIG5vZGUgPSBzdGF0aWNfY2Fz
dDxKU05vZGUqPihhc09iamVjdChub2RlVmFsKSktPmltcGwoKTsKICAgICAgICAgRG9jdW1lbnQq
IGRvYyA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc3RhdGljX2Nhc3Q8SlNEb2N1bWVudCo+KGFz
T2JqZWN0KGRvY1ZhbCkpLT5pbXBsKCkpOwotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBpbXBs
KCktPnRyYW5zZm9ybVRvRnJhZ21lbnQobm9kZSwgZG9jKS5nZXQoKSk7CisgICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBpbXBsKCktPnRyYW5zZm9ybVRvRnJhZ21lbnQo
bm9kZSwgZG9jKS5nZXQoKSk7CiAgICAgfQogICAgIC8vIFRocm93IGV4Y2VwdGlvbj8KICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTc4LDcgKzc4LDcgQEAgSlNWYWx1ZSBKU1hTTFRQcm9j
ZXNzb3I6OnRyYW5zZm9ybVRvRG9jdQogICAgICAgICBKU05vZGUqIG5vZGUgPSBzdGF0aWNfY2Fz
dDxKU05vZGUqPihhc09iamVjdChub2RlVmFsKSk7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudD4g
cmVzdWx0RG9jdW1lbnQgPSBpbXBsKCktPnRyYW5zZm9ybVRvRG9jdW1lbnQobm9kZS0+aW1wbCgp
KTsKICAgICAgICAgaWYgKHJlc3VsdERvY3VtZW50KQotICAgICAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgcmVzdWx0RG9jdW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0KCksIHJlc3VsdERvY3VtZW50LmdldCgpKTsKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgfQogICAgIC8vIFRocm93IGV4Y2VwdGlvbj8KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CShyZXZpc2lvbiA4NDU5MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNyArMTQzLDcgQEAgc3ViIEdl
bmVyYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lckNhbGwKICAgICAgICAgJHdyYXBwZXJPYmplY3Qg
PSAiYXNPYmplY3QoY29ycmVzcG9uZGluZ0VsZW1lbnRXcmFwcGVyKSI7CiAKICAgICAgICAgcHVz
aChAR2VuZXJhdGVFdmVudExpc3RlbmVySW1wbCwgPDxFTkQpOwotICAgIEpTVmFsdWUgY29ycmVz
cG9uZGluZ0VsZW1lbnRXcmFwcGVyID0gdG9KUyhleGVjLCBpbXAtPmNvcnJlc3BvbmRpbmdFbGVt
ZW50KCkpOworICAgIEpTVmFsdWUgY29ycmVzcG9uZGluZ0VsZW1lbnRXcmFwcGVyID0gdG9KUyhl
eGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wLT5jb3JyZXNwb25kaW5nRWxlbWVu
dCgpKTsKICAgICBpZiAoY29ycmVzcG9uZGluZ0VsZW1lbnRXcmFwcGVyLmlzT2JqZWN0KCkpCiBF
TkQKIApAQCAtMTcwLDcgKzE3MCw3IEBAIHN1YiBHZW5lcmF0ZUV2ZW50TGlzdGVuZXJDYWxsCiAg
ICAgICAgICR3cmFwcGVyT2JqZWN0ID0gImFzT2JqZWN0KGNvcnJlc3BvbmRpbmdFbGVtZW50V3Jh
cHBlcikiOwogCiAgICAgICAgIHB1c2goQEdlbmVyYXRlRXZlbnRMaXN0ZW5lckltcGwsIDw8RU5E
KTsKLSAgICBKU1ZhbHVlIGNvcnJlc3BvbmRpbmdFbGVtZW50V3JhcHBlciA9IHRvSlMoZXhlYywg
aW1wLT5jb3JyZXNwb25kaW5nRWxlbWVudCgpKTsKKyAgICBKU1ZhbHVlIGNvcnJlc3BvbmRpbmdF
bGVtZW50V3JhcHBlciA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGlt
cC0+Y29ycmVzcG9uZGluZ0VsZW1lbnQoKSk7CiAgICAgaWYgKCFjb3JyZXNwb25kaW5nRWxlbWVu
dFdyYXBwZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIEVORApAQCAtMTY4NSwxMiArMTY4NSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHR5cGUgZXEgIkV2
ZW50TGlzdGVuZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siSlNFdmVudExpc3RlbmVyLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9
KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4odGhpc09iamVjdCk7XG4i
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkd2luZG93RXZlbnRMaXN0ZW5lciA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IldpbmRvd0V2ZW50
TGlzdGVuZXIifTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHdpbmRvd0V2ZW50
TGlzdGVuZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8JHtjbGFz
c05hbWV9Kj4odGhpc09iamVjdCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+
KHN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1wbCgpKTtcbiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xh
c3NOYW1lKiBpbXAgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCgkaW50ZXJmYWNl
TmFtZSBlcSAiRE9NV2luZG93Iikgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0
IikpIGFuZCAkbmFtZSBlcSAib25lcnJvciIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9ID0gMTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1w
bFNldHRlckZ1bmN0aW9uTmFtZShjcmVhdGVKU0Vycm9ySGFuZGxlcihleGVjLCB2YWx1ZSwgdGhp
c09iamVjdCkpO1xuIik7CkBAIC0yMjgyLDcgKzIyODIsNyBAQCBzdWIgR2VuZXJhdGVDYWxsYmFj
a0ltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbS0+dHlwZSBlcSAiRE9N
U3RyaW5nIikgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBh
cmdzLmFwcGVuZChqc1N0cmluZyhleGVjLCAke3BhcmFtTmFtZX0pKTtcbiIpOwogICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGFyZ3MuYXBwZW5kKHRvSlMoZXhlYywgJHtwYXJhbU5hbWV9KSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXJncy5hcHBlbmQodG9KUyhleGVj
LCBtX2RhdGEtPmdsb2JhbE9iamVjdCgpLCAke3BhcmFtTmFtZX0pKTtcbiIpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAkocmV2aXNpb24gODQ1OTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDcgKzM1LDcgQEAgdm9pZCBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpxdWVyeUNoYW5nZQogewog
ICAgIFNjcmlwdENhbGxiYWNrIGNhbGxiYWNrKHN0YXRlLCBtX3ZhbHVlKTsKICNpZiBVU0UoSlND
KQotICAgIGNhbGxiYWNrLmFwcGVuZEFyZ3VtZW50KHRvSlMoc3RhdGUsIHF1ZXJ5KSk7CisgICAg
Y2FsbGJhY2suYXBwZW5kQXJndW1lbnQodG9KUyhzdGF0ZSwgZGVwcmVjYXRlZEdsb2JhbE9iamVj
dEZvclByb3RvdHlwZShzdGF0ZSksIHF1ZXJ5KSk7CiAjZWxzZQogICAgIHY4OjpIYW5kbGVTY29w
ZSBoYW5kbGVTY29wZTsKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gc3Rh
dGUtPmNvbnRleHQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NTkzKQorKysg
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDQtMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgcmVtYWluaW5nIHVz
ZXMgb2YgZGVwcmVjYXRlZCB2ZXJzaW9uIG9mIHRvSlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTcwCisKKyAgICAgICAgKiBET00vV2ViRE9NT3Bl
cmF0aW9ucy5tbToKKyAgICAgICAgKC1bRE9NRWxlbWVudCBfc2hhZG93Um9vdDpdKToKKyAgICAg
ICAgKC1bRE9NRWxlbWVudCBfZW5zdXJlU2hhZG93Um9vdDpdKToKKyAgICAgICAgUmVwbGFjZSB1
c2Ugb2YgZGVwcmVjYXRlZCB0b0pTIG92ZXJsb2FkIHdpdGggZXhwbGljaXQgY2FsbCB0byBkZXBy
ZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlLgorCiAyMDExLTA0LTIxICBNYWNpZWogU3Rh
Y2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jl
bi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCShyZXZp
c2lvbiA4NDU5MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03OCwxNCArNzgsMTQgQEAgLSAoSlNWYWx1ZVJlZilfc2hhZG93
Um9vdDooSlNDb250ZXh0UmVmKQogewogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25z
T25seSk7CiAgICAgRXhlY1N0YXRlKiBleGVjU3RhdGUgPSB0b0pTKGNvbnRleHQpOwotICAgIHJl
dHVybiB0b1JlZihleGVjU3RhdGUsIHRvSlMoZXhlY1N0YXRlLCBjb3JlKHNlbGYpLT5zaGFkb3dS
b290KCkpKTsKKyAgICByZXR1cm4gdG9SZWYoZXhlY1N0YXRlLCB0b0pTKGV4ZWNTdGF0ZSwgZGVw
cmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjU3RhdGUpLCBjb3JlKHNlbGYpLT5z
aGFkb3dSb290KCkpKTsKIH0KIAogLSAoSlNWYWx1ZVJlZilfZW5zdXJlU2hhZG93Um9vdDooSlND
b250ZXh0UmVmKWNvbnRleHQKIHsKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09u
bHkpOwogICAgIEV4ZWNTdGF0ZSogZXhlY1N0YXRlID0gdG9KUyhjb250ZXh0KTsKLSAgICByZXR1
cm4gdG9SZWYoZXhlY1N0YXRlLCB0b0pTKGV4ZWNTdGF0ZSwgY29yZShzZWxmKS0+ZW5zdXJlU2hh
ZG93Um9vdCgpKSk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWNTdGF0ZSwgdG9KUyhleGVjU3RhdGUs
IGRlcHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUoZXhlY1N0YXRlKSwgY29yZShzZWxm
KS0+ZW5zdXJlU2hhZG93Um9vdCgpKSk7CiB9CiAKIC0gKHZvaWQpX3JlbW92ZVNoYWRvd1Jvb3QK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDg0NTkzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMjEgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgcmVtYWluaW5nIHVzZXMgb2YgZGVwcmVjYXRlZCB2ZXJzaW9uIG9mIHRvSlMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTcwCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQ6
CisgICAgICAgIEFkZCBuZXcgcGFzc2luZyByZXN1bHRzIHNpbmNlIHdlIG5vdyB1c2UgdGhlIGNv
cnJlY3QgZ2xvYmFsIG9iamVjdC4gVGhlIHJlbWFpbmluZworICAgICAgICBmYWlsdXJlcyBhcmUg
cHVyZSBKUyBvYmplY3RzIChBcnJheSwgQm9vbGVhbiwgU3RyaW5nLCBOdW1iZXIsIEZ1bmN0aW9u
KS4KKwogMjAxMS0wNC0yMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCBleHBlY3RhdGlvbnMgY2hhbmdlLiBUcmlhZ2UgZmFpbHVyZSBm
b3IKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUt
aW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDg0NTkwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw5ICs0Nyw5IEBAIFBBU1MgQ1NTVmFsdWVMaXN0IGZyb20gaW5uZXIuZ2V0
Q29tcHV0ZWQKIFBBU1MgQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3IgZnJvbSBpbm5lci5nZXRDb21w
dXRlZFN0eWxlKGlubmVyLmRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5Q1NTVmFsdWUoYmFja2dy
b3VuZC1wb3NpdGlvbikuY29uc3RydWN0b3IKIFBBU1MgQ1NTVmFsdWVMaXN0UHJvdG90eXBlIGZy
b20gaW5uZXIuZ2V0Q29tcHV0ZWRTdHlsZShpbm5lci5kb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pLl9fcHJvdG9fXwog
UEFTUyBDU1NWYWx1ZVByb3RvdHlwZSBmcm9tIGlubmVyLmdldENvbXB1dGVkU3R5bGUoaW5uZXIu
ZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgtd2Via2l0LWxpbmUtYm94LWNvbnRh
aW4pLl9fcHJvdG9fXwotRkFJTCBDYW52YXNQYXR0ZXJuIGZyb20gaW5uZXIuZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdLmdldENvbnRleHQoIjJkIikuY3JlYXRlUGF0
dGVybihpbm5lci5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0sICIiKQot
RkFJTCBDYW52YXNQYXR0ZXJuQ29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiY2FudmFzIilbMF0uZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVQYXR0ZXJu
KGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXSwgIiIpLmNvbnN0
cnVjdG9yCi1GQUlMIENhbnZhc1BhdHRlcm5Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiY2FudmFzIilbMF0uZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVQ
YXR0ZXJuKGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXSwgIiIp
Ll9fcHJvdG9fXworUEFTUyBDYW52YXNQYXR0ZXJuIGZyb20gaW5uZXIuZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImNhbnZhcyIpWzBdLmdldENvbnRleHQoIjJkIikuY3JlYXRlUGF0dGVy
bihpbm5lci5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0sICIiKQorUEFT
UyBDYW52YXNQYXR0ZXJuQ29uc3RydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiY2FudmFzIilbMF0uZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVQYXR0ZXJuKGlu
bmVyLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXSwgIiIpLmNvbnN0cnVj
dG9yCitQQVNTIENhbnZhc1BhdHRlcm5Qcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiY2FudmFzIilbMF0uZ2V0Q29udGV4dCgiMmQiKS5jcmVhdGVQYXR0
ZXJuKGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXSwgIiIpLl9f
cHJvdG9fXwogUEFTUyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgZnJvbSBpbm5lci5kb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiY2FudmFzIilbMF0uZ2V0Q29udGV4dCgiMmQiKQogUEFT
UyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDb25zdHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjYW52YXMiKVswXS5nZXRDb250ZXh0KCIyZCIpLmNvbnN0
cnVjdG9yCiBQQVNTIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFByb3RvdHlwZSBmcm9tIGlubmVy
LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjYW52YXMiKVswXS5nZXRDb250ZXh0KCIy
ZCIpLl9fcHJvdG9fXwo=
</data>
<flag name="review"
          id="83419"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>