<?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>148317</bug_id>
          
          <creation_ts>2015-08-21 11:56:59 -0700</creation_ts>
          <short_desc>[Cocoa] API tests using the Modern WebKit API should be able to create web process plug-ins</short_desc>
          <delta_ts>2015-08-23 15:52:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147872</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119836</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-21 11:56:59 -0700</bug_when>
    <thetext>[Cocoa] API tests using the Modern WebKit API should be able to create web process plug-ins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119870</commentid>
    <comment_count>1</comment_count>
      <attachid>259644</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-21 12:40:08 -0700</bug_when>
    <thetext>Created attachment 259644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119873</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 12:42:01 -0700</bug_when>
    <thetext>Attachment 259644 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:46:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:52:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:59:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:65:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 11 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>1119897</commentid>
    <comment_count>3</comment_count>
      <attachid>259651</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-21 13:40:46 -0700</bug_when>
    <thetext>Created attachment 259651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119899</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 13:43:39 -0700</bug_when>
    <thetext>Attachment 259651 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:46:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:52:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:59:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:65:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 12 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>1120012</commentid>
    <comment_count>5</comment_count>
      <attachid>259687</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-21 17:29:31 -0700</bug_when>
    <thetext>Created attachment 259687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120013</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 17:31:57 -0700</bug_when>
    <thetext>Attachment 259687 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:46:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:56:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:67:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:77:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 12 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>1120164</commentid>
    <comment_count>7</comment_count>
      <attachid>259736</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-22 22:25:24 -0700</bug_when>
    <thetext>Created attachment 259736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120165</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-22 22:27:01 -0700</bug_when>
    <thetext>Attachment 259736 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:44:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:54:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:65:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:75:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 11 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>1120177</commentid>
    <comment_count>9</comment_count>
      <attachid>259736</attachid>
    <who name="">mitz</who>
    <bug_when>2015-08-23 08:42:31 -0700</bug_when>
    <thetext>Comment on attachment 259736
Patch

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

&gt; Tools/ChangeLog:10
&gt; +        WKProcessPool returned by processPoolWithTestPlugInPrincipalClassName() when creating WKWebViews.

This comment is outdated. processPoolWithTestPlugInPrincipalClassName() doesn’t exist in this patch.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:35
&gt; +static bool isDone = false;

No need to initialize statics to false, 0, etc.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:45
&gt; +            EXPECT_FALSE(!!result);

Could use EXPECT_NULL here.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:56
&gt; +            EXPECT_TRUE([result isEqualToString:testString]);

Could use EXPECT_STREQ here.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:76
&gt; +            EXPECT_FALSE(!!result);

EXPECT_NULL?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:83
&gt; +

Another thing you could test here is that setting a bundle parameter before creating the WKWebView also works.

&gt; Tools/TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugIn.mm:68
&gt; +- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController didCreateBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController
&gt; +{
&gt; +    if ([_testPlugIn respondsToSelector:@selector(webProcessPlugIn:didCreateBrowserContextController:)])
&gt; +        [_testPlugIn webProcessPlugIn:plugInController didCreateBrowserContextController:browserContextController];
&gt; +}
&gt; +
&gt; +- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController willDestroyBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController
&gt; +{
&gt; +    if ([_testPlugIn respondsToSelector:@selector(webProcessPlugIn:willDestroyBrowserContextController:)])
&gt; +        [_testPlugIn webProcessPlugIn:plugInController willDestroyBrowserContextController:browserContextController];
&gt; +}

