<?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>56934</bug_id>
          
          <creation_ts>2011-03-23 10:05:55 -0700</creation_ts>
          <short_desc>run-bindings-tests reference files are out of sync with CodeGenerator*.pm</short_desc>
          <delta_ts>2011-03-23 11:27:05 -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>0</everconfirmed>
          <reporter name="Tyler Close">tjclose</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>372225</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Close">tjclose</who>
    <bug_when>2011-03-23 10:05:55 -0700</bug_when>
    <thetext>run-bindings-tests reference files are out of sync with CodeGenerator*.pm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372227</commentid>
    <comment_count>1</comment_count>
      <attachid>86638</attachid>
    <who name="Tyler Close">tjclose</who>
    <bug_when>2011-03-23 10:06:50 -0700</bug_when>
    <thetext>Created attachment 86638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372229</commentid>
    <comment_count>2</comment_count>
    <who name="Tyler Close">tjclose</who>
    <bug_when>2011-03-23 10:07:37 -0700</bug_when>
    <thetext>*** Bug 56933 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372240</commentid>
    <comment_count>3</comment_count>
      <attachid>86638</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-03-23 10:22:15 -0700</bug_when>
    <thetext>Comment on attachment 86638
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

Just delete this line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372243</commentid>
    <comment_count>4</comment_count>
      <attachid>86641</attachid>
    <who name="Tyler Close">tjclose</who>
    <bug_when>2011-03-23 10:30:23 -0700</bug_when>
    <thetext>Created attachment 86641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372278</commentid>
    <comment_count>5</comment_count>
      <attachid>86641</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-23 11:27:00 -0700</bug_when>
    <thetext>Comment on attachment 86641
Patch

Clearing flags on attachment: 86641

Committed r81789: &lt;http://trac.webkit.org/changeset/81789&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372279</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-23 11:27:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86638</attachid>
            <date>2011-03-23 10:06:50 -0700</date>
            <delta_ts>2011-03-23 10:30:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56934-20110323100649.patch</filename>
            <type>text/plain</type>
            <size>26489</size>
            <attacher name="Tyler Close">tjclose</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNzgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDMtMjMgIFR5bGVyIENs
