<?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>43684</bug_id>
          
          <creation_ts>2010-08-07 16:07:27 -0700</creation_ts>
          <short_desc>Add additional loader client functions need to complete WebKitTestRunner</short_desc>
          <delta_ts>2010-08-07 16:26:31 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261801</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-07 16:07:27 -0700</bug_when>
    <thetext>We need a few more callbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261802</commentid>
    <comment_count>1</comment_count>
      <attachid>63834</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-07 16:09:11 -0700</bug_when>
    <thetext>Created attachment 63834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261803</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-07 16:10:39 -0700</bug_when>
    <thetext>Attachment 63834 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:80:  Extra space between WKBundlePageDidCancelClientRedirectForFrameCallback and didCancelClientRedirectForFrame  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:81:  Extra space between WKBundlePageWillPerformClientRedirectForFrameCallback and willPerformClientRedirectForFrame  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:82:  Extra space between WKBundlePageDidChangeLocationWithinPageForFrameCallback and didChangeLocationWithinPageForFrame  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:83:  Extra space between WKBundlePageDidFinishDocumentLoadForFrameCallback and didFinishDocumentLoadForFrame  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:84:  Extra space between WKBundlePageDidHandleOnloadEventsForFrameCallback and didHandleOnloadEventsForFrame  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:85:  Extra space between WKBundlePageDidDisplayInsecureContentForFrameCallback and didDisplayInsecureContentForFrame  [whitespace/declaration] [3]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h:86:  Extra space between WKBundlePageDidRunInsecureContentForFrameCallback and didRunInsecureContentForFrame  [whitespace/declaration] [3]
Total errors found: 7 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261807</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-07 16:26:31 -0700</bug_when>
    <thetext>Landed in r64927.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63834</attachid>
            <date>2010-08-07 16:09:11 -0700</date>
            <delta_ts>2010-08-07 16:24:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>40228</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDkyNikKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDgtMDcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYWRk
aXRpb25hbCBsb2FkZXIgY2xpZW50IGZ1bmN0aW9ucyBuZWVkIHRvIGNvbXBsZXRlIFdlYktpdFRl
c3RSdW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQzNjg0CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudDo6ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZERpc3BsYXlJbnNl
Y3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEhhbmRsZU9ubG9hZEV2ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENo
YW5nZUxvY2F0aW9uV2l0aGluUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29udGVudCk6
CisKIDIwMTAtMDgtMDcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
bm90aGVyIGZpeCBmb3IgdGhlIHdpbmRvd3MgYnVpbGQuCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gNjQ5MjYpCisrKyBXZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTQsNCArOTQsNDYgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQ6OmRpZAogICAgICAgICBtX2NsaWVudC5kaWRDbGVhcldpbmRvd09iamVjdEZv
ckZyYW1lKHRvUmVmKHBhZ2UpLCB0b1JlZihmcmFtZSksIGNvbnRleHQsIHdpbmRvdywgbV9jbGll
bnQuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1l
KiBmcmFtZSkKK3sKKyAgICBpZiAobV9jbGllbnQuZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZSkKKyAgICAgICAgbV9jbGllbnQuZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh0
b1JlZihwYWdlKSwgdG9SZWYoZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYkNvcmU6
OlN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKQoreworICAgIGlmIChtX2Ns
aWVudC53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUpCisgICAgICAgIG1fY2xpZW50
LndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh0b1JlZihwYWdlKSwgdG9SZWYoZnJh
bWUpLCB0b1VSTFJlZih1cmwuaW1wbCgpKSwgZGVsYXksIGRhdGUsIG1fY2xpZW50LmNsaWVudElu
Zm8pOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkQ2hhbmdl
TG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViRnJhbWUqIGZyYW1l
KQoreworICAgIGlmIChtX2NsaWVudC5kaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFt
ZSkKKyAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUo
dG9SZWYocGFnZSksIHRvUmVmKGZyYW1lKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKG1fY2xp
ZW50LmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKQorICAgICAgICBtX2NsaWVudC5kaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh0b1JlZihwYWdlKSwgdG9SZWYoZnJhbWUpLCBtX2Ns
aWVudC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQ6OmRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1l
KiBmcmFtZSkKK3sKKyAgICBpZiAobV9jbGllbnQuZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJh
bWUpCisgICAgICAgIG1fY2xpZW50LmRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKHRvUmVm
KHBhZ2UpLCB0b1JlZihmcmFtZSksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZv
ckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBpZiAobV9jbGll
bnQuZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKQorICAgICAgICBtX2NsaWVudC5k
aWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodG9SZWYocGFnZSksIHRvUmVmKGZyYW1l
KSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBX
ZWJGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKG1fY2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVu
dEZvckZyYW1lKQorICAgICAgICBtX2NsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh0b1JlZihwYWdlKSwgdG9SZWYoZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5oCShyZXZpc2lvbiA2NDkyNikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NTIsNiArNTIsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
V2ViUGFnZSosIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYsIFdlYkZyYW1lKik7CiAgICAgdm9pZCBk
aWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIEpTR2xvYmFs
Q29udGV4dFJlZiwgSlNPYmplY3RSZWYpOwogCisgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRp
cmVjdEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSopOworICAgIHZvaWQgd2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSosIGNvbnN0IFdlYkNvcmU6
OlN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKTsKKyAgICB2b2lkIGRpZENo
YW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKFdlYlBhZ2UqLCBXZWJGcmFtZSopOworICAg
IHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKik7
CisgICAgdm9pZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJh
bWUqKTsKKyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdl
KiwgV2ViRnJhbWUqKTsKKyAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdl
YlBhZ2UqLCBXZWJGcmFtZSopOworCiBwcml2YXRlOgogICAgIFdLQnVuZGxlUGFnZUxvYWRlckNs
aWVudCBtX2NsaWVudDsKIH07CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCShyZXZpc2lvbiA2NDkyNikKKysr
IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAko
d29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTQgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRGlkRmluaXNoTG9hZAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmFpbExvYWRX
aXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7IC8vIEZJWE1FOiBBZGQgV0tF
cnJvclJlZi4KIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZy
YW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VEaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lQ2FsbGJhY2spKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBKU0dsb2JhbENvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2luZG93LCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9y
RnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJh
bWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxh
eSwgZG91YmxlIGRhdGUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWVDYWxsYmFjayko
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmluaXNoRG9jdW1l
bnRMb2FkRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlRGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZURpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsg
Ly8gRklYTUU6IEFkZCBXS1NlY3VyaXR5T3JpZ2luUmVmLgorCiAKIHN0cnVjdCBXS0J1bmRsZVBh
Z2VMb2FkZXJDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTY5LDYgKzc3LDEz
IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgewogICAgIFdLQnVuZGxlUGFnZURp
ZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgZGlk
RmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTsKICAgICBXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lOwogICAgIFdLQnVuZGxlUGFnZURpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZTsK
KyAgICBXS0J1bmRsZVBhZ2VEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWU7CisgICAgV0tC
dW5kbGVQYWdlV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2sgICAgICAg
ICAgICAgICB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU7CisgICAgV0tCdW5kbGVQ
YWdlRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VE
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgIGRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZEhhbmRsZU9u
bG9hZEV2ZW50c0ZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgZGlkSGFuZGxlT25s
b2FkRXZlbnRzRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICBkaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50Rm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgV0tCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50OwogCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHJldmlzaW9uIDY0
OTI2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDcgKzE4NiwxMiBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvCiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3
ZWJQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGll
bnQuCisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRIYW5kbGVP
bmxvYWRFdmVudHNGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQoKQpAQCAtMjA0LDE3ICsyMDksMzIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRSZQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZENhbmNlbENsaWVudFJlZGlyZWN0KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIFdl
YlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCisgICAgd2Vi
UGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRDaGFuZ2VMb2NhdGlvbldpdGhp
blBhZ2VGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IEtVUkwmLCBk
b3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBLVVJMJiB1cmwsIGRv
dWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXdlYlBh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4K
KyAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLndpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lLCB1cmwuc3RyaW5nKCksIGludGVy
dmFsLCBmaXJlRGF0ZSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCisg
ICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRDaGFuZ2VMb2NhdGlv
bldpdGhpblBhZ2VGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkKQEAgLTMyNSw3
ICszNDUsMTIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYQogCiB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFt
ZS0+cGFnZSgpOworICAgIGlmICghd2ViUGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
Tm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgorICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9h
ZGVyQ2xpZW50KCkuZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUod2ViUGFnZSwgbV9mcmFt
ZSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9h
ZCgpCkBAIC02MzksMTIgKzY2NCwyMiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZENoCiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgV2ViUGFnZSogd2ViUGFn
ZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KKyAgICB3ZWJQYWdlLT5pbmplY3Rl
ZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh3
ZWJQYWdlLCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUnVu
SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQ
YWdlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQu
CisgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSdW5JbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lKTsKIH0KIAogUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNjQ5MjYpCisrKyBXZWJLaXRUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MCBAQAorMjAxMC0wOC0wNyAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIGxvYWRlciBjbGllbnQgZnVuY3Rpb25zIG5l
ZWQgdG8gY29tcGxldGUgV2ViS2l0VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2ODQKKworICAgICAgICBSZW1vdmUgdW5uZWNlc3Nh
cnkgYW5kIGphcnJpbmcgdW5kZXJzY29yZXMgYXMgd2VsbC4KKworICAgICAgICAqIE1pbmlCcm93
c2VyL21hYy9XZWJCdW5kbGUvV2ViQnVuZGxlTWFpbi5tOgorICAgICAgICAoZGlkQ2xlYXJXaW5k
b3dPYmplY3RGb3JGcmFtZSk6CisgICAgICAgIChkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6Cisg
ICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1l
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDb21taXRMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmFpbExvYWRXaXRo
RXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZENsZWFyV2luZG93Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9y
RnJhbWUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaERvY3Vt
ZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRI
YW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdEFsZXJ0
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNjcmlwdENv
bmZpcm0pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZhU2Ny
aXB0UHJvbXB0KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdp
bkVkaXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVk
aXRpbmcpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5v
ZGUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQp
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZERlbGV0ZVJhbmdlKToK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJh
bmdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRBcHBseVN0eWxl
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRCZWdpbkVkaXRpbmcpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEVuZEVkaXRpbmcpOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENoYW5nZSk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorCiAyMDEwLTA4
LTA3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4
LgpJbmRleDogV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dlYkJ1bmRsZS9XZWJCdW5kbGVN
YWluLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL1dlYkJ1bmRs
ZS9XZWJCdW5kbGVNYWluLm0JKHJldmlzaW9uIDY0ODk1KQorKysgV2ViS2l0VG9vbHMvTWluaUJy
b3dzZXIvbWFjL1dlYkJ1bmRsZS9XZWJCdW5kbGVNYWluLm0JKHdvcmtpbmcgY29weSkKQEAgLTM1
LDM3ICszNSw5IEBACiAKIHN0YXRpYyBXS0J1bmRsZVJlZiBnbG9iYWxCdW5kbGU7CiAKLS8vIFdL
QnVuZGxlUGFnZUNsaWVudAorLy8gV0tCdW5kbGVQYWdlQ2xpZW50IGZ1bmN0aW9ucwogCi12b2lk
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci19Ci0KLXZv
aWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pCi17Ci19Ci0KLXZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZv
ckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQotewotfQotCi12b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbykKLXsKLX0KLQotdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCi17Ci19Ci0KLXZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKLXsKLX0KLQotdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCi17Ci19Ci0KLXZvaWQgZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgSlNHbG9iYWxDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHdpbmRvdywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
K3ZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIHdpbmRvdywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXS1VSTFJlZiB3
a1VSTCA9IFdLQnVuZGxlRnJhbWVDb3B5VVJMKFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShwYWdl
KSk7CiAgICAgQ0ZVUkxSZWYgY2ZVUkwgPSBXS1VSTENvcHlDRlVSTCgwLCB3a1VSTCk7CkBAIC04
OCwxOCArNjAsMTAgQEAgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgVwog
ewogICAgIExPRyhAIldLQnVuZGxlQ2xpZW50IC0gZGlkQ3JlYXRlUGFnZVxuIik7CiAKLSAgICBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgY2xpZW50ID0gewotICAgICAgICAwLAotICAgICAgICAw
LAotICAgICAgICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lLAotICAgICAgICBkaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSwKLSAgICAgICAg
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lLAotICAgICAgICBkaWRDb21t
aXRMb2FkRm9yRnJhbWUsCi0gICAgICAgIGRpZEZpbmlzaExvYWRGb3JGcmFtZSwKLSAgICAgICAg
ZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSwKLSAgICAgICAgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUsCi0gICAgICAgIGRpZENsZWFyV2luZG93Rm9yRnJhbWUKLSAgICB9OworICAgIFdLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudCBjbGllbnQ7CisgICAgbWVtc2V0KCZjbGllbnQsIDAsIHNpemVv
ZihjbGllbnQpKTsKKyAgICBjbGllbnQuZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZSA9IGRp
ZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWU7CisKICAgICBXS0J1bmRsZVBhZ2VTZXRMb2FkZXJD
bGllbnQocGFnZSwgJmNsaWVudCk7CiB9CiAKSW5kZXg6IFdlYktpdFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5jcHAJKHJldmlzaW9uIDY0OTI2KQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OCw0MiArNzgsNDkgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBh
Z2UoVwogICAgIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudCBsb2FkZXJDbGllbnQgPSB7CiAgICAg
ICAgIDAsCiAgICAgICAgIHRoaXMsCi0gICAgICAgIF9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lLAotICAgICAgICBfZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUsCi0gICAgICAgIF9kaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9y
RnJhbWUsCi0gICAgICAgIF9kaWRDb21taXRMb2FkRm9yRnJhbWUsCi0gICAgICAgIF9kaWRGaW5p
c2hMb2FkRm9yRnJhbWUsCi0gICAgICAgIF9kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lLAot
ICAgICAgICBfZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUsCi0gICAgICAgIF9kaWRDbGVhcldpbmRv
d0ZvckZyYW1lCisgICAgICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUsCisgICAg
ICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lLAor
ICAgICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUsCisgICAgICAg
IGRpZENvbW1pdExvYWRGb3JGcmFtZSwKKyAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1lLAor
ICAgICAgICBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lLAorICAgICAgICBkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZSwKKyAgICAgICAgZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZSwKKyAgICAgICAg
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSwKKyAgICAgICAgd2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdEZvckZyYW1lLAorICAgICAgICBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VG
b3JGcmFtZSwKKyAgICAgICAgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUsCisgICAgICAg
IGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lLAorICAgICAgICBkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUsCisgICAgICAgIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1l
CiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRMb2FkZXJDbGllbnQobV9wYWdlLCAmbG9hZGVy
Q2xpZW50KTsKIAogICAgIFdLQnVuZGxlUGFnZVVJQ2xpZW50IHVpQ2xpZW50ID0gewogICAgICAg
ICAwLAogICAgICAgICB0aGlzLAotICAgICAgICBfd2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUsCi0g
ICAgICAgIF93aWxsU2V0U3RhdHVzYmFyVGV4dCwKLSAgICAgICAgX3dpbGxSdW5KYXZhU2NyaXB0
QWxlcnQsCi0gICAgICAgIF93aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0sCi0gICAgICAgIF93aWxs
UnVuSmF2YVNjcmlwdFByb21wdAorICAgICAgICB3aWxsQWRkTWVzc2FnZVRvQ29uc29sZSwKKyAg
ICAgICAgd2lsbFNldFN0YXR1c2JhclRleHQsCisgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0QWxl
cnQsCisgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybSwKKyAgICAgICAgd2lsbFJ1bkph
dmFTY3JpcHRQcm9tcHQKICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KG1fcGFn
ZSwgJnVpQ2xpZW50KTsKIAogICAgIFdLQnVuZGxlUGFnZUVkaXRvckNsaWVudCBlZGl0b3JDbGll
bnQgPSB7CiAgICAgICAgIDAsCiAgICAgICAgIHRoaXMsCi0gICAgICAgIF9zaG91bGRCZWdpbkVk
aXRpbmcsCi0gICAgICAgIF9zaG91bGRFbmRFZGl0aW5nLAotICAgICAgICBfc2hvdWxkSW5zZXJ0
Tm9kZSwKLSAgICAgICAgX3Nob3VsZEluc2VydFRleHQsCi0gICAgICAgIF9zaG91bGREZWxldGVS
YW5nZSwKLSAgICAgICAgX3Nob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UsCi0gICAgICAgIF9zaG91
bGRBcHBseVN0eWxlLAotICAgICAgICBfZGlkQmVnaW5FZGl0aW5nLAotICAgICAgICBfZGlkRW5k
RWRpdGluZywKLSAgICAgICAgX2RpZENoYW5nZSwKLSAgICAgICAgX2RpZENoYW5nZVNlbGVjdGlv
bgorICAgICAgICBzaG91bGRCZWdpbkVkaXRpbmcsCisgICAgICAgIHNob3VsZEVuZEVkaXRpbmcs
CisgICAgICAgIHNob3VsZEluc2VydE5vZGUsCisgICAgICAgIHNob3VsZEluc2VydFRleHQsCisg
ICAgICAgIHNob3VsZERlbGV0ZVJhbmdlLAorICAgICAgICBzaG91bGRDaGFuZ2VTZWxlY3RlZFJh
bmdlLAorICAgICAgICBzaG91bGRBcHBseVN0eWxlLAorICAgICAgICBkaWRCZWdpbkVkaXRpbmcs
CisgICAgICAgIGRpZEVuZEVkaXRpbmcsCisgICAgICAgIGRpZENoYW5nZSwKKyAgICAgICAgZGlk
Q2hhbmdlU2VsZWN0aW9uCiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRFZGl0b3JDbGllbnQo
bV9wYWdlLCAmZWRpdG9yQ2xpZW50KTsKIH0KQEAgLTEyOSw0NiArMTM2LDgyIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpyZXNldCgpCiAKIC8vIExvYWRlciBDbGllbnQgQ2FsbGJhY2tzCiAK
LXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIHN0YXRpY19jYXN0PEluamVjdGVk
QnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZShmcmFtZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpfZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgc3RhdGlj
X2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
LT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShmcmFt
ZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsK
ICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihj
bGllbnRJbmZvKSktPmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZShmcmFt
ZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfZGlkQ29tbWl0TG9hZEZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENvbW1pdExvYWRGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2Uq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZENvbW1pdExvYWRGb3JGcmFtZShm
cmFtZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfZGlkRmluaXNoTG9hZEZvckZy
YW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEZpbmlzaExvYWRG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBh
Z2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEZpbmlzaExvYWRGb3JGcmFt
ZShmcmFtZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfZGlkRmFpbExvYWRXaXRo
RXJyb3JGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFt
ZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRG
YWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIHN0YXRpY19jYXN0
PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlk
RmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShmcmFtZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpfZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tCdW5kbGVGcmFtZVJl
ZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxJbmpl
Y3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHRpdGxlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpfZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSwgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IHdpbmRvdywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lLCBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2lu
ZG93LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIHN0YXRpY19jYXN0PEluamVjdGVk
QnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkQ2xlYXJXaW5k
b3dGb3JGcmFtZShmcmFtZSwgY29udGV4dCwgd2luZG93KTsKIH0KIAordm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpLT5kaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKGZyYW1lKTsKK30K
Kwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tVUkxS
ZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQoreworICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKS0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKGZyYW1l
LCB1cmwsIGRlbGF5LCBkYXRlKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENo
YW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRp
Y19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KS0+ZGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUoZnJhbWUpOworfQorCit2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShmcmFt
ZSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRIYW5kbGVPbmxvYWRFdmVudHNG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBh
Z2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEhhbmRsZU9ubG9hZEV2ZW50
c0ZvckZyYW1lKGZyYW1lKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2Fz
dDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRp
ZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShmcmFtZSk7Cit9CisKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSktPmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKGZyYW1lKTsKK30K
KworCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQogewogICAgIGlmIChmcmFtZSA9PSBXS0J1bmRs
ZVBhZ2VHZXRNYWluRnJhbWUobV9wYWdlKSkKQEAgLTMzMSwyOSArMzc0LDU3IEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRDbGVhcldpbmRvd0YKICAgICBJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkuZ2NDb250cm9sbGVyKCktPm1ha2VXaW5kb3dPYmplY3QoY29udGV4dCwgd2luZG93LCAm
ZXhjZXB0aW9uKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKK3sKK30KKwordm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRh
dGUpCit7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDaGFuZ2VMb2NhdGlvbldp
dGhpblBhZ2VGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQoreworfQorCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSkKK3sKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZEhhbmRs
ZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCit7Cit9CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKK3sKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpCit7
Cit9CisKIC8vIFVJIENsaWVudCBDYWxsYmFja3MKIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
Ol93aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRs
ZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPndpbGxBZGRNZXNzYWdlVG9D
b25zb2xlKG1lc3NhZ2UsIGxpbmVOdW1iZXIpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6X3dpbGxTZXRTdGF0dXNiYXJUZXh0KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBzdGF0dXNiYXJUZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBzdGF0dXNiYXJUZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIHN0
YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKS0+d2lsbFNldFN0YXR1c2JhclRleHQoc3RhdHVzYmFyVGV4dCk7CiB9CiAKLXZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpfd2lsbFJ1bkphdmFTY3JpcHRBbGVydChXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsUnVuSmF2YVNj
cmlwdEFsZXJ0KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIHN0YXRp
Y19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KS0+d2lsbFJ1bkphdmFTY3JpcHRBbGVydChtZXNzYWdlLCBmcmFtZSk7CiB9CiAKLXZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpfd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxSdW5KYXZh
U2NyaXB0Q29uZmlybShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwg
V0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpLT53aWxsUnVuSmF2YVNjcmlwdENvbmZpcm0obWVzc2FnZSwgZnJhbWUpOwog
fQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6X3dpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZh
dWx0VmFsdWUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFJ1bkphdmFTY3JpcHRQcm9tcHQoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRW
YWx1ZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsK
ICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihj
bGllbnRJbmZvKSktPndpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KG1lc3NhZ2UsIGRlZmF1bHRWYWx1
ZSwgZnJhbWUpOwogfQpAQCAtMzg5LDU3ICs0NjAsNTcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxSdW5KYXZhU2NyaQogCiAvLyBFZGl0b3IgQ2xpZW50IENhbGxiYWNrcwogCi1ib29s
IEluamVjdGVkQnVuZGxlUGFnZTo6X3Nob3VsZEJlZ2luRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK2Jv
b2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRCZWdpbkVkaXRpbmcoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGNsaWVudEluZm8pKS0+c2hvdWxkQmVnaW5FZGl0aW5nKHJhbmdlKTsKIH0KIAotYm9v
bCBJbmplY3RlZEJ1bmRsZVBhZ2U6Ol9zaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZVJhbmdlUmVmIHJhbmdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorYm9v
bCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEVuZEVkaXRpbmcoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKS0+c2hvdWxkRW5kRWRpdGluZyhyYW5nZSk7CiB9CiAKLWJvb2wgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpfc2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVOb2RlUmVmIG5vZGUsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2VUb1JlcGxhY2UsIFdL
SW5zZXJ0QWN0aW9uVHlwZSBhY3Rpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitib29sIElu
amVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVOb2RlUmVmIG5vZGUsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2VUb1JlcGxhY2UsIFdL
SW5zZXJ0QWN0aW9uVHlwZSBhY3Rpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKS0+c2hvdWxkSW5zZXJ0Tm9kZShub2RlLCByYW5nZVRvUmVwbGFjZSwgYWN0
aW9uKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6Ol9zaG91bGRJbnNlcnRUZXh0KFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0ZXh0LCBXS0J1bmRsZVJhbmdlUmVmIHJh
bmdlVG9SZXBsYWNlLCBXS0luc2VydEFjdGlvblR5cGUgYWN0aW9uLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQorYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRleHQsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2VU
b1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSBhY3Rpb24sIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+c2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5nZVRv
UmVwbGFjZSwgYWN0aW9uKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6Ol9zaG91bGRE
ZWxldGVSYW5nZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRE
ZWxldGVSYW5nZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW5qZWN0
ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5zaG91bGREZWxl
dGVSYW5nZShyYW5nZSk7CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVSYW5nZVJlZiBm
cm9tUmFuZ2UsIFdLQnVuZGxlUmFuZ2VSZWYgdG9SYW5nZSwgV0tBZmZpbml0eVR5cGUgYWZmaW5p
dHksIGJvb2wgc3RpbGxTZWxlY3RpbmcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCitib29sIElu
amVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVSYW5nZVJlZiBmcm9tUmFuZ2UsIFdLQnVuZGxlUmFuZ2VSZWYgdG9S
YW5nZSwgV0tBZmZpbml0eVR5cGUgYWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEluamVjdGVkQnVu
ZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+c2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRSYW5nZShmcm9tUmFuZ2UsIHRvUmFuZ2UsIGFmZmluaXR5LCBzdGlsbFNlbGVjdGluZyk7
CiB9CiAKLWJvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfc2hvdWxkQXBwbHlTdHlsZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmIHN0eWxlLCBXS0J1
bmRsZVJhbmdlUmVmIHJhbmdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorYm9vbCBJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OnNob3VsZEFwcGx5U3R5bGUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBzdHlsZSwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW5qZWN0
ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5zaG91bGRBcHBs
eVN0eWxlKHN0eWxlLCByYW5nZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfZGlk
QmVnaW5FZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBub3RpZmljYXRp
b25OYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OmRpZEJlZ2luRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbm90aWZp
Y2F0aW9uTmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxJ
bmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZEJl
Z2luRWRpdGluZyhub3RpZmljYXRpb25OYW1lKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6Ol9kaWRFbmRFZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBub3Rp
ZmljYXRpb25OYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZEVuZEVkaXRpbmcoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG5v
dGlmaWNhdGlvbk5hbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgc3RhdGljX2Nh
c3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5k
aWRFbmRFZGl0aW5nKG5vdGlmaWNhdGlvbk5hbWUpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6X2RpZENoYW5nZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbm90aWZp
Y2F0aW9uTmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpkaWRDaGFuZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG5vdGlmaWNh
dGlvbk5hbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgc3RhdGljX2Nhc3Q8SW5q
ZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRDaGFu
Z2Uobm90aWZpY2F0aW9uTmFtZSk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpfZGlk
Q2hhbmdlU2VsZWN0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBub3RpZmlj
YXRpb25OYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRpZENoYW5nZVNlbGVjdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
bm90aWZpY2F0aW9uTmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNf
Y2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSkt
PmRpZENoYW5nZVNlbGVjdGlvbihub3RpZmljYXRpb25OYW1lKTsKIH0KSW5kZXg6IFdlYktpdFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAkocmV2aXNpb24gNjQ5MjYpCisrKyBXZWJLaXRUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCwxNCArNDQsMjEgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8v
IExvYWRlciBDbGllbnQKLSAgICBzdGF0aWMgdm9pZCBfZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwotICAgIHN0YXRpYyB2b2lkIF9kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotICAgIHN0YXRpYyB2b2lkIF9kaWRGYWlsUHJvdmlz
aW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1l
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSAgICBzdGF0aWMgdm9pZCBfZGlkQ29tbWl0
TG9hZEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7Ci0gICAgc3RhdGljIHZvaWQgX2RpZEZpbmlzaExvYWRGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwotICAgIHN0YXRpYyB2b2lkIF9kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLQnVuZGxl
UGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0gICAg
c3RhdGljIHZvaWQgX2RpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tT
dHJpbmdSZWYgdGl0bGUsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwotICAgIHN0YXRpYyB2b2lkIF9kaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVuZGxlUGFnZVJl
ZiwgV0tCdW5kbGVGcmFtZVJlZiwgSlNHbG9iYWxDb250ZXh0UmVmLCBKU09iamVjdFJlZiB3aW5k
b3csIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBj
b25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVm
LCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdp
dGhFcnJvckZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgY29uc3Qg
dm9pZCopOworICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBj
b25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3Ry
aW5nUmVmIHRpdGxlLCBXS0J1bmRsZUZyYW1lUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGlj
IHZvaWQgZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJh
bWVSZWYsIEpTR2xvYmFsQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgd2luZG93LCBjb25zdCB2b2lk
Kik7CisgICAgc3RhdGljIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMg
dm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBX
S0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUs
IGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBh
Z2VGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQq
KTsKKyAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXS0J1bmRs
ZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9p
ZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
RnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBjb25z
dCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYpOwogICAg
IHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7CkBAIC02MCwxMyArNjcsMjAgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJl
Zik7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1N0cmluZ1JlZiB0aXRsZSwg
V0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd0ZvckZyYW1lKFdLQnVu
ZGxlRnJhbWVSZWYsIEpTR2xvYmFsQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgd2luZG93KTsKKyAg
ICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7
CisgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVGcmFt
ZVJlZiwgV0tVUkxSZWYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBkYXRlKTsKKyAgICB2b2lk
IGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYpOwor
ICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7
CisgICAgdm9pZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVm
KTsKKyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXS0J1bmRsZUZy
YW1lUmVmKTsKKyAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxl
RnJhbWVSZWYpOwogCiAgICAgLy8gVUkgQ2xpZW50Ci0gICAgc3RhdGljIHZvaWQgX3dpbGxBZGRN
ZXNzYWdlVG9Db25zb2xlKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdWlu
dDMyX3QgbGluZU51bWJlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0gICAgc3RhdGljIHZv
aWQgX3dpbGxTZXRTdGF0dXNiYXJUZXh0KFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgc3Rh
dHVzYmFyVGV4dCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0gICAgc3RhdGljIHZvaWQgX3dp
bGxSdW5KYXZhU2NyaXB0QWxlcnQoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdl
LCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSAgICBz
dGF0aWMgdm9pZCBfd2lsbFJ1bkphdmFTY3JpcHRDb25maXJtKFdLQnVuZGxlUGFnZVJlZiwgV0tT
dHJpbmdSZWYgbWVzc2FnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7Ci0gICAgc3RhdGljIHZvaWQgX3dpbGxSdW5KYXZhU2NyaXB0UHJvbXB0KFdLQnVu
ZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdSZWYgZGVmYXVsdFZhbHVl
LCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBz
dGF0aWMgdm9pZCB3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGxpbmVOdW1iZXIsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOworICAgIHN0YXRpYyB2b2lkIHdpbGxTZXRTdGF0dXNiYXJUZXh0KFdLQnVuZGxlUGFnZVJl
ZiwgV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cisg
ICAgc3RhdGljIHZvaWQgd2lsbFJ1bkphdmFTY3JpcHRBbGVydChXS0J1bmRsZVBhZ2VSZWYsIFdL
U3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIHdpbGxSdW5KYXZhU2NyaXB0Q29uZmlybShXS0J1
bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIHdpbGxSdW5KYXZhU2Ny
aXB0UHJvbXB0KFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tTdHJpbmdS
ZWYgZGVmYXVsdFZhbHVlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKICAgICB2b2lkIHdpbGxBZGRNZXNzYWdlVG9Db25zb2xlKFdLU3RyaW5nUmVmIG1l
c3NhZ2UsIHVpbnQzMl90IGxpbmVOdW1iZXIpOwogICAgIHZvaWQgd2lsbFNldFN0YXR1c2JhclRl
eHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCk7CiAgICAgdm9pZCB3aWxsUnVuSmF2YVNjcmlw
dEFsZXJ0KFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLQnVuZGxlRnJhbWVSZWYpOwpAQCAtNzQsMTcg
Kzg4LDE3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUnVuSmF2YVNjcmlwdFByb21wdChXS1N0
cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLQnVuZGxlRnJhbWVS
ZWYpOwogCiAgICAgLy8gRWRpdG9yIGNsaWVudAotICAgIHN0YXRpYyBib29sIF9zaG91bGRCZWdp
bkVkaXRpbmcoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKLSAgICBzdGF0aWMgYm9vbCBfc2hvdWxkRW5kRWRpdGluZyhXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlUmFuZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotICAgIHN0
YXRpYyBib29sIF9zaG91bGRJbnNlcnROb2RlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVOb2Rl
UmVmLCBXS0J1bmRsZVJhbmdlUmVmIHJhbmdlVG9SZXBsYWNlLCBXS0luc2VydEFjdGlvblR5cGUs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotICAgIHN0YXRpYyBib29sIF9zaG91bGRJbnNlcnRU
ZXh0KFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2VU
b1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0g
ICAgc3RhdGljIGJvb2wgX3Nob3VsZERlbGV0ZVJhbmdlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5k
bGVSYW5nZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0gICAgc3RhdGljIGJvb2wgX3No
b3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlUmVm
IGZyb21SYW5nZSwgV0tCdW5kbGVSYW5nZVJlZiB0b1JhbmdlLCBXS0FmZmluaXR5VHlwZSwgYm9v
bCBzdGlsbFNlbGVjdGluZywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0gICAgc3RhdGljIGJv
b2wgX3Nob3VsZEFwcGx5U3R5bGUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUNTU1N0eWxlRGVj
bGFyYXRpb25SZWYgc3R5bGUsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2UsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwotICAgIHN0YXRpYyB2b2lkIF9kaWRCZWdpbkVkaXRpbmcoV0tCdW5kbGVQYWdl
UmVmLCBXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKLSAgICBzdGF0aWMgdm9pZCBfZGlkRW5kRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYsIFdLU3Ry
aW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotICAgIHN0
YXRpYyB2b2lkIF9kaWRDaGFuZ2UoV0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiBub3RpZmlj
YXRpb25OYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLSAgICBzdGF0aWMgdm9pZCBfZGlk
Q2hhbmdlU2VsZWN0aW9uKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9u
TmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQmVn
aW5FZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVSYW5nZVJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlUmFuZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0
YXRpYyBib29sIHNob3VsZEluc2VydE5vZGUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZU5vZGVS
ZWYsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2VUb1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkSW5zZXJ0VGV4
dChXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmLCBXS0J1bmRsZVJhbmdlUmVmIHJhbmdlVG9S
ZXBsYWNlLCBXS0luc2VydEFjdGlvblR5cGUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAg
IHN0YXRpYyBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVS
YW5nZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlUmFuZ2VSZWYgZnJv
bVJhbmdlLCBXS0J1bmRsZVJhbmdlUmVmIHRvUmFuZ2UsIFdLQWZmaW5pdHlUeXBlLCBib29sIHN0
aWxsU2VsZWN0aW5nLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgYm9vbCBz
aG91bGRBcHBseVN0eWxlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uUmVmIHN0eWxlLCBXS0J1bmRsZVJhbmdlUmVmIHJhbmdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRCZWdpbkVkaXRpbmcoV0tCdW5kbGVQYWdlUmVmLCBX
S1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAg
ICBzdGF0aWMgdm9pZCBkaWRFbmRFZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYg
bm90aWZpY2F0aW9uTmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZv
aWQgZGlkQ2hhbmdlKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFt
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlU2Vs
ZWN0aW9uKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV0tCdW5k
bGVSYW5nZVJlZik7CiAgICAgYm9vbCBzaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxlUmFuZ2VSZWYp
OwogICAgIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXS0J1bmRsZU5vZGVSZWYsIFdLQnVuZGxlUmFu
Z2VSZWYgcmFuZ2VUb1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSk7Cg==
</data>
<flag name="review"
          id="52256"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>