<?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>122849</bug_id>
          
          <creation_ts>2013-10-15 11:59:12 -0700</creation_ts>
          <short_desc>Add a skeleton Database process for future usage by IDB and Web SQL</short_desc>
          <delta_ts>2013-10-15 14:10:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>940069</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 11:59:12 -0700</bug_when>
    <thetext>Add a skeleton Database process for future usage by IDB and Web SQL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940071</commentid>
    <comment_count>1</comment_count>
      <attachid>214290</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 12:02:58 -0700</bug_when>
    <thetext>Created attachment 214290
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940072</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 12:03:38 -0700</bug_when>
    <thetext>Enabled for Mac only, right now, and the #ifdef guards should keep other builds as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940073</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-15 12:04:42 -0700</bug_when>
    <thetext>Attachment 214290 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Configurations/DatabaseProcess.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/DatabaseService.Development.xcconfig&apos;, u&apos;Source/WebKit2/Configurations/DatabaseService.xcconfig&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.h&apos;, u&apos;Source/WebKit2/DatabaseProcess/EntryPoint/mac/LegacyProcess/DatabaseProcessMain.mm&apos;, u&apos;Source/WebKit2/DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist&apos;, u&apos;Source/WebKit2/DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist&apos;, u&apos;Source/WebKit2/DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist&apos;, u&apos;Source/WebKit2/DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm&apos;, u&apos;Source/WebKit2/DatabaseProcess/mac/DatabaseProcessMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Databases/mac/DatabaseProcessProxyMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h&apos;, u&apos;Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebKit2Prefix.h&apos;]&quot; exit_code: 1
Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:75:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:64:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 2 in 20 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>940076</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 12:17:35 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 214290 [details] did not pass style-queue:
&gt; 
&gt; Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp:75:  Should have a space between // and comment  [whitespace/comments] [4]
&gt; Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp:64:  Should have a space between // and comment  [whitespace/comments] [4]

Fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940113</commentid>
    <comment_count>5</comment_count>
      <attachid>214290</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-10-15 13:54:24 -0700</bug_when>
    <thetext>Comment on attachment 214290
Patch v1 

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

&gt; Source/WebKit2/DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist:30
&gt; +	&lt;key&gt;NSPrincipalClass&lt;/key&gt;
&gt; +	&lt;string&gt;NSApplication&lt;/string&gt;

I am not sure you want this.

&gt; Source/WebKit2/DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist:36
&gt; +		&lt;key&gt;JoinExistingSession&lt;/key&gt;
&gt; +		&lt;true/&gt;

I am not sure you need this.

&gt; Source/WebKit2/DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist:28
&gt; +	&lt;key&gt;NSPrincipalClass&lt;/key&gt;
&gt; +	&lt;string&gt;NSApplication&lt;/string&gt;

Do you need this?

&gt; Source/WebKit2/DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist:36
&gt; +		&lt;key&gt;JoinExistingSession&lt;/key&gt;
&gt; +		&lt;true/&gt;

Do you need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940124</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-15 14:10:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157469</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214290</attachid>
            <date>2013-10-15 12:02:58 -0700</date>
            <delta_ts>2013-10-15 13:54:24 -0700</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>81797</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmMTM0OTI1Li41MjU0YmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjgg
QEAKKzIwMTMtMTAtMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBhIHNrZWxldG9uIERhdGFiYXNlIHByb2Nlc3MgZm9yIGZ1dHVyZSB1c2FnZSBieSBJ
bmRleGVkIERhdGFiYXNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIyODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBtb3N0bHkgb3VyIHR5cGljYWwgIkFkZCBhIG5ldyBwcm9jZXNzIHR5cGUi
IGJvaWxlcnBsYXRlLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRGF0YWJhc2VQcm9jZXNz
LnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EYXRhYmFzZVNlcnZp
Y2UuRGV2ZWxvcG1lbnQueGNjb25maWc6IEFkZGVkLgorICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0RhdGFiYXNlU2VydmljZS54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdDJQcmVmaXguaDoKKworICAg
ICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjpzaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpE
YXRhYmFzZVByb2Nlc3M6OkRhdGFiYXNlUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFi
YXNlUHJvY2Vzczo6fkRhdGFiYXNlUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNl
UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJv
Y2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nl
c3M6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjpkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6Omlu
aXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9j
ZXNzLmg6IEFkZGVkLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L0xlZ2FjeVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzTWFpbi5tbTogQWRkZWQuCisgICAgICAgIChE
YXRhYmFzZVByb2Nlc3NNYWluKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvTGVnYWN5UHJvY2Vzcy9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2UuRGV2ZWxv
cG1lbnQvSW5mby5wbGlzdDogQWRkZWQuCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNlL0luZm8ucGxpc3Q6IEFkZGVkLgor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL0RhdGFi
YXNlU2VydmljZUVudHJ5UG9pbnQubW06IEFkZGVkLgorICAgICAgICAoRGF0YWJhc2VTZXJ2aWNl
SW5pdGlhbGl6ZXIpOgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL21hYy9EYXRhYmFzZVBy
b2Nlc3NNYWMubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzc05hbWUpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6Omlu
aXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNl
UHJvY2Vzc1Byb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vz
c1Byb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6
RGF0YWJhc2VQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NQ
cm94eTo6fkRhdGFiYXNlUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQ
cm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFz
ZVByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKToKKyAgICAgICAgKFdlYktpdDo6RGF0
YWJhc2VQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0
OjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpE
YXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvRGF0YWJhc2VzL21hYy9EYXRhYmFzZVByb2Nlc3NQcm94eU1h
Yy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OnNob3VsZFVzZVhQQyk6CisgICAgICAgIChX
ZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMpOgor
CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6cHJvY2Vzc1R5cGVBc1N0cmluZyk6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6Z2V0UHJvY2Vzc1R5cGVGcm9tU3RyaW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlUHJvY2Vzcyk6
CisKIDIwMTMtMTAtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIExheSB0aGUgZ3JvdW5kd29yayBmb3IgYSBtdWx0aS1wcm9jZXNzIGF3YXJlIEluZGV4ZWQg
REIgaW1wbGVtZW50YXRpb24gaW4gV2ViS2l0Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlUHJvY2Vzcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlUHJvY2Vzcy54Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hNmViYjU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2VQcm9jZXNzLnhjY29uZmlnCkBAIC0wLDAgKzEs
MjcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisvLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorLy8gSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorLy8g
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisvLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKy8vIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
Ky8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKworI2luY2x1ZGUgIkJh
c2VMZWdhY3lQcm9jZXNzLnhjY29uZmlnIgorCitQUk9EVUNUX05BTUUgPSBEYXRhYmFzZVByb2Nl
c3M7CitJTkZPUExJU1RfRklMRSA9IERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdh
Y3lQcm9jZXNzL0luZm8ucGxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9EYXRhYmFzZVNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0Mi9Db25maWd1cmF0aW9ucy9EYXRhYmFzZVNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ2MWE5NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlU2VydmljZS5EZXZl
bG9wbWVudC54Y2NvbmZpZwpAQCAtMCwwICsxLDI3IEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorLy8gRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
Ly8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8g
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisKKyNpbmNsdWRlICJCYXNlWFBDU2VydmljZS54Y2NvbmZpZyIKKworUFJP
RFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuRGV2ZWxvcG1lbnQ7CitJTkZP
UExJU1RfRklMRSA9IERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL0Rh
dGFiYXNlU2VydmljZS5EZXZlbG9wbWVudC9JbmZvLnBsaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2VTZXJ2aWNlLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2VTZXJ2aWNlLnhjY29uZmlnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMDQyNDYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9EYXRhYmFzZVNlcnZpY2UueGNjb25maWcKQEAg
LTAsMCArMSwyNyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoK
Ky8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorLy8gICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisvLyBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
Ky8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisvLyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKy8vIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorLy8gUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorLy8gT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisvLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKy8vIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorCisjaW5j
bHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCisKK1BST0RVQ1RfTkFNRSA9IGNvbS5hcHBs
ZS5XZWJLaXQuRGF0YWJhc2VzOworSU5GT1BMSVNUX0ZJTEUgPSBEYXRhYmFzZVByb2Nlc3MvRW50
cnlQb2ludC9tYWMvWFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2UvSW5mby5wbGlzdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIzNjQwYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBA
IC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGF0YWJhc2VQcm9jZXNzLmgiCisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEYXRhYmFz
ZVByb2Nlc3MmIERhdGFiYXNlUHJvY2Vzczo6c2hhcmVkKCkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKERhdGFiYXNlUHJvY2VzcywgZGF0YWJhc2VQcm9jZXNzLCAoKSk7CisgICAgcmV0dXJu
IGRhdGFiYXNlUHJvY2VzczsKK30KKworRGF0YWJhc2VQcm9jZXNzOjpEYXRhYmFzZVByb2Nlc3Mo
KQoreworfQorCitEYXRhYmFzZVByb2Nlc3M6On5EYXRhYmFzZVByb2Nlc3MoKQoreworfQorCit2
b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbikKK3sKKyAgICBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0
aW9uKGNvbm5lY3Rpb24pOworfQorCitib29sIERhdGFiYXNlUHJvY2Vzczo6c2hvdWxkVGVybWlu
YXRlKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmIChtZXNzYWdlUmVjZWl2ZXJNYXAo
KS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vRklYTUU6IENhbGwgdGhyb3VnaCB0byBhIG5ldyBkaWRSZWNlaXZlRGF0YWJhc2VQ
cm9jZXNzTWVzc2FnZSBtZXRob2Qgd2hlbiBtZXNzYWdlcyBhY3R1YWxseSBleGlzdC4KK30KKwor
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQorewor
ICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS0+c3RvcCgpOworfQorCit2b2lkIERhdGFiYXNlUHJvY2Vz
czo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpTdHJpbmdSZWZlcmVuY2UsIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSkKK3sKKyAgICBSdW5M
b29wOjpjdXJyZW50KCktPnN0b3AoKTsKK30KKworI2lmICFQTEFURk9STShNQUMpCit2b2lkIERh
dGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRp
YWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmKQoreworfQorCit2b2lkIERhdGFiYXNlUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hNjE0NGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCkBAIC0wLDAgKzEsNjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIERhdGFiYXNlUHJvY2Vzc19oCisjZGVmaW5lIERhdGFiYXNlUHJv
Y2Vzc19oCisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNoaWxk
UHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IERhdGFiYXNlUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczsKKworY2xhc3MgRGF0YWJhc2VQcm9jZXNzIDogcHVibGljIENo
aWxkUHJvY2VzcyAgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGFiYXNlUHJvY2Vzcyk7
CitwdWJsaWM6CisgICAgc3RhdGljIERhdGFiYXNlUHJvY2VzcyYgc2hhcmVkKCk7CisKK3ByaXZh
dGU6CisgICAgRGF0YWJhc2VQcm9jZXNzKCk7CisgICAgfkRhdGFiYXNlUHJvY2VzcygpOworCisg
ICAgLy8gQ2hpbGRQcm9jZXNzCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVQcm9jZXNzKGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGluaXRp
YWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYs
IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBPVkVSUklERTsKKworICAgIC8v
IENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIE9WRVJSSURFOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0Vf
UFJPQ0VTUykKKworI2VuZGlmIC8vIERhdGFiYXNlUHJvY2Vzc19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzTWFpbi5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjI0ODU1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvRGF0YWJhc2VQcm9jZXNzTWFpbi5tbQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKworI2lt
cG9ydCAiQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5oIgorI2ltcG9ydCAiRGF0YWJhc2VQcm9jZXNz
LmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworZXh0
ZXJuICJDIiBXS19FWFBPUlQgaW50IERhdGFiYXNlUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KTsKKworaW50IERhdGFiYXNlUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KQoreworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPERhdGFiYXNlUHJvY2VzcywgQ2hpbGRQ
cm9jZXNzTWFpbkRlbGVnYXRlPihhcmdjLCBhcmd2KTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShE
QVRBQkFTRV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvSW5mby5wbGlzdCBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxp
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkyZDRiNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9M
ZWdhY3lQcm9jZXNzL0luZm8ucGxpc3QKQEAgLTAsMCArMSwzNCBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxl
Ly9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlM
aXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVu
ZGxlRXhlY3V0YWJsZTwva2V5PgorCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZF
UlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDEzIEFwcGxlIEluYy48L3N0cmluZz4KKwk8a2V5PkNG
QnVuZGxlSWNvbkZpbGU8L2tleT4KKwk8c3RyaW5nPiR7QVBQX0lDT059PC9zdHJpbmc+CisJPGtl
eT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuJHtQ
Uk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lv
bjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4K
Kwk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdl
VHlwZTwva2V5PgorCTxzdHJpbmc+QVBQTDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZl
cnNpb25TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9zdHJp
bmc+CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJ
T059PC9zdHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVl
Lz4KKwk8a2V5PkxTTWluaW11bVN5c3RlbVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7TUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUfTwvc3RyaW5nPgorCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KKwk8
dHJ1ZS8+CisJPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5OU0FwcGxpY2F0
aW9uPC9zdHJpbmc+CisJPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+CisJPHN0cmluZz5EYXRh
YmFzZVByb2Nlc3NNYWluPC9zdHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
RGF0YWJhc2VTZXJ2aWNlLkRldmVsb3BtZW50L0luZm8ucGxpc3QgYi9Tb3VyY2UvV2ViS2l0Mi9E
YXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2Uu
RGV2ZWxvcG1lbnQvSW5mby5wbGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hMzA0ZmRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNlLkRldmVsb3BtZW50
L0luZm8ucGxpc3QKQEAgLTAsMCArMSw0NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
PgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1l
bnRSZWdpb248L2tleT4KKwk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxl
RXhlY3V0YWJsZTwva2V5PgorCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+CisJ
PGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJ
T059LCBDb3B5cmlnaHQgMjAwMy0yMDEzIEFwcGxlIEluYy48L3N0cmluZz4KKwk8a2V5PkNGQnVu
ZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJpbmc+Y29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMu
RGV2ZWxvcG1lbnQ8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9u
PC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlTmFtZTwva2V5Pgor
CTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VU
eXBlPC9rZXk+CisJPHN0cmluZz5YUEMhPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVy
c2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmlu
Zz4KKwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059
PC9zdHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVlLz4K
Kwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNQcmluY2lwYWxDbGFz
czwva2V5PgorCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50
cnlQb2ludDwva2V5PgorCTxzdHJpbmc+RGF0YWJhc2VTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmlu
Zz4KKwk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KKwk8ZGljdD4KKwkJPGtleT5Kb2luRXhpc3RpbmdT
ZXNzaW9uPC9rZXk+CisJCTx0cnVlLz4KKwkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgorCQk8c3Ry
aW5nPk5TUnVuTG9vcDwvc3RyaW5nPgorCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+CisJCTxzdHJp
bmc+QXBwbGljYXRpb248L3N0cmluZz4KKwkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4K
KwkJPHRydWUvPgorCTwvZGljdD4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9EYXRh
YmFzZVNlcnZpY2UvSW5mby5wbGlzdCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL0RhdGFiYXNlU2VydmljZS9JbmZvLnBsaXN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NWIzYTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9EYXRhYmFzZVNlcnZpY2UvSW5mby5wbGlzdApAQCAtMCwwICsxLDQ1IEBACis8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v
QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9w
ZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+
Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwg
Q29weXJpZ2h0IDIwMDMtMjAxMyBBcHBsZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZURl
dmVsb3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+CisJPGtleT5D
RkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3Ry
aW5nPgorCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz5jb20uYXBwbGUu
V2ViS2l0LkRhdGFiYXNlczwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZl
cnNpb248L2tleT4KKwk8c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9r
ZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFj
a2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPlhQQyE8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hv
cnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwv
c3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KKwk8c3RyaW5nPj8/Pz88L3N0
cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVS
U0lPTn08L3N0cmluZz4KKwk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+CisJPHRy
dWUvPgorCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxzdHJpbmc+TlNBcHBsaWNhdGlv
bjwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgorCTxzdHJpbmc+RGF0YWJh
c2VTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJ
PHRydWUvPgorCTxrZXk+WFBDU2VydmljZTwva2V5PgorCTxkaWN0PgorCQk8a2V5PkpvaW5FeGlz
dGluZ1Nlc3Npb248L2tleT4KKwkJPHRydWUvPgorCQk8a2V5PlJ1bkxvb3BUeXBlPC9rZXk+CisJ
CTxzdHJpbmc+TlNSdW5Mb29wPC9zdHJpbmc+CisJCTxrZXk+U2VydmljZVR5cGU8L2tleT4KKwkJ
PHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgorCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwv
a2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNl
L0RhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxNzAwMTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9EYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIEhBVkUoWFBDKQorCisjaW1w
b3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgorI2ltcG9ydCAiRGF0YWJhc2VQcm9jZXNzLmgi
CisjaW1wb3J0ICJXS0Jhc2UuaCIKKyNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK2V4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgRGF0
YWJhc2VTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNf
b2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKKwordm9pZCBEYXRhYmFzZVNlcnZpY2VJbml0
aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFs
aXplck1lc3NhZ2UpCit7CisgICAgWFBDU2VydmljZUluaXRpYWxpemVyPERhdGFiYXNlUHJvY2Vz
cywgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGNvbm5lY3Rpb24sIGluaXRpYWxpemVy
TWVzc2FnZSk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFhQQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9tYWMvRGF0YWJhc2VQcm9jZXNzTWFjLm1tIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL21hYy9EYXRhYmFzZVByb2Nlc3NNYWMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFjMmY1ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9tYWMvRGF0YWJhc2VQcm9jZXNzTWFjLm1t
CkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIkRhdGFiYXNlUHJvY2Vzcy5oIgorCisjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KKyNpbXBv
cnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgorCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCit7CisgICAgLy8gSGF2aW5nIGEgd2luZG93IHNl
cnZlciBjb25uZWN0aW9uIGluIHRoaXMgcHJvY2VzcyB3b3VsZCByZXN1bHQgaW4gc3BpbiBsb2dz
ICg8cmRhcjovL3Byb2JsZW0vMTMyMzkxMTk+KS4KKyAgICBzZXRBcHBsaWNhdGlvbklzRGFlbW9u
KCk7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorewor
ICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpXRUJfVUlfU1RSSU5HKCIlQCBEYXRhYmFzZSBTdG9yYWdlIiwgInZpc2libGUgbmFtZSBvZiB0
aGUgZGF0YWJhc2UgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1l
LiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOworICAgIFdLU2V0Vmlz
aWJsZUFwcGxpY2F0aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKK30KKwor
dm9pZCBEYXRhYmFzZVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCit7CisgICAgLy8gTmVlZCB0byBvdmVy
aWRlIHRoZSBkZWZhdWx0LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1bmRsZSBJ
RC4KKyAgICBOU0J1bmRsZSAqd2Via2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFz
czpOU0NsYXNzRnJvbVN0cmluZyhAIldLVmlldyIpXTsKKyAgICBzYW5kYm94UGFyYW1ldGVycy5z
ZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2Via2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3Vy
Y2U6QCJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcyIgb2ZUeXBlOkAic2IiXSk7CisKKyAgICBD
aGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0
ZXJzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoREFU
QUJBU0VfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRh
YmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTgwMjlhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwCkBAIC0wLDAgKzEs
OTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0YWJh
c2VQcm9jZXNzUHJveHkuaCIKKworI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKworI2lmIEVOQUJM
RShEQVRBQkFTRV9QUk9DRVNTKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8RGF0YWJhc2VQcm9jZXNzUHJveHk+IERhdGFiYXNl
UHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERhdGFiYXNlUHJvY2Vzc1Byb3h5KGNvbnRleHQpKTsKK30KKworRGF0YWJh
c2VQcm9jZXNzUHJveHk6OkRhdGFiYXNlUHJvY2Vzc1Byb3h5KFdlYkNvbnRleHQqIGNvbnRleHQp
CisgICAgOiBtX3dlYkNvbnRleHQoY29udGV4dCkKK3sKKyAgICBjb25uZWN0KCk7Cit9CisKK0Rh
dGFiYXNlUHJvY2Vzc1Byb3h5Ojp+RGF0YWJhc2VQcm9jZXNzUHJveHkoKQoreworfQorCisKK3Zv
aWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVy
OjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQoreworICAgIGxhdW5jaE9wdGlvbnMucHJv
Y2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OkRhdGFiYXNlUHJvY2VzczsKKyAgICBwbGF0Zm9y
bUdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9j
ZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihDb3JlSVBDOjpDb25uZWN0aW9uKikKK3sKK30K
Kwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxDbG9zZShDb3JlSVBD
OjpDb25uZWN0aW9uKikKK3sKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCit7CisgICAgaWYgKGRpc3BhdGNoTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fd2ViQ29udGV4dC0+
ZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvL0ZJWE1FOiBDYWxsIHRocm91Z2ggdG8gYSBuZXcgZGlkUmVjZWl2ZURhdGFiYXNlUHJv
Y2Vzc1Byb3h5TWVzc2FnZSBtZXRob2Qgd2hlbiBtZXNzYWdlcyBhY3R1YWxseSBleGlzdC4KK30K
Kwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlv
biopCit7Cit9CisKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkK
K3sKK30KKwordm9pZCBEYXRhYmFzZVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFBy
b2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCit7CisgICAgQ2hpbGRQcm9jZXNzUHJveHk6OmRpZEZpbmlz
aExhdW5jaGluZyhsYXVuY2hlciwgY29ubmVjdGlvbklkZW50aWZpZXIpOworCisgICAgaWYgKENv
cmVJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc051bGwoY29ubmVjdGlvbklkZW50aWZpZXIp
KSB7CisgICAgICAgIC8vIEZJWE1FOiBEbyBiZXR0ZXIgY2xlYW51cCBoZXJlLgorICAgICAgICBy
ZXR1cm47CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjNkZWQ0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmgKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YWJhc2VQcm9jZXNzUHJveHlfaAorI2Rl
ZmluZSBEYXRhYmFzZVByb2Nlc3NQcm94eV9oCisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VT
UykKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xh
dW5jaGVyLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJDb250ZXh0OworCitjbGFzcyBEYXRhYmFzZVByb2Nlc3NQcm94eSA6IHB1Ymxp
YyBDaGlsZFByb2Nlc3NQcm94eSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0
YWJhc2VQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgfkRhdGFiYXNlUHJv
Y2Vzc1Byb3h5KCk7CisKK3ByaXZhdGU6CisgICAgRGF0YWJhc2VQcm9jZXNzUHJveHkoV2ViQ29u
dGV4dCopOworCisgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKENvcmVJUEM6OkNvbm5lY3Rpb24q
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxDbG9zZShDb3JlSVBD
OjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CisKKyAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgQ29yZUlQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKKworICAgIC8vIFByb2Nlc3NMYXVuY2hl
cjo6Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1
bmNoZXIqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBPVkVSUklERTsKKworICAg
IHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYpOworCisgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKworI2Vu
ZGlmIC8vIERhdGFiYXNlUHJvY2Vzc1Byb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EYXRhYmFzZXMvbWFjL0RhdGFiYXNlUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNlcy9tYWMvRGF0YWJhc2VQcm9jZXNzUHJveHlN
YWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNhODFlMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EYXRhYmFzZXMvbWFjL0RhdGFi
YXNlUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRhdGFiYXNlUHJvY2Vzc1Byb3h5LmgiCisKKyNpZiBF
TkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCisjaWYgSEFWRShYUEMpCitzdGF0aWMgYm9vbCBzaG91bGRVc2VY
UEMoKQoreworICAgIGlmIChpZCB2YWx1ZSA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIG9iamVjdEZvcktleTpAIldlYktpdDJVc2VYUENTZXJ2aWNlRm9yV2ViUHJvY2Vz
cyJdKQorICAgICAgICByZXR1cm4gW3ZhbHVlIGJvb2xWYWx1ZV07CisKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisjZW5kaWYKKwordm9pZCBEYXRhYmFzZVByb2Nl
c3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNo
T3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKKyAgICBsYXVuY2hPcHRpb25zLmFyY2hpdGVjdHVy
ZSA9IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9uczo6TWF0Y2hDdXJyZW50QXJjaGl0ZWN0
dXJlOworICAgIGxhdW5jaE9wdGlvbnMuZXhlY3V0YWJsZUhlYXAgPSBmYWxzZTsKKworI2lmIEhB
VkUoWFBDKQorICAgIGxhdW5jaE9wdGlvbnMudXNlWFBDID0gc2hvdWxkVXNlWFBDKCk7CisjZW5k
aWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQUJB
U0VfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9Qcm9jZXNzTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L1Byb2Nlc3NMYXVuY2hlci5jcHAKaW5kZXggMTBhYjFjZS4uMzY4NmIxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAK
QEAgLTkwLDYgKzkwLDEwIEBAIGNvbnN0IGNoYXIqIFByb2Nlc3NMYXVuY2hlcjo6cHJvY2Vzc1R5
cGVBc1N0cmluZyhQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKICAgICBjYXNlIE5ldHdvcmtQcm9j
ZXNzOgogICAgICAgICByZXR1cm4gIm5ldHdvcmtwcm9jZXNzIjsKICNlbmRpZgorI2lmIEVOQUJM
RShEQVRBQkFTRV9QUk9DRVNTKQorICAgIGNhc2UgRGF0YWJhc2VQcm9jZXNzOgorICAgICAgICBy
ZXR1cm4gImRhdGFiYXNlcHJvY2VzcyI7CisjZW5kaWYKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTExNyw2ICsxMjEsMTIgQEAgYm9vbCBQcm9jZXNzTGF1bmNoZXI6Omdl
dFByb2Nlc3NUeXBlRnJvbVN0cmluZyhjb25zdCBjaGFyKiBzdHJpbmcsIFByb2Nlc3NUeXBlJgog
ICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCisgICAgaWYgKCFz
dHJjbXAoc3RyaW5nLCAiZGF0YWJhc2Vwcm9jZXNzIikpIHsKKyAgICAgICAgcHJvY2Vzc1R5cGUg
PSBEYXRhYmFzZVByb2Nlc3M7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IGRjM2M0MjAuLmVkNGUwMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVy
LmgKQEAgLTUzLDYgKzUzLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAgICAgICAgIE5ldHdvcmtQcm9jZXNzLAogI2VuZGlmCisjaWYgRU5BQkxFKERBVEFCQVNFX1BS
T0NFU1MpCisgICAgICAgIERhdGFiYXNlUHJvY2VzcywKKyNlbmRpZgogICAgIH07CiAKICAgICBz
dHJ1Y3QgTGF1bmNoT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGJhNzdkYTUu
LmI0ZTkyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9t
YWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0xNTYsNiArMTU2LDEyIEBAIHN0
YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5j
aE9wdGlvbnMmIGxhdW5jaE9wdGlvCiAgICAgICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZy5EZXZlbG9wbWVudCI7CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldl
YktpdC5OZXR3b3JraW5nIjsKICNlbmRpZgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisg
ICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OkRhdGFiYXNlUHJvY2VzczoKKyAgICAgICAgaWYgKGZv
ckRldmVsb3BtZW50KQorICAgICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LkRhdGFi
YXNlcy5EZXZlbG9wbWVudCI7CisgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5EYXRh
YmFzZXMiOworI2VuZGlmCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgY2Fz
ZSBQcm9jZXNzTGF1bmNoZXI6OlBsdWdpblByb2Nlc3M6CiAgICAgICAgIGlmIChmb3JEZXZlbG9w
bWVudCkKQEAgLTM5NSw2ICs0MDEsMTEgQEAgc3RhdGljIHZvaWQgY3JlYXRlUHJvY2Vzcyhjb25z
dCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMsIGIKICAgICAg
ICAgcHJvY2Vzc1BhdGggPSBbd2ViS2l0MkJ1bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJs
ZTpAIk5ldHdvcmtQcm9jZXNzLmFwcCJdOwogICAgICAgICBicmVhazsKICNlbmRpZgorI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpEYXRhYmFz
ZVByb2Nlc3M6CisgICAgICAgIHByb2Nlc3NQYXRoID0gW3dlYktpdDJCdW5kbGUgcGF0aEZvckF1
eGlsaWFyeUV4ZWN1dGFibGU6QCJEYXRhYmFzZVByb2Nlc3MuYXBwIl07CisgICAgICAgIGJyZWFr
OworI2VuZGlmCiAgICAgfQogCiAgICAgTlNTdHJpbmcgKmZyYW1ld29ya0V4ZWN1dGFibGVQYXRo
ID0gW3dlYktpdDJCdW5kbGUgZXhlY3V0YWJsZVBhdGhdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ0ZDQ1ZDguLjQ1ODhhNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE3LDE1ICsxNywxOCBAQAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKIAkJCQkx
QTUwREIzQzExMEEzQzE5MDAwRDNGRTUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQlC
Q0RFMEFDMTEzMjcyNzEyMDAxMjU5RkIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCQk1
MUE2MEIyQzE4MENDRjEyMDBGM0JGNTAgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk1
MTBDQzg0ODE2MTNDODUzMDBEMDNFRDMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCQlC
Q0RFMEFDMTEzMjcyNzEyMDAxMjU5RkIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlC
Q0E4RDQ2ODE1QkNFMEQ2MDA5REMxRjEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlC
Q0FFOURGRDE2MEMwQUIwMDBBMzMyMTcgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQlC
QzgyODNENTE2QjRDMDFGMDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQlC
QzgyODNENzE2QjRDMDIyMDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCQk1
MUE2MEIyRTE4MENDRjE3MDBGM0JGNTAgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCQk1
MUE2MEIzMDE4MENDRjE3MDBGM0JGNTAgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlC
Qzc3Rjk1NjE2RDA0NTkxMDBGOEY3OEEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlC
QzgyODQ0NjE2QjRGRjY2MDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlC
QzgyODQ0ODE2QjRGRjZGMDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCQlC
QzgyODNENTE2QjRDMDFGMDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCQlC
QzgyODNENzE2QjRDMDIyMDBBMjc4RkUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7
CiAJCQluYW1lID0gQWxsOwogCQkJcHJvZHVjdE5hbWUgPSBXZWJLaXQyOwpAQCAtNDU0LDYgKzQ1
Nyw3IEBACiAJCTUxMkY1OEZBMTJBODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1OEYyMTJBODhB
NTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTJGNThGQjEyQTg4QTU0MDA2Mjk1MzAgLyogV0tQcm90
ZWN0aW9uU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEyRjU4RjMxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmNwcCAq
LzsgfTsKIAkJNTEyRjU4RkMxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJGNThGNDEy
QTg4QTU0MDA2Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTMwRjBFNTE4MENDQjkxMDA2MDJDMTgg
LyogRGF0YWJhc2VQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMzBGMEUzMTgwQ0NCOTEwMDYwMkMxOCAvKiBEYXRhYmFzZVByb2Nl
c3NNYWluLm1tICovOyB9OwogCQk1MTM2MTgzRDE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlv
blN0YWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMzYxODNCMTYzMTI2REEwMEE5OURERSAvKiBDb25uZWN0aW9uU3RhY2suY3BwICovOyB9Owog
CQk1MTM2MTgzRTE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTM2MTgzQzE2MzEyNkRBMDBB
OTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmggKi87IH07CiAJCTUxM0ExNjNDMTYzMDg4RjYwMDVE
N0QyMiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0ExNjNBMTYzMDg4RjYwMDVE
N0QyMiAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAg
LTQ4MCw2ICs0ODQsMTIgQEAKIAkJNTE3OTU1NzExNjI4NzdEMjAwRkE0M0I2IC8qIE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MUE4QTYwRjE2MjdGMkJEMDAwRDkwRTkgLyogTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJNTE3Q0YwRTMxNjNBNDg2QzAwQzI5NTBF
IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdDRjBFMTE2M0E0ODZDMDBD
Mjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTdDRjBFMjE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaCAqLzsgfTsKKwkJNTE3REQ1QkUxODBEQTdEMzAwODE2NjBCIC8qIERhdGFiYXNlUHJv
Y2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxN0RENUJDMTgwREE3RDMwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eS5jcHAg
Ki87IH07CisJCTUxN0RENUJGMTgwREE3RDMwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3REQ1
QkQxODBEQTdEMzAwODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5LmggKi87IH07CisJCTUx
N0RENUMyMTgwREI3QjcwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVDMTE4MERCN0I3MDA4
MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzTWFjLm1tICovOyB9OworCQk1MTdERDVDNTE4MERDM0Ux
MDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdERDVDNDE4MERDM0UxMDA4MTY2MEIgLyog
RGF0YWJhc2VQcm9jZXNzUHJveHlNYWMubW0gKi87IH07CisJCTUxODBDNzE1MTgwQ0NBMzEwMEZE
QTYxMiAvKiBYUENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk3MTZCNDgwRjYwMEEyNzhGRSAvKiBY
UENTZXJ2aWNlTWFpbi5EZXZlbG9wbWVudC5tbSAqLzsgfTsKKwkJNTE4MEM3MTcxODBDQ0EzMTAw
RkRBNjEyIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrICovOyB9OwogCQk1MTgyOURBNTE2MzdDNzBDMDAwOTUzRDYgLyogTmV0
d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTgyOURBMzE2MzdDNzBDMDAwOTUzRDYgLyogTmV0d29ya1Jl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAgKi87IH07CiAJCTUxODI5REE2MTYzN0M3MEMwMDA5NTNE
NiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTgyOURBNDE2MzdDNzBDMDAwOTUzRDYgLyogTmV0
d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oICovOyB9OwogCQk1MTgzNDU5MjEzNDUzMkU5MDA5
MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODM0NTkwMTM0NTMyRTgwMDkyQjY5NiAvKiBXZWJJ
Y29uRGF0YWJhc2VDbGllbnQuY3BwICovOyB9OwpAQCAtNTA3LDYgKzUxNyw3IEBACiAJCTUxQTU1
NUY1MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE1NTVGMzEyOEM2QzQ3MDA5QUJD
RUMgLyogV0tDb250ZXh0TWVudUl0ZW0uY3BwICovOyB9OwogCQk1MUE1NTVGNjEyOEM2QzQ3MDA5
QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTU1NUY0MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRN
ZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUxQTU1NjAxMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE1NTYwMDEy
OEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxQTYwQjJBMTgwQ0NFQjUwMEYz
QkY1MCAvKiBEYXRhYmFzZVByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTFFMjgxODBDQ0FERTAwQzQ0QkU5IC8qIERhdGFiYXNl
UHJvY2Vzcy5hcHAgKi87IH07CiAJCTUxQTdGMkYzMTI1QkY4MjAwMDhBRUIxRCAvKiBMb2dnaW5n
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE3RjJG
MjEyNUJGODIwMDA4QUVCMUQgLyogTG9nZ2luZy5oICovOyB9OwogCQk1MUE3RjJGNTEyNUJGOEQ0
MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUE3RjJGNDEyNUJGOEQ0MDA4QUVCMUQgLyogTG9nZ2luZy5jcHAgKi87
IH07CiAJCTUxQTg0Q0UzMTI3RjM4NkIwMENBNkVBNCAvKiBXZWJDb250ZXh0TWVudVByb3h5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTg0Q0Uy
MTI3RjM4NkIwMENBNkVBNCAvKiBXZWJDb250ZXh0TWVudVByb3h5LmNwcCAqLzsgfTsKQEAgLTUz
OSw2ICs1NTAsMTUgQEAKIAkJNTFFRkMxQ0YxNTI0RTYyNTAwQzlBOTM4IC8qIFdLQnVuZGxlRE9N
V2luZG93RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRl
bnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMDYwREUx
NjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJ
NTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
RjA2MEREMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCTUxRjdEQzE0MTgwQ0M0QUQwMDIxMkNBMyAvKiBEYXRhYmFzZVByb2Nl
c3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFG
N0RDMTIxODBDQzRBRDAwMjEyQ0EzIC8qIERhdGFiYXNlUHJvY2Vzcy5jcHAgKi87IH07CisJCTUx
RjdEQzE1MTgwQ0M0QUQwMDIxMkNBMyAvKiBEYXRhYmFzZVByb2Nlc3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjdEQzEzMTgwQ0M0QUQwMDIxMkNB
MyAvKiBEYXRhYmFzZVByb2Nlc3MuaCAqLzsgfTsKKwkJNTFGN0RDMTYxODBDQzRDNzAwMjEyQ0Ez
IC8qIERhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUY3REMxMTE4MENDNDk3MDAyMTJDQTMgLyogRGF0YWJh
c2VTZXJ2aWNlRW50cnlQb2ludC5tbSAqLzsgfTsKKwkJNTFGN0RDNDExODBDQzkzNjAwMjEyQ0Ez
IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1t
ICovOyB9OworCQk1MUY3REM0MzE4MENDOTM2MDAyMTJDQTMgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNE
RTQ2ODE1QTkxNzYzMDA4RDI2RkMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CisJCTUx
RjdEQzQ0MTgwQ0M5MzYwMDIxMkNBMyAvKiBXZWJLaXQyLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhEQzJFRjVCMDQ4NkE2OTQwMDk4
QjIxNiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLzsgfTsKKwkJNTFGQTFFMUQxODBDQ0FERTAwQzQ0
QkU5IC8qIENoaWxkUHJvY2Vzc01haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzVEMjQ5RjE2Q0MzQjlFMDA3RDU0NjEgLyogQ2hpbGRQcm9jZXNz
TWFpbi5tbSAqLzsgfTsKKwkJNTFGQTFFMUYxODBDQ0FERTAwQzQ0QkU5IC8qIFdlYktpdC5pY25z
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMzRkQ4
OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi87IH07CisJCTUxRkExRTIzMTgwQ0NB
REUwMEM0NEJFOSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0RFNDY4MTVBOTE3NjMwMDhEMjZGQyAvKiBG
b3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJNTFGQTJENzQxNTIxMkRGMTAwQzFCQTBCIC8q
IEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDVDMTUyMTFBNTAwMEMxQkEwQiAvKiBJ
bmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgKi87IH07CiAJCTUxRkEyRDc3MTUy
MTJFMjYwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZBMkQ3NTE1MjEyRTFFMDBD
MUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwICovOyB9OwogCQk1MUZCMDhG
RjE2MzlERTFBMDBFQzMyNEEgLyogV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJGNjU2MTYzOTJGMTUw
MDEzMkE3QSAvKiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwICovOyB9OwpAQCAtMTIwOCw2
ICsxMjI4LDM0IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJFRjRGMDQ4NkE2OTQw
MDk4QjIxNjsKIAkJCXJlbW90ZUluZm8gPSBXZWJLaXQyOwogCQl9OworCQk1MUE2MEIyQjE4MEND
RjEyMDBGM0JGNTAgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4
RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gNTFGQTFFMTcxODBDQ0FERTAwQzQ0QkU5OworCQkJcmVtb3Rl
SW5mbyA9IERhdGFiYXNlUHJvY2VzczsKKwkJfTsKKwkJNTFBNjBCMkQxODBDQ0YxNzAwRjNCRjUw
IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0
ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAv
KiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJ
RFN0cmluZyA9IDUxRjdEQzNGMTgwQ0M5MzYwMDIxMkNBMzsKKwkJCXJlbW90ZUluZm8gPSBEYXRh
YmFzZXM7CisJCX07CisJCTUxQTYwQjJGMTgwQ0NGMTcwMEYzQkY1MCAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250
YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3Qg
Ki87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1MTgwQzcx
MzE4MENDQTMxMDBGREE2MTI7CisJCQlyZW1vdGVJbmZvID0gRGF0YWJhc2VzLkRldmVsb3BtZW50
OworCQl9OworCQk1MUZBMUUxQjE4MENDQURFMDBDNDRCRTkgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVy
UG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwor
CQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOERDMkVGNEYwNDg2
QTY5NDAwOThCMjE2OworCQkJcmVtb3RlSW5mbyA9IFdlYktpdDI7CisJCX07CiAJCUJDNzdGOTU1
MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZF
ODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC0xMzAzLDYgKzEzNTEsNyBA
QAogCQkJZmlsZXMgPSAoCiAJCQkJNTEwQ0M4NDkxNjEzQzg1QzAwRDAzRUQzIC8qIE5ldHdvcmtQ
cm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAogCQkJCUJDREUwQUJGMTMyNzI3MDgwMDEyNTlG
QiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCBpbiBDb3B5IEZpbGVzICovLAorCQkJCTUxQTYwQjJBMTgw
Q0NFQjUwMEYzQkY1MCAvKiBEYXRhYmFzZVByb2Nlc3MuYXBwIGluIENvcHkgRmlsZXMgKi8sCiAJ
CQkJMUE1MERCNjYxMTBBM0Q1NzAwMEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwIGluIENvcHkgRmls
ZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJDb3B5IEZpbGVzIjsKQEAgLTE4NDQsNiArMTg5Myw4
IEBACiAJCTUxMkY1OEYyMTJBODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDcmVkZW50aWFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMkY1OEYzMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25T
cGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Byb3RlY3Rp
b25TcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1OEY0MTJBODhB
NTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25TcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1Byb3RlY3Rpb25TcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTMwRjBFMzE4MENDQjkxMDA2MDJDMTggLyogRGF0YWJhc2VQcm9jZXNzTWFpbi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERhdGFiYXNlUHJvY2Vzc01h
aW4ubW07IHBhdGggPSBEYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vz
cy9EYXRhYmFzZVByb2Nlc3NNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTMwRjBFNDE4MENDQjkxMDA2MDJDMTggLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxp
c3QueG1sOyBuYW1lID0gSW5mby5wbGlzdDsgcGF0aCA9IERhdGFiYXNlUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9MZWdhY3lQcm9jZXNzL0luZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMzYxODNCMTYzMTI2REEwMEE5OURERSAvKiBDb25uZWN0aW9uU3RhY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29ubmVjdGlvblN0YWNrLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEzNjE4M0MxNjMxMjZEQTAwQTk5RERFIC8q
IENvbm5lY3Rpb25TdGFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25u
ZWN0aW9uU3RhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEzQTE2M0ExNjMw
ODhGNjAwNUQ3RDIyIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY0LDYg
KzE5MTUsMTEgQEAKIAkJNTE3QTMzQjQxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBF
MTE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxN0NGMEUyMTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdERDVCQzE4MERBN0QzMDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGF0YWJhc2VQcm9jZXNzUHJveHkuY3Bw
OyBwYXRoID0gRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QkQxODBEQTdEMzAwODE2NjBCIC8qIERhdGFiYXNlUHJv
Y2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERhdGFiYXNlUHJv
Y2Vzc1Byb3h5Lmg7IHBhdGggPSBEYXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3REQ1QzExODBEQjdCNzAwODE2NjBCIC8qIERh
dGFiYXNlUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IERhdGFiYXNlUHJvY2Vzc01hYy5tbTsgcGF0aCA9IERhdGFiYXNlUHJvY2Vzcy9tYWMvRGF0
YWJhc2VQcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdERDVD
NDE4MERDM0UxMDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBEYXRhYmFzZVByb2Nlc3NQcm94eU1hYy5t
bTsgcGF0aCA9IERhdGFiYXNlcy9tYWMvRGF0YWJhc2VQcm9jZXNzUHJveHlNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxODBDNzFEMTgwQ0NBMzEwMEZEQTYxMiAvKiBjb20u
YXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5EZXZlbG9wbWVudC54cGMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuY2ZidW5kbGU7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLkRldmVsb3BtZW50
LnhwYzsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTE4MjlEQTMxNjM3
QzcwQzAwMDk1M0Q2IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4MjlEQTQxNjM3QzcwQzAwMDk1
M0Q2IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTgzNDU5MDEzNDUzMkU4MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFi
YXNlQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYklj
b25EYXRhYmFzZUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkz
LDYgKzE5NDksOSBAQAogCQk1MUE1NTVGMzEyOEM2QzQ3MDA5QUJDRUMgLyogV0tDb250ZXh0TWVu
dUl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tDb250ZXh0
TWVudUl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1NTVGNDEyOEM2
QzQ3MDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTFBNTU2MDAxMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtVHlwZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZXh0TWVudUl0ZW1UeXBl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUE2MEIyNzE4MENDRDkwMDBGM0JG
NTAgLyogRGF0YWJhc2VQcm9jZXNzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERhdGFiYXNlUHJv
Y2Vzcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTFBNjBCMjgxODBD
Q0Q5MDAwRjNCRjUwIC8qIERhdGFiYXNlU2VydmljZS5EZXZlbG9wbWVudC54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25m
aWc7IHBhdGggPSBEYXRhYmFzZVNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQTYwQjI5MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFz
ZVNlcnZpY2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRGF0YWJhc2VTZXJ2aWNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE3RjJGMjEyNUJGODIwMDA4QUVCMUQg
LyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2dnaW5nLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTdGMkY0MTI1QkY4RDQwMDhBRUIxRCAv
KiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dp
bmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE4NENFMjEyN0YzODZCMDBD
QTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5MzIsNiArMTk5MSwxMyBAQAogCQk1MUUzQjY3RTE2RjI2NkIzMDA5OTY4
REMgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVzb3Vy
Y2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVzb3Vy
Y2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxRjdEQzBFMTgwQ0M0NkMwMDIxMkNBMyAvKiBJbmZvLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdC54bWw7IG5hbWUgPSBJbmZvLnBsaXN0OyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNlL0luZm8ucGxpc3Q7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRjdEQzEwMTgwQ0M0ODkwMDIxMkNBMyAvKiBJbmZvLnBs
aXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5wbGlzdC54bWw7IG5hbWUgPSBJbmZvLnBsaXN0OyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvRGF0YWJhc2VTZXJ2aWNlLkRldmVsb3BtZW50L0luZm8u
cGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRjdEQzExMTgwQ0M0OTcwMDIx
MkNBMyAvKiBEYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2ludC5tbTsgcGF0aCA9IERhdGFiYXNlUHJvY2Vzcy9F
bnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL0RhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRjdEQzEyMTgwQ0M0QUQwMDIxMkNBMyAvKiBE
YXRhYmFzZVByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
RGF0YWJhc2VQcm9jZXNzLmNwcDsgcGF0aCA9IERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUY3REMxMzE4MENDNEFEMDAy
MTJDQTMgLyogRGF0YWJhc2VQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERhdGFiYXNlUHJvY2Vzcy5oOyBwYXRoID0gRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJv
Y2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUY3REM0QTE4MENDOTM2MDAy
MTJDQTMgLyogY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMueHBjICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxlOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy54cGM7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTUxRkExRTI4MTgwQ0NBREUwMEM0NEJF
OSAvKiBEYXRhYmFzZVByb2Nlc3MuYXBwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmFwcGxpY2F0aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBEYXRhYmFzZVByb2Nlc3MuYXBwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1MUZBMkQ1NDE1MjExMTg2MDBDMUJBMEIgLyogV0tCdW5kbGVET01XaW5kb3dF
eHRlbnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGQTJENUEx
NTIxMUExRTAwQzFCQTBCIC8qIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRkEyRDVDMTUyMTFBNTAw
MEMxQkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVu
c2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjM0LDYgKzI3MDAsMzEg
QEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKKwkJNTE4MEM3MTYxODBDQ0EzMTAwRkRBNjEyIC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlp
c2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk1MTgwQzcxNzE4MENDQTMxMDBGREE2MTIgLyogRm91
bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKwkJNTFGN0RDNDIxODBDQzkzNjAw
MjEyQ0EzIC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CQk1MUY3REM0MzE4MENDOTM2MDAyMTJDQTMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLywKKwkJCQk1MUY3REM0NDE4MENDOTM2MDAyMTJDQTMgLyogV2ViS2l0Mi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKwkJNTFGQTFFMjIxODBDQ0FERTAwQzQ0QkU5IC8qIEZy
YW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKKwkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk1MUZBMUUyMzE4
MENDQURFMDBDNDRCRTkgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywK
KwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsK
IAkJOERDMkVGNTYwNDg2QTY5NDAwOThCMjE2IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CkBAIC0yNzUxLDYgKzI4NDIsOSBAQAogCQkJCThEQzJFRjVCMDQ4NkE2OTQwMDk4QjIxNiAv
KiBXZWJLaXQyLmZyYW1ld29yayAqLywKIAkJCQkxQTUwREIxRTExMEEzQkRDMDAwRDNGRTUgLyog
V2ViUHJvY2Vzcy5hcHAgKi8sCiAJCQkJQ0RDMzgzMDYxNzIxMTc5OTAwOEEyRkMzIC8qIFdlYlBy
b2Nlc3NTaGltLmR5bGliICovLAorCQkJCTUxRjdEQzRBMTgwQ0M5MzYwMDIxMkNBMyAvKiBjb20u
YXBwbGUuV2ViS2l0LkRhdGFiYXNlcy54cGMgKi8sCisJCQkJNTE4MEM3MUQxODBDQ0EzMTAwRkRB
NjEyIC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLkRldmVsb3BtZW50LnhwYyAqLywKKwkJ
CQk1MUZBMUUyODE4MENDQURFMDBDNDRCRTkgLyogRGF0YWJhc2VQcm9jZXNzLmFwcCAqLywKIAkJ
CSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
Mjc2Nyw2ICsyODYxLDcgQEAKIAkJCQkxQUFEREY0QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVk
ICovLAogCQkJCUJDMDMyREMzMTBGNDM4MjYwMDU4QzE1QSAvKiBVSVByb2Nlc3MgKi8sCiAJCQkJ
QkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3MgKi8sCisJCQkJNTFGN0RDMEEx
ODBDQzQxMTAwMjEyQ0EzIC8qIERhdGFiYXNlUHJvY2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2MTM4
RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJMUEwRUM2QjAxMjRCQkQzNjAw
N0VGNEE1IC8qIFBsdWdpblByb2Nlc3MgKi8sCiAJCQkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0
IC8qIERlcml2ZWQgU291cmNlcyAqLywKQEAgLTI5MTAsNiArMzAwNSw5IEBACiAJCQkJQkM1RDI0
QjgxNkNDNDBCQjAwN0Q1NDYxIC8qIEJhc2VMZWdhY3lQcm9jZXNzLnhjY29uZmlnICovLAogCQkJ
CTVEQUQ3M0YxMTE2RkY5MEMwMEVFNTM5NiAvKiBCYXNlVGFyZ2V0LnhjY29uZmlnICovLAogCQkJ
CUJDQUNDNDBEMTZCMEI3QkUwMEI2RTA5MiAvKiBCYXNlWFBDU2VydmljZS54Y2NvbmZpZyAqLywK
KwkJCQk1MUE2MEIyNzE4MENDRDkwMDBGM0JGNTAgLyogRGF0YWJhc2VQcm9jZXNzLnhjY29uZmln
ICovLAorCQkJCTUxQTYwQjI4MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFzZVNlcnZpY2UuRGV2
ZWxvcG1lbnQueGNjb25maWcgKi8sCisJCQkJNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIERh
dGFiYXNlU2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQkxQTRGOTc2QjEwMEU3QjY2MDA2MzdBMTgg
LyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovLAogCQkJCTFBNEY5NzZDMTAwRTdCNjYwMDYzN0Ex
OCAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLywKIAkJCQk1MTBDQzg0NjE2MTNDN0M2MDBE
MDNFRDMgLyogTmV0d29ya1Byb2Nlc3MueGNjb25maWcgKi8sCkBAIC0zNTQ3LDYgKzM2NDUsMTUg
QEAKIAkJCXBhdGggPSBBdXRoZW50aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCTUxMzBGMEUyMTgwQ0NCM0IwMDYwMkMxOCAvKiBMZWdhY3lQcm9jZXNzICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTMwRjBFNDE4MEND
QjkxMDA2MDJDMTggLyogSW5mby5wbGlzdCAqLywKKwkJCQk1MTMwRjBFMzE4MENDQjkxMDA2MDJD
MTggLyogRGF0YWJhc2VQcm9jZXNzTWFpbi5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gTGVnYWN5
UHJvY2VzczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxNjMxOTkzMTYy
ODk4MEUwMEUyMkYwMCAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtMzU1NSw2ICszNjYyLDMyIEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTE3REQ1QkIxODBEQTdDNDAwODE2NjBCIC8qIERh
dGFiYXNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NTE3REQ1QzMxODBEQzNENjAwODE2NjBCIC8qIG1hYyAqLywKKwkJCQk1MTdERDVCQzE4MERBN0Qz
MDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHkuY3BwICovLAorCQkJCTUxN0RENUJEMTgw
REE3RDMwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eS5oICovLAorCQkJKTsKKwkJCW5h
bWUgPSBEYXRhYmFzZXM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk1MTdE
RDVDMDE4MERCN0FBMDA4MTY2MEIgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQk1MTdERDVDMTE4MERCN0I3MDA4MTY2MEIgLyogRGF0YWJhc2VQ
cm9jZXNzTWFjLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBtYWM7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OworCQk1MTdERDVDMzE4MERDM0Q2MDA4MTY2MEIgLyogbWFjICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTdERDVDNDE4MERD
M0UxMDA4MTY2MEIgLyogRGF0YWJhc2VQcm9jZXNzUHJveHlNYWMubW0gKi8sCisJCQkpOworCQkJ
bmFtZSA9IG1hYzsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxOEU4RUYx
MTZCMjA4RjAwMEU5MTQyOSAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zNjMwLDYgKzM3NjMsNTIgQEAKIAkJCW5hbWUgPSBj
ZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxRjdEQzBBMTgwQ0M0MTEw
MDIxMkNBMyAvKiBEYXRhYmFzZVByb2Nlc3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTUxRjdEQzBCMTgwQ0M0MjIwMDIxMkNBMyAvKiBFbnRyeVBvaW50
ICovLAorCQkJCTUxN0RENUMwMTgwREI3QUEwMDgxNjYwQiAvKiBtYWMgKi8sCisJCQkJNTFGN0RD
MTIxODBDQzRBRDAwMjEyQ0EzIC8qIERhdGFiYXNlUHJvY2Vzcy5jcHAgKi8sCisJCQkJNTFGN0RD
MTMxODBDQzRBRDAwMjEyQ0EzIC8qIERhdGFiYXNlUHJvY2Vzcy5oICovLAorCQkJKTsKKwkJCW5h
bWUgPSBEYXRhYmFzZVByb2Nlc3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owor
CQk1MUY3REMwQjE4MENDNDIyMDAyMTJDQTMgLyogRW50cnlQb2ludCAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTEzMEYwRTIxODBDQ0IzQjAwNjAyQzE4
IC8qIExlZ2FjeVByb2Nlc3MgKi8sCisJCQkJNTFGN0RDMEMxODBDQzQzMTAwMjEyQ0EzIC8qIFhQ
Q1NlcnZpY2UgKi8sCisJCQkpOworCQkJbmFtZSA9IEVudHJ5UG9pbnQ7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OworCQk1MUY3REMwQzE4MENDNDMxMDAyMTJDQTMgLyogWFBDU2Vy
dmljZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTFG
N0RDMEYxODBDQzQ2RjAwMjEyQ0EzIC8qIERhdGFiYXNlU2VydmljZS5EZXZlbG9wbWVudCAqLywK
KwkJCQk1MUY3REMwRDE4MENDNDM4MDAyMTJDQTMgLyogRGF0YWJhc2VTZXJ2aWNlICovLAorCQkJ
CTUxRjdEQzExMTgwQ0M0OTcwMDIxMkNBMyAvKiBEYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1t
ICovLAorCQkJKTsKKwkJCW5hbWUgPSBYUENTZXJ2aWNlOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKKwkJNTFGN0RDMEQxODBDQzQzODAwMjEyQ0EzIC8qIERhdGFiYXNlU2Vydmlj
ZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTFGN0RD
MEUxODBDQzQ2QzAwMjEyQ0EzIC8qIEluZm8ucGxpc3QgKi8sCisJCQkpOworCQkJbmFtZSA9IERh
dGFiYXNlU2VydmljZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTUxRjdE
QzBGMTgwQ0M0NkYwMDIxMkNBMyAvKiBEYXRhYmFzZVNlcnZpY2UuRGV2ZWxvcG1lbnQgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxRjdEQzEwMTgwQ0M0
ODkwMDIxMkNBMyAvKiBJbmZvLnBsaXN0ICovLAorCQkJKTsKKwkJCW5hbWUgPSBEYXRhYmFzZVNl
cnZpY2UuRGV2ZWxvcG1lbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1
MUZCQjlDMTEzMkUwNzkyMDBGMzI3QjQgLyogSWNvbkRhdGFiYXNlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTM4MjMsNiArNDAwMiw3IEBACiAJCQkJQkMw
MzJEQzQxMEY0Mzg3QzAwNThDMTVBIC8qIEFQSSAqLywKIAkJCQk1MTJGNTg4RDEyQTg4MzZGMDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8sCiAJCQkJNTFCMzAwNEQxMjUyOUNGNTAwMEI1Q0Ew
IC8qIGNmICovLAorCQkJCTUxN0RENUJCMTgwREE3QzQwMDgxNjYwQiAvKiBEYXRhYmFzZXMgKi8s
CiAJCQkJMUFCN0Q0QzcxMjg4QUE5QTAwQ0ZEMDhDIC8qIERvd25sb2FkcyAqLywKIAkJCQlCQzEx
MUIxODExMkY1RkI0MDAzMzdCQUIgLyogTGF1bmNoZXIgKi8sCiAJCQkJQkNDRjA4NUMxMTNGM0I3
NTAwQzY1MEM1IC8qIG1hYyAqLywKQEAgLTUyNzMsNiArNTQ1Myw3IEBACiAJCQkJNTExQjI0QUIx
MzJFMDk3MjAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE4MzQ1OTMxMzQ1MzJFOTAwOTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFEMDJGNkExMzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFz
ZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MUY3REMxNTE4MENDNEFEMDAyMTJDQTMg
LyogRGF0YWJhc2VQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTFCMjRBNzEzMkUwOTU3
MDAwNjVBMEMgLyogV2ViSWNvbkRhdGFiYXNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
RDAyRjZDMTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0NGNkFCRDEyQzkxRUY5MDA4RjlDMzUgLyogV2ViSW1hZ2Uu
aCBpbiBIZWFkZXJzICovLApAQCAtNTM2OSw2ICs1NTUwLDcgQEAKIAkJCQlCQzIwNEVFRjExQzgz
RUM4MDA4RjMzNzUgLyogV0tCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjA0RUYwMTFD
ODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZUFQSUNhc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
NUVFQjlGMTI3NzYxQUMwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTE3REQ1QkYxODBEQTdEMzAwODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vz
c1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVFRUI5QjEyNzc2MTdDMDAzMzIyQjggLyog
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUVGQzFD
RjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDRDI1RjE3MTFENkJERTEwMDE2OUIwRSAvKiBXS0J1bmRsZUZyYW1lLmgg
aW4gSGVhZGVycyAqLywKQEAgLTU1OTMsNiArNTc3NSw1OCBAQAogCQkJcHJvZHVjdFJlZmVyZW5j
ZSA9IDUxMENDODBFMTYxM0M3OTkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5hcHAgKi87CiAJ
CQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmFwcGxpY2F0aW9uIjsKIAkJ
fTsKKwkJNTE4MEM3MTMxODBDQ0EzMTAwRkRBNjEyIC8qIERhdGFiYXNlcy5EZXZlbG9wbWVudCAq
LyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSA1MTgwQzcxOTE4MENDQTMxMDBGREE2MTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhOYXRpdmVUYXJnZXQgIkRhdGFiYXNlcy5EZXZlbG9wbWVudCIgKi87CisJCQlidWls
ZFBoYXNlcyA9ICgKKwkJCQk1MTgwQzcxNDE4MENDQTMxMDBGREE2MTIgLyogU291cmNlcyAqLywK
KwkJCQk1MTgwQzcxNjE4MENDQTMxMDBGREE2MTIgLyogRnJhbWV3b3JrcyAqLywKKwkJCQk1MTgw
QzcxODE4MENDQTMxMDBGREE2MTIgLyogUmVzb3VyY2VzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVs
ZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSBEYXRh
YmFzZXMuRGV2ZWxvcG1lbnQ7CisJCQlwcm9kdWN0TmFtZSA9IE5ldHdvcmtpbmcuRGV2ZWxvcG1l
bnQ7CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gNTE4MEM3MUQxODBDQ0EzMTAwRkRBNjEyIC8qIGNv
bS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLkRldmVsb3BtZW50LnhwYyAqLzsKKwkJCXByb2R1Y3RU
eXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYnVuZGxlIjsKKwkJfTsKKwkJNTFGN0RDM0Yx
ODBDQzkzNjAwMjEyQ0EzIC8qIERhdGFiYXNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRh
cmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1MUY3REM0NjE4MENDOTM2MDAyMTJD
QTMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIkRhdGFi
YXNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk1MUY3REM0MDE4MENDOTM2MDAyMTJD
QTMgLyogU291cmNlcyAqLywKKwkJCQk1MUY3REM0MjE4MENDOTM2MDAyMTJDQTMgLyogRnJhbWV3
b3JrcyAqLywKKwkJCQk1MUY3REM0NTE4MENDOTM2MDAyMTJDQTMgLyogUmVzb3VyY2VzICovLAor
CQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJ
KTsKKwkJCW5hbWUgPSBEYXRhYmFzZXM7CisJCQlwcm9kdWN0TmFtZSA9IE5ldHdvcmtpbmc7CisJ
CQlwcm9kdWN0UmVmZXJlbmNlID0gNTFGN0RDNEExODBDQzkzNjAwMjEyQ0EzIC8qIGNvbS5hcHBs
ZS5XZWJLaXQuRGF0YWJhc2VzLnhwYyAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5w
cm9kdWN0LXR5cGUuYnVuZGxlIjsKKwkJfTsKKwkJNTFGQTFFMTcxODBDQ0FERTAwQzQ0QkU5IC8q
IERhdGFiYXNlUHJvY2VzcyAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1
aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1MUZBMUUyNDE4MENDQURFMDBDNDRCRTkgLyogQnVpbGQg
Y29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIkRhdGFiYXNlUHJvY2VzcyIg
Ki87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk1MUZBMUUxQzE4MENDQURFMDBDNDRCRTkgLyog
U291cmNlcyAqLywKKwkJCQk1MUZBMUUxRTE4MENDQURFMDBDNDRCRTkgLyogUmVzb3VyY2VzICov
LAorCQkJCTUxRkExRTIyMTgwQ0NBREUwMEM0NEJFOSAvKiBGcmFtZXdvcmtzICovLAorCQkJKTsK
KwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTUxRkEx
RTFBMTgwQ0NBREUwMEM0NEJFOSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBEYXRhYmFzZVByb2Nlc3M7CisJCQlwcm9kdWN0TmFtZSA9IE5ldHdvcmtQcm9jZXNz
OworCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDUxRkExRTI4MTgwQ0NBREUwMEM0NEJFOSAvKiBEYXRh
YmFzZVByb2Nlc3MuYXBwICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3Qt
dHlwZS5hcHBsaWNhdGlvbiI7CisJCX07CiAJCThEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBX
ZWJLaXQyICovID0gewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1
cmF0aW9uTGlzdCA9IDFERUI5MUFEMDg3MzNEQTUwMDEwRTlDRCAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0MiIgKi87CkBAIC01ODA2LDYgKzYw
NDAsNyBAQAogCQkJCThEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQyICovLAogCQkJ
CTFBNTBEQjFEMTEwQTNCREMwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzICovLAogCQkJCUJDREUwOTMz
MTMyNzI0OTYwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzICovLAorCQkJCTUxRkExRTE3MTgwQ0NB
REUwMEM0NEJFOSAvKiBEYXRhYmFzZVByb2Nlc3MgKi8sCiAJCQkJNTEwQ0M4MEQxNjEzQzc5OTAw
RDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzICovLAogCQkJCUMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVD
NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMUFDMjVGQUYxMkE0OEVBNzAwQkQyNjcxIC8q
IFBsdWdpblByb2Nlc3NTaGltICovLApAQCAtNTgxOCw2ICs2MDUzLDggQEAKIAkJCQlCQzgyODNG
ODE2QjRGRERFMDBBMjc4RkUgLyogUGx1Z2luLjMyICovLAogCQkJCUJDODI4NDFFMTZCNEZERjYw
MEEyNzhGRSAvKiBQbHVnaW4uNjQgKi8sCiAJCQkJQkM4Mjg0MzExNkI0RkUxMzAwQTI3OEZFIC8q
IFBsdWdpbi5EZXZlbG9wbWVudCAqLywKKwkJCQk1MUY3REMzRjE4MENDOTM2MDAyMTJDQTMgLyog
RGF0YWJhc2VzICovLAorCQkJCTUxODBDNzEzMTgwQ0NBMzEwMEZEQTYxMiAvKiBEYXRhYmFzZXMu
RGV2ZWxvcG1lbnQgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAq
LwpAQCAtNTg0MCw2ICs2MDc3LDI4IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCTUxODBDNzE4MTgwQ0NBMzEwMEZEQTYxMiAvKiBS
ZXNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OworCQk1MUY3REM0NTE4MEND
OTM2MDAyMTJDQTMgLyogUmVzb3VyY2VzICovID0geworCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVp
bGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgK
KwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsK
KwkJNTFGQTFFMUUxODBDQ0FERTAwQzQ0QkU5IC8qIFJlc291cmNlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZmlsZXMgPSAoCisJCQkJNTFGQTFFMUYxODBDQ0FERTAwQzQ0QkU5IC8qIFdlYktpdC5p
Y25zIGluIFJlc291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJOERDMkVGNTIwNDg2QTY5NDAwOThCMjE2IC8qIFJlc291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNjA0Nyw2ICs2MzA2LDggQEAKIAkJCQkiJChCVUlM
VF9QUk9EVUNUU19ESVIpL2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLkRldmVsb3BtZW50LnhwYyIs
CiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9jb20uYXBwbGUuV2ViS2l0Lk9mZmxpbmVTdG9y
YWdlLnhwYyIsCiAJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9jb20uYXBwbGUuV2ViS2l0Lk9m
ZmxpbmVTdG9yYWdlLkRldmVsb3BtZW50LnhwYyIsCisJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElS
KS9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy54cGMiLAorCQkJCSIkKEJVSUxUX1BST0RVQ1RT
X0RJUikvY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuRGV2ZWxvcG1lbnQueHBjIiwKIAkJCSk7
CiAJCQluYW1lID0gIkNvcHkgWFBDIHNlcnZpY2VzIGZvciBlbmdpbmVlcmluZyBidWlsZHMiOwog
CQkJb3V0cHV0UGF0aHMgPSAoCkBAIC02MDU5LDEwICs2MzIwLDEyIEBACiAJCQkJIiQoQlVJTFRf
UFJPRFVDVFNfRElSKS8ke1dSQVBQRVJfTkFNRX0vV2ViS2l0Mi5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9YUENTZXJ2aWNlcy9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi5EZXZlbG9wbWVudC54cGMiLAog
CQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvJHtXUkFQUEVSX05BTUV9L1dlYktpdDIuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXMvY29tLmFwcGxlLldlYktpdC5PZmZsaW5lU3RvcmFn
ZS54cGMiLAogCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikvJHtXUkFQUEVSX05BTUV9L1dlYktp
dDIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXMvY29tLmFwcGxlLldlYktpdC5PZmZs
aW5lU3RvcmFnZS5EZXZlbG9wbWVudC54cGMiLAorCQkJCSIkKEJVSUxUX1BST0RVQ1RTX0RJUikv
JHtXUkFQUEVSX05BTUV9L1dlYktpdDIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXMv
Y29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMueHBjIiwKKwkJCQkiJChCVUlMVF9QUk9EVUNUU19E
SVIpLyR7V1JBUFBFUl9OQU1FfS9XZWJLaXQyLmZyYW1ld29yay9WZXJzaW9ucy9BL1hQQ1NlcnZp
Y2VzL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLkRldmVsb3BtZW50LnhwYyIsCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGgg
PSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiaWYgW1sgXCIke0NPTkZJR1VSQVRJT059XCIg
PT0gXCJQcm9kdWN0aW9uXCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG5YUENfU0VSVklDRVNf
UEFUSD1cIiR7QlVJTFRfUFJPRFVDVFNfRElSfS8ke1dSQVBQRVJfTkFNRX0vV2ViS2l0Mi5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9YUENTZXJ2aWNlc1wiXG5ta2RpciAtcCBcIiR7WFBDX1NFUlZJQ0VT
X1BBVEh9XCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQu
V2ViQ29udGVudC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQu
V2ViQ29udGVudC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFU
SH0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwY1wiXG5kaXR0byBc
IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjXCIg
XCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjXCJc
bmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2lu
Zy5EZXZlbG9wbWVudC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZy5EZXZlbG9wbWVudC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCIgXCIke1hQQ19TRVJWSUNFU19Q
QVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIke1hQQ19TRVJW
SUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZGl0dG8gXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uRGV2ZWxvcG1lbnQueHBj
XCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi5EZXZlbG9w
bWVudC54cGNcIlxuIjsKKwkJCXNoZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtDT05GSUdVUkFUSU9O
fVwiID09IFwiUHJvZHVjdGlvblwiIF1dOyB0aGVuXG4gICAgZXhpdFxuZmlcblxuWFBDX1NFUlZJ
Q0VTX1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtXUkFQUEVSX05BTUV9L1dlYktpdDIu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxubWtkaXIgLXAgXCIke1hQQ19TRVJW
SUNFU19QQVRIfVwiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5h
cHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VT
X1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGNcIlxuZGl0
dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhw
Y1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhw
Y1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdv
cmtpbmcuRGV2ZWxvcG1lbnQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUu
V2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjMyLnhwY1wiIFwiJHtYUENfU0VSVklD
RVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCJcbmRpdHRvIFwiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0LnhwY1wiIFwiJHtYUENf
U0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCJcbmRpdHRvIFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLkRldmVsb3BtZW50
LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uRGV2
ZWxvcG1lbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5X
ZWJLaXQuRGF0YWJhc2VzLnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldl
YktpdC5EYXRhYmFzZXMueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5h
cHBsZS5XZWJLaXQuRGF0YWJhc2VzLkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNf
UEFUSH0vY29tLmFwcGxlLldlYktpdC5EYXRhYmFzZXMuRGV2ZWxvcG1lbnQueHBjXCJcbiI7CiAJ
CX07CiAJCUMwQ0U3Mjg0MTI0N0U2NjgwMEJDMEVDNCAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CkBAIC02MTEzLDYg
KzYzNzYsMzAgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKKwkJNTE4MEM3MTQxODBDQ0EzMTAwRkRBNjEyIC8qIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk1MTgwQzcxNTE4MENDQTMxMDBGREE2MTIgLyog
WFBDU2VydmljZU1haW4uRGV2ZWxvcG1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKwkJNTFGN0RDNDAx
ODBDQzkzNjAwMjEyQ0EzIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVp
bGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgK
KwkJCQk1MUY3REM0MTE4MENDOTM2MDAyMTJDQTMgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291
cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKKwkJfTsKKwkJNTFGQTFFMUMxODBDQ0FERTAwQzQ0QkU5IC8qIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk1MUZBMUUxRDE4MENDQURFMDBDNDRCRTkgLyogQ2hp
bGRQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk4REMyRUY1NDA0ODZBNjk0MDA5OEIy
MTYgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTYzNDgsNiArNjYzNSw3IEBACiAJCQkJ
MUE0NEI5NUIxNkI3M0Y5RjAwQjdCQkQ4IC8qIFN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBQjMxQTk2MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTQ0Qjk1NzE2QjczN0FBMDBCN0JC
RDggLyogU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTE3REQ1
QkUxODBEQTdEMzAwODE2NjBCIC8qIERhdGFiYXNlUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBMTNCRUIzMTYzNUE5QzgwMEYxOUMwMyAvKiBTdHJpbmdSZWZlcmVuY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMjk2QkQ4NUUxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0
aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFaWjQxN0VGMTJDMDBEODcwMDJCRTY3QiAv
KiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02NDA3LDYgKzY2
OTUsNyBAQAogCQkJCUY2MkE3NjVDMTJCMUFCQzMwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0FDMTEyMDEyQzkyQzFGMDBCMDhFRUUg
LyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjYyQTc2QjgxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxN0RENUM1MTgwREMzRTEwMDgxNjYw
QiAvKiBEYXRhYmFzZVByb2Nlc3NQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQjdE
NzJEMTI4OENBQUQwMENGRDA4QyAvKiBXZWJEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzExMUE1RDExMkY0RkJCMDAzMzdCQUIgLyogV2ViRHJhZ0NsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDNTc0QTM3NzEyRTYwOTlEMDAyREZFOTggLyogV2ViRHJhZ0NsaWVu
dE1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtNjU3Miw2ICs2ODYxLDcgQEAKIAkJCQk1MTJGNThG
OTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tDcmVkZW50aWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNDA3NUY3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjYyQTc2NjExMkIxQUJFRDAwMDVGMUI2IC8qIFdLRGF0YWJhc2VNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUxN0RENUMyMTgwREI3QjcwMDgxNjYwQiAvKiBEYXRhYmFzZVByb2Nl
c3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVGOTEyNEZGMDI3MDA2OEYyMEEgLyog
V0tEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMDE3RDA4MTYyNjBGRjQwMDcw
NTRGNSAvKiBXS0RPTURvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMTdEMEExNjI2
MEZGNDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLApAQCAtNjYwMyw2
ICs2ODkzLDcgQEAKIAkJCQk1MUE5RTEwQTEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzRDNBM0I1MTMzOTYwMEIwMDcw
OUJFNCAvKiBXS01lZGlhQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3
NUZEMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVBcnJheS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MUY3REMxNjE4MENDNEM3MDAyMTJDQTMgLyogRGF0YWJhc2VTZXJ2aWNlRW50cnlQb2lu
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NUZGMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011
dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjY5RkFBMTE3NkQxQ0Iw
MDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxOEJF
MTc3MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTY2MTYsNiArNjkwNyw3IEBACiAJCQkJNTFGQ0IxODgxN0JCRkUwMzAwMzk0Q0Q4IC8qIFN5
bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q1
OTdENjExMkI1NkRDMDBFQzhDMjMgLyogV0tQYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0I2MzM4MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MTMwRjBFNTE4MENDQjkxMDA2MDJDMTggLyogRGF0YWJhc2VQcm9jZXNzTWFpbi5tbSBp
biBTb3VyY2VzICovLAogCQkJCUJDRTE3QjdEMTM4MUYxMTcwMDEyQTY0MSAvKiBXS1BhZ2VQcml2
YXRlTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDMTM1QUE4MTczQjBCQ0EwMDU4NkFFMiAv
KiBXS1BsdWdpbkluZm9ybWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzg2RkYzMTMw
QjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTY2MjQsNiArNjkxNiw3IEBACiAJCQkJQkNCQUFDRUMxNDUyMjVFMzAwNTNGODJGIC8q
IFdLUHJvY2Vzc0dyb3VwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRjU4RkIxMkE4OEE1NDAw
NjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OTQ4
NDA4MTUwQzRCOTcwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTUxRjdEQzE0MTgwQ0M0QUQwMDIxMkNBMyAvKiBEYXRhYmFzZVByb2Nlc3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzc2MDg4MjIxNTA0MTRGNzAwRkM4MkM3IC8qIFdLUmVuZGVyT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMzY3NjNBMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jl
c291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MzQ0NDVDMTJBODg1
RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjc1
Myw2ICs3MDQ2LDI2IEBACiAJCQl0YXJnZXQgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTYgLyog
V2ViS2l0MiAqLzsKIAkJCXRhcmdldFByb3h5ID0gNTEwQ0M4NTAxNjEzQzk4RDAwRDAzRUQzIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJNTFBNjBCMkMxODBDQ0YxMjAwRjNC
RjUwIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OworCQkJdGFyZ2V0ID0gNTFGQTFFMTcxODBDQ0FERTAwQzQ0QkU5IC8qIERhdGFiYXNl
UHJvY2VzcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gNTFBNjBCMkIxODBDQ0YxMjAwRjNCRjUwIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKwkJNTFBNjBCMkUxODBDQ0YxNzAwRjNC
RjUwIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OworCQkJdGFyZ2V0ID0gNTFGN0RDM0YxODBDQzkzNjAwMjEyQ0EzIC8qIERhdGFiYXNl
cyAqLzsKKwkJCXRhcmdldFByb3h5ID0gNTFBNjBCMkQxODBDQ0YxNzAwRjNCRjUwIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKwkJNTFBNjBCMzAxODBDQ0YxNzAwRjNCRjUwIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OworCQkJdGFyZ2V0ID0gNTE4MEM3MTMxODBDQ0EzMTAwRkRBNjEyIC8qIERhdGFiYXNlcy5EZXZl
bG9wbWVudCAqLzsKKwkJCXRhcmdldFByb3h5ID0gNTFBNjBCMkYxODBDQ0YxNzAwRjNCRjUwIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKwkJNTFGQTFFMUExODBDQ0FERTAwQzQ0
QkU5IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OworCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIg
Ki87CisJCQl0YXJnZXRQcm94eSA9IDUxRkExRTFCMTgwQ0NBREUwMEM0NEJFOSAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAJCUJDNzdGOTU2MTZEMDQ1OTEwMEY4Rjc4QSAvKiBQ
QlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsK
IAkJCXRhcmdldCA9IEJDODI4M0Y4MTZCNEZEREUwMEEyNzhGRSAvKiBQbHVnaW4uMzIgKi87CkBA
IC02OTc2LDYgKzcyODksNjkgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsK
KwkJNTE4MEM3MUExODBDQ0EzMTAwRkRBNjEyIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUxQTYw
QjI4MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFzZVNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25m
aWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJ
fTsKKwkJNTE4MEM3MUIxODBDQ0EzMTAwRkRBNjEyIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2Eg
PSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0g
NTFBNjBCMjgxODBDQ0Q5MDAwRjNCRjUwIC8qIERhdGFiYXNlU2VydmljZS5EZXZlbG9wbWVudC54
Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9IFJlbGVh
c2U7CisJCX07CisJCTUxODBDNzFDMTgwQ0NBMzEwMEZEQTYxMiAvKiBQcm9kdWN0aW9uICovID0g
eworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJl
ZmVyZW5jZSA9IDUxQTYwQjI4MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFzZVNlcnZpY2UuRGV2
ZWxvcG1lbnQueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5h
bWUgPSBQcm9kdWN0aW9uOworCQl9OworCQk1MUY3REM0NzE4MENDOTM2MDAyMTJDQTMgLyogRGVi
dWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1
cmF0aW9uUmVmZXJlbmNlID0gNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIERhdGFiYXNlU2Vy
dmljZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9
IERlYnVnOworCQl9OworCQk1MUY3REM0ODE4MENDOTM2MDAyMTJDQTMgLyogUmVsZWFzZSAqLyA9
IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25S
ZWZlcmVuY2UgPSA1MUE2MEIyOTE4MENDRDkwMDBGM0JGNTAgLyogRGF0YWJhc2VTZXJ2aWNlLnhj
Y29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUmVsZWFz
ZTsKKwkJfTsKKwkJNTFGN0RDNDkxODBDQzkzNjAwMjEyQ0EzIC8qIFByb2R1Y3Rpb24gKi8gPSB7
CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVm
ZXJlbmNlID0gNTFBNjBCMjkxODBDQ0Q5MDAwRjNCRjUwIC8qIERhdGFiYXNlU2VydmljZS54Y2Nv
bmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rp
b247CisJCX07CisJCTUxRkExRTI1MTgwQ0NBREUwMEM0NEJFOSAvKiBEZWJ1ZyAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1MUE2MEIyNzE4MENDRDkwMDBGM0JGNTAgLyogRGF0YWJhc2VQcm9jZXNzLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07
CisJCTUxRkExRTI2MTgwQ0NBREUwMEM0NEJFOSAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDUx
QTYwQjI3MTgwQ0NEOTAwMEYzQkY1MCAvKiBEYXRhYmFzZVByb2Nlc3MueGNjb25maWcgKi87CisJ
CQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQk1
MUZBMUUyNzE4MENDQURFMDBDNDRCRTkgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1MUE2
MEIyNzE4MENDRDkwMDBGM0JGNTAgLyogRGF0YWJhc2VQcm9jZXNzLnhjY29uZmlnICovOworCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJ
NUQyMkQ2OUIxMUE3NTM0NjAwQkYzMEU1IC8qIFByb2R1Y3Rpb24gKi8gPSB7CiAJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gMUE0
Rjk3NkExMDBFN0I2NjAwNjM3QTE4IC8qIEJhc2UueGNjb25maWcgKi87CkBAIC03MzAyLDYgKzc2
NzgsMzYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1
bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTUxODBDNzE5MTgwQ0NB
MzEwMEZEQTYxMiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdl
dCAiRGF0YWJhc2VzLkRldmVsb3BtZW50IiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTUxODBDNzFBMTgwQ0NBMzEw
MEZEQTYxMiAvKiBEZWJ1ZyAqLywKKwkJCQk1MTgwQzcxQjE4MENDQTMxMDBGREE2MTIgLyogUmVs
ZWFzZSAqLywKKwkJCQk1MTgwQzcxQzE4MENDQTMxMDBGREE2MTIgLyogUHJvZHVjdGlvbiAqLywK
KwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0
Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OworCQk1MUY3REM0NjE4MENDOTM2
MDAyMTJDQTMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
IkRhdGFiYXNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQk1MUY3REM0NzE4MENDOTM2MDAyMTJDQTMgLyogRGVi
dWcgKi8sCisJCQkJNTFGN0RDNDgxODBDQzkzNjAwMjEyQ0EzIC8qIFJlbGVhc2UgKi8sCisJCQkJ
NTFGN0RDNDkxODBDQzkzNjAwMjEyQ0EzIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKKwkJNTFGQTFFMjQxODBDQ0FERTAwQzQ0QkU5IC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJEYXRhYmFzZVByb2Nl
c3MiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCisJCQkJNTFGQTFFMjUxODBDQ0FERTAwQzQ0QkU5IC8qIERlYnVnICovLAor
CQkJCTUxRkExRTI2MTgwQ0NBREUwMEM0NEJFOSAvKiBSZWxlYXNlICovLAorCQkJCTUxRkExRTI3
MTgwQ0NBREUwMEM0NEJFOSAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCUJDM0RFNDc2MTVBOTE3NjQwMDhEMjZGQyAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViQ29udGVudCIgKi8gPSB7CiAJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDJQcmVmaXguaAppbmRleCAwZDM2MzE4Li5iNzQyMjkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
MlByZWZpeC5oCkBAIC0zNiw2ICszNiw4IEBACiAKICNkZWZpbmUgRU5BQkxFX05FVFdPUktfUFJP
Q0VTUyAxCiAKKyNkZWZpbmUgRU5BQkxFX0RBVEFCQVNFX1BST0NFU1MgMQorCiAjZGVmaW5lIEVO
QUJMRV9NRU1PUllfU0FNUExFUiAxCiAKICNkZWZpbmUgRU5BQkxFX0NVU1RPTV9QUk9UT0NPTFMg
MQo=
</data>
<flag name="review"
          id="236827"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>