b3NlICA8dGpjbG9zZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgcnVuLWJpbmRpbmdzLXRlc3RzIHJlZmVyZW5jZSBmaWxlcyBh
cmUgb3V0IG9mIHN5bmMgd2l0aCBDb2RlR2VuZXJhdG9yKi5wbQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MzQKKworICAgICAgICBObyBuZXcgdGVz
dHMuIChPT1BTISkKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3I6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6Y3JlYXRlUHJvdG90eXBlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2U6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6Y3JlYXRlUHJvdG90eXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iakNvbnN0cnVjdG9yOjpKU1Rlc3RPYmpDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OmNyZWF0ZVByb3RvdHlwZSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0T2JqUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpjcmVhdGVQcm90b3R5cGUpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q2FsbGJhY2su
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0SW50ZXJmYWNlOjp3cmFwU2xvdyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T2JqOjp3cmFwU2xvdyk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OndyYXBTbG93KToKKwogMjAxMS0wMy0yMSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9k
aXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0
c2t5LgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAJKHJldmlzaW9uIDgx
Nzc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MCwxMiArMjUwLDYgQEAgd2Vi
a2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9leGNlcHRpbwogICAgIH0KIH0KIAotCi0vKiBU
T0RPOiBldmVudCBmdW5jdGlvbiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2FkZF9ldmVudF9saXN0ZW5l
ciAqLwotCi0KLS8qIFRPRE86IGV2ZW50IGZ1bmN0aW9uIHdlYmtpdF9kb21fdGVzdF9vYmpfcmVt
b3ZlX2V2ZW50X2xpc3RlbmVyICovCi0KIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9k
eW5hbWljX2ZyYW1lKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5oCShyZXZpc2lvbiA4MTc3NikKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAkod29ya2luZyBj
b3B5KQpAQCAtODIsMTIgKzgyLDYgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vcHRpb25zX29iamVj
dChXZWJLaQogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRo
X2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBHRXJyb3IgKiplcnJvcik7CiAKLQot
LyogVE9ETzogZXZlbnQgZnVuY3Rpb24gd2Via2l0X2RvbV90ZXN0X29ial9hZGRfZXZlbnRfbGlz
dGVuZXIgKi8KLQotCi0vKiBUT0RPOiBldmVudCBmdW5jdGlvbiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3JlbW92ZV9ldmVudF9saXN0ZW5lciAqLwotCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21f
dGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjksOSArNjksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVy
dHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZz
X2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1w
bGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwpAQCAtODIsNyArODIsNyBAQCBwcm90ZWN0ZWQ6CiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciIs
ICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JUYWJsZSwgMCB9OwogCiBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwg
Z2xvYmFsT2JqZWN0KQorICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwg
Z2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRh
KCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVzdEludGVyZmFjZVByb3Rv
dHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwpA
QCAtMTQ0LDcgKzE0NCw3IEBAIEpTVGVzdEludGVyZmFjZTo6SlNUZXN0SW50ZXJmYWNlKE5vbk51
bGwKIAogSlNPYmplY3QqIEpTVGVzdEludGVyZmFjZTo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKLSAgICByZXR1cm4gbmV3
IChleGVjKSBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3Rv
dHlwZSgpKSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
KGdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBl
KCkpKTsKIH0KIAogYm9vbCBKU1Rlc3RJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAkocmV2aXNpb24gODE3NzYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwpAQCAtNjMsOSArNjMsOSBAQCBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGUgOiBwdWJsaWMgCiBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNl
bGYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KICAgICBKU1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxs
UGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH0KIHByb3RlY3RlZDoKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHJldmlz
aW9uIDgxNzc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw5ICs3
MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBK
U0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogcHJv
dGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpJbXBsZW1lbnRzSGFzSW5zdGFuY2Ug
fCBET01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CkBAIC04MSw3ICs4MSw3IEBA
IHByb3RlY3RlZDoKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3IiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgJkpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJDb25zdHJ1Y3RvclRhYmxlLCAwIH07CiAKIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAg
ICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkp
LCBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9i
amVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjpKU1Rlc3RNZWRpCiAKIEpTT2JqZWN0KiBKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewotICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5v
YmplY3RQcm90b3R5cGUoKSkpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAogYm9vbCBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAkocmV2aXNp
b24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw5ICszOSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNf
aW5mbzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6
OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAgLTYzLDkg
KzYzLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87
CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAg
ICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBzdHJ1
Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUpIHsgfQogcHJvdGVjdGVkOgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDgxNzc2KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OSw5ICsxNDksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZv
IHNfaW5mbzsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlND
OjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQsICZzX2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVj
dHVyZUZsYWdzOwpAQCAtMTYwLDcgKzE2MCw3IEBAIHByb3RlY3RlZDoKIGNvbnN0IENsYXNzSW5m
byBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iakNvbnN0cnVjdG9yIiwg
JkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxl
LCAwIH07CiAKIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpKU1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01D
b25zdHJ1Y3Rvck9iamVjdChKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGds
b2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCisgICAgOiBET01D
b25zdHJ1Y3Rvck9iamVjdChKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGds
b2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgp
KSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAg
cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3Rv
dHlwZSwgSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnRE
ZWxldGUgfCBSZWFkT25seSk7CkBAIC0yNjUsNyArMjY1LDcgQEAgSlNUZXN0T2JqOjpKU1Rlc3RP
YmooTm9uTnVsbFBhc3NSZWZQdHI8UwogCiBKU09iamVjdCogSlNUZXN0T2JqOjpjcmVhdGVQcm90
b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewot
ICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTVGVzdE9ialByb3RvdHlwZShnbG9iYWxPYmplY3QsIEpT
VGVzdE9ialByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTsKKyAgICByZXR1cm4gbmV3IChleGVjKSBKU1Rlc3RPYmpQcm90b3R5cGUoZ2xv
YmFsT2JqZWN0LCBKU1Rlc3RPYmpQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwogfQog
CiBib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5oCShyZXZpc2lvbiA4MTc3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJv
dG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAg
ICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAgLTcyLDkgKzcyLDkgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlND
OjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5m
byk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAgICAgSlNUZXN0T2JqUHJvdG90
eXBlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8
SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9CiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAko
cmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzEsOSArNzEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJv
cGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNj
cmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50
c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpAQCAt
ODIsNyArODIsNyBAQCBwcm90ZWN0ZWQ6CiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvciIsICZET01Db25zdHJ1Y3Rvck9iamVj
dDo6c19pbmZvLCAmSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0
b3JUYWJsZSwgMCB9OwogCiBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDog
RE9NQ29uc3RydWN0b3JPYmplY3QoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlw
ZSgpKSwgZ2xvYmFsT2JqZWN0KQorICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUo
KSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAg
IHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90
b3R5cGUsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6c2Vs
ZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwpAQCAtMTMwLDcg
KzEzMCw3IEBAIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6SlMKIAogSlNP
YmplY3QqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRlUHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKLSAg
ICByZXR1cm4gbmV3IChleGVjKSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQ
cm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlw
ZSgpKSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUHJvdG90eXBlKGdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAogYm9vbCBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaAkocmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9
CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwpAQCAtNjMsOSArNjMsOSBAQCBjbGFzcyBKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhCiBwdWJsaWM6CiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIHNlbGYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KICAgICBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4g
c3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlKSB7IH0KIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdENhbGxiYWNrLmNwcAkocmV2
aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0Q2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5j
bHVkZSAiVjhDbGFzczEuaCIKICNpbmNsdWRlICJWOENsYXNzMi5oIgogI2luY2x1ZGUgIlY4Q3Vz
dG9tVm9pZENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhET01TdHJpbmcuaCIKICNpbmNsdWRlICJW
OFByb3h5LmgiCiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gODE3NzYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsOCBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IFY4VGVzdEludGVyZmFjZTo6CiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW1wbC0+
cmVmKCk7Ci0gICAgZ2V0RE9NT2JqZWN0TWFwKCkuc2V0KGltcGwsIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+OjpOZXcod3JhcHBlcikpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+
IHdyYXBwZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIp
OworICAgIGdldERPTU9iamVjdE1hcCgpLnNldChpbXBsLCB3cmFwcGVySGFuZGxlKTsKICAgICBy
ZXR1cm4gd3JhcHBlcjsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcAkocmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDggQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRl
c3RNZWRpYVF1ZXJ5TAogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAogICAgIGltcGwtPnJlZigp
OwotICAgIGdldERPTU9iamVjdE1hcCgpLnNldChpbXBsLCB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Pjo6TmV3KHdyYXBwZXIpKTsKKyAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFw
cGVySGFuZGxlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyh3cmFwcGVyKTsKKyAg
ICBnZXRET01PYmplY3RNYXAoKS5zZXQoaW1wbCwgd3JhcHBlckhhbmRsZSk7CiAgICAgcmV0dXJu
IHdyYXBwZXI7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCShyZXZpc2lvbiA4MTc3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzgwLDcgKzEzODAsOCBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVz
dE9iajo6d3JhcFNsCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCiAgICAgaW1wbC0+cmVmKCk7
Ci0gICAgZ2V0RE9NT2JqZWN0TWFwKCkuc2V0KGltcGwsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+OjpOZXcod3JhcHBlcikpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBw
ZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIpOworICAg
IGdldERPTU9iamVjdE1hcCgpLnNldChpbXBsLCB3cmFwcGVySGFuZGxlKTsKICAgICByZXR1cm4g
d3JhcHBlcjsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHJldmlzaW9uIDgxNzc2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1XcmFwcGVyVHlwZUluZm8gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlOjppbmZvID0geyBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OkdldFRlbXBsYXRlLCBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRl
cmVmT2JqZWN0LCAwIH07CitXcmFwcGVyVHlwZUluZm8gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlOjppbmZvID0geyBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OkdldFRlbXBsYXRlLCBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRl
cmVmT2JqZWN0LCAwLCAwIH07CiAKIG5hbWVzcGFjZSBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlSW50ZXJuYWwgewogCkBAIC04Myw3ICs4Myw4IEBAIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gVjhUZXN0U2VyaWFsaXplZFMKIAogICAgIGltcGwtPnJlZigpOwogICAgIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemVBbmRTZXRQcm9wZXJ0eSh3cmFwcGVyLCAidmFsdWUi
LCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpEb250RGVsZXRlIHwgdjg6
OlJlYWRPbmx5KSwgaW1wbC0+dmFsdWUoKSk7Ci0gICAgZ2V0RE9NT2JqZWN0TWFwKCkuc2V0KGlt
cGwsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcod3JhcHBlcikpOworICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0Pjo6TmV3KHdyYXBwZXIpOworICAgIGdldERPTU9iamVjdE1hcCgpLnNldChpbXBsLCB3
cmFwcGVySGFuZGxlKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86641</attachid>
            <date>2011-03-23 10:30:23 -0700</date>
            <delta_ts>2011-03-23 11:27:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56934-20110323103022.patch</filename>
            <type>text/plain</type>
            <size>26456</size>
            <attacher name="Tyler Close">tjclose</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNzgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDMtMjMgIFR5bGVyIENs
b3NlICA8dGpjbG9zZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgcnVuLWJpbmRpbmdzLXRlc3RzIHJlZmVyZW5jZSBmaWxlcyBh
cmUgb3V0IG9mIHN5bmMgd2l0aCBDb2RlR2VuZXJhdG9yKi5wbQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MzQKKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OkpTVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6Y3Jl
YXRlUHJvdG90eXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2U6OmNyZWF0ZVN0
cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRlUHJvdG90eXBlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iakNv
bnN0cnVjdG9yOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RPYmo6OmNyZWF0ZVByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
b25zdHJ1Y3Rvcjo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlOjpjcmVhdGVQcm90b3R5cGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0Q2FsbGJhY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0SW50
ZXJmYWNlOjp3cmFwU2xvdyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6d3JhcFNsb3cpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T2Jq
Ojp3cmFwU2xvdyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXBTbG93KToKKwogMjAxMS0wMy0y
MSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHAJKHJldmlzaW9uIDgxNzc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI1MCwxMiArMjUwLDYgQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9leGNl
cHRpbwogICAgIH0KIH0KIAotCi0vKiBUT0RPOiBldmVudCBmdW5jdGlvbiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2FkZF9ldmVudF9saXN0ZW5lciAqLwotCi0KLS8qIFRPRE86IGV2ZW50IGZ1bmN0aW9u
IHdlYmtpdF9kb21fdGVzdF9vYmpfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyICovCi0KIHZvaWQKIHdl
YmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCShyZXZpc2lvbiA4MTc3
NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouaAkod29ya2luZyBjb3B5KQpAQCAtODIsMTIgKzgyLDYgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9vcHRpb25zX29iamVjdChXZWJLaQogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBHRXJyb3IgKiplcnJvcik7CiAKLQotLyogVE9ETzogZXZlbnQgZnVuY3Rpb24gd2Via2l0X2Rv
bV90ZXN0X29ial9hZGRfZXZlbnRfbGlzdGVuZXIgKi8KLQotCi0vKiBUT0RPOiBldmVudCBmdW5j
dGlvbiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3JlbW92ZV9ldmVudF9saXN0ZW5lciAqLwotCiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9keW5hbWljX2ZyYW1lKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNp
b24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksOSArNjksOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0
b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpAQCAtODIsNyArODIsNyBAQCBwcm90ZWN0ZWQ6CiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvciIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAm
SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgMCB9OwogCiBKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcjo6SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JPYmpl
Y3QoSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmpl
Y3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQorICAgIDogRE9NQ29uc3RydWN0
b3JPYmplY3QoSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSks
IGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5
cGUsIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIEpTVGVzdEludGVyZmFj
ZTo6SlNUZXN0SW50ZXJmYWNlKE5vbk51bGwKIAogSlNPYmplY3QqIEpTVGVzdEludGVyZmFjZTo6
Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIHsKLSAgICByZXR1cm4gbmV3IChleGVjKSBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUo
Z2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykg
SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKGdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKIH0KIAogYm9vbCBKU1Rlc3RJbnRlcmZhY2U6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAko
cmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAm
c19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwpAQCAtNjMsOSArNjMsOSBA
QCBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUgOiBwdWJsaWMgCiBwdWJsaWM6CiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIHNlbGYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwogICAgIH0KICAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0
dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0
dXJlKSB7IH0KIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDgxNzc2KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQ
cm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19p
bmZvOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlw
ZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CiAgICAgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlND
OjpJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBET01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJl
RmxhZ3M7CkBAIC04MSw3ICs4MSw3IEBAIHByb3RlY3RlZDoKIGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNf
aW5mbywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvclRhYmxlLCAwIH07
CiAKIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6SlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9i
amVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1
Y3Rvck9iamVjdChKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5vYmpl
Y3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6
OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKQEAgLTE0
MCw3ICsxNDAsNyBAQCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpKU1Rlc3RNZWRpCiAK
IEpTT2JqZWN0KiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGVQcm90b3R5cGUo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewotICAgIHJl
dHVybiBuZXcgKGV4ZWMpIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoZ2xv
YmFsT2JqZWN0LCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOworICAgIHJldHVybiBu
ZXcgKGV4ZWMpIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoZ2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCkpKTsKIH0KIAogYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaAkocmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw5ICszOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
Qzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5
cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQsICZzX2luZm8pOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKQEAgLTYzLDkgKzYzLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yJik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6
U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKICAgICB9CiAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclBy
b3RvdHlwZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5vbk51bGxQYXNzUmVm
UHRyPEpTQzo6U3RydWN0dXJlPiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpIHsgfQogcHJvdGVjdGVkOgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAJKHJldmlzaW9uIDgxNzc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw5ICsxNDksOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxK
U0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIHByb3RlY3Rl
ZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9N
Q29uc3RydWN0b3JPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpAQCAtMTYwLDcgKzE2MCw3IEBAIHBy
b3RlY3RlZDoKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdE9iakNvbnN0cnVjdG9yIiwgJkRPTUNvbnN0cnVjdG9yT2JqZWN0OjpzX2luZm8sICZK
U1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCAwIH07CiAKIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpK
U1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1Rlc3RPYmpDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBn
bG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1Rlc3RPYmpDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxP
YmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNUZXN0T2JqUHJvdG90eXBlOjpzZWxmKGV4
ZWMsIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CkBAIC0yNjUsNyArMjY1
LDcgQEAgSlNUZXN0T2JqOjpKU1Rlc3RPYmooTm9uTnVsbFBhc3NSZWZQdHI8UwogCiBKU09iamVj
dCogSlNUZXN0T2JqOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogewotICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTVGVzdE9ialBy
b3RvdHlwZShnbG9iYWxPYmplY3QsIEpTVGVzdE9ialByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKKyAgICByZXR1cm4gbmV3IChleGVj
KSBKU1Rlc3RPYmpQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmpQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LT5v
YmplY3RQcm90b3R5cGUoKSkpOwogfQogCiBib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCShyZXZpc2lvbiA4MTc3NikKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsOSArNDAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJ
bmZvIHNfaW5mbzsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOworICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBn
ZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAg
LTcyLDkgKzcyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90
b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFu
b255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAg
ICB9CiAgICAgSlNUZXN0T2JqUHJvdG90eXBlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgTm9uTnVsbFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVyZSkgOiBKU0M6
OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9CiBw
cm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkocmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsOSArNzEsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6
Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsK
KyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9u
eW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzOwpAQCAtODIsNyArODIsNyBAQCBwcm90ZWN0ZWQ6CiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
ciIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgMCB9OwogCiBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQorICAgIDogRE9NQ29u
c3RydWN0b3JPYmplY3QoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkpOwpAQCAtMTMwLDcgKzEzMCw3IEBAIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZTo6SlMKIAogSlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZTo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIHsKLSAgICByZXR1cm4gbmV3IChleGVjKSBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7CisgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKGdsb2JhbE9iamVjdCwg
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTsKIH0KIAogYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAkocmV2aXNpb24gODE3
NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkgKzQx
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8g
c19pbmZvOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
Qzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpT
dHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CisgICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50LCAmc19pbmZvKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwpAQCAtNjMs
OSArNjMsOSBAQCBjbGFzcyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhCiBwdWJs
aWM6CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlbGYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bzsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1
Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlND
OjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKKyAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQs
ICZzX2luZm8pOwogICAgIH0KICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VQcm90b3R5cGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOb25OdWxsUGFz
c1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH0KIHByb3RlY3RlZDoKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdENhbGxiYWNrLmNwcAkocmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiVjhDbGFzczEuaCIKICNpbmNsdWRlICJWOENs
YXNzMi5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tVm9pZENhbGxiYWNrLmgiCi0jaW5jbHVkZSAiVjhE
T01TdHJpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNw
cAkocmV2aXNpb24gODE3NzYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsOCBA
QCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEludGVyZmFjZTo6CiAgICAgICAgIHJldHVy
biB3cmFwcGVyOwogCiAgICAgaW1wbC0+cmVmKCk7Ci0gICAgZ2V0RE9NT2JqZWN0TWFwKCkuc2V0
KGltcGwsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcod3JhcHBlcikpOworICAgIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2
ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIpOworICAgIGdldERPTU9iamVjdE1hcCgpLnNldChpbXBs
LCB3cmFwcGVySGFuZGxlKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAkocmV2aXNpb24gODE3NzYp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDggQEAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RNZWRpYVF1ZXJ5TAogICAgICAgICByZXR1cm4gd3Jh
cHBlcjsKIAogICAgIGltcGwtPnJlZigpOwotICAgIGdldERPTU9iamVjdE1hcCgpLnNldChpbXBs
LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIpKTsKKyAgICB2ODo6UGVy
c2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVySGFuZGxlID0gdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD46Ok5ldyh3cmFwcGVyKTsKKyAgICBnZXRET01PYmplY3RNYXAoKS5zZXQoaW1wbCwgd3Jh
cHBlckhhbmRsZSk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCShy
ZXZpc2lvbiA4MTc3NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgwLDcgKzEzODAsOCBAQCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE9iajo6d3JhcFNsCiAgICAgICAgIHJldHVybiB3cmFw
cGVyOwogCiAgICAgaW1wbC0+cmVmKCk7Ci0gICAgZ2V0RE9NT2JqZWN0TWFwKCkuc2V0KGltcGws
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcod3JhcHBlcikpOworICAgIHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0Pjo6TmV3KHdyYXBwZXIpOworICAgIGdldERPTU9iamVjdE1hcCgpLnNldChpbXBsLCB3cmFw
cGVySGFuZGxlKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHJldmlz
aW9uIDgxNzc2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XcmFwcGVyVHlwZUluZm8g
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjppbmZvID0geyBWOFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkdldFRlbXBsYXRlLCBWOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRlcmVmT2JqZWN0LCAwIH07CitXcmFwcGVyVHlwZUluZm8g
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjppbmZvID0geyBWOFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OkdldFRlbXBsYXRlLCBWOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OmRlcmVmT2JqZWN0LCAwLCAwIH07CiAKIG5hbWVzcGFjZSBU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlSW50ZXJuYWwgewogCkBAIC04Myw3ICs4
Myw4IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0U2VyaWFsaXplZFMKIAogICAgIGlt
cGwtPnJlZigpOwogICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6ZGVzZXJpYWxpemVBbmRTZXRQ
cm9wZXJ0eSh3cmFwcGVyLCAidmFsdWUiLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1
dGU+KHY4OjpEb250RGVsZXRlIHwgdjg6OlJlYWRPbmx5KSwgaW1wbC0+dmFsdWUoKSk7Ci0gICAg
Z2V0RE9NT2JqZWN0TWFwKCkuc2V0KGltcGwsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpO
ZXcod3JhcHBlcikpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5k
bGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KHdyYXBwZXIpOworICAgIGdldERP
TU9iamVjdE1hcCgpLnNldChpbXBsLCB3cmFwcGVySGFuZGxlKTsKICAgICByZXR1cm4gd3JhcHBl
cjsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>