You might be able to use a generic forwarding mechanism like -forwardingTargetForSelector: instead of implementing every present and future method in the protocol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120203</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-23 15:24:57 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 259736 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259736&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:10
&gt; &gt; +        WKProcessPool returned by processPoolWithTestPlugInPrincipalClassName() when creating WKWebViews.
&gt; 
&gt; This comment is outdated. processPoolWithTestPlugInPrincipalClassName()
&gt; doesn’t exist in this patch.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:35
&gt; &gt; +static bool isDone = false;
&gt; 
&gt; No need to initialize statics to false, 0, etc.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:45
&gt; &gt; +            EXPECT_FALSE(!!result);
&gt; 
&gt; Could use EXPECT_NULL here.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:56
&gt; &gt; +            EXPECT_TRUE([result isEqualToString:testString]);
&gt; 
&gt; Could use EXPECT_STREQ here.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:76
&gt; &gt; +            EXPECT_FALSE(!!result);
&gt; 
&gt; EXPECT_NULL?
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:83
&gt; &gt; +
&gt; 
&gt; Another thing you could test here is that setting a bundle parameter before
&gt; creating the WKWebView also works.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugIn.mm:68
&gt; &gt; +- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController didCreateBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController
&gt; &gt; +{
&gt; &gt; +    if ([_testPlugIn respondsToSelector:@selector(webProcessPlugIn:didCreateBrowserContextController:)])
&gt; &gt; +        [_testPlugIn webProcessPlugIn:plugInController didCreateBrowserContextController:browserContextController];
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController willDestroyBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController
&gt; &gt; +{
&gt; &gt; +    if ([_testPlugIn respondsToSelector:@selector(webProcessPlugIn:willDestroyBrowserContextController:)])
&gt; &gt; +        [_testPlugIn webProcessPlugIn:plugInController willDestroyBrowserContextController:browserContextController];
&gt; &gt; +}
&gt; 
&gt; You might be able to use a generic forwarding mechanism like
&gt; -forwardingTargetForSelector: instead of implementing every present and
&gt; future method in the protocol.

This worked, but I also had to override -respondsToSelector:

- (BOOL)respondsToSelector:(SEL)aSelector
{
    if ([_testPlugIn respondsToSelector:aSelector])
        return YES;
    return [super respondsToSelector:aSelector];
}

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120204</commentid>
    <comment_count>11</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-23 15:31:43 -0700</bug_when>
    <thetext>Committed r188844: &lt;http://trac.webkit.org/changeset/188844&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120205</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-08-23 15:39:24 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Committed r188844: &lt;http://trac.webkit.org/changeset/188844&gt;

It broke the build on the Apple Yosemite 32 bit bot:
https://build.webkit.org/builders/Apple%20Yosemite%20Release%20%2832-bit%20Build%29/builds/5451</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120206</commentid>
    <comment_count>13</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-08-23 15:52:09 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Committed r188844: &lt;http://trac.webkit.org/changeset/188844&gt;
&gt; 
&gt; It broke the build on the Apple Yosemite 32 bit bot:
&gt; https://build.webkit.org/builders/Apple%20Yosemite%20Release%20%2832-
&gt; bit%20Build%29/builds/5451

Should be fixed in r188845: http://trac.webkit.org/changeset/188845</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259644</attachid>
            <date>2015-08-21 12:40:08 -0700</date>
            <delta_ts>2015-08-21 13:40:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148317-20150821124002.patch</filename>
            <type>text/plain</type>
            <size>34974</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQxODQ5ZWI2MjRhOGM2OWMwYjU0NGYwNmFiMjM0YWU5
NjNhMjlhMC4uNDdhOTFmMjczNDlmYTc1YTU1ODNkMTVjMTQxMDIwMDdlNGY3NmM4ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDE1LTA4LTIxICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIEFQSSB0ZXN0cyB1c2luZyB0aGUgTW9kZXJuIFdlYktpdCBBUEkgc2hvdWxkIGJl
IGFibGUgdG8gY3JlYXRlIHdlYiBwcm9jZXNzIHBsdWctaW5zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgzMTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0eSBmb3IgTW9kZXJu
IFdlYktpdCBBUEkgdGVzdHMgdG8gY3JlYXRlIFdLV2ViUHJvY2Vzc1BsdWdJbnMuIEEgdGVzdCBj
YW4gY3JlYXRlIGEgcGx1Zy1pbiBieQorICAgICAgICBjcmVhdGluZyBhIGNsYXNzIHRoYXQgY29u
Zm9ybXMgdG8gV0tXZWJQcm9jZXNzUGx1Z0luLCBhZGRpbmcgaXQgdG8gdGhlIFdlYlByb2Nlc3NQ
bHVnSW4gdGFyZ2V0LCBhbmQgdXNpbmcgdGhlCisgICAgICAgIFdLUHJvY2Vzc1Bvb2wgcmV0dXJu
ZWQgYnkgcHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZSgpIHdoZW4g
Y3JlYXRpbmcgV0tXZWJWaWV3cy4KKworICAgICAgICBTaW5jZSBUZXN0V2ViS2l0QVBJIHJlbGll
cyBvbiBhIGJ1bmRsZSBwYXJhbWV0ZXIgdG8ga25vdyB3aGljaCB0ZXN0IGNsYXNzIHRvIGluc3Rh
bnRpYXRlIGluIHRoZSBwbHVnLWluLCBJIGFsc28KKyAgICAgICAgYWRkZWQgYSBuZXcgQVBJIHRl
c3QgZm9yIGJ1bmRsZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9XZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmg6IERlY2xhcmVkIFRlc3RQbHVnSW5Qcmlu
Y2lwYWxDbGFzc05hbWVQYXJhbWV0ZXIgYW5kIHByb2Nlc3NQb29sV2l0aFRlc3RQbHVnSW5Qcmlu
Y2lwYWxDbGFzc05hbWUoKS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgV2ViUHJvY2Vzc1BsdWdJbi4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1t
OiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOiBUZXN0ZWQgdGhlIHBsdWctaW4gYnkgY2hlY2tpbmcg
YnVuZGxlIHBhcmFtZXRlcnMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5oOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tOiBBZGRl
ZC4KKyAgICAgICAgKC1bQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOmRp
ZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpdKTogU3RhcnRlZCBvYnNlcnZpbmcgY2hh
bmdlcyB0byBhCisgICAgICAgIGJ1bmRsZSBwYXJhbWV0ZXIgYW5kIGFza2VkIGZvciBhbiBpbml0
aWFsIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgKC1bQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiBkZWFs
bG9jXSk6IFN0b3BwZWQgb2JzZXJ2aW5nIGNoYW5nZXMgdG8gYSBidW5kbGUgcGFyYW1ldGVyLgor
ICAgICAgICAoLVtCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6
b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IFdoZW4gdGhlIGJ1bmRsZSBwYXJhbWV0ZXIgY2hh
bmdlcywKKyAgICAgICAgbWlycm9yIGl0cyB2YWx1ZSBpbiB0aGUgbWFpbiBmcmFtZSdzIEpTQ29u
dGV4dC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1BsYXRmb3JtVXRpbGl0aWVzQ29j
b2EubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpwcm9jZXNzUG9vbFdpdGhUZXN0
UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lKTogQ3JlYXRlZCBhIFdLUHJvY2Vzc1Bvb2wgd2l0aCB0
aGUgY29ycmVjdAorICAgICAgICBpbmplY3RlZCBidW5kbGUgVVJMIGFuZCBhIGJ1bmRsZSBwYXJh
bWV0ZXIgaW5kaWNhdGluZyB3aGljaCBwcmluY2lwYWwgY2xhc3MgdGhlIHRlc3Qgd2lzaGVzIHRv
IHVzZS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vSW5m
by5wbGlzdDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNz
UGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4uaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4ubW06IEFkZGVkLgorICAg
ICAgICAoLVtXZWJQcm9jZXNzUGx1Z0luIHdlYlByb2Nlc3NQbHVnSW46aW5pdGlhbGl6ZVdpdGhP
YmplY3Q6XSk6IENyZWF0ZWQgdGhlIHRlc3QncyBwcmluY2lwYWwgY2xhc3MgYW5kIHNlbnQKKyAg
ICAgICAgd2ViUHJvY2Vzc1BsdWdJbjppbml0aWFsaXplV2l0aE9iamVjdDogdG8gaXQuCisgICAg
ICAgICgtW1dlYlByb2Nlc3NQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2Vy
Q29udGV4dENvbnRyb2xsZXI6XSk6IEZvcndhcmRlZCB0byB0aGUgdGVzdCdzIHByaW5jaXBhbCBj
bGFzcy4KKyAgICAgICAgKC1bV2ViUHJvY2Vzc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOndpbGxE
ZXN0cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOl0pOiBEaXR0by4KKwogMjAxNS0wOC0xNyAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5
IGhvdyBQbGF0Zm9ybVdlYlZpZXdzIGFyZSBjcmVhdGVkIHdoZW4gdmlldyBvcHRpb25zIGNoYW5n
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9XZWJQcm9j
ZXNzUGx1Z0luLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9X
ZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzOWJkM2Q4YmFkMzg3YTdkZGEy
YjU0MDZmMzQ0YTEwYWNlMTgxOWQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3NQbHVnSW4ueGNjb25maWcKQEAgLTAsMCArMSwz
MCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy8vIGFyZSBtZXQ6CisvLyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8v
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworLy8gQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisv
LyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisvLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKy8vIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKy8v
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisvLyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKy8vIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisvLyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorLy8gQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorLy8gVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorLy8KKworSU5GT1BMSVNUX0ZJTEUgPSBjb2NvYS9XZWJQcm9jZXNzUGx1Z0lu
L0luZm8ucGxpc3Q7CitQUk9EVUNUX05BTUUgPSBUZXN0V2ViS2l0QVBJOworRVhFQ1VUQUJMRV9T
VUZGSVggPSAuYnVuZGxlOworV1JBUFBFUl9FWFRFTlNJT04gPSB3a2J1bmRsZTsKK09USEVSX0xE
RkxBR1MgPSAkKGluaGVyaXRlZCkgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3Jr
IFdlYktpdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1VdGlsaXRp
ZXMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1VdGlsaXRpZXMuaAppbmRleCAyZTFl
MWIwYjc0Y2Q5ZTJhYjNmZjgxOTQzOWRlZDRkZDZiZGExYmJhLi5hNDQ0NGJjYTM1OTRiMDhkMGM0
ODJmNjdkZmNiZDFhYjRlZTBhMWQyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtVXRpbGl0aWVzLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxp
dGllcy5oCkBAIC0zMCw2ICszMCwxMSBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPHN0cmluZz4KIAorI2lmIGRlZmluZWQoX19PQkpDX18pICYmIFdLX0FQSV9F
TkFCTEVECisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CitAY2xhc3MgV0tQcm9jZXNzUG9vbDsK
KyNlbmRpZgorCiAjaWYgVVNFKEZPVU5EQVRJT04pCiBPQkpDX0NMQVNTIE5TU3RyaW5nOwogI2Vu
ZGlmCkBAIC03NSw2ICs4MCwxMSBAQCBzdGF0aWMgaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9u
UmVzdWx0IGFzc2VydFdLU3RyaW5nRXF1YWwoY29uc3QgY2hhciogZXhwZWN0ZQogI2RlZmluZSBF
WFBFQ1RfV0tfU1RSRVEoZXhwZWN0ZWQsIGFjdHVhbCkgXAogICAgIEVYUEVDVF9QUkVEX0ZPUk1B
VDIoVGVzdFdlYktpdEFQSTo6VXRpbDo6YXNzZXJ0V0tTdHJpbmdFcXVhbCwgZXhwZWN0ZWQsIGFj
dHVhbCkKIAorI2lmIGRlZmluZWQoX19PQkpDX18pICYmIFdLX0FQSV9FTkFCTEVECitleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBUZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lUGFyYW1ldGVyOwor
UmV0YWluUHRyPFdLUHJvY2Vzc1Bvb2w+IHByb2Nlc3NQb29sV2l0aFRlc3RQbHVnSW5QcmluY2lw
YWxDbGFzc05hbWUoTlNTdHJpbmcgKik7CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgVXRpbAog
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGFjNGNjY2RjMjQ0MWQ1MTMxMDAzZWMyMjU5ZjMwY2JhMzU3MWUxYjguLjEwOGNhY2IyYzE3N2Q2
MDkxMGU3NWU5NWJkM2FlYjlkNjAzZTgwMmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
NjQsNiArMjY0LDEwIEBACiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAvKiBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLzsgfTsKIAkJ
OUIyNkZDQ0ExNTlEMTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlCMjZGQ0I0MTU5RDE1RTcwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0u
aHRtbCAqLzsgfTsKIAkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9u
TmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFt
ZWRJdGVtLmh0bWwgKi87IH07CisJCUExM0VCQkFBMUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9j
ZXNzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEzRUJCQTkxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gKi87IH07
CisJCUExM0VCQkFCMUI4NzQzNDYwMDA5NzExMCAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzlFNzIx
QTQyM0EyQjAwRjU5MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gKi87IH07CisJCUEx
M0VCQkIwMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQUUxQjg3NDM2
RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gKi87IH07CisJCUExM0VCQkIx
MUI4NzQzODAwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8q
IEJ1bmRsZVBhcmFtZXRlcnMubW0gKi87IH07CiAJCUE1N0EzNEYyMTZBRjZCMkIwMEMyNTAxRiAv
KiBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTdBMzRGMTE2QUY2OUUy
MDBDMjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgKi87
IH07CiAJCUE1RTIwMjc1MTVCMjFGNkUwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhN
ZWRpYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1RTIwMjcwMTVCMjE4MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhN
ZWRpYS5odG1sICovOyB9OwogCQlCNTVBRDFENTE3OUYzQjMwMDBBQzE0OTQgLyogUHJldmVudElt
YWdlTG9hZFdpdGhBdXRvUmVzaXppbmdfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1NUFEMUQzMTc5RjNBQkYwMEFDMTQ5NCAvKiBQcmV2
ZW50SW1hZ2VMb2FkV2l0aEF1dG9SZXNpemluZ19CdW5kbGUuY3BwICovOyB9OwpAQCAtMzI0LDYg
KzMyOCwxMyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA3Q0NFN0U4QjFBNDExNDRFMDA0
NDdDNEM7CiAJCQlyZW1vdGVJbmZvID0gVGVzdFdlYktpdEFQSUxpYnJhcnk7CiAJCX07CisJCUEx
M0VCQkIyMUI4NzQ0MTkwMDA5NzExMCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJ
CQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSAwOEZC
Nzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUg
PSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBBMTNFQkI0ODFCODczMzlFMDAwOTcxMTA7
CisJCQlyZW1vdGVJbmZvID0gV2ViUHJvY2Vzc1BsdWdJbjsKKwkJfTsKIAkJQkM1NzVBOTUxMjZF
NzRFNzAwNkYwRjEyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBC
WENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4NDE1
NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTYxOSw2ICs2MzAsMTQgQEAKIAkJ
OUIyNkZDQjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJ
dGVtLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNEY4RkEzMTU5RDUyQjEw
MDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjRGOEZBNjE1OUQ1MkNBMDAyRDlGOTQgLyogSFRNTENv
bGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEhUTUxD
b2xsZWN0aW9uTmFtZWRJdGVtLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEx
M0VCQjQ5MUI4NzMzOUUwMDA5NzExMCAvKiBUZXN0V2ViS2l0QVBJLndrYnVuZGxlICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxl
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJLndrYnVuZGxlOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlBMTNFQkI1MjFCODczNDY2MDAwOTcx
MTAgLyogV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7
IHBhdGggPSBXZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBMTNFQkI1NDFCODczNEUwMDAwOTcxMTAgLyogSW5mby5wbGlzdCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTEzRUJCQTgxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc1BsdWdJbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTNFQkJBOTFCODc0MjhEMDAwOTcxMTAgLyogV2Vi
UHJvY2Vzc1BsdWdJbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYlByb2Nlc3NQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExM0VC
QkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVuZGxlUGFyYW1ldGVycy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEzRUJCQUQxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBh
cmFtZXRlcnNQbHVnSW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnVuZGxl
UGFyYW1ldGVyc1BsdWdJbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTNFQkJB
RTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQTRGRTVEMThERDNEQjcwMEI1RUE4QSAv
KiBEb3dubG9hZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERv
d25sb2FkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUZERkQyRTE5QzI4OEJC
MDA1MTQ4QTQgLyogV0tJbWFnZUNyZWF0ZUNHSW1hZ2VDcmFzaC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ltYWdlQ3JlYXRlQ0dJbWFnZUNyYXNoLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU3QTM0RUYxNkFGNjc3MjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdl
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgzNiw2ICs4NTUsNyBAQAogCQkw
RjEzOUU3MTFBNDIzQTFEMDBGNTkwRjUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUExM0VCQjQ0MUI4NzMzMkIwMDA5NzExMCAvKiBXZWJQ
cm9jZXNzUGx1Z0luICovLAogCQkJCTBGMTM5RTcyMUE0MjNBMkIwMEY1OTBGNSAvKiBQbGF0Zm9y
bVV0aWxpdGllc0NvY29hLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsKQEAgLTg1NSw2
ICs4NzUsNyBAQAogCQkJCThERDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJ
ICovLAogCQkJCUJDNTc1OTgwMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RX
ZWJLaXRBUEkuYnVuZGxlICovLAogCQkJCTdDQ0U3RThDMUE0MTE0NEUwMDQ0N0M0QyAvKiBsaWJU
ZXN0V2ViS2l0QVBJLmEgKi8sCisJCQkJQTEzRUJCNDkxQjg3MzM5RTAwMDk3MTEwIC8qIFRlc3RX
ZWJLaXRBUEkud2tidW5kbGUgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTg2Myw2ICs4ODQsOSBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3Q0VGQTk2NDFBQzBCOUUyMDBCOTEwRkQgLyogX1dL
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSAqLywKKwkJCQlBMTNFQkJBQzFCODc0MzZGMDAw
OTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSAqLywKKwkJCQlBMTNFQkJBRDFCODc0MzZGMDAw
OTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5oICovLAorCQkJCUExM0VCQkFFMUI4NzQz
NkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovLAogCQkJCUExQTRGRTVE
MThERDNEQjcwMEI1RUE4QSAvKiBEb3dubG9hZC5tbSAqLywKIAkJCQkyRDFGRTBBRjFBRDQ2NUMx
MDA2Q0Q5RTYgLyogRml4ZWRMYXlvdXRTaXplLm1tICovLAogCQkJCTM3RDM2RUQ2MUFGNDJFQ0Qw
MEJBRjVEOSAvKiBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZy5tbSAqLywKQEAgLTkzMSw2ICs5NTUs
MTcgQEAKIAkJCXBhdGggPSBkYXJ3aW47CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQlBMTNFQkI0NDFCODczMzJCMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbiAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTEzRUJCNTQxQjg3MzRF
MDAwMDk3MTEwIC8qIEluZm8ucGxpc3QgKi8sCisJCQkJQTEzRUJCQTgxQjg3NDI4RDAwMDk3MTEw
IC8qIFdlYlByb2Nlc3NQbHVnSW4uaCAqLywKKwkJCQlBMTNFQkJBOTFCODc0MjhEMDAwOTcxMTAg
LyogV2ViUHJvY2Vzc1BsdWdJbi5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gV2ViUHJvY2Vzc1Bs
dWdJbjsKKwkJCXBhdGggPSBjb2NvYS9XZWJQcm9jZXNzUGx1Z0luOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQkMwMjlCMUExNDg2QjIzODAwODE3REE5IC8qIG5zICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk3NSw2ICsxMDEwLDcg
QEAKIAkJCQlCQzU3NUFFMjEyNkU4OEIxMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGUueGNjb25m
aWcgKi8sCiAJCQkJQkM5MDk1ODAxMjU1NENGOTAwMDgzNzU2IC8qIFRlc3RXZWJLaXRBUEkueGNj
b25maWcgKi8sCiAJCQkJN0NDRTdFQTMxQTQxMTVDQjAwNDQ3QzRDIC8qIFRlc3RXZWJLaXRBUElM
aWJyYXJ5LnhjY29uZmlnICovLAorCQkJCUExM0VCQjUyMUI4NzM0NjYwMDA5NzExMCAvKiBXZWJQ
cm9jZXNzUGx1Z0luLnhjY29uZmlnICovLAogCQkJKTsKIAkJCXBhdGggPSBDb25maWd1cmF0aW9u
czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMzc4LDYgKzE0MTQsNyBAQAogCQkJ
YnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJQTEzRUJCQjMx
Qjg3NDQxOTAwMDk3MTEwIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJQkM1NzVBOTYx
MjZFNzRFNzAwNkYwRjEyIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJN0NDRTdGNTEx
QTQxMjREQjAwNDQ3QzRDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwpAQCAtMTM4
Nyw2ICsxNDI0LDIxIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gOERENzZGQTEwNDg2QUE3NjAw
RDk2QjVFIC8qIFRlc3RXZWJLaXRBUEkgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUu
cHJvZHVjdC10eXBlLnRvb2wiOwogCQl9OworCQlBMTNFQkI0ODFCODczMzlFMDAwOTcxMTAgLyog
V2ViUHJvY2Vzc1BsdWdJbiAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1
aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBBMTNFQkI0QzFCODczMzlFMDAwOTcxMTAgLyogQnVpbGQg
Y29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NQbHVnSW4i
ICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJQTEzRUJCNDUxQjg3MzM5RTAwMDk3MTEwIC8q
IFNvdXJjZXMgKi8sCisJCQkpOworCQkJYnVpbGRSdWxlcyA9ICgKKwkJCSk7CisJCQlkZXBlbmRl
bmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9IFdlYlByb2Nlc3NQbHVnSW47CisJCQlwcm9kdWN0
TmFtZSA9IFdlYlByb2Nlc3NQbHVnSW47CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gQTEzRUJCNDkx
Qjg3MzM5RTAwMDk3MTEwIC8qIFRlc3RXZWJLaXRBUEkud2tidW5kbGUgKi87CisJCQlwcm9kdWN0
VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmJ1bmRsZSI7CisJCX07CiAJCUJDNTc1OTdG
MTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQkM1
NzU5ODYxMjZFNzRBRjAwNkYwRjEyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
TmF0aXZlVGFyZ2V0ICJJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkiICovOwpAQCAtMTQxNiw2
ICsxNDY4LDkgQEAKIAkJCQkJN0NDRTdFOEIxQTQxMTQ0RTAwNDQ3QzRDID0gewogCQkJCQkJQ3Jl
YXRlZE9uVG9vbHNWZXJzaW9uID0gNi4zOwogCQkJCQl9OworCQkJCQlBMTNFQkI0ODFCODczMzlF
MDAwOTcxMTAgPSB7CisJCQkJCQlDcmVhdGVkT25Ub29sc1ZlcnNpb24gPSA3LjA7CisJCQkJCX07
CiAJCQkJfTsKIAkJCX07CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMURFQjkyNzgwODcz
M0RENDAwMTBFOUNEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAi
VGVzdFdlYktpdEFQSSIgKi87CkBAIC0xNDM1LDYgKzE0OTAsNyBAQAogCQkJCThERDc2Rjk2MDQ4
NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovLAogCQkJCUJDNTc1OTdGMTI2RTc0QUYw
MDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkgKi8sCiAJCQkJN0NDRTdFOEIx
QTQxMTQ0RTAwNDQ3QzRDIC8qIFRlc3RXZWJLaXRBUElMaWJyYXJ5ICovLAorCQkJCUExM0VCQjQ4
MUI4NzMzOUUwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luICovLAogCQkJKTsKIAkJfTsKIC8q
IEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KQEAgLTE1MzAsNiArMTU4Niw3IEBACiAJCQkJN0ND
RTdFQzQxQTQxMUE3RTAwNDQ3QzRDIC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDYxQTQxMUFFNjAwNDQ3QzRDIC8qIExheW91dE1pbGVz
dG9uZXNXaXRoQWxsQ29udGVudEluRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
REYxQTQxMUE5MjAwNDQ3QzRDIC8qIExheW91dFVuaXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTEzRUJCQjExQjg3NDM4MDAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0YzODFBNDExQjhFMDA0NDdDNEMgLyogTGlzdEhhc2hTZXQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzdEMzZFRDcxQUY0MkVDRDAwQkFGNUQ5IC8qIExvYWRBbHRlcm5h
dGVIVE1MU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkUxQTQxMUFFNjAwNDQ3
QzRDIC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTE2NzAsNiArMTcyNywxNiBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlBMTNFQkI0NTFCODczMzlFMDAw
OTcxMTAgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwor
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUExM0VC
QkFBMUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4u
bW0gaW4gU291cmNlcyAqLywKKwkJCQlBMTNFQkJBQjFCODc0MzQ2MDAwOTcxMTAgLyogUGxhdGZv
cm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQlCQzU3NTk3RDEyNkU3NEFGMDA2
RjBGMTIgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MjEsNiArMTc4OCwxMSBAQAog
CQkJdGFyZ2V0ID0gN0NDRTdFOEIxQTQxMTQ0RTAwNDQ3QzRDIC8qIFRlc3RXZWJLaXRBUElMaWJy
YXJ5ICovOwogCQkJdGFyZ2V0UHJveHkgPSA3Q0NFN0Y1MDFBNDEyNERCMDA0NDdDNEMgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQlBMTNFQkJCMzFCODc0NDE5MDAwOTcxMTAg
LyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVu
Y3k7CisJCQl0YXJnZXQgPSBBMTNFQkI0ODFCODczMzlFMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1Bs
dWdJbiAqLzsKKwkJCXRhcmdldFByb3h5ID0gQTEzRUJCQjIxQjg3NDQxOTAwMDk3MTEwIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJQkM1NzVBOTYxMjZFNzRFNzAwNkYwRjEy
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OwogCQkJdGFyZ2V0ID0gQkM1NzU5N0YxMjZFNzRBRjAwNkYwRjEyIC8qIEluamVjdGVkQnVu
ZGxlVGVzdFdlYktpdEFQSSAqLzsKQEAgLTE3NzMsNiArMTg0NSwyMCBAQAogCQkJfTsKIAkJCW5h
bWUgPSBSZWxlYXNlOwogCQl9OworCQlBMTNFQkI0RDFCODczMzlFMDAwOTcxMTAgLyogRGVidWcg
Ki8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gQTEzRUJCNTIxQjg3MzQ2NjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVn
SW4ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBE
ZWJ1ZzsKKwkJfTsKKwkJQTEzRUJCNEUxQjg3MzM5RTAwMDk3MTEwIC8qIFJlbGVhc2UgKi8gPSB7
CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVm
ZXJlbmNlID0gQTEzRUJCNTIxQjg3MzQ2NjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ueGNj
b25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNl
OworCQl9OwogCQlCQzU3NTk4NDEyNkU3NEFGMDA2RjBGMTIgLyogRGVidWcgKi8gPSB7CiAJCQlp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNl
ID0gQkM1NzVBRTIxMjZFODhCMTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlLnhjY29uZmlnICov
OwpAQCAtMTgxNyw2ICsxOTAzLDE1IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJs
ZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOwogCQl9OworCQlB
MTNFQkI0QzFCODczMzlFMDAwOTcxMTAgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NQbHVnSW4iICovID0geworCQkJaXNhID0gWENDb25m
aWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJQTEzRUJCNEQx
Qjg3MzM5RTAwMDk3MTEwIC8qIERlYnVnICovLAorCQkJCUExM0VCQjRFMUI4NzMzOUUwMDA5NzEx
MCAvKiBSZWxlYXNlICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxl
ID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7CisJCX07CiAJCUJD
NTc1OTg2MTI2RTc0QUYwMDZGMEYxMiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WE5hdGl2ZVRhcmdldCAiSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJIiAqLyA9IHsKIAkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFy
YW1ldGVycy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRs
ZVBhcmFtZXRlcnMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU2OTA2ZDQzNDI1YTZhOTE1ZWMzOTAxMzQ2NmRh
NjY0ZmFkOGU0NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnMubW0KQEAgLTAsMCArMSw3MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5o
PgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
KyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKwordXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEk6OlV0aWw7CisKK3N0YXRpYyBib29sIGlzRG9uZSA9IGZhbHNlOworCitURVNUKFdlYktpdDIs
IEJ1bmRsZVBhcmFtZXRlcnMpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbY29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbFdpdGhUZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NO
YW1lKEAiQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiIpLmdldCgpXTsKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBOU1N0cmluZyAqIGNvbnN0
IHRlc3RQYXJhbWV0ZXIgPSBAIlRlc3RQYXJhbWV0ZXIiOworICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDp0ZXN0UGFyYW1ldGVyIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfRkFMU0UoISFyZXN1bHQpOworICAgIH1d
OworCisgICAgTlNTdHJpbmcgKiBjb25zdCB0ZXN0U3RyaW5nID0gQCJQQVNTIjsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmplY3Q6dGVzdFN0cmluZyBmb3JCdW5kbGVQ
YXJhbWV0ZXI6dGVzdFBhcmFtZXRlcl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0
OnRlc3RQYXJhbWV0ZXIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVy
cm9yKSB7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJp
bmcgY2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5n
OnRlc3RTdHJpbmddKTsKKyAgICB9XTsKKworICAgIE5TRGljdGlvbmFyeSAqIGNvbnN0IHRlc3RE
aWN0aW9uYXJ5ID0gQHsgQCJyZXN1bHQiIDogQCJQQVNTIiB9OworICAgIFtbY29uZmlndXJhdGlv
biBwcm9jZXNzUG9vbF0gX3NldE9iamVjdDp0ZXN0RGljdGlvbmFyeSBmb3JCdW5kbGVQYXJhbWV0
ZXI6dGVzdFBhcmFtZXRlcl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OnRlc3RQ
YXJhbWV0ZXIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5
IGNsYXNzXV0pOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb0RpY3Rpb25h
cnk6dGVzdERpY3Rpb25hcnldKTsKKyAgICB9XTsKKworICAgIFtbY29uZmlndXJhdGlvbiBwcm9j
ZXNzUG9vbF0gX3NldE9iamVjdDpuaWwgZm9yQnVuZGxlUGFyYW1ldGVyOnRlc3RQYXJhbWV0ZXJd
OworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDp0ZXN0UGFyYW1ldGVyIGNvbXBsZXRp
b25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1Rf
RkFMU0UoISFyZXN1bHQpOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworfQorCisjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4uaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzUzMTcy
YTI2OTUzNDliODAwMGYxZTZiYjE1MzI4MDZhM2VjOTRiCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJ
bi5oCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQ
cm9jZXNzUGx1Z0luLmg+CisKK0BpbnRlcmZhY2UgQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiA6IE5T
T2JqZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4+CitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVyc1Bs
dWdJbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MjI3OTE2ZGRiZjBmYWE0MmM2MDY1NjI4MDcyNTYwMDg0YmU1
YzU2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbQpAQCAtMCwwICsxLDY2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJCdW5kbGVQYXJhbWV0ZXJzUGx1Z0lu
LmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5T
Y3JpcHRXb3JsZC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitzdGF0aWMgTlNTdHJp
bmcgKiBjb25zdCB0ZXN0UGFyYW1ldGVyID0gQCJUZXN0UGFyYW1ldGVyIjsKKworQGltcGxlbWVu
dGF0aW9uIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4geworICAgIFJldGFpblB0cjxXS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2VyQ29udGV4dENvbnRyb2xs
ZXI7CisgICAgUmV0YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXI+IF9wbHVnSW5D
b250cm9sbGVyOworfQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1Bs
dWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICop
YnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7CisgICAgQVNTRVJUKCFfYnJvd3NlckNvbnRleHRD
b250cm9sbGVyKTsKKyAgICBBU1NFUlQoIV9wbHVnSW5Db250cm9sbGVyKTsKKyAgICBfYnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyID0gYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAgIF9wbHVn
SW5Db250cm9sbGVyID0gcGx1Z0luQ29udHJvbGxlcjsKKyAgICBbcGx1Z0luQ29udHJvbGxlci5w
YXJhbWV0ZXJzIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDp0ZXN0UGFyYW1ldGVyIG9wdGlv
bnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpOVUxMXTsKK30KKwor
LSAodm9pZClkZWFsbG9jCit7CisgICAgW1tfcGx1Z0luQ29udHJvbGxlciBwYXJhbWV0ZXJzXSBy
ZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6dGVzdFBhcmFtZXRlcl07CisgICAgW3N1cGVy
IGRlYWxsb2NdOworfQorCistICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5n
ICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hh
bmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Cit7CisgICAgSlNDb250ZXh0ICpqc0NvbnRleHQg
PSBbW19icm93c2VyQ29udGV4dENvbnRyb2xsZXIgbWFpbkZyYW1lXSBqc0NvbnRleHRGb3JXb3Js
ZDpbV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgbm9ybWFsV29ybGRdXTsKKyAgICBbanND
b250ZXh0IHNldE9iamVjdDpbb2JqZWN0IHZhbHVlRm9yS2V5OmtleVBhdGhdIGZvcktleWVkU3Vi
c2NyaXB0OmtleVBhdGhdOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9QbGF0Zm9ybVV0aWxpdGllc0Nv
Y29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9QbGF0Zm9ybVV0aWxpdGllc0NvY29h
Lm1tCmluZGV4IDhjMWRhZDFhM2RlYmUzZmUyYmFjZTgyMzI3ZDc2OGQ5NmI4Y2U3YzAuLmZiMWVh
ZWI2YTlkMWM3ODg5ZjY3MTg5N2Q4NGE5OWY4ZWEwYzliNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1BsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0KQEAgLTI4LDYgKzI4
LDggQEAKIAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW5j
bHVkZSA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogCiBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CiBuYW1lc3BhY2UgVXRpbCB7CkBAIC01NSw1ICs1NywxOSBAQCBzdGQ6
OnN0cmluZyB0b1NURChOU1N0cmluZyAqc3RyaW5nKQogICAgIHJldHVybiBzdGQ6OnN0cmluZyhi
dWZmZXIuZ2V0KCksIHN0cmluZ0xlbmd0aCk7CiB9CiAKKyNpZiBXS19BUElfRU5BQkxFRAorTlNT
dHJpbmcgKiBjb25zdCBUZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lUGFyYW1ldGVyID0gQCJU
ZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lIjsKKworUmV0YWluUHRyPFdLUHJvY2Vzc1Bvb2w+
IHByb2Nlc3NQb29sV2l0aFRlc3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWUoTlNTdHJpbmcgKmNs
YXNzTmFtZSkKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0
SW5qZWN0ZWRCdW5kbGVVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IlRlc3RXZWJLaXRBUEkiIHdpdGhFeHRlbnNpb246QCJ3a2J1bmRsZSJdXTsKKworICAgIGF1dG8g
cHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3Byb2Nlc3NQb29sIF9zZXRP
YmplY3Q6Y2xhc3NOYW1lIGZvckJ1bmRsZVBhcmFtZXRlcjpUZXN0UGx1Z0luUHJpbmNpcGFsQ2xh
c3NOYW1lUGFyYW1ldGVyXTsKKyAgICByZXR1cm4gcHJvY2Vzc1Bvb2w7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgVXRpbAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL0luZm8ucGxp
c3QgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vSW5mby5wbGlz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMWYyYTIwOTE2MDE3YmNkZGFmNWUzOWJlNzlmMzhjMmNkZmY4NzY5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1
Z0luL0luZm8ucGxpc3QKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ
U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5k
dGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlRGV2ZWxv
cG1lbnRSZWdpb248L2tleT4KKwk8c3RyaW5nPmVuPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUV4
ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiQoRVhFQ1VUQUJMRV9OQU1FKTwvc3RyaW5nPgorCTxr
ZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjYuMDwvc3Ry
aW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4kKFBST0RVQ1RfTkFNRSk8
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPkJOREw8
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmlu
Zz4xLjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0cmluZz4/
Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjE8L3N0
cmluZz4KKwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KKwk8c3RyaW5nPldlYlByb2Nlc3NQ
bHVnSW48L3N0cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vV2ViUHJvY2Vzc1BsdWdJbi5oIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMGMxZDhkZjdhMWM1MGQ1YWMxZjgzNzgzMmVhMDExZDdhN2E3YjI5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1
Z0luL1dlYlByb2Nlc3NQbHVnSW4uaApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbi5oPgorCitAaW50ZXJmYWNlIFdlYlByb2Nl
c3NQbHVnSW4gOiBOU09iamVjdCA8V0tXZWJQcm9jZXNzUGx1Z0luPgorQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQ
bHVnSW4ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vV2Vi
UHJvY2Vzc1BsdWdJbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDU1Y2JhODNmMjdlYWYzNWQ5NDgwZTQ0MDE3
M2YxYjZjMTNiYTk3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4ubW0KQEAgLTAsMCArMSw3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzc1BsdWdJ
bi5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEk6OlV0aWw7CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJQcm9jZXNzUGx1Z0luIHsKKyAgICBS
ZXRhaW5QdHI8aWQgPFdLV2ViUHJvY2Vzc1BsdWdJbj4+IF90ZXN0UGx1Z0luOworfQorCistICh2
b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVn
SW5Db250cm9sbGVyIGluaXRpYWxpemVXaXRoT2JqZWN0OihpZClpbml0aWFsaXphdGlvbk9iamVj
dAoreworICAgIE5TU3RyaW5nICp0ZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lID0gW3BsdWdJ
bkNvbnRyb2xsZXIucGFyYW1ldGVycyB2YWx1ZUZvcktleTpUZXN0UGx1Z0luUHJpbmNpcGFsQ2xh
c3NOYW1lUGFyYW1ldGVyXTsKKyAgICBBU1NFUlQodGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFt
ZSk7CisgICAgQVNTRVJUKFt0ZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lIGlzS2luZE9mQ2xh
c3M6W05TU3RyaW5nIGNsYXNzXV0pOworCisgICAgQ2xhc3MgdGVzdFBsdWdJblByaW5jaXBhbENs
YXNzID0gTlNDbGFzc0Zyb21TdHJpbmcodGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZSk7Cisg
ICAgQVNTRVJUKHRlc3RQbHVnSW5QcmluY2lwYWxDbGFzcyk7CisgICAgQVNTRVJUKFt0ZXN0UGx1
Z0luUHJpbmNpcGFsQ2xhc3MgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChXS1dlYlByb2Nl
c3NQbHVnSW4pXSk7CisKKyAgICBBU1NFUlQoIV90ZXN0UGx1Z0luKTsKKyAgICBfdGVzdFBsdWdJ
biA9IGFkb3B0TlMoW1t0ZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3MgYWxsb2NdIGluaXRdKTsKKwor
ICAgIGlmIChbX3Rlc3RQbHVnSW4gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJQcm9j
ZXNzUGx1Z0luOmluaXRpYWxpemVXaXRoT2JqZWN0OildKQorICAgICAgICBbX3Rlc3RQbHVnSW4g
d2ViUHJvY2Vzc1BsdWdJbjpwbHVnSW5Db250cm9sbGVyIGluaXRpYWxpemVXaXRoT2JqZWN0Omlu
aXRpYWxpemF0aW9uT2JqZWN0XTsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dl
YlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93
c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcgoreworICAgIGlmIChbX3Rlc3RQbHVn
SW4gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJQcm9jZXNzUGx1Z0luOmRpZENyZWF0
ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjopXSkKKyAgICAgICAgW190ZXN0UGx1Z0luIHdlYlBy
b2Nlc3NQbHVnSW46cGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRy
b2xsZXI6YnJvd3NlckNvbnRleHRDb250cm9sbGVyXTsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNz
UGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciB3
aWxsRGVzdHJveUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7CisgICAg
aWYgKFtfdGVzdFBsdWdJbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlByb2Nlc3NQ
bHVnSW46d2lsbERlc3Ryb3lCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6KV0pCisgICAgICAgIFtf
dGVzdFBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOnBsdWdJbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lC
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6YnJvd3NlckNvbnRleHRDb250cm9sbGVyXTsKK30KKwor
QGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259651</attachid>
            <date>2015-08-21 13:40:46 -0700</date>
            <delta_ts>2015-08-21 17:29:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148317-20150821134040.patch</filename>
            <type>text/plain</type>
            <size>35758</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQxODQ5ZWI2MjRhOGM2OWMwYjU0NGYwNmFiMjM0YWU5
NjNhMjlhMC4uNDdhOTFmMjczNDlmYTc1YTU1ODNkMTVjMTQxMDIwMDdlNGY3NmM4ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDE1LTA4LTIxICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIEFQSSB0ZXN0cyB1c2luZyB0aGUgTW9kZXJuIFdlYktpdCBBUEkgc2hvdWxkIGJl
IGFibGUgdG8gY3JlYXRlIHdlYiBwcm9jZXNzIHBsdWctaW5zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgzMTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0eSBmb3IgTW9kZXJu
IFdlYktpdCBBUEkgdGVzdHMgdG8gY3JlYXRlIFdLV2ViUHJvY2Vzc1BsdWdJbnMuIEEgdGVzdCBj
YW4gY3JlYXRlIGEgcGx1Zy1pbiBieQorICAgICAgICBjcmVhdGluZyBhIGNsYXNzIHRoYXQgY29u
Zm9ybXMgdG8gV0tXZWJQcm9jZXNzUGx1Z0luLCBhZGRpbmcgaXQgdG8gdGhlIFdlYlByb2Nlc3NQ
bHVnSW4gdGFyZ2V0LCBhbmQgdXNpbmcgdGhlCisgICAgICAgIFdLUHJvY2Vzc1Bvb2wgcmV0dXJu
ZWQgYnkgcHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZSgpIHdoZW4g
Y3JlYXRpbmcgV0tXZWJWaWV3cy4KKworICAgICAgICBTaW5jZSBUZXN0V2ViS2l0QVBJIHJlbGll
cyBvbiBhIGJ1bmRsZSBwYXJhbWV0ZXIgdG8ga25vdyB3aGljaCB0ZXN0IGNsYXNzIHRvIGluc3Rh
bnRpYXRlIGluIHRoZSBwbHVnLWluLCBJIGFsc28KKyAgICAgICAgYWRkZWQgYSBuZXcgQVBJIHRl
c3QgZm9yIGJ1bmRsZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9XZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmg6IERlY2xhcmVkIFRlc3RQbHVnSW5Qcmlu
Y2lwYWxDbGFzc05hbWVQYXJhbWV0ZXIgYW5kIHByb2Nlc3NQb29sV2l0aFRlc3RQbHVnSW5Qcmlu
Y2lwYWxDbGFzc05hbWUoKS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgV2ViUHJvY2Vzc1BsdWdJbi4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1t
OiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOiBUZXN0ZWQgdGhlIHBsdWctaW4gYnkgY2hlY2tpbmcg
YnVuZGxlIHBhcmFtZXRlcnMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5oOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tOiBBZGRl
ZC4KKyAgICAgICAgKC1bQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOmRp
ZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpdKTogU3RhcnRlZCBvYnNlcnZpbmcgY2hh
bmdlcyB0byBhCisgICAgICAgIGJ1bmRsZSBwYXJhbWV0ZXIgYW5kIGFza2VkIGZvciBhbiBpbml0
aWFsIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgKC1bQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiBkZWFs
bG9jXSk6IFN0b3BwZWQgb2JzZXJ2aW5nIGNoYW5nZXMgdG8gYSBidW5kbGUgcGFyYW1ldGVyLgor
ICAgICAgICAoLVtCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6
b2ZPYmplY3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IFdoZW4gdGhlIGJ1bmRsZSBwYXJhbWV0ZXIgY2hh
bmdlcywKKyAgICAgICAgbWlycm9yIGl0cyB2YWx1ZSBpbiB0aGUgbWFpbiBmcmFtZSdzIEpTQ29u
dGV4dC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1BsYXRmb3JtVXRpbGl0aWVzQ29j
b2EubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpwcm9jZXNzUG9vbFdpdGhUZXN0
UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lKTogQ3JlYXRlZCBhIFdLUHJvY2Vzc1Bvb2wgd2l0aCB0
aGUgY29ycmVjdAorICAgICAgICBpbmplY3RlZCBidW5kbGUgVVJMIGFuZCBhIGJ1bmRsZSBwYXJh
bWV0ZXIgaW5kaWNhdGluZyB3aGljaCBwcmluY2lwYWwgY2xhc3MgdGhlIHRlc3Qgd2lzaGVzIHRv
IHVzZS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vSW5m
by5wbGlzdDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNz
UGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4uaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4ubW06IEFkZGVkLgorICAg
ICAgICAoLVtXZWJQcm9jZXNzUGx1Z0luIHdlYlByb2Nlc3NQbHVnSW46aW5pdGlhbGl6ZVdpdGhP
YmplY3Q6XSk6IENyZWF0ZWQgdGhlIHRlc3QncyBwcmluY2lwYWwgY2xhc3MgYW5kIHNlbnQKKyAg
ICAgICAgd2ViUHJvY2Vzc1BsdWdJbjppbml0aWFsaXplV2l0aE9iamVjdDogdG8gaXQuCisgICAg
ICAgICgtW1dlYlByb2Nlc3NQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2Vy
Q29udGV4dENvbnRyb2xsZXI6XSk6IEZvcndhcmRlZCB0byB0aGUgdGVzdCdzIHByaW5jaXBhbCBj
bGFzcy4KKyAgICAgICAgKC1bV2ViUHJvY2Vzc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOndpbGxE
ZXN0cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOl0pOiBEaXR0by4KKwogMjAxNS0wOC0xNyAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5
IGhvdyBQbGF0Zm9ybVdlYlZpZXdzIGFyZSBjcmVhdGVkIHdoZW4gdmlldyBvcHRpb25zIGNoYW5n
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9JbmplY3Rl
ZEJ1bmRsZS54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvSW5q
ZWN0ZWRCdW5kbGUueGNjb25maWcKaW5kZXggMzc3MmI3OTcyMjZhZWQyOTExOGJkZDkyYjY3NGQ5
ZDI2NTUzMWM4ZC4uY2E4YWRjYzJlOWJjNjQ0NGFlZTk0N2NmMGIyNDk3NGRmZjBmNDBlMyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9JbmplY3RlZEJ1bmRs
ZS54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0luamVj
dGVkQnVuZGxlLnhjY29uZmlnCkBAIC0yMyw3ICsyMyw3IEBACiAKIFBST0RVQ1RfTkFNRSA9IElu
amVjdGVkQnVuZGxlVGVzdFdlYktpdEFQSTsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxB
R1Nbc2RrPWlwaG9uZSpdID0gLWxvYmpjIC1mcmFtZXdvcmsgVUlLaXQ7CitGUkFNRVdPUktfQU5E
X0xJQlJBUllfTERGTEFHU1tzZGs9aXBob25lKl0gPSAtbG9iamMgLWZyYW1ld29yayBVSUtpdCAt
ZnJhbWV3b3JrIFdlYktpdDsKIEZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTW3Nkaz1tYWNv
c3gqXSA9IC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQgLWZyYW1l
d29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb2NvYTsKIAogT1RIRVJfTERGTEFHUyA9ICQo
aW5oZXJpdGVkKSAkKEZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvV2ViUHJvY2Vzc1BsdWdJbi54Y2Nv
bmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvV2ViUHJvY2Vzc1BsdWdJ
bi54Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzliZDNkOGJhZDM4N2E3ZGRhMmI1NDA2ZjM0NGExMGFj
ZTE4MTlkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0
aW9ucy9XZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnCkBAIC0wLDAgKzEsMzAgQEAKKy8vCisvLyBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8v
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorLy8KKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKy8vIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorLy8gVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisvLyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisvLyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
Ly8gU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisvLyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorLy8gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
Ky8vIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKy8vIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy8v
CisKK0lORk9QTElTVF9GSUxFID0gY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9JbmZvLnBsaXN0Owor
UFJPRFVDVF9OQU1FID0gVGVzdFdlYktpdEFQSTsKK0VYRUNVVEFCTEVfU1VGRklYID0gLmJ1bmRs
ZTsKK1dSQVBQRVJfRVhURU5TSU9OID0gd2tidW5kbGU7CitPVEhFUl9MREZMQUdTID0gJChpbmhl
cml0ZWQpIC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBXZWJLaXQ7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmggYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmgKaW5kZXggMmUxZTFiMGI3NGNkOWUyYWIz
ZmY4MTk0MzlkZWQ0ZGQ2YmRhMWJiYS4uYTQ0NDRiY2EzNTk0YjA4ZDBjNDgyZjY3ZGZjYmQxYWI0
ZWUwYTFkMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGll
cy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1VdGlsaXRpZXMuaApAQCAtMzAs
NiArMzAsMTEgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxz
dHJpbmc+CiAKKyNpZiBkZWZpbmVkKF9fT0JKQ19fKSAmJiBXS19BUElfRU5BQkxFRAorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorQGNsYXNzIFdLUHJvY2Vzc1Bvb2w7CisjZW5kaWYKKwogI2lm
IFVTRShGT1VOREFUSU9OKQogT0JKQ19DTEFTUyBOU1N0cmluZzsKICNlbmRpZgpAQCAtNzUsNiAr
ODAsMTEgQEAgc3RhdGljIGlubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRX
S1N0cmluZ0VxdWFsKGNvbnN0IGNoYXIqIGV4cGVjdGUKICNkZWZpbmUgRVhQRUNUX1dLX1NUUkVR
KGV4cGVjdGVkLCBhY3R1YWwpIFwKICAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKFRlc3RXZWJLaXRB
UEk6OlV0aWw6OmFzc2VydFdLU3RyaW5nRXF1YWwsIGV4cGVjdGVkLCBhY3R1YWwpCiAKKyNpZiBk
ZWZpbmVkKF9fT0JKQ19fKSAmJiBXS19BUElfRU5BQkxFRAorZXh0ZXJuIE5TU3RyaW5nICogY29u
c3QgVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZVBhcmFtZXRlcjsKK1JldGFpblB0cjxXS1By
b2Nlc3NQb29sPiBwcm9jZXNzUG9vbFdpdGhUZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lKE5T
U3RyaW5nICopOworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFV0aWwKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhYzRjY2NkYzI0NDFk
NTEzMTAwM2VjMjI1OWYzMGNiYTM1NzFlMWI4Li4xMDhjYWNiMmMxNzdkNjA5MTBlNzVlOTViZDNh
ZWI5ZDYwM2U4MDJjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY0LDYgKzI2NCwxMCBA
QAogCQk5M0Y3RTg2RjE0REM4RTVDMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Y3RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgKi87IH07CiAJCTlCMjZGQ0NBMTU5RDE2
REUwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI2RkNCNDE1OUQx
NUU3MDBDQzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi87IH07CiAJ
CTlCNEY4RkE3MTU5RDUyREQwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
NEY4RkE2MTU5RDUyQ0EwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICov
OyB9OworCQlBMTNFQkJBQTFCODc0MjhEMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExM0VCQkE5MUI4
NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLm1tICovOyB9OworCQlBMTNFQkJBQjFC
ODc0MzQ2MDAwOTcxMTAgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTM5RTcyMUE0MjNBMkIwMEY1OTBG
NSAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tICovOyB9OworCQlBMTNFQkJCMDFCODc0MzZG
MDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExM0VCQkFFMUI4NzQzNkYwMDA5NzExMCAvKiBC
dW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovOyB9OworCQlBMTNFQkJCMTFCODc0MzgwMDAwOTcx
MTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExM0VCQkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0
ZXJzLm1tICovOyB9OwogCQlBNTdBMzRGMjE2QUY2QjJCMDBDMjUwMUYgLyogUGFnZVZpc2liaWxp
dHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU3QTM0RjExNkFGNjlFMjAwQzI1MDFGIC8qIFBh
Z2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5odG1sICovOyB9OwogCQlBNUUyMDI3
NTE1QjIxRjZFMDBDMTNFMTQgLyogV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUUyMDI3
MDE1QjIxODA2MDBDMTNFMTQgLyogV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEuaHRtbCAqLzsg
fTsKIAkJQjU1QUQxRDUxNzlGM0IzMDAwQUMxNDk0IC8qIFByZXZlbnRJbWFnZUxvYWRXaXRoQXV0
b1Jlc2l6aW5nX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCNTVBRDFEMzE3OUYzQUJGMDBBQzE0OTQgLyogUHJldmVudEltYWdlTG9hZFdp
dGhBdXRvUmVzaXppbmdfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTMyNCw2ICszMjgsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gN0NDRTdFOEIxQTQxMTQ0RTAwNDQ3QzRDOwogCQkJcmVt
b3RlSW5mbyA9IFRlc3RXZWJLaXRBUElMaWJyYXJ5OwogCQl9OworCQlBMTNFQkJCMjFCODc0NDE5
MDAwOTcxMTAgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29u
dGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMw
MkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90
ZUdsb2JhbElEU3RyaW5nID0gQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwOworCQkJcmVtb3RlSW5m
byA9IFdlYlByb2Nlc3NQbHVnSW47CisJCX07CiAJCUJDNTc1QTk1MTI2RTc0RTcwMDZGMEYxMiAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyog
UHJvamVjdCBvYmplY3QgKi87CkBAIC02MTksNiArNjMwLDE0IEBACiAJCTlCMjZGQ0I0MTU5RDE1
RTcwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9IEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjRGOEZBMzE1OUQ1MkIxMDAyRDlGOTQgLyogSFRN
TENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJ
dGVtLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBIVE1MQ29sbGVjdGlvbk5hbWVk
SXRlbS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTNFQkI0OTFCODczMzlF
MDAwOTcxMTAgLyogVGVzdFdlYktpdEFQSS53a2J1bmRsZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5jbHVkZUluSW5k
ZXggPSAwOyBwYXRoID0gVGVzdFdlYktpdEFQSS53a2J1bmRsZTsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJQTEzRUJCNTIxQjg3MzQ2NjAwMDk3MTEwIC8qIFdlYlByb2Nl
c3NQbHVnSW4ueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViUHJv
Y2Vzc1BsdWdJbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEzRUJC
NTQxQjg3MzRFMDAwMDk3MTEwIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0Lnht
bDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExM0VC
QkE4MUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByb2Nlc3NQbHVnSW4uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTEzRUJCQTkxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzUGx1
Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTNFQkJBQzFCODc0MzZGMDAw
OTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEJ1bmRsZVBhcmFtZXRlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUExM0VCQkFEMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0lu
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1bmRsZVBhcmFtZXRlcnNQbHVn
SW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEzRUJCQUUxQjg3NDM2RjAwMDk3
MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMUE0RkU1RDE4REQzREI3MDBCNUVBOEEgLyogRG93bmxvYWQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEb3dubG9hZC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFGREZEMkUxOUMyODhCQjAwNTE0OEE0IC8qIFdL
SW1hZ2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tJbWFnZUNyZWF0ZUNHSW1hZ2VDcmFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1N0EzNEVGMTZBRjY3NzIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0
YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzYsNiArODU1LDcgQEAKIAkJMEYxMzlFNzExQTQyM0Ex
RDAwRjU5MEY1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQlBMTNFQkI0NDFCODczMzJCMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbiAq
LywKIAkJCQkwRjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2Nv
YS5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC04NTUsNiArODc1LDcgQEAKIAkJ
CQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLywKIAkJCQlCQzU3
NTk4MDEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRs
ZSAqLywKIAkJCQk3Q0NFN0U4QzFBNDExNDRFMDA0NDdDNEMgLyogbGliVGVzdFdlYktpdEFQSS5h
ICovLAorCQkJCUExM0VCQjQ5MUI4NzMzOUUwMDA5NzExMCAvKiBUZXN0V2ViS2l0QVBJLndrYnVu
ZGxlICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC04NjMsNiArODg0LDkgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJN0NFRkE5NjQxQUMwQjlFMjAwQjkxMEZEIC8qIF9XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUubW0gKi8sCisJCQkJQTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRs
ZVBhcmFtZXRlcnMubW0gKi8sCisJCQkJQTEzRUJCQUQxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRs
ZVBhcmFtZXRlcnNQbHVnSW4uaCAqLywKKwkJCQlBMTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyog
QnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSAqLywKIAkJCQlBMUE0RkU1RDE4REQzREI3MDBCNUVB
OEEgLyogRG93bmxvYWQubW0gKi8sCiAJCQkJMkQxRkUwQUYxQUQ0NjVDMTAwNkNEOUU2IC8qIEZp
eGVkTGF5b3V0U2l6ZS5tbSAqLywKIAkJCQkzN0QzNkVENjFBRjQyRUNEMDBCQUY1RDkgLyogTG9h
ZEFsdGVybmF0ZUhUTUxTdHJpbmcubW0gKi8sCkBAIC05MzEsNiArOTU1LDE3IEBACiAJCQlwYXRo
ID0gZGFyd2luOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQTEzRUJCNDQx
Qjg3MzMyQjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4gKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUExM0VCQjU0MUI4NzM0RTAwMDA5NzExMCAvKiBJ
bmZvLnBsaXN0ICovLAorCQkJCUExM0VCQkE4MUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNz
UGx1Z0luLmggKi8sCisJCQkJQTEzRUJCQTkxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQ
bHVnSW4ubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IFdlYlByb2Nlc3NQbHVnSW47CisJCQlwYXRo
ID0gY29jb2EvV2ViUHJvY2Vzc1BsdWdJbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCUJDMDI5QjFBMTQ4NkIyMzgwMDgxN0RBOSAvKiBucyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05NzUsNiArMTAxMCw3IEBACiAJCQkJQkM1NzVB
RTIxMjZFODhCMTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlLnhjY29uZmlnICovLAogCQkJCUJD
OTA5NTgwMTI1NTRDRjkwMDA4Mzc1NiAvKiBUZXN0V2ViS2l0QVBJLnhjY29uZmlnICovLAogCQkJ
CTdDQ0U3RUEzMUE0MTE1Q0IwMDQ0N0M0QyAvKiBUZXN0V2ViS2l0QVBJTGlicmFyeS54Y2NvbmZp
ZyAqLywKKwkJCQlBMTNFQkI1MjFCODczNDY2MDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi54
Y2NvbmZpZyAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlvbnM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMTM3OCw2ICsxNDE0LDcgQEAKIAkJCWJ1aWxkUnVsZXMgPSAo
CiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCUExM0VCQkIzMUI4NzQ0MTkwMDA5NzEx
MCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDNTc1QTk2MTI2RTc0RTcwMDZGMEYx
MiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdDQ0U3RjUxMUE0MTI0REIwMDQ0N0M0
QyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKQEAgLTEzODcsNiArMTQyNCwyMSBA
QAogCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDhERDc2RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0
V2ViS2l0QVBJICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS50
b29sIjsKIAkJfTsKKwkJQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVn
SW4gKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gQTEzRUJCNEMxQjg3MzM5RTAwMDk3MTEwIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJQcm9jZXNzUGx1Z0luIiAqLzsKKwkJCWJ1aWxk
UGhhc2VzID0gKAorCQkJCUExM0VCQjQ1MUI4NzMzOUUwMDA5NzExMCAvKiBTb3VyY2VzICovLAor
CQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJ
KTsKKwkJCW5hbWUgPSBXZWJQcm9jZXNzUGx1Z0luOworCQkJcHJvZHVjdE5hbWUgPSBXZWJQcm9j
ZXNzUGx1Z0luOworCQkJcHJvZHVjdFJlZmVyZW5jZSA9IEExM0VCQjQ5MUI4NzMzOUUwMDA5NzEx
MCAvKiBUZXN0V2ViS2l0QVBJLndrYnVuZGxlICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFw
cGxlLnByb2R1Y3QtdHlwZS5idW5kbGUiOworCQl9OwogCQlCQzU3NTk3RjEyNkU3NEFGMDA2RjBG
MTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJICovID0gewogCQkJaXNhID0gUEJYTmF0
aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEJDNTc1OTg2MTI2RTc0QUYw
MDZGMEYxMiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAi
SW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJIiAqLzsKQEAgLTE0MTYsNiArMTQ2OCw5IEBACiAJ
CQkJCTdDQ0U3RThCMUE0MTE0NEUwMDQ0N0M0QyA9IHsKIAkJCQkJCUNyZWF0ZWRPblRvb2xzVmVy
c2lvbiA9IDYuMzsKIAkJCQkJfTsKKwkJCQkJQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwID0gewor
CQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gNy4wOworCQkJCQl9OwogCQkJCX07CiAJCQl9
OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFERUI5Mjc4MDg3MzNERDQwMDEwRTlDRCAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIlRlc3RXZWJLaXRBUEki
ICovOwpAQCAtMTQzNSw2ICsxNDkwLDcgQEAKIAkJCQk4REQ3NkY5NjA0ODZBQTc2MDBEOTZCNUUg
LyogVGVzdFdlYktpdEFQSSAqLywKIAkJCQlCQzU3NTk3RjEyNkU3NEFGMDA2RjBGMTIgLyogSW5q
ZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJICovLAogCQkJCTdDQ0U3RThCMUE0MTE0NEUwMDQ0N0M0
QyAvKiBUZXN0V2ViS2l0QVBJTGlicmFyeSAqLywKKwkJCQlBMTNFQkI0ODFCODczMzlFMDAwOTcx
MTAgLyogV2ViUHJvY2Vzc1BsdWdJbiAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVj
dCBzZWN0aW9uICovCkBAIC0xNTMwLDYgKzE1ODYsNyBAQAogCQkJCTdDQ0U3RUM0MUE0MTFBN0Uw
MDQ0N0M0QyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjA2MUE0MTFBRTYwMDQ0N0M0QyAvKiBMYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENv
bnRlbnRJbkZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RURGMUE0MTFBOTIwMDQ0
N0M0QyAvKiBMYXlvdXRVbml0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExM0VCQkIxMUI4NzQz
ODAwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdGMzgxQTQxMUI4RTAwNDQ3QzRDIC8qIExpc3RIYXNoU2V0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3RDM2RUQ3MUFGNDJFQ0QwMEJBRjVEOSAvKiBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZFMUE0MTFBRTYwMDQ0N0M0QyAvKiBMb2FkQWx0
ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0xNjcwLDYgKzE3MjcsMTYgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQTEzRUJCNDUxQjg3MzM5RTAwMDk3MTEwIC8qIFNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9u
TWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQlBMTNFQkJBQTFCODc0MjhEMDAw
OTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUExM0VCQkIw
MUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29j
b2EubW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJQkM1NzU5N0QxMjZFNzRBRjAwNkYwRjEyIC8qIFNvdXJj
ZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9u
TWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNzIxLDYgKzE3ODgsMTEgQEAKIAkJCXRhcmdldCA9IDdD
Q0U3RThCMUE0MTE0NEUwMDQ0N0M0QyAvKiBUZXN0V2ViS2l0QVBJTGlicmFyeSAqLzsKIAkJCXRh
cmdldFByb3h5ID0gN0NDRTdGNTAxQTQxMjREQjAwNDQ3QzRDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLzsKIAkJfTsKKwkJQTEzRUJCQjMxQjg3NDQxOTAwMDk3MTEwIC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0
ID0gQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4gKi87CisJCQl0
YXJnZXRQcm94eSA9IEExM0VCQkIyMUI4NzQ0MTkwMDA5NzExMCAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CisJCX07CiAJCUJDNTc1QTk2MTI2RTc0RTcwMDZGMEYxMiAvKiBQQlhUYXJnZXRE
ZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdl
dCA9IEJDNTc1OTdGMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRB
UEkgKi87CkBAIC0xNzczLDYgKzE4NDUsMjAgQEAKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsK
IAkJfTsKKwkJQTEzRUJCNEQxQjg3MzM5RTAwMDk3MTEwIC8qIERlYnVnICovID0geworCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IEExM0VCQjUyMUI4NzM0NjYwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnICov
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJ
CUExM0VCQjRFMUI4NzMzOUUwMDA5NzExMCAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEExM0VC
QjUyMUI4NzM0NjYwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnICovOworCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKIAkJQkM1
NzU5ODQxMjZFNzRBRjAwNkYwRjEyIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENv
bmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDNTc1QUUyMTI2
RTg4QjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZS54Y2NvbmZpZyAqLzsKQEAgLTE4MTcsNiAr
MTkwMywxNSBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKIAkJfTsKKwkJQTEzRUJCNEMxQjg3MzM5
RTAwMDk3MTEwIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0
ICJXZWJQcm9jZXNzUGx1Z0luIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCUExM0VCQjREMUI4NzMzOUUwMDA5NzEx
MCAvKiBEZWJ1ZyAqLywKKwkJCQlBMTNFQkI0RTFCODczMzlFMDAwOTcxMTAgLyogUmVsZWFzZSAq
LywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOworCQl9OwogCQlCQzU3NTk4NjEyNkU3NEFG
MDA2RjBGMTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
IkluamVjdGVkQnVuZGxlVGVzdFdlYktpdEFQSSIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3Vy
YXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZlNjkwNmQ0MzQyNWE2YTkxNWVjMzkwMTM0NjZkYTY2NGZhZDhlNDUKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9C
dW5kbGVQYXJhbWV0ZXJzLm1tCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQ
SV9FTkFCTEVECisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOjpVdGlsOworCitz
dGF0aWMgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKworVEVTVChXZWJLaXQyLCBCdW5kbGVQYXJhbWV0
ZXJzKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bv
b2w6cHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZShAIkJ1bmRsZVBh
cmFtZXRlcnNQbHVnSW4iKS5nZXQoKV07CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgTlNTdHJpbmcgKiBjb25zdCB0ZXN0UGFyYW1ldGVy
ID0gQCJUZXN0UGFyYW1ldGVyIjsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6dGVz
dFBhcmFtZXRlciBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKCEhcmVzdWx0KTsKKyAgICB9XTsKKworICAgIE5TU3Ry
aW5nICogY29uc3QgdGVzdFN0cmluZyA9IEAiUEFTUyI7CisgICAgW1tjb25maWd1cmF0aW9uIHBy
b2Nlc3NQb29sXSBfc2V0T2JqZWN0OnRlc3RTdHJpbmcgZm9yQnVuZGxlUGFyYW1ldGVyOnRlc3RQ
YXJhbWV0ZXJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDp0ZXN0UGFyYW1ldGVy
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOwor
ICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb1N0cmluZzp0ZXN0U3RyaW5nXSk7
CisgICAgfV07CisKKyAgICBOU0RpY3Rpb25hcnkgKiBjb25zdCB0ZXN0RGljdGlvbmFyeSA9IEB7
IEAicmVzdWx0IiA6IEAiUEFTUyIgfTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xd
IF9zZXRPYmplY3Q6dGVzdERpY3Rpb25hcnkgZm9yQnVuZGxlUGFyYW1ldGVyOnRlc3RQYXJhbWV0
ZXJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDp0ZXN0UGFyYW1ldGVyIGNvbXBs
ZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBF
Q1RfVFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TRGljdGlvbmFyeSBjbGFzc11dKTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsVG9EaWN0aW9uYXJ5OnRlc3REaWN0aW9u
YXJ5XSk7CisgICAgfV07CisKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRP
YmplY3Q6bmlsIGZvckJ1bmRsZVBhcmFtZXRlcjp0ZXN0UGFyYW1ldGVyXTsKKyAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6dGVzdFBhcmFtZXRlciBjb21wbGV0aW9uSGFuZGxlcjpeKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKCEhcmVzdWx0
KTsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKK30KKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJh
bWV0ZXJzUGx1Z0luLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9C
dW5kbGVQYXJhbWV0ZXJzUGx1Z0luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc1MzE3MmEyNjk1MzQ5YjgwMDBm
MWU2YmIxNTMyODA2YTNlYzk0YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4uaApAQCAtMCwwICsx
LDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbi5o
PgorCitAaW50ZXJmYWNlIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4gOiBOU09iamVjdCA8V0tXZWJQ
cm9jZXNzUGx1Z0luPgorQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDIyNzkxNmRkYmYwZmFhNDJjNjA2NTYyODA3MjU2MDA4NGJlNWM1NgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBh
cmFtZXRlcnNQbHVnSW4ubW0KQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5oIgorCisjaWYgV0tf
QVBJX0VOQUJMRUQKKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaD4K
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIE5TU3RyaW5nICogY29uc3QgdGVz
dFBhcmFtZXRlciA9IEAiVGVzdFBhcmFtZXRlciI7CisKK0BpbXBsZW1lbnRhdGlvbiBCdW5kbGVQ
YXJhbWV0ZXJzUGx1Z0luIHsKKyAgICBSZXRhaW5QdHI8V0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyPiBfYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAgIFJldGFp
blB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyPiBfcGx1Z0luQ29udHJvbGxlcjsKK30K
KworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVy
ICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcgoreworICAgIEFTU0VSVCghX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlcik7Cisg
ICAgQVNTRVJUKCFfcGx1Z0luQ29udHJvbGxlcik7CisgICAgX2Jyb3dzZXJDb250ZXh0Q29udHJv
bGxlciA9IGJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBfcGx1Z0luQ29udHJvbGxlciA9
IHBsdWdJbkNvbnRyb2xsZXI7CisgICAgW3BsdWdJbkNvbnRyb2xsZXIucGFyYW1ldGVycyBhZGRP
YnNlcnZlcjpzZWxmIGZvcktleVBhdGg6dGVzdFBhcmFtZXRlciBvcHRpb25zOk5TS2V5VmFsdWVP
YnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6TlVMTF07Cit9CisKKy0gKHZvaWQpZGVhbGxv
YworeworICAgIFtbX3BsdWdJbkNvbnRyb2xsZXIgcGFyYW1ldGVyc10gcmVtb3ZlT2JzZXJ2ZXI6
c2VsZiBmb3JLZXlQYXRoOnRlc3RQYXJhbWV0ZXJdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30K
KworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZP
YmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2
b2lkICopY29udGV4dAoreworICAgIEpTQ29udGV4dCAqanNDb250ZXh0ID0gW1tfYnJvd3NlckNv
bnRleHRDb250cm9sbGVyIG1haW5GcmFtZV0ganNDb250ZXh0Rm9yV29ybGQ6W1dLV2ViUHJvY2Vz
c1BsdWdJblNjcmlwdFdvcmxkIG5vcm1hbFdvcmxkXV07CisgICAgW2pzQ29udGV4dCBzZXRPYmpl
Y3Q6W29iamVjdCB2YWx1ZUZvcktleTprZXlQYXRoXSBmb3JLZXllZFN1YnNjcmlwdDprZXlQYXRo
XTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbQppbmRleCA4YzFk
YWQxYTNkZWJlM2ZlMmJhY2U4MjMyN2Q3NjhkOTZiOGNlN2MwLi5mYjFlYWViNmE5ZDFjNzg4OWY2
NzE4OTdkODRhOTlmOGVhMGM5YjZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1BsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9QbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewogbmFtZXNwYWNlIFV0aWwgewpAQCAtNTUsNSArNTcsMTkgQEAgc3RkOjpzdHJpbmcgdG9TVEQo
TlNTdHJpbmcgKnN0cmluZykKICAgICByZXR1cm4gc3RkOjpzdHJpbmcoYnVmZmVyLmdldCgpLCBz
dHJpbmdMZW5ndGgpOwogfQogCisjaWYgV0tfQVBJX0VOQUJMRUQKK05TU3RyaW5nICogY29uc3Qg
VGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZVBhcmFtZXRlciA9IEAiVGVzdFBsdWdJblByaW5j
aXBhbENsYXNzTmFtZSI7CisKK1JldGFpblB0cjxXS1Byb2Nlc3NQb29sPiBwcm9jZXNzUG9vbFdp
dGhUZXN0UGx1Z0luUHJpbmNpcGFsQ2xhc3NOYW1lKE5TU3RyaW5nICpjbGFzc05hbWUpCit7Cisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIHNldEluamVjdGVkQnVuZGxl
VVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJUZXN0V2ViS2l0QVBJ
IiB3aXRoRXh0ZW5zaW9uOkAid2tidW5kbGUiXV07CisKKyAgICBhdXRvIHByb2Nlc3NQb29sID0g
YWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtwcm9jZXNzUG9vbCBfc2V0T2JqZWN0OmNsYXNzTmFt
ZSBmb3JCdW5kbGVQYXJhbWV0ZXI6VGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZVBhcmFtZXRl
cl07CisgICAgcmV0dXJuIHByb2Nlc3NQb29sOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFV0aWwKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9JbmZvLnBsaXN0IGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL0luZm8ucGxpc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDFmMmEyMDkxNjAxN2JjZGRhZjVlMzliZTc5ZjM4YzJjZGZmODc2OQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9JbmZvLnBsaXN0
CkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2
ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9r
ZXk+CisJPHN0cmluZz5lbjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+
CisJPHN0cmluZz4kKEVYRUNVVEFCTEVfTkFNRSk8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5m
b0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8a2V5PkNG
QnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JChQUk9EVUNUX05BTUUpPC9zdHJpbmc+CisJPGtl
eT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5CTkRMPC9zdHJpbmc+CisJPGtl
eT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+MS4wPC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgor
CTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4xPC9zdHJpbmc+CisJPGtleT5O
U1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5XZWJQcm9jZXNzUGx1Z0luPC9zdHJpbmc+
Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4uaCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNzUGx1Z0luLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDBjMWQ4ZGY3YTFjNTBkNWFjMWY4Mzc4MzJlYTAxMWQ3YTdhN2IyOQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNz
UGx1Z0luLmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlByb2Nlc3NQbHVnSW4uaD4KKworQGludGVyZmFjZSBXZWJQcm9jZXNzUGx1Z0luIDogTlNP
YmplY3QgPFdLV2ViUHJvY2Vzc1BsdWdJbj4KK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNzUGx1Z0luLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4u
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTA1NWNiYTgzZjI3ZWFmMzVkOTQ4MGU0NDAxNzNmMWI2YzEzYmE5Nwot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1Bs
dWdJbi9XZWJQcm9jZXNzUGx1Z0luLm1tCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQbHVnSW4uaCIKKworI2lmIFdL
X0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOjpVdGlsOwor
CitAaW1wbGVtZW50YXRpb24gV2ViUHJvY2Vzc1BsdWdJbiB7CisgICAgUmV0YWluUHRyPGlkIDxX
S1dlYlByb2Nlc3NQbHVnSW4+PiBfdGVzdFBsdWdJbjsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNz
UGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBp
bml0aWFsaXplV2l0aE9iamVjdDooaWQpaW5pdGlhbGl6YXRpb25PYmplY3QKK3sKKyAgICBOU1N0
cmluZyAqdGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZSA9IFtwbHVnSW5Db250cm9sbGVyLnBh
cmFtZXRlcnMgdmFsdWVGb3JLZXk6VGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZVBhcmFtZXRl
cl07CisgICAgQVNTRVJUKHRlc3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWUpOworICAgIEFTU0VS
VChbdGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBj
bGFzc11dKTsKKworICAgIENsYXNzIHRlc3RQbHVnSW5QcmluY2lwYWxDbGFzcyA9IE5TQ2xhc3NG
cm9tU3RyaW5nKHRlc3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWUpOworICAgIEFTU0VSVCh0ZXN0
UGx1Z0luUHJpbmNpcGFsQ2xhc3MpOworICAgIEFTU0VSVChbdGVzdFBsdWdJblByaW5jaXBhbENs
YXNzIGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woV0tXZWJQcm9jZXNzUGx1Z0luKV0pOwor
CisgICAgQVNTRVJUKCFfdGVzdFBsdWdJbik7CisgICAgX3Rlc3RQbHVnSW4gPSBhZG9wdE5TKFtb
dGVzdFBsdWdJblByaW5jaXBhbENsYXNzIGFsbG9jXSBpbml0XSk7CisKKyAgICBpZiAoW190ZXN0
UGx1Z0luIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbjppbml0
aWFsaXplV2l0aE9iamVjdDopXSkKKyAgICAgICAgW190ZXN0UGx1Z0luIHdlYlByb2Nlc3NQbHVn
SW46cGx1Z0luQ29udHJvbGxlciBpbml0aWFsaXplV2l0aE9iamVjdDppbml0aWFsaXphdGlvbk9i
amVjdF07Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9jZXNzUGx1Z0lu
Q29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRlQnJvd3NlckNvbnRleHRDb250
cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKilicm93
c2VyQ29udGV4dENvbnRyb2xsZXIKK3sKKyAgICBpZiAoW190ZXN0UGx1Z0luIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29udGV4
dENvbnRyb2xsZXI6KV0pCisgICAgICAgIFtfdGVzdFBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOnBs
dWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRlQnJvd3NlckNvbnRleHRDb250cm9sbGVyOmJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcl07Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQ
cm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lCcm93
c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcgoreworICAgIGlmIChbX3Rlc3RQbHVn
SW4gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJQcm9jZXNzUGx1Z0luOndpbGxEZXN0
cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOildKQorICAgICAgICBbX3Rlc3RQbHVnSW4gd2Vi
UHJvY2Vzc1BsdWdJbjpwbHVnSW5Db250cm9sbGVyIHdpbGxEZXN0cm95QnJvd3NlckNvbnRleHRD
b250cm9sbGVyOmJyb3dzZXJDb250ZXh0Q29udHJvbGxlcl07Cit9CisKK0BlbmQKKworI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259687</attachid>
            <date>2015-08-21 17:29:31 -0700</date>
            <delta_ts>2015-08-22 22:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148317-20150821172925.patch</filename>
            <type>text/plain</type>
            <size>36128</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQxODQ5ZWI2MjRhOGM2OWMwYjU0NGYwNmFiMjM0YWU5
NjNhMjlhMC4uM2JkMGQ4YjFjZjA1NjlmMDliM2JiNGY1YTg5OGNhNjU2YWI2YTJmZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDE1LTA4LTIxICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIEFQSSB0ZXN0cyB1c2luZyB0aGUgTW9kZXJuIFdlYktpdCBBUEkgc2hvdWxkIGJl
IGFibGUgdG8gY3JlYXRlIHdlYiBwcm9jZXNzIHBsdWctaW5zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgzMTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0eSBmb3IgTW9kZXJu
IFdlYktpdCBBUEkgdGVzdHMgdG8gY3JlYXRlIFdLV2ViUHJvY2Vzc1BsdWdJbnMuIEEgdGVzdCBj
YW4gY3JlYXRlIGEgcGx1Zy1pbiBieQorICAgICAgICBjcmVhdGluZyBhIGNsYXNzIHRoYXQgY29u
Zm9ybXMgdG8gV0tXZWJQcm9jZXNzUGx1Z0luLCBhZGRpbmcgaXQgdG8gdGhlIFdlYlByb2Nlc3NQ
bHVnSW4gdGFyZ2V0LCBhbmQgdXNpbmcgdGhlCisgICAgICAgIFdLUHJvY2Vzc1Bvb2wgcmV0dXJu
ZWQgYnkgcHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZSgpIHdoZW4g
Y3JlYXRpbmcgV0tXZWJWaWV3cy4KKworICAgICAgICBTaW5jZSBUZXN0V2ViS2l0QVBJIHJlbGll
cyBvbiBhIGJ1bmRsZSBwYXJhbWV0ZXIgdG8ga25vdyB3aGljaCB0ZXN0IGNsYXNzIHRvIGluc3Rh
bnRpYXRlIGluIHRoZSBwbHVnLWluLCBJIGFsc28KKyAgICAgICAgYWRkZWQgYSBuZXcgQVBJIHRl
c3QgZm9yIGJ1bmRsZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9JbmplY3RlZEJ1bmRsZS54Y2NvbmZpZzogTGlua2VkIFdlYktpdC5mcmFtZXdv
cmsgb24gaU9TIGJ1aWxkcywgdG9vLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJh
dGlvbnMvV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oOiBEZWNsYXJlZCBUZXN0UGx1Z0luUHJpbmNpcGFs
Q2xhc3NOYW1lUGFyYW1ldGVyIGFuZCBwcm9jZXNzUG9vbFdpdGhUZXN0UGx1Z0luUHJpbmNpcGFs
Q2xhc3NOYW1lKCkuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIFdlYlByb2Nlc3NQbHVnSW4uCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVycy5tbTogQWRk
ZWQuCisgICAgICAgIChURVNUKTogVGVzdGVkIHRoZSBwbHVnLWluIGJ5IGNoZWNraW5nIGJ1bmRs
ZSBwYXJhbWV0ZXJzLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4uaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbTogQWRkZWQuCisg
ICAgICAgICgtW0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVh
dGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6XSk6IFN0YXJ0ZWQgb2JzZXJ2aW5nIGNoYW5nZXMg
dG8gYQorICAgICAgICBidW5kbGUgcGFyYW1ldGVyIGFuZCBhc2tlZCBmb3IgYW4gaW5pdGlhbCBu
b3RpZmljYXRpb24uCisgICAgICAgICgtW0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4gZGVhbGxvY10p
OiBTdG9wcGVkIG9ic2VydmluZyBjaGFuZ2VzIHRvIGEgYnVuZGxlIHBhcmFtZXRlci4KKyAgICAg
ICAgKC1bQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2Jq
ZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBXaGVuIHRoZSBidW5kbGUgcGFyYW1ldGVyIGNoYW5nZXMs
CisgICAgICAgIG1pcnJvciBpdHMgdmFsdWUgaW4gdGhlIG1haW4gZnJhbWUncyBKU0NvbnRleHQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9QbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6cHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJ
blByaW5jaXBhbENsYXNzTmFtZSk6IENyZWF0ZWQgYSBXS1Byb2Nlc3NQb29sIHdpdGggdGhlIGNv
cnJlY3QKKyAgICAgICAgaW5qZWN0ZWQgYnVuZGxlIFVSTCBhbmQgYSBidW5kbGUgcGFyYW1ldGVy
IGluZGljYXRpbmcgd2hpY2ggcHJpbmNpcGFsIGNsYXNzIHRoZSB0ZXN0IHdpc2hlcyB0byB1c2Uu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9XZWJQcm9jZXNzUGx1Z0luL0luZm8ucGxp
c3Q6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJ
bi9XZWJQcm9jZXNzUGx1Z0luLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29j
b2EvV2ViUHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNzUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bV2ViUHJvY2Vzc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOmluaXRpYWxpemVXaXRoT2JqZWN0
Ol0pOiBDcmVhdGVkIHRoZSB0ZXN0J3MgcHJpbmNpcGFsIGNsYXNzIGFuZCBzZW50CisgICAgICAg
IHdlYlByb2Nlc3NQbHVnSW46aW5pdGlhbGl6ZVdpdGhPYmplY3Q6IHRvIGl0LgorICAgICAgICAo
LVtXZWJQcm9jZXNzUGx1Z0luIHdlYlByb2Nlc3NQbHVnSW46ZGlkQ3JlYXRlQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyOl0pOiBGb3J3YXJkZWQgdG8gdGhlIHRlc3QncyBwcmluY2lwYWwgY2xhc3Mu
CisgICAgICAgICgtW1dlYlByb2Nlc3NQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjp3aWxsRGVzdHJv
eUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpdKTogRGl0dG8uCisKIDIwMTUtMDgtMTcgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBob3cg
UGxhdGZvcm1XZWJWaWV3cyBhcmUgY3JlYXRlZCB3aGVuIHZpZXcgb3B0aW9ucyBjaGFuZ2UKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvSW5qZWN0ZWRCdW5k
bGUueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0luamVjdGVk
QnVuZGxlLnhjY29uZmlnCmluZGV4IDM3NzJiNzk3MjI2YWVkMjkxMThiZGQ5MmI2NzRkOWQyNjU1
MzFjOGQuLmNhOGFkY2MyZTliYzY0NDRhZWU5NDdjZjBiMjQ5NzRkZmYwZjQwZTMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvSW5qZWN0ZWRCdW5kbGUueGNj
b25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9JbmplY3RlZEJ1
bmRsZS54Y2NvbmZpZwpAQCAtMjMsNyArMjMsNyBAQAogCiBQUk9EVUNUX05BTUUgPSBJbmplY3Rl
ZEJ1bmRsZVRlc3RXZWJLaXRBUEk7CiAKLUZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTW3Nk
az1pcGhvbmUqXSA9IC1sb2JqYyAtZnJhbWV3b3JrIFVJS2l0OworRlJBTUVXT1JLX0FORF9MSUJS
QVJZX0xERkxBR1Nbc2RrPWlwaG9uZSpdID0gLWxvYmpjIC1mcmFtZXdvcmsgVUlLaXQgLWZyYW1l
d29yayBXZWJLaXQ7CiBGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHU1tzZGs9bWFjb3N4Kl0g
PSAtZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFtZXdvcmsg
Q29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29jb2E7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVy
aXRlZCkgJChGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3NQbHVnSW4ueGNjb25maWcg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3NQbHVnSW4ueGNj
b25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTM5YmQzZDhiYWQzODdhN2RkYTJiNTQwNmYzNDRhMTBhY2UxODE5
ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
V2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZwpAQCAtMCwwICsxLDMwIEBACisvLworLy8gQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy8v
CisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisvLyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKy8v
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworLy8gQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorLy8gQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKy8vIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworLy8gSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKy8vIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisvLyBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisvLyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisvLworCitJ
TkZPUExJU1RfRklMRSA9IGNvY29hL1dlYlByb2Nlc3NQbHVnSW4vSW5mby5wbGlzdDsKK1BST0RV
Q1RfTkFNRSA9IFRlc3RXZWJLaXRBUEk7CitFWEVDVVRBQkxFX1NVRkZJWCA9IC5idW5kbGU7CitX
UkFQUEVSX0VYVEVOU0lPTiA9IHdrYnVuZGxlOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVk
KSAtZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgV2ViS2l0OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oCmluZGV4IDJlMWUxYjBiNzRjZDllMmFiM2ZmODE5
NDM5ZGVkNGRkNmJkYTFiYmEuLmE0NDQ0YmNhMzU5NGIwOGQwYzQ4MmY2N2RmY2JkMWFiNGVlMGEx
ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1VdGlsaXRpZXMuaAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmgKQEAgLTMwLDYgKzMw
LDExIEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8c3RyaW5n
PgogCisjaWYgZGVmaW5lZChfX09CSkNfXykgJiYgV0tfQVBJX0VOQUJMRUQKKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KK0BjbGFzcyBXS1Byb2Nlc3NQb29sOworI2VuZGlmCisKICNpZiBVU0Uo
Rk9VTkRBVElPTikKIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiAjZW5kaWYKQEAgLTc1LDYgKzgwLDEx
IEBAIHN0YXRpYyBpbmxpbmUgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgYXNzZXJ0V0tTdHJp
bmdFcXVhbChjb25zdCBjaGFyKiBleHBlY3RlCiAjZGVmaW5lIEVYUEVDVF9XS19TVFJFUShleHBl
Y3RlZCwgYWN0dWFsKSBcCiAgICAgRVhQRUNUX1BSRURfRk9STUFUMihUZXN0V2ViS2l0QVBJOjpV
dGlsOjphc3NlcnRXS1N0cmluZ0VxdWFsLCBleHBlY3RlZCwgYWN0dWFsKQogCisjaWYgZGVmaW5l
ZChfX09CSkNfXykgJiYgV0tfQVBJX0VOQUJMRUQKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IFRl
c3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWVQYXJhbWV0ZXI7CitSZXRhaW5QdHI8V0tQcm9jZXNz
UG9vbD4gcHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZShOU1N0cmlu
ZyAqKTsKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBVdGlsCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWM0Y2NjZGMyNDQxZDUxMzEw
MDNlYzIyNTlmMzBjYmEzNTcxZTFiOC4uMTA4Y2FjYjJjMTc3ZDYwOTEwZTc1ZTk1YmQzYWViOWQ2
MDNlODAyYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NCw2ICsyNjQsMTAgQEAKIAkJ
OTNGN0U4NkYxNERDOEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZyYW1lc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICovOyB9OwogCQk5QjI2RkNDQTE1OUQxNkRFMDBD
QzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyNkZDQjQxNTlEMTVFNzAw
Q0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICovOyB9OwogCQk5QjRG
OEZBNzE1OUQ1MkREMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjRGOEZB
NjE1OUQ1MkNBMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsK
KwkJQTEzRUJCQUExQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBOTFCODc0MjhE
MDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5tbSAqLzsgfTsKKwkJQTEzRUJCQUIxQjg3NDM0
NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyog
UGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSAqLzsgfTsKKwkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3
MTEwIC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTNFQkJBRTFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxl
UGFyYW1ldGVyc1BsdWdJbi5tbSAqLzsgfTsKKwkJQTEzRUJCQjExQjg3NDM4MDAwMDk3MTEwIC8q
IEJ1bmRsZVBhcmFtZXRlcnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTNFQkJBQzFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5t
bSAqLzsgfTsKIAkJQTU3QTM0RjIxNkFGNkIyQjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3Rh
dGVXaXRoV2luZG93Q2hhbmdlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1N0EzNEYxMTZBRjY5RTIwMEMyNTAxRiAvKiBQYWdlVmlz
aWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCAqLzsgfTsKIAkJQTVFMjAyNzUxNUIy
MUY2RTAwQzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVFMjAyNzAxNUIy
MTgwNjAwQzEzRTE0IC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLmh0bWwgKi87IH07CiAJ
CUI1NUFEMUQ1MTc5RjNCMzAwMEFDMTQ5NCAvKiBQcmV2ZW50SW1hZ2VMb2FkV2l0aEF1dG9SZXNp
emluZ19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjU1QUQxRDMxNzlGM0FCRjAwQUMxNDk0IC8qIFByZXZlbnRJbWFnZUxvYWRXaXRoQXV0
b1Jlc2l6aW5nX0J1bmRsZS5jcHAgKi87IH07CkBAIC0zMjQsNiArMzI4LDEzIEBACiAJCQlyZW1v
dGVHbG9iYWxJRFN0cmluZyA9IDdDQ0U3RThCMUE0MTE0NEUwMDQ0N0M0QzsKIAkJCXJlbW90ZUlu
Zm8gPSBUZXN0V2ViS2l0QVBJTGlicmFyeTsKIAkJfTsKKwkJQTEzRUJCQjIxQjg3NDQxOTAwMDk3
MTEwIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5l
ckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMw
NyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9i
YWxJRFN0cmluZyA9IEExM0VCQjQ4MUI4NzMzOUUwMDA5NzExMDsKKwkJCXJlbW90ZUluZm8gPSBX
ZWJQcm9jZXNzUGx1Z0luOworCQl9OwogCQlCQzU3NUE5NTEyNkU3NEU3MDA2RjBGMTIgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5
OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3IC8qIFByb2pl
Y3Qgb2JqZWN0ICovOwpAQCAtNjE5LDYgKzYzMCwxNCBAQAogCQk5QjI2RkNCNDE1OUQxNUU3MDBD
QzM3NjUgLyogSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xs
ZWN0aW9uTmFtZWRJdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCNEY4RkE2MTU5RDUyQ0EwMDJEOUY5NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0u
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEzRUJCNDkxQjg3MzM5RTAwMDk3
MTEwIC8qIFRlc3RXZWJLaXRBUEkud2tidW5kbGUgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuY2ZidW5kbGU7IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IFRlc3RXZWJLaXRBUEkud2tidW5kbGU7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCUExM0VCQjUyMUI4NzM0NjYwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1
Z0luLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYlByb2Nlc3NQ
bHVnSW4ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExM0VCQjU0MUI4
NzM0RTAwMDA5NzExMCAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBh
dGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTNFQkJBODFC
ODc0MjhEMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJQcm9jZXNzUGx1Z0luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUExM0VCQkE5MUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc1BsdWdJbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEw
IC8qIEJ1bmRsZVBhcmFtZXRlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBCdW5kbGVQYXJhbWV0ZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBMTNFQkJBRDFCODc0MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExM0VCQkFFMUI4NzQzNkYwMDA5NzExMCAv
KiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThBIC8qIERvd25sb2FkLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRG93bmxvYWQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRkRGRDJFMTlDMjg4QkIwMDUxNDhBNCAvKiBXS0ltYWdl
Q3JlYXRlQ0dJbWFnZUNyYXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLSW1hZ2VDcmVhdGVDR0ltYWdlQ3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNTdBMzRFRjE2QUY2NzcyMDBDMjUwMUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdp
dGhXaW5kb3dDaGFuZ2VzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtODM2LDYgKzg1NSw3IEBACiAJCTBGMTM5RTcxMUE0MjNBMUQwMEY1
OTBGNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQTEzRUJCNDQxQjg3MzMyQjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4gKi8sCiAJ
CQkJMEYxMzlFNzIxQTQyM0EyQjAwRjU5MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0g
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwpAQCAtODU1LDYgKzg3NSw3IEBACiAJCQkJOERE
NzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIFRlc3RXZWJLaXRBUEkgKi8sCiAJCQkJQkM1NzU5ODAx
MjZFNzRBRjAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlVGVzdFdlYktpdEFQSS5idW5kbGUgKi8s
CiAJCQkJN0NDRTdFOEMxQTQxMTQ0RTAwNDQ3QzRDIC8qIGxpYlRlc3RXZWJLaXRBUEkuYSAqLywK
KwkJCQlBMTNFQkI0OTFCODczMzlFMDAwOTcxMTAgLyogVGVzdFdlYktpdEFQSS53a2J1bmRsZSAq
LywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtODYzLDYgKzg4NCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTdDRUZBOTY0MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLm1tICovLAorCQkJCUExM0VCQkFDMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJh
bWV0ZXJzLm1tICovLAorCQkJCUExM0VCQkFEMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJh
bWV0ZXJzUGx1Z0luLmggKi8sCisJCQkJQTEzRUJCQUUxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRs
ZVBhcmFtZXRlcnNQbHVnSW4ubW0gKi8sCiAJCQkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThBIC8q
IERvd25sb2FkLm1tICovLAogCQkJCTJEMUZFMEFGMUFENDY1QzEwMDZDRDlFNiAvKiBGaXhlZExh
eW91dFNpemUubW0gKi8sCiAJCQkJMzdEMzZFRDYxQUY0MkVDRDAwQkFGNUQ5IC8qIExvYWRBbHRl
cm5hdGVIVE1MU3RyaW5nLm1tICovLApAQCAtOTMxLDYgKzk1NSwxNyBAQAogCQkJcGF0aCA9IGRh
cndpbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUExM0VCQjQ0MUI4NzMz
MkIwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQlBMTNFQkI1NDFCODczNEUwMDAwOTcxMTAgLyogSW5mby5w
bGlzdCAqLywKKwkJCQlBMTNFQkJBODFCODc0MjhEMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJ
bi5oICovLAorCQkJCUExM0VCQkE5MUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0lu
Lm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBXZWJQcm9jZXNzUGx1Z0luOworCQkJcGF0aCA9IGNv
Y29hL1dlYlByb2Nlc3NQbHVnSW47CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQlCQzAyOUIxQTE0ODZCMjM4MDA4MTdEQTkgLyogbnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTc1LDYgKzEwMTAsNyBAQAogCQkJCUJDNTc1QUUyMTI2
RTg4QjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZS54Y2NvbmZpZyAqLywKIAkJCQlCQzkwOTU4
MDEyNTU0Q0Y5MDAwODM3NTYgLyogVGVzdFdlYktpdEFQSS54Y2NvbmZpZyAqLywKIAkJCQk3Q0NF
N0VBMzFBNDExNUNCMDA0NDdDNEMgLyogVGVzdFdlYktpdEFQSUxpYnJhcnkueGNjb25maWcgKi8s
CisJCQkJQTEzRUJCNTIxQjg3MzQ2NjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ueGNjb25m
aWcgKi8sCiAJCQkpOwogCQkJcGF0aCA9IENvbmZpZ3VyYXRpb25zOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTEzNzgsNiArMTQxNCw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJ
KTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQlBMTNFQkJCMzFCODc0NDE5MDAwOTcxMTAgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlCQzU3NUE5NjEyNkU3NEU3MDA2RjBGMTIgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk3Q0NFN0Y1MTFBNDEyNERCMDA0NDdDNEMgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CkBAIC0xMzg3LDYgKzE0MjQsMjEgQEAKIAkJ
CXByb2R1Y3RSZWZlcmVuY2UgPSA4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktp
dEFQSSAqLzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7
CiAJCX07CisJCUExM0VCQjQ4MUI4NzMzOUUwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luICov
ID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlz
dCA9IEExM0VCQjRDMUI4NzMzOUUwMDA5NzExMCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViUHJvY2Vzc1BsdWdJbiIgKi87CisJCQlidWlsZFBoYXNl
cyA9ICgKKwkJCQlBMTNFQkI0NTFCODczMzlFMDAwOTcxMTAgLyogU291cmNlcyAqLywKKwkJCSk7
CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJ
CQluYW1lID0gV2ViUHJvY2Vzc1BsdWdJbjsKKwkJCXByb2R1Y3ROYW1lID0gV2ViUHJvY2Vzc1Bs
dWdJbjsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSBBMTNFQkI0OTFCODczMzlFMDAwOTcxMTAgLyog
VGVzdFdlYktpdEFQSS53a2J1bmRsZSAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5w
cm9kdWN0LXR5cGUuYnVuZGxlIjsKKwkJfTsKIAkJQkM1NzU5N0YxMjZFNzRBRjAwNkYwRjEyIC8q
IEluamVjdGVkQnVuZGxlVGVzdFdlYktpdEFQSSAqLyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2ZVRh
cmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBCQzU3NTk4NjEyNkU3NEFGMDA2RjBG
MTIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIkluamVj
dGVkQnVuZGxlVGVzdFdlYktpdEFQSSIgKi87CkBAIC0xNDE2LDYgKzE0NjgsOSBAQAogCQkJCQk3
Q0NFN0U4QjFBNDExNDRFMDA0NDdDNEMgPSB7CiAJCQkJCQlDcmVhdGVkT25Ub29sc1ZlcnNpb24g
PSA2LjM7CiAJCQkJCX07CisJCQkJCUExM0VCQjQ4MUI4NzMzOUUwMDA5NzExMCA9IHsKKwkJCQkJ
CUNyZWF0ZWRPblRvb2xzVmVyc2lvbiA9IDcuMDsKKwkJCQkJfTsKIAkJCQl9OwogCQkJfTsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxREVCOTI3ODA4NzMzREQ0MDAxMEU5Q0QgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJUZXN0V2ViS2l0QVBJIiAqLzsK
QEAgLTE0MzUsNiArMTQ5MCw3IEBACiAJCQkJOERENzZGOTYwNDg2QUE3NjAwRDk2QjVFIC8qIFRl
c3RXZWJLaXRBUEkgKi8sCiAJCQkJQkM1NzU5N0YxMjZFNzRBRjAwNkYwRjEyIC8qIEluamVjdGVk
QnVuZGxlVGVzdFdlYktpdEFQSSAqLywKIAkJCQk3Q0NFN0U4QjFBNDExNDRFMDA0NDdDNEMgLyog
VGVzdFdlYktpdEFQSUxpYnJhcnkgKi8sCisJCQkJQTEzRUJCNDgxQjg3MzM5RTAwMDk3MTEwIC8q
IFdlYlByb2Nlc3NQbHVnSW4gKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2Vj
dGlvbiAqLwpAQCAtMTUzMCw2ICsxNTg2LDcgQEAKIAkJCQk3Q0NFN0VDNDFBNDExQTdFMDA0NDdD
NEMgLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0YwNjFBNDExQUU2MDA0NDdDNEMgLyogTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50
SW5GcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VERjFBNDExQTkyMDA0NDdDNEMg
LyogTGF5b3V0VW5pdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBMTNFQkJCMTFCODc0MzgwMDAw
OTcxMTAgLyogQnVuZGxlUGFyYW1ldGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjM4
MUE0MTFCOEUwMDQ0N0M0QyAvKiBMaXN0SGFzaFNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
N0QzNkVENzFBRjQyRUNEMDBCQUY1RDkgLyogTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Q0NFN0VGRTFBNDExQUU2MDA0NDdDNEMgLyogTG9hZEFsdGVybmF0
ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTY3
MCw2ICsxNzI3LDE2IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CisJCUExM0VCQjQ1MUI4NzMzOUUwMDA5NzExMCAvKiBTb3VyY2VzICov
ID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQTEzRUJCQUExQjg3NDI4RDAwMDk3MTEw
IC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKKwkJCQlBMTNFQkJCMDFCODc0
MzZGMDAwOTcxMTAgLyogQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUExM0VCQkFCMUI4NzQzNDYwMDA5NzExMCAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCX07CiAJCUJDNTc1OTdEMTI2RTc0QUYwMDZGMEYxMiAvKiBTb3VyY2VzICov
ID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OwpAQCAtMTcyMSw2ICsxNzg4LDExIEBACiAJCQl0YXJnZXQgPSA3Q0NFN0U4
QjFBNDExNDRFMDA0NDdDNEMgLyogVGVzdFdlYktpdEFQSUxpYnJhcnkgKi87CiAJCQl0YXJnZXRQ
cm94eSA9IDdDQ0U3RjUwMUE0MTI0REIwMDQ0N0M0QyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CiAJCX07CisJCUExM0VCQkIzMUI4NzQ0MTkwMDA5NzExMCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IEEx
M0VCQjQ4MUI4NzMzOUUwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luICovOworCQkJdGFyZ2V0
UHJveHkgPSBBMTNFQkJCMjFCODc0NDE5MDAwOTcxMTAgLyogUEJYQ29udGFpbmVySXRlbVByb3h5
ICovOworCQl9OwogCQlCQzU3NUE5NjEyNkU3NEU3MDA2RjBGMTIgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSBC
QzU3NTk3RjEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJICov
OwpAQCAtMTc3Myw2ICsxODQ1LDIwIEBACiAJCQl9OwogCQkJbmFtZSA9IFJlbGVhc2U7CiAJCX07
CisJCUExM0VCQjREMUI4NzMzOUUwMDA5NzExMCAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBBMTNF
QkI1MjFCODczNDY2MDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZyAqLzsKKwkJ
CWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQlBMTNF
QkI0RTFCODczMzlFMDAwOTcxMTAgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBBMTNFQkI1MjFC
ODczNDY2MDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxk
U2V0dGluZ3MgPSB7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CiAJCUJDNTc1OTg0
MTI2RTc0QUYwMDZGMEYxMiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1
cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQzU3NUFFMjEyNkU4OEIx
MDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGUueGNjb25maWcgKi87CkBAIC0xODE3LDYgKzE5MDMs
MTUgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRD
b25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7CiAJCX07CisJCUExM0VCQjRDMUI4NzMzOUUwMDA5
NzExMCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2Vi
UHJvY2Vzc1BsdWdJbiIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJ
YnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQlBMTNFQkI0RDFCODczMzlFMDAwOTcxMTAgLyog
RGVidWcgKi8sCisJCQkJQTEzRUJCNEUxQjg3MzM5RTAwMDk3MTEwIC8qIFJlbGVhc2UgKi8sCisJ
CQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKKwkJfTsKIAkJQkM1NzU5ODYxMjZFNzRBRjAwNkYw
RjEyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJJbmpl
Y3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9u
TGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVycy5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40Zjc3MjI0MGQ0YzczYWZkZWNlOTI2ODgwNWYzMDQ0ZGRhYTM0ZWVmCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxl
UGFyYW1ldGVycy5tbQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5B
QkxFRAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5oPgorCit1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTo6VXRpbDsKKworc3RhdGlj
IGJvb2wgaXNEb25lID0gZmFsc2U7CisKK1RFU1QoV2ViS2l0MiwgQnVuZGxlUGFyYW1ldGVycykK
K3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnBy
b2Nlc3NQb29sV2l0aFRlc3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWUoQCJCdW5kbGVQYXJhbWV0
ZXJzUGx1Z0luIikuZ2V0KCldOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKworICAgIE5TU3RyaW5nICogY29uc3QgdGVzdFBhcmFtZXRlciA9IEAi
VGVzdFBhcmFtZXRlciI7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OnRlc3RQYXJh
bWV0ZXIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9GQUxTRSghIXJlc3VsdCk7CisgICAgICAgIGlzRG9uZSA9IHRydWU7Cisg
ICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgaXNE
b25lID0gZmFsc2U7CisKKyAgICBOU1N0cmluZyAqIGNvbnN0IHRlc3RTdHJpbmcgPSBAIlBBU1Mi
OworICAgIFtbY29uZmlndXJhdGlvbiBwcm9jZXNzUG9vbF0gX3NldE9iamVjdDp0ZXN0U3RyaW5n
IGZvckJ1bmRsZVBhcmFtZXRlcjp0ZXN0UGFyYW1ldGVyXTsKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6dGVzdFBhcmFtZXRlciBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNs
YXNzOltOU1N0cmluZyBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0Vx
dWFsVG9TdHJpbmc6dGVzdFN0cmluZ10pOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1d
OworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIGlzRG9uZSA9
IGZhbHNlOworCisgICAgTlNEaWN0aW9uYXJ5ICogY29uc3QgdGVzdERpY3Rpb25hcnkgPSBAeyBA
InJlc3VsdCIgOiBAIlBBU1MiIH07CisgICAgW1tjb25maWd1cmF0aW9uIHByb2Nlc3NQb29sXSBf
c2V0T2JqZWN0OnRlc3REaWN0aW9uYXJ5IGZvckJ1bmRsZVBhcmFtZXRlcjp0ZXN0UGFyYW1ldGVy
XTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6dGVzdFBhcmFtZXRlciBjb21wbGV0
aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNU
X1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAg
ICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvRGljdGlvbmFyeTp0ZXN0RGljdGlvbmFy
eV0pOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgW1tjb25m
aWd1cmF0aW9uIHByb2Nlc3NQb29sXSBfc2V0T2JqZWN0Om5pbCBmb3JCdW5kbGVQYXJhbWV0ZXI6
dGVzdFBhcmFtZXRlcl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OnRlc3RQYXJh
bWV0ZXIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9GQUxTRSghIXJlc3VsdCk7CisgICAgICAgIGlzRG9uZSA9IHRydWU7Cisg
ICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKKyNl
bmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY3NTMxNzJhMjY5NTM0OWI4MDAwZjFlNmJiMTUzMjgwNmEzZWM5NGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQ
YXJhbWV0ZXJzUGx1Z0luLmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
PFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW4uaD4KKworQGludGVyZmFjZSBCdW5kbGVQYXJhbWV0
ZXJzUGx1Z0luIDogTlNPYmplY3QgPFdLV2ViUHJvY2Vzc1BsdWdJbj4KK0BlbmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRl
cnNQbHVnSW4ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5k
bGVQYXJhbWV0ZXJzUGx1Z0luLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyMjc5MTZkZGJmMGZhYTQyYzYwNjU2
MjgwNzI1NjAwODRiZTVjNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tCkBAIC0wLDAgKzEs
NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkJ1bmRsZVBh
cmFtZXRlcnNQbHVnSW4uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaD4KKyNpbXBvcnQg
PFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
UHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisK
K3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHRlc3RQYXJhbWV0ZXIgPSBAIlRlc3RQYXJhbWV0ZXIi
OworCitAaW1wbGVtZW50YXRpb24gQnVuZGxlUGFyYW1ldGVyc1BsdWdJbiB7CisgICAgUmV0YWlu
UHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcj4gX2Jyb3dzZXJD
b250ZXh0Q29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8V0tXZWJQcm9jZXNzUGx1Z0luQ29udHJv
bGxlcj4gX3BsdWdJbkNvbnRyb2xsZXI7Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjoo
V0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRl
QnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXIKK3sKKyAgICBBU1NFUlQoIV9i
cm93c2VyQ29udGV4dENvbnRyb2xsZXIpOworICAgIEFTU0VSVCghX3BsdWdJbkNvbnRyb2xsZXIp
OworICAgIF9icm93c2VyQ29udGV4dENvbnRyb2xsZXIgPSBicm93c2VyQ29udGV4dENvbnRyb2xs
ZXI7CisgICAgX3BsdWdJbkNvbnRyb2xsZXIgPSBwbHVnSW5Db250cm9sbGVyOworICAgIFtwbHVn
SW5Db250cm9sbGVyLnBhcmFtZXRlcnMgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOnRlc3RQ
YXJhbWV0ZXIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250ZXh0
Ok5VTExdOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbW19wbHVnSW5Db250cm9sbGVy
IHBhcmFtZXRlcnNdIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDp0ZXN0UGFyYW1ldGVy
XTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0Rp
Y3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3sKKyAgICBKU0NvbnRl
eHQgKmpzQ29udGV4dCA9IFtbX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlciBtYWluRnJhbWVdIGpz
Q29udGV4dEZvcldvcmxkOltXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCBub3JtYWxXb3Js
ZF1dOworICAgIFtqc0NvbnRleHQgc2V0T2JqZWN0OltvYmplY3QgdmFsdWVGb3JLZXk6a2V5UGF0
aF0gZm9yS2V5ZWRTdWJzY3JpcHQ6a2V5UGF0aF07Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdL
X0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1BsYXRm
b3JtVXRpbGl0aWVzQ29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1BsYXRmb3Jt
VXRpbGl0aWVzQ29jb2EubW0KaW5kZXggOGMxZGFkMWEzZGViZTNmZTJiYWNlODIzMjdkNzY4ZDk2
YjhjZTdjMC4uZmIxZWFlYjZhOWQxYzc4ODlmNjcxODk3ZDg0YTk5ZjhlYTBjOWI2ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9QbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5t
bQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+
CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGlsIHsKQEAgLTU1LDUg
KzU3LDE5IEBAIHN0ZDo6c3RyaW5nIHRvU1REKE5TU3RyaW5nICpzdHJpbmcpCiAgICAgcmV0dXJu
IHN0ZDo6c3RyaW5nKGJ1ZmZlci5nZXQoKSwgc3RyaW5nTGVuZ3RoKTsKIH0KIAorI2lmIFdLX0FQ
SV9FTkFCTEVECitOU1N0cmluZyAqIGNvbnN0IFRlc3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWVQ
YXJhbWV0ZXIgPSBAIlRlc3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWUiOworCitSZXRhaW5QdHI8
V0tQcm9jZXNzUG9vbD4gcHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFt
ZShOU1N0cmluZyAqY2xhc3NOYW1lKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbY29u
ZmlndXJhdGlvbiBzZXRJbmplY3RlZEJ1bmRsZVVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiVGVzdFdlYktpdEFQSSIgd2l0aEV4dGVuc2lvbjpAIndrYnVuZGxlIl1d
OworCisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbcHJv
Y2Vzc1Bvb2wgX3NldE9iamVjdDpjbGFzc05hbWUgZm9yQnVuZGxlUGFyYW1ldGVyOlRlc3RQbHVn
SW5QcmluY2lwYWxDbGFzc05hbWVQYXJhbWV0ZXJdOworICAgIHJldHVybiBwcm9jZXNzUG9vbDsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBVdGlsCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQ
bHVnSW4vSW5mby5wbGlzdCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1Bs
dWdJbi9JbmZvLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZjJhMjA5MTYwMTdiY2RkYWY1ZTM5YmU3OWYz
OGMyY2RmZjg3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1dlYlByb2Nlc3NQbHVnSW4vSW5mby5wbGlzdApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v
QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9w
ZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+
Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgorCTxzdHJpbmc+ZW48L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxzdHJpbmc+JChFWEVDVVRBQkxFX05BTUUp
PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgorCTxz
dHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKwk8c3RyaW5nPiQo
UFJPRFVDVF9OQU1FKTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5Pgor
CTxzdHJpbmc+Qk5ETDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8
L2tleT4KKwk8c3RyaW5nPjEuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tl
eT4KKwk8c3RyaW5nPj8/Pz88L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5Pgor
CTxzdHJpbmc+MTwvc3RyaW5nPgorCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxzdHJp
bmc+V2ViUHJvY2Vzc1BsdWdJbjwvc3RyaW5nPgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNz
UGx1Z0luLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vV2Vi
UHJvY2Vzc1BsdWdJbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYzFkOGRmN2ExYzUwZDVhYzFmODM3ODMyZWEw
MTFkN2E3YTdiMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1dlYlByb2Nlc3NQbHVnSW4vV2ViUHJvY2Vzc1BsdWdJbi5oCkBAIC0wLDAgKzEsMjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisKK0BpbnRl
cmZhY2UgV2ViUHJvY2Vzc1BsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4+CitA
ZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVn
SW4vV2ViUHJvY2Vzc1BsdWdJbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJv
Y2Vzc1BsdWdJbi9XZWJQcm9jZXNzUGx1Z0luLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwNTVjYmE4M2YyN2Vh
ZjM1ZDk0ODBlNDQwMTczZjFiNmMxM2JhOTcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vV2ViUHJvY2Vzc1BsdWdJbi5tbQpAQCAt
MCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJX
ZWJQcm9jZXNzUGx1Z0luLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCit1c2luZyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSTo6VXRpbDsKKworQGltcGxlbWVudGF0aW9uIFdlYlByb2Nlc3NQ
bHVnSW4geworICAgIFJldGFpblB0cjxpZCA8V0tXZWJQcm9jZXNzUGx1Z0luPj4gX3Rlc3RQbHVn
SW47Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9jZXNzUGx1Z0luQ29u
dHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgaW5pdGlhbGl6ZVdpdGhPYmplY3Q6KGlkKWluaXRp
YWxpemF0aW9uT2JqZWN0Cit7CisgICAgTlNTdHJpbmcgKnRlc3RQbHVnSW5QcmluY2lwYWxDbGFz
c05hbWUgPSBbcGx1Z0luQ29udHJvbGxlci5wYXJhbWV0ZXJzIHZhbHVlRm9yS2V5OlRlc3RQbHVn
SW5QcmluY2lwYWxDbGFzc05hbWVQYXJhbWV0ZXJdOworICAgIEFTU0VSVCh0ZXN0UGx1Z0luUHJp
bmNpcGFsQ2xhc3NOYW1lKTsKKyAgICBBU1NFUlQoW3Rlc3RQbHVnSW5QcmluY2lwYWxDbGFzc05h
bWUgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CisKKyAgICBDbGFzcyB0ZXN0UGx1
Z0luUHJpbmNpcGFsQ2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyh0ZXN0UGx1Z0luUHJpbmNpcGFs
Q2xhc3NOYW1lKTsKKyAgICBBU1NFUlQodGVzdFBsdWdJblByaW5jaXBhbENsYXNzKTsKKyAgICBB
U1NFUlQoW3Rlc3RQbHVnSW5QcmluY2lwYWxDbGFzcyBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3Rv
Y29sKFdLV2ViUHJvY2Vzc1BsdWdJbildKTsKKworICAgIEFTU0VSVCghX3Rlc3RQbHVnSW4pOwor
ICAgIF90ZXN0UGx1Z0luID0gYWRvcHROUyhbW3Rlc3RQbHVnSW5QcmluY2lwYWxDbGFzcyBhbGxv
Y10gaW5pdF0pOworCisgICAgaWYgKFtfdGVzdFBsdWdJbiByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHdlYlByb2Nlc3NQbHVnSW46aW5pdGlhbGl6ZVdpdGhPYmplY3Q6KV0pCisgICAgICAg
IFtfdGVzdFBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOnBsdWdJbkNvbnRyb2xsZXIgaW5pdGlhbGl6
ZVdpdGhPYmplY3Q6aW5pdGlhbGl6YXRpb25PYmplY3RdOworfQorCistICh2b2lkKXdlYlByb2Nl
c3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVy
IGRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7CisgICAg
aWYgKFtfdGVzdFBsdWdJbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlByb2Nlc3NQ
bHVnSW46ZGlkQ3JlYXRlQnJvd3NlckNvbnRleHRDb250cm9sbGVyOildKQorICAgICAgICBbX3Rl
c3RQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlcjpicm93c2VyQ29udGV4dENvbnRyb2xsZXJdOworfQorCistICh2
b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVn
SW5Db250cm9sbGVyIHdpbGxEZXN0cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRy
b2xsZXIKK3sKKyAgICBpZiAoW190ZXN0UGx1Z0luIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Iod2ViUHJvY2Vzc1BsdWdJbjp3aWxsRGVzdHJveUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjop
XSkKKyAgICAgICAgW190ZXN0UGx1Z0luIHdlYlByb2Nlc3NQbHVnSW46cGx1Z0luQ29udHJvbGxl
ciB3aWxsRGVzdHJveUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpicm93c2VyQ29udGV4dENvbnRy
b2xsZXJdOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259736</attachid>
            <date>2015-08-22 22:25:24 -0700</date>
            <delta_ts>2015-08-23 08:42:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148317-20150822222517.patch</filename>
            <type>text/plain</type>
            <size>36174</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4ODE4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjlkYTA3MmJhYWY0MWQ0ZDI3MTA2YmU5YTIzMTkzYzJj
NTMzODdiMi4uY2Y2YjVlNjcyNmNmOTk2ODA2MjRlYzEzMzgzMGUyN2VhODAyNjYwMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDE1LTA4LTIyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBbQ29jb2FdIEFQSSB0ZXN0cyB1c2luZyB0aGUgTW9kZXJuIFdlYktpdCBBUEkgc2hvdWxkIGJl
IGFibGUgdG8gY3JlYXRlIHdlYiBwcm9jZXNzIHBsdWctaW5zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgzMTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgYWJpbGl0eSBmb3IgTW9kZXJu
IFdlYktpdCBBUEkgdGVzdHMgdG8gY3JlYXRlIFdLV2ViUHJvY2Vzc1BsdWdJbnMuIEEgdGVzdCBj
YW4gY3JlYXRlIGEgcGx1Zy1pbiBieQorICAgICAgICBjcmVhdGluZyBhIGNsYXNzIHRoYXQgY29u
Zm9ybXMgdG8gV0tXZWJQcm9jZXNzUGx1Z0luLCBhZGRpbmcgaXQgdG8gdGhlIFdlYlByb2Nlc3NQ
bHVnSW4gdGFyZ2V0LCBhbmQgdXNpbmcgdGhlCisgICAgICAgIFdLUHJvY2Vzc1Bvb2wgcmV0dXJu
ZWQgYnkgcHJvY2Vzc1Bvb2xXaXRoVGVzdFBsdWdJblByaW5jaXBhbENsYXNzTmFtZSgpIHdoZW4g
Y3JlYXRpbmcgV0tXZWJWaWV3cy4KKworICAgICAgICBTaW5jZSBUZXN0V2ViS2l0QVBJIHJlbGll
cyBvbiBhIGJ1bmRsZSBwYXJhbWV0ZXIgdG8ga25vdyB3aGljaCB0ZXN0IGNsYXNzIHRvIGluc3Rh
bnRpYXRlIGluIHRoZSBwbHVnLWluLCBJIGFsc28KKyAgICAgICAgYWRkZWQgYSBuZXcgQVBJIHRl
c3QgZm9yIGJ1bmRsZSBwYXJhbWV0ZXJzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9XZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnOiBBZGRlZC4gTmFtZWQgdGhlIGJ1
bmRsZSBUZXN0V2ViS2l0QVBJLndrYnVuZGxlIGFuZAorICAgICAgICBuYW1lZCBpdHMgZXhlY3V0
YWJsZSBUZXN0V2ViS2l0QVBJLmJ1bmRsZS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRm
b3JtVXRpbGl0aWVzLmg6IERlY2xhcmVkIFRlc3RQbHVnSW5DbGFzc05hbWVQYXJhbWV0ZXIuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6IEFkZGVkIHRoZSBXZWJQcm9jZXNzUGx1Z0luIHRhcmdldC4KKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1tOiBBZGRlZC4K
KyAgICAgICAgKFRFU1QpOiBUZXN0ZWQgYnVuZGxlIHBhcmFtZXRlcnMgYnkgdmVyaWZ5aW5nIHRo
YXQgcGFyYW1ldGVyIGNoYW5nZXMgaW4gdGhlIFVJIHByb2Nlc3MgYXJlIG9ic2VydmVkIGluIHRo
ZSBidW5kbGUuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVu
ZGxlUGFyYW1ldGVyc1BsdWdJbi5tbTogQWRkZWQuCisgICAgICAgICgtW0J1bmRsZVBhcmFtZXRl
cnNQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xs
ZXI6XSk6IFN0YXJ0ZWQgb2JzZXJ2aW5nIGNoYW5nZXMgdG8gYQorICAgICAgICBidW5kbGUgcGFy
YW1ldGVyIGFuZCBhc2tlZCBmb3IgYW4gaW5pdGlhbCBub3RpZmljYXRpb24uCisgICAgICAgICgt
W0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4gZGVhbGxvY10pOiBTdG9wcGVkIG9ic2VydmluZyBjaGFu
Z2VzIHRvIGEgYnVuZGxlIHBhcmFtZXRlci4KKyAgICAgICAgKC1bQnVuZGxlUGFyYW1ldGVyc1Bs
dWdJbiBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBX
aGVuIGEgYnVuZGxlIHBhcmFtZXRlciBjaGFuZ2VzLAorICAgICAgICBtaXJyb3IgaXRzIHZhbHVl
IGluIHRoZSBtYWluIGZyYW1lJ3MgSlNDb250ZXh0LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
V0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW06IEFkZGVkLgorICAgICAgICAo
K1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIHRlc3R3ZWJraXRhcGlfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOl0pOiBDcmVhdGVkIGEgY29uZmlndXJhdGlvbiB3aXRoCisgICAg
ICAgIFRlc3RXZWJLaXRBUEkncyBidW5kbGUgVVJMIGFuZCBzZXQgYSBidW5kbGUgcGFyYW1ldGVy
IGluZGljYXRpbmcgdGhlIHRlc3QgcGx1Zy1pbidzIGNsYXNzIG5hbWUuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9jb2NvYS9QbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tOiBEZWZpbmVkIFRlc3RQ
bHVnSW5DbGFzc05hbWVQYXJhbWV0ZXIuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9X
ZWJQcm9jZXNzUGx1Z0luL0luZm8ucGxpc3Q6IEFkZGVkLiBTZXQgdGhlIHByaW5jaXBhbCBjbGFz
cyB0byBXZWJQcm9jZXNzUGx1Z0luLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvV2Vi
UHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNzUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV2Vi
UHJvY2Vzc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOmluaXRpYWxpemVXaXRoT2JqZWN0Ol0pOiBG
b3J3YXJkZWQgdG8gYSBuZXdseS1jcmVhdGVkIHRlc3QgY2xhc3MgaW5zdGFuY2UuCisgICAgICAg
ICgtW1dlYlByb2Nlc3NQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6XSk6IEZvcndhcmRlZCB0byB0aGUgdGVzdCBjbGFzcyBpbnN0YW5jZS4K
KyAgICAgICAgKC1bV2ViUHJvY2Vzc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOndpbGxEZXN0cm95
QnJvd3NlckNvbnRleHRDb250cm9sbGVyOl0pOiBEaXR0by4KKwogMjAxNS0wOC0yMSAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjE4ODgwNywgcjE4ODgxMywgYW5kIHIxODg4MTUuCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3NQbHVnSW4ueGNjb25m
aWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1dlYlByb2Nlc3NQbHVnSW4u
eGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM5YmQzZDhiYWQzODdhN2RkYTJiNTQwNmYzNDRhMTBhY2Ux
ODE5ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvV2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZwpAQCAtMCwwICsxLDMwIEBACisvLworLy8gQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
Ky8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisvLyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
Ky8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworLy8gQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorLy8gQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKy8v
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworLy8gSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKy8vIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisv
LyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisvLyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisvLwor
CitJTkZPUExJU1RfRklMRSA9IGNvY29hL1dlYlByb2Nlc3NQbHVnSW4vSW5mby5wbGlzdDsKK1BS
T0RVQ1RfTkFNRSA9IFRlc3RXZWJLaXRBUEk7CitFWEVDVVRBQkxFX1NVRkZJWCA9IC5idW5kbGU7
CitXUkFQUEVSX0VYVEVOU0lPTiA9IHdrYnVuZGxlOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJp
dGVkKSAtZnJhbWV3b3JrIEphdmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgV2ViS2l0OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVV0aWxpdGllcy5oCmluZGV4IDJlMWUxYjBiNzRjZDllMmFiM2Zm
ODE5NDM5ZGVkNGRkNmJkYTFiYmEuLjc1ODNlNGVlMDc3ZTNlODgzZTZhNTdkYjVkMWI4OWVjNDc5
NDI5NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1VdGlsaXRpZXMu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmgKQEAgLTc1LDYg
Kzc1LDEwIEBAIHN0YXRpYyBpbmxpbmUgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgYXNzZXJ0
V0tTdHJpbmdFcXVhbChjb25zdCBjaGFyKiBleHBlY3RlCiAjZGVmaW5lIEVYUEVDVF9XS19TVFJF
UShleHBlY3RlZCwgYWN0dWFsKSBcCiAgICAgRVhQRUNUX1BSRURfRk9STUFUMihUZXN0V2ViS2l0
QVBJOjpVdGlsOjphc3NlcnRXS1N0cmluZ0VxdWFsLCBleHBlY3RlZCwgYWN0dWFsKQogCisjaWYg
V0tfQVBJX0VOQUJMRUQKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IFRlc3RQbHVnSW5DbGFzc05h
bWVQYXJhbWV0ZXI7CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgVXRpbAogfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFjNGNjY2RjMjQ0
MWQ1MTMxMDAzZWMyMjU5ZjMwY2JhMzU3MWUxYjguLmMzMTAwNGIwMmY0MGMwZmJmMTg2ZGNhM2My
YjM0MmI3NDVkMjcwZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjQsNiArMjY0LDEx
IEBACiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLzsgfTsKIAkJOUIyNkZDQ0ExNTlE
MTZERTAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMjZGQ0I0MTU5
RDE1RTcwMENDMzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0uaHRtbCAqLzsgfTsK
IAkJOUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUI0RjhGQTYxNTlENTJDQTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwg
Ki87IH07CisJCUExM0VCQkFBMUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQTkx
Qjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gKi87IH07CisJCUExM0VCQkFC
MUI4NzQzNDYwMDA5NzExMCAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzlFNzIxQTQyM0EyQjAwRjU5
MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gKi87IH07CisJCUExM0VCQkIwMUI4NzQz
NkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQUUxQjg3NDM2RjAwMDk3MTEwIC8q
IEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gKi87IH07CisJCUExM0VCQkIxMUI4NzQzODAwMDA5
NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFt
ZXRlcnMubW0gKi87IH07CisJCUExNEZDNTg1MUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZpZXdD
b25maWd1cmF0aW9uRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE0RkM1ODMxQjg5NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb25FeHRyYXMubW0gKi87IH07CiAJCUE1N0EzNEYyMTZBRjZCMkIwMEMyNTAxRiAvKiBQYWdl
VmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTdBMzRGMTE2QUY2OUUyMDBDMjUw
MUYgLyogUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLmh0bWwgKi87IH07CiAJ
CUE1RTIwMjc1MTVCMjFGNkUwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE1RTIwMjcwMTVCMjE4MDYwMEMxM0UxNCAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5o
dG1sICovOyB9OwogCQlCNTVBRDFENTE3OUYzQjMwMDBBQzE0OTQgLyogUHJldmVudEltYWdlTG9h
ZFdpdGhBdXRvUmVzaXppbmdfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEI1NUFEMUQzMTc5RjNBQkYwMEFDMTQ5NCAvKiBQcmV2ZW50SW1h
Z2VMb2FkV2l0aEF1dG9SZXNpemluZ19CdW5kbGUuY3BwICovOyB9OwpAQCAtMzI0LDYgKzMyOSwx
MyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA3Q0NFN0U4QjFBNDExNDRFMDA0NDdDNEM7
CiAJCQlyZW1vdGVJbmZvID0gVGVzdFdlYktpdEFQSUxpYnJhcnk7CiAJCX07CisJCUExM0VCQkIy
MUI4NzQ0MTkwMDA5NzExMCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2Eg
PSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZF
ODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOwor
CQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBBMTNFQkI0ODFCODczMzlFMDAwOTcxMTA7CisJCQly
ZW1vdGVJbmZvID0gV2ViUHJvY2Vzc1BsdWdJbjsKKwkJfTsKIAkJQkM1NzVBOTUxMjZFNzRFNzAw
NkYwRjEyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4NDE1NURDMDJB
QUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTYxOSw2ICs2MzEsMTQgQEAKIAkJOUIyNkZD
QjQxNTlEMTVFNzAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLmh0
bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCNEY4RkEzMTU5RDUyQjEwMDJEOUY5
NCAvKiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5QjRGOEZBNjE1OUQ1MkNBMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rp
b25OYW1lZEl0ZW0uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEhUTUxDb2xsZWN0
aW9uTmFtZWRJdGVtLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExM0VCQjQ5
MUI4NzMzOUUwMDA5NzExMCAvKiBUZXN0V2ViS2l0QVBJLndrYnVuZGxlICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxlOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJLndrYnVuZGxlOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlBMTNFQkI1MjFCODczNDY2MDAwOTcxMTAgLyog
V2ViUHJvY2Vzc1BsdWdJbi54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBXZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBMTNFQkI1NDFCODczNEUwMDAwOTcxMTAgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
cGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTEzRUJCQTkxQjg3NDI4RDAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzUGx1Z0luLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTNFQkJBQzFCODc0MzZGMDAwOTcxMTAgLyog
QnVuZGxlUGFyYW1ldGVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEJ1bmRsZVBhcmFtZXRlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEx
M0VCQkFFMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVuZGxlUGFyYW1ldGVyc1BsdWdJ
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE0RkM1ODMxQjg5NzM5MTAwRDEw
N0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTRGQzU4NDFCODk3MzkxMDBEMTA3RUIgLyog
V0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExQTRGRTVEMThERDNEQjcwMEI1RUE4QSAvKiBEb3dubG9hZC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERvd25sb2FkLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMUZERkQyRTE5QzI4OEJCMDA1MTQ4QTQgLyogV0tJbWFn
ZUNyZWF0ZUNHSW1hZ2VDcmFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS0ltYWdlQ3JlYXRlQ0dJbWFnZUNyYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTU3QTM0RUYxNkFGNjc3MjAwQzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVX
aXRoV2luZG93Q2hhbmdlcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTgzNiw3ICs4NTYsMTAgQEAKIAkJMEYxMzlFNzExQTQyM0ExRDAw
RjU5MEY1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQlBMTNFQkI0NDFCODczMzJCMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbiAqLywK
IAkJCQkwRjEzOUU3MjFBNDIzQTJCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5t
bSAqLywKKwkJCQlBMTRGQzU4NDFCODk3MzkxMDBEMTA3RUIgLyogV0tXZWJWaWV3Q29uZmlndXJh
dGlvbkV4dHJhcy5oICovLAorCQkJCUExNEZDNTgzMUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZp
ZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBjb2NvYTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04NTUsNiArODc4LDcgQEAKIAkJCQk4REQ3NkZB
MTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLywKIAkJCQlCQzU3NTk4MDEyNkU3
NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZSAqLywKIAkJ
CQk3Q0NFN0U4QzFBNDExNDRFMDA0NDdDNEMgLyogbGliVGVzdFdlYktpdEFQSS5hICovLAorCQkJ
CUExM0VCQjQ5MUI4NzMzOUUwMDA5NzExMCAvKiBUZXN0V2ViS2l0QVBJLndrYnVuZGxlICovLAog
CQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC04NjMsNiArODg3LDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJN0NFRkE5NjQxQUMwQjlFMjAwQjkxMEZEIC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmUubW0gKi8sCisJCQkJQTEzRUJCQUMxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRl
cnMubW0gKi8sCisJCQkJQTEzRUJCQUUxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1bmRsZVBhcmFtZXRl
cnNQbHVnSW4ubW0gKi8sCiAJCQkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThBIC8qIERvd25sb2Fk
Lm1tICovLAogCQkJCTJEMUZFMEFGMUFENDY1QzEwMDZDRDlFNiAvKiBGaXhlZExheW91dFNpemUu
bW0gKi8sCiAJCQkJMzdEMzZFRDYxQUY0MkVDRDAwQkFGNUQ5IC8qIExvYWRBbHRlcm5hdGVIVE1M
U3RyaW5nLm1tICovLApAQCAtOTMxLDYgKzk1NywxNiBAQAogCQkJcGF0aCA9IGRhcndpbjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUExM0VCQjQ0MUI4NzMzMkIwMDA5NzEx
MCAvKiBXZWJQcm9jZXNzUGx1Z0luICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQlBMTNFQkI1NDFCODczNEUwMDAwOTcxMTAgLyogSW5mby5wbGlzdCAqLywK
KwkJCQlBMTNFQkJBOTFCODc0MjhEMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbi5tbSAqLywK
KwkJCSk7CisJCQluYW1lID0gV2ViUHJvY2Vzc1BsdWdJbjsKKwkJCXBhdGggPSBjb2NvYS9XZWJQ
cm9jZXNzUGx1Z0luOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQkMwMjlC
MUExNDg2QjIzODAwODE3REE5IC8qIG5zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTk3NSw2ICsxMDExLDcgQEAKIAkJCQlCQzU3NUFFMjEyNkU4OEIxMDA2
RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGUueGNjb25maWcgKi8sCiAJCQkJQkM5MDk1ODAxMjU1NENG
OTAwMDgzNzU2IC8qIFRlc3RXZWJLaXRBUEkueGNjb25maWcgKi8sCiAJCQkJN0NDRTdFQTMxQTQx
MTVDQjAwNDQ3QzRDIC8qIFRlc3RXZWJLaXRBUElMaWJyYXJ5LnhjY29uZmlnICovLAorCQkJCUEx
M0VCQjUyMUI4NzM0NjYwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luLnhjY29uZmlnICovLAog
CQkJKTsKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0xMzc4LDYgKzE0MTUsNyBAQAogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlk
ZXBlbmRlbmNpZXMgPSAoCisJCQkJQTEzRUJCQjMxQjg3NDQxOTAwMDk3MTEwIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkJQkM1NzVBOTYxMjZFNzRFNzAwNkYwRjEyIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkJN0NDRTdGNTExQTQxMjREQjAwNDQ3QzRDIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8sCiAJCQkpOwpAQCAtMTM4Nyw2ICsxNDI1LDIxIEBACiAJCQlwcm9kdWN0
UmVmZXJlbmNlID0gOERENzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIFRlc3RXZWJLaXRBUEkgKi87
CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwogCQl9Owor
CQlBMTNFQkI0ODFCODczMzlFMDAwOTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbiAqLyA9IHsKKwkJ
CWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBBMTNF
QkI0QzFCODczMzlFMDAwOTcxMTAgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhO
YXRpdmVUYXJnZXQgIldlYlByb2Nlc3NQbHVnSW4iICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJ
CQkJQTEzRUJCNDUxQjg3MzM5RTAwMDk3MTEwIC8qIFNvdXJjZXMgKi8sCisJCQkpOworCQkJYnVp
bGRSdWxlcyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9
IFdlYlByb2Nlc3NQbHVnSW47CisJCQlwcm9kdWN0TmFtZSA9IFdlYlByb2Nlc3NQbHVnSW47CisJ
CQlwcm9kdWN0UmVmZXJlbmNlID0gQTEzRUJCNDkxQjg3MzM5RTAwMDk3MTEwIC8qIFRlc3RXZWJL
aXRBUEkud2tidW5kbGUgKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10
eXBlLmJ1bmRsZSI7CisJCX07CiAJCUJDNTc1OTdGMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3Rl
ZEJ1bmRsZVRlc3RXZWJLaXRBUEkgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJ
CQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQkM1NzU5ODYxMjZFNzRBRjAwNkYwRjEyIC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJJbmplY3RlZEJ1bmRs
ZVRlc3RXZWJLaXRBUEkiICovOwpAQCAtMTQxNiw2ICsxNDY5LDkgQEAKIAkJCQkJN0NDRTdFOEIx
QTQxMTQ0RTAwNDQ3QzRDID0gewogCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gNi4zOwog
CQkJCQl9OworCQkJCQlBMTNFQkI0ODFCODczMzlFMDAwOTcxMTAgPSB7CisJCQkJCQlDcmVhdGVk
T25Ub29sc1ZlcnNpb24gPSA3LjA7CisJCQkJCX07CiAJCQkJfTsKIAkJCX07CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gMURFQjkyNzgwODczM0RENDAwMTBFOUNEIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiVGVzdFdlYktpdEFQSSIgKi87CkBAIC0xNDM1
LDYgKzE0OTEsNyBAQAogCQkJCThERDc2Rjk2MDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0
QVBJICovLAogCQkJCUJDNTc1OTdGMTI2RTc0QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRl
c3RXZWJLaXRBUEkgKi8sCiAJCQkJN0NDRTdFOEIxQTQxMTQ0RTAwNDQ3QzRDIC8qIFRlc3RXZWJL
aXRBUElMaWJyYXJ5ICovLAorCQkJCUExM0VCQjQ4MUI4NzMzOUUwMDA5NzExMCAvKiBXZWJQcm9j
ZXNzUGx1Z0luICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8K
QEAgLTE1MzAsNiArMTU4Nyw3IEBACiAJCQkJN0NDRTdFQzQxQTQxMUE3RTAwNDQ3QzRDIC8qIEpT
V3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDYx
QTQxMUFFNjAwNDQ3QzRDIC8qIExheW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udGVudEluRnJhbWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREYxQTQxMUE5MjAwNDQ3QzRDIC8qIExheW91
dFVuaXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTEzRUJCQjExQjg3NDM4MDAwMDk3MTEwIC8q
IEJ1bmRsZVBhcmFtZXRlcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YzODFBNDExQjhF
MDA0NDdDNEMgLyogTGlzdEhhc2hTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdEMzZFRDcx
QUY0MkVDRDAwQkFGNUQ5IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFRkUxQTQxMUFFNjAwNDQ3QzRDIC8qIExvYWRBbHRlcm5hdGVIVE1MU3Ry
aW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1OTgsNiArMTY1
Niw3IEBACiAJCQkJN0NDRTdFQ0UxQTQxMUE3RTAwNDQ3QzRDIC8qIFN0b3BMb2FkaW5nRnJvbURp
ZEZpbmlzaExvYWRpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDRjFBNDExQTdFMDA0
NDdDNEMgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdGNDQxQTQxMUI4RTAwNDQ3QzRDIC8qIFN0cmluZ0J1aWxkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTE0RkM1ODUxQjg5NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb25FeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0IxODRDNjFBQTNGMjEw
MDA2NkVERkQgLyogQ29udGVudEV4dGVuc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdFRDAxQTQxMUE3RTAwNDQ3QzRDIC8qIFN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9t
U3RyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGNDUxQTQxMUI4RTAwNDQ3QzRDIC8q
IFN0cmluZ0hhc2hlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2NzAsNiArMTcyOSwxNiBAQAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owor
CQlBMTNFQkI0NTFCODczMzlFMDAwOTcxMTAgLyogU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJ
CWZpbGVzID0gKAorCQkJCUExM0VCQkFBMUI4NzQyOEQwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1
Z0luLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3MTEwIC8qIEJ1
bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKKwkJCQlBMTNFQkJBQjFCODc0
MzQ2MDAwOTcxMTAgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAor
CQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9Owog
CQlCQzU3NTk3RDEyNkU3NEFGMDA2RjBGMTIgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAg
LTE3MjEsNiArMTc5MCwxMSBAQAogCQkJdGFyZ2V0ID0gN0NDRTdFOEIxQTQxMTQ0RTAwNDQ3QzRD
IC8qIFRlc3RXZWJLaXRBUElMaWJyYXJ5ICovOwogCQkJdGFyZ2V0UHJveHkgPSA3Q0NFN0Y1MDFB
NDEyNERCMDA0NDdDNEMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQlBMTNF
QkJCMzFCODc0NDE5MDAwOTcxMTAgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlz
YSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSBBMTNFQkI0ODFCODczMzlFMDAw
OTcxMTAgLyogV2ViUHJvY2Vzc1BsdWdJbiAqLzsKKwkJCXRhcmdldFByb3h5ID0gQTEzRUJCQjIx
Qjg3NDQxOTAwMDk3MTEwIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJQkM1
NzVBOTYxMjZFNzRFNzAwNkYwRjEyIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlp
c2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gQkM1NzU5N0YxMjZFNzRBRjAw
NkYwRjEyIC8qIEluamVjdGVkQnVuZGxlVGVzdFdlYktpdEFQSSAqLzsKQEAgLTE3NzMsNiArMTg0
NywyMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBSZWxlYXNlOwogCQl9OworCQlBMTNFQkI0RDFCODcz
MzlFMDAwOTcxMTAgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlv
bjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQTEzRUJCNTIxQjg3MzQ2NjAwMDk3
MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJQTEzRUJCNEUxQjg3MzM5RTAwMDk3
MTEwIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJ
CWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQTEzRUJCNTIxQjg3MzQ2NjAwMDk3MTEwIC8q
IFdlYlByb2Nlc3NQbHVnSW4ueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJ
fTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OwogCQlCQzU3NTk4NDEyNkU3NEFGMDA2RjBGMTIg
LyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkM1NzVBRTIxMjZFODhCMTAwNkYwRjEyIC8qIEluamVj
dGVkQnVuZGxlLnhjY29uZmlnICovOwpAQCAtMTgxNyw2ICsxOTA1LDE1IEBACiAJCQlkZWZhdWx0
Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUg
PSBSZWxlYXNlOwogCQl9OworCQlBMTNFQkI0QzFCODczMzlFMDAwOTcxMTAgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYlByb2Nlc3NQbHVnSW4iICov
ID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlv
bnMgPSAoCisJCQkJQTEzRUJCNEQxQjg3MzM5RTAwMDk3MTEwIC8qIERlYnVnICovLAorCQkJCUEx
M0VCQjRFMUI4NzMzOUUwMDA5NzExMCAvKiBSZWxlYXNlICovLAorCQkJKTsKKwkJCWRlZmF1bHRD
b25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9
IFJlbGVhc2U7CisJCX07CiAJCUJDNTc1OTg2MTI2RTc0QUYwMDZGMEYxMiAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiSW5qZWN0ZWRCdW5kbGVUZXN0V2Vi
S2l0QVBJIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVycy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NhNWI2M2Vk
MTBkYzM2ZGMxZjVmOTg5Mjg0MjZlY2VjMzMxZWVlMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnMubW0KQEAg
LTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgV0tf
QVBJX0VOQUJMRUQKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIldL
V2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitzdGF0aWMgYm9vbCBp
c0RvbmUgPSBmYWxzZTsKKworVEVTVChXZWJLaXQyLCBCdW5kbGVQYXJhbWV0ZXJzKQoreworICAg
IEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSByZXRhaW5Q
dHIoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gdGVzdHdlYmtpdGFwaV9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luIl0pOworICAgICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICAg
ICAgTlNTdHJpbmcgKiBjb25zdCB0ZXN0UGFyYW1ldGVyID0gQCJUZXN0UGFyYW1ldGVyIjsKKyAg
ICAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OnRlc3RQYXJhbWV0ZXIgY29tcGxldGlv
bkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgICAgICBFWFBF
Q1RfRkFMU0UoISFyZXN1bHQpOworICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICAgICAg
fV07CisKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAg
ICBpc0RvbmUgPSBmYWxzZTsKKworICAgICAgICBOU1N0cmluZyAqIGNvbnN0IHRlc3RTdHJpbmcg
PSBAIlBBU1MiOworICAgICAgICBbW2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bvb2xdIF9zZXRPYmpl
Y3Q6dGVzdFN0cmluZyBmb3JCdW5kbGVQYXJhbWV0ZXI6dGVzdFBhcmFtZXRlcl07CisgICAgICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDp0ZXN0UGFyYW1ldGVyIGNvbXBsZXRpb25IYW5k
bGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgRVhQRUNUX1RS
VUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKKyAgICAgICAgICAg
IEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOnRlc3RTdHJpbmddKTsKKyAgICAg
ICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgICAgIH1dOworCisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgaXNEb25lID0gZmFsc2U7CisKKyAgICAg
ICAgTlNEaWN0aW9uYXJ5ICogY29uc3QgdGVzdERpY3Rpb25hcnkgPSBAeyBAInJlc3VsdCIgOiBA
IlBBU1MiIH07CisgICAgICAgIFtbY29uZmlndXJhdGlvbiBwcm9jZXNzUG9vbF0gX3NldE9iamVj
dDp0ZXN0RGljdGlvbmFyeSBmb3JCdW5kbGVQYXJhbWV0ZXI6dGVzdFBhcmFtZXRlcl07CisgICAg
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDp0ZXN0UGFyYW1ldGVyIGNvbXBsZXRpb25I
YW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgRVhQRUNU
X1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7CisgICAg
ICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb0RpY3Rpb25hcnk6dGVzdERpY3Rp
b25hcnldKTsKKyAgICAgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgICAgIH1dOworCisgICAg
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgaXNEb25lID0g
ZmFsc2U7CisKKyAgICAgICAgW1tjb25maWd1cmF0aW9uIHByb2Nlc3NQb29sXSBfc2V0T2JqZWN0
Om5pbCBmb3JCdW5kbGVQYXJhbWV0ZXI6dGVzdFBhcmFtZXRlcl07CisgICAgICAgIFt3ZWJWaWV3
IGV2YWx1YXRlSmF2YVNjcmlwdDp0ZXN0UGFyYW1ldGVyIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKCEhcmVz
dWx0KTsKKyAgICAgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgICAgIH1dOworCisgICAgICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICB9Cit9CisKKyNlbmRpZiAv
LyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvQnVuZGxlUGFyYW1ldGVyc1BsdWdJbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzQ4MmY0MmI0OTI1YzNiYjFkM2E3MTQ5YjMzOTFiMDNmYWM0MzkxMQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZVBhcmFt
ZXRlcnNQbHVnSW4ubW0KQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJv
Y2Vzc1BsdWdJbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaD4K
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIE5TU3RyaW5nICogY29uc3QgdGVz
dFBhcmFtZXRlciA9IEAiVGVzdFBhcmFtZXRlciI7CisKK0BpbnRlcmZhY2UgQnVuZGxlUGFyYW1l
dGVyc1BsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4+CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luIHsKKyAgICBSZXRhaW5QdHI8V0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyPiBfYnJvd3NlckNvbnRleHRDb250
cm9sbGVyOworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyPiBfcGx1
Z0luQ29udHJvbGxlcjsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nl
c3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcgoreworICAgIEFTU0VSVCghX2Jyb3dzZXJDb250
ZXh0Q29udHJvbGxlcik7CisgICAgQVNTRVJUKCFfcGx1Z0luQ29udHJvbGxlcik7CisgICAgX2Jy
b3dzZXJDb250ZXh0Q29udHJvbGxlciA9IGJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBf
cGx1Z0luQ29udHJvbGxlciA9IHBsdWdJbkNvbnRyb2xsZXI7CisgICAgW3BsdWdJbkNvbnRyb2xs
ZXIucGFyYW1ldGVycyBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6dGVzdFBhcmFtZXRlciBv
cHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6TlVMTF07Cit9
CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtbX3BsdWdJbkNvbnRyb2xsZXIgcGFyYW1ldGVy
c10gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOnRlc3RQYXJhbWV0ZXJdOworICAgIFtz
dXBlciBkZWFsbG9jXTsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0
cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAq
KWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIEpTQ29udGV4dCAqanNDb250
ZXh0ID0gW1tfYnJvd3NlckNvbnRleHRDb250cm9sbGVyIG1haW5GcmFtZV0ganNDb250ZXh0Rm9y
V29ybGQ6W1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkIG5vcm1hbFdvcmxkXV07CisgICAg
W2pzQ29udGV4dCBzZXRPYmplY3Q6W29iamVjdCB2YWx1ZUZvcktleTprZXlQYXRoXSBmb3JLZXll
ZFN1YnNjcmlwdDprZXlQYXRoXTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJM
RUQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmlndXJhdGlv
bkV4dHJhcy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0
cmFzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjNlMGFiZjAyMWM3MzIzNDQ2MzFkODM0M2E5ZmU5YWQzMTY4MGQx
OQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbkV4dHJhcy5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitAaW50ZXJmYWNl
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFRlc3RXZWJLaXRBUElFeHRyYXMpCisrIChpbnN0YW5j
ZXR5cGUpdGVzdHdlYmtpdGFwaV9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
KE5TU3RyaW5nICopY2xhc3NOYW1lOworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9XS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiOTdhOTIyOGY2
OGQxNWZhZGZiZWQ3ZWMzNDMzMzdkNTVlZjE2YzgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0KQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3
Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFRlc3RX
ZWJLaXRBUElFeHRyYXMpCisKKysgKGluc3RhbmNldHlwZSl0ZXN0d2Via2l0YXBpX2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTooTlNTdHJpbmcgKiljbGFzc05hbWUKK3sKKyAg
ICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uIHNldEluamVjdGVkQnVuZGxlVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJUZXN0V2ViS2l0QVBJIiB3aXRoRXh0ZW5zaW9uOkAid2tidW5kbGUiXV07CisKKyAg
ICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0
V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
W3Byb2Nlc3NQb29sIF9zZXRPYmplY3Q6Y2xhc3NOYW1lIGZvckJ1bmRsZVBhcmFtZXRlcjpUZXN0
V2ViS2l0QVBJOjpVdGlsOjpUZXN0UGx1Z0luQ2xhc3NOYW1lUGFyYW1ldGVyXTsKKworICAgIGF1
dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9v
bDpwcm9jZXNzUG9vbC5nZXQoKV07CisKKyAgICByZXR1cm4gd2ViVmlld0NvbmZpZ3VyYXRpb24u
YXV0b3JlbGVhc2UoKTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvUGxhdGZvcm1VdGlsaXRpZXNDb2Nv
YS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5t
bQppbmRleCA4YzFkYWQxYTNkZWJlM2ZlMmJhY2U4MjMyN2Q3NjhkOTZiOGNlN2MwLi42NzRmZjM4
OWRhNDI1YzIwYmE3YzU1ZWNjNzg2YmY3Mzc3MDJlNWE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1BsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9QbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tCkBAIC01NSw1ICs1NSw4
IEBAIHN0ZDo6c3RyaW5nIHRvU1REKE5TU3RyaW5nICpzdHJpbmcpCiAgICAgcmV0dXJuIHN0ZDo6
c3RyaW5nKGJ1ZmZlci5nZXQoKSwgc3RyaW5nTGVuZ3RoKTsKIH0KIAorI2lmIFdLX0FQSV9FTkFC
TEVECitOU1N0cmluZyAqIGNvbnN0IFRlc3RQbHVnSW5DbGFzc05hbWVQYXJhbWV0ZXIgPSBAIlRl
c3RQbHVnSW5QcmluY2lwYWxDbGFzc05hbWUiOworI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBVdGls
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vSW5mby5wbGlzdCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9JbmZvLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZjJh
MjA5MTYwMTdiY2RkYWY1ZTM5YmU3OWYzOGMyY2RmZjg3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1dlYlByb2Nlc3NQbHVnSW4vSW5mby5wbGlzdApAQCAt
MCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFE
T0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDov
L3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lv
bj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5Pgor
CTxzdHJpbmc+ZW48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxz
dHJpbmc+JChFWEVDVVRBQkxFX05BTUUpPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0
aW9uYXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRs
ZU5hbWU8L2tleT4KKwk8c3RyaW5nPiQoUFJPRFVDVF9OQU1FKTwvc3RyaW5nPgorCTxrZXk+Q0ZC
dW5kbGVQYWNrYWdlVHlwZTwva2V5PgorCTxzdHJpbmc+Qk5ETDwvc3RyaW5nPgorCTxrZXk+Q0ZC
dW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KKwk8c3RyaW5nPjEuMDwvc3RyaW5nPgorCTxr
ZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KKwk8c3RyaW5nPj8/Pz88L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlVmVyc2lvbjwva2V5PgorCTxzdHJpbmc+MTwvc3RyaW5nPgorCTxrZXk+TlNQcmlu
Y2lwYWxDbGFzczwva2V5PgorCTxzdHJpbmc+V2ViUHJvY2Vzc1BsdWdJbjwvc3RyaW5nPgorPC9k
aWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2Vi
UHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNzUGx1Z0luLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9XZWJQcm9jZXNzUGx1Z0luL1dlYlByb2Nlc3NQbHVnSW4ubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVi
ZGY2ZmRmMjRlZDQ4NzNiMjkzN2I2MjQxZTY0NDdkOWI0NGIzZgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvV2ViUHJvY2Vzc1BsdWdJbi9XZWJQcm9jZXNzUGx1
Z0luLm1tCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisKK0BpbnRlcmZhY2UgV2ViUHJvY2Vzc1BsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlBy
b2Nlc3NQbHVnSW4+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJQcm9jZXNzUGx1Z0luIHsK
KyAgICBSZXRhaW5QdHI8aWQgPFdLV2ViUHJvY2Vzc1BsdWdJbj4+IF90ZXN0UGx1Z0luOworfQor
CistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIg
KilwbHVnSW5Db250cm9sbGVyIGluaXRpYWxpemVXaXRoT2JqZWN0OihpZClpbml0aWFsaXphdGlv
bk9iamVjdAoreworICAgIE5TU3RyaW5nICp0ZXN0UGx1Z0luQ2xhc3NOYW1lID0gW3BsdWdJbkNv
bnRyb2xsZXIucGFyYW1ldGVycyB2YWx1ZUZvcktleTpUZXN0V2ViS2l0QVBJOjpVdGlsOjpUZXN0
UGx1Z0luQ2xhc3NOYW1lUGFyYW1ldGVyXTsKKyAgICBBU1NFUlQodGVzdFBsdWdJbkNsYXNzTmFt
ZSk7CisgICAgQVNTRVJUKFt0ZXN0UGx1Z0luQ2xhc3NOYW1lIGlzS2luZE9mQ2xhc3M6W05TU3Ry
aW5nIGNsYXNzXV0pOworCisgICAgQ2xhc3MgdGVzdFBsdWdJbkNsYXNzID0gTlNDbGFzc0Zyb21T
dHJpbmcodGVzdFBsdWdJbkNsYXNzTmFtZSk7CisgICAgQVNTRVJUKHRlc3RQbHVnSW5DbGFzcyk7
CisgICAgQVNTRVJUKFt0ZXN0UGx1Z0luQ2xhc3MgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2Nv
bChXS1dlYlByb2Nlc3NQbHVnSW4pXSk7CisKKyAgICBBU1NFUlQoIV90ZXN0UGx1Z0luKTsKKyAg
ICBfdGVzdFBsdWdJbiA9IGFkb3B0TlMoW1t0ZXN0UGx1Z0luQ2xhc3MgYWxsb2NdIGluaXRdKTsK
KworICAgIGlmIChbX3Rlc3RQbHVnSW4gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJQ
cm9jZXNzUGx1Z0luOmluaXRpYWxpemVXaXRoT2JqZWN0OildKQorICAgICAgICBbX3Rlc3RQbHVn
SW4gd2ViUHJvY2Vzc1BsdWdJbjpwbHVnSW5Db250cm9sbGVyIGluaXRpYWxpemVXaXRoT2JqZWN0
OmluaXRpYWxpemF0aW9uT2JqZWN0XTsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihX
S1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVC
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcgoreworICAgIGlmIChbX3Rlc3RQ
bHVnSW4gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJQcm9jZXNzUGx1Z0luOmRpZENy
ZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjopXSkKKyAgICAgICAgW190ZXN0UGx1Z0luIHdl
YlByb2Nlc3NQbHVnSW46cGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENv
bnRyb2xsZXI6YnJvd3NlckNvbnRleHRDb250cm9sbGVyXTsKK30KKworLSAodm9pZCl3ZWJQcm9j
ZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxl
ciB3aWxsRGVzdHJveUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7Cisg
ICAgaWYgKFtfdGVzdFBsdWdJbiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlByb2Nl
c3NQbHVnSW46d2lsbERlc3Ryb3lCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6KV0pCisgICAgICAg
IFtfdGVzdFBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOnBsdWdJbkNvbnRyb2xsZXIgd2lsbERlc3Ry
b3lCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6YnJvd3NlckNvbnRleHRDb250cm9sbGVyXTsKK30K
KworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>
<flag name="review"
          id="284926"